如何用LigandMPNN实现高效分子对接?超详细AI药物设计教程 🚀
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_confidence和ligand_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至项目仓库
祝你的分子设计实验顺利!💊🧬
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0159
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
BitCPM-CANN-8BBitCPM-CANN 是首个基于华为昇腾 NPU 原生构建的端到端 1.58 位(三值化)大语言模型训练系统。该系统将量化感知训练(QAT)集成到 Megatron-LM 框架中,并结合 MindSpeed 加速,覆盖了从自定义三值算子到基于昇腾 910B 的分布式并行训练的完整训练栈。Python00
novelnovel 是一套基于时下最新 Java 技术栈 Spring Boot 3 + Vue 3 开发的前后端分离学习型小说项目,配备保姆级教程手把手教你从零开始开发上线一套生产级别的 Java 系统,由小说门户系统、作家后台管理系统、平台后台管理系统等多个子系统构成。包括小说推荐、作品检索、小说排行榜、小说阅读、小说评论、会员中心、作家专区、充值订阅、新闻发布等功能。Java04
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0153