From 99a6582cd97c148686b06cf795a05a167b37645a Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Wed, 6 Jun 2018 02:12:52 +0200 Subject: Static documentation rebuilt by pkgdown --- DESCRIPTION | 1 + docs/articles/gmkin_manual.html | 60 +++++++------ docs/articles/index.html | 36 +++++--- docs/authors.html | 28 ++++-- docs/docsearch.css | 148 +++++++++++++++++++++++++++++++ docs/docsearch.js | 85 ++++++++++++++++++ docs/index.html | 29 ++++-- docs/news/index.html | 38 +++++--- docs/pkgdown.css | 50 +++++++++-- docs/pkgdown.js | 160 +++++++++++++++++++--------------- docs/pkgdown.yml | 6 ++ docs/reference/FOCUS_2006.html | 30 +++++-- docs/reference/FOCUS_2006_Z.html | 30 +++++-- docs/reference/UBA_model_gallery.html | 30 +++++-- docs/reference/gmkin.html | 32 +++++-- docs/reference/gmkinws.html | 30 +++++-- docs/reference/index.html | 130 ++++++++++++++------------- 17 files changed, 690 insertions(+), 233 deletions(-) create mode 100644 docs/docsearch.css create mode 100644 docs/docsearch.js create mode 100644 docs/pkgdown.yml diff --git a/DESCRIPTION b/DESCRIPTION index bc740bd..8f3f66c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -21,3 +21,4 @@ VignetteBuilder: knitr BugReports: http://github.com/jranke/gmkin/issues URL: http://kinfit.r-forge.r-project.org/gmkin_static, http://pkgdown.jrwb.de/gmkin +RoxygenNote: 6.0.1 diff --git a/docs/articles/gmkin_manual.html b/docs/articles/gmkin_manual.html index f283cf6..dc2ef4d 100644 --- a/docs/articles/gmkin_manual.html +++ b/docs/articles/gmkin_manual.html @@ -8,8 +8,8 @@ Manual for gmkin • gmkin - - + + -
+
-
+
+

2018-06-06

+ + + + +
-

Introduction

@@ -234,22 +241,22 @@

Fitting the model

In many cases the starting parameters and the fit options do not need to be modified and the model fitting process can simply be started by pressing the “Run fit” button. In the R console, the progressive reduction in the model cost can be monitored and will be displayed in the following way:

-
Model cost at call  1 :  15156.12 
-Model cost at call  3 :  15156.12 
-Model cost at call  7 :  14220.79 
-Model cost at call  8 :  14220.79 
-Model cost at call  11 :  14220.79 
-Model cost at call  12 :  3349.268 
-Model cost at call  15 :  3349.268 
-Model cost at call  17 :  788.6367 
-Model cost at call  18 :  788.6366 
-Model cost at call  22 :  374.0575 
-Model cost at call  23 :  374.0575 
-Model cost at call  27 :  371.2135 
-Model cost at call  28 :  371.2135 
-Model cost at call  32 :  371.2134 
-Model cost at call  36 :  371.2134 
-Model cost at call  37 :  371.2134 
+
Model cost at call  1 :  15156.12 
+Model cost at call  3 :  15156.12 
+Model cost at call  7 :  14220.79 
+Model cost at call  8 :  14220.79 
+Model cost at call  11 :  14220.79 
+Model cost at call  12 :  3349.268 
+Model cost at call  15 :  3349.268 
+Model cost at call  17 :  788.6367 
+Model cost at call  18 :  788.6366 
+Model cost at call  22 :  374.0575 
+Model cost at call  23 :  374.0575 
+Model cost at call  27 :  371.2135 
+Model cost at call  28 :  371.2135 
+Model cost at call  32 :  371.2134 
+Model cost at call  36 :  371.2134 
+Model cost at call  37 :  371.2134 
 Optimisation by method Port successfully terminated.

If plotting of the fitting progress was selected, a new separate graphics window should either pop up, or a graphics window previously started for this purpose will be reused.

