# Home

PumasQSP is a package and methodology to solve difficult model calibration and analyses in high-performance and user friendly manner. This allows for scaling to large models and datasets without requiring advanced programming. It allows you to focus on the semantics of the model and the interpretation of its behaviour. Clear and flexible code structures provide you with the opportunity to identify wider connections as well as narrow in on areas of interest. At the same time, automatic, under-the-hood parallelizations, enable you to formulate robust hypothesis as it is providing you with the necessary performance to test detailed and explore options widely.

## Overview

PumasQSP is centered around solving `InverseProblem`

s, i.e. finding the parameters which cause models to be sufficiently good fits to data. In PumasQSP, model and data pairs are known as `Trial`

s. For example, a trial might be a differential equation model describing a clinical trial with a loading dose of 250mg and the dataset which the model is supposed to fit. A separate trial may define a clinical trial with a loading dose of 150mg and the associated data with said dose. The `InverseProblem`

is then a collection of trials. The purpose of PumasQSP is to then find out how to calibrate the model to all such trials and datasets simultaneously.

PumasQSP offers many different analysis functions to enable such model calibration and exploration. At a high level, these are:

`calibrate`

: the fitting of an`InverseProblem`

, i.e. finding the best parameters to simultaneously fit all trials. This function is made to be fast and robust, making it easy to perform difficult calibrations.`vpop`

: the generation of plausible populations, or a set of parameters which are all sufficiently good fits to all datasets. This is an extension of`calibrate`

which is used to convey uncertainty in the model fitting process and allow for analysis with respect to model uncertainty and data noise.`subsample`

: the subsampling of plausible populations to virtual populations. While the`vpop`

result gives a set of parameters which all fit the dataset well, there are no high-level guarantees about the statistics of the fit.`subsample`

allows for subsampling the generated parameter set to allow it to match known characteristics to improve predictions from the uncertainty set.`gsa`

: the analysis of the sensitivity of solutions with respect to parameters. This gives an alternative view of an`InverseProblem`

by demonstrating what parameters have large effects on the solution, improving the calibration process and the understanding of its uncertainties.

## Integration with Julia and SciML

PumasQSP is written in Julia and therefore brings all the Julia language advantages with it: this includes, for example, that it has an easy to read and write syntax and a high baseline performance. Additionally, PumasQSP is nicely integrated in the existing package ecosystem of Julia. Specifically relevant are the connections to the following packages:

### Data integration and manipulation

Module | Description |
---|---|

DataSets | Datasets can be stored and managed on JuliaHub. |

CSV | Package for handling delimited text data |

DataFrames | Tabular data manipulation |

### Model import and definition

Module | Description |
---|---|

ModelingToolkit | Symbolic modeling environment |

Catalyst | Symbolic modeling package for simulation of chemical reaction networks leveraging ModelingToolkit |

CellMLToolkit | With CellMLToolkit we can models specified in the CellML language to facilitate reuse of models downloaded from databases such as the CellML Model Repository. |

SBMLToolkit | With SBMLToolkit, we can import models that are specified in the Systems Biology Markup Language (SBML) to facilitate reuse of models developed with SBML compliant tools such as BioNetGen, Copasi and SimBiology as well as reuse of models downloaded from databases such as BioModels. |

### Model simulation

Module | Description |
---|---|

DifferentialEquations | The numerical differential equation solvers |

### Model analysis

Module | Description |
---|---|

Optimization | SciML's optimization package |

DataDrivenDiffEq | The symbolic regression interface |

GlobalSensitivity | This package provides several methods to quantify the uncertainty in the model output with respect to the input parameters of the model. |

Distributions | Large collection of probabilistic distributions and related functions |

Turing | General-purpose probabilistic programming language for Bayesian inference |

StructuralIdentifiability | Comprehensive toolbox for assessing identifiability parameters |

### Model visualization

Module | Description |
---|---|

Plots | A plotting and visualization library |

StatsPlots | A plotting and visualization library |

Pluto | Reactive, lightweight, simple notebooks |

Makie | Data visualization ecosystem |