PFIM-package: Fisher Information matrix for design evaluation/optimization...

PFIM-packageR Documentation

Fisher Information matrix for design evaluation/optimization for nonlinear mixed effects models.

Description

Evaluate or optimize designs for nonlinear mixed effects models using the Fisher Information matrix. Methods used in the package refer to Mentré F, Mallet A, Baccar D (1997) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/biomet/84.2.429")}, Retout S, Comets E, Samson A, Mentré F (2007) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/sim.2910")}, Bazzoli C, Retout S, Mentré F (2009) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/sim.3573")}, Le Nagard H, Chao L, Tenaillon O (2011) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1186/1471-2148-11-326")}, Combes FP, Retout S, Frey N, Mentré F (2013) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1007/s11095-013-1079-3")} and Seurat J, Tang Y, Mentré F, Nguyen TT (2021) \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.cmpb.2021.106126")}.

Description

Nonlinear mixed effects models (NLMEM) are widely used in model-based drug development and use to analyze longitudinal data. The use of the "population" Fisher Information Matrix (FIM) is a good alternative to clinical trial simulation to optimize the design of these studies. PFIM 6.0 was released in 2022. The present version, PFIM 6.0, is an R package that uses the S4 object system for evaluating and/or optimizing population designs based on FIM in NLMEMs.

This version of PFIM now includes a library of models implemented also using the object oriented system S4 of R. This library contains two libraries of pharmacokinetic (PK) and/or pharmacodynamic (PD) models. The PK library includes model with different administration routes (bolus, infusion, first-order absorption), different number of compartments (from 1 to 3), and different types of eliminations (linear or Michaelis-Menten). The PD model library, contains direct immediate models (e.g. Emax and Imax) with various baseline models, and turnover response models. The PK/PD models are obtained with combination of the models from the PK and PD model libraries. PFIM handles both analytical and ODE models and offers the possibility to the user to define his/her own model(s). In PFIM 6.0, the FIM is evaluated by first order linearization of the model assuming a block diagonal FIM as in [3]. The Bayesian FIM is also available to give shrinkage predictions [4]. PFIM 6.0 includes several algorithms to conduct design optimization based on the D-criterion, given design constraints : the simplex algorithm (Nelder-Mead) [5], the multiplicative algorithm [6], the Fedorov-Wynn algorithm [7], PSO (Particle Swarm Optimization) and PGBO (Population Genetics Based Optimizer) [9].

Documentation

Documentation and user guide are available at http://www.pfim.biostat.fr/

Validation

PFIM 6.0 also provides quality control with tests and validation using the evaluated FIM to assess the validity of the new version and its new features. Finally, PFIM 6.0 displays all the results with both clear graphical form and a data summary, while ensuring their easy manipulation in R. The standard data visualization package ggplot2 for R is used to display all the results with clear graphical form [10]. A quality control using the D-criterion is also provided.

Organization of the source files in the /R folder

PFIM 6.0 contains a hierarchy of S4 classes with corresponding methods and functions serving as constructors. All of the source code related to the specification of a certain class is contained in a file named [Name_of_the_class]-Class.R. These classes include:

  • 1. all roxygen @include to insure the correctly generated collate for the DESCRIPTION file,

  • 2. \setClass preceded by a roxygen documentation that describes the purpose and slots of the class,

  • 3. specification of an initialize method,

  • 4. all getter and setter, respectively returning attributes of the object and associated objects.

Content of the source code and files in the /R folder

Class Administration

  • getOutcome

  • setOutcome

  • getTimeDose

  • setTimeDose

  • getDose

  • setDose

  • getTinf

  • setTinf

  • getTau

  • setTau

Class AdministrationConstraints

  • getOutcome

  • getDose

Class Arm

  • getName

  • setName

  • getSize

  • setSize

  • getAdministrations

  • setAdministrations

  • getSamplingTimes

  • setSamplingTimes

  • getInitialConditions

  • setInitialConditions

  • getAdministrationsConstraints

  • getSamplingTimesConstraints

  • getSamplingTime

  • getSamplingTimeConstraint

  • setSamplingTimesConstraints

  • setSamplingTime

  • getAdministration

  • getAdministrationConstraint

  • EvaluateArm

Class BayesianFim

  • EvaluateFisherMatrix

  • getRSE

  • getConditionNumberVarianceEffects

  • getShrinkage

  • setShrinkage

  • reportTablesFIM

  • generateReportEvaluation

Class Combined1

  • See class ModelError

Class Constant

  • See class ModelError

Class Design

  • getName

  • setName

  • getSize

  • setSize

  • setArms

  • getOutcomesEvaluation

  • setOutcomesEvaluation

  • getOutcomesGradient

  • setOutcomesGradient

  • getFim

  • setFim

  • getNumberOfArms

  • setNumberOfArms

  • setArm

  • EvaluateDesign

  • plotOutcomesEvaluation

  • plotOutcomesGradient

  • reportTablesAdministration

  • reportTablesDesign

Class Distribution

  • getParameters

  • setParameters

  • getMu

  • setMu

  • getOmega

  • setOmega

  • getAdjustedGradient

Class Evaluation

  • run

  • reportTablesPlot

  • generateTables

  • Report

Class FedorovWynnAlgorithm

  • FedorovWynnAlgorithm_Rcpp

  • resizeFisherMatrix

  • setParameters

  • optimize

  • generateReportOptimization

Class FedorovWynnAlgorithm

  • FedorovWynnAlgorithm_Rcpp

  • resizeFisherMatrix

  • setParameters

  • optimize

  • generateReportOptimization

Class Fim

  • EvaluateFisherMatrix

  • EvaluateVarianceFIM

  • getFisherMatrix

  • setFisherMatrix

  • getFixedEffects

  • setFixedEffects

  • getVarianceEffects

  • setVarianceEffects

  • getDeterminant

  • getDcriterion

  • getCorrelationMatrix

  • getSE

  • getRSE

  • getShrinkage

  • getEigenValues

  • getConditionNumberFixedEffects

  • getConditionNumberVarianceEffects

  • getColumnAndParametersNamesFIM

  • getColumnAndParametersNamesFIMInLatex

  • reportTablesFIM

  • generateReportEvaluation

  • setFimTypeToString

Class GenericMethods

  • getName

  • getNames

  • getSize

  • setSize

  • getOutcome

  • setOutcome

  • getFim

  • getOdeSolverParameters

  • getMu

  • setMu

  • getOmega

  • setOmega

  • getParameters

  • setParameters

  • getModelError

  • getSamplings

  • getFim

  • setName

  • setArms

  • getArms

Class IndividualFim

  • EvaluateFisherMatrix

  • EvaluateVarianceFIM

  • getRSE

  • getShrinkage

  • setShrinkage

  • reportTablesFIM

  • generateReportEvaluation

Class LibraryOfModels

  • getName

  • getContent

  • setContent

  • addModel

  • addModels

  • getLibraryPKModels

  • getLibraryPDModels

Class LibraryOfPKPDModels

  • getPKModel

  • getPDModel

  • getPKPDModel

Class LogNormal

  • getAdjustedGradient

Class Model

  • getName

  • setName

  • getDescription

  • setDescription

  • getEquations

  • setEquations

  • setModelFromLibrary

  • getOutcomes

  • setOutcomes

  • getOutcomesForEvaluation

  • setOutcomesForEvaluation

  • getParameters

  • setParameters

  • getModelError

  • setModelError

  • getInitialConditions

  • setInitialConditions

  • getOdeSolverParameters

  • setOdeSolverParameters

  • getModelFromLibrary

  • convertPKModelAnalyticToPKModelODE

  • getNumberOfParameters

  • isModelODE

  • isModelAnalytic

  • isDoseInEquations

  • isModelInfusion

  • isModelSteadyState

  • isModelBolus

  • definePKPDModel

  • definePKModel

  • defineModel

  • defineModelFromLibraryOfModels

  • defineModelUserDefined

  • defineModelType

  • EvaluateModel

  • parametersForComputingGradient

  • EvaluateVarianceModel

  • getFixedParameters

  • getModelErrorParametersValues

  • reportTablesModelParameters

  • reportTablesModelError

Class ModelAnalytic

  • EvaluateModel

  • definePKModel

  • definePKPDModel

  • convertPKModelAnalyticToPKModelODE

Class ModelAnalyticBolus

  • See class ModelAnalytic

Class ModelAnalyticBolusSteadyState

  • See class ModelAnalyticBolus

Class ModelBolus

  • See class Model

Class ModelError

  • getOutcome

  • getEquation

  • setEquation

  • getDerivatives

  • setDerivatives

  • getSigmaInter

  • setSigmaInter

  • getSigmaSlope

  • setSigmaSlope

  • getcError

  • setcError

  • getParameters

  • EvaluateErrorModelDerivatives

Class ModelInfusion

  • getEquationsDuringInfusion

  • getEquationsAfterInfusion

  • setEquationsAfterInfusion

  • setEquationsDuringInfusion

Class ModelODE

  • See class Model

Class ModelODEBolus

  • EvaluateModel

  • definePKPDModel

Class ModelODEDoseInEquations

  • EvaluateModel

  • definePKModel

  • definePKPDModel

Class ModelODEDoseNotInEquations

  • EvaluateModel

  • definePKModel

  • definePKPDModel

