MyNixOS website logo
Description

A Code Generator for ODE-Based Models.

Provides an R6 class and several utility methods to facilitate the implementation of models based on ordinary differential equations. The heart of the package is a code generator that creates compiled 'Fortran' (or 'R') code which can be passed to a numerical solver. There is direct support for solvers contained in packages 'deSolve' and 'rootSolve'.

rodeo - Code generator for ODE-models in R

Basic facts

rodeo is an add-on package for the R statistical computing software. It facilitates the implementation of mechanistic models built on ordinary differential equations (ODE).

  • rodeo imposes a well-known standard notation for simultaneous ODE based on the stoichiometry matrix. This notation is widely used in chemical and wastewater engineering or biogeoscience.

  • rodeo separates the conceptual model (the set of ODE) from its implementation (computer program) by means of automatic code generation. This makes models more easy (1) to understand by non-programmers, (2) to run on different platforms/environments, (3) to develop or modify, and (4) to 'archive' in times of rapidly changing software.

  • The generated code (Fortran, R) can be used with existing suites of numerical solvers, namely the R-packages deSolve for dynamic simulation and rootSolve for steady-state estimation. The use of compiled Fortran speeds up numerical integration significantly compared to a purely R-based model implementation (often by a factor between 2 and 100).

  • rodeo has with built-in support for 1-D partial differential equations (PDE) being tackled with the numerical method-of-lines.

Package contents

The package currently provides a single R6 class named just like the package (rodeo). It contains several class- and non-class methods to

  • import a conceptual model from tabular text files (or spreadsheets).
  • generate source code to be passed to an ODE-solver.
  • visualize and export basic information about a model, e.g. for documentation purposes.
  • generate a stoichiometry matrix from a set of reaction equations.
  • validate a stoichiometry matrix (mass balance check).

The package vignette provides further details.

Requirements and installation

A current installation of R is required. In order to work with rodeo in high-performance mode, one needs the tools to compile Fortran 2008 code (compiler, make utilities, etc.). These tools are typically available by default on Linux systems. Users of other systems should have a look at the Rtools.

The development version of the package can be installed directly from the github repository as shown below. For this, the devtools package is required.

# Install and load development version
library("devtools")
install_github("dkneis/rodeo")
library("rodeo")

The release version should be available on CRAN and can be installed as usual (see below). Note that the release version may lag behind the development version in terms of functionality.

# Install and load release version
install.packages("rodeo")
library("rodeo")
Metadata

Version

0.8.2

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows