Structure - Non Compartmental Analysis
Route of administration - Oral
Dosage Regimen - 10, 56 and 320 μmol/kg/day
Number of Subjects - 30
Study Period - 12 month safety study in male and female dogs
Application of Non Compartmental data analysis
To analyze the kinetics by means of means of Non-compartmental Analysis (NCA)
To analyze the exposure to test comounds by means of Cmax and AUC.
call the "necessary" libraries to get start
using Pumas using PumasTutorials using Plots using CSV using StatsPlots
Import the dataset and perform data-wrangling to make the datset ready for read_nca
Time = hrs
Conc = μmol/kg
Dose_grp = μmol/kg
Period = weeks
data = DataFrame(CSV.File(joinpath(dirname(pathof(PumasTutorials)), "..", "data", "PKPDDataAnalysisBook", "pk15data.csv"))) ##delete the first row which contains untits delete!(data, [1]) ##sort by Subject ID, Period and Time sort!(data, [:Subject_ID,:Period,:Time]) ##remove rows containing other Periods and Dose_grp filter!(x -> x.Period in ["11","26", "52"], data) filter!(x -> x.Dose_grp in ["10","56","320"], data) ## Convert the colums to necesaary types for input data[:Conc] = parse.(Float64,data[:Conc]) data[:Time] = parse.(Float64,data[:Time]) data[:Period] = parse.(Int64,data[:Period]) data[:Dose_grp] = parse.(Int64,data[:Dose_grp]) ##sort by Subject ID, Period and Time sort!(data, [:Subject_ID,:Period,:Time]) ## Add new column for Route of administration - extravascular data[!,:route] .= "ev"
male_11 = filter(x -> x.Period == 11, data) filter!(x -> x.Gender == "male", male_11) male_11_gr1 = filter(x -> x.Dose_grp == 10, male_11) male_11_gr2 = filter(x -> x.Dose_grp == 56, male_11) male_11_gr3 = filter(x -> x.Dose_grp == 320, male_11) @df male_11_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 11, male", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df male_11_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df male_11_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
male_26 = filter(x -> x.Period == 26, data) filter!(x -> x.Gender == "male", male_26) male_26_gr1 = filter(x -> x.Dose_grp == 10, male_26) male_26_gr2 = filter(x -> x.Dose_grp == 56, male_26) male_26_gr3 = filter(x -> x.Dose_grp == 320, male_26) @df male_26_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 26, male", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df male_26_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df male_26_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
male_52 = filter(x -> x.Period == 52, data) filter!(x -> x.Gender == "male", male_52) male_52_gr1 = filter(x -> x.Dose_grp == 10, male_52) male_52_gr2 = filter(x -> x.Dose_grp == 56, male_52) male_52_gr3 = filter(x -> x.Dose_grp == 320, male_52) @df male_52_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 52, male", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df male_52_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df male_52_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
female_11 = filter(x -> x.Period == 11, data) filter!(x -> x.Gender == "female", female_11) female_11_gr1 = filter(x -> x.Dose_grp == 10, female_11) female_11_gr2 = filter(x -> x.Dose_grp == 56, female_11) female_11_gr3 = filter(x -> x.Dose_grp == 320, female_11) @df female_11_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 11, female", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df female_11_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df female_11_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
female_26 = filter(x -> x.Period == 26, data) filter!(x -> x.Gender == "female", female_26) female_26_gr1 = filter(x -> x.Dose_grp == 10, female_26) female_26_gr2 = filter(x -> x.Dose_grp == 56, female_26) female_26_gr3 = filter(x -> x.Dose_grp == 320, female_26) @df female_26_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 26, female", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df female_26_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df female_26_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
female_52 = filter(x -> x.Period == 52, data) filter!(x -> x.Gender == "female", female_52) female_52_gr1 = filter(x -> x.Dose_grp == 10, female_52) female_52_gr2 = filter(x -> x.Dose_grp == 56, female_52) female_52_gr3 = filter(x -> x.Dose_grp == 320, female_52) @df female_52_gr1 plot(:Time, :Conc, yaxis=:log, title = "Period (Week) = 52, female", xlabel = "Time (hr)", ylabel = "Concentration (uM)", xticks = [0,5,10,15,20,25], xlims = (0,25), yticks = [0.01,0.1,1,10,100], ylims = (0.01,100), group=:Subject_ID, colour=[:red], label=false) @df female_52_gr2 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:blue], label=false) @df female_52_gr3 plot!(:Time, :Conc, yaxis=:log, group=:Subject_ID, colour=[:grey], label=false)
Perform the NCA Analysis
timeu = u"hr" concu = u"μmol/kg" amtu = u"μmol/kg" nca_analysis = read_nca(data, id = :Subject_ID, time = :Time, conc = :Conc, route = :route, amt = :Dose, group = [:Period,:Gender], timeu = timeu, concu = concu, amtu = amtu) report_nca = NCAReport(nca_analysis, sigdig=3)
id | Period | Gender | doseamt | tlag | tmax | cmax | tlast | |
---|---|---|---|---|---|---|---|---|
Int64 | String | String | Quantit… | Quantit… | Quantit… | Quantit… | Quantit… | |
1 | 7 | 11 | female | 10 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 2.0 μmol kg⁻¹ | 24.0 hr |
2 | 9 | 11 | female | 10 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 1.4 μmol kg⁻¹ | 24.0 hr |
3 | 11 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 5.0 μmol kg⁻¹ | 24.0 hr |
4 | 13 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 0.5 hr | 4.9 μmol kg⁻¹ | 24.0 hr |
5 | 15 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 7.1 μmol kg⁻¹ | 24.0 hr |
6 | 17 | 11 | female | 320 μmol kg⁻¹ | 0.0 hr | 1.0 hr | 25.0 μmol kg⁻¹ | 24.0 hr |
7 | 19 | 11 | female | 320 μmol kg⁻¹ | 0.0 hr | 8.0 hr | 38.0 μmol kg⁻¹ | 24.0 hr |
8 | 27 | 11 | female | 10 μmol kg⁻¹ | 0.0 hr | 0.5 hr | 1.2 μmol kg⁻¹ | 24.0 hr |
9 | 29 | 11 | female | 10 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 0.56 μmol kg⁻¹ | 24.0 hr |
10 | 31 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 5.9 μmol kg⁻¹ | 24.0 hr |
11 | 33 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 3.5 μmol kg⁻¹ | 24.0 hr |
12 | 35 | 11 | female | 56 μmol kg⁻¹ | 0.0 hr | 0.5 hr | 3.5 μmol kg⁻¹ | 24.0 hr |
13 | 37 | 11 | female | 320 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 29.0 μmol kg⁻¹ | 24.0 hr |
14 | 39 | 11 | female | 320 μmol kg⁻¹ | 0.0 hr | 8.0 hr | 17.0 μmol kg⁻¹ | 24.0 hr |
15 | 6 | 11 | male | 10 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 1.3 μmol kg⁻¹ | 24.0 hr |
16 | 8 | 11 | male | 10 μmol kg⁻¹ | 0.0 hr | 0.5 hr | 1.0 μmol kg⁻¹ | 24.0 hr |
17 | 10 | 11 | male | 10 μmol kg⁻¹ | 0.0 hr | 8.0 hr | 1.1 μmol kg⁻¹ | 24.0 hr |
18 | 12 | 11 | male | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 5.5 μmol kg⁻¹ | 24.0 hr |
19 | 14 | 11 | male | 56 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 2.6 μmol kg⁻¹ | 24.0 hr |
20 | 16 | 11 | male | 320 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 38.0 μmol kg⁻¹ | 24.0 hr |
21 | 18 | 11 | male | 320 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 28.0 μmol kg⁻¹ | 24.0 hr |
22 | 20 | 11 | male | 320 μmol kg⁻¹ | 0.0 hr | 8.0 hr | 24.0 μmol kg⁻¹ | 24.0 hr |
23 | 26 | 11 | male | 10 μmol kg⁻¹ | 0.0 hr | 7.5 hr | 3.0 μmol kg⁻¹ | 24.0 hr |
24 | 28 | 11 | male | 10 μmol kg⁻¹ | 0.0 hr | 0.5 hr | 0.15 μmol kg⁻¹ | 24.0 hr |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |