logo
0
0
WeChat Login
terry<>
Use prebuilt nucleic data image

RNA-蛋白复合物三维结构预测

基于 Protenix 的 RNA-蛋白复合物结构预测微调框架,目标运行环境为 CNB.cool GPU 云环境。SAISfold/ 保留在项目中,但当前修复完成的主训练路径是 Protenix 微调。

目录结构

RNA-competition/
├── Protenix/                  # Protenix / AF3-style 结构预测模型
├── SAISfold/                  # SAISfold / DyneTrion 探索代码
├── scripts/
│   ├── setup.sh               # 环境初始化
│   ├── verify_nucleic_data.sh # 验证内置 nucleic 数据镜像内容
│   ├── prepare_data.sh        # 旧路径:官方数据解压和 Protenix 预处理
│   ├── finetune_protenix.sh   # Protenix 微调入口
│   ├── run_competition_inference.sh # 赛题推理并生成 output.zip
│   └── train_saisfold.sh      # SAISfold 探索入口
├── competition/inputs/        # 赛题 1.json、2.json、3.json
├── .cnb.yml                   # CNB GPU 环境配置
├── Dockerfile                 # 训练环境镜像
└── README.md

快速开始

1. 上传代码到 CNB

先在 CNB.cool 创建 RNA-competition 仓库。Git 初始化和推送可以最后做;CNB 云原生开发环境中,脚本会自动以项目根目录为工作目录。

2. 使用现成 nucleic 数据镜像

训练数据已经预处理进 Docker 镜像:

docker.cnb.cool/terry-berg/nucleic:latest

RNA-competition/Dockerfile 会从这个镜像复制 /data 到运行镜像的 /opt/nucleic-data。不要再上传 Nucleic_protein_res4.0,也不要再上传 chunk_* 或手动合并原始包。

运行时数据目录:

/opt/nucleic-data/
├── all_cif/
├── all_pkl/
├── components.cif
├── components.cif.rdkit_mol.pkl
├── custom-clusters-by-entity-40.txt
└── indices/
    ├── rna_before202509_all.csv
    ├── rna_before202509_train.csv
    └── rna_before202509_test.csv

/workspace/persist/ 只用于输出、checkpoint 和模型缓存,不存放大训练数据。

3. 初始化环境并验证数据

bash scripts/setup.sh
bash scripts/verify_nucleic_data.sh

小规模冒烟测试:

MAX_STEPS=2 EVAL_INTERVAL=10 CHECKPOINT_INTERVAL=10 bash scripts/finetune_protenix.sh

4. 开始 Protenix 微调

bash scripts/finetune_protenix.sh

常用覆盖参数:

MAX_STEPS=1000 DIFFUSION_BATCH_SIZE=8 CROP_SIZE=384 bash scripts/finetune_protenix.sh

训练输出保存到 /workspace/persist/output/,预训练权重和训练 checkpoint 保存到 /workspace/persist/checkpoints/。默认预训练模型已切换为 protenix_base_20250630_v1.0.0。关闭或销毁 CNB 云原生开发环境前,请把重要 checkpoint 下载或上传到外部存储。

5. 生成比赛提交 output.zip

赛题 JSON 已放在 competition/inputs/。推理和打包:

bash scripts/run_competition_inference.sh

默认会使用 protenix_base_20250630_v1.0.0,对每个题目生成多个 seed/sample 候选,然后按复合置信度和结构质量扣分选择最终 CIF。提交包输出到:

/workspace/persist/competition_outputs/output.zip

压缩包根目录文件名为官方要求的:

1_pred.cif
2_pred.cif
3_pred.cif

常用参数:

SEEDS=101,202,303,404,505 SAMPLE_NUM=5 bash scripts/run_competition_inference.sh
RUN_PROFILES=msa,nomsa EXTRA_PROFILES=msa bash scripts/run_competition_inference.sh
MODEL_NAME=protenix_base_20250630_v1.0.0 bash scripts/run_competition_inference.sh
CHECKPOINT_PATH=/workspace/persist/output/<run>/checkpoints/<step>_ema_0.999.pt bash scripts/run_competition_inference.sh

选择报告保存在 /workspace/persist/competition_outputs/selected_predictions.tsv,候选明细保存在 /workspace/persist/competition_outputs/all_candidates.tsv

CNB 资源配置

项目配置
GPUH20 96GB(共享)
工作区/workspace
数据目录/opt/nucleic-data,来自 docker.cnb.cool/terry-berg/nucleic:latest
输出目录默认 /workspace/persist/,也可用 PERSIST_DIR=/path 覆盖
环境回收CNB Workspaces 的自动备份不适合大文件;/workspace/persist/ 只作为当前环境内的工作目录使用

注意事项

  • 不要把 Nucleic_protein_res4.0chunk_*all_cif/all_pkl/ 提交到 Git 或上传到 CNB 工作区。
  • scripts/prepare_data.sh 保留为备用路径;正常 CNB 流程不需要执行。
  • data/、模型权重、压缩包和输出目录不上传 Git。
  • 赛题输入已纳入 competition/inputs/output.zipscripts/run_competition_inference.sh 生成,提交文件名是 1_pred.cif2_pred.cif3_pred.cif
  • SAISfold/ 保留在项目中,但 scripts/train_saisfold.sh 仍是探索性入口,不作为当前 CNB 微调成功标准。