A toolkit for structure-based open antiviral drug discovery by the ASAP Discovery Consortium.
All pandemics are global health threats. Our best defense is a healthy global antiviral discovery community with a robust pipeline of open discovery tools. The AI-driven Structure-enabled Antiviral Platform (ASAP) is making this a reality!
The toolkit in this repo is a batteries-included drug discovery pipeline being actively developed in a transparent open-source way, with a focus on computational chemistry and informatics support for medicinal chemistry. Coupled with ASAP's active data disclosures our campaign to develop a new series of antivirals can provide insight into the drug discovery process that is normally conducted behind closed doors.
Install the asapdiscovery
subpackages and begin to explore! Our docs can be found here.
There are a range of workflows and tooling to use split into several namespace subpackages by theme.
asapdiscovery-alchemy
: Free energy calculations using OpenFE and Alchemiscale. See tutorial and CLI guide
asapdiscovery-cli
: Command line tools uniting the whole repo.
asapdiscovery-data
: Core data models and integrations with services such as Postera.ai. See tutorial
asapdiscovery-dataviz
: Data and structure visualization using 3DMol
and PyMOL
. See tutorial
asapdiscovery-docking
: Docking and compound screening with the OpenEye
toolkit
asapdiscovery-spectrum
: Working with sequence and fitness information. See tutorial
asapdiscovery-ml
: Structure based ML models for predicting compound activity. See tutorial and CLI guide
asapdiscovery-modelling
: Structure prep and standardisation
asapdiscovery-simulation
: MD simulations and analysis using OpenMM. See tutorial
asapdiscovery-workflows
: Workflows that combine components to enable project support. See tutorial and CLI guide
asapdiscovery
is pre-alpha and is under very active development, we make no guarantees around correctness and the API is liable to change rapidly at any time.
Note: currently all asapdiscovery
packages support Python <=3.11 only.
You can install the package from the wonderful conda-forge
with mamba install -c conda-forge asapdiscovery
.
asapdiscovery
is a namespace package, composed of individual Python packages with their own dependencies.
Each of these packages follows the asapdiscovery-*
convention for the package name, e.g. asapdiscovery-data
.
To install an asapdiscovery
package hosted in this repository, we recommend the following:
-
Clone the repository, then enter the source tree:
git clone https://github.com/choderalab/asapdiscovery.git cd asapdiscovery
-
Install the dependencies into a new
conda
environment, and activate it: NOTES: Conda will almost certainly fail to build the environment -mamba
is a drop-in replacement forconda
that is much faster and more reliable. Additionally, if the environment is built on a CPU,torch
may not compile with GPU support. Instead, build the environment as described on a GPU node; the architecture will be detected automatically. Alternatively to build for a specific CUDA version you can use themamba env create -f devtools/conda-envs/asapdiscovery-{platform}.yml conda activate asapdiscovery
Alternatively to build for a specific CUDA version you can use the following.
export CONDA_OVERRIDE_CUDA=12.2 && mamba env create -f devtools/conda-envs/asapdiscovery-{platform}.yml && conda activate asapdiscovery
-
Install the individual
asapdiscovery
packages you want to use withpip
into the environment. For example,asapdiscovery-data
:pip install asapdiscovery-data
We use pre-commit to automate code formatting and other fixes. You do not need to install pre-commit as we run it on our CI. If you want to run it locally:
# install
$ mamba install -c conda-forge pre-commit
# check
$ pre-commit --version
pre-commit 3.0.4 # your version may be different
$ pre-commit install
Now every time you make a commit, the hooks will run on just the files you changed. See here for more details.
Copyright (c) 2023, ASAP Discovery
Project based on the Computational Molecular Science Python Cookiecutter version 1.6.