Structural model - One compartment first order elimination with zero order production of hormone

Route of administration - Subcutaneous

Dosage Regimen - 40 mcg/kg

Number of Subjects - 1

Since we had subcutaneous dose information, we learnt to discriminate between the clearance and the rate of synthesis. Further simplification of the model by assuming bioavailability is 100% and `concentration of the endogenous compound equals concentration at baseline`

(turnover/clearance)

In this tutorial, you will learn how to build a one compartment PK turnover model, following first order elimination kinetics and zero order hormone production.

call the "necessary" libraries to get started

using Pumas using Plots using CSV using StatsPlots using Random

In this two compartment model, we administer dose subcutaneously.

pk_30 = @model begin @param begin tvka ∈ RealDomain(lower=0) tvcl ∈ RealDomain(lower=0) tvsynthesis ∈ RealDomain(lower=0) tvv ∈ RealDomain(lower=0) Ω ∈ PDiagDomain(4) σ_add ∈ RealDomain(lower=0) end @random begin η ~ MvNormal(Ω) end @pre begin Ka = tvka * exp(η[1]) Cl = tvcl * exp(η[2]) Synthesis = tvsynthesis * exp(η[3]) V = tvv * exp(η[4]) end @init begin Central = Synthesis/(Cl/V) # Concentration at Baseline = Turnover Rate (0.78) / Cl of hormone (0.028) end @dynamics begin Depot' = -Ka * Depot Central' = Ka * Depot + Synthesis - (Cl/V) * Central end @derived begin cp = @. Central/V dv ~ @. Normal(cp, σ_add) end end

PumasModel Parameters: tvka, tvcl, tvsynthesis, tvv, Ω, σ_add Random effects: η Covariates: Dynamical variables: Depot, Central Derived: cp, dv Observed: cp, dv

The parameters are as given below. tv represents the typical value for parameters.

Ka - Absorption rate constant (hr⁻¹)

Cl - Clearance (L/kg/hr)

Synthesis - Turnover Rate (hr⁻¹)

V - Volume of Central Compartment (L/kg)

Ω - Between Subject Variability

σ - Residual error

param = ( tvka = 0.539328, tvcl = 0.0279888, tvsynthesis = 0.781398, tvv = 0.10244, Ω = Diagonal([0.0,0.0,0.0,0.0]), σ_add = 3.97427)

(tvka = 0.539328, tvcl = 0.0279888, tvsynthesis = 0.781398, tvv = 0.10244, Ω = [0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0], σ _add = 3.97427)

A dose of **40 mcg/kg** is given subcutaneously to a Single subject.

ev1 = DosageRegimen(40,time=0,cmt=1) sub1 = Subject(id=1, events=ev1)

Subject ID: 1 Events: 1

To simulate plasma concentration with turnover rate after oral administration.

Random.seed!(1234) sim_sub1 = simobs(pk_30, sub1, param, obstimes=0:0.1:72) df1 = DataFrame(sim_sub1)

Use the dataframe for plotting

df1_dv = filter(x -> x.time in [0, 2, 3, 4, 5, 6, 8, 10, 15, 24, 32, 48, 72], df1) @df df1 plot(:time, :cp, label= "Pred - Conc", xlabel="Time (hrs)", ylabel="Concentration (mcg/L)", title="Plasma Concentration vs Time", color=[:blue], linewidth=3, xlims=(-0.5,80), xticks=[0,10,20,30,40,50,60,70,80], ylims=(0,250), yticks=[0,50,100,150,200,250]) @df df1_dv scatter!(:time, :dv, label="Obs - Conc", color=[:red])