Skip to content

🔥 PyTorch implementation of GNINA scoring function for molecular docking

License

Notifications You must be signed in to change notification settings

RMeli/gnina-torch

Repository files navigation

gnina-torch

GitHub Actions Build Status codecov

PyTorch implementation of GNINA scoring function.

References

If you are using gnina-torch, please consider citing the following references:

Protein–Ligand Scoring with Convolutional Neural Networks, M. Ragoza, J. Hochuli, E. Idrobo, J. Sunseri, and D. R. Koes, J. Chem. Inf. Model. 2017, 57 (4), 942-957. DOI: 10.1021/acs.jcim.6b00740

libmolgrid: Graphics Processing Unit Accelerated Molecular Gridding for Deep Learning Applications J. Sunseri and D. R. Koes, J. Chem. Inf. Model. 2020, 60 (3), 1079–1084. DOI: 10.1021/acs.jcim.9b01145

If you are using the pre-trained default2018 and dense models from GNINA, please consider citing the following reference as well:

Three-Dimensional Convolutional Neural Networks and a Cross-Docked Data Set for Structure-Based Drug Design, P. G. Francoeur, T. Masuda, J. Sunseri, A. Jia, R. B> Iovanisci, I. Snyder, and D. R. Koes, J. Chem. Inf. Model. 2020, 60 (9), 4200-4215. DOI: 10.1021/acs.jcim.0c00411

Installation

The gnina Python package has several dependencies, including:

A full developement environment can be installed using the conda package manager and the provided conda environment file (devtools/conda-envs/gninatorch.yaml):

conda create -f devtools/conda-envs/gninatorch.yaml
conda activate gninatorch

Once the conda environment is created and activated, the gnina package can be installed using pip as follows:

python -m pip install .

Usage

Training and inference modules try to follow the original Caffe implementation of gnina/scripts, however not all features are implemented.

The folder examples includes some complete examples for training and inference.

The folder gnina/weights contains pre-trained models from GNINA, converted from Caffe to PyTorch.

Pre-trained GNINA models

Pre-trained models (--cnn argument in GNINA) can be easily loaded as follows:

from gnina.gnina import load_gnina_model

model = load_gnina_model(MODEL_NAME)

Inference with pre-trained GNINA models is implemented in the gnina module:

python -m gnina.gnina --helpss

Training

Training is implemented in the training module:

python -m gnina.training --help

Inference

Inference is implemented in the inference module:

python -m gnina.inference --help

Tests

In order to check the installation, unit tests are provided and can be run with pytest:

pytest --cov=gnina

Acknowledgments

Project based on the Computational Molecular Science Python Cookiecutter version 1.6.

The pre-trained weights of GNINA converted to PyTorch were kindly provided by Andrew McNutt (@drewnutt).


Copyright (c) 2021, Rocco Meli