If your screen size allows for it, you can arrange the R plotting window and the R console in a way that you can see everything at the same time:

@@ -363,7 +370,6 @@ Optimisation by method Port successfully terminated.
-
@@ -399,5 +405,7 @@ Optimisation by method Port successfully terminated.
+ + diff --git a/docs/articles/index.html b/docs/articles/index.html index bfd24e2..c7c7845 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -21,13 +21,19 @@ + + + - - - + + + + + + @@ -40,7 +46,7 @@ -
+
@@ -90,12 +101,12 @@ - -
-
+
+ +

All vignettes

@@ -119,5 +130,8 @@
+ + + diff --git a/docs/authors.html b/docs/authors.html index fa7d1eb..3e0114c 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -21,13 +21,19 @@ + + + - - - + + + + + + @@ -50,8 +56,12 @@ - gmkin + + gmkin + 0.6.8 +
+
@@ -90,8 +101,8 @@ -
-
+
+
@@ -128,5 +139,8 @@
+ + + diff --git a/docs/docsearch.css b/docs/docsearch.css new file mode 100644 index 0000000..e5f1fe1 --- /dev/null +++ b/docs/docsearch.css @@ -0,0 +1,148 @@ +/* Docsearch -------------------------------------------------------------- */ +/* + Source: https://github.com/algolia/docsearch/ + License: MIT +*/ + +.algolia-autocomplete { + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.algolia-autocomplete .ds-dropdown-menu { + width: 100%; + min-width: none; + max-width: none; + padding: .75rem 0; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175); +} + +@media (min-width:768px) { + .algolia-autocomplete .ds-dropdown-menu { + width: 175% + } +} + +.algolia-autocomplete .ds-dropdown-menu::before { + display: none +} + +.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-] { + padding: 0; + background-color: rgb(255,255,255); + border: 0; + max-height: 80vh; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { + margin-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion { + padding: 0; + overflow: visible +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header { + padding: .125rem 1rem; + margin-top: 0; + font-size: 1.3em; + font-weight: 500; + color: #00008B; + border-bottom: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { + float: none; + padding-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + float: none; + width: auto; + padding: 0; + text-align: left +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content { + float: none; + width: auto; + padding: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content::before { + display: none +} + +.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header { + padding-top: .75rem; + margin-top: .75rem; + border-top: 1px solid rgba(0, 0, 0, .1) +} + +.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column { + display: block; + padding: .1rem 1rem; + margin-bottom: 0.1; + font-size: 1.0em; + font-weight: 400 + /* display: none */ +} + +.algolia-autocomplete .algolia-docsearch-suggestion--title { + display: block; + padding: .25rem 1rem; + margin-bottom: 0; + font-size: 0.9em; + font-weight: 400 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text { + padding: 0 1rem .5rem; + margin-top: -.25rem; + font-size: 0.8em; + font-weight: 400; + line-height: 1.25 +} + +.algolia-autocomplete .algolia-docsearch-footer { + width: 110px; + height: 20px; + z-index: 3; + margin-top: 10.66667px; + float: right; + font-size: 0; + line-height: 0; +} + +.algolia-autocomplete .algolia-docsearch-footer--logo { + background-image: url("data:image/svg+xml;utf8,"); + background-repeat: no-repeat; + background-position: 50%; + background-size: 100%; + overflow: hidden; + text-indent: -9000px; + width: 100%; + height: 100%; + display: block; + transform: translate(-8px); +} + +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + color: #FF8C00; + background: rgba(232, 189, 54, 0.1) +} + + +.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + box-shadow: inset 0 -2px 0 0 rgba(105, 105, 105, .5) +} + +.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content { + background-color: rgba(192, 192, 192, .15) +} diff --git a/docs/docsearch.js b/docs/docsearch.js new file mode 100644 index 0000000..b35504c --- /dev/null +++ b/docs/docsearch.js @@ -0,0 +1,85 @@ +$(function() { + + // register a handler to move the focus to the search bar + // upon pressing shift + "/" (i.e. "?") + $(document).on('keydown', function(e) { + if (e.shiftKey && e.keyCode == 191) { + e.preventDefault(); + $("#search-input").focus(); + } + }); + + $(document).ready(function() { + // do keyword highlighting + /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ + var mark = function() { + + var referrer = document.URL ; + var paramKey = "q" ; + + if (referrer.indexOf("?") !== -1) { + var qs = referrer.substr(referrer.indexOf('?') + 1); + var qs_noanchor = qs.split('#')[0]; + var qsa = qs_noanchor.split('&'); + var keyword = ""; + + for (var i = 0; i < qsa.length; i++) { + var currentParam = qsa[i].split('='); + + if (currentParam.length !== 2) { + continue; + } + + if (currentParam[0] == paramKey) { + keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); + } + } + + if (keyword !== "") { + $(".contents").unmark({ + done: function() { + $(".contents").mark(keyword); + } + }); + } + } + }; + + mark(); + }); +}); + +/* Search term highlighting ------------------------------*/ + +function matchedWords(hit) { + var words = []; + + var hierarchy = hit._highlightResult.hierarchy; + // loop to fetch from lvl0, lvl1, etc. + for (var idx in hierarchy) { + words = words.concat(hierarchy[idx].matchedWords); + } + + var content = hit._highlightResult.content; + if (content) { + words = words.concat(content.matchedWords); + } + + // return unique words + var words_uniq = [...new Set(words)]; + return words_uniq; +} + +function updateHitURL(hit) { + + var words = matchedWords(hit); + var url = ""; + + if (hit.anchor) { + url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; + } else { + url = hit.url + '?q=' + escape(words.join(" ")); + } + + return url; +} diff --git a/docs/index.html b/docs/index.html index 1f2056b..a654b22 100644 --- a/docs/index.html +++ b/docs/index.html @@ -8,8 +8,8 @@ Graphical User Interface for Fitting Kinetic Models to Chemical Degradation Data • gmkin - - + + @@ -29,8 +29,12 @@ - gmkin + + gmkin + 0.6.8 +
+
@@ -159,19 +163,28 @@ while (TRUE) {
@@ -186,5 +199,7 @@ while (TRUE) { + + diff --git a/docs/news/index.html b/docs/news/index.html index 78f1749..24be3d7 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -6,7 +6,7 @@ -All news • gmkin +Changelog • gmkin @@ -21,13 +21,19 @@ + + + - - - - + + + + + + + @@ -50,8 +56,12 @@ - gmkin + + gmkin + 0.6.8 + + @@ -90,15 +101,13 @@ -
- -
+
+
-
-
+ + + diff --git a/docs/pkgdown.css b/docs/pkgdown.css index 181fe63..6ca2f37 100644 --- a/docs/pkgdown.css +++ b/docs/pkgdown.css @@ -1,13 +1,32 @@ -/* Sticker footer */ +/* Sticky footer */ + +/** + * Basic idea: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ + * Details: https://github.com/philipwalton/solved-by-flexbox/blob/master/assets/css/components/site.css + * + * .Site -> body > .container + * .Site-content -> body > .container .row + * .footer -> footer + * + * Key idea seems to be to ensure that .container and __all its parents__ + * have height set to 100% + * + */ + +html, body { + height: 100%; +} + body > .container { display: flex; - padding-top: 60px; - min-height: calc(100vh); + height: 100%; flex-direction: column; + + padding-top: 60px; } body > .container .row { - flex: 1; + flex: 1 0 auto; } footer { @@ -16,6 +35,7 @@ footer { border-top: 1px solid #e5e5e5; color: #666; display: flex; + flex-shrink: 0; } footer p { margin-bottom: 0; @@ -38,6 +58,12 @@ img { max-width: 100%; } +/* Typographic tweaking ---------------------------------*/ + +.contents h1.page-header { + margin-top: calc(-60px + 1em); +} + /* Section anchors ---------------------------------*/ a.anchor { @@ -68,7 +94,7 @@ a.anchor { .contents h1, .contents h2, .contents h3, .contents h4 { padding-top: 60px; - margin-top: -60px; + margin-top: -40px; } /* Static header placement on mobile devices */ @@ -108,7 +134,6 @@ a.anchor { /* Reference index & topics ----------------------------------------------- */ .ref-index th {font-weight: normal;} -.ref-index h2 {font-size: 20px;} .ref-index td {vertical-align: top;} .ref-index .alias {width: 40%;} @@ -192,3 +217,16 @@ a.sourceLine:hover { .hasCopyButton:hover button.btn-copy-ex { visibility: visible; } + +/* mark.js ----------------------------*/ + +mark { + background-color: rgba(255, 255, 51, 0.5); + border-bottom: 2px solid rgba(255, 153, 51, 0.3); + padding: 1px; +} + +/* vertical spacing after htmlwidgets */ +.html-widget { + margin-bottom: 10px; +} diff --git a/docs/pkgdown.js b/docs/pkgdown.js index 64b20df..de9bd72 100644 --- a/docs/pkgdown.js +++ b/docs/pkgdown.js @@ -1,94 +1,110 @@ -$(function() { - - $("#sidebar") - .stick_in_parent({offset_top: 40}) - .on('sticky_kit:bottom', function(e) { - $(this).parent().css('position', 'static'); - }) - .on('sticky_kit:unbottom', function(e) { - $(this).parent().css('position', 'relative'); +/* http://gregfranko.com/blog/jquery-best-practices/ */ +(function($) { + $(function() { + + $("#sidebar") + .stick_in_parent({offset_top: 40}) + .on('sticky_kit:bottom', function(e) { + $(this).parent().css('position', 'static'); + }) + .on('sticky_kit:unbottom', function(e) { + $(this).parent().css('position', 'relative'); + }); + + $('body').scrollspy({ + target: '#sidebar', + offset: 60 }); - $('body').scrollspy({ - target: '#sidebar', - offset: 60 - }); + $('[data-toggle="tooltip"]').tooltip(); + + var cur_path = paths(location.pathname); + var links = $("#navbar ul li a"); + var max_length = -1; + var pos = -1; + for (var i = 0; i < links.length; i++) { + if (links[i].getAttribute("href") === "#") + continue; + var path = paths(links[i].pathname); + + var length = prefix_length(cur_path, path); + if (length > max_length) { + max_length = length; + pos = i; + } + } - var cur_path = paths(location.pathname); - $("#navbar ul li a").each(function(index, value) { - if (value.text == "Home") - return; - if (value.getAttribute("href") === "#") - return; - - var path = paths(value.pathname); - if (is_prefix(cur_path, path)) { - // Add class to parent
  • , and enclosing
  • if in dropdown - var menu_anchor = $(value); + // Add class to parent
  • , and enclosing
  • if in dropdown + if (pos >= 0) { + var menu_anchor = $(links[pos]); menu_anchor.parent().addClass("active"); menu_anchor.closest("li.dropdown").addClass("active"); } }); -}); -function paths(pathname) { - var pieces = pathname.split("/"); - pieces.shift(); // always starts with / + function paths(pathname) { + var pieces = pathname.split("/"); + pieces.shift(); // always starts with / + + var end = pieces[pieces.length - 1]; + if (end === "index.html" || end === "") + pieces.pop(); + return(pieces); + } - var end = pieces[pieces.length - 1]; - if (end === "index.html" || end === "") - pieces.pop(); - return(pieces); -} + function prefix_length(needle, haystack) { + if (needle.length > haystack.length) + return(0); -function is_prefix(needle, haystack) { - if (needle.length > haystack.lengh) - return(false); + // Special case for length-0 haystack, since for loop won't run + if (haystack.length === 0) { + return(needle.length === 0 ? 1 : 0); + } - for (var i = 0; i < haystack.length; i++) { - if (needle[i] != haystack[i]) - return(false); - } + for (var i = 0; i < haystack.length; i++) { + if (needle[i] != haystack[i]) + return(i); + } - return(true); -} + return(haystack.length); + } -/* Clipboard --------------------------*/ + /* Clipboard --------------------------*/ -function changeTooltipMessage(element, msg) { - var tooltipOriginalTitle=element.getAttribute('data-original-title'); - element.setAttribute('data-original-title', msg); - $(element).tooltip('show'); - element.setAttribute('data-original-title', tooltipOriginalTitle); -} + function changeTooltipMessage(element, msg) { + var tooltipOriginalTitle=element.getAttribute('data-original-title'); + element.setAttribute('data-original-title', msg); + $(element).tooltip('show'); + element.setAttribute('data-original-title', tooltipOriginalTitle); + } -if(Clipboard.isSupported()) { - $(document).ready(function() { - var copyButton = ""; + if(Clipboard.isSupported()) { + $(document).ready(function() { + var copyButton = ""; - $(".examples").addClass("hasCopyButton"); + $(".examples, div.sourceCode").addClass("hasCopyButton"); - // Insert copy buttons: - $(copyButton).prependTo(".hasCopyButton"); + // Insert copy buttons: + $(copyButton).prependTo(".hasCopyButton"); - // Initialize tooltips: - $('.btn-copy-ex').tooltip({container: 'body'}); + // Initialize tooltips: + $('.btn-copy-ex').tooltip({container: 'body'}); - // Initialize clipboard: - var clipboardBtnCopies = new Clipboard('[data-clipboard-copy]', { - text: function(trigger) { - return trigger.parentNode.textContent; - } - }); + // Initialize clipboard: + var clipboardBtnCopies = new Clipboard('[data-clipboard-copy]', { + text: function(trigger) { + return trigger.parentNode.textContent; + } + }); - clipboardBtnCopies.on('success', function(e) { - changeTooltipMessage(e.trigger, 'Copied!'); - e.clearSelection(); - }); + clipboardBtnCopies.on('success', function(e) { + changeTooltipMessage(e.trigger, 'Copied!'); + e.clearSelection(); + }); - clipboardBtnCopies.on('error', function() { - changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); + clipboardBtnCopies.on('error', function() { + changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); + }); }); - }); -} - + } +})(window.jQuery || window.$) diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml new file mode 100644 index 0000000..75e5968 --- /dev/null +++ b/docs/pkgdown.yml @@ -0,0 +1,6 @@ +pandoc: 1.19.2.4 +pkgdown: 1.1.0 +pkgdown_sha: ~ +articles: + gmkin_manual: gmkin_manual.html + diff --git a/docs/reference/FOCUS_2006.html b/docs/reference/FOCUS_2006.html index ca9b5ce..93153ad 100644 --- a/docs/reference/FOCUS_2006.html +++ b/docs/reference/FOCUS_2006.html @@ -21,18 +21,24 @@ + + + - - - + + + + + + @@ -55,8 +61,12 @@ - gmkin + + gmkin + 0.6.8 +
  • +
    @@ -95,17 +106,21 @@ -
    +
    +

    An gmkinws object with data taken from FOCUS (2006), Appendix 3. This is the the workspace that is loaded into gmkin by default.

    +
    FOCUS_2006
    @@ -157,5 +172,8 @@
    + + + diff --git a/docs/reference/FOCUS_2006_Z.html b/docs/reference/FOCUS_2006_Z.html index 4eff2a7..ee01417 100644 --- a/docs/reference/FOCUS_2006_Z.html +++ b/docs/reference/FOCUS_2006_Z.html @@ -21,16 +21,22 @@ + + + - - - + + + + + + @@ -53,8 +59,12 @@ - gmkin + + gmkin + 0.6.8 +
    +
    @@ -93,15 +104,19 @@ -
    +
    +

    Data taken from FOCUS (2006), Appendix 7, p. 350.

    +
    FOCUS_2006_Z
    @@ -152,5 +167,8 @@
    + + + diff --git a/docs/reference/UBA_model_gallery.html b/docs/reference/UBA_model_gallery.html index 4157743..00f84ae 100644 --- a/docs/reference/UBA_model_gallery.html +++ b/docs/reference/UBA_model_gallery.html @@ -21,12 +21,15 @@ + + + - - - + + + + + + @@ -58,8 +64,12 @@ - gmkin + + gmkin + 0.6.8 +
    +
    @@ -98,12 +109,15 @@ -
    +
    +

    The UBA model gallery contains predefined kinetic models for some common use cases, with metabolites named as in the commonly used PELMO degradation @@ -112,6 +126,7 @@ defined by Michael Klein (2010) for DegKinManager, with the exception of the kinetic sorption model.

    +
    data("UBA_model_gallery")
    @@ -158,5 +173,8 @@
    + + + diff --git a/docs/reference/gmkin.html b/docs/reference/gmkin.html index 75548cb..70c2d07 100644 --- a/docs/reference/gmkin.html +++ b/docs/reference/gmkin.html @@ -21,18 +21,24 @@ + + + - - - + + + + + + @@ -55,8 +61,12 @@ - gmkin + + gmkin + 0.6.8 +
    +
    @@ -95,21 +106,25 @@ -
    +
    +

    This function starts a browser based GUI. Please visit the github page of gWidgetsWWW2 for an explanation how this toolkit works.

    +
    gmkin(script_name, show.log = FALSE)
    -

    Arguments

    +

    Arguments

    @@ -176,5 +191,8 @@ + + + diff --git a/docs/reference/gmkinws.html b/docs/reference/gmkinws.html index 2c1f509..e0fee8b 100644 --- a/docs/reference/gmkinws.html +++ b/docs/reference/gmkinws.html @@ -21,16 +21,22 @@ + + + - - - + + + + + + @@ -53,8 +59,12 @@ - gmkin + + gmkin + 0.6.8 + + @@ -93,15 +104,19 @@ -
    +
    +

    Datasets, models and fits are stored in lists.

    +
    gmkinws
    @@ -146,5 +161,8 @@ by the names used in the models contained in field m

    + + + diff --git a/docs/reference/index.html b/docs/reference/index.html index 3fd068b..1b9bd74 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -21,13 +21,19 @@ + + + - - - + + + + + + @@ -50,8 +56,12 @@ - gmkin + + gmkin + 0.6.8 +
    +
    @@ -90,64 +101,60 @@ -
    -
    +
    +
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -

    All functions

    -

    -
    -

    FOCUS_2006_Z

    -

    Example gmkin workspace for Dataset Z from the FOCUS Kinetics report

    -

    FOCUS_2006

    -

    Example gmkin workspace for Datasets C and D from the FOCUS Kinetics report

    -

    gmkin

    -

    Start a graphical user interface (GUI) based on the gWidgetsWWW2 toolkit.

    -

    gmkinws

    -

    A workspace class for gmkin

    -

    data

    -

    A collection of some standard kinetic models

    -
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    All functions

    +

    +
    +

    FOCUS_2006

    +

    Example gmkin workspace for Datasets C and D from the FOCUS Kinetics report

    +

    FOCUS_2006_Z

    +

    Example gmkin workspace for Dataset Z from the FOCUS Kinetics report

    +

    UBA_model_gallery

    +

    A collection of some standard kinetic models

    +

    gmkin()

    +

    Start a graphical user interface (GUI) based on the gWidgetsWWW2 toolkit.

    +

    gmkinws

    +

    A workspace class for gmkin

    + + + -- cgit v1.2.1