nlmixr2 is here

By the nlmixr2 Development Team in nlmixr2

June 8, 2022

Over the past half year, a lot of changes have been happening behind the scenes, and the time has finally come to reveal them!

nlmixr2

nlmixr2 will be the version in active development going forward, taking over from nlmixr, starting with the current CRAN version, 2.0.6. Our new home on GitHub is here, and on CRAN, we’re here.

The reasons for the name and format change are many, but most importantly, we’ve taken this step to improve overall user experience and to help us maintain the project more effectively.

These are the things that have changed that you might notice…

  • nlmixr2 is now easier to install without the requirement of Python (okay, that’s been true for a while, but we’re still excited about it). install.packages("nlmixr2") is all that you need to do on most systems.
  • Simulations are now easier with nlmixr2 - you can directly use nlmixr2 model objects for simulation without needing to rewrite using rxode2 syntax (although you can still do this if you want).
  • Automatic mu-referencing is done for SAEM models going forward. We mu-reference for you!
  • The big one: nlmixr has been split into several modular packages. nlmixr2 is an umbrella package, wrapping up lower level packages rxode2, nlmixr2est, nlmixr2extra, nlmixr2data, nlmixr2plot, lotri and PreciseSums.
    • rxode2 is an R package for solving and simulating from ODE-based models. Models are converted to C to maximise speed and efficiency. rxode2 is the beating heart of nlmixr2.
    • nlmixr2est provides the core estimation routines for nlmixr2.
    • nlmixr2extra provides the tools to help with common pharmacometric tasks like bootstrapping and covariate selection, amongst others.
    • nlmixr2plot provides basic plotting support for nlmixr2 models. You’d be better off using xpose.nlmixr, quite frankly, but it’s here for legacy purposes.
    • nlmixr2data rolls up all the nlmixr2 example datasets in once convenient place.
    • lotri was developed to easily specify block-diagonal matrices with (lo)wer (tri)angular matrices. Think of it as having won the (badly spelled) lotri (or lottery). It’s just that cool.
    • PreciseSums brings a few algorithms for precise sums and products to R. They are ported from Python and NumPy for the most part.

Dig in

We have a lot of HOWTOs, example models, and other bits and pieces for getting started up at our core site, https://www.nlmixr2.org. Go take a look.

We have some papers out as well - our tutorial from 2019 (1) is getting a bit long in the tooth, but the core details are relevant. Rik published a comparison between the SAEM and FOCE algorithms around the same time (2), and Matt had a paper on how nlmixr might be a useful tool for bridging statistics and pharmacometrics (3). They’re all worth your time.

The Development Team

Our development team, led by Matt Fidler, is spread across the world, with contributors based in the United States (Matt, Bill Denney, John Harrold, Mirjam Trame, Yuan Xiong and Huijuan Xu), The Netherlands (Richard Hooijmaijers and Rik Schoemaker), Germany (Justin Wilkins) and Switzerland (Theodoros Papathanasiou).

References

1.
Fidler M, Wilkins JJ, Hooijmaijers R, Post TM, Schoemaker R, Trame MN, et al. Nonlinear Mixed-Effects Model Development and Simulation Using nlmixr and Related R Open-Source Packages. CPT: Pharmacometrics and Systems Pharmacology. 2019 Sep;8(9):621–33.
2.
Schoemaker R, Fidler M, Laveille C, Wilkins JJ, Hooijmaijers R, Post TM, et al. Performance of the SAEM and FOCEI Algorithms in the Open-Source, Nonlinear Mixed Effect Modeling Tool nlmixr. CPT: Pharmacometrics and Systems Pharmacology. 2019;8(12):923–30.
3.
Fidler M, Hooijmaijers R, Schoemaker R, Wilkins JJ, Xiong Y, Wang W. R and nlmixr as a gateway between statistics and pharmacometrics. CPT: Pharmacometrics and Systems Pharmacology. 2021 Apr;10(4):283–5.
Posted on:
June 8, 2022
Length:
3 minute read, 593 words
Categories:
nlmixr2
Tags:
new-version
See Also:
nlmixr2 2.1.2/ rxode2 2.1.3
nlmixr2 2.1.0/ rxode2 2.1.1
nonmem2rx and babelmixr2