MetidaNCA.DoseTime
— TypeDoseTime(dose::D, time::T, tau::TAU) where D <: Number where T <: Number where TAU <: Number
Dose settings.
dose
- dose;time
- dose time;tau
- tau (τ);
Dose time set 0 by default.
MetidaNCA.ElimRange
— TypeElimRange(kelstart::Int, kelend::Int, kelexcl::Vector{Int})::ElimRange
Elimination settings for PK subject.
kelstart
- start point;kelend
- end point;kelexcl
- excluded points.
MetidaNCA.LimitRule
— TypeLimitRule(lloq::T, btmax, atmax, nan, rm::Bool) where T <: Real
LimitRule(;lloq = NaN, btmax = NaN, atmax = NaN, nan = NaN, rm::Bool = false)
lloq
- LLOQ - low limit of quantification;btmax
- value for points before Tmax;atmat
- values for points after Tmax;nan
- values for replacingNaN
;rm
- iftrue
, removee allNaN
points.
Rule for PK subject.
- STEP 1 (NaN step): replace all
NaN
andmissing
values with nan keyword value (ifnan
not NaN); - STEP 2 (LLOQ step): replace values below
lloq
withbtmax
value if this value befor Tmax or with atmax if this value after Tmax (iflloq
not NaN); - STEP 3 (remove NaN):
rm
== true, then remove allNaN
andmissing
values.
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(time, obs, rule::LimitRule)
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(data::Union{PKSubject, PDSubject}, rule::LimitRule)
Apply rule to PK subject .
- STEP 1 (NaN step): replace all
NaN
andmissing
values with nan keyword value (ifnan
not NaN); - STEP 2 (LLOQ step): replace values below
lloq
withbtmax
value if this value befor Tmax or with atmax if this value after Tmax (iflloq
not NaN); - STEP 3 (remove NaN):
rm
== true, then remove allNaN
andmissing
values.
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(f::Function, data::DataSet{T}, rule::LimitRule) where T <: Union{PKSubject, PDSubject}
Apply if f(subj)
return true
.
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(data::DataSet{T}, rule::LimitRule, sort::Dict) where T <: PKSubject
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(data::DataSet{T}, rule::LimitRule, ind::Int) where T <: Union{PKSubject, PDSubject}
Apply by ind.
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(data::DataSet{T}, rule::LimitRule, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}}) where T <: Union{PKSubject, PDSubject}
Apply by inds.
MetidaNCA.applylimitrule!
— Methodapplylimitrule!(data::DataSet{T}, rule::LimitRule) where T <: Union{PKSubject, PDSubject}
Apply to all dataset.
MetidaNCA.getbl
— Methodgetbl(data::T) where T <: PDSubject
MetidaNCA.getdosetime
— Methodgetdosetime(data::T) where T <: PKSubject
Return dosetime.
MetidaNCA.getkelauto
— Methodgetkelauto!(data::T) where T <: PKSubject
MetidaNCA.getkeldata
— Methodgetkeldata(data::T) where T <: PKSubject
MetidaNCA.getkeldata
— Methodgetkeldata(data::T) where T <: PKSubject
MetidaNCA.getkelrange
— Methodgetkelrange(data::T) where T <: PKSubject
MetidaNCA.getth
— Methodgetth(data::T) where T <: PDSubject
MetidaNCA.nca!
— Methodnca!(data::DataSet{Subj}; adm = :ev, calcm = :lint, intpm = nothing, verbose = 0, warn = true, io::IO = stdout, modify! = identity) where Subj <: AbstractSubject
Non-compartmental (NCA) analysis of PK/PD data.
MetidaNCA.nca!
— Methodnca!(data::PDSubject{T,O}; calcm = :lint, intpm = nothing, verbose = 0, warn = true, io::IO = stdout, modify! = identity, kwargs...) where T where O
Non-compartmental (NCA) analysis of pharmacodynamic data.
Results:
- Rmax - max responce;
- Tmax - time for maximum responce;
- AUCABL - AUC above baseline;
- AUCBBL - AUC below baseline;
- AUCATH - AUC above threshold;
- AUCBTH - AUC below threshold;
- TABL - time above baseline;
- TBBL - time below baseline;
- TATH - time above threshold;
- TBTH - time below threshold;
- AUCBTW - AUC between baseline and threshold;
MetidaNCA.nca!
— Methodnca!(data::PKSubject{T,O}; adm = :ev, calcm = :lint, intpm = nothing, verbose = 0, warn = true, io::IO = stdout, modify! = nothing) where T where O
adm
- administration::ev
- extra vascular;:iv
- intravascular bolus;
calcm
- AUC/AUMC calculation method::lint
- linear trapezoidal;:logt
- log-trapezoidal after Tmax;:luld
- linar up log down;:luldt
- linear up log down after Tmax;
intpm
- interpolation method::lint
- linear trapezoidal;:logt
- log-trapezoidal after Tmax;:luld
- linar up log down;:luldt
- linear up log down after Tmax;
verbose
- print toio
, 1: partial areas table, 2: 1, and results;warn
- show warnings;io
- output stream;modify!
- function to modify output paramaters, callmodify!(data, result)
if difined.
Results:
- Cmax
- Tmax
- Cdose
- Tlag
- Clast
- AUClast
- AUMClast
- AUCall
- Rsq
- ARsq
- Kel
- HL
- LZint
- NpLZ
- Clast_pred
- AUCinf
- AUCinf_pred
- AUMCinf
- AUMCinf_pred
- AUCpct
- MRTlast
- MRTinf
- MRTinf_pred
- Cllast
- Clinf
- Vzlast
- Vzinf
- Vssinf
Stable state (tau used):
- AUCtau
- AUMCtau
- Ctau
- Cavg
- Ctaumin
- Accind
- Fluc
- Fluctau
- Swing
- Swingtau
- MRTtauinf
- Cltau
- Vztau
MetidaNCA.nca!
— Methodnca!(data::UPKSubject{T, O, VOL, V}; adm = :ev, calcm = :lint, intpm = nothing, verbose = 0, warn = true, io::IO = stdout, modify! = identity) where T where O where VOL where V
Non-compartmental (NCA) analysis of pharmacokinetic for urine data.
Results:
- AUCall
- AUClast
- Rlast
- Maxrate
- Tmax
- AR
- Vol
- Prec
- ARsq
- Rsq
- Kel
- LZ
- LZint
- Rsqn
- HL
- AUCinf
MetidaNCA.nca
— Methodnca(args...; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime(), kwargs...)
nca(data, time, conc, sort; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime(), kwargs...)
nca(data, time, conc; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime(), kwargs...)
nca(time, conc; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime(), kwargs...)
Import data and perform NCA analysis.
Syntax simillar to pkimport
Applicable kwargs
see nca!
.
MetidaNCA.pdimport
— Methodpdimport(data, time, obs, sort; bl = 0, th = 0)
Import pharmackodynamic data from table:
data
- data table;time
- observation time;obs
- observation value;sort
- sorting columns.
Keywords:
bl
- baseline;th
- threshold.
MetidaNCA.pdimport
— Methodpdimport(data, time, obs; bl = 0, th = 0, id = Dict{Symbol, Any}())
Import PD data from tabular data data
, time
- time column, obs
- observations column.
MetidaNCA.pdimport
— Methodpdimport(time, obs; bl = 0, th = 0, id = Dict{Symbol, Any}())
Import PD data from time vector time
and observations vector obs
.
MetidaNCA.pkimport
— Methodpkimport(data, time, conc, sort;
kelauto = true,
elimrange = ElimRange(),
dosetime = DoseTime(),
limitrule::Union{Nothing, LimitRule} = nothing)
Import PK data from table data
.
time
- time column;conc
- concentration column;sort
- subject sorting columns.
keywords:
kelauto
- iftrue
auto range settings, iffalse
usedkelstart
/kelend
fromelimrange
;elimrange
- set elimination range settings;dosetime
- set dose and dose time, by default dosetime = 0, dose isNaN
;limitrule
- apply limitrule to subject.
If time column have non-unique values - last pair time-concentration will be used.
MetidaNCA.pkimport
— Methodpkimport(data, time, conc;
kelauto = true,
elimrange = ElimRange(),
dosetime = DoseTime(),
limitrule::Union{Nothing, LimitRule} = nothing)
Import PK data from tabular data data
, time
- time column, conc
- concentration column.
MetidaNCA.pkimport
— Methodpkimport(time, conc; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime(), id = Dict{Symbol, Any}())
Import PK data from time vector time
and concentration vector conc
.
MetidaNCA.pkplot
— Methodpkplot(subj; ls = false, elim = false, xticksn = :auto, yticksn = :auto, kwargs...)
Plot for subject
ls
- concentration in log scale;elim
- draw elimination curve;xticksn
- number of ticks on x axis;yticksn
- number of ticks on y axis;
Other keywords:
plotstyle
- predefined plot style from PKPLOTSTYLE;drawbl
(false
) - draw baseline, only for PDSubject;drawth
(false
) - draw threshold, only for PDSubject;
MetidaNCA.pkplot
— Methodpkplot(data::DataSet{T};
typesort::Union{Nothing, Symbol, AbstractVector{Symbol}} = nothing,
pagesort::Union{Nothing, Symbol, AbstractVector{Symbol}} = nothing,
sort::Union{Nothing, Dict{Symbol}} = nothing,
uylims::Bool = false,
kwargs...) where T <: AbstractSubject
PK plot for subject set.
typesort
- sort on page by this id key;pagesort
- different pages by this id key;sort
- use only subjects if sort ⊆ subject id;uylims
- same ylims for all dataset.
MetidaNCA.setbl!
— Methodsetbl!(data::DataSet{T}, bl, sort::Dict) where T <: PDSubject
MetidaNCA.setbl!
— Methodsetbl!(data::DataSet{T}, bl, ind::Int) where T <: PDSubject
MetidaNCA.setbl!
— Methodsetbl!(data::DataSet{T}, bl, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}})
MetidaNCA.setbl!
— Methodsetbl!(data::DataSet{T}, bl) where T <: PDSubject
MetidaNCA.setbl!
— Methodsetbl!(data::T, bl) where T <: PDSubject
Set baseline
for subject data
.
MetidaNCA.setdosetime!
— Methodsetdosetime!(data::DataSet{T}, dosetime::DoseTime, sort::Dict) where T <: PKSubject
Set dose time dosetime
for subjects if sort
⊆ subject's id
.
MetidaNCA.setdosetime!
— Methodsetdosetime!(data::DataSet{T}, dosetime::DoseTime, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}}) where T <: PKSubject
inds
- indexes in DataSet.
MetidaNCA.setdosetime!
— Methodsetdosetime!(data::DataSet{T}, dosetime::DoseTime) where T <: PKSubject
For all subjects in DataSet.
MetidaNCA.setdosetime!
— Methodsetdosetime!(data::DataSet{T}, dosetime::DoseTime, ind::Int) where T <: PKSubject
ind
- index in DataSet.
MetidaNCA.setdosetime!
— Methodsetdosetime!(data::T, dosetime::DoseTime) where T <: PKSubject
Set dose time dosetime
for subject data
.
MetidaNCA.setkelauto!
— Methodsetkelauto!(data::DataSet{T}, kelauto::Bool, sort::Dict) where T <: PKSubject
MetidaNCA.setkelauto!
— Methodsetkelauto!(data::DataSet{T}, kelauto::Bool, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}}) where T <: PKSubject
MetidaNCA.setkelauto!
— Methodsetkelauto!(data::DataSet{T}, kelauto::Bool) where T <: PKSubject
MetidaNCA.setkelauto!
— Methodsetkelauto!(data::DataSet{T}, kelauto::Bool, ind::Int) where T <: PKSubject
MetidaNCA.setkelauto!
— Methodsetkelauto!(data::T, kelauto::Bool) where T <: PKSubject
Set range for elimination parameters calculation for subject.
data
- PK subject;kelauto
- value.
MetidaNCA.setkelrange!
— Methodsetkelrange!(data::DataSet{T}, range::ElimRange{:point}, sort::Dict; kelauto = false) where T <: PKSubject
MetidaNCA.setkelrange!
— Methodsetdosetime!(data::DataSet{T}, dosetime::DoseTime, ind::Int) where T <: PKSubject
MetidaNCA.setkelrange!
— Methodsetkelrange!(data::DataSet{T}, range::ElimRange{:point}, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}}; kelauto = false)
MetidaNCA.setkelrange!
— Methodsetkelrange!(data::DataSet{T}, range::ElimRange{:point}; kelauto = false) where T <: PKSubject
MetidaNCA.setkelrange!
— Methodsetkelrange!(data::T, range::ElimRange{:point}; kelauto = false) where T <: PKSubject
Set range
for subject data
. Set kelauto
if possible.
MetidaNCA.setth!
— Methodsetth!(data::DataSet{T}, th, sort::Dict) where T <: PDSubject
MetidaNCA.setth!
— Methodsetth!(data::DataSet{T}, th, ind::Int) where T <: PDSubject
MetidaNCA.setth!
— Methodsetth!(data::DataSet{T}, th, inds::Union{Vector{Int}, UnitRange{Int}, Tuple{Vararg{Int}}})
MetidaNCA.setth!
— Methodsetth!(data::DataSet{T}, th) where T <: PDSubject
MetidaNCA.setth!
— Methodsetth!(data::T, th) where T <: PDSubject
Set threshold
for subject data
.
MetidaNCA.timefilter
— Methodtimefilter(data::DataSet{<: PKSubject}, time)
Make new DataSet with new filtered subjects.
MetidaNCA.timefilter
— Methodtimefilter(subj::PKSubject, time::AbstractRange)
Exclude all observation than not in time range.
MetidaNCA.timefilter
— Methodtimefilter(subj::PKSubject, time::Tuple{<:Number, <:Number})
Make deepcopy of subj and remove all observations < time[1] or > time[2]. Then resize keldata to 0.
If any of points in elimination rage not in min/max time, then elimination settings reset.
MetidaNCA.upkimport
— Methodupkimport(stime, etime, conc, vol; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime())
Import urine PK data from time vectors:
stime
- start times;etime
- end times;conc
- concentrations;vol
- volumes.
MetidaNCA.upkimport
— Methodupkimport(data, stime, etime, conc, vol; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime())
Import single urine PK data from table data
.
stime
- start time column;etime
- end time column;conc
- concentration column;vol
- volume column.
MetidaNCA.upkimport
— Methodupkimport(data, stime, etime, conc, vol, sort; kelauto = true, elimrange = ElimRange(), dosetime = DoseTime())
Import urine PK data from table data
.
stime
- start time column;etime
- end time column;conc
- concentration column;vol
- volume column;sort
- subject sorting columns.