admet-prediction
Cross-cutting meta skills — authoring new skills, integrity audit before publish, release management, cross-reference mapping, agent handoff with Material PassportsVersion Compatibility
Reference examples tested with: RDKit 2024.09+, requests 2.31+, DeepChem 2.8+, chemprop 2.0+ (note major API change from 1.x), admet-ai 1.3+, pandas 2.2+.
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package>thenhelp(module.function)to check signatures
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
ADMET Prediction
Hard rules
- No fabricated citations. Every cited work must resolve to a verifiable
- No claim without provenance. Every quantitative or factual claim
- No silent failure. Every script invocation, API call, or tool use must declare its exit status and what to do on non-zero. A skill that silently swallows errors is a violation.
When to use
Load this skill when the user asks a question that matches its declared
trigger conditions (see the frontmatter description for the most common
ones). Do not load it for questions outside its scope — defer to the
appropriate ORS skill instead.
When NOT to use
Do not load this skill if the question is in a sibling skill's domain
(see ## Cross-references), if the user explicitly asks for a different
tool, or if the task is outside the skill's declared category.
ADMET Model Taxonomy
| Tool | Endpoints | Architecture | Uncertainty | Access | Fails when | |------|-----------|--------------|-------------|-------------|---------|------------| | ADMETlab 3.0 | 119 (A,D,M,E,T + physchem + medchem) | Multi-task DMPNN + descriptors | Per-prediction | REST API (free, no auth) | Outside training distribution; metals; macrocycles | | ADMET-AI (NVIDIA) | ~50 (focus on safety) | chemprop D-MPNN | Ensemble variance | Python package | Limited endpoints vs ADMETlab | | DeepChem MolNet | ~30 (tox21, ToxCast, ClinTox) | Various GCN/GAT | Per-task variance | Python package | Models trained on small datasets | | pkCSM | ~30 | Graph signatures + RF | None | Web service | Smaller training data | | SwissADME | ~30 (filters + physchem) | Hand-curated rules | None | Web service (NO API) | Cannot batch programmatically | | ProTox-3.0 | ~46 (toxicity) | DT + descriptors | None | Web service | Toxicity only | | chemprop (in-house) | User-defined | D-MPNN ± descriptors | Bayesian ensemble | Python package | Requires training data |
Decision: For batch screening of <10k compounds with no in-house data, ADMETlab 3.0 (free API, 119 endpoints, calibrated uncertainty) is the modern standard. For in-house QSAR on a specific endpoint with >500 measurements, train a chemprop D-MPNN.
ADMETlab 3.0 API
The current standard for free ADMET prediction. 119 endpoints across 6 categories; per-prediction uncertainty.
import requests
import pandas as pd
def admetlab_predict(smiles_list, endpoint='admet'):
url = f'https://admetlab3.scbdd.com/api/{endpoint}'
payload = {'smiles': smiles_list}
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return pd.DataFrame(response.json())
smiles = ['CCO', 'c1ccc(C(=O)O)cc1', 'CC(=O)Oc1ccccc1C(=O)O']
results = admetlab_predict(smiles)
ADMETlab endpoints: Absorption (Caco-2, HIA, Pgp), Distribution (BBB+, PPB, VDss), Metabolism (CYP1A2/2C9/2C19/2D6/3A4), Excretion (CL, T1/2), Toxicity (hERG, AMES, hepatotoxicity), Drug-likeness (Lipinski, Veber, QED).
hERG Cardiotoxicity (Gold Standard Endpoint)
hERG blockade causes QT prolongation and is the #1 reason for late-stage drug attrition.
| Model | Training data | AUC | Reference |
|---|---|---|---|
| Cai et al. D-MPNN + MOE | 7,889 compounds | 0.956 | Liu 2024 |
| ADMETlab 3.0 hERG | Internal | 0.92 (reported) | Fu 2024 |
| ProTox-3.0 | ProTox training | 0.86 | Banerjee 2024 |
Triangulation: For hERG, use ADMETlab + ProTox + literature. A single-model probability > 0.5 is NOT a kill signal.
Lipinski / Veber / Drug-Likeness Rules
| Rule | Constraints |
|---|---|
| Lipinski Ro5 | MW<=500, LogP<=5, HBD<=5, HBA<=10 |
| Veber | RotBonds<=10, TPSA<=140 |
| BBB+ Pfizer CNS | TPSA<=90, MW<=500, HBD<=3 |
from rdkit.Chem import Descriptors, Lipinski, QED
def druglike_score(mol):
return {
'MW': Descriptors.MolWt(mol),
'LogP': Descriptors.MolLogP(mol),
'HBD': Lipinski.NumHDonors(mol),
'HBA': Lipinski.NumHAcceptors(mol),
'TPSA': Descriptors.TPSA(mol),
'RotBonds': Lipinski.NumRotatableBonds(mol),
'QED': round(QED.qed(mol), 2),
}
References
- Fu et al., Nucleic Acids Res. 52:W422 -- ADMETlab 3.0.
- Liu et al., 2024 -- hERG ML benchmarks.
- Lipinski et al., Adv. Drug Deliv. Rev. -- Rule of 5.
- Bickerton et al., Nat. Chem. 4:90 -- QED.
Related Skills
- chemoinformatics/molecular-descriptors - Physicochemical descriptors
- chemoinformatics/substructure-search - PAINS / BRENK / REOS
- chemoinformatics/qsar-modeling - In-house ADMET model training"
Cross-references
Other skills in this category:
- conformer-generation
- covalent-design
- docking-rescoring
- free-energy-calculations
- generative-design
- molecular-descriptors
- molecular-io
- molecular-standardization
- pharmacophore-modeling
- pose-validation
- protac-degraders
- qsar-modeling
- retrosynthesis
- scaffold-analysis
- shape-similarity
- similarity-searching
- substructure-search
- virtual-screening
Changelog
- 1.1.0 (migration) — Bulk-migrated to v0.4.0 schema: canonical metadata block, base Hard rules, Cross-references. Body content unchanged; author should review and fill in any domain-specific extensions to the Hard rules.
- 1.0.0 — Initial release.