This is a brief comparison of pharmacometric ODE solving R packages to
rxode2
.
There are several R packages for differential equations. The most popular is deSolve.
However for pharmacometrics-specific ODE solving, there are only 2 packages other than rxode2 released on CRAN. Each uses compiled code to have faster ODE solving.
mrgsolve, which uses C++ lsoda solver to solve ODE systems. The user is required to write hybrid R/C++ code to create a mrgsolve model which is translated to C++ for solving.
In contrast, rxode2
has a R-like mini-language that is parsed into
C code that solves the ODE system.
Unlike rxode2
, mrgsolve
does not currently support symbolic
manipulation of ODE systems, like automatic Jacobian calculation or
forward sensitivity calculation (rxode2
currently supports this and
this is the basis of
nlmixr2's FOCEi
algorithm)
dMod, which uses a unique syntax to create "reactions". These reactions create the underlying ODEs and then created c code for a compiled deSolve model.
In contrast rxode2
defines ODE systems at a lower level. rxode2
's
parsing of the mini-language comes from C, whereas dMod
's parsing
comes from R.
Like rxode2
, dMod
supports symbolic manipulation of ODE systems
and calculates forward sensitivities and adjoint sensitivities of
systems.
Unlike rxode2
, dMod
is not thread-safe since deSolve
is not yet
thread-safe.
PKPDsim which defines models in an R-like syntax and converts the system to compiled code.
Like mrgsolve
, PKPDsim
does not currently support symbolic
manipulation of ODE systems.
PKPDsim
is not thread-safe.
The open pharmacometrics open source community is fairly friendly, and the rxode2 maintainers has had positive interactions with all of the ODE-solving pharmacometric projects listed.
rxode2
supports 1-3 compartment models with gradients (using stan
math's auto-differentiation). This currently uses the same equations as
PKADVAN
to allow time-varying covariates.
rxode2
can mix ODEs and solved systems.
PKPDsim uses 1-3 "ADVAN" solutions using non-superpositioning.
PKPDmodels has a one-compartment model with gradients.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.