pysb-pkpd

PySB add-on providing domain-specific macros and models for empirical and mechanistic PK/PD modeling.

https://github.com/blakeaw/pysb-pkpd

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.8%) to scientific vocabulary

Keywords

mechanistic-modeling pharmacodynamics pharmacokinetics pharmacometrics pkpd pkpd-modelling quantitative-systems-pharmacology quantitative-systems-toxicology systems-pharmacology
Last synced: 6 months ago · JSON representation ·

Repository

PySB add-on providing domain-specific macros and models for empirical and mechanistic PK/PD modeling.

Basic Info
  • Host: GitHub
  • Owner: blakeaw
  • License: bsd-2-clause
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 917 KB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 6
  • Open Issues: 10
  • Releases: 12
Topics
mechanistic-modeling pharmacodynamics pharmacokinetics pharmacometrics pkpd pkpd-modelling quantitative-systems-pharmacology quantitative-systems-toxicology systems-pharmacology
Created almost 3 years ago · Last pushed 9 months ago
Metadata Files
Readme Changelog Contributing Funding License Citation

README.md

pysb-pkpd

Python version badge PySB version badge license release Code style: black Static Badge PyPI Downloads Static Badge DOI

pysb-pkpd enables you to efficiently program and simulate dynamic PK/PD and QSP models in Python using the PySB modeling framework.

:pill: :computer:

What's new in

version 0.5.0

  • Documentation: Docs
  • standard module defining convenience functions to generate one-, two-, and three-compartment models:
    • standard.one_compartment_model
    • standard.two_compartment_model
    • standard.three_compartment_model

version 0.4.0

  • Test suite - tests
  • Contribution info/guidelines - CONTRIBUTING
  • Bug fix in the dose_absorbed macro.

version 0.3.0

  • Macro encoding a Fixed-effect PD model: fixed_effect
  • Macro encoding a Log-linear Effect PD model: loglinear_effect
  • simulate function to simplify the process of simulating models.
  • The macro encoding the Linear-effect PD model, linear_effect, has an optional intercept argument to allow users to set the y-intercept of the linear model.

Table of Contents

  1. Install
    1. Dependencies
    2. pip install
    3. Manual install
  2. License
  3. Change Log
  4. Documentation and Usage
    1. Quick Overview
    2. Example
  5. Contact
  6. Contributing
  7. Supporting
  8. Other Useful Tools

Install

| ! Note | | :--- | | psyb-pkpd is still in version zero development so new versions may not be backwards compatible. |

pysb-pkpd installs as the pysb.pkpd Python (namespace) package. It is has been developed with Python 3.11.3 and PySB 1.15.0.

Dependencies

Note that pysb-pkpd has the following core dependencies: * PySB - developed using PySB version 1.15.0, and recommended to install using conda/mamba. conda install -c alubbock pysb

For automated testing and coverage analysis: * pytest * Coverage.py * nose pip install pytest coverage nose

pip install

You can install the latest pysb-pkpd version using pip

Fresh install: sh pip install pysb-pkpd Or to upgrade from an older version: sh pip install --upgrade pysb-pkpd

Manual install

First, download the repository. Then from the pysb-pkpd folder/directory run pip install .


License

This project is licensed under the BSD 2-Clause License - see the LICENSE file for details


Change Log

See: CHANGELOG


Documentation and Usage

Full documentation is available at:

blakeaw.github.io/pysb-pkpd/

Built With:

Built with Material for MkDocs

Quick Overview

pysb-pkpd is an add-on for the PySB modeling framework. Its key feature is a set of domain-specific PySB macros that facilitate the efficient and descriptive programmatic construction of PK/PD models in Python using the PySB framework. It also provides convenience functions to quickly build standard one-, two-, and three-compartment PK/PD models.

You can also check out my blog post, Modeling Drug Dynamics using Programmatic PK/PD Models in Python: An Introduction to PK/PD Modeling using PySB and pysb-pkpd, for an introduction to PK/PD modeling concepts and additional illustrative case studies of building PK/PD models with pysb and pysb-pkpd.

Example

Building a two-compartment PK model with a sigmoidal Emax PD function:

```python from pysb import Model import pysb.pkpd as pkpd

Initialize the PySB model:

Model()

Add a Monomer for the drug:

pkpd.drug_monomer(name='Drug')

Add the compartments for a two-compartment model:

pkpd.twocompartments(c1name="CENTRAL", c1size=2.0, c2name="PERIPHERAL", c2_size=1.0)

Add a dose of the drug using an

instantaneous 'bolus' dose in the central

compartment (initial amount of drug at time zero).

Note that dose is an amount such as weight, mass, or moles,

which will be converted automatically to an initial concentration

as:

[Drug]0 = dose / VCENTRAL ,

where V_CENTRAL is the size (i.e., volume) of the central compartment.

pkpd.dose_bolus(Drug, CENTRAL, dose=100.)

Add (1st order) distribution and re-distribution between the

central and peripheral compartments:

Note that klist is [kdistribute, kredistribute]

pkpd.distribute(Drug, CENTRAL, PERIPHERAL, klist=[1.0, 1e-1])

Include linear elimination of Drug from the central compartment

by processes like metabolism and renal excretion.

pkpd.eliminate(Drug, CENTRAL, kel=1e-2)

Add the sigmoidal Emax PD function for Drug in the

central compartment:

pkpd.sigmoidal_emax(Drug, CENTRAL, emax=1., ec50=10., n=1.7)

```

