Linear1InfusionSingleDose_ClV from the library
of modelsRespPK and
create and add the response PK to the statistical modelDesignBras test of size 150RespPKbrasTest create and add the administration
parameters of the response PKbrasTest to the design MyDesignMyDesign to the PFIM project
MyProjectMyDesign2 to the project
MyProject_optimizationIn this example, we simulate an 1-compartment model with linear elimination for IV infusion over 1 hour (inspired by (Sukeishi et al. 2022)). One hundred and fifty (150) subjects receive a 400mg loading dose on the first day, followed by 4 daily doses of 200mg. Blood samples are taken at the end of the \(1^{st}\) infusion (H1), H20, H44, H66 and H120. By evaluating this design, we will then select 4 sampling times on intervals (0,48) and (72,120) for an optimal design using PSO (Particle Swarm Optimization) algorithm.
Reports of the design evaluation and optimization are available at https://github.com/iame-researchCenter/PFIM
MyProject_evaluation: project for the design evaluation
named eval_PK_Sukeishi-2021-GS441524MyProject_optimization: project for the design
optimization named opti_PK_Sukeishi-2021-GS441524MyProject_evaluation = PFIMProject( name = "eval_PK_Sukeishi-2021-GS441524" )
MyProject_optimization = PFIMProject( name = "opti_PK_Sukeishi-2021-GS441524" )MyStatisticalModel = StatisticalModel()Linear1InfusionSingleDose_ClV from the
library of modelsMyPKModel = getModel( PFIMLibraryOfModels, "Linear1InfusionSingleDose_ClV" )MyStatisticalModel = defineModelEquations( MyStatisticalModel, MyPKModel )pV = ModelParameter( "V", mu = 50, omega = sqrt( .26 ), distribution = LogNormalDistribution() )
pCl = ModelParameter( "Cl", mu = 5, omega = sqrt( .34 ), distribution = LogNormalDistribution() )MyStatisticalModel = defineParameter( MyStatisticalModel, pV )
MyStatisticalModel = defineParameter( MyStatisticalModel, pCl )RespPK and create and add the response PK to the
statistical modelerrorModelresponsePK = Combined1( sigma_inter = 0.5, sigma_slope = sqrt( 0.15 ) )
responsePK = Response( "RespPK", errorModelresponsePK )
MyStatisticalModel = addResponse( MyStatisticalModel, responsePK )MyProject_evaluation = defineStatisticalModel( MyProject_evaluation, MyStatisticalModel )
MyProject_optimization = defineStatisticalModel( MyProject_optimization, MyStatisticalModel )DesignMyDesign = Design( "Design" )Bras test of size 150brasTest = Arm( name = "Bras test", arm_size = 150 )RespPKbrasTest = addSampling( brasTest, SamplingTimes( outcome = "RespPK", sample_time = c( 1,12,24,44,72,120 ) ) )brasTest create and add the administration
parameters of the response PKadministration_brasTest = Administration( outcome = "RespPK", Tinf = rep( 1, 5 ), time_dose = seq( 0, 96, 24 ) , amount_dose = c( 400, rep( 200, 4 ) ) )
brasTest = addAdministration( brasTest, administration_brasTest )brasTest to the design
MyDesignMyDesign = addArm( MyDesign, brasTest )MyDesign to the PFIM project
MyProjectMyProject_evaluation = addDesign( MyProject_evaluation, MyDesign )evaluationPop = EvaluatePopulationFIM( MyProject_evaluation )
evaluationInd = EvaluateIndividualFIM( MyProject_evaluation )
evaluationBay = EvaluateBayesianFIM( MyProject_evaluation )show( evaluationPop )
show( evaluationInd )
show( evaluationBay )# set the path and name of the report to save the report
outputPath = "....."
plotOptions = list( unitTime=c("hour"), unitResponses= c("mcg/mL","DI%") )
reportPFIMProject( evaluationPop,
outputPath = outputPath, plotOptions = plotOptions )
reportPFIMProject( evaluationInd,
outputPath = outputPath, plotOptions = plotOptions )
reportPFIMProject( evaluationBay,
outputPath = outputPath, plotOptions = plotOptions )MyDesign2 to the project
MyProject_optimizationMyDesign2 = Design( name = "MyDesign2")
MyProject_optimization = addDesign( MyProject_optimization, MyDesign2 )samplingBoundsConstraintRespPK = SamplingConstraint( response = "RespPK", continuousSamplingTimes = list( c( 1,48 ), c( 72,120 ) ) )
samplingMinimalDelayConstraintRespPK = SamplingConstraint( response = "RespPK", min_delay = 5 )
Constr1 = DesignConstraint()
Constr1 = addSamplingConstraint( Constr1, samplingBoundsConstraintRespPK )
Constr1 = addSamplingConstraint( Constr1, samplingMinimalDelayConstraintRespPK )
brasTest2 = addSamplingConstraints( brasTest2, Constr1 )MyDesign2 = addArm( MyDesign2, brasTest2 )MyProject_optimization = addDesign( MyProject_optimization, MyDesign2 )psoOptimizer = PSOAlgorithm( maxIteration = 100, populationSize = 10, personalLearningCoefficient = 2.05, globalLearningCoefficient = 2.05, showProcess = TRUE )optimization_populationFIM = OptimizeDesign( MyProject_optimization, psoOptimizer, PopulationFim() )show( optimization_populationFIM )# set the path to save the report
outputPath = "....."
plotOptions = list( unitTime=c("hour"), unitResponses= c("mcg/mL","DI%") )
reportPFIMProject( optimization_populationFIM, outputPath = outputPath, plotOptions = plotOptions )