第 10 名解决方案(我们如何进行集成)
第 10 名解决方案(我们如何进行集成)
副标题:基于 Protenix、DRFold2 和 trRosetta2 的集成解决方案
大家好,
我想分享我们团队在 Kaggle 斯坦福 RNA 3D 折叠竞赛中的解决方案。我们的方法侧重于将三种最先进的深度学习模型——Protenix、DRFold2 和 trRosetta2——结合成一个强大的集成 pipeline,用于 RNA 三级结构预测。
模型结构与工作流程
Protenix 实现
- 扩散采样参数: N_sample=10, N_step=150, N_cycle=8
- 检查点: model_v0.2.0.pt <- Protenix GitHub 上可用的最新预训练模型权重。
- 置信度评分系统: 严格按照 Protenix 提供的置信度分数排序使用。
- 超参数优化: 在我的实验中,超参数优化并没有带来巨大差异。
- 微调问题: 我无法解决 Protenix 微调过程中的过拟合问题,因此我使用预训练权重进行直接预测。
- 输出: 每个样本前 5 个 PDB 文件
DRFold2 实现
- FASTA 生成: 将每个测试序列转换为 FASTA 文件格式
- 过滤: 仅处理 < 300 nt 的序列(超过 300nt 会导致超时失败)
- 每个样本的模型排名: 读取 sel_0 分数文件 -> 按能量得分选择前 5 个模型 -> 使用 Arena 进行 PDB 优化!!
- 输出: 前 5 个优化后的 PDB 文件(限制在 300nt 以下)
trRosetta2 实现(它在 GitHub 中隐藏,未在 trRosetta2 文章中正式发布)
- 预测方式: 基于 MSA 的预测以获得更高精度
- 模型参数: nrows=500, refine_steps=0
- 过滤: 大约 ≤500–600 nt,据我所知,虽不精确。
- 输出: 前 5 个优化后的 PDB 文件(限制在 500-600nt 以下)
集成整合
坐标提取: 解析 PDB 文件以获取 C1' 原子坐标
合并策略:
- Protenix: 坐标 1–5(用作背景坐标)
- DRFold2: 坐标 3,4(尽可能覆盖背景坐标)
- trRosetta2: 坐标 5(尽可能覆盖背景坐标)
因此,最终的 submission.csv 如下:
| 序列长度 |
1 |
2 |
3 |
4 |
5 |
| 0~300nt |
protenix |
protenix |
DRFold2 |
DRFold2 |
trRosetta2 |
| 300~600nt |
protenix |
protenix |
protenix |
protenix |
trRosetta2 |
| 600nt~ |
protenix |
protenix |
protenix |
protenix |
protenix |
结论
三种模型的集成非常有效。然而,当我添加第四个模型(Boltz)时,性能实际上下降了。由于我无法微调 Protenix,我相信其他人可能成功了,我期待看到他们的解决方案。
最后但同样重要的是,非常感谢我的队友和竞赛主办方!!