Hepatic clearance from in-vitro data.

Enter CLint, fu,mic and fu,p, or just a SMILES, and get hepatic and plasma clearance by well-stirred or parallel-tube IVIVE, together with how far off a prediction like this has been for real drugs.

No account needed.

Worked example

CLint 177.8 µL/min/mg · fu,mic 0.88 · fu,p 0.05 · Rb 0.53

00.51fu,b · CLint,u / Qh (log)EH
Plasma CL
4.73 mL/min/kg
EH
0.43
Clearance
medium

Plasma CL, mL/min/kg, log scale

  • Predicted plasma CL 4.73
  • Observed CL fell here for half of 301 reference drugs predicted like this: 4.32–27.7
  • Observed for midazolam: 5.3

CLint 135.6 µL/min/mg · fu,mic 0.43 · fu,p 0.10 · Rb 0.77

00.51fu,b · CLint,u / Qh (log)EH
Plasma CL
9.87 mL/min/kg
EH
0.62
Clearance
medium

Plasma CL, mL/min/kg, log scale

  • Predicted plasma CL 9.87
  • Observed CL fell here for half of 301 reference drugs predicted like this: 9.02–57.9
  • Observed for verapamil: 18.0

CLint 16.7 µL/min/mg · fu,mic 0.76 · fu,p 0.22 · Rb 1.0

00.51fu,b · CLint,u / Qh (log)EH
Plasma CL
3.34 mL/min/kg
EH
0.16
Clearance
low

Plasma CL, mL/min/kg, log scale

  • Predicted plasma CL 3.34
  • Observed CL fell here for half of 301 reference drugs predicted like this: 3.05–19.5
  • No observed plasma CL for diltiazem in the app's reference set

CLint 0.58 µL/min/mg · fu,mic 0.47 · fu,p 0.01 · Rb 0.55

00.51fu,b · CLint,u / Qh (log)EH
Plasma CL
0.0101 mL/min/kg
EH
0.0009
Clearance
low

Plasma CL, mL/min/kg, log scale

No band here: the prediction falls outside the range the band was calibrated on, and the calculator says why. “Renal filtration (fu,p × GFR) rivals predicted hepatic CL. Total CL may be much higher.”

  • Predicted plasma CL 0.0101
  • Observed for warfarin: 0.06

Computed by the calculator: human liver microsomes, well-stirred. Inputs from Obach 1999 (Drug Metab Dispos 27:1350); observed plasma CL from the Lombardo et al. 2018 compilation, via PKSmart.

Where it fits in drug discovery

Clearance sets how long a drug stays in the body, and so how large and how frequent a dose must be. Most small-molecule drugs are cleared by the liver. Long before any human data exist, project teams estimate human clearance from a test-tube assay with liver microsomes or hepatocytes, run on nearly every new compound. Turning that in-vitro number into whole-body clearance is IVIVE: in-vitro to in-vivo extrapolation.

  1. Hit findingCompounds screened for activity on the target.
  2. Hit to leadFirst stability assays. A structure alone already gives an estimate, before synthesis.
  3. Lead optimisationMake, test, predict, in weekly cycles: rank compounds by predicted human clearance and set the CLint the next one must reach.
  4. Candidate selectionPredicted human clearance feeds the first human dose estimate.
  5. PreclinicalRat and dog PK; species scaling cross-checks the in-vitro estimate.
  6. ClinicalMeasured human clearance replaces the prediction.
Where ivive.app is used

How it works

Four steps take a test-tube number to human clearance. The numbers below are midazolam's, the first worked example above.

  1. 100%10% 0102030 min t½ 7.8 min

    1Measure how fast liver enzymes clear it

    Incubate the compound with human liver microsomes or hepatocytes and sample over time. The parent compound disappears exponentially; the rate constant divided by the protein (or cell) concentration is the intrinsic clearance, CLint.

    CLint = 177.8 µL/min/mg protein

    Points computed from that CLint at 0.5 mg/mL protein.

  2. 2Scale to a whole liver

    Multiply by how much microsomal protein a gram of liver holds, and how many grams of liver a kilogram of body weight carries. For hepatocytes, the factor is 99 million cells per gram. The result is the clearance the whole liver would have, if blood flow were unlimited and all drug were free.

    146 mL/min/kg (Barter et al. 2007; Davies & Morris 1993)

  3. In the incubationIn blood fu,mic 0.88fu,b 0.094

    3Count only the free drug

    Enzymes act only on drug that is not bound to protein. Divide by fu,mic, the free fraction in the incubation, to get the clearance of free drug; the liver model then weighs it by fu,b, the free fraction in blood (fu,p divided by the blood-to-plasma ratio Rb).

    146 / 0.88 = 166 mL/min/kg; fu,b = 0.05 / 0.53 = 0.094

  4. liver blood in blood out EH 0.43: 3 of 7 removed in one pass

    4Let blood flow set the ceiling

    The liver cannot clear more than the blood that reaches it, 20.7 mL/min/kg in humans. The well-stirred model combines flow Qh with free intrinsic clearance: CLh = Qh · fu,b · CLint,u / (Qh + fu,b · CLint,u). The fraction removed in one pass is the extraction ratio, EH.

    CLh = 8.92 mL/min/kg in blood; × Rb 0.53 = 4.73 in plasma

Last, the check against real drugs: IVIVE from microsomes and hepatocytes under-predicts on average, so the calculator places its answer beside the range in which observed clearance fell for comparable reference drugs. That is the band in the worked example, and how it was validated is below.

