Python application Check systems capacity codecov Documentation Status

Pharmacokinetic Modelling Group Project

A PharmacoKinetic (PK) modelling function for analysis of injected solute dynamics over time, developed by Group 8 of the 2021 Software Engineering course. This model has been developed with the end-user in mind, and includes an easy-to-use interface to guide refinement of tissue models.


Amit Halkhoree – [email protected]
Cameron Anderson – [email protected]
Dan Hudson – [email protected]
Ishaan Kapoor – [email protected]
Joseph Pollacco – [email protected]
Samuel Johnson – [email protected]



The field of Pharmacokinetics (PK) provides a quantitative basis for describing the delivery of a drug to a patient, the diffusion of that drug through the plasma/body tissue, and the subsequent clearance of the drug from the patient’s system. PK is used to ensure that there is sufficient concentration of the drug to maintain the required efficacy of the drug, while ensuring that the concentration levels remain below the toxic threshold. Pharmacokinetic (PK) models are often combined with Pharmacodynamic (PD) models, which model the positive effects of the drug, such as the binding of a drug to the biological target, and/or undesirable side effects, to form a full PKPD model of the drug-body interaction. This project will only focus on PK, neglecting the interaction with a PD model.

Model overview

Our model consists of three principal modules:

  • A solver ( that computes the distribution of solute in different tissue compartments over time, given input parameters including the number of compartments to model, dose, mode of administration (intravenous or subcutaneous), compartment volume and transition rate constants.
  • A user interface ( that prompts the user to configure the model
  • A visualisation module ( that generates and saves comparative plots to facilitate evaluation of PK using different administration methods.

Folder structure

This repository includes the following files/folders:

  • pycache: directory including bytecode cache generated by Python
  • .github/workflows: directory of github actions ensuring continuous integration (CI) of repository updates
  • .pytest/cache: directory including bytecode cache generated by PyTest, which performs unit tests on key executables
  • .vscode: virtualstudio code workspace for development purposes
  • docs: files required for automated document production
  • text file populating this guide
  • tests: unit tests fed to pytest for continuous integration
  • venv: virtual environment including dependencies for this package
  • .gitignore: file controlling which files are/are not updated by git during development
  • Key helper functions for
  • requirements.txt: Dependencies required for proper package functioning
  • Solver model for PK modelling
  • User interface executable


GitHub - Software-Engineering-BBSRC-Group-6/PK_modelling at
Customisable pharmacokinetic model accessible via bash CLI allowing for variable dose calculations as well as intravenous and subcutaneous administration calculations - GitHub - Software-Engineerin...