Skip to content

ADMET Profile Prediction

ADMET Profile Prediction

Predict a full ADMET profile for a molecule, with a single advance, optimize, or drop call.

ADMET Profile Prediction returns an ADMET profile from a SMILES string. It covers 22 endpoints across absorption, distribution, metabolism, excretion and toxicity. These include Caco-2 permeability, oral bioavailability, blood-brain barrier penetration, plasma protein binding, the major CYP isoforms as inhibitors and substrates, hepatocyte and microsomal clearance, hERG, Ames, acute toxicity and drug-induced liver injury.

Each endpoint receives a green, yellow or red flag. The result also includes an MPO score from 0 to 10 and an advance, optimize or drop call. This supports library triage without reviewing every endpoint individually.

You can run one molecule or a batch.

Use it to triage screening hits, compare analogs in a series or select molecules for further work. The only required input is a SMILES string. No structure or assay data is required.

InputRequiredWhat it is
smilesyesSMILES string of the molecule.
endpointsno, default []Endpoints to predict. Leave empty to run the full profile. Allowed values: caco2, hia, pgp, bioavailability, solubility, lipophilicity, bbb, ppbr, vdss, cyp2c9, cyp2d6, cyp3a4, cyp2c9_sub, cyp2d6_sub, cyp3a4_sub, half_life, cl_hepatocyte, cl_microsome, herg, ames, ld50, dili.

Submit a single SMILES or a batch from Azulene Studio, the Python SDK or the CLI. The Get started page covers installation, login and a worked example.

Open ADMET Profile Prediction from the tools list. In Inputs and Parameters, enter a SMILES string. For a batch, paste a list or upload a CSV or SDF. Select a subset of endpoints if needed. Then select Review and Submit.

from azulene import jobs
result = jobs.submit(
job_type="predict_admet",
input_data={
"smiles": "CCO",
},
)

To run selected endpoints, pass an endpoints list. For example, use {"smiles": "CCO", "endpoints": ["solubility", "herg"]}. To screen multiple molecules in one job, submit a batch of SMILES instead of a single string.

Pass the inputs as a JSON string.

Terminal window
azulene jobs submit --job-type predict_admet \
--input-data '{"smiles": "CCO"}'

The CLI also accepts a batch of SMILES in one job.

The result reports the following fields for each molecule:

  • mpo_score: Overall score from 0 to 10 across the endpoint traffic lights. Higher is better.
  • bucket: One of advance, optimize or drop. A molecule advances at 7.0 and above. It optimizes between 4.0 and 7.0. It drops below 4.0. A red result on a hard fail endpoint forces a drop regardless of score.
  • predictions: Results for each endpoint. Each result has a value. Classification endpoints also have a label, such as herg with label non-inhibitor. Regression endpoints have a unit, such as solubility with unit log mol/L. Access these fields as predictions.solubility.value, predictions.herg.value and so on.
  • traffic_lights: The green, yellow or red flag for each endpoint.
  • hard_fails: Hard fail endpoints that returned red and forced a drop.
  • endpoints_requested and endpoints_returned: The endpoints requested and returned.
  • warnings: Notes raised while scoring the molecule.

To rank a set, sort by mpo_score in descending order. Use bucket to decide which molecules carry forward. Batch results also include sortable columns: admet_mpo_score from mpo_score, admet_bucket from bucket, admet_solubility from predictions.solubility.value, admet_lipophilicity from predictions.lipophilicity.value, admet_herg from predictions.herg.value, admet_ames from predictions.ames.value, and admet_dili from predictions.dili.value.

These results are machine learning estimates, not measured values. Use them to prioritize molecules, not to settle a question. A drop means the model identified a likely problem to check. It does not mean the molecule is no longer viable. For a large library, submit one batch job. Limit endpoints to the properties relevant to the series.