gnina

GitHub
890 194 较难 1 次阅读 昨天Apache-2.0其他
AI 解读 由 AI 自动生成,仅供参考

gnina 是一款专为分子对接设计的深度学习框架,旨在提升药物发现中预测小分子与蛋白质结合模式及亲和力的准确性。传统对接软件往往依赖经验评分函数,难以精确捕捉复杂的分子间相互作用,而 gnina 通过引入卷积神经网络(CNN),实现了对配体评分和姿态优化的智能化升级,有效解决了这一痛点。

作为 AutoDock Vina 和 smina 的进化版本,gnina 不仅保留了经典高效的搜索算法,更独特地集成了 3D 卷积神经网络技术。它能够直接学习蛋白质 - 配体复合物的三维结构特征,从而提供比传统方法更可靠的打分结果,并支持基于深度学习的配体姿态优化。此外,项目还提供了配套的交叉对接数据集和可视化工具,方便用户深入理解模型决策过程。

这款工具非常适合计算化学家、药物研发人员以及从事结构生物学研究的科学家使用。对于希望探索人工智能在药物设计领域应用的开发者,gnina 也提供了灵活的接口和丰富的文档(包括 Colab 示例和工作坊视频),便于快速上手进行二次开发或模型训练。无论是用于虚拟筛选大规模化合物库,还是精细研究特定靶点的结合机制,gnina 都是一个强大且开源的专业选择。

使用场景

某生物医药公司的计算化学团队正致力于从百万级化合物库中筛选出能高效抑制新型病毒蛋白酶的先导药物,时间紧迫且对结合模式预测精度要求极高。

没有 gnina 时

  • 评分函数局限:依赖传统经验性评分函数(如 Vina 默认算法),难以准确捕捉复杂的蛋白质 - 配体非线性相互作用,导致大量假阳性结果。
  • 姿态预测偏差:在柔性较大的结合口袋中,生成的配体结合姿态往往偏离真实晶体结构,后续需要人工花费数天时间逐一校验和修正。
  • 筛选效率低下:由于准确率不足,必须扩大初筛范围并增加重复实验次数,严重拖慢了从虚拟筛选到湿实验验证的整体流程。
  • 特征利用不足:无法有效利用三维空间中的原子网格特征,忽略了局部化学环境对结合亲和力的关键影响。

使用 gnina 后

  • 深度学习赋能:利用集成卷积神经网络(CNN)的评分模型,显著提升了结合亲和力预测的相关性,大幅降低了假阳性率。
  • 姿态精准优化:通过 CNN 驱动的配体姿态优化功能,自动将分子调整至更接近真实结合构象的位置,减少了 80% 的人工干预需求。
  • 流程加速提效:更高的单次筛选准确度使得团队能缩小候选化合物范围,快速锁定高潜力分子进入合成与测试阶段,研发周期缩短数周。
  • 三维特征洞察:充分挖掘三维原子网格数据,敏锐识别传统方法易漏掉的疏水作用及氢键网络细节,提升了命中质量。

gnina 通过将深度学习深度融入分子对接流程,成功将药物发现中“猜得准”的难题转化为可自动化执行的高精度计算任务。

运行环境要求

操作系统
  • Linux
  • Windows (via WSL2)
GPU

必需 NVIDIA GPU,需安装 CUDA >= 12.0 (WSL2 示例使用 12.4),具体显存大小未说明

内存

未说明

依赖
notes该工具主要推荐在 Ubuntu 22.04 上运行。Windows 用户需使用 WSL2。官方强烈建议使用预编译二进制文件,除非用户有丰富的 Linux 源码编译经验。构建时会自动下载并安装 PyTorch 和 libmolgrid。OpenBabel 需要从特定的 GitHub 仓库 (dkoes/openbabel) 源码编译,因为官方版本存在键序确定错误。若在不同架构的 GPU 集群上编译,需配置 CMAKE_CUDA_ARCHITECTURES=all。
python3.x (通过 python3-dev, python3-numpy, python3-pip 推断)
CUDA >= 12.0
cuDNN
libboost-all-dev
libeigen3-dev
libprotobuf-dev
libhdf5-dev
librdkit-dev
OpenBabel 3 (自定义编译版)
PyTorch (自动获取)
libmolgrid (自动获取)
gnina hero image

快速开始

codecov Github CI

gnina(发音为“NĪ-nə”)是一款分子对接程序,集成了使用卷积神经网络对配体进行打分和优化的功能。它是smina的分支项目,而smina又是AutoDock Vina的分支。

帮助

加入我们的Slack团队。一个展示如何使用gnina的Colab笔记本示例可在此处找到。我们还举办了一场关于使用gnina的研讨会(视频幻灯片)。

