返回列表

25th Place Solution

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

开始: 2025-02-27 结束: 2025-09-24 基因组学与生物信息 数据算法赛
第 25 名解决方案 – 斯坦福 RNA 3D 折叠
作者: k2011yi
发布时间: 2025-09-29
竞赛: 斯坦福 RNA 3D 折叠 (Stanford RNA 3D Folding)
最终排名: 第 25 名

我的第 25 名解决方案 – 斯坦福 RNA 3D 折叠

首先,我要感谢 Kaggle 和竞赛组织者举办了这样一个令人兴奋且充满挑战的活动。
在隐藏测试集发布之前,我在公共排行榜上排名第 29 位,在最终的私有排行榜上排名第 25 位。
在这篇文章中,我想简要分享我的方法。


总体策略

由于我是 solo 参赛,计算资源、时间和技能有限,我没有进行任何微调。
相反,我的策略侧重于如何从现有模型生成的多个预测中选择最准确的结构

当竞赛中期刷新排行榜时,我的排名保持相对稳定。这让我相信这种基于选择的方法有一定潜力。


使用的模型

对于最终提交,我依赖了 ProteinxDRfold2Boltz
以下是我如何使用每个模型的:


DRfold2

第一次排行榜刷新后,我确定了 20 个使用 cfg_99 配置生成的预测集,它们显示出稳定且相对较高的分数。
由于推理时间限制,我将此减少到 12 个集进行进一步处理。

对于每个集:

  • 我对预测结构进行了聚类。
  • 在每个簇内,我选择了能量分数最低的结构作为代表。
  • 然后,我计算了代表结构之间的 TM 分数。

最后,我包括了:

  1. 能量最低的代表结构
  2. 与它结构差异最大的代表结构(最低 TM 分数)

目标是保持最终预测的多样性,而不是仅仅依赖最低能量的结构。


Boltz

对于 Boltz,我设置 diffusion_samples=3 来生成三个候选结构。
其中,我基于以下标准选择了最终预测:

  1. complex_plddt(最高优先级)
  2. confidence_score(当 pLDDT 相同时作为决胜依据)

我记得使用这种选择方法使我的分数有了显著提高。

我用两个不同的种子重复了这个过程,并从每个种子中选择了最佳结构。


Proteinx

对于 Proteinx,我设置 --sample_diffusion.N_sample=3 来生成三个结构。
由于 JSON 输出中可用 pLDDT 分数,我只是选择了得分最高的结构用于最终提交。


结束语

我深深感谢组织者提供了这样一个充满挑战和回报的竞赛。
我也感谢所有在讨论论坛中分享宝贵见解的参与者。

这是我迄今为止投入最多时间和精力的 Kaggle 竞赛,我对结果非常满意。
我期待未来参加类似的挑战!

同比赛其他方案