Skip to main content

Molecular reinforcement learning

Project description

Molecular Reinforcement Learning

Unlocking reinforcement learning for drug design

MRL is an open source python library designed to unlock the potential of drug design with reinforcement learning.

MRL bridges the gap between generative models and practical drug discovery by enabling fine-tuned control over chemical spaces. Control what structures are generated and where they occur.

MRL is suitable for all stages of drug discovery, from high diversity hit expansion screens to hyper-focused lead optimization

rgroup optimization

Use Cases

MRL can be applied to:

View our tutorials for more examples

Install

Without Installing

MRL can be used without installing via Google Collab. Open any page in the documentation and click the "Open in Collab" button to open the notebook in Google Collab. Make sure to change the runtime to GPU.

Anaconda

MRL is available via Anaconda.

conda create -n mrl python=3.7
conda install -c dmai -c rdkit -c pytorch -c fastai -c conda-forge mrl
pip install selfies>=2.0.0

PyPi

MRL is available via pypi. First install pytorch. Then run the following:

pip install mrl-pypi

Developer Install

If you plan to develop the library or want the most up to date release, use an editable install. First install pytorch. Then run the following:

git clone https://github.com/DarkMatterAI/mrl
pip install -e .

How to use

Here's an example of using a MRL pre-trained model to generate compounds based on the ChEMBL library:

from mrl.model_zoo import LSTM_LM_Small_Chembl

agent = LSTM_LM_Small_Chembl()

preds, log_probs = agent.model.sample_no_grad(512, 90)
smiles = agent.reconstruct(preds)

smiles[:10]
>['COC(=O)C1=C(Nc2ccc(Br)cc2)SCC1=O',
 'Cc1nnc2n1CN(C(C)=O)CC2c1ccc2c(c1)OCO2',
 'COc1ccc(C(=O)NNc2c(C#N)cnn2-c2ccccc2)c(OC)c1',
 'COC(=O)C1(C)C=C(N2CC2)C(=O)C(C(C)=O)=C1',
 'CC(O)(c1cccc(Cl)c1)c1nc(-c2cccc(-n3cncn3)c2)co1',
 'Clc1cccc2ccc(-n3c(-c4ccccc4)nc4ccccc4c3=O)nc12',
 'Cc1cccc(NC(=O)CSc2nnnn2-c2ccc3c(c2)OCCO3)c1',
 'Nc1n[nH]c(=O)c2cc(NCc3ccc(C(=O)O)c(Cl)c3)ccc12',
 'CCOc1ccc(NC(=O)c2oc3ccccc3c2NC(=O)c2ccccc2OC)cc1',
 'Cc1ccc2c(N3CCN(CC(=O)Nc4ccc(N5CCCCC5=O)cc4)CC3)cccc2n1']

Getting Started

See the MRL documentation page for full documentaion

See the MRL tutorials page for examples

Contributing

MRL uses nbdev for development. This allows us to build code, tests and documentation at the same time.

To contribute, install nbdev. Then run nbdev_install_git_hooks in your terminal. This sets up git hooks, which clean up the notebooks to remove the extraneous stuff stored in the notebooks which causes unnecessary merge conflicts.

If you make changes to a notebook, run nbdev_build_lib to update the library.

If you make changes to the library, run nbdev_update_lib to update the notebooks.

Submit PRs to the dev branch.

Before submitting a PR, run nbdev_diff_nbs to verify the notebooks and the library match.

Acknowledgements

MRl is built using many open source libraries. We would especially like to thank the development teams behind Pytorch, RDKit and fastai

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mrl-pypi-0.1.5.tar.gz (97.5 kB view details)

Uploaded Source

Built Distribution

mrl_pypi-0.1.5-py3-none-any.whl (109.9 kB view details)

Uploaded Python 3

File details

Details for the file mrl-pypi-0.1.5.tar.gz.

File metadata

  • Download URL: mrl-pypi-0.1.5.tar.gz
  • Upload date:
  • Size: 97.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for mrl-pypi-0.1.5.tar.gz
Algorithm Hash digest
SHA256 5f45575f3e48bc197413c19c65c695b7acb5c36a733d8f090d354ebe37732538
MD5 a6b21c032fe138e2c2d39f8f62b34104
BLAKE2b-256 cb977d38df95b8afa4b3516175063b33358aa79483cd1c4c0b58f8e6849a12e6

See more details on using hashes here.

File details

Details for the file mrl_pypi-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: mrl_pypi-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 109.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for mrl_pypi-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ac326d302704c664b3ade19dc03240ae80b06eba72ab2e4cfcbd00b1d7478397
MD5 0610dce0e0ed31c893a84c03844af1b7
BLAKE2b-256 ab355be997ae89abd12179ea88d52807958afc6b0a8f0474386ff8d769b7070e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page