agentsclimarketplace

Madd drug discovery guide

Skill brycewang-stanford/Auto-Empirical-Research-Skills/skills/43-wentorai-research-plugins/skills/domains/pharma/madd-drug-discovery-guide

Multi-agent system for automated drug discovery pipelinesFrom its SKILL.md

Install
npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill madd-drug-discovery-guide

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

4.3 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

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

  1. Hit discovery: Generate novel drug candidates for targets
  2. Lead optimization: Improve properties of promising compounds
  3. ADMET screening: Predict pharmacokinetic properties
  4. Virtual screening: Score large molecule libraries
  5. Drug repurposing: Evaluate known drugs for new targets

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.