Releases: metrumresearchgroup/mrgsolve
mrgsolve 1.5.2
-
Add
$EVENT
block for writing code related to dosing or other events that
are implemented through model code rather than the data set (#1230). -
Add
evt::reset()
andevt::reset(self)
functions under theevtools
plugin; these reset the compartments in a model; overloaded functions are
also provided to reset and dose with bolus or infusion (#1222). -
Completed dosing functionality in
evtools
plugin; useevt::addl()
to
schedule additional doses through anevt::ev
object; useevt::ii()
to
set the dosing interval; useevt::ss()
to advance the pharmacokinetic
system to steady state just prior to dosing;evt::cmt()
sets the compartment
number;evt::amt()
sets the dose amount;evt::rate()
sets the infusion
rate; see the user guide for the specific signatures that are available
(#1227). -
Add
evtools
model tomodlib()
, illustrating how to implement dosing
regimens from inside the model a few different ways (#1230). -
Added more comprehensive checking for duplicate blocks in a model file;
duplicate blocks are always handled when allowed; an error message is always
issued when duplicates are not allowed (#1238). -
Code to audit
$ODE
(or$DES
) code, looking for an equation for every
model compartment was refactored to use a common approach for both traditional
models and models written with thenm-vars
plugin; regardless of approach,
the user will be warned if mrgsolve does not detect code relevant to every
model compartment; the audit system can be bypassed by including the
@!audit
block option to$ODE
(#1235). -
The
autodec
plugin was lightly refactored to avoid false positive detection
of variables declared asdouble
; plans are in place to narrow the
scope of what is detected for declaration in future releases (#1234). -
R help files (
.Rd
) reviewed and revised for consistency and formatting
(#1246).
mrgsolve 1.5.1
- Fixed
yaml_to_cpp()
example code to prevent saving the file to the working
directory (#1220).
mrgsolve 1.5.0
-
New functions
mwrite_yaml()
andmwrite_cpp()
can write a model object back
to a file, accounting for all updates since the model was read from native
mrgsolve format usingmread()
(#1213). -
New function
mread_yaml()
for reading back models written out with
mwrite_yaml()
(#1213). -
New functions in
evtools
plugin:evt::replace()
works likeevt::bolus()
,
but will replace the amount in a given compartment rather than add to it
(#1203). -
The
nm-vars
plugin now exposesDEXP()
,LOG10()
,COS()
andSIN()
for use in the mrgsolve C++ code blocks (#1199). -
An error is now generated when
KA
is equal toCL/VC
while simulating from
the one-compartment model with analytical solution invoked through
$PKMODEL
(#1179, #1197).
Bugs Fixed
mrgsolve 1.4.2
- An error will now be issued at simulation time when simulation data sets
(data and idata) contain non-numeric data in columns sharing names with
parameters; non-numeric data in columns with certain reserved names
(likeAMT
,RATE
,II
,ADDL
, etc.) will also result in an error
(#1193).
mrgsolve 1.4.1
- Fix bug in
evt::regimen.ii(double)
where timing of next dose
was not as expected (#1170).
mrgsolve 1.4.0
mrgsolve 1.4.0
-
evtools
is a new plugin providing API for dynamic dosing from within the
model; functions and classes are in theevt
namespace (#1149). -
regimen
is a new class located in theevt
namespace via theevtools
plugin;regimen
objects can execute doses in a regular regimen (#1156). -
mread()
andmcode()
no longer print a message before the required
waiting period on model recompile (#1145). -
ev_rep()
output rownames are cleaned up before returning (#1158). -
C++ model code blocks (GLOBAL, PREAMBLE, MAIN/PK, ODE/DES, TABLE/ERROR) are
now checked for<object>.<attribute>
syntax; if found, symbols on both sides
of the dot become reserved words when loading and compiling that model;
specifically, an error will be generated if either side of the dot (<object>
or<attribute>
) is found in parameter names, compartment names, ETA labels,
or EPS labels (#1159). -
ETA values are always simulated from OMEGA, even when the user requests they
get scraped fromdata
oridata
viaetasrc
argument tomrgsim()
; this
ensuresEPS
are reproducible for model runs whereetasrc = "omega"
(default, ETA are simulated) or, for example, whereetaasrc = "data.all"
(scrape ETA from the data set) (#1163).
Bugs Fixed
mrgsolve 1.3.0
-
The
evdata
object for modeled events now contains acheck_unique
member;
when set tofalse
, the event will be processed without checking for a
matching record in the modeled event log (#1119). -
The
amt
attribute inevdata
modeled event objects is now considered
when looking for duplicate records in the modeled event log (#1119).
Bugs Fixed
-
Fixed a bug where multiple lagged doses given at the same time but with
different bioavailability were all given the bioavailability of the
last dosing record (#1129, #1130). -
Fixed a bug where modeled infusions given
now
were never turned
off (#1131). -
Fixed a bug where the
self
object (type:databox
) could not be
passed into functions written into header files that were included
through$INCLUDE
; these header files are now included immediately
preceding any user code written into$GLOBAL
(#1125, #1126). -
Fixed a bug where modeled event log was not getting reset after
simulating the first individual; this resulted in events not getting
executed in subsequent individuals when matching events were executed
in the first individual; this affects modeled events only, not events
coming from the data set (#1117, #1118). -
Fixed a bug in detecting which compartments are receiving doses
(#1112, #1113).
mrgsolve 1.2.0
- Data set records at the same time within individual will receive different
EPS
draws; this is a change from previous behavior where records with the
same time received the same value forEPS
(#1110).
mrgsolve 1.1.1
mrgsolve 1.1.0
-
Add new functionality for assessing consistency between names on input data
set and parameter names (#1078).- New function
check_data_names()
executes the check. - New model specification block
$INPUT
for marking parameters as "inputs"
and expecting them to be present in the data whencheck_data_names()
is
called. - New
$PARAM
block attributes@input
and@tag
for adding tags to
parameters which will be checked whencheck_data_names()
is called. - New function
param_tags()
to list parameters and tags for a given model.
- New function
-
Now checking
TIME
andtime
when assessing upper / lower case name
consistency of input data sets (#1099). -
ETAs can now be passed via
idata
by passingeta_src
as eitheridata
oridata.all
tomrgsim()
(#1092). -
Internal refactor of mechanics checking for user interrupt during simulation
(#1088). -
Minor re-factor of
mrgsim_nid()
and documentation update to be in line
with original intent; no meaningful change in functionality (#1086). -
parameter_list
objects can now be passed toparam()
(#1076). -
ev_rx()
syntax gains&
operator allowing specification of multiple events
at a single time (#1072). -
Kyle Meyer added as contributor (#1095).
-
modlib()
model1005
re-coded to reflect the "traditional" model
specification syntax (#1069). -
The model object
update()
method will again issue a warning when
unrecognized arguments are passed (#1068).
Bugs Fixed
- Fixed bug where ETA in the first column of
data
was not recognized when
usingeta_src = "data"
oreta_src = "data.all"
(#1095).