Releases: sys-bio/roadrunner
v2.7.0: Merge pull request #1217 from sys-bio/develop
Bugfix release: Save/load state now works across roadrunner instances on mac and linux.
binary files for macOS 12 x86_64 are added as macOS 11 is no longer supported on GitHub Actions
v2.6.0
Updates:
- The seed for both the gillespie integrator and for 'distrib' constructs is now synchronized and settable from r.setSeed(val) and from the global configuration options (Config.setValue(Config.RANDOM_SEED, val)
- The SBML L3v2 'rateOf' function is now implemented.
- That seed value may be extremely large (larger than the previous erroneous 'int' cutoff; limit is now uint64).
- The 'times' input vector for simulation runs has been upgraded:
- It may now contain numpy ints.
- It may contain repeated values (after the initial value) (useful when comparing output to collected data with replicates)
- Piecewise functions are now much more robustly handled, with explicit root-finding for the moments when the function switches from one output to another.
- The python 'setValues' command may now take a dictionary as input, instead of separate 'keys' and 'values' arguments.
Bugfixes:
- The gillespie integrator is now initialized with a time-based random seed (in microseconds) instead of the same one every run.
- Gillespie simulations no longer run on models with rate rules, instead of silently ignoring them.
- Gillespie simulations warn for runs with 'time' in event triggers or with event delays.
v2.5.0
Various updates and bugfixes, including:
- Removed ncurses dependency
- Refuse to read models with elements roadrunner cannot interpret (algebraic rules, unknown packages)
- Reset the conservedMoietyAnalysis flag to its previous state after running a steady state analysis.
- Improve named stoichiometry interpretation and setting, and allow setting of arbitrary stoichiometries.
- Fix handling of some reactions in the gillespie integrator (#1135)
- Allow setting init(x) when x has an initial assignment. (#1137)
- getCurrentSBML no longer exports incorrect initial assignments. (#1138)
- getValue('time') now returns the actual current time (#1142)
- The steady state selection vector now doesn't change once set (#1148)
- New 'fluxThreshold' setting for when to zero out flux control coefficients (#1150)
v2.4.0
BEHAVIOR CHANGE: This version of roadrunner now treats the 'absolute tolerance' setting for CVODE simulation differently! We now treat the absolute tolerance the same way that COPASI does.
- If set to a scalar value (the default), that value is now transformed into a vector internally by multiplying the scalar by every value in the state vector. This allows automatic scaling between concentrations and amounts: a small compartment will no longer require an equally-small absolute tolerance value to be set.
- However, if the value in the state vector is zero, the corresponding value in the absolute tolerance vector is either used as-is, or, if the value is from a species in a non-zero compartment, multiplied by that compartment volume.
The documentation was updated to reflect this, and a few other inaccuracies in the documentation were also fixed.
v2.3.2
Bug fix and potential bugfix release:
- Level 2 events no longer can fire at t0.
- It's possible that we've future-proofed roadrunner against numpy updates.
v2.3.1
Updates mostly for new platforms and dependencies:
- Release for Python 3.11 on all platforms.
- Release for Numpy 1.24.1 on all platforms.
Releases for the Mac ARM/M1 chip require MacOS 13 (Ventura).
v2.2.4
Minor updates with bugfixes:
- Now works with latest version of jinja2
- SED-ML models that reference other models now work.
- Update requirements.
v2.2.2
Maintenance update. Includes:
- Releases for Python 3.10
- Documentation updated
- Fix C API function getStoichiometryMatrix
- Fix C API functions dealing with rates of change.
- Fix calculating elasticities when time explicitly included in reaction rate. (#1020)
- New functions for getting the dependent and independent floating species. Also, make this independent of analysis type.
- Update to use latest libsbml, and switch to using libexpat instead of libxml2.
- When scaling control coefficients, set to zero when scaled reaction rate is itself zero. (#1031)
v2.2.1
This release includes a variety of updates and bugfixes, including:
- Official Python 3.10 releases
- Create universal binaries on MacOS so M1 chip computers are handled.
- Various fixes to get more of the SBML Test Suite to pass.
- Bug fix to handle situation where a species concentration and its compartment's size both change at the same time.
- Handle setting/getting of UCC values better.
- Fix bug in rr-libstruct
- Fix python bug when writing simulation results to file
- Fix MCJit bug when copying model
- Synchronized getting rate values and rate labels.
- Reduce default diffStepSize, and add C interface to allow setting it.
v2.2.0
Version 2.2.0 of libroadrunner has a variety of updates, including:
- Now uses LLVM13, providing faster compilation and execution of models.
- In addition to the old MCJit system, we provide support for an entirely new Jit system called LLJit which uses llvm-13's Orc Jit v2 api. LLJit has user configurable optimization flags "none", "less", 'default" and "aggressive". Aggressive optimization provides faster Jit compiled sbml models, but takes longer to compile whereas bypassing optimizations with "none" compiles faster but simulates slower.
- The LLJit system in our hands has proved faster than the previous MC-JIT. MC-JIT is still the default, but switching to ORC-JIT can be enabled in the options; in future releases, ORC-JIT will likely become the new default, once we're sure that no unexpected problems emerge. When this happens, we will deprecate the MCJit and eventually remove it. Meanwhile, we have constructed the switchable jit compiler feature using dependency injection which makes for easier additions of new jit engines in future, such as lazy compilation.
- Various speedups have been incorporated to increase the speed of model loading, including streamlined parsing of the SBML, and using a new version of libSBML for model access for some functions.
- It is now possible to parallelize roadrunner without data races since critical sections are locked with std::mutex.
- A hashmap-like container called
RoadRunnerMap
has been built for handling parallel model loading, which is the most computationally intensive part of roadrunner. Parallelism is abstracted away from the user and is presented with a dict-like interface in python #925 . - Roadrunner objects in Python are now picklable, enabling users to use roadrunner with python parallel processing libraries like
multiprocessing
. - Support for sbml distrib package
- Support for integrating models at user specified specific time points, rather than needing to simulate at regular intervals.
- The model saving/loading feature is now more robust. The save state version is connected to roadrunner's version, which allows users to load and save state from roadrunner versions with the different micro versions, but not major or minor versions.
- A bug was fixed (#910) where the calculated Jacobian would sometimes be incorrect if the initial compartment volumes were changed.
- A bug was fixed where roadrunner would incorrectly refuse to calculate certain elasticities.
- A bug in the install tree was fixed, whereby missing header files prevented using roadrunner as a C++ library.