Awesome-Agent-Skills-for-Empirical-Research madd-drug-discovery-guide
Multi-agent system for automated drug discovery pipelines
install
source · Clone the upstream repo
git clone https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/43-wentorai-research-plugins/skills/domains/pharma/madd-drug-discovery-guide" ~/.claude/skills/brycewang-stanford-awesome-agent-skills-for-empirical-research-madd-drug-discove && rm -rf "$T"
manifest:
skills/43-wentorai-research-plugins/skills/domains/pharma/madd-drug-discovery-guide/SKILL.mdsource content
MADD: Multi-Agent Drug Discovery Guide
Overview
MADD (Multi-Agent Drug Discovery) is a multi-agent system that automates key stages of the drug discovery pipeline — target identification, molecule generation, property prediction (ADMET), docking simulation, and lead optimization. Specialized agents collaborate to propose, evaluate, and refine drug candidates, reducing the manual effort in early-stage drug discovery research.
Agent Pipeline
Target Protein ↓ Target Analysis Agent (binding site, druggability) ↓ Molecule Generation Agent (de novo design) ↓ Property Prediction Agent (ADMET screening) ↓ Docking Agent (binding affinity estimation) ↓ Optimization Agent (lead optimization cycle) ↓ Report Agent (candidate ranking + rationale)
Usage
from madd import DrugDiscoveryPipeline pipeline = DrugDiscoveryPipeline( llm_provider="anthropic", tools=["rdkit", "autodock_vina", "admet_predictor"], ) # Run discovery pipeline results = pipeline.discover( target_protein="6LU7", # PDB ID (SARS-CoV-2 Mpro) target_site="active_site", constraints={ "molecular_weight": (200, 500), # Lipinski "logP": (-0.4, 5.6), "hbd": (0, 5), "hba": (0, 10), "tpsa": (0, 140), }, num_candidates=100, optimization_rounds=3, ) # Top candidates for i, mol in enumerate(results.top_candidates[:5]): print(f"\nCandidate {i+1}: {mol.smiles}") print(f" Docking score: {mol.docking_score:.2f} kcal/mol") print(f" QED: {mol.qed:.3f}") print(f" Synthetic accessibility: {mol.sa_score:.2f}") print(f" ADMET: {mol.admet_summary}")
ADMET Prediction
from madd.agents import ADMETAgent admet = ADMETAgent() # Predict ADMET properties for a molecule props = admet.predict("CC(=O)Oc1ccccc1C(=O)O") # Aspirin print(f"Absorption: {props.absorption}") print(f"Distribution: {props.distribution}") print(f"Metabolism: {props.metabolism}") print(f"Excretion: {props.excretion}") print(f"Toxicity: {props.toxicity}") print(f"BBB penetration: {props.bbb_penetration}") print(f"CYP inhibition: {props.cyp_inhibition}") print(f"hERG liability: {props.herg_risk}")
Molecule Generation
from madd.agents import MolGenAgent gen = MolGenAgent(method="reinforcement_learning") # Generate molecules targeting a binding site molecules = gen.generate( target_pdb="6LU7", binding_site="active_site", num_molecules=500, diversity_threshold=0.5, # Tanimoto diversity constraints={ "drug_likeness": True, # Lipinski + Veber "novelty": True, # Not in ChEMBL }, ) print(f"Generated: {len(molecules)}") print(f"Drug-like: {sum(1 for m in molecules if m.is_drug_like)}") print(f"Novel: {sum(1 for m in molecules if m.is_novel)}")
Lead Optimization
from madd.agents import OptimizationAgent optimizer = OptimizationAgent() # Optimize a lead compound optimized = optimizer.optimize( lead_smiles="c1ccc(-c2ncc(F)c(N)n2)cc1", objectives=[ ("docking_score", "minimize"), ("qed", "maximize"), ("sa_score", "minimize"), ("solubility", "maximize"), ], num_iterations=50, keep_scaffold=True, # Maintain core structure ) for mol in optimized.pareto_front[:5]: print(f"SMILES: {mol.smiles}") print(f" Docking: {mol.docking_score:.2f}") print(f" QED: {mol.qed:.3f}")
Use Cases
- Hit discovery: Generate novel drug candidates for targets
- Lead optimization: Improve properties of promising compounds
- ADMET screening: Predict pharmacokinetic properties
- Virtual screening: Score large molecule libraries
- Drug repurposing: Evaluate known drugs for new targets
References
- MADD GitHub
- RDKit — Chemistry toolkit
- AutoDock Vina — Molecular docking