| name | admet-prediction |
| description | Turn a set of structures into absorption, distribution, metabolism, excretion, and toxicity estimates with ADMET-AI, and read them as a developability verdict rather than a table of numbers. Use this skill to run batch prediction over a library, interpret each endpoint against its DrugBank-approved percentile, and flag the liabilities that stop a series — hERG blockade, CYP inhibition, poor Caco-2 permeability, high clearance, and plasma protein binding. Also trigger on ADMET-AI, admet_ai, Chemprop-RDKit, hERG liability, CYP3A4 inhibition, Caco-2, bioavailability prediction, or developability triage. |
| license | MIT |
| allowed-tools | Read Write Edit Bash |
| compatibility | Requires Python 3.10+. The bundled scripts chunk input and parse ADMET-AI CSV output with the standard library only. Generating predictions needs admet-ai 2.0+ (pip, requires-python >=3.11, MIT) plus chemprop and RDKit; models download on first use. CPU is adequate for thousands of molecules. |
| metadata | {"version":"1.0","skill-author":"K-Dense Inc.","openclaw":{"emoji":"💊","homepage":"https://github.com/swansonk14/admet_ai"},"hermes":{"category":"research"}} |
ADMET Prediction
Potency gets a compound into a programme; ADMET decides whether it survives one. ADMET-AI is a
Chemprop-RDKit graph network trained on 41 Therapeutics Data Commons datasets, tops the TDC ADMET
leaderboard, and runs thousands of molecules a minute on a CPU. This skill is about reading its
output as a developability verdict rather than a wall of numbers.
Tool: ADMET-AI 2.0.1, MIT, pip install admet-ai
(requires Python 3.11+). Weights download on first use. No GPU needed.
Checked against: PyPI 2.0.1, February 2026.
Read references/running-admet-ai.md before your first run,
references/endpoints.md to know which endpoints actually stop
programmes, and
references/interpreting-predictions.md before acting on
a number — that one is judgement, not syntax.
The two scripts
| Script | Answers |
|---|
admet_batch.py | How do I feed a library in without wasting the run? |
admet_report.py | Which of these compounds has a liability worth acting on? |
Rank within a series; do not trust absolute values
This is the thing to get right. A public model has systematic offsets against your assay —
different protocol, different lab, different chemistry. Within a congeneric series those offsets
are largely shared, so the ordering survives even where the values do not.
Use predictions to decide which twenty of these hundred to make and assay. Do not use them to
decide whether this compound will pass. A predicted hERG of 0.7 versus 0.3 within a series is a
real signal; 0.7 in absolute terms is not a measurement.
The percentile column is the point
ADMET-AI reports every prediction against the distribution of approved drugs in DrugBank, in
<endpoint>_drugbank_approved_percentile. It is the most useful thing the tool adds over a bare
model and the column most often ignored.
"Predicted clearance 12" is hard to act on. "More extreme than 92% of approved drugs" prompts the
right question: drugs exist out here, but not many — what is the argument that this one works?
Flagging a set
python skills/admet-prediction/scripts/admet_report.py report --csv predictions.csv
smiles liabilities flagged out_of_domain
c1ccccc1CCNC(=O)c1ccc(Cl)cc1 5 hERG|DILI|Solubility_AqSolDB|Lipophilicity|Half_Life
CCO 0 molecular_weight=46.07 outside [150, 700]