Class ModelODEInfusion

  • See class ModelInfusion

Class ModelODEInfusionDoseInEquations

  • EvaluateModel

  • definePKModel

  • definePKPDModel

Class ModelParameter

  • getName

  • getDistribution

  • setDistribution

  • getFixedMu

  • setFixedMu

  • getFixedOmega

  • setFixedOmega

  • getMu

  • setMu

  • getOmega

  • setOmega

Class MultiplicativeAlgorithm

  • MultiplicativeAlgorithm_Rcpp

  • getLambda

  • getDelta

  • getNumberOfIterations

  • getOptimalWeights

  • setOptimalWeights

  • setParameters

  • optimize

  • getDataFrameResults

  • plotWeights

  • generateReportOptimization

Class Normal

  • getAdjustedGradient

Class Optimization

  • getProportionsOfSubjects

  • getOptimizationResults

  • setOptimizationResults

  • getEvaluationFIMResults

  • setEvaluationFIMResults

  • setEvaluationInitialDesignResults

  • getEvaluationInitialDesignResults

  • getElementaryProtocols

  • generateFimsFromConstraints

  • run

  • plotWeights

  • Report

Class PFIMProject

  • getName

  • setModel

  • getModel

  • getModelEquations

  • getModelParameters

  • getModelError

  • getDesigns

  • getFim

  • getOdeSolverParameters

  • getOutcomes

  • getOptimizer

  • getOptimizerParameters

  • run

  • generateTables

  • Report

Class PGBOAlgorithm

  • setParameters

  • optimize

  • generateReportOptimization

Class PlotEvaluation

  • plot

  • plotSE

  • plotRSE

  • plotShrinkage

Class PopulationFim

  • EvaluateFisherMatrix

  • EvaluateVarianceFIM

  • getRSE

  • getShrinkage

  • setShrinkage

  • reportTablesFIM

  • generateReportEvaluation

Class Proportional

  • See class ModelError

Class PSOAlgorithm

  • setParameters

  • optimize

  • generateReportOptimization

Class SamplingTimeConstraints

  • getOutcome

  • getSamplings

  • getFixedTimes

  • getNumberOfTimesByWindows

  • getMinSampling

  • getSamplingsWindows

  • getNumberOfsamplingsOptimisable

  • checkSamplingTimeConstraintsForContinuousOptimization

  • generateSamplingsFromSamplingConstraints

Class SamplingTimes

  • getOutcome

  • setOutcome

  • getSamplings

  • setSamplings

Class SimplexAlgorithm

  • setParameters

  • fun.amoeba

  • fisher.simplex

  • optimize

  • generateReportOptimization

Author(s)

Maintainer: Romain Leroux romain.leroux@inserm.fr

Authors:

Other contributors:

  • Emmanuelle Comets [contributor]

  • Sylvie Retout [contributor]

References

[1] Dumont C, Lestini G, Le Nagard H, Mentr\'e F, Comets E, Nguyen TT, et al. PFIM 4.0, an extended R program for design evaluation and optimization in nonlinear mixed-effect models. Comput Methods Programs Biomed. 2018;156:217-29.

[2] Chambers JM. Object-Oriented Programming, Functional Programming and R. Stat Sci. 2014;29:167-80.

[3] Mentr\'e F, Mallet A, Baccar D. Optimal Design in Random-Effects Regression Models. Biometrika. 1997;84:429-42.

[4] Combes FP, Retout S, Frey N, Mentr\'e F. Prediction of shrinkage of individual parameters using the Bayesian information matrix in nonlinear mixed effect models with evaluation in pharmacokinetics. Pharm Res. 2013;30:2355-67.

[5] Nelder JA, Mead R. A simplex method for function minimization. Comput J. 1965;7:308-13.

[6] Seurat J, Tang Y, Mentr\'e F, Nguyen, TT. Finding optimal design in nonlinear mixed effect models using multiplicative algorithms. Computer Methods and Programs in Biomedicine, 2021.

[7] Fedorov VV. Theory of Optimal Experiments. Academic Press, New York, 1972.

[8] Eberhart RC, Kennedy J. A new optimizer using particle swarm theory. Proc. of the Sixth International Symposium on Micro Machine and Human Science, Nagoya, 4-6 October 1995, 39-43.

[9] Le Nagard H, Chao L, Tenaillon O. The emergence of complexity and restricted pleiotropy in adapting networks. BMC Evol Biol. 2011;11:326.

[10] Wickham H. ggplot2: Elegant Graphics for Data Analysis, Springer-Verlag New York, 2016.

See Also

Useful links:


PFIM documentation built on Nov. 24, 2023, 5:09 p.m.