aboutsummaryrefslogtreecommitdiff
path: root/vignettes/web_only/compiled_models.Rmd
diff options
context:
space:
mode:
authorJohannes Ranke <jranke@uni-bremen.de>2020-04-02 10:58:34 +0200
committerJohannes Ranke <jranke@uni-bremen.de>2020-04-03 10:53:07 +0200
commit47ba9ea512b82fb8b31da8ec5558f3c0952d86d4 (patch)
tree775b56488b5f040132d00a962c6f7f876ed15b7c /vignettes/web_only/compiled_models.Rmd
parent1d01aa6e40bdb3e338638b9239153cf82713d634 (diff)
Compiled models article, reduce distractions
- Added a section with platform specific notes on getting compiled models to work to the compiled models article - Don't return empty SFORB parameter list from endpoints() if there is no SFORB model - Avoid warnings when using standardized = TRUE in plot.mmkin()
Diffstat (limited to 'vignettes/web_only/compiled_models.Rmd')
-rw-r--r--vignettes/web_only/compiled_models.Rmd53
1 files changed, 41 insertions, 12 deletions
diff --git a/vignettes/web_only/compiled_models.Rmd b/vignettes/web_only/compiled_models.Rmd
index 26d86811..3f4e0097 100644
--- a/vignettes/web_only/compiled_models.Rmd
+++ b/vignettes/web_only/compiled_models.Rmd
@@ -18,17 +18,46 @@ library(knitr)
opts_chunk$set(tidy = FALSE, cache = FALSE)
```
-## Model that can also be solved with Eigenvalues
+## How to benefit from compiled models
-This evaluation is taken from the example section of mkinfit. When using an mkin version
-equal to or greater than 0.9-36 and a C compiler (gcc) is available, you will see
-a message that the model is being compiled from autogenerated C code when
-defining a model using mkinmod. The `mkinmod()` function checks for presence of
-the gcc compiler using
+When using an mkin version equal to or greater than 0.9-36 and a C compiler is
+available, you will see a message that the model is being compiled from
+autogenerated C code when defining a model using mkinmod. Starting from
+version 0.9.49.9, the `mkinmod()` function checks for presence of a compiler
+using
-```{r check_gcc}
-Sys.which("gcc")
+```{r check_gcc, eval = FALSE}
+pkgbuild::has_compiler()
```
+
+In previous versions, it used `Sys.which("gcc")` for this check.
+
+On Linux, you need to have the essential build tools like make and gcc or clang
+installed. On Debian based linux distributions, these will be pulled in by installing
+the build-essential package.
+
+On MacOS, which I do not use personally, I have had reports that a compiler is
+available by default.
+
+On Windows, you need to install Rtools and have the path to its bin directory
+in your PATH variable. You do not need to modify the PATH variable when
+installing Rtools. Instead, I would recommend to put the line
+
+```{r Rprofile, eval = FALSE}
+Sys.setenv(PATH = paste("C:/Rtools/bin", Sys.getenv("PATH"), sep=";"))
+```
+into your .Rprofile startup file. This is just a text file with some R
+code that is executed when your R session starts. It has to be named .Rprofile
+and has to be located in your home directory, which will generally be your
+Documents folder. You can check the location of the home directory used by R by
+issuing
+
+```{r HOME, eval = FALSE}
+Sys.getenv("HOME")
+```
+
+## Comparison with Eigenvalue based solutions
+
First, we build a simple degradation model for a parent compound with one metabolite.
```{r create_SFO_SFO}
@@ -40,10 +69,10 @@ SFO_SFO <- mkinmod(
We can compare the performance of the Eigenvalue based solution against the
compiled version and the R implementation of the differential equations using
-the benchmark package.
-
+the benchmark package. In the output of below code, the warnings about zero
+being removed from the FOCUS D dataset are suppressed.
-```{r benchmark_SFO_SFO, fig.height = 3}
+```{r benchmark_SFO_SFO, fig.height = 3, message = FALSE, warning = FALSE}
if (require(rbenchmark)) {
b.1 <- benchmark(
"deSolve, not compiled" = mkinfit(SFO_SFO, FOCUS_2006_D,
@@ -73,7 +102,7 @@ iterative solution of the ODEs.
This evaluation is also taken from the example section of mkinfit.
-```{r benchmark_FOMC_SFO, fig.height = 3}
+```{r benchmark_FOMC_SFO, fig.height = 3, warning = FALSE}
if (require(rbenchmark)) {
FOMC_SFO <- mkinmod(
parent = mkinsub("FOMC", "m1"),

Contact - Imprint