引用

如果您觉得gnina有用,请引用我们的论文:

GNINA 1.3:基于深度学习的分子对接的下一个版本(主要应用引用)
A McNutt, Y Li, R Meli, R Aggarwal, DR Koes. J. Cheminformatics, 2025
链接 PubMed

GNINA 1.0:基于深度学习的分子对接(主要应用引用,旧版本)
A McNutt, P Francoeur, R Aggarwal, T Masuda, R Meli, M Ragoza, J Sunseri, DR Koes. J. Cheminformatics, 2021
链接 PubMed ChemRxiv

基于卷积神经网络的蛋白质-配体打分(主要方法引用)
M Ragoza, J Hochuli, E Idrobo, J Sunseri, DR Koes. J. Chem. Inf. Model, 2017
链接 PubMed arXiv

使用Gnina 1.0进行虚拟筛选(虚拟筛选引用) J Sunseri, DR Koes D. Molecules, 2021 链接 预印本

CACHE挑战#1:仅用GNINA对接就足够了(示例应用) I Dunn, S Pirhadi, Y Wang, S Ravindran, C Concepcion, DR Koes. J. Chem. Inf. Model, 2024
链接 PubMed

三维卷积神经网络与交叉对接数据集用于基于结构的药物设计(数据集引用) PG Francoeur, T Masuda, J Sunseri, A Jia, RB Iovanisci, I Snyder, DR Koes. J. Chem. Inf. Model, 2020
链接 PubMed Chemrxiv

基于原子网格的卷积神经网络优化配体构象
M Ragoza, L Turner, DR Koes. 2017年NIPS分子与材料机器学习研讨会,2017年
arXiv

可视化卷积神经网络的蛋白质-配体打分
J Hochuli, A Helbling, T Skaist, M Ragoza, DR Koes. Journal of Molecular Graphics and Modelling, 2018
链接 PubMed arXiv

在D3R 2017社区挑战中使用卷积神经网络打分与最小化
J Sunseri, JE King, PG Francoeur, DR Koes. Journal of computer-aided molecular design, 2018
链接 PubMed

Docker

预先构建的Docker镜像可在这里获取,Dockerfile则位于这里

安装

我们建议您使用预编译的二进制文件,除非您在Linux上具有丰富的软件编译经验;在这种情况下,从源代码编译可能会生成更适合您系统的可执行文件。预编译的二进制文件可以在WSL中使用。

Ubuntu 22.04

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

按照NVIDIA的说明安装最新版本的CUDA(需≥12.0)。请确保nvcc已在您的PATH中。

安装OpenBabel3。请注意,3.1.1及更早版本在键级数确定方面存在错误。

git clone https0://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

安装gnina

git clone https0://github.com/gnina/gnina.git
cd gnina
mkdir build
cd build
cmake ..  # 使用PyTorch 2.7.0和CUDA 12.9时,可能需要指定-DUSE_SYSTEM_NVTX=1
make
make install

WSL2 Ubuntu 22.04

sudo apt-get remove nvidia-cuda-toolkit
wget https0://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
wget https0://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
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

git clone https0://github.com/openbabel/openbabel.git
cd openbabel
mkdir build
cd build
cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..
make -j8
sudo make install

git clone https0://github.com/gnina/gnina.git
cd gnina
mkdir build
cd build
cmake ..
make -j8
sudo make install

如果您正在为配备不同 GPU 的系统构建(例如在集群环境中),请使用 -DCMAKE_CUDA_ARCHITECTURES=all 进行配置。
请注意,如果尚未安装 libmolgridtorch,CMake 构建过程将自动下载并安装它们。

gnina/scripts 中提供的脚本具有额外的 Python 依赖项,必须先进行安装。

用法

将配体 lig.sdf 模拟对接到由另一配体 orig.sdf 定义的受体蛋白 rec.pdb 上的结合位点:

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz

对距离 orig.sdf 3.5 Å 内的柔性侧链残基进行柔性对接(通常不推荐,除非已知口袋区域高度灵活):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz

进行全蛋白对接:

gnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64

在对接精修步骤中利用默认集成 CNN 进行能量最小化(速度比默认重评分选项慢 10 倍):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz

在对接的每一步都使用默认集成 CNN(速度比默认重评分选项慢 1000 倍):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring all -o cnn_all.sdf.gz

使用 Vinardo 打分函数进行所有经验打分:

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --scoring vinardo --cnn_scoring none -o vinardo_docked.sdf.gz

在对接过程中使用不同的 CNN(可参阅帮助信息以获取可用选项):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn dense -o dense_docked.sdf.gz

