PyRosetta 把 Rosetta 的 C++ 能力封装成 Python 接口。相比编译整套 Rosetta 再写 XML 协议,它让你能在 Jupyter 里交互式操作蛋白结构,并直接与 PyTorch、RDKit 等 AI 工具栈混用——这是今天把 Rosetta 接进 AI 管线最实际的方式。
安装与许可
# 需先在官网注册获取账号(学术免费,商业需授权)
pip install pyrosetta-installer
python -c 'import pyrosetta_installer; pyrosetta_installer.install_pyrosetta()'
python -c "import pyrosetta; pyrosetta.init(); print('ok')"
许可与 Rosetta 主体一致:学术与非营利免费,商业使用需付费授权。这一点在把它写进生产管线前必须确认清楚。
核心对象模型
| 对象 | 含义 |
|---|---|
Pose |
蛋白结构的核心容器(坐标、序列、能量、约束) |
ScoreFunction |
能量函数,如 ref2015 |
Mover |
修改 Pose 的操作:relax、minimize、pack、docking |
TaskFactory |
控制哪些残基可设计 / 可重装配 |
MoveMap |
控制哪些自由度可动(主链 / 侧链) |
最常用的两段代码
import pyrosetta
from pyrosetta import pose_from_pdb, get_fa_scorefxn
from pyrosetta.rosetta.protocols.relax import FastRelax
pyrosetta.init("-mute all -ex1 -ex2aro")
# 1) 打分:评估一个结构的能量
pose = pose_from_pdb("design.pdb")
scorefxn = get_fa_scorefxn() # ref2015
print("total score", scorefxn(pose))
print(pose.energies().residue_total_energies(10)) # 逐残基能量
# 2) 精修:AI 生成结构的标准后处理
relax = FastRelax()
relax.set_scorefxn(scorefxn)
relax.constrain_relax_to_start_coords(True) # 约束到初始坐标,避免跑偏
relax.apply(pose)
pose.dump_pdb("design_relaxed.pdb")
print("after relax", scorefxn(pose))
constrain_relax_to_start_coords(True) 很重要:不加约束的 relax 可能把结构改得面目全非,失去与设计目标的对应关系。
接进 AI 管线的三个典型位置
- 结构清洗与修复:AI 生成或预测的结构常有原子缺失、键长异常,用 PyRosetta 补全并 relax,再进入后续计算。
- 能量过滤:对 RFdiffusion + ProteinMPNN 产出的成百上千个设计批量打分,滤掉能量明显异常的。相比只看 pLDDT,加一层物理能量判据能提高筛选质量。
- 界面分析:用
InterfaceAnalyzerMover算结合界面的埋藏面积、界面能量、氢键数,用于评估结合物设计。
from pyrosetta.rosetta.protocols.analysis import InterfaceAnalyzerMover
ia = InterfaceAnalyzerMover(1) # 界面跳跃编号
ia.set_pack_separated(True)
ia.apply(pose)
print("dG_separated", ia.get_interface_dG())
print("buried SASA", ia.get_interface_delta_sasa())
性能与实践建议
- FastRelax 很慢:单个中等蛋白可能需要数十秒到数分钟。批量处理必须并行,用
multiprocessing或作业调度器铺开。 - 初始化选项影响大:
-ex1 -ex2aro扩展旋转异构体采样,质量更好但更慢;批量粗筛可省略。 - 随机性:多数 mover 有随机成分,需要复现时用
-constant_seed并记录种子。 - 内存:大批量处理时注意及时释放 Pose,长时间循环容易累积内存。
上手提示
- 它是把 Rosetta 接进 AI 管线最实际的方式,核心用途是精修 + 能量过滤;
- relax 时务必加坐标约束,否则结构可能跑偏;
- FastRelax 很慢,批量处理必须并行并规划算力;
- 商业使用需授权,写进生产前先确认许可。
延伸资源
- 平台本体:198《Rosetta》;AI 设计工具:196《ProteinMPNN》、197《RFdiffusion》;
- 结构修复对照:215《PDBFixer》;分子模拟:200《OpenMM》。