RFdiffusion
模型介绍
RFdiffusion 是一种基于扩散模型的蛋白质骨架生成和设计方法,可用于无条件骨架生成、motif scaffolding、PPI/binder 设计和对称寡聚体采样。
模型描述
RFdiffusion 模型基于 RoseTTAFold 三轨网络与 SE(3) 等变去噪扩散过程的生成式蛋白质设计模型,可从随机结构逐步生成满足指定拓扑或功能约束的蛋白质骨架。
当前 ModelScope 包面向下载即用、本地快速验证和 OneCode 自动化运行场景,代码、配置、示例输入和权重均已放在当前目录内。
适用场景
| 场景 | 说明 |
|---|---|
| 无条件骨架生成 | 输入 contig 约束,输出设计骨架 PDB。 |
| Motif scaffolding | 输入包含 motif 的 PDB 和 contig 约束,输出 scaffold 设计结果。 |
| PPI/binder 设计 | 输入目标结构、hotspot 和 contig 参数,输出 binder 设计候选。 |
| 对称寡聚体采样 | 使用 symmetry 配置生成对称结构设计。 |
| ModelScope 全量包验证 | 使用包内 config/ modules/ scripts/ examples/ weight/ 布局直接预检和推理。 |
使用说明
1. OneCode 使用
可通过 OneCode 在线环境体验智能化一键式 AI4S 编程:
2. 手动安装使用
硬件要求
- 推荐使用GPU或DCU运行。
- CPU可以用于连通性验证,但速度较慢。
- DCU用户需要预先安装DTK,建议使用DTK 25.04.2以上版本或与当前集群匹配的OneScience推荐版本。
软件要求
想了解更多适配内容请联系 liubiao@sugon.com
环境检测
- NVIDIA GPU:
nvidia-smi
- 海光DCU:
hy-smi
快速开始
1. 安装运行环境
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[bio] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
#如果下述代码运行存在找不到库的情况,需要激活cuda,参考下列代码
source ${ROCM_PATH}/cuda/env.sh
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib/python3.11/site-packages/fastpt/torch/lib:$LD_LIBRARY_PATH"
2. 下载模型包并安装环境
modelscope download --model OneScience/RFdiffusion --local_dir ./RFdiffusion
训练权重
训练权重已经收录在weights文件夹内,可下载模型包后直接使用。
3. 运行预检
检查文件和真实权重:
python scripts/preflight.py --strict-weights
安装依赖后检查本地 import:
python scripts/preflight.py --strict-weights --strict-imports
只验证入口和 Hydra 配置,不执行采样:
RF_DIFFUSION_SMOKE_TEST=1 python scripts/run_inference.py
4. 运行推理
如果运行报错缺少.cache文件,可自行创建;
无条件骨架采样示例:
python scripts/run_inference.py \
'contigmap.contigs=[80-80]' \
diffuser.T=15 \
inference.final_step=15 \
inference.num_designs=1 \
inference.write_trajectory=False \
inference.output_prefix=outputs/smoke/design
Motif scaffolding 示例:
python scripts/run_inference.py \
inference.input_pdb=examples/input_pdbs/1YCR.pdb \
'contigmap.contigs=[10-40/A163-181/10-40]' \
inference.output_prefix=outputs/motif/design
对称采样示例:
python scripts/run_inference.py --config-name symmetry \
diffuser.T=15 \
inference.final_step=15 \
inference.output_prefix=outputs/symmetry/c2
5. 常用环境变量
export RF_DIFFUSION_MODEL_DIR=weight
export RF_DIFFUSION_INPUT_PDB=examples/input_pdbs/1qys.pdb
export RF_DIFFUSION_OUTPUT_PREFIX=outputs/design
export RF_DIFFUSION_SCHEDULE_DIR=.cache/schedules
OneScience 官方信息
| 平台 | OneScience 主仓库 | Skills 仓库 |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
引用与许可证
RFdiffusion在BSD开源许可下发布(详见 LICENSE 文件),可免费用于非营利和营利目的。