news 2026/4/28 18:14:30

告别商业软件?实测用gnina(CNN打分版)做分子对接:从安装到跑通第一个案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别商业软件?实测用gnina(CNN打分版)做分子对接:从安装到跑通第一个案例

开源分子对接新选择:基于CNN的gnina实战指南

在药物发现和生物化学研究中,分子对接技术扮演着关键角色——它能够预测小分子化合物(配体)与靶标蛋白(受体)之间的相互作用模式。传统商业软件如Schrödinger Suite或MOE虽然功能强大,但高昂的授权费用让许多研究团队望而却步。今天我们要探讨的gnina,这款融合卷积神经网络(CNN)技术的开源工具,正在改变这一局面。

1. 为什么选择gnina?

性能突破:gnina的核心优势在于其CNN打分函数。与传统的基于物理力场的评分系统不同,CNN通过深度学习从大量已知复合物结构中提取特征,能够更准确地预测结合亲和力。实际测试表明,在明确结合口袋的情况下,gnina的Top1姿势成功率比AutoDock Vina提高了15-25个百分点。

开源优势

  • 零成本获取,特别适合预算有限的研究机构
  • 社区驱动开发,迭代速度快
  • 可定制化程度高,支持二次开发

多场景适用

  • 虚拟筛选(Virtual Screening)
  • 结合位点预测
  • 药物重定位研究

提示:虽然gnina性能优异,但对于超大规模虚拟筛选(>100万分子),仍建议使用商业软件的分布式计算方案。

2. 环境准备与安装

2.1 硬件要求

组件最低配置推荐配置
CPU4核16核及以上
内存8GB32GB
GPU支持CUDANVIDIA RTX 3090
存储50GB500GB SSD

特别注意:CNN评分环节必须使用NVIDIA GPU,AMD显卡目前不被支持。

2.2 软件依赖安装

首先确保系统已安装基础开发工具:

sudo apt-get update sudo apt-get install -y build-essential cmake git wget

然后安装必要的库文件:

sudo apt-get install -y libboost-all-dev libeigen3-dev \ libgoogle-glog-dev libprotobuf-dev protobuf-compiler \ libhdf5-dev libatlas-base-dev

2.3 OpenBabel安装

gnina依赖OpenBabel进行分子格式转换:

git clone https://github.com/openbabel/openbabel.git cd openbabel mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local \ -DPYTHON_BINDINGS=ON make -j$(nproc) make install

验证安装:

python3 -c "from openbabel import pybel; print('OpenBabel导入成功')"

2.4 CUDA环境配置

确保CUDA工具包正确安装:

nvcc --version # 应显示11.0以上版本 nvidia-smi # 检查GPU状态

3. gnina编译安装全流程

3.1 获取源代码

git clone --recursive https://github.com/gnina/gnina.git cd gnina

3.2 编译libmolgrid

这是gnina的深度学习核心组件:

git clone https://github.com/gnina/libmolgrid.git cd libmolgrid mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local make -j$(nproc) make install

3.3 主程序编译

cd ../../ # 返回gnina根目录 mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local \ -DLIBMOLGRID_INCLUDE_DIR=$HOME/.local/include \ -DLIBMOLGRID_LIBRARY=$HOME/.local/lib/libmolgrid.so make -j$(nproc) make install

3.4 环境变量设置

将以下内容添加到~/.bashrc:

export PATH=$HOME/.local/bin:$PATH export LD_LIBRARY_PATH=$HOME/.local/lib:$LD_LIBRARY_PATH

然后执行:

source ~/.bashrc

4. 实战案例:COVID-19主蛋白酶抑制剂的对接

我们以SARS-CoV-2主蛋白酶(PDB: 6LU7)与抑制剂N3的对接为例,展示gnina的实际应用。

4.1 准备输入文件

受体准备

  1. 从PDB获取6LU7结构
  2. 去除水分子和原有配体
  3. 添加氢原子并优化质子化状态
gnina -r 6lu7_clean.pdb --prepare_receptor

配体准备

  1. 绘制或获取N3的2D结构(SMILES格式)
  2. 生成3D构象
