Giter VIP home page Giter VIP logo

gnina-torch's Introduction

gnina-torch

GitHub Actions Build Status codecov

Documentation Status DOI

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.