What you get

IVIVE with every intermediate
Scaled and unbound CLint, extraction ratio, plasma and blood clearance, and how far each input moves the answer. Nothing hidden behind one number.
The observed-clearance band
Beside each prediction, the range in which observed plasma clearance fell for half of 301 reference drugs predicted like this one.
A second opinion from structure
Human clearance and Vss from the SMILES alone, with fu,p and fu,inc, and an applicability verdict from similarity to the training set.
Your lab's correction
Fit a correction on compounds your own lab has measured. It narrows the band for your assay rather than someone else's.
Species scaling
Rat, dog or monkey clearance to human by six methods, each listed with the error it showed on 369 drugs.
Target CLint
Work backwards: the CLint an assay must read for a compound to reach a target clearance.

Validation, plainly

IVIVE from human liver microsomes and hepatocytes under-predicts in-vivo clearance by about 3-fold on average. ivive.app does not hide that: every result carries the range observed for comparable drugs, calibrated on 301 reference drugs with published in-vitro and in-vivo data.

  • On an independent Pfizer dataset (Tess et al. 2023) the 50% band held the observed value 58–68% of the time, never below its nominal coverage.
  • The band is wide on purpose. It is the method's measured error, not decoration.
  • The band is empirical, not a statistical interval: across 301 reference drugs, observed plasma CL fell between 0.91× and 5.9× the well-stirred prediction for the middle half of them. Every prediction gets that same factor range.
  • Like all passive IVIVE, it assumes hepatic metabolism drives clearance. Where active uptake (OATP substrates such as statins or bosentan) or biliary excretion does, it under-predicts further, and the band does not cover that.
  • Compounds with fu,p below 0.01 are flagged instead of given a range, because no range held for them.
  • Multi-species allometry scored worst of the scaling methods measured, and the page says so.

Sources: Obach 1999 (Drug Metab Dispos); Tess et al. 2023; Mahmood & Balian 1996; Hallifax & Houston 2019 (Drug Metab Dispos). Each method in the app links its equation and source; training data and licences are on Data sources.

How often the 50% band held, on drugs it never saw

Coloured: 58–68% across subsets of the Tess et al. 2023 Pfizer data. Dark line: the 50% the band promises.

Use it from your LLM

ivive.app is also an MCP server, so Claude, ChatGPT or any MCP client can call the calculations instead of doing the arithmetic itself. No key needed.

  • predict_inputs
  • calc_clhep
  • target_clint
  • input_sensitivity
  • similar_drugs
  • scale_to_human

A structure you send through an LLM also reaches that LLM's vendor. For proprietary compounds, check that the vendor is cleared for them, or ask about a private deployment.

Connect a client

In a terminal

claude mcp add --transport http \
  ivive https://api.ivive.app/mcp/

In claude_desktop_config.json, under "mcpServers"

"ivive": {
  "command": "npx",
  "args": ["mcp-remote", "https://api.ivive.app/mcp/"]
}

Streamable HTTP endpoint, with the trailing slash

https://api.ivive.app/mcp/

Use the API

Every calculation is a plain HTTP endpoint, the same one the calculator calls. Single compounds need no key; batches of up to 25 need a free account. For bigger batches or more volume, ask for a key at hello@ivive.app.

The full reference, with every endpoint, field and unit: api.ivive.app/docs (try requests in the browser), ReDoc, or the OpenAPI document to generate a client.

Example: midazolam

CLint 177.8 µL/min/mg · fu,mic 0.88 · fu,p 0.05 · Rb 0.53, human

Request

curl https://api.ivive.app/api/ivive/clhep \
  -H 'Content-Type: application/json' \
  -d '{"clint": 177.8, "fu_mic": 0.88, "fu_p": 0.05,
       "rb": 0.53, "species": "human"}'

Response

{
  "clhep": 8.9204,
  "eh": 0.430938,
  "classification": "medium",
  "model_used": "well-stirred",
  "species": "human",
  "clint_scaled": 146.2227,
  "clint_u": 166.1622,
  "fu_b": 0.09434,
  "qh": 20.7,
  "clp": 4.7278,
  "clp_corrected": null,
  "band": {
    "low": 4.3218, "high": 27.7116,
    "coverage": 0.5, "basis": "reference", "n": 301
  },
  "upper_bound": false,
  "flags": []
}

Request

import requests

r = requests.post(
    "https://api.ivive.app/api/ivive/clhep",
    json={"clint": 177.8, "fu_mic": 0.88, "fu_p": 0.05,
          "rb": 0.53, "species": "human"},
)
band = r.json()["band"]
print(r.json()["clp"], band["low"], band["high"])

Output: plasma CL, then its observed-CL band, mL/min/kg

4.7278 4.3218 27.7116

Free, and more

FeatureFreeOn request
Single-compound calculationsYes, no account
Batch, numbers or SDFup to 25 compounds, with a free accountup to 500
Saved lab corrections1, with a free accountunlimited
MCP for LLMs30 requests a minute, 300 a dayAPI key, higher volume
Private deploymenton your own servers; structures never leave your network

Need larger batches, an API key or a private deployment? Seen a result that looks wrong, or missing an input or method? Write to hello@ivive.app.

Your data

Structures and inputs you enter are processed in memory and not stored. A lab correction or IVIVC dataset you save keeps its data, visible only to you. An account holds your email address and a password hash. The site and the API run in Nuremberg (netcup), the account database in Frankfurt (Neon); the privacy policy has the details.