PKRO Example

See this notebook for another example using PySB with the psyb-pkpd add-on to build a simple semi-mechanistic pharmacokinetic and receptor occupancy (PKRO) model.


Contact

  • Issues :bug: : Please open a GitHub Issue to report any problems/bugs with the code or its execution, or to make any feature requests.

  • Discussions :grey_question: : If you have questions, suggestions, or want to discuss anything else related to the project, feel free to use the pysb-pkpd Discussions board.


Contributing

Interested in contributing to this project? See CONTRIBUTING for details.


Supporting

I'm very happy that you've chosen to use pysb-pkpd. This add-on is a project that I develop and maintain on my own time, independently of the core PySB library, and without external funding. If you've found it helpful, here are a few ways you can support its ongoing development:

  • Star :star: : Show your support by starring the pysb-pkpd GitHub repository. It helps increase the project's visibility and lets others know it's useful. It also benefits my motivation to continue improving the package!
  • Share :mega: : Sharing pysb-pkpd on your social media, forums, or with your network is another great way to support the project. It helps more people discover pysb-pkpd, which in turn motivates me to keep developing!
  • Cite :books: : Citing or mentioning this software in your work, publications, or projects is another valuable way to support it. It helps spread the word and acknowledges the effort put into its development, which is greatly appreciated!
  • Sponsor :dollar: : Even small financial contributions, such as spotting me the cost of a tea through Ko-fi so I can get my caffeine fix, can make a big difference! Every little bit can help me continue developing this and other open-source projects.

ko-fi


Other Useful Tools

Parameter estimation

Please see packages such as simplePSO, PyDREAM, Gleipnir, or GAlibrate for tools to do PySB model parameter estimation using stochastic optimization or Bayesian Monte Carlo approaches.

PD response models

If you want to separately fit response data independetly of PK data, then the pharmacodynamic-response-models package may also be useful.

PySB model visualization

pyvipr can be used for static and dynamic PySB model visualizations.


Owner

  • Name: Blake A. Wilson
  • Login: blakeaw
  • Kind: user
  • Location: Texas, USA

Computational research science in physical chemistry, systems biology, and nanomaterials bioengineering.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: pysb-pkpd
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Wilson
    family-names: Blake
    name-suffix: Ph.D.
    email: blakeawilson.phd@gmail.com
    orcid: 'https://orcid.org/0000-0002-8269-2500'
repository-code: 'https://github.com/blakeaw/pysb-pkpd'
abstract: >-
  PySB add-on providing domain-specific macros and models
  for empirical and mechanistic PK/PD modeling. 
license: BSD-2-Clause
version: 0.5.3
doi: 10.5281/zenodo.12775530
date-released: '2025-06-10'
references:
  - authors:
      - family-names: Lopez
        given-names: Carlos F.
      - family-names: Muhlich
        given-names: Jeremy L.
      - family-names: Bachman
        given-names: John A.
      - family-names: Sorger
        given-names: Peter K.  
    doi: 10.1038/msb.2013.1
    journal: "Molecular Systems Biology"
    title: "Programming biological models in Python using PySB"
    type: article
    volume: 9
    year: 2013

GitHub Events

Total
  • Create event: 8
  • Release event: 6
  • Issues event: 9
  • Watch event: 3
  • Issue comment event: 3
  • Push event: 14
  • Pull request event: 4
  • Fork event: 1
Last Year
  • Create event: 8
  • Release event: 6
  • Issues event: 9
  • Watch event: 3
  • Issue comment event: 3
  • Push event: 14
  • Pull request event: 4
  • Fork event: 1

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 67
  • Total Committers: 1
  • Avg Commits per committer: 67.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 38
  • Committers: 1
  • Avg Commits per committer: 38.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
blakeaw b****2@g****m 67

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 20
  • Total pull requests: 12
  • Average time to close issues: 5 months
  • Average time to close pull requests: 1 minute
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 6
  • Average time to close issues: 2 days
  • Average time to close pull requests: 1 minute
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.43
  • Average comments per pull request: 0.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • blakeaw (18)
Pull Request Authors
  • blakeaw (16)
Top Labels
Issue Labels
enhancement (9) bug (3) help wanted (1) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 37 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 1
  • Total maintainers: 1
pypi.org: pysb-pkpd

PySB add-on providing domain-specific macros and models for pharmacological PK/PD modeling.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 37 Last month
Rankings
Dependent packages count: 9.0%
Average: 29.9%
Dependent repos count: 50.8%
Maintainers (1)
Last synced: 8 months ago