Awesome
gnina-torch
PyTorch implementation of GNINA scoring function.
References
@software{
gninatorch_2022,
author = {Meli, Rocco and McNutt, Andrew},
doi = {10.5281/zenodo.6943066},
month = {7},
title = {{gninatorch}},
url = {https://github.com/RMeli/gnina-torch},
version = {0.0.1},
year = {2022}
}
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
If you are using the pre-trained default
model ensemble from GNINA, please consider citing the following reference as well:
GNINA 1.0: molecular docking with deep learning, A. T. McNutt, P. Francoeur, R. Aggarwal, T. Masuda, R. Meli, M. Ragoza, J. Sunseri, D. R. Koes, J. Cheminform. 2021, 13 (43). DOI: 10.1186/s13321-021-00522-2
Installation
The gninatorch
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 env create -f devtools/conda-envs/gninatorch.yaml
conda activate gninatorch
Once the conda environment is created and activated, the gninatorch
package can be installed using pip as follows:
python -m pip install .
Tests
In order to check the installation, unit tests are provided and can be run with pytest:
pytest --cov=gninatorch
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 gninatorch/weights
contains pre-trained models from GNINA, converted from Caffe to PyTorch.
Pre-trained GNINA models
Pre-trained GNINA models can be loaded as follows:
from gninatorch.gnina import setup_gnina_model
model = setup_gnina_model(MODEL)
where MODEL
corresponds to the --cnn
argument in GNINA.
A single model will return log_CNNscore
and CNNaffinity
, while an ensemble of models will return log_CNNscore
, CNNaffinity
, and CNNvariance
.
Inference with pre-trained GNINA models (--cnn
argument in GNINA) is implemented in the gnina
module:
python -m gninatorch.gnina --help
Training
Training is implemented in the training
module:
python -m gninatorch.training --help
Inference
Inference is implemented in the inference
module:
python -m gninatorch.inference --help
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-2022, Rocco Meli