Skip to main content

This is a simple implementation of PBPK modeling in python.

Project description

pbpk-lite

pbpk-lite is a lightweight Python package for basic physiologically based pharmacokinetic (PBPK) modeling.

It provides a simple programmatic interface for defining substance properties, patient physiology, elimination kinetics, and solving the resulting ODE system.

The implementation is intended to be used with a consistent unit system based on mass units for doses and amounts, milliliters (mL) for volumes, and hours for time. When using the model, doses, volumes, flows, and clearances should all be expressed in compatible units within that framework.

Features

  • Substance partition coefficient calculation using logP and fraction unbound
  • Patient blood flows and tissue volumes derived from body weight
  • Linear liver and kidney elimination pathways
  • ODE solution via scipy.integrate.solve_ivp
  • Plotting helpers for whole-model, venous-blood, and selected-compartment concentration profiles
  • Support for different administration routes, including intravenous, intra-arterial, and inhalation dosing

Installation

Install from PyPI:

pip install pbpk-lite

Install from source:

pip install .

Quick Start

from pbpk_lite import model

m = model()
m.set_substance(log_p=6.97, fu=0.0022448)
m.set_patient(bw=70)
m.set_elimination(cl_l=10, cl_k=0)

doses = [10]
times = [0, 24]

t, c = m.simulate(doses, times, route_of_administration='iv')
print(t)
print(c.shape)

m.graph_whole('concentrations.png')
m.graph_venous('venous.png', limit_of_detection=1.0)
m.graph_compartments(['liver', 'kidney'], 'selected.png')

Route of Administration

The simulate() method accepts a route_of_administration argument to control where each dose is introduced into the model.

Supported values are:

  • iv: intravenous dosing into the venous blood compartment (default)
  • ia: intra-arterial dosing into the arterial blood compartment
  • inh: inhalation dosing into the lung compartment

Example:

m.simulate([10], [0, 24], route_of_administration='inh')

Dosing Schedule

The simulate() method expects:

  • doses: array-like of administered doses
  • times: array-like of dosing times plus a final endpoint

Important: times must have exactly one more element than doses. Each dose at index i is administered at times[i], and the final value in times is the last observation or endpoint. Times are interpreted in hours, so dosing schedules and simulation endpoints should be provided in hours.

Example with one dose:

# one dose at time 0, observation at 24 hours
doses = [10]
times = [0, 24]

Example with two doses:

# doses at 0 and 12 hours, observation at 24 hours
doses = [10, 10]
times = [0, 12, 24]

API Summary

pbpk_lite.model

set_substance(log_p, fu)

Set the substance physicochemical properties.

  • log_p: log octanol-water partition coefficient
  • fu: fraction unbound in blood

set_patient(bw)

Set patient physiological parameters using body weight in kilograms.

set_elimination(cl_l=0, cl_k=0)

Set linear clearance from liver and kidney compartments.

simulate(doses, times, route_of_administration='iv')

Simulate the PBPK model and return time points t and compartment concentrations c.

  • route_of_administration: administration route used for each dose ('iv', 'ia', or 'inh')

graph_whole(name)

Save a multi-panel plot of concentrations across all compartments.

graph_venous(name, limit_of_detection=None)

Save a plot of venous blood concentrations, optionally marking a detection limit.

graph_compartments(compartments, name)

Save a plot of selected compartments by name or index.

License

pbpk-lite is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pbpk_lite-1.1.3.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pbpk_lite-1.1.3-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file pbpk_lite-1.1.3.tar.gz.

File metadata

  • Download URL: pbpk_lite-1.1.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for pbpk_lite-1.1.3.tar.gz
Algorithm Hash digest
SHA256 e60ae70b6fbbc300bd7831305529e1ca7ecf44389fcb8aee35da076fe8190bc7
MD5 074ed17b82af3d0c78ce3f296cfce5f6
BLAKE2b-256 a78740ac24166e6c9463ec080a28fe26acd70d374815f93c80f5ce2a9a6de3ab

See more details on using hashes here.

File details

Details for the file pbpk_lite-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: pbpk_lite-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for pbpk_lite-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 81343f83b9a8eb89ed562231ddc76b7eed492220a765823ccb2b4cc9a49077e3
MD5 18ec1ac37dcf5adbf63232405f808a1c
BLAKE2b-256 d2a984af40a6a449033b4f3144d9725fc412317d61dab59ecef0c4af95a4b7c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page