对已置于结合位点的配体 ligs.sdf 进行能量最小化和打分:

gnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz

将吡唑共价对接到受体蛋白上的特定铁原子上,使吡唑中的氮原子与铁原子形成共价键:

gnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz 

与上述相同,但手动指定共价结合的配体原子位置(而非使用 OpenBabel 的绑定启发式方法),并对配体/残基复合物进行 UFF 优化:

gnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_lig_atom_position -11.796,31.887,72.682  --covalent_optimize_lig  --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz 

所有选项:

输入:
  -r [ --receptor ] arg              受体的刚性部分
  --flex arg                         柔性侧链(如有,PDBQT 格式)
  -l [ --ligand ] arg                配体
  --flexres arg                      用逗号分隔的链:残基编号列表指定柔性侧链
  --flexdist_ligand arg              用于确定柔性距离的参考配体
  --flexdist arg                     将指定距离内的所有侧链设为柔性
  --flex_limit arg                   柔性残基数量上限
  --flex_max arg                     仅保留距离最近的 flex_max 个柔性残基

搜索空间(必填):
  --center_x arg                     中心点 X 坐标
  --center_y arg                     中心点 Y 坐标
  --center_z arg                     中心点 Z 坐标
  --size_x arg                       X 方向尺寸(Å)
  --size_y arg                       Y 方向尺寸(Å)
  --size_z arg                       Z 方向尺寸(Å)
  --autobox_ligand arg               用于自动生成盒子的参考配体。多配体文件仍只定义一个盒子。
  --autobox_add arg                  自动生成盒子时增加的缓冲空间(默认在六个方向各增加 4 Å)
  --autobox_extend arg (=1)          如有必要,扩展自动生成的盒子,以确保待对接配体的初始构象可在盒内自由旋转。
  --no_lig                           不包含配体;用于采样或优化柔性侧链

共价对接:
  --covalent_rec_atom arg            配体共价结合的受体原子。可指定为链:残基编号:原子名称,或 x,y,z 直角坐标。
  --covalent_lig_atom_pattern arg    配体中将与蛋白质共价结合的原子的 SMARTS 表达式。
  --covalent_lig_atom_position arg   可选。共价结合配体原子的初始 x,y,z 直角坐标位置。若未指定,则使用 OpenBabel 的 GetNewBondVector 函数来定位配体。
  --covalent_fix_lig_atom_position   若指定了 covalent_lig_atom_position,则固定配体原子在此位置,而不将其作为初始结构的定义。
  --covalent_bond_order arg (=1)     共价键的键级。默认为 1。
  --covalent_optimize_lig            使用 UFF 对配体和残基的共价复合物进行优化。这会改变配体的键角和键长。

评分与最小化选项:
  --scoring arg                      指定替代的内置评分函数:ad4_scoring 默认 dkoes_fast dkoes_scoring dkoes_scoring_old vina vinardo
  --custom_scoring arg               自定义评分函数文件
  --custom_atoms arg                 自定义原子类型参数文件
  --score_only                       仅对提供的配体构象进行评分
  --local_only                       仅使用 autobox 进行局部搜索(你可能更希望使用 --minimize)
  --minimize                         能量最小化
  --randomize_only                   生成随机构象,尝试避免分子间碰撞
  --num_mc_steps arg                 每条链要执行的固定蒙特卡洛步数
  --max_mc_steps arg                 每条链允许执行的蒙特卡洛步数上限
  --num_mc_saved arg                 每条蒙特卡洛链保存的最优构象数量
  --temperature arg                  用于 Metropolis 接受准则的温度
  --minimize_iters arg (=0)          最速下降法的迭代次数;默认值会根据旋转键数量调整,通常不足以达到收敛
  --accurate_line                    使用精确的一维搜索
  --simple_ascent                    使用简单的梯度上升法
  --minimize_early_term              在完全满足收敛条件之前停止最小化
  --minimize_single_full             在对接过程中执行一次完整的最小化,而不是先进行截断的预评估再进行完整最小化
  --approximation arg                使用的近似方法(线性、样条或精确)
  --factor arg                       近似因子:值越高,近似越精细
  --force_cap arg                    允许的最大力;较小的值会更温和地最小化存在碰撞的结构
  --user_grid arg                    基于用户网格数据计算的 Autodock 地图文件
  --user_grid_lambda arg (=-1)       缩放 user_grid 和功能评分
  --print_terms                      打印所有可用项及其默认参数化
  --print_atom_types                 打印所有可用的原子类型

