diff --git a/absorption/README.md b/absorption/README.md index 42cce05..f8cfe16 100644 --- a/absorption/README.md +++ b/absorption/README.md @@ -1,4 +1,7 @@ # Absorption models [Sequential zero-/first-order absorption](sequential.md) +[Parallel-firstorder absorption](parallel-firstorder.md) +[Mixed first order abs and zero order infusion](mixedzeroandfirst.md) +[Weibull absorption](#) diff --git a/absorption/mixedzeroandfirst.Rmd b/absorption/mixedzeroandfirst.Rmd new file mode 100644 index 0000000..31a12aa --- /dev/null +++ b/absorption/mixedzeroandfirst.Rmd @@ -0,0 +1,59 @@ +--- +title: "Mixed first order abs and zero order infusion" +output: github_document +--- + +```{r,echo = FALSE, message = FALSE} +knitr::opts_chunk$set(comment='.', + message = FALSE, warning = FALSE) +``` + +```{r} +library(mrgsolve) +library(tidyverse) +``` + +## Mixed first order abs into gut and zero order infusion + +```{r} +code <- ' +$PARAM CL = 5, VC = 50, KA = 0.5, GUTBIOAV = 0.5, GUTLAGT=0 +BIOAV = 1, LAGT = 5, MODE = 0, DUR2 = 4, RAT2 = 10 + +$CMT GUT CENT + +$MAIN +F_GUT = GUTBIOAV; +ALAG_GUT = GUTLAGT; + +F_CENT = 1-F_GUT; +ALAG_CENT = LAGT; + +if(MODE==1) R_CENT = RAT2; +if(MODE==2) D_CENT = DUR2; + +$ODE + +dxdt_GUT = -KA*GUT; +dxdt_CENT = KA*GUT - (CL/VC)*CENT; + +$TABLE +double CP = CENT/VC; + +$CAPTURE CP GUT CENT +' + +mod <- mcode_cache("mixed", code) +``` + +```{r} +mod <- update(mod, end=72) +``` + +### mixed zero and first-order events +```{r} +ev2 <- ev(ID=1,amt = 10, time=0, cmt=1) + ev(ID=1,time = 0, amt = 10, cmt=2, rate=-2, MODE=2) +out <- mod %>% Req(GUT, CENT, CP) %>% mrgsim(ev2) +plot(out) +``` + diff --git a/absorption/mixedzeroandfirst.md b/absorption/mixedzeroandfirst.md new file mode 100644 index 0000000..5865239 --- /dev/null +++ b/absorption/mixedzeroandfirst.md @@ -0,0 +1,55 @@ +Mixed first order abs and zero order infusion +================ + +``` r +library(mrgsolve) +library(tidyverse) +``` + +Mixed first order abs into gut and zero order infusion +------------------------------------------------------ + +``` r +code <- ' +$PARAM CL = 5, VC = 50, KA = 0.5, GUTBIOAV = 0.5, GUTLAGT=0 +BIOAV = 1, LAGT = 5, MODE = 0, DUR2 = 4, RAT2 = 10 + +$CMT GUT CENT + +$MAIN +F_GUT = GUTBIOAV; +ALAG_GUT = GUTLAGT; + +F_CENT = 1-F_GUT; +ALAG_CENT = LAGT; + +if(MODE==1) R_CENT = RAT2; +if(MODE==2) D_CENT = DUR2; + +$ODE + +dxdt_GUT = -KA*GUT; +dxdt_CENT = KA*GUT - (CL/VC)*CENT; + +$TABLE +double CP = CENT/VC; + +$CAPTURE CP GUT CENT +' + +mod <- mcode_cache("mixed", code) +``` + +``` r +mod <- update(mod, end=72) +``` + +### mixed zero and first-order events + +``` r +ev2 <- ev(ID=1,amt = 10, time=0, cmt=1) + ev(ID=1,time = 0, amt = 10, cmt=2, rate=-2, MODE=2) +out <- mod %>% Req(GUT, CENT, CP) %>% mrgsim(ev2) +plot(out) +``` + +![](mixedzeroandfirst_files/figure-markdown_github/unnamed-chunk-5-1.png) diff --git a/absorption/mixedzeroandfirst_files/figure-markdown_github/unnamed-chunk-5-1.png b/absorption/mixedzeroandfirst_files/figure-markdown_github/unnamed-chunk-5-1.png new file mode 100644 index 0000000..e77d844 Binary files /dev/null and b/absorption/mixedzeroandfirst_files/figure-markdown_github/unnamed-chunk-5-1.png differ diff --git a/absorption/parallel-firstorder.Rmd b/absorption/parallel-firstorder.Rmd new file mode 100644 index 0000000..a8c9c34 --- /dev/null +++ b/absorption/parallel-firstorder.Rmd @@ -0,0 +1,63 @@ +--- +title: "Parallel-firstorder absorption" +output: + github_document +--- + +```{r,echo = FALSE, message = FALSE} +knitr::opts_chunk$set(comment='.', + message = FALSE, warning = FALSE) +``` + +```{r} +library(mrgsolve) +library(tidyverse) +``` + +## Two parallel first order absorption models + +```{r} +code <- ' +$PARAM CL = 5, VC = 50, KA1 = 0.8, KA2=0.6 +GUT1BIOAV = 0.5, GUT1LAGT=0, GUT2BIOAV = 1, GUT2LAGT=5 +BIOAV = 1, LAGT = 0 + +$CMT GUT1 GUT2 CENT + +$MAIN +F_GUT1 = GUT1BIOAV; +ALAG_GUT1 = GUT1LAGT; + +F_GUT2 = 1- GUT1BIOAV; +ALAG_GUT2 = GUT2LAGT; + +F_CENT = BIOAV; +ALAG_CENT = LAGT; + +$ODE + +dxdt_GUT1 = -KA1*GUT1; +dxdt_GUT2 = -KA2*GUT2; +dxdt_CENT = KA1*GUT1 + KA2*GUT2 - (CL/VC)*CENT; + +$TABLE +double CP = CENT/VC; + +$CAPTURE CP +' + +mod <- mcode_cache("parabs", code) +``` + +```{r} +mod <- update(mod, end=72) +``` + +### two-parallel first-order events + +```{r} +ev1 <- ev(ID=1, amt = 10, cmt=1) + ev(ID=1, amt = 10, cmt=2) +out <- mod %>% Req(GUT1, GUT2, CP) %>% mrgsim(ev1) +plot(out) +``` + diff --git a/absorption/parallel-firstorder.md b/absorption/parallel-firstorder.md new file mode 100644 index 0000000..089214b --- /dev/null +++ b/absorption/parallel-firstorder.md @@ -0,0 +1,57 @@ +Parallel-firstorder absorption +================ + +``` r +library(mrgsolve) +library(tidyverse) +``` + +Two parallel first order absorption models +------------------------------------------ + +``` r +code <- ' +$PARAM CL = 5, VC = 50, KA1 = 0.8, KA2=0.6 +GUT1BIOAV = 0.5, GUT1LAGT=0, GUT2BIOAV = 1, GUT2LAGT=5 +BIOAV = 1, LAGT = 0 + +$CMT GUT1 GUT2 CENT + +$MAIN +F_GUT1 = GUT1BIOAV; +ALAG_GUT1 = GUT1LAGT; + +F_GUT2 = 1- GUT1BIOAV; +ALAG_GUT2 = GUT2LAGT; + +F_CENT = BIOAV; +ALAG_CENT = LAGT; + +$ODE + +dxdt_GUT1 = -KA1*GUT1; +dxdt_GUT2 = -KA2*GUT2; +dxdt_CENT = KA1*GUT1 + KA2*GUT2 - (CL/VC)*CENT; + +$TABLE +double CP = CENT/VC; + +$CAPTURE CP +' + +mod <- mcode_cache("parabs", code) +``` + +``` r +mod <- update(mod, end=72) +``` + +### two-parallel first-order events + +``` r +ev1 <- ev(ID=1, amt = 10, cmt=1) + ev(ID=1, amt = 10, cmt=2) +out <- mod %>% Req(GUT1, GUT2, CP) %>% mrgsim(ev1) +plot(out) +``` + +![](parallel-firstorder_files/figure-markdown_github/unnamed-chunk-5-1.png) diff --git a/absorption/parallel-firstorder_files/figure-markdown_github/unnamed-chunk-5-1.png b/absorption/parallel-firstorder_files/figure-markdown_github/unnamed-chunk-5-1.png new file mode 100644 index 0000000..59a91fa Binary files /dev/null and b/absorption/parallel-firstorder_files/figure-markdown_github/unnamed-chunk-5-1.png differ diff --git a/absorption/weibull.Rmd b/absorption/weibull.Rmd new file mode 100644 index 0000000..7c5a397 --- /dev/null +++ b/absorption/weibull.Rmd @@ -0,0 +1,61 @@ +--- +title: "Weibull absorption" +output: github_document +--- + +```{r,echo = FALSE, message = FALSE} +knitr::opts_chunk$set(comment='.', + message = FALSE, warning = FALSE) +``` + +```{r} +library(mrgsolve) +library(tidyverse) +``` + +## Weibull-type absorption + +```{r} +code <- ' +$PARAM CL = 5, VC = 50, KA = 0.4, GUTBIOAV = 1, GUTLAGT=0, GAMA=4 +BIOAV = 1, LAGT = 0 + +$CMT GUT CENT + +$MAIN +// Weibull parameters +double GAMA1 = GAMA; + +// Weibull function +double WB = 1 - exp(pow((-KA*TIME),GAMA1)); + +F_GUT = GUTBIOAV; +ALAG_GUT = GUTLAGT; + +F_CENT = BIOAV; +ALAG_CENT = LAGT; + +$ODE +dxdt_GUT = -WB*GUT; +dxdt_CENT = WB*GUT - (CL/VC)*CENT; + +$TABLE +double CP = CENT/VC; + +$CAPTURE CP +' + +mod <- mcode_cache("weibull", code) +``` + +```{r} +mod <- update(mod, end=72) +``` + +### First order events + +```{r} +ev3 <- ev(ID=1,amt = 10, cmt=1) +out<- mod %>% Req(GUT, CENT, CP) %>% mrgsim(ev3) +plot(out) +``` diff --git a/topics.Rproj b/topics.Rproj new file mode 100644 index 0000000..8e3c2eb --- /dev/null +++ b/topics.Rproj @@ -0,0 +1,13 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX