Overview of Pumas
Pumas is a collection of modules that facilitate workflows related to data analysis in the pre-clinical and clinical stages of drug development. This document provides a general overview of each of these workflows.
The Pumas NLME Workflow
The core Pumas NLME workflow is:
- Define a
PumasModelvia@modelorPumasEMModelvia@emmodel. Both of these constructions define the structure of the NLME model. - Define
Subjects andPopulation. These structures specify the dosage regimens of the patients, their covariates, and possible observation data to fit against. This can be done programmatically or by reading in tabular input data. - Define a
paramNamedTuplefor the parameters describing the structure of thePumasModelor thePumasEMModel. For simulation, these are the parameter values to simulate with. For estimation, these are the initial parameter estimates. - Call the model interface functions,
simobsorfit, to perform the simulations or estimation respectively. Both functions act on the objects defined above. - Post-process the results of a model or compare between different models using automated workflows.
- Generate automated reports of your model.
This workflow directly integrates with usage of the Julia language. For example, one may define Julia functions and use these functions within the definition of a PumasModel. Additionally, one may write loops that define Subjects or new random params and use these in simulations via simobs. Thus, Pumas supplies the core tools for handling NLME models while remaining a lean system that allows the user to seamlessly utilize the larger Julia ecosystem to solve their problem.
After fits and simulations are performed, the returned objects have smart defaults that allow for inspection. Each returned object has a DataFrame overload so that DataFrame(ret) displays the simulation or estimation as tabular data. Additionally, each returned object has a plotting function that yields a standardized plot (with options) of the simulation or estimation. All the internal values are accessible, and the fields are documented within the manual.
The Pumas NCA Module Workflow
The NCA module works by:
- Reading tabular data with
read_nca, or withread_nca_pumaswhen the dosing events are interleaved with the observations, see Data Parsing. - Computing the endpoints with
run_ncaand summarising them across subjects withsummarize, see Running NCA and the Endpoint Reference.
Both steps take and return DataFrames, so the results can be post-processed with the usual data manipulation tools. The plotting functions provide standardized plots (with options) of the NCA data and results.
The Pumas Bioequivalence Workflow
The Bioequivalence module works by:
- Reading in tabular data that support various designs.
- Performing bioequivalence analysis on the tabular data using
pumas_be.
An additional Bioequivalence module is BioequivalencePower which allows one to analyze power and determine sample sizes for bioequivalence studies, prior to a study, or after a pilot study and prior to a main study.
The Pumas Optimal Design Workflow
The optimal design module of Pumas currently includes sample time optimization. The sample time optimization workflow in Pumas is:
- Define the model and subject template or population.
- Define time windows in human-readable times and dates.
- Define resource and logistic constraints.
- Choose the optimality type (D/A/T optimality).
- Optimize the sample times.
- View the optimal sample times for each subject in human-readable times and dates.