diff options
Diffstat (limited to 'docs/dev/reference/mkinmod.html')
-rw-r--r-- | docs/dev/reference/mkinmod.html | 523 |
1 files changed, 222 insertions, 301 deletions
diff --git a/docs/dev/reference/mkinmod.html b/docs/dev/reference/mkinmod.html index 60a0af96..5d362f76 100644 --- a/docs/dev/reference/mkinmod.html +++ b/docs/dev/reference/mkinmod.html @@ -1,71 +1,16 @@ -<!-- Generated by pkgdown: do not edit by hand --> <!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<meta name="viewport" content="width=device-width, initial-scale=1.0"> - -<title>Function to set up a kinetic model with one or more state variables — mkinmod • mkin</title> - - -<!-- jquery --> -<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> -<!-- Bootstrap --> - -<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous" /> - -<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script> - -<!-- bootstrap-toc --> -<link rel="stylesheet" href="../bootstrap-toc.css"> -<script src="../bootstrap-toc.js"></script> - -<!-- Font Awesome icons --> -<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" /> -<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous" /> - -<!-- clipboard.js --> -<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script> - -<!-- headroom.js --> -<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script> -<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script> - -<!-- pkgdown --> -<link href="../pkgdown.css" rel="stylesheet"> -<script src="../pkgdown.js"></script> - - - - -<meta property="og:title" content="Function to set up a kinetic model with one or more state variables — mkinmod" /> -<meta property="og:description" content="This function is usually called using a call to mkinsub() for each observed +<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Function to set up a kinetic model with one or more state variables — mkinmod • mkin</title><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><meta property="og:title" content="Function to set up a kinetic model with one or more state variables — mkinmod"><meta property="og:description" content="This function is usually called using a call to mkinsub() for each observed variable, specifying the corresponding submodel as well as outgoing pathways (see examples). Print mkinmod objects in a way that the user finds his way to get to its -components." /> - - -<meta name="robots" content="noindex"> - -<!-- mathjax --> -<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script> -<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script> - -<!--[if lt IE 9]> +components."><meta name="robots" content="noindex"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> -<![endif]--> +<![endif]--></head><body data-spy="scroll" data-target="#toc"> + - - - </head> - - <body data-spy="scroll" data-target="#toc"> <div class="container template-reference-topic"> - <header> - <div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <header><div class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"> @@ -81,8 +26,7 @@ components." /> </div> <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - <li> + <ul class="nav navbar-nav"><li> <a href="../reference/index.html">Functions and data</a> </li> <li class="dropdown"> @@ -91,8 +35,7 @@ components." /> <span class="caret"></span> </a> - <ul class="dropdown-menu" role="menu"> - <li> + <ul class="dropdown-menu" role="menu"><li> <a href="../articles/mkin.html">Introduction to mkin</a> </li> <li> @@ -116,34 +59,27 @@ components." /> <li> <a href="../articles/web_only/benchmarks.html">Some benchmark timings</a> </li> - </ul> -</li> + </ul></li> <li> <a href="../news/index.html">News</a> </li> - </ul> - <ul class="nav navbar-nav navbar-right"> - <li> - <a href="https://github.com/jranke/mkin/"> + </ul><ul class="nav navbar-nav navbar-right"><li> + <a href="https://github.com/jranke/mkin/" class="external-link"> <span class="fab fa-github fa-lg"></span> </a> </li> - </ul> - - </div><!--/.nav-collapse --> + </ul></div><!--/.nav-collapse --> </div><!--/.container --> </div><!--/.navbar --> - </header> - -<div class="row"> + </header><div class="row"> <div class="col-md-9 contents"> <div class="page-header"> <h1>Function to set up a kinetic model with one or more state variables</h1> - <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/mkinmod.R'><code>R/mkinmod.R</code></a>, <a href='https://github.com/jranke/mkin/blob/master/R/mkinsub.R'><code>R/mkinsub.R</code></a></small> + <small class="dont-index">Source: <a href="https://github.com/jranke/mkin/blob/HEAD/R/mkinmod.R" class="external-link"><code>R/mkinmod.R</code></a>, <a href="https://github.com/jranke/mkin/blob/HEAD/R/mkinsub.R" class="external-link"><code>R/mkinsub.R</code></a></small> <div class="hidden name"><code>mkinmod.Rd</code></div> </div> @@ -155,29 +91,29 @@ variable, specifying the corresponding submodel as well as outgoing pathways components.</p> </div> - <pre class="usage"><span class='fu'>mkinmod</span><span class='op'>(</span> - <span class='va'>...</span>, - use_of_ff <span class='op'>=</span> <span class='st'>"max"</span>, - name <span class='op'>=</span> <span class='cn'>NULL</span>, - speclist <span class='op'>=</span> <span class='cn'>NULL</span>, - quiet <span class='op'>=</span> <span class='cn'>FALSE</span>, - verbose <span class='op'>=</span> <span class='cn'>FALSE</span>, - dll_dir <span class='op'>=</span> <span class='cn'>NULL</span>, - unload <span class='op'>=</span> <span class='cn'>FALSE</span>, - overwrite <span class='op'>=</span> <span class='cn'>FALSE</span> -<span class='op'>)</span> - -<span class='co'># S3 method for mkinmod</span> -<span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>x</span>, <span class='va'>...</span><span class='op'>)</span> - -<span class='fu'>mkinsub</span><span class='op'>(</span><span class='va'>submodel</span>, to <span class='op'>=</span> <span class='cn'>NULL</span>, sink <span class='op'>=</span> <span class='cn'>TRUE</span>, full_name <span class='op'>=</span> <span class='cn'>NA</span><span class='op'>)</span></pre> + <div id="ref-usage"> + <div class="sourceCode"><pre class="sourceCode r"><code><span class="fu">mkinmod</span><span class="op">(</span> + <span class="va">...</span>, + use_of_ff <span class="op">=</span> <span class="st">"max"</span>, + name <span class="op">=</span> <span class="cn">NULL</span>, + speclist <span class="op">=</span> <span class="cn">NULL</span>, + quiet <span class="op">=</span> <span class="cn">FALSE</span>, + verbose <span class="op">=</span> <span class="cn">FALSE</span>, + dll_dir <span class="op">=</span> <span class="cn">NULL</span>, + unload <span class="op">=</span> <span class="cn">FALSE</span>, + overwrite <span class="op">=</span> <span class="cn">FALSE</span> +<span class="op">)</span> + +<span class="co"># S3 method for mkinmod</span> +<span class="fu"><a href="https://rdrr.io/r/base/print.html" class="external-link">print</a></span><span class="op">(</span><span class="va">x</span>, <span class="va">...</span><span class="op">)</span> + +<span class="fu">mkinsub</span><span class="op">(</span><span class="va">submodel</span>, to <span class="op">=</span> <span class="cn">NULL</span>, sink <span class="op">=</span> <span class="cn">TRUE</span>, full_name <span class="op">=</span> <span class="cn">NA</span><span class="op">)</span></code></pre></div> + </div> - <h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2> - <table class="ref-arguments"> - <colgroup><col class="name" /><col class="desc" /></colgroup> - <tr> - <th>...</th> - <td><p>For each observed variable, a list as obtained by <code>mkinsub()</code> + <div id="arguments"> + <h2>Arguments</h2> + <dl><dt>...</dt> +<dd><p>For each observed variable, a list as obtained by <code>mkinsub()</code> has to be specified as an argument (see examples). Currently, single first order kinetics "SFO", indeterminate order rate equation kinetics "IORE", or single first order with reversible binding "SFORB" are @@ -190,249 +126,234 @@ If the argument <code>use_of_ff</code> is set to "min" (default) and the model for the compartment is "SFO" or "SFORB", an additional <code>mkinsub()</code> argument can be <code>sink = FALSE</code>, effectively fixing the flux to sink to zero. -In print.mkinmod, this argument is currently not used.</p></td> - </tr> - <tr> - <th>use_of_ff</th> - <td><p>Specification of the use of formation fractions in the +In print.mkinmod, this argument is currently not used.</p></dd> +<dt>use_of_ff</dt> +<dd><p>Specification of the use of formation fractions in the model equations and, if applicable, the coefficient matrix. If "max", formation fractions are always used (default). If "min", a minimum use of formation fractions is made, i.e. each first-order pathway to a metabolite -has its own rate constant.</p></td> - </tr> - <tr> - <th>name</th> - <td><p>A name for the model. Should be a valid R object name.</p></td> - </tr> - <tr> - <th>speclist</th> - <td><p>The specification of the observed variables and their +has its own rate constant.</p></dd> +<dt>name</dt> +<dd><p>A name for the model. Should be a valid R object name.</p></dd> +<dt>speclist</dt> +<dd><p>The specification of the observed variables and their submodel types and pathways can be given as a single list using this -argument. Default is NULL.</p></td> - </tr> - <tr> - <th>quiet</th> - <td><p>Should messages be suppressed?</p></td> - </tr> - <tr> - <th>verbose</th> - <td><p>If <code>TRUE</code>, passed to <code><a href='https://rdrr.io/pkg/inline/man/cfunction.html'>inline::cfunction()</a></code> if -applicable to give detailed information about the C function being built.</p></td> - </tr> - <tr> - <th>dll_dir</th> - <td><p>Directory where an DLL object, if generated internally by -<code><a href='https://rdrr.io/pkg/inline/man/cfunction.html'>inline::cfunction()</a></code>, should be saved. The DLL will only be stored in a +argument. Default is NULL.</p></dd> +<dt>quiet</dt> +<dd><p>Should messages be suppressed?</p></dd> +<dt>verbose</dt> +<dd><p>If <code>TRUE</code>, passed to <code><a href="https://rdrr.io/pkg/inline/man/cfunction.html" class="external-link">inline::cfunction()</a></code> if +applicable to give detailed information about the C function being built.</p></dd> +<dt>dll_dir</dt> +<dd><p>Directory where an DLL object, if generated internally by +<code><a href="https://rdrr.io/pkg/inline/man/cfunction.html" class="external-link">inline::cfunction()</a></code>, should be saved. The DLL will only be stored in a permanent location for use in future sessions, if 'dll_dir' and 'name' -are specified.</p></td> - </tr> - <tr> - <th>unload</th> - <td><p>If a DLL from the target location in 'dll_dir' is already -loaded, should that be unloaded first?</p></td> - </tr> - <tr> - <th>overwrite</th> - <td><p>If a file exists at the target DLL location in 'dll_dir', -should this be overwritten?</p></td> - </tr> - <tr> - <th>x</th> - <td><p>An <code>mkinmod</code> object.</p></td> - </tr> - <tr> - <th>submodel</th> - <td><p>Character vector of length one to specify the submodel type. -See <code>mkinmod</code> for the list of allowed submodel names.</p></td> - </tr> - <tr> - <th>to</th> - <td><p>Vector of the names of the state variable to which a -transformation shall be included in the model.</p></td> - </tr> - <tr> - <th>sink</th> - <td><p>Should a pathway to sink be included in the model in addition to -the pathways to other state variables?</p></td> - </tr> - <tr> - <th>full_name</th> - <td><p>An optional name to be used e.g. for plotting fits +are specified.</p></dd> +<dt>unload</dt> +<dd><p>If a DLL from the target location in 'dll_dir' is already +loaded, should that be unloaded first?</p></dd> +<dt>overwrite</dt> +<dd><p>If a file exists at the target DLL location in 'dll_dir', +should this be overwritten?</p></dd> +<dt>x</dt> +<dd><p>An <code>mkinmod</code> object.</p></dd> +<dt>submodel</dt> +<dd><p>Character vector of length one to specify the submodel type. +See <code>mkinmod</code> for the list of allowed submodel names.</p></dd> +<dt>to</dt> +<dd><p>Vector of the names of the state variable to which a +transformation shall be included in the model.</p></dd> +<dt>sink</dt> +<dd><p>Should a pathway to sink be included in the model in addition to +the pathways to other state variables?</p></dd> +<dt>full_name</dt> +<dd><p>An optional name to be used e.g. for plotting fits performed with the model. You can use non-ASCII characters here, but then your R code will not be portable, <em>i.e.</em> may produce unintended plot -results on other operating systems or system configurations.</p></td> - </tr> - </table> - - <h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2> - - <p>A list of class <code>mkinmod</code> for use with <code><a href='mkinfit.html'>mkinfit()</a></code>, +results on other operating systems or system configurations.</p></dd> +</dl></div> + <div id="value"> + <h2>Value</h2> + <p>A list of class <code>mkinmod</code> for use with <code><a href="mkinfit.html">mkinfit()</a></code>, containing, among others,</p> -<dt>diffs</dt><dd><p>A vector of string representations of differential equations, one for +<dl><dt>diffs</dt> +<dd><p>A vector of string representations of differential equations, one for each modelling variable.</p></dd> -<dt>map</dt><dd><p>A list containing named character vectors for each observed variable, +<dt>map</dt> +<dd><p>A list containing named character vectors for each observed variable, specifying the modelling variables by which it is represented.</p></dd> -<dt>use_of_ff</dt><dd><p>The content of <code>use_of_ff</code> is passed on in this list component.</p></dd> -<dt>deg_func</dt><dd><p>If generated, a function containing the solution of the degradation +<dt>use_of_ff</dt> +<dd><p>The content of <code>use_of_ff</code> is passed on in this list component.</p></dd> +<dt>deg_func</dt> +<dd><p>If generated, a function containing the solution of the degradation model.</p></dd> -<dt>coefmat</dt><dd><p>The coefficient matrix, if the system of differential equations can be +<dt>coefmat</dt> +<dd><p>The coefficient matrix, if the system of differential equations can be represented by one.</p></dd> -<dt>cf</dt><dd><p>If generated, a compiled function calculating the derivatives as +<dt>cf</dt> +<dd><p>If generated, a compiled function calculating the derivatives as returned by cfunction.</p></dd> - -A list for use with mkinmod. - - <h2 class="hasAnchor" id="details"><a class="anchor" href="#details"></a>Details</h2> - +</dl><p>A list for use with <code>mkinmod</code>.</p> + </div> + <div id="details"> + <h2>Details</h2> <p>For the definition of model types and their parameters, the equations given in the FOCUS and NAFTA guidance documents are used.</p> <p>For kinetic models with more than one observed variable, a symbolic solution of the system of differential equations is included in the resulting mkinmod object in some cases, speeding up the solution.</p> -<p>If a C compiler is found by <code><a href='https://rdrr.io/pkg/pkgbuild/man/has_compiler.html'>pkgbuild::has_compiler()</a></code> and there +<p>If a C compiler is found by <code><a href="https://rdrr.io/pkg/pkgbuild/man/has_compiler.html" class="external-link">pkgbuild::has_compiler()</a></code> and there is more than one observed variable in the specification, C code is generated for evaluating the differential equations, compiled using -<code><a href='https://rdrr.io/pkg/inline/man/cfunction.html'>inline::cfunction()</a></code> and added to the resulting mkinmod object.</p> - <h2 class="hasAnchor" id="note"><a class="anchor" href="#note"></a>Note</h2> - +<code><a href="https://rdrr.io/pkg/inline/man/cfunction.html" class="external-link">inline::cfunction()</a></code> and added to the resulting mkinmod object.</p> + </div> + <div id="note"> + <h2>Note</h2> <p>The IORE submodel is not well tested for metabolites. When using this model for metabolites, you may want to read the note in the help -page to <a href='mkinfit.html'>mkinfit</a>.</p> - <h2 class="hasAnchor" id="references"><a class="anchor" href="#references"></a>References</h2> - - <p>FOCUS (2006) “Guidance Document on Estimating Persistence +page to <a href="mkinfit.html">mkinfit</a>.</p> + </div> + <div id="references"> + <h2>References</h2> + <p>FOCUS (2006) “Guidance Document on Estimating Persistence and Degradation Kinetics from Environmental Fate Studies on Pesticides in -EU Registration” Report of the FOCUS Work Group on Degradation Kinetics, +EU Registration” Report of the FOCUS Work Group on Degradation Kinetics, EC Document Reference Sanco/10058/2005 version 2.0, 434 pp, -<a href='http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics'>http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics</a></p> +<a href="http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics" class="external-link">http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics</a></p> <p>NAFTA Technical Working Group on Pesticides (not dated) Guidance for Evaluating and Calculating Degradation Kinetics in Environmental Media</p> - <h2 class="hasAnchor" id="author"><a class="anchor" href="#author"></a>Author</h2> - + </div> + <div id="author"> + <h2>Author</h2> <p>Johannes Ranke</p> + </div> - <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> - <pre class="examples"><div class='input'> -<span class='co'># Specify the SFO model (this is not needed any more, as we can now mkinfit("SFO", ...)</span> -<span class='va'>SFO</span> <span class='op'><-</span> <span class='fu'>mkinmod</span><span class='op'>(</span>parent <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span><span class='op'>)</span> - -<span class='co'># One parent compound, one metabolite, both single first order</span> -<span class='va'>SFO_SFO</span> <span class='op'><-</span> <span class='fu'>mkinmod</span><span class='op'>(</span> - parent <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span>, <span class='st'>"m1"</span><span class='op'>)</span>, - m1 <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span><span class='op'>)</span> -</div><div class='output co'>#> <span class='message'>Temporary DLL for differentials generated and loaded</span></div><div class='input'><span class='fu'><a href='https://rdrr.io/r/base/print.html'>print</a></span><span class='op'>(</span><span class='va'>SFO_SFO</span><span class='op'>)</span> -</div><div class='output co'>#> <mkinmod> model generated with -#> Use of formation fractions $use_of_ff: max -#> Specification $spec: -#> $parent -#> $type: SFO; $to: m1; $sink: TRUE -#> $m1 -#> $type: SFO; $sink: TRUE -#> Coefficient matrix $coefmat available -#> Compiled model $cf available -#> Differential equations: -#> d_parent/dt = - k_parent * parent -#> d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1</div><div class='input'> -<span class='co'># \dontrun{</span> - <span class='va'>fit_sfo_sfo</span> <span class='op'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span><span class='op'>(</span><span class='va'>SFO_SFO</span>, <span class='va'>FOCUS_2006_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, solution_type <span class='op'>=</span> <span class='st'>"deSolve"</span><span class='op'>)</span> -</div><div class='output co'>#> <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'> - <span class='co'># Now supplying compound names used for plotting, and write to user defined location</span> - <span class='co'># We need to choose a path outside the session tempdir because this gets removed</span> - <span class='va'>DLL_dir</span> <span class='op'><-</span> <span class='st'>"~/.local/share/mkin"</span> - <span class='kw'>if</span> <span class='op'>(</span><span class='op'>!</span><span class='fu'><a href='https://rdrr.io/r/base/files2.html'>dir.exists</a></span><span class='op'>(</span><span class='va'>DLL_dir</span><span class='op'>)</span><span class='op'>)</span> <span class='fu'><a href='https://rdrr.io/r/base/files2.html'>dir.create</a></span><span class='op'>(</span><span class='va'>DLL_dir</span><span class='op'>)</span> - <span class='va'>SFO_SFO.2</span> <span class='op'><-</span> <span class='fu'>mkinmod</span><span class='op'>(</span> - parent <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span>, <span class='st'>"m1"</span>, full_name <span class='op'>=</span> <span class='st'>"Test compound"</span><span class='op'>)</span>, - m1 <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span>, full_name <span class='op'>=</span> <span class='st'>"Metabolite M1"</span><span class='op'>)</span>, - name <span class='op'>=</span> <span class='st'>"SFO_SFO"</span>, dll_dir <span class='op'>=</span> <span class='va'>DLL_dir</span>, unload <span class='op'>=</span> <span class='cn'>TRUE</span>, overwrite <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> -</div><div class='output co'>#> <span class='message'>Copied DLL from /tmp/RtmpWsX48Z/file1029f864aada00.so to /home/jranke/.local/share/mkin/SFO_SFO.so</span></div><div class='input'><span class='co'># Now we can save the model and restore it in a new session</span> -<span class='fu'><a href='https://rdrr.io/r/base/readRDS.html'>saveRDS</a></span><span class='op'>(</span><span class='va'>SFO_SFO.2</span>, file <span class='op'>=</span> <span class='st'>"~/SFO_SFO.rds"</span><span class='op'>)</span> -<span class='co'># Terminate the R session here if you would like to check, and then do</span> -<span class='kw'><a href='https://rdrr.io/r/base/library.html'>library</a></span><span class='op'>(</span><span class='va'><a href='https://pkgdown.jrwb.de/mkin/'>mkin</a></span><span class='op'>)</span> -<span class='va'>SFO_SFO.3</span> <span class='op'><-</span> <span class='fu'><a href='https://rdrr.io/r/base/readRDS.html'>readRDS</a></span><span class='op'>(</span><span class='st'>"~/SFO_SFO.rds"</span><span class='op'>)</span> -<span class='va'>fit_sfo_sfo</span> <span class='op'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span><span class='op'>(</span><span class='va'>SFO_SFO.3</span>, <span class='va'>FOCUS_2006_D</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span>, solution_type <span class='op'>=</span> <span class='st'>"deSolve"</span><span class='op'>)</span> -</div><div class='output co'>#> <span class='warning'>Warning: Observations with value of zero were removed from the data</span></div><div class='input'> -<span class='co'># Show details of creating the C function</span> -<span class='va'>SFO_SFO</span> <span class='op'><-</span> <span class='fu'>mkinmod</span><span class='op'>(</span> - parent <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span>, <span class='st'>"m1"</span><span class='op'>)</span>, - m1 <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span>, verbose <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> -</div><div class='output co'>#> Program source: -#> 1: #include <R.h> -#> 2: -#> 3: -#> 4: static double parms [3]; -#> 5: #define k_parent parms[0] -#> 6: #define f_parent_to_m1 parms[1] -#> 7: #define k_m1 parms[2] -#> 8: -#> 9: void initpar(void (* odeparms)(int *, double *)) { -#> 10: int N = 3; -#> 11: odeparms(&N, parms); -#> 12: } -#> 13: -#> 14: -#> 15: void diffs ( int * n, double * t, double * y, double * f, double * rpar, int * ipar ) { -#> 16: -#> 17: f[0] = - k_parent * y[0]; -#> 18: f[1] = + f_parent_to_m1 * k_parent * y[0] - k_m1 * y[1]; -#> 19: }</div><div class='output co'>#> <span class='message'>Temporary DLL for differentials generated and loaded</span></div><div class='input'> -<span class='co'># The symbolic solution which is available in this case is not</span> -<span class='co'># made for human reading but for speed of computation</span> -<span class='va'>SFO_SFO</span><span class='op'>$</span><span class='va'>deg_func</span> -</div><div class='output co'>#> function (observed, odeini, odeparms) -#> { -#> predicted <- numeric(0) -#> with(as.list(odeparms), { -#> t <- observed[observed$name == "parent", "time"] -#> predicted <<- c(predicted, SFO.solution(t, odeini["parent"], -#> k_parent)) -#> t <- observed[observed$name == "m1", "time"] -#> predicted <<- c(predicted, (((k_m1 - k_parent) * odeini["m1"] - -#> f_parent_to_m1 * k_parent * odeini["parent"]) * exp(-k_m1 * -#> t) + f_parent_to_m1 * k_parent * odeini["parent"] * -#> exp(-k_parent * t))/(k_m1 - k_parent)) -#> }) -#> return(predicted) -#> } -#> <environment: 0x55555cc38878></div><div class='input'> -<span class='co'># If we have several parallel metabolites</span> -<span class='co'># (compare tests/testthat/test_synthetic_data_for_UBA_2014.R)</span> -<span class='va'>m_synth_DFOP_par</span> <span class='op'><-</span> <span class='fu'>mkinmod</span><span class='op'>(</span> - parent <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"DFOP"</span>, <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"M1"</span>, <span class='st'>"M2"</span><span class='op'>)</span><span class='op'>)</span>, - M1 <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span>, - M2 <span class='op'>=</span> <span class='fu'>mkinsub</span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span>, - quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> - -<span class='va'>fit_DFOP_par_c</span> <span class='op'><-</span> <span class='fu'><a href='mkinfit.html'>mkinfit</a></span><span class='op'>(</span><span class='va'>m_synth_DFOP_par</span>, - <span class='va'>synthetic_data_for_UBA_2014</span><span class='op'>[[</span><span class='fl'>12</span><span class='op'>]</span><span class='op'>]</span><span class='op'>$</span><span class='va'>data</span>, - quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> -<span class='co'># }</span> - -</div></pre> + <div id="ref-examples"> + <h2>Examples</h2> + <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"></span> +<span class="r-in"><span class="co"># Specify the SFO model (this is not needed any more, as we can now mkinfit("SFO", ...)</span></span> +<span class="r-in"><span class="va">SFO</span> <span class="op"><-</span> <span class="fu">mkinmod</span><span class="op">(</span>parent <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span><span class="op">)</span></span> +<span class="r-in"></span> +<span class="r-in"><span class="co"># One parent compound, one metabolite, both single first order</span></span> +<span class="r-in"><span class="va">SFO_SFO</span> <span class="op"><-</span> <span class="fu">mkinmod</span><span class="op">(</span></span> +<span class="r-in"> parent <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"m1"</span><span class="op">)</span>,</span> +<span class="r-in"> m1 <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span><span class="op">)</span></span> +<span class="r-msg co"><span class="r-pr">#></span> Temporary DLL for differentials generated and loaded</span> +<span class="r-in"><span class="fu"><a href="https://rdrr.io/r/base/print.html" class="external-link">print</a></span><span class="op">(</span><span class="va">SFO_SFO</span><span class="op">)</span></span> +<span class="r-out co"><span class="r-pr">#></span> <mkinmod> model generated with</span> +<span class="r-out co"><span class="r-pr">#></span> Use of formation fractions $use_of_ff: max </span> +<span class="r-out co"><span class="r-pr">#></span> Specification $spec:</span> +<span class="r-out co"><span class="r-pr">#></span> $parent</span> +<span class="r-out co"><span class="r-pr">#></span> $type: SFO; $to: m1; $sink: TRUE</span> +<span class="r-out co"><span class="r-pr">#></span> $m1</span> +<span class="r-out co"><span class="r-pr">#></span> $type: SFO; $sink: TRUE</span> +<span class="r-out co"><span class="r-pr">#></span> Coefficient matrix $coefmat available</span> +<span class="r-out co"><span class="r-pr">#></span> Compiled model $cf available</span> +<span class="r-out co"><span class="r-pr">#></span> Differential equations:</span> +<span class="r-out co"><span class="r-pr">#></span> d_parent/dt = - k_parent * parent</span> +<span class="r-out co"><span class="r-pr">#></span> d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1</span> +<span class="r-in"></span> +<span class="r-in"><span class="co"># \dontrun{</span></span> +<span class="r-in"> <span class="va">fit_sfo_sfo</span> <span class="op"><-</span> <span class="fu"><a href="mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="va">SFO_SFO</span>, <span class="va">FOCUS_2006_D</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span>, solution_type <span class="op">=</span> <span class="st">"deSolve"</span><span class="op">)</span></span> +<span class="r-in"></span> +<span class="r-in"> <span class="co"># Now supplying compound names used for plotting, and write to user defined location</span></span> +<span class="r-in"> <span class="co"># We need to choose a path outside the session tempdir because this gets removed</span></span> +<span class="r-in"> <span class="va">DLL_dir</span> <span class="op"><-</span> <span class="st">"~/.local/share/mkin"</span></span> +<span class="r-in"> <span class="kw">if</span> <span class="op">(</span><span class="op">!</span><span class="fu"><a href="https://rdrr.io/r/base/files2.html" class="external-link">dir.exists</a></span><span class="op">(</span><span class="va">DLL_dir</span><span class="op">)</span><span class="op">)</span> <span class="fu"><a href="https://rdrr.io/r/base/files2.html" class="external-link">dir.create</a></span><span class="op">(</span><span class="va">DLL_dir</span><span class="op">)</span></span> +<span class="r-in"> <span class="va">SFO_SFO.2</span> <span class="op"><-</span> <span class="fu">mkinmod</span><span class="op">(</span></span> +<span class="r-in"> parent <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"m1"</span>, full_name <span class="op">=</span> <span class="st">"Test compound"</span><span class="op">)</span>,</span> +<span class="r-in"> m1 <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span>, full_name <span class="op">=</span> <span class="st">"Metabolite M1"</span><span class="op">)</span>,</span> +<span class="r-in"> name <span class="op">=</span> <span class="st">"SFO_SFO"</span>, dll_dir <span class="op">=</span> <span class="va">DLL_dir</span>, unload <span class="op">=</span> <span class="cn">TRUE</span>, overwrite <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> +<span class="r-msg co"><span class="r-pr">#></span> Copied DLL from /tmp/Rtmp6NiOcv/fileb89c01ace19ec.so to /home/jranke/.local/share/mkin/SFO_SFO.so</span> +<span class="r-in"><span class="co"># Now we can save the model and restore it in a new session</span></span> +<span class="r-in"><span class="fu"><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">saveRDS</a></span><span class="op">(</span><span class="va">SFO_SFO.2</span>, file <span class="op">=</span> <span class="st">"~/SFO_SFO.rds"</span><span class="op">)</span></span> +<span class="r-in"><span class="co"># Terminate the R session here if you would like to check, and then do</span></span> +<span class="r-in"><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://pkgdown.jrwb.de/mkin/">mkin</a></span><span class="op">)</span></span> +<span class="r-in"><span class="va">SFO_SFO.3</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/readRDS.html" class="external-link">readRDS</a></span><span class="op">(</span><span class="st">"~/SFO_SFO.rds"</span><span class="op">)</span></span> +<span class="r-in"><span class="va">fit_sfo_sfo</span> <span class="op"><-</span> <span class="fu"><a href="mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="va">SFO_SFO.3</span>, <span class="va">FOCUS_2006_D</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span>, solution_type <span class="op">=</span> <span class="st">"deSolve"</span><span class="op">)</span></span> +<span class="r-in"></span> +<span class="r-in"><span class="co"># Show details of creating the C function</span></span> +<span class="r-in"><span class="va">SFO_SFO</span> <span class="op"><-</span> <span class="fu">mkinmod</span><span class="op">(</span></span> +<span class="r-in"> parent <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"m1"</span><span class="op">)</span>,</span> +<span class="r-in"> m1 <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span>, verbose <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> +<span class="r-out co"><span class="r-pr">#></span> Program source:</span> +<span class="r-out co"><span class="r-pr">#></span> 1: #include <R.h></span> +<span class="r-out co"><span class="r-pr">#></span> 2: </span> +<span class="r-out co"><span class="r-pr">#></span> 3: </span> +<span class="r-out co"><span class="r-pr">#></span> 4: static double parms [3];</span> +<span class="r-out co"><span class="r-pr">#></span> 5: #define k_parent parms[0]</span> +<span class="r-out co"><span class="r-pr">#></span> 6: #define f_parent_to_m1 parms[1]</span> +<span class="r-out co"><span class="r-pr">#></span> 7: #define k_m1 parms[2]</span> +<span class="r-out co"><span class="r-pr">#></span> 8: </span> +<span class="r-out co"><span class="r-pr">#></span> 9: void initpar(void (* odeparms)(int *, double *)) {</span> +<span class="r-out co"><span class="r-pr">#></span> 10: int N = 3;</span> +<span class="r-out co"><span class="r-pr">#></span> 11: odeparms(&N, parms);</span> +<span class="r-out co"><span class="r-pr">#></span> 12: }</span> +<span class="r-out co"><span class="r-pr">#></span> 13: </span> +<span class="r-out co"><span class="r-pr">#></span> 14: </span> +<span class="r-out co"><span class="r-pr">#></span> 15: void diffs ( int * n, double * t, double * y, double * f, double * rpar, int * ipar ) {</span> +<span class="r-out co"><span class="r-pr">#></span> 16: </span> +<span class="r-out co"><span class="r-pr">#></span> 17: f[0] = - k_parent * y[0];</span> +<span class="r-out co"><span class="r-pr">#></span> 18: f[1] = + f_parent_to_m1 * k_parent * y[0] - k_m1 * y[1];</span> +<span class="r-out co"><span class="r-pr">#></span> 19: }</span> +<span class="r-msg co"><span class="r-pr">#></span> Temporary DLL for differentials generated and loaded</span> +<span class="r-in"></span> +<span class="r-in"><span class="co"># The symbolic solution which is available in this case is not</span></span> +<span class="r-in"><span class="co"># made for human reading but for speed of computation</span></span> +<span class="r-in"><span class="va">SFO_SFO</span><span class="op">$</span><span class="va">deg_func</span></span> +<span class="r-out co"><span class="r-pr">#></span> function (observed, odeini, odeparms) </span> +<span class="r-out co"><span class="r-pr">#></span> {</span> +<span class="r-out co"><span class="r-pr">#></span> predicted <- numeric(0)</span> +<span class="r-out co"><span class="r-pr">#></span> with(as.list(odeparms), {</span> +<span class="r-out co"><span class="r-pr">#></span> t <- observed[observed$name == "parent", "time"]</span> +<span class="r-out co"><span class="r-pr">#></span> predicted <<- c(predicted, SFO.solution(t, odeini["parent"], </span> +<span class="r-out co"><span class="r-pr">#></span> k_parent))</span> +<span class="r-out co"><span class="r-pr">#></span> t <- observed[observed$name == "m1", "time"]</span> +<span class="r-out co"><span class="r-pr">#></span> predicted <<- c(predicted, (((k_m1 - k_parent) * odeini["m1"] - </span> +<span class="r-out co"><span class="r-pr">#></span> f_parent_to_m1 * k_parent * odeini["parent"]) * exp(-k_m1 * </span> +<span class="r-out co"><span class="r-pr">#></span> t) + f_parent_to_m1 * k_parent * odeini["parent"] * </span> +<span class="r-out co"><span class="r-pr">#></span> exp(-k_parent * t))/(k_m1 - k_parent))</span> +<span class="r-out co"><span class="r-pr">#></span> })</span> +<span class="r-out co"><span class="r-pr">#></span> return(predicted)</span> +<span class="r-out co"><span class="r-pr">#></span> }</span> +<span class="r-out co"><span class="r-pr">#></span> <environment: 0x55555cd83c70></span> +<span class="r-in"></span> +<span class="r-in"><span class="co"># If we have several parallel metabolites</span></span> +<span class="r-in"><span class="co"># (compare tests/testthat/test_synthetic_data_for_UBA_2014.R)</span></span> +<span class="r-in"><span class="va">m_synth_DFOP_par</span> <span class="op"><-</span> <span class="fu">mkinmod</span><span class="op">(</span></span> +<span class="r-in"> parent <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"DFOP"</span>, <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"M1"</span>, <span class="st">"M2"</span><span class="op">)</span><span class="op">)</span>,</span> +<span class="r-in"> M1 <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span>,</span> +<span class="r-in"> M2 <span class="op">=</span> <span class="fu">mkinsub</span><span class="op">(</span><span class="st">"SFO"</span><span class="op">)</span>,</span> +<span class="r-in"> quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> +<span class="r-in"></span> +<span class="r-in"><span class="va">fit_DFOP_par_c</span> <span class="op"><-</span> <span class="fu"><a href="mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="va">m_synth_DFOP_par</span>,</span> +<span class="r-in"> <span class="va">synthetic_data_for_UBA_2014</span><span class="op">[[</span><span class="fl">12</span><span class="op">]</span><span class="op">]</span><span class="op">$</span><span class="va">data</span>,</span> +<span class="r-in"> quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> +<span class="r-in"><span class="co"># }</span></span> +<span class="r-in"></span> +</code></pre></div> + </div> </div> <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> - <nav id="toc" data-toggle="toc" class="sticky-top"> - <h2 data-toc-skip>Contents</h2> - </nav> - </div> + <nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2> + </nav></div> </div> - <footer> - <div class="copyright"> - <p>Developed by Johannes Ranke.</p> + <footer><div class="copyright"> + <p></p><p>Developed by Johannes Ranke.</p> </div> <div class="pkgdown"> - <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p> + <p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.2.</p> </div> - </footer> - </div> + </footer></div> - </body> -</html> + + </body></html> |