PoPy: Population PKPD Analysis in Python
David Cristinacce (1), Philip Tresadern (1), Andrew Cristinacce (1), James Wright (1)
(1) Wright Dose Ltd
Objectives: We introduce PoPy [1] a versatile tool for performing PKPD analysis, which utilises Python as an embedded language. PoPy has a simple and elegant syntax which allows clinical PKPD to be easily expressed. In addition, PoPy has the ability to generate synthetic population data from a single model file and compare estimated parameters with known ground truth values.
Methods: We simulate 200 sample populations of 50 subjects for two different PKPD models and compare PoPy’s (v1.0.5) novel ND (non-derivative) fitting method with the Nonmem v7.5.0 [2] FOCEI and LAPLACEI methods. The PoPy-ND fitting method is a hybrid method, combining elements of FOCEI and the BOBYQA [3] optimisation algorithm. We show improved recovery of ground truth (THETA) parameters, compared to NM-FOCEI using the root mean square RMS relative error ratio RER=(est-gt)/gt metric described in Plan et al. [4]. We also cross-verify the superiority of PoPy’s fit by checking the objective function of PoPy’s solution in Nonmem. All runs were performed on Windows 7 Intel i7 machines, utilising 16 processors via MPI.
Results:
Absorption + Two Compartment PK Model - Single oral dose with proportional residual error and full covariance matrix across all five PK compartment parameters KA,Cl,V2,Q,V3. A single dose at time=2 with 10 evenly spaced observations in the range [1, 50] for each of 50 subjects. 200 synthetic populations.
Method |
THETA RMS RER |
Mean FOCEI ObjV |
Mean Nonmem- FOCEI ObjV |
Mean Fitting Time (secs) |
PoPy-ND |
0.2447 |
-2316.97 |
-2316.74 |
226 |
NM-FOCEI |
0.3496 |
-2315.70 |
-2315.70 |
95 |
Joint PK/PD with BLQ on PD - Same PK model as above, but simultaneous fitting to a turnover model with sigmoidal Emax stimulation of synthesis, with diagonal covariance model for both PK and PD. The PD observations have a LOQ (limit of quantification) which affects approximately 10% of the data. PoPy-ND can fit to BLQ data using an inbuilt rectified normal likelihood utilising the FOCEI objective value. In Nonmem we switch to LAPLACEI and use the M3 custom likelihood method. 10 PK and 10 PD observation points (as above) for each of 50 subjects. 200 synthetic populations. Note NM-LAPLACEI used fewer iterations compared to PoPy-ND, resulting in a reduced run time, but returned poor fitting results.
Method |
THETA RMS RER |
Mean FOCEI ObjV |
Mean Nonmem-LAPLACEI ObjV |
Mean Fitting Time (secs) |
PoPy-ND |
0.4876 |
-737.77 |
-733.29 |
1017 |
NM-LAPLACEI |
9.9823 |
NA |
2418.49 |
198 |
Conclusions: We have demonstrated improved estimation of model parameters using PoPy-ND at the cost of an increase in runtime compared to NM-FOCEI and NM-LAPLACEI using two models and synthetic data sets. Quantification limits can be straightforwardly handled in PoPy, without changing the estimation method or destabilizing the fit.
PoPy v1.0.5 is freely available for non-commercial and try out use, with extensive documentation [1]. The PoPy and Nonmem scripts presented in this abstract are available on request.
References:
[1] https://product.popypkpd.com/
[2] https://www.iconplc.com/innovation/nonmem/
[3] M. J. D. Powell (2009), "The BOBYQA algorithm for bound constrained optimization without derivatives", Report No. DAMTP 2009/NA06, Centre for Mathematical Sciences, Cambridge, UK.
[4] Performance Comparison of Various Maximum Likelihood Nonlinear Mixed-Effects Estimation Methods for Dose–Response Models, Elodie L. Plan, Alan Maloney, France Mentré, Mats O. Karlsson and Julie Bertrand, 2012