Structure-based open antiviral drug discovery toolkit
Repository: github.com/vasuquantdev/drug-discovery
A batteries-included computational chemistry and informatics pipeline for open antiviral drug discovery, developed in collaboration with the ASAP Discovery Consortium.
Pandemics are global health threats. A strong defense requires a healthy global antiviral discovery community with robust, open discovery tools. The AI-driven Structure-enabled Antiviral Platform (ASAP) is building that foundation.
This repository provides a transparent, open-source toolkit focused on structure-based drug discovery—covering data management, docking, machine learning, free-energy calculations, molecular dynamics, and visualization. Together with ASAP's active data disclosures, it offers insight into medicinal chemistry workflows that are often conducted behind closed doors.
Note:
asapdiscoveryis pre-alpha software under active development. APIs may change without notice, and we make no guarantees around correctness.
The project is organized as a PEP 420 namespace package with independently installable subpackages:
| Package | Description |
|---|---|
asapdiscovery-alchemy |
Free energy calculations via OpenFE and Alchemiscale |
asapdiscovery-cli |
Unified command-line interface for the full toolkit |
asapdiscovery-data |
Core data models and integrations (e.g. Postera.ai) |
asapdiscovery-dataviz |
Structure and data visualization with 3Dmol.js and PyMOL |
asapdiscovery-docking |
Docking and compound screening with the OpenEye toolkit |
asapdiscovery-ml |
Structure-based ML models for activity prediction |
asapdiscovery-modeling |
Structure preparation and standardization |
asapdiscovery-simulation |
MD simulations and analysis with OpenMM |
asapdiscovery-spectrum |
Sequence and fitness analysis |
asapdiscovery-workflows |
End-to-end workflows combining toolkit components |
Full documentation: asapdiscovery.readthedocs.io
The repository is a monorepo of independently installable Python packages. Each subpackage follows the same layout: source under asapdiscovery/<module>/, with its own pyproject.toml, tests, and package README.
drug-discovery/
├── asapdiscovery-alchemy/ # Free-energy calculations (OpenFE / Alchemiscale)
├── asapdiscovery-cli/ # Unified CLI entry point (`asap-cli`)
├── asapdiscovery-data/ # Core schemas, backends, and data integrations
│ └── asapdiscovery/data/
│ ├── backend/ # OpenEye and RDKit chemistry wrappers
│ ├── readers/ # Structure and ligand factory readers
│ ├── schema/ # Pydantic models (Ligand, Target, Complex, …)
│ ├── services/ # CDD, Fragalysis, Postera, RCSB, AWS
│ ├── operators/ # Selectors, expanders, deduplicators
│ └── tests/
├── asapdiscovery-dataviz/ # 3Dmol.js and PyMOL visualization
├── asapdiscovery-docking/ # OpenEye docking and scoring
├── asapdiscovery-ml/ # Structure-based ML training and inference
├── asapdiscovery-modeling/ # Protein/ligand preparation and standardization
├── asapdiscovery-simulation/ # OpenMM molecular dynamics
├── asapdiscovery-spectrum/ # Sequence and fitness analysis
├── asapdiscovery-workflows/ # End-to-end project workflows
│
├── docs/ # Sphinx documentation source
│ ├── tutorials/ # Step-by-step guides
│ ├── guides/ # CLI and workflow references
│ ├── API/ # Auto-generated API docs
│ └── ecosystem/ # Package ecosystem overview
│
├── examples/ # Jupyter notebook tutorials
├── devtools/
│ ├── conda-envs/ # Platform-specific conda environment specs
│ └── scripts/ # Dependency resolution and install helpers
│
├── .github/workflows/ # Per-package CI pipelines
├── pyproject.toml # Root lint and format configuration
├── .pre-commit-config.yaml # Pre-commit hook definitions
├── justfile # Common developer task shortcuts
└── README.md
| Path | Purpose |
|---|---|
asapdiscovery-*/ |
Installable subpackages; install individually or in editable mode |
docs/ |
Source for Read the Docs |
examples/ |
Runnable notebooks mirroring official tutorials |
devtools/conda-envs/ |
Per-OS, per-package conda environment specs (ubuntu-latest/, macos-latest/) |
.github/workflows/ |
Automated testing and linting for each subpackage |
Install from conda-forge:
mamba install -c conda-forge asapdiscoveryasapdiscovery is a namespace package composed of individual Python packages, each named with the asapdiscovery-* convention (e.g. asapdiscovery-data). Development uses just as a task runner.
1. Clone the repository
git clone https://github.com/vasuquantdev/drug-discovery.git
cd drug-discovery2. Create and activate a conda environment
Per-subpackage environment files live under devtools/conda-envs/<platform>/. The just create-env recipe selects the correct platform automatically:
# Full environment covering all subpackages
just create-env all asapdiscovery
# Or a single subpackage (e.g. data)
just create-env data asapdiscovery
conda activate asapdiscovery3. Install subpackages
Install everything in topological dependency order:
just install-allOr install a single subpackage with its internal dependencies:
just install-with-deps dataInspect the dependency graph with just deps. Run tests with just test <pkg> or just test-all. Apply linters with just lint.
Requirements: Python >=3.12, <3.13. OpenEye toolkits require a separate academic or commercial license.
See CONTRIBUTING.md for the full contribution workflow.
We use pre-commit to enforce formatting and linting in CI. To run hooks locally:
mamba install -c conda-forge pre-commit
pre-commit installHooks run automatically on each commit. See the pre-commit usage guide for details.
Copyright (c) 2023, ASAP Discovery
Project scaffolding based on the Computational Molecular Science Python Cookiecutter (v1.6).
