La-Proteina
模型介绍
La-Proteina 是一种基于**部分隐变量流匹配(Partially Latent Flow Matching)**的蛋白质结构生成模型,能够直接生成全原子蛋白质结构及其对应的氨基酸序列。
论文:La-Proteina: Atomistic Protein Generation via Partially Latent Flow Matching(arXiv 2025)。
模型描述
La-Proteina 将蛋白质的骨架(backbone CA)显式建模,而序列和原子级细节则通过每个残基的固定维度隐变量来捕捉,从而有效避免显式侧链表示带来的挑战。
适用场景
| 场景 | 说明 |
|---|---|
| 蛋白质结构生成 | 基于流匹配生成蛋白质主链(backbone CA)与局部隐变量(local latents)。 |
| Motif 约束生成 | 支持 motif 位置与序列约束,实现功能 motif 的骨架设计。 |
| 扩散模型训练 | 在 PDB 数据集上训练 La-Proteina 主模型。 |
| 自编码器训练与推理 | 训练局部隐变量自编码器,并对 PDB 结构执行编码、解码与重建评估。 |
| 生成结果评估 | 计算 RMSD、序列恢复率和 (co-)designability 等指标。 |
使用说明
1. OneCode使用
可通过 OneCode 在线环境体验智能化一键式 AI4S 编程:
2. 手动安装使用
硬件要求
- 推荐使用GPU或DCU运行。
- CPU可以用于连通性验证,但速度较慢。
- DCU用户需要预先安装DTK,建议使用DTK 25.04.2以上版本或与当前集群匹配的OneScience推荐版本。
软件要求
DCU用户想了解更多适配内容请联系 liubiao@sugon.com
环境检测
- NVIDIA GPU:
nvidia-smi
- 海光DCU:
hy-smi
环境准备
可选:通过环境变量覆盖默认路径:
```bash
export LAPROTEINA_ROOT=/path/to/la-proteina
export LAPROTEINA_DATASET_DIR=/path/to/dataset
export LAPROTEINA_CHECKPOINTS_DIR=/path/to/checkpoints_laproteina
export DATA_PATH=/path/to/dataset
```
快速开始
1. 安装运行环境
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[bio] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
#如果下述代码运行存在找不到库的情况,需要激活cuda,参考下列代码
source ${ROCM_PATH}/cuda/env.sh
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib/python3.11/site-packages/fastpt/torch/lib:$LD_LIBRARY_PATH"
2. 下载模型包
# 默认下载到当前路径下 model 文件夹;如需修改,请调整 local_dir 后的路径
modelscope download --model OneScience/La-Proteina --local_dir ./model
cd model
训练权重&数据集
近期上传魔搭,后续支持指令下载
3. 使用方式
建议在 laproteina 目录下运行脚本,以便输出集中管理。
1. 训练 La-Proteina 主模型(run_train.sh)
bash scripts/run_train.sh
常用 Hydra 参数覆盖:
# 单卡调试
bash scripts/run_train.sh hardware.ngpus_per_node_=1 single=true
# 指定运行名称
bash scripts/run_train.sh run_name=my_laproteina_run
# 覆盖数据集或网络配置(对应 motif 训练场景)
bash scripts/run_train.sh dataset=pdb/pdb_train_motif_aa nn=local_latents_score_nn_160M_motif_idx_aa
输出:
./store/<run_name>/:训练日志、检查点与 Hydra 配置
2. 蛋白质结构生成(run_generate.sh)
bash scripts/run_generate.sh
默认使用 inference_ucond_tri 配置进行无条件生成(LD2 模型 + AE1)。
切换生成配置:
# 无条件生成(无三角注意力)
bash scripts/run_generate.sh --config_name inference_ucond_notri
# 无条件生成长链(300-800 残基)
bash scripts/run_generate.sh --config_name inference_ucond_notri_long
# 索引式全原子 motif 支架
bash scripts/run_generate.sh --config_name inference_motif_idx_aa
# 索引式 tip-原子 motif 支架
bash scripts/run_generate.sh --config_name inference_motif_idx_tip
# 非索引式全原子 motif 支架
bash scripts/run_generate.sh --config_name inference_motif_uidx_aa
# 非索引式 tip-原子 motif 支架
bash scripts/run_generate.sh --config_name inference_motif_uidx_tip
输出:
./inference/<config_name>/:生成的蛋白质结构文件与元数据
3. 生成结果评估(run_evaluate.sh)
bash scripts/run_evaluate.sh
默认评估 inference_ucond_tri 配置对应的生成结果。
ProteinMPNN 权重准备:
评估前需下载 ProteinMPNN 权重,可从魔搭社区下载:
modelscope download --model OneScience/ProteinMPNN --local_dir ./weight
输出:
./inference/<config_name>/evaluation/:评估结果文件
4. 自编码器推理(run_ae_infer.sh)
bash scripts/run_ae_infer.sh
对 PDB 数据集执行编码-解码重建,评估重建指标(如全原子 RMSD、序列恢复率等)。
脚本会检查 DATA_PATH/pdb_train 与 AE1_ucond_512.ckpt 是否存在。
脚本内部调用:
python infer_laproteina_ae.py "$@"
常用参数覆盖:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
LAPROTEINA_ROOT |
${ONESCIENCE_DATASETS_DIR}/la-proteina |
数据与权重根目录 |
LAPROTEINA_CHECKPOINTS_DIR |
${LAPROTEINA_ROOT}/checkpoints_laproteina |
自编码器权重目录 |
DATA_PATH |
${LAPROTEINA_ROOT}/dataset |
数据集目录 |
输出:
./inference_ae/:重建结构与评估指标
注意事项
- 运行脚本前需确保
ONESCIENCE_DATASETS_DIR环境变量已正确设置。 - 训练脚本默认检查
DATA_PATH/pdb_train与AE1_ucond_512.ckpt是否存在,缺失会报错退出。 - 当前集成中
dataset=pdb已可用,dataset=genie2与dataset=pdb_multimer在当前仓库快照中未打包,运行会显式报错。 - 脚本会自动设置 ROCm/DCU 相关的
LD_LIBRARY_PATH,在海光 DCU 平台可直接运行;在 CUDA 平台可忽略或按需调整。 - 生成 motif 支架结构时,请确保 LD 模型与对应的 AE 模型配对正确,否则可能因长度/任务不匹配导致失败。
- 评估 (co-)designability 需要 ProteinMPNN 权重,请提前运行
script_utils/download_pmpnn_weights.sh下载。 - 所有脚本建议在
examples/biosciences/laproteina目录下执行,以便输出目录统一。 - 通过 Hydra 覆盖配置时,可以使用
+CK_PATH=...指定 checkpoint 根路径,脚本在未提供时会自动设置为LAPROTEINA_ROOT。
OneScience 官方信息
| 平台 | OneScience 主仓库 | Skills 仓库 |
|---|---|---|
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
引用与许可证
示例代码采用 Apache 2.0 许可证。La-Proteina 模型权重采用 NVIDIA Open Model License Agreement,其他材料采用 CC-BY 4.0。
如果您在研究中使用了 La-Proteina,请引用原始论文:
@article{geffner2025laproteina,
title={La-Proteina: Atomistic Protein Generation via Partially Latent Flow Matching},
author={Geffner, Tomas and Didi, Kieran and Cao, Zhonglin and Reidenbach, Danny and Zhang, Zuobai and Dallago, Christian and Kucukbenli, Emine and Kreis, Karsten and Vahdat, Arash},
journal={arXiv preprint arXiv:2507.09466},
year={2025}
}