669. Stanford RNA 3D Folding | stanford-rna-3d-folding
首先,我想向竞赛主办团队和 Kaggle 团队表示诚挚的感谢,感谢你们组织了这场有趣的竞赛。我也深深感谢所有持续分享宝贵见解和信息的参赛者。花费三个月时间解决生物分子 3D 结构预测的机器学习问题, truly enjoyable and rewarding( truly enjoyable and rewarding 意为非常愉快且有益)。
我的解决方案由两种类型的微调 Protenix(AlphaFold3 克隆版)模型集成组成,分别带有和不带有 MSA。在竞赛早期,我尝试了 RibonanzaNet2_DDPM、DRfold2 和 NuFold,但 Protenix 在我的实验中给出了最好的结果,因此我在后半段 exclusively focused on Protenix( exclusively focused on Protenix 意为 exclusively 专注于 Protenix)。Protenix 微调是使用 @lihaoweicvch 和 d4t4 团队 提供的代码进行的,并做了少量修改。
我尝试了两种爬山策略,并选择了这两个模型作为最终提交:
TM-Score 结果如下:
| 模型 | 公共榜单 (Public LB) | 私有榜单 (Private LB) |
|---|---|---|
| 无 MSA (wo-MSA) | 0.43529 | 0.39196 |
| 有 MSA (with-MSA) | 0.43205 | 0.41014 |
| 两个模型集成 (最终提交 1) |
0.46901 | 0.43514 |
| 模型 | 本地验证 | 公共榜单 (Public LB) | 私有榜单 (Private LB) |
|---|---|---|---|
| 无 MSA (wo-MSA) | 0.5982 | 0.43135 | 0.47654 |
| 有 MSA (with-MSA) | 0.5943 | 0.42501 | 0.46793 |
| 两个模型集成 (最终提交 2) |
0.6092 | 0.43991 | 0.48511 (私有榜单第 7 名) |
Kaggle v1/v2 数据和 CASP16 VFold 预测数据被用于模型训练。
质量标准
仅使用符合以下标准的数据:
去重
对于具有多个结构数据的序列,根据以下规则仅选择一个结构用于训练:
训练和验证数据相同,均为 CASP16 vfold 预测数据。
对于最终提交:
采用了一些技术用于截断位置填充和结构选择。它们略微提高了本地分数和公共榜单分数,表明这些技巧至少在竞赛期间是有效的。但实际上,它们在私有榜单上并没有产生有意义的增益,甚至在某些情况下恶化了分数。虽然相信它们是合理的方法,但结果令人失望,不过我还是在这里分享它们。
填充方法
截断位置的坐标必须填充某些值。虽然一些公共 notebook 似乎用 (0, 0, 0) 填充,但在我的实验范围内,用与截断端相同的坐标填充会导致公共榜单略有提升(见下图)。然而,私有榜单显示相对于零填充并没有 meaningful improvement(meaningful improvement 意为有意义的改进)。如果私有集不包含任何超过 850 个核苷酸的序列,则不会触发截断,因此这可能不是一个 essential factor(essential factor 意为 essential 因素)。
相关讨论帖

用于结构选择的 K-Medoids 聚类
需要从十个结构中选出五个(两个 Protenix 各输出五个结构)。虽然基于置信度 (pLDDT) 的选择是常见方法,但我担心它倾向于 favor similar structures(favor similar structures 意为偏好相似结构),限制了多样性。鉴于竞赛指标采用五个提交中最高的 TM-score,选择结构多样化的候选似乎更有效。为了实现这一点,使用 1 - TM-score 作为距离度量对十个预测结构进行 k-medoids 聚类 (k = 5),并选择五个中心点 (medoids) 进行提交。与基于 pLDDT 的选择相比,这种方法提高了公共榜单侧重模型和本地分数侧重模型的公共榜单分数。然而,在私有榜单上总体差异很小,在某些情况下基于 pLDDT 的选择实际上表现更好。
提交 1 (公共榜单侧重模型) 变体
| 模型 | 填充 | 结构选择 | 公共榜单 | 私有榜单 |
|---|---|---|---|---|
| 最终提交 1 | 末端相同 (end-same) | k-中心点 (k=5) | 0.46901 | 0.43514 |
| 变体 1-1 | 零 (zero) | k-中心点 (k=5) | 0.46576 | 0.43217 |
| 变体 1-2 | 末端相同 (end-same) | pLDDT 前 2+3 (无 MSA 2 + 有 MSA 3) |
0.44640 | 0.43643 |
| 变体 1-3 | 零 (zero) | pLDDT 前 2+3 | 0.44960 | 0.43443 |
提交 2 (本地分数侧重模型) 变体
| 模型 | 填充 | 结构选择 | 公共榜单 | 私有榜单 |
|---|---|---|---|---|
| 最终提交 2 | 末端相同 (end-same) | k-中心点 (k=5) | 0.43991 | 0.48511 |
| 变体 2-1 | 零 (zero) | k-中心点 (k=5) | 0.43906 | 0.48459 |
| 变体 2-2 | 末端相同 (end-same) | pLDDT 前 2+3 | 0.43826 | 0.48831 |
| 变体 2-3 | 零 (zero) | pLDDT 前 2+3 | 0.43568 | 0.48861 |
'变体' 加载与最终提交 1 或 2 相同的权重。仅改变了推理中的后处理方法。