卷积神经网络(CNN)评分:
  --cnn_scoring 参数 (=1)             CNN评分的强度:无、重新评分 
                                     (默认)、精炼、metrorescore 
                                     (梅特罗波利斯+重新评分)、metrorefine 
                                     (梅特罗波利斯+精炼)、全部
  --cnn 参数                          使用的内置模型,指定 
                                     PREFIX_ensemble 来评估以 PREFIX 开头的模型集合:
                                     all_default_to_default_1_3_1 
                                     all_default_to_default_1_3_2 
                                     all_default_to_default_1_3_3 
                                     crossdock_default2018 
                                     crossdock_default2018_1 
                                     crossdock_default2018_1_3 
                                     crossdock_default2018_1_3_1 
                                     crossdock_default2018_1_3_2 
                                     crossdock_default2018_1_3_3 
                                     crossdock_default2018_1_3_4 
                                     crossdock_default2018_2 
                                     crossdock_default2018_3 
                                     crossdock_default2018_4 
                                     crossdock_default2018_KD_1 
                                     crossdock_default2018_KD_2 
                                     crossdock_default2018_KD_3 
                                     crossdock_default2018_KD_4 
                                     crossdock_default2018_KD_5 default1.0 
                                     default2017 dense dense_1 dense_1_3 
                                     dense_1_3_1 dense_1_3_2 dense_1_3_3 
                                     dense_1_3_4 dense_1_3_PT_KD 
                                     dense_1_3_PT_KD_1 dense_1_3_PT_KD_2 
                                     dense_1_3_PT_KD_3 dense_1_3_PT_KD_4 
                                     dense_1_3_PT_KD_def2018 
                                     dense_1_3_PT_KD_def2018_1 
                                     dense_1_3_PT_KD_def2018_2 
                                     dense_1_3_PT_KD_def2018_3 
                                     dense_1_3_PT_KD_def2018_4 dense_2 dense_3 
                                     dense_4 fast general_default2018 
                                     general_default2018_1 
                                     general_default2018_2 
                                     general_default2018_3 
                                     general_default2018_4 
                                     general_default2018_KD_1 
                                     general_default2018_KD_2 
                                     general_default2018_KD_3 
                                     general_default2018_KD_4 
                                     general_default2018_KD_5 
                                     redock_default2018 redock_default2018_1 
                                     redock_default2018_1_3 
                                     redock_default2018_1_3_1 
                                     redock_default2018_1_3_2 
                                     redock_default2018_1_3_3 
                                     redock_default2018_1_3_4 
                                     redock_default2018_2 redock_default2018_3 
                                     redock_default2018_4 redock_default2018_KD
                                     _1 redock_default2018_KD_2 
                                     redock_default2018_KD_3 
                                     redock_default2018_KD_4 
                                     redock_default2018_KD_5
  --cnn_model 参数                    torch CNN 模型文件;若未指定,则将使用默认模型集合
  --cnn_rotation 参数 (=0)            评估构象的多个旋转(最多 24 种)
  --cnn_mix_emp_force                 合并 CNN 和经验式负力
  --cnn_mix_emp_energy                合并 CNN 和经验式能量
  --cnn_empirical_weight 参数 (=1)    用于缩放和合并经验式力与能量的权重
  --cnn_center_x 参数                 CNN 中心的 X 坐标
  --cnn_center_y 参数                 CNN 中心的 Y 坐标
  --cnn_center_z 参数                 CNN 中心的 Z 坐标
  --cnn_verbose                       启用 CNN 调试的详细输出

输出:
  -o [ --out ] 参数                   输出文件名,格式由文件扩展名决定
  --out_flex 参数                     柔性受体残基的输出文件
  --log 参数                          可选地写入日志文件
  --atom_terms 参数                   可选地写出每个原子的相互作用项值
  --atom_term_data                    将每个原子的相互作用项嵌入到输出 SD 数据中
  --pose_sort_order 参数 (=0)         如何对对接结果排序:CNNscore 
                                     (默认)、CNNaffinity、Energy
  --full_flex_output                  对 out_flex 输出整个结构,而不仅仅是柔性残基。

其他(可选):
  --cpu 参数                          使用的 CPU 数量(默认尝试检测 CPU 数量,若失败则使用 1 个)
  --seed 参数                         显式随机种子
  --exhaustiveness 参数 (=8)          全局搜索的彻底程度(大致与时间成正比)
  --num_modes 参数 (=9)               生成的最大结合模式数量
  --min_rmsd_filter 参数 (=1)         用于过滤最终构象以去除冗余的 RMSD 值
  -q [ --quiet ]                      抑制输出信息
  --addH 参数                         自动在配体中添加氢原子(默认开启)
  --stripH 参数                       在进行原子类型化之后,为提高效率而移除分子中的极性氢原子(默认关闭——非极性氢始终会被移除)
  --device 参数 (=0)                  使用的 GPU 设备
  --no_gpu                             禁用 GPU 加速,即使可用也不使用。

