rxode2

babelmixr2 and PopED

New babelmixr2 integrates PopED. I am excited to announce today a new version of babelmixr2 has been released that streamlines creating fast, efficient PopED databases for optimal design. With the babelmixr2 package you can: Import your NONMEM model to rxode2/nlmixr2 format using nonmem2rx Import your Monolix model to rxode2/nlmixr2 using monolix2rx Use your existing nlmixr2 model or create your own rxode2/nlmixr2 model With it in the nlmixr2 format, you can then quickly do optimal design

monolix2rx

monolix2rx has been released on CRAN. I am excited to announce that as part of the nlmixr2 3.0 series of releases, you now have a way to import a Monolix model into rxode2/nlmixr2. This is similar to how you can import the output of nonmem into a rxode2 model with nonmem2rx. I am also in the process of releasing a bug-fix revision now. Key notes in importing models to rxode2 and nlmixr2 There are a few things to note in any conversion from monolix to rxode2 and nlmixr2:

nlmixr2 3.0

nlmixr2 3.0 is here nlmixr2 3.0 has been released and most of the related packages in the nlmixr2 ecosystem have been updated as well. Since there were a few non-backward compatible changes and breaking changes, the version has been bumped from 2 to 3. Most code will run the same, but because of the breaking change, we changed the major version. The big changes are: Non abi binary linkages between every package.

rxode2 calculating derived PK model parameters

One of the things that can be useful from time to time is to calculate different PK parameters based on whatever parameters you have estimated. There is a great function, calc_derived() in pmxTools that allows this calculation of the derived parameters (by my collaborators Justin Wilkins and Bill Denney). I think this is an underrated function that can help many people with typical calculations. rxode2 has the same type of function, which can be helpful to test the linCmt() functions, rxDerived().

nlmixr2/rxode2 mu referencing 2.0

This month, I will talk about about a new iteration of mu-referencing in nlmixr2, which I call mu2. What is mu referencing in nlmixr2 mu-referencing is combining a fixed effect, random effect and possibly a covariate in the form: [ \theta_\mathsf{pop}+\eta_\mathsf{individual}+\theta_\mathsf{covariate}\times \mathsf{DataCovariate} ] Often they are placed in exponentials for these to be log-normally distributed like: [ \exp\left(\theta_\mathsf{pop}+\eta_\mathsf{individual}+\theta_\mathsf{covariate}\times \mathsf{DataCovariate}\right) ] In optimization routines like saem, these are switched out with a single parameter during optimization classically called (\phi) in both NONMEM and Monolix.

nlmixr2 2.1.2/ rxode2 2.1.3

Both nlmixr2 and rxode2 have been updated, the below describes all the nlmixr2 related packages (maintained by the nlmixr2 team). Most of items in this release are bug fixes. One of the changes will make random number generation platform independent. Unfortunately, this means simulations from within rxode2/nlmixr2 will have different numbers drawn from random distributions but I think platform independence is important enough to push this change through. Versions of new packages nlmixr2 2.

nlmixr2/rxode2 user functions

One of the exciting new features of the recent rxode2 is user functions. This allows you to define your own R functions for use in nlmixr2 or rxode2. This new feature can really help make your code more concise by reusing custom transformations or apply more complex routines. This can call R functions directly, but at a cost – single threaded and slower execution. However, you can reduce the cost by converting the R functions to C automatically with rxFun().

nlmixr2/rxode2 steady state changes

One of the things that I changed in the last release was steady state. Once I created the nonmem2rx package, I searched for NONMEM control streams that we could test the import from, especially those with attached data. I ran across nmtests that uses NONMEM to test against mrgsolve and how it behaves. During that test I noticed that rxode2 did not follow the convention of NONMEM in lagged steady state doses.

nlmixr2 2.1.0/ rxode2 2.1.1

nlmixr2 2.1.0 was released 9 Jan 2024 which requires the newest (and recently released) engine packages nlmixr2est 2.2.0 (released 12 Dec 2023) and rxode2 2.0.10 (released 13 Dec 2023). I will be blogging about a few new features but want to mention a few now: More flexible mu referencing User defined functions can now be used with nlmixr2 and rxode2 Event handling changes Many new estimation methods for population only fitting The truncated changelog for these packages are below:

rxode2 2.0.9/2.0.10

rxode2 2.0.9 has been released, and rxode2 2.0.10 will be released soon! I want to personally thank all those who have submitted issues, and helped with the development. Without the support rxode2 wouldn’t be the tool it is today. This is the first CRAN-visible release since rxode2 2.0.7 and I would like to highlight a few new interesting features: ‘rxode2’ can now have more flexible model functions The key features are:

mrgsolve vs rxode2

mrgsolve vs rxode2 One of the most common questions I get is, “What are the differences between mrgsolve (1) and rxode2?”. The most common reasons for this question are: I really don’t know what tool to use, what are the advantages of each? I really like one of the tools (either mrgsolve or rxode2) and I want to let my colleagues know how nice my favorite tool is. I am not really the best person to answer this question since I am most familiar with rxode2 and can’t answer all the questions about mrgsolve.

RxODE and rxode2

RxODE vs rxode2 Since rxode2 came out recently, I am getting many questions about what is the difference between rxode2 and RxODE. I think the biggest reason for the question is – is this update going to break all the nice things I already do with RxODE? Or maybe why should I bother to change? I feel the same way when I have big changes in things I use. For me, I love the ability to pipe and change data with the tidyverse, and similar tools, but hate when they change things that affect my code.