Predictive pharmacology profiling for drug candidates. Combines ADMETlab 3.0 ML predictions (when available) with comprehensive RDKit descriptor-based models. Provides full ADME assessment, toxicity risk, druglikeness scoring, and risk flagging — all from a SMILES string.
Key capabilities:
bash
# Profile a molecule from SMILES
exec python scripts/chain_entry.py --input-json '{"smiles": "CC(=O)Oc1ccccc1C(=O)O", "context": "user"}'
# Chain from chemistry-query output
exec python scripts/chain_entry.py --input-json '{"smiles": "<canonical_smiles>", "context": "from_chemistry"}'
scripts/chain_entry.py#Main entry point. Accepts JSON with smiles field, returns full pharmacology profile.
Input:
json
{"smiles": "CN1C=NC2=C1C(=O)N(C(=O)N2C)C", "context": "user"}
Output schema:
json
{
"agent": "pharma-pharmacology",
"version": "1.1.0",
"smiles": "<canonical>",
"status": "success|error",
"report": {
"descriptors": {"mw": 194.08, "logp": -1.03, "tpsa": 61.82, "hbd": 0, "hba": 6, "rotb": 0, "arom_rings": 2, "heavy_atoms": 14, "mr": 51.2},
"lipinski": {"pass": true, "violations": 0, "details": {...}},
"veber": {"pass": true, "tpsa": {...}, "rotatable_bonds": {...}},
"qed": 0.5385,
"sa_score": 2.3,
"adme": {
"bbb": {"prediction": "moderate", "confidence": "medium", "rationale": "..."},
"solubility": {"logS_estimate": -1.87, "class": "high", "rationale": "..."},
"gi_absorption": {"prediction": "high", "rationale": "..."},
"cyp3a4_inhibition": {"risk": "low", "rationale": "..."},
"pgp_substrate": {"prediction": "unlikely", "rationale": "..."},
"plasma_protein_binding": {"prediction": "moderate-low", "rationale": "..."}
},
"pains": {"alert": false}
},
"risks": [],
"recommend_next": ["toxicology", "ip-expansion"],
"confidence": 0.85,
"warnings": [],
"timestamp": "ISO8601"
}
PropertyMethodThresholdsBBB permeabilityClark's rules (TPSA/logP)TPSA<60+logP 1-3 = high; TPSA<90 = moderateSolubilityESOL approximationlogS > -2 high; > -4 moderate; else lowGI absorptionEgan egg modellogP<5.6 and TPSA<131.6 = highCYP3A4 inhibitionRule-basedlogP>3 and MW>300 = high riskP-gp substrateRule-basedMW>400 and HBD>2 = likelyPlasma protein bindinglogP correlationlogP>3 = high (>90%)
This agent is designed to receive output from chemistry-query:
text
chemistry-query (name→SMILES+props) → pharma-pharmacology (ADME profile) → toxicology / ip-expansion
The recommend_next field always includes ["toxicology", "ip-expansion"] for pipeline continuation.
All features verified end-to-end with RDKit 2024.03+:
MoleculeMWlogPLipinskiKey FindingsCaffeine194.08-1.03✅ Pass (0 violations)High solubility, moderate BBB, QED 0.54Aspirin180.041.31✅ Pass (0 violations)Moderate solubility, SA 1.58 (easy), QED 0.55Sotorasib560.234.48✅ Pass (1 violation: MW)Low solubility, CYP3A4 risk, high PPBMetformin129.10-1.03✅ Pass (0 violations)High solubility, low BBB, QED 0.25Invalid SMILES———Graceful JSON errorEmpty input———Graceful JSON error
status: "error" with descriptive warningsmiles or namescripts/admetlab3.py#Enhanced ADME/Tox predictor. Attempts ADMETlab 3.0 API first, falls back to comprehensive RDKit models.
bash
# Full ADME profile
python scripts/admetlab3.py --smiles "CC(=O)Oc1ccccc1C(=O)O"
# Specific categories
python scripts/admetlab3.py --smiles "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" --categories absorption,toxicity
Output includes:
references/api_reference.md — API and methodology referencesv2.0.0 (2026-02-18)
v1.1.0 (2026-02-14)