首页
/ 如何用LigandMPNN实现高效分子对接?超详细AI药物设计教程 🚀

如何用LigandMPNN实现高效分子对接?超详细AI药物设计教程 🚀

2026-02-05 04:51:04作者:丁柯新Fawn

LigandMPNN是一款基于消息传递神经网络(MPNN)的AI驱动分子对接工具,能够精准预测蛋白质-配体相互作用,显著提升药物设计效率。本教程将带你快速掌握从环境配置到高级设计的全流程,让复杂的分子优化变得简单!

🌟 为什么选择LigandMPNN?

LigandMPNN作为ProteinMPNN的增强版,专为配体存在下的蛋白质设计优化,核心优势包括:

多模型支持:内置ProteinMPNN/LigandMPNN/膜蛋白专用模型,满足不同场景需求
精准控制:支持固定残基、氨基酸偏好调整、对称性设计等高级功能
高效解析:保留原始PDB文件的残基编号和链信息,避免序列错位
集成工具链:自带侧链 packing、序列评分功能,一站式完成设计-评估

特别适合小分子药物开发、酶工程改造和蛋白质-配体相互作用研究

📋 环境准备与安装指南

🔧 核心依赖

Python ≥3.0 | PyTorch | Numpy | ProDy (PDB解析)

🚀 一键安装步骤

# 1. 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/li/LigandMPNN.git
cd LigandMPNN

# 2. 创建虚拟环境
conda create -n ligandmpnn_env python=3.11
conda activate ligandmpnn_env

# 3. 安装依赖包
pip3 install -r requirements.txt

# 4. 下载模型参数 (关键步骤!)
bash get_model_params.sh "./model_params"

💡 模型参数存储路径:./model_params,包含多种噪声水平的预训练权重

🎯 快速上手:第一个分子设计任务

以1BC8蛋白(含配体结构)为例,5分钟完成序列设计:

python run.py \
  --model_type "ligand_mpnn" \  # 使用配体感知模型
  --seed 111 \                  # 随机种子(确保结果可复现)
  --pdb_path "./inputs/1BC8.pdb" \  # 输入PDB文件
  --out_folder "./outputs/my_first_design"  # 结果输出目录

📂 输出文件说明

文件路径 说明
outputs/my_first_design/seqs/1BC8.fa 设计的蛋白质序列(含置信度评分)
outputs/my_first_design/backbones/1BC8_1.pdb 带设计序列的PDB结构

序列文件中会显示 overall_confidenceligand_confidence 指标,数值越高表示模型对设计结果越自信(范围0-1)

⚙️ 核心功能详解与实战案例

1️⃣ 氨基酸偏好控制(全局/逐残基)

全局偏好设置

# 偏向W/P/C,避免A
python run.py \
  --pdb_path "./inputs/1BC8.pdb" \
  --bias_AA "W:3.0,P:3.0,C:3.0,A:-3.0" \
  --out_folder "./outputs/global_bias"

逐残基精确控制

创建JSON配置文件 inputs/bias_AA_per_residue.json

{
  "C1": {"P": 10.0},  # C1强制为脯氨酸
  "C3": {"G": -5.0}   # C3禁止甘氨酸
}

运行命令:

python run.py \
  --pdb_path "./inputs/1BC8.pdb" \
  --bias_AA_per_residue "./inputs/bias_AA_per_residue.json" \
  --out_folder "./outputs/per_residue_bias"

2️⃣ 对称性设计(同源寡聚体专用)

实现C1=C2=C3、C4=C5对称设计:

python run.py \
  --pdb_path "./inputs/1BC8.pdb" \
  --symmetry_residues "C1,C2,C3|C4,C5" \  # 分组定义
  --symmetry_weights "0.33,0.33,0.33|0.5,0.5" \  # 权重分配
  --out_folder "./outputs/symmetry_design"

🔬 常用于设计同源二聚体、四聚体等对称性蛋白质

3️⃣ 侧链 packing 功能

设计序列后自动优化侧链构象:

python run.py \
  --model_type "ligand_mpnn" \
  --pdb_path "./inputs/1BC8.pdb" \
  --pack_side_chains 1 \  # 启用侧链packing
  --number_of_packs_per_design 4 \  # 生成4个构象样本
  --out_folder "./outputs/sc_default"

📊 输出文件位于 ./outputs/sc_default/packed/,B因子列显示侧链构象置信度

4️⃣ 批量处理多PDB文件

通过JSON配置文件批量处理多个蛋白:

# inputs/pdb_ids.json 示例
{
  "./inputs/1BC8.pdb": "",
  "./inputs/4GYT.pdb": ""
}

运行命令:

python run.py \
  --pdb_path_multi "./inputs/pdb_ids.json" \
  --out_folder "./outputs/batch_design"

📈 设计结果评估:序列评分工具

使用 score.py 评估设计序列的合理性:

# 自回归评分(考虑序列依赖关系)
python score.py \
  --model_type "ligand_mpnn" \
  --pdb_path "./outputs/my_first_design/backbones/1BC8_1.pdb" \
  --autoregressive_score 1 \
  --use_sequence 1 \  # 使用设计的序列进行评估
  --out_folder "./outputs/design_scores"

📉 输出指标解析

指标 说明
log_probs 对数概率(越高越好)
mean_of_probs 位置平均概率(反映序列保守性)
std_of_probs 概率标准差(反映设计多样性)

🛠️ 高级参数调优指南

温度参数(控制序列多样性)

--temperature 0.1  # 低温度 → 保守设计(多样性低)
--temperature 1.0  # 高温度 → 激进设计(多样性高)

残基固定与重设计

# 固定C1-C10,重设计其他区域
--fixed_residues "C1 C2 C3 C4 C5 C6 C7 C8 C9 C10"

配体上下文开关

# 不使用配体信息(用于对照实验)
--ligand_mpnn_use_atom_context 0

📚 项目结构与核心模块

LigandMPNN/
├── inputs/          # 输入文件(PDB/JSON配置)
├── outputs/         # 设计结果(序列/PDB)
├── model_params/    # 预训练模型参数
├── openfold/        # 依赖模块(结构解析/工具函数)
├── run.py           # 主程序入口
├── score.py         # 序列评分工具
└── sc_utils.py      # 侧链packing功能

📌 核心算法实现:model_utils.py(模型构建)、data_utils.py(数据处理)

🚫 常见问题与解决方案

Q1: 运行时报错 "模型参数文件不存在"?

A: 确保执行了 bash get_model_params.sh "./model_params",若下载慢可手动从项目主页获取。

Q2: 设计序列与配体发生空间冲突?

A: 启用侧链优化并增加pack次数:--number_of_packs_per_design 10

Q3: 如何设计跨膜蛋白?

A: 使用膜蛋白专用模型:

--model_type "per_residue_label_membrane_mpnn" \
--transmembrane_buried "C1 C2 C3"  # 指定跨膜区域

📝 引用与致谢

如果使用本工具发表论文,请引用:

@article{dauparas2023atomic,
  title={Atomic context-conditioned protein sequence design using LigandMPNN},
  author={Dauparas, Justas and Lee, Gyu Rie and Pecoraro, Robert and others},
  journal={Biorxiv},
  year={2023}
}

🙏 本项目基于ProteinMPNN开发,部分代码借鉴自Openfold

🎯 总结

LigandMPNN通过AI驱动的分子设计,为药物研发和蛋白质工程提供了强大工具。从基础的序列设计到复杂的对称性改造,只需简单参数配置即可实现专业级结果。立即上手,开启你的分子设计之旅吧!

🔗 项目地址:https://gitcode.com/gh_mirrors/li/LigandMPNN
📧 问题反馈:提交issue至项目仓库


祝你的分子设计实验顺利!💊🧬

登录后查看全文
热门项目推荐
相关项目推荐