活动管理器
目标导向设计
从目标到流程
当用户说:“我需要10个针对EGFR的好结合剂”
活动规划:
目标:为EGFR获取10个高质量结合剂
├── 可实现性:是(标准目标)
├── 推荐流程:rfdiffusion → proteinmpnn → colabfold → protein-qc
├── 估计所需设计数量:500个骨架(以获得约50个通过QC的)
├── 估计时间:总共8-12小时
├── 估计成本:~$60(Modal GPU计算)
└── 预期产量:
├── 骨架后(500):500个结构
├── 序列后(×8):4,000个序列
├── 验证后:4,000个预测
├── QC后(~10-15%):400-600个候选
└── 聚类后:10-20个多样化的最终设计
完整流程生成器
标准小型蛋白质结合剂活动
# 第1步:获取并准备目标(5分钟)
curl -o target.pdb "https://files.rcsb.org/download/{PDB_ID}.pdb"
# 如有需要,裁剪至结合区域
# 第2步:生成骨架(2-3小时,~$15)
modal run modal_rfdiffusion.py \
--pdb target.pdb \
--contigs "A1-150/0 70-100" \
--hotspot "A45,A67,A89" \
--num-designs 500
# 检查点:ls output/*.pdb | wc -l # 应为500
# 第3步:设计序列(1-2小时,~$10)
for f in output/*.pdb; do
modal run modal_proteinmpnn.py \
--pdb-path "$f" \
--num-seq-per-target 8 \
--sampling-temp 0.1
done
# 检查点:grep -c "^>" output/seqs/*.fa # 应为~4000
# 第4步:快速ESM2筛选(30分钟,~$5,可选)
modal run modal_esm.py --fasta output/all_seqs.fa --mode pll
# 筛选PLL < 0.0的序列
# 第5步:结构验证(3-4小时,~$35)
modal run modal_colabfold.py \
--input-faa output/filtered_seqs.fa \
--out-dir predictions/
# 检查点:find predictions -name "*rank_001.pdb" | wc -l
# 第6步:筛选和排名(protein-qc技能)
# 应用阈值:pLDDT > 0.85, ipTM > 0.5, scRMSD < 2.0
# 计算综合得分
# 在70%的身份下进行聚类,从每个聚类中选择顶部
总估计时间:8-12小时
总估计成本:~$60-70
活动大小建议
| 目标 |
骨架 |
序列/BB |
总序列 |
预期通过 |
| 5个结合剂 |
200 |
8 |
1,600 |
160-240 |
| 10个结合剂 |
500 |
8 |
4,000 |
400-600 |
| 20个结合剂 |
1,000 |
8 |
8,000 |
800-1,200 |
| 50个结合剂 |
2,500 |
8 |
20,000 |
2,000-3,000 |
经验法则:生成比你所需多50倍的设计(10-15%通过率×聚类)。
工具选择指南
何时使用每个工具
| 场景 |
推荐工具 |
原因 |
| 标准小型蛋白质 |
RFdiffusion + ProteinMPNN |
高多样性,经过验证 |
| 需要更高的成功率 |
BindCraft |
集成设计循环 |
| 需要全原子精度 |
BoltzGen |
侧链感知 |
| 困难目标 |
ColabDesign |
AF2梯度优化 |
| 需要快速迭代 |
ESMFold + ESM2 |
快速筛选 |
目标难度评估
| 指标 |
简单目标 |
困难目标 |
| 表面类型 |
凹口袋 |
平面或凸面 |
| 保守性 |
高 |
低 |
| 已知结合剂 |
是 |
否 |
| 灵活性 |
刚性 |
灵活 |
| 预期通过率 |
15-20% |
5-10% |
活动健康评估
快速指标检查
import pandas as pd
def assess_campaign(csv_path):
df = pd.read_csv(csv_path)
# 计算通过率
plddt_pass = (df['pLDDT'] > 0.85).mean()
iptm_pass = (df['ipTM'] > 0.50).mean()
scrmsd_pass = (df['scRMSD'] < 2.0).mean()
all_pass = ((df['pLDDT'] > 0.85) & (df['ipTM'] > 0.5) & (df['scRMSD'] < 2.0)).mean()
# 确定健康状况
if all_pass > 0.15:
health = "EXCELLENT"
elif all_pass > 0.10:
health = "GOOD"
elif all_pass > 0.05:
health = "MARGINAL"
else:
health = "POOR"
# 确定主要问题
issues = []
if plddt_pass < 0.20:
issues.append("Low pLDDT - backbone or sequence issue")
if iptm_pass < 0.20:
issues.append("Low ipTM - hotspot or interface issue")
if scrmsd_pass < 0.50:
issues.append("High scRMSD - sequence doesn't specify backbone")
return {
"health": health,
"overall_pass_rate": all_pass,
"plddt_pass_rate": plddt_pass,
"iptm_pass_rate": iptm_pass,
"scrmsd_pass_rate": scrmsd_pass,
"top_issues": issues
}
解释结果
| 健康状况 |
通过率 |
行动 |
| EXCELLENT |
> 15% |
继续选择 |
| GOOD |
10-15% |
继续,正常产量 |
| MARGINAL |
5-10% |
审查失败树 |
| POOR |
< 5% |
诊断并重新开始 |
成本估算
每工具成本(Modal)
| 工具 |
GPU |
$/小时 |
典型作业 |
成本 |
| RFdiffusion |
A10G |
~$1.20 |
500设计/2小时 |
~$2.50 |
| ProteinMPNN |
T4 |
~$0.60 |
4000序列/1.5小时 |
~$1.00 |
| ESM2 (PLL) |
A10G |
~$1.20 |
4000序列/30分钟 |
~$0.60 |
| ColabFold |
A100 |
~$4.50 |
4000预测/4小时 |
~$18.00 |
| Chai |
A100 |
~$4.50 |
500预测/1小时 |
~$4.50 |
活动成本估算
| 活动大小 |
总成本 |
注释 |
| 小型(100 bb) |
~$15 |
快速探索 |
| 标准(500 bb) |
~$60 |
大部分活动 |
| 大型(1000 bb) |
~$120 |
全面 |
| XL(5000 bb) |
~$600 |
非常彻底 |
流程变体
高通量(最大化多样性)
# 更多骨架,每个更少序列
modal run modal_rfdiffusion.py --num-designs 2000
modal run modal_proteinmpnn.py --num-seq-per-target 4 --sampling-temp 0.2
高质量(最大化每个设计的高质量)
# 更少骨架,每个更多序列,更低温度
modal run modal_rfdiffusion.py --num-designs 200
modal run modal_proteinmpnn.py --num-seq-per-target 32 --sampling-temp 0.1
快速探索(快速迭代)
# 小批量,ESMFold代替ColabFold
modal run modal_rfdiffusion.py --num-designs 50
modal run modal_proteinmpnn.py --num-seq-per-target 8
modal run modal_esmfold.py --fasta all_seqs.fa # 比ColabFold快
另见
- 特定工具参数:
rfdiffusion, proteinmpnn, colabfold, chai, boltz
- QC阈值和筛选:
protein-qc
- 工具选择指导:
binder-design