21.WSL中部署gnina分子对接程序ds

一、项目说明

1.1 仓库地址

  • GIT URL: https://github.com/huojichuanqi/ds#

1.2 项目介绍

gnina(发音为 NEE-na)是一个分子对接程序,集成了使用卷积神经网络对配体进行评分和优化的支持。它是 smina 的一个分支,而 smina 是 AutoDock Vina 的一个分支。

二、安装部署

2.1 环境准备

  • 操作系统:Ubuntu22.04
  • CUDA:>12.0
  • cmake: > 2.25 (Ubuntu默认的是2.22.1,需要修改CMakeLists.txt)
  • python:>=3.10.12
  • torch: 需要和cuda的版本一致
    • cuda12.4: pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
    • cuda12.6: pip install torch==2.7.1 torchvision==0.22.1 torchaudio==2.7.1 --index-url https://download.pytorch.org/whl/cu126
  • wsl能访问github(宿主机配置好代理,关闭防火墙)

2.2 开始编译

2.2.1 安装依赖库
bash 复制代码
apt update -y
apt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev  libxml2-dev
apt upgrade cmake

## 安装cuda
sudo apt-get remove nvidia-cuda-toolkit
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
chmod 700 cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run

## 安装cudnn
wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn-cuda-12
2.2.2 安装 OpenBabel3

注意,在 3.1.1 及更早版本中存在键级确定错误。

bash 复制代码
git clone https://github.com/dkoes/openbabel.git
cd openbabel
mkdir build
cd build
cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..
make
make install
2.2.3 安装 gnina
bash 复制代码
git clone https://github.com/gnina/gnina.git
cd gnina
mkdir build
cd build
cmake .. -DCMAKE_CUDA_ARCHITECTURES=75
make -j8
sudo make install

cmake .. \
  -DOPENBABEL3_INCLUDE_DIR=/usr/local/include/openbabel3 \
  -DOPENBABEL3_LIBRARIES= /usr/local/lib/libopenbabel.so \
  -DJSONCPP_INCLUDE_DIR=/usr/include/jsoncpp \
  -DJSONCPP_LIBRARY=/usr/lib/x86_64-linux-gnu/libjsoncpp.so \
  -DBoost_USE_STATIC_LIBS=OFF

gnina编译的时候对环境有要求,如果cmake的版本低于3.25,那么修改根目录的CMakeLists.txt的第一行cmake_minimum_required(VERSION 3.25)为实际的cmake的版本号,cmake的版本号可以通过cmake --version查看。

第二个要修改的也是根目录的CMakeLists.txt,在76行,将set(CMAKE_CUDA_ARCHITECTURES "all-major")改为实际的架构版本,实际的查看命令为nvidia-smi --query-gpu=compute_cap --format=csv

cmakelist 复制代码
 #set(CMAKE_CUDA_ARCHITECTURES "all-major")
set(CMAKE_CUDA_ARCHITECTURES "75")
相关推荐
城事漫游Molly1 分钟前
AI与质性研究的融合(三):AI赋能质性数据分析——从编码到理论构建的新范式
大数据·人工智能·机器学习·prompt·ai for science·智能体·定性研究
chenying9981792 分钟前
语音克隆模型的难点之一:音素对齐及交叉注意力早期失效问题 (兼论旋转位置编码)——F5-TTS、SupertonicTTS、VoxFlash-TTS 对比
人工智能·实时音视频·语音合成·tts·语音克隆
凯丨3 分钟前
会“做梦“的 AI:用一句话生成可以玩的世界——读懂世界模型 Genie 3
人工智能·microsoft
踏着七彩祥云的小丑3 分钟前
AI学习——记忆系统
人工智能·学习·ai
coward914 分钟前
Linux内核驱动初始化流程认识(关于late_initcall和modul_init驱动初始化宏差异)
linux·嵌入式硬件
modelmd6 分钟前
Linux man 命令详解:从入门到精通
linux
ACP广源盛139246256739 分钟前
GSV2221@ACP# 高带宽低功耗显示转换芯片,赋能 TRAE SOLO 设备高清扩展升级
人工智能·嵌入式硬件·电脑·音视频
大强同学10 分钟前
我用 Claude Code,把 NotebookLM 变成了 Obsidian 插件
人工智能·agent·claude·skill·notebooklm
J2虾虾17 分钟前
Spring AI Alibaba - Memory 短期记忆
人工智能·spring·microsoft
SWAGGY..21 分钟前
Linux系统编程:(十一)进程状态&&Linux中的僵尸状态
linux·服务器·编辑器·vim