配置文件(可选):
  --config 参数                       上述选项可以放入此处

信息(可选):
  --help                             显示使用摘要
  --help_hidden                      显示包含隐藏选项的使用摘要
  --version                          显示程序版本

CNN 打分

--cnn_scoring 决定了在对接过程中何时使用 CNN 打分函数。

  • none - 对接过程中不使用任何 CNN。全程使用指定的经验打分函数。
  • rescore(默认)- 在最终构象的重新打分时使用 CNN。这是计算开销最低的 CNN 选项。
  • refinement - 在蒙特卡洛链之后以及对输出构象进行最终打分时使用 CNN 来优化构象。使用 GPU 时,其速度比 rescore 慢约 10 倍。
  • all - 在整个对接过程中始终使用 CNN 作为打分函数。这种模式计算量极大,不推荐使用。

默认的 CNN 打分函数是由 3 个模型组成的集成模型,这些模型在构象预测性能和运行时间之间取得了平衡:dense_1_3、dense_1_3_PT_KD_3、crossdock_default2018_KD_4。GNINA 1.0 的默认集成模型仍然可用,名为 default1.0。有关这些不同模型的更多信息,请参阅上述论文。

训练

用于训练 PyTorch GNINA 模型及预训练模型的脚本可在 https://github.com/RMeli/gnina-torch 找到。 下面展示了将 PyTorch 模型转换为 GNINA 可用模型文件的示例代码。元数据应提供输入网格分辨率、尺寸和原子类型的信息。如果未提供,则将使用默认值。

    d = {
        'resolution': 0.5,
        'dimension' : 23.5,
        'recmap' : '''AliphaticCarbonXSHydrophobe 
    AliphaticCarbonXSNonHydrophobe 
    AromaticCarbonXSHydrophobe 
    AromaticCarbonXSNonHydrophobe
    Bromine Iodine Chlorine Fluorine
    Nitrogen NitrogenXSAcceptor 
    NitrogenXSDonor NitrogenXSDonorAcceptor
    Oxygen OxygenXSAcceptor 
    OxygenXSDonorAcceptor OxygenXSDonor
    Sulfur SulfurAcceptor
    Phosphorus 
    Calcium
    Zinc
    GenericMetal Boron Manganese Magnesium Iron''',
        
    'ligmap': '''AliphaticCarbonXSHydrophobe 
    AliphaticCarbonXSNonHydrophobe 
    AromaticCarbonXSHydrophobe 
    AromaticCarbonXSNonHydrophobe
    Bromine Iodine
    Chlorine
    Fluorine
    Nitrogen NitrogenXSAcceptor 
    NitrogenXSDonor NitrogenXSDonorAcceptor
    Oxygen OxygenXSAcceptor 
    OxygenXSDonorAcceptor OxygenXSDonor
    Sulfur SulfurAcceptor
    Phosphorus
    GenericMetal Boron Manganese Magnesium Zinc Calcium Iron'''
    }
    
    extra = {'metadata':json.dumps(d)}
    z = torch.zeros((1,28,48,48,48))

    script = torch.jit.trace(model, z)
    script.save('gnina_model.pt',_extra_files=extra)    

用于训练 Caffe 模型的旧版脚本可在 https://github.com/gnina/scripts 找到,示例模型则可在 https://github.com/gnina/models 查看。

原始论文中使用的 DUD-E 对接构象可在此处找到 [http://bits.csb.pitt.edu/files/docked_dude.tar],但我们[不建议](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0220113)使用 DUD-E 数据来训练虚拟筛选模型。CrossDocked2020 数据集可在此处找到 [https://github.com/gnina/models/tree/master/data/CrossDocked2020]。

许可证

gnina 同时采用 GPL 和 Apache 许可证双重授权。GPL 许可证是因为使用了 OpenBabel(该软件采用 GPL 许可证)。若仅希望以 Apache 许可证使用 gnina,则必须从源代码中移除所有与 OpenBabel 相关的引用。

版本历史

v1.3.22025/07/08
v1.3.12025/05/23
v1.32024/10/04
v1.12023/12/18
v1.0.32023/02/10
v1.0.22022/06/21
v1.0.12021/03/23
v1.02021/01/14
v1.0-rc.12020/12/30

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|2天前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|4天前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|4天前
其他图像数据工具

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|1周前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75.4k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|1周前
开发框架其他