From 47ba9ea512b82fb8b31da8ec5558f3c0952d86d4 Mon Sep 17 00:00:00 2001
From: Johannes Ranke <jranke@uni-bremen.de>
Date: Thu, 2 Apr 2020 10:58:34 +0200
Subject: 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()
---
 vignettes/web_only/compiled_models.Rmd | 53 ++++++++++++++++++++++++++--------
 1 file changed, 41 insertions(+), 12 deletions(-)

(limited to 'vignettes/web_only/compiled_models.Rmd')

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"),
-- 
cgit v1.2.1

