deepchem / deepchem/deepchem

Adding a Customize Drug Testin Tool

Open
#4,871 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
7k
Forks
2.3k
PR merge metrics
No merged PRs in 30d

Description

ESMFold + DeepChem Dock + ADMET-AI Pipeline (Proposal)

Purpose
This document proposes a simple end-to-end workflow where a user can provide
a protein sequence (or structure) and ligand, then obtain docked poses and
ADMET predictions.

This is a proposal only. The current DeepChem repo provides docking utilities
but does not include ESMFold integration or ADMET-AI prediction out of the box.

Pipeline Overview
1. Protein structure prediction with ESMFold
2. Docking with DeepChem (Vina or GNINA)
3. ADMET prediction with ADMET-AI

Inputs
- Protein sequence in FASTA format or an existing protein structure in PDB
- Ligand in SDF or SMILES

Outputs
- Docked poses (PDBQT and/or RDKit Mol objects)
- Docking scores (Vina or GNINA)
- ADMET predictions per ligand (model-specific outputs)

Core DeepChem Components
- Docking API: `deepchem/dock/docking.py`
- Pose generation: `deepchem/dock/pose_generation.py`
- Vina scoring terms: `deepchem/dock/pose_scoring.py`

Proposed Workflow
1. Structure prediction
- Input: protein sequence (FASTA)
- Run ESMFold externally to generate a PDB file
- Output: protein PDB

2. Docking (DeepChem)
- Input: protein PDB and ligand SDF/SMILES
- Use `VinaPoseGenerator` or `GninaPoseGenerator`
- Output: docked poses and scores

3. ADMET prediction (ADMET-AI)
- Input: ligand (SMILES) or docked ligand
- Run ADMET-AI externally
- Output: ADMET prediction table

Example Pseudo-CLI
1. Predict protein structure
- `esmfold --fasta target.fasta --out target.pdb`

2. Dock with DeepChem (Vina or GNINA)
- `python run_docking.py --protein target.pdb --ligand ligand.sdf --engine vina`

3. Predict ADMET
- `admet_ai --input ligand.smi --out admet.csv`

Minimal Python Sketch
```python
import deepchem as dc

# 1) ESMFold runs externally, producing target.pdb
protein_file = "target.pdb"
ligand_file = "ligand.sdf"

# 2) Docking with DeepChem
pose_gen = dc.dock.VinaPoseGenerator(pocket_finder=None)
docker = dc.dock.Docker(pose_gen)

poses_and_scores = list(
docker.dock(
(protein_file, ligand_file),
exhaustiveness=8,
num_modes=9,
use_pose_generator_scores=True,
)
)

# 3) ADMET-AI runs externally on ligand SMILES or docked ligands
```

Notes and Constraints
- GNINA currently runs only on Linux (see `deepchem/dock/pose_generation.py`).
- Vina is not available on Windows per the DeepChem docstring and tests.
- DeepChem does not currently provide ESMFold or ADMET-AI integrations.
- This pipeline would require external tooling and simple glue scripts.

Suggested Next Steps
1. Add a small wrapper script, for example `scripts/esmfold_dock_admet.py`,
that orchestrates ESMFold, DeepChem docking, and ADMET-AI.
2. Define a consistent input/output schema, such as a single JSON file or
folder layout for protein, ligand, docking outputs, and ADMET results.
3. Optionally store docked poses with metadata to support downstream analysis.

Contributor guide

Open the contributing guide

Research direction

Start by reading deepchem/dock/docking.py, deepchem/dock/pose_generation.py, and deepchem/dock/pose_scoring.py to understand the existing docking entry points and platform constraints. The proposal mentions scripts/esmfold_dock_admet.py, but the input/output schema, external-tool integration, and acceptance criteria still need to be defined before implementation can be considered done.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
machine-learning, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.