Giter Site home page Giter Site logo

ethmodlab / delfta Goto Github PK

View Code? Open in Web Editor NEW

This project forked from josejimenezluna/delfta

0.0 0.0 0.0 3.35 MB

Δ-QML for medicinal chemistry

License: GNU Affero General Public License v3.0

Python 99.15% Makefile 0.39% Dockerfile 0.30% Shell 0.09% Batchfile 0.06%

delfta's Introduction

DelFTa: Open-source Δ-quantum machine learning for medicinal chemistry

delfta conda Documentation Status codecov License: AGPL v3

Overview

The DelFTa application is an easy-to-use, open-source toolbox for predicting quantum-mechanical properties of drug-like molecules. Using either ∆-learning (with a GFN2-xTB baseline) or direct-learning (without a baseline), the application accurately approximates DFT reference values (ωB97X-D/def2-SVP). It employs state-of-the-art E(3)-equivariant graph neural networks trained on the QMugs dataset of quantum-mechanical properties, and can predict formation and orbital energies, dipoles, Mulliken partial charges and Wiberg bond orders. See the paper for more details.

Installation

While the Linux (and Windows, through WSL) installations fully support GPU-acceleration via cudatoolkit, only CPU inference is currently available under Mac OS. We currently support Python 3.7 and 3.8 builds.

Installation via conda

We recommend and support installation via the conda package manager, and that a fresh environment is created beforehand. Then fetch the package from our channel:

conda install delfta -c delfta -c pytorch -c rusty1s -c conda-forge

Installation via Docker

A CUDA-enabled container can be pulled from DockerHub.

We also provide a Dockerfile for manual builds:

docker build -t delfta . 

Attach to the provided container with:

docker run -it delfta bash

First run

DelFTa requires some additional files (e.g. trained models) before it can be used. Execute the following in order to fetch those:

python -c "import runpy; _ = runpy.run_module('delfta.download', run_name='__main__')"

Quick start

We interface with Pybel (OpenBabel). Most molecular file formats are supported (e.g. .sdf, .xyz).

from openbabel.pybel import readstring
mol = readstring("smi", "CCO")

from delfta.calculator import DelftaCalculator
calc = DelftaCalculator()
preds = calc.predict(mol)

print(preds)

Further documentation on how to use the package is available under ReadTheDocs.

Tutorials

In-depth tutorials can be found in the tutorials subfolder. These include:

  • delta_vs_direct.ipynb: This showcases the basics of how to run the calculator, and compares results using direct- and Δ-learning models.
  • calculator_options.ipynb: This dives into the different options you can initialize the calculator class with.
  • training.ipynb: A simple example of how networks can be trained.

Citation

If you use this software or parts thereof, please consider citing the following BibTex entry:

 @article{atz2021delfta, 
  title={Open-source Δ-quantum machine learning for medicinal chemistry}, 
  DOI={10.33774/chemrxiv-2021-fz6v7}, 
  journal={ChemRxiv}, 
  publisher={Cambridge Open Engage}, 
  author={Atz, Kenneth and Isert, Clemens and Böcker, Markus N. A. and Jiménez-Luna, José and Schneider, Gisbert}, 
  year={2021}
} 

delfta's People

Contributors

atzkenneth avatar cisert avatar josejimenezluna avatar

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.