pradyumnasagar-open-research-skills

admet-prediction

Cross-cutting meta skills — authoring new skills, integrity audit before publish, release management, cross-reference mapping, agent handoff with Material Passports
stars7
forks2
watches7
updated2026-09-03 16:08:57

Version 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> then help(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

  1. No fabricated citations. Every cited work must resolve to a verifiable
  2. No claim without provenance. Every quantitative or factual claim
  3. 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.

ModelTraining dataAUCReference
Cai et al. D-MPNN + MOE7,889 compounds0.956Liu 2024
ADMETlab 3.0 hERGInternal0.92 (reported)Fu 2024
ProTox-3.0ProTox training0.86Banerjee 2024

Triangulation: For hERG, use ADMETlab + ProTox + literature. A single-model probability > 0.5 is NOT a kill signal.

Lipinski / Veber / Drug-Likeness Rules

RuleConstraints
Lipinski Ro5MW<=500, LogP<=5, HBD<=5, HBA<=10
VeberRotBonds<=10, TPSA<=140
BBB+ Pfizer CNSTPSA<=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.