gnina -l n3.smi --prepare_ligand

4.2 运行对接计算

基本对接命令:

gnina -r 6lu7.pdb -l n3.pdbqt \ --cnn_scoring --cpu 8 \ --out docked.pdbqt

关键参数解析

参数说明推荐值
--cnn_scoring启用CNN评分必选
--cpu使用的CPU核心数4-16
--exhaustiveness搜索强度8-32
--num_modes输出构象数10-20

4.3 结果分析

gnina输出包含:

  • 多个结合构象(PDBQT格式)
  • 每个构象的CNN评分和传统Vina评分
  • 预测的结合自由能(kcal/mol)

使用PyMOL可视化结果:

import pymol pymol.cmd.load("6lu7.pdb", "protein") pymol.cmd.load("docked.pdbqt", "ligand") pymol.cmd.spectrum("b", "red_white_blue", "ligand")

5. 性能优化技巧

GPU加速

export CUDA_VISIBLE_DEVICES=0 # 指定使用的GPU gnina --gpu # 启用GPU加速

批量处理

# 创建文件列表 ls ligands/*.pdbqt > list.txt # 批量对接 parallel -j 4 "gnina -r receptor.pdb -l {} --out {.}_out.pdbqt" :::: list.txt

参数调优

  • 调整--cnn_model选择不同的预训练模型
  • 使用--seed保证结果可重复
  • --flex指定柔性残基

6. 常见问题解决

安装问题

  • CMake报错:检查依赖库是否完整安装
  • 编译内存不足:减少make的-j参数
  • CUDA错误:确认驱动版本匹配

运行问题

ERROR: Could not create CNN scorer

→ 检查CUDA环境变量和GPU驱动

WARNING: Could not detect any OpenMP support

→ 安装libomp-dev并重新编译

性能问题

  • 速度慢:确保使用GPU,增加--cpu线程数
  • 内存不足:减少--num_modes或使用更小的网格

7. 进阶应用

虚拟筛选流程

  1. 准备化合物库(SDF格式)
  2. 生成3D构象
  3. 使用gnina进行初步筛选
  4. 对高分化合物进行精修对接
gnina -r target.pdb -l library.sdf \ --cnn_scoring --cpu 16 \ --out top_hits.sdf \ --num_workers 4

结合自由能计算: 将gnina预测结果与MM/PBSA等方法结合,提高预测准确性。

自定义CNN模型: 利用libmolgrid训练针对特定靶点的专用评分函数:

from libmolgrid import GridMaker, ExampleProvider # 初始化数据提供器 ep = ExampleProvider("train.types") grid_maker = GridMaker() # 训练自定义模型 ...

在实际项目中,我们发现gnina特别适合以下场景:

  • 快速评估大量化合物的结合潜力
  • 研究蛋白-配体相互作用的细微差别
  • 教学和科研演示,因其开源特性可以完整展示计算过程
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 18:13:29

CodeCombat终极指南:如何在游戏冒险中轻松掌握编程技能

CodeCombat终极指南:如何在游戏冒险中轻松掌握编程技能 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat 还在为枯燥的编程学习而烦恼吗?CodeCombat为你带来了革命性的解决方…

作者头像 李华
网站建设 2026/4/28 18:12:50

终极指南:os-tutorial引导加载器与二级引导程序深度解析

终极指南:os-tutorial引导加载器与二级引导程序深度解析 【免费下载链接】os-tutorial How to create an OS from scratch 项目地址: https://gitcode.com/gh_mirrors/os/os-tutorial os-tutorial是一个从零开始创建操作系统的开源项目,本文将深入…

作者头像 李华
网站建设 2026/4/28 18:11:53

从《只狼》到你的项目:用Unity Shader复刻‘危’字外发光提示效果

从《只狼》到你的项目:用Unity Shader复刻‘危’字外发光提示效果 在《只狼:影逝二度》中,敌人发动致命攻击时出现的红色"危"字提示,已经成为游戏设计的经典案例。这种直观的视觉反馈不仅提升了战斗的紧张感&#xff0c…

作者头像 李华