Skip to content

Predict ADMET Properties

Predict ADMET Properties

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

Predict ADMET Properties estimates how a molecule is likely to behave inside the body. ADMET stands for Absorption, Distribution, Metabolism, Excretion, and Toxicity, the five questions that decide whether a promising molecule can actually become a usable drug: does it get absorbed, where does it travel, how is it broken down, how is it cleared out, and is it harmful.

You give it a SMILES string, which is the plain text way of writing a molecule’s structure, and it predicts many separate ADMET endpoints (individual measurable properties such as solubility, the chance of blocking the hERG heart channel, or whether it triggers a mutation warning). Each endpoint gets a traffic light: green means good, yellow means a caution, and red means a likely problem.

The tool then rolls those traffic lights up into one overall score and a single recommendation, so you do not have to read every endpoint by hand. MPO stands for multi parameter optimization, which is just the idea of balancing many properties at once instead of chasing a single number. The MPO score sits on a 0 to 10 scale, where higher is better.

Use it when you want a quick all round health check on a molecule before investing in it, for example when triaging hits from a screen, comparing analogs in a series, or deciding which molecules are worth carrying forward. It needs only a SMILES string, and you can run a single molecule or a large batch.

InputRequiredWhat it is
smilesyesSMILES notation of the molecule, the plain text way of writing its structure.
endpointsno, default [] (empty, runs the full profile)An optional list of which ADMET endpoints to predict. Leave it empty to run all of them. 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 your molecule from Azulene Studio, the Python SDK, or the CLI. You can send a single SMILES, or a batch of many SMILES at once, since this tool is marked batch capable in the catalog. New here? The Get started page walks through installing, logging in, and running a ready made example first.

Open Predict ADMET Properties from the tools list, then on the Inputs and Parameters step enter the SMILES of your molecule (or paste a list, or upload a CSV or SDF for a batch), optionally narrow the endpoints to a subset, then Review and Submit.

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

To run just a few endpoints, pass an endpoints list, for example {"smiles": "CCO", "endpoints": ["solubility", "herg"]}. To screen many molecules in one go, submit a batch of SMILES instead of a single string.

Pass the inputs as a JSON string.

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

You can also submit a batch of many SMILES in one job from the CLI.

For each molecule the result reports:

  • mpo_score, the overall multi parameter optimization score on a 0 to 10 scale. It is the average of the endpoint traffic lights, where green counts as 1.0, yellow as 0.5, and red as 0.0, scaled to 10. Higher is better.
  • bucket, the single recommendation, one of advance, optimize, or drop. The rule is: any red on a hard fail endpoint makes it drop; otherwise an MPO score of 7.0 or above is advance, a score of 4.0 up to 7.0 is optimize, and anything below 4.0 is drop.
  • predictions, the per endpoint results. Each endpoint carries a value, and either a label for yes or no style endpoints (a classification, for example herg with label non-inhibitor) or a unit for numeric endpoints (a regression, for example solubility with unit log mol/L). For example predictions.solubility.value, predictions.lipophilicity.value, and predictions.herg.value.
  • traffic_lights, the green, yellow, or red flag for every endpoint, so you can see at a glance which properties are the concern.
  • hard_fails, the list of hard fail endpoints that came back red and forced a drop.
  • endpoints_requested and endpoints_returned, which endpoints you asked for and which actually came back.
  • warnings, any notes raised while scoring the molecule.

To rank a set of molecules, sort by mpo_score from high to low, then look at the bucket to decide what to carry forward. When you run a batch, the catalog also surfaces a few of these fields as 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 are fast machine learning estimates, not measured values, so use the profile to prioritize and triage rather than as a final verdict. A drop does not mean a molecule is definitely bad, only that the model flagged a likely problem worth a closer look. Because the tool is batch capable, you can profile a large library in a single job, and you can narrow the run to just the endpoints you care about with the endpoints input.