返回列表

3rd Place Solution

669. Stanford RNA 3D Folding | stanford-rna-3d-folding

开始: 2025-02-27 结束: 2025-09-24 基因组学与生物信息 数据算法赛
第三名解决方案 – 斯坦福 RNA 3D 折叠

第三名解决方案 – 斯坦福 RNA 3D 折叠

作者: Yehyun Kim (及团队成员 RyanKim99, ouiqdmw)

发布时间: 2025-09-29

竞赛排名: 公共排行榜第 3 名 | 私有排行榜第 3 名

首先,感谢 Kaggle 和组织者举办如此具有挑战性和有趣的竞赛。

我们在 unseen 数据发布前的公共排行榜上排名第 3,并且在私有排行榜上也排名第 3

早些时候我们分享了解决方案的简要概述。这篇帖子将详细介绍更多内容。


解决方案 summary

  • DRfold2ProtenixBoltz-1 的集成 (Ensemble)
  • 使用新发布的 RNA 数据集微调 Protenix

详细解决方案

数据集

  • rMSA
    我们使用主办方提供的官方 rMSA 代码生成了自己的 rMSA 数据。

    • 主办方发布的 v2 rMSA 并未涵盖最近发布的全部数据,因此我们必须构建自己的数据。
    • 即使使用多进程和几台服务器,这个过程也花了大约 14 天
    • 我们的 rMSA 数据在此处 available: Google Drive
  • 训练数据集
    我们测试了两个版本:

    1. 完整 RNA 数据集 – 包含所有最近可用的数据,例如由 @tant64 上传的 CASP16。为了检查质量,我们将部分标签与 CASP16 GitLab 仓库 进行了比较。
    2. 仅 RNA 数据集 – 排除了复合物(与蛋白质/DNA 结合的 RNA),遵循主办方在此处的澄清 链接

两个版本的训练数据和标签均可在此处获取:Google Drive


模型

我们使用来自以下官方仓库的模型构建了集成:

我们最初探索了新的架构,但鉴于时间和资源限制,专注于微调和组合现有模型更为有效。


DRfold2

  • 在 v1 数据上,对 <400 nt 的序列表现最好。
  • 运行包含优化、聚类和所有 80 个发布 checkpoint 的完整 pipeline 太慢了。
  • 我们发现 能量选择 + Arena 带来了大部分增益,而其他步骤对 TM-score 贡献不大但耗时显著。
  • 因此,我们的 DRfold2 设置仅在 post-processing 中使用 能量选择 + Arena

Protenix

  • NVIDIA GH200 (96GB 显存) 上训练。
  • 由于内存问题,限制序列长度 <800 nt
  • 使用了来自 @lihaoweicvch 的微调代码(讨论链接)。
  • 不带 rMSA 的微调没有帮助,所以我们带 rMSA 训练。
  • 仅修改了 max_steps;完整数据集运行大约需要一天。
  • 早期 checkpoint(2-3 个周期)表现较差;随着微调时间延长,性能有所提高。
  • 我们也测试了 多个 Protenix 输出 → DRfold 能量选择 → Arena,但没有改善结果。
  • 对于推理,我们修改了 @geraseva 的代码 以包含 rMSA。

Boltz-1

  • 虽然本身不是最强的模型,但包含一个 Boltz 预测提高了集成的多样性。
  • 这很有帮助,因为评分指标倾向于从多个多样化输出中选择最好的一个。
  • 我们使用了 @youhanlee 的推理 Notebook

最终提交 & 代码

我们正在分享原始的提交 Notebook。部分代码被注释掉,显示了我们的实验历史。

  1. DRfold2 + Protenix

    • 公共排行榜:0.60338 | 私有排行榜:0.52787
    • <400 nt: 3 × DRfold2 + 2 × Protenix (仅 RNA, 带 MSA)
    • >400 nt: 2 × Protenix (仅 RNA) + 2 × Protenix (全部) + Protenix 基线
  2. Protenix + Boltz

    • 公共排行榜:0.61253 | 私有排行榜:0.54312
    • 2 × Protenix (仅 RNA) + Protenix (全部) + Protenix 基线 + Boltz 基线

致谢

非常感谢分享资源和见解的社区成员:

  • @hengck23 – 提供广泛的讨论和指导。
  • @geraseva – 提供早期的 Protenix 推理代码。
  • @lihaoweicvch – 提供 Protenix 微调代码。
  • @youhanlee – 提供更新的 Boltz 推理代码。

最后,感谢 Eigen Company 为本次竞赛提供资源。

同比赛其他方案