Release notes for sbmlsim 0.14.1
A patch release for petab 0.10.0 and the security updates of the dependencies. sbmlsim 0.14.0 imported SbmlModel from petab.models, which petab 0.10.0 removed, so the PEtab export failed to import in a fresh install. A species in a compartment of an assignment rule starts at its initial concentration when the pre-initialization changes the compartment, e.g. through the body weight. The results are compressed with zstd, a run holds its result once and the first run of a process no longer imports the uncertainty.
Results which change: the simulations of a model with a species in a compartment of an assignment rule whose rule reads a changed value, e.g. a whole body model with another body weight.
Fixes
- A species starts at its initial concentration in a changed compartment of a rule (#344, #417). The initialization sets the concentration of a species in a compartment of an assignment rule again after the entities the rule reads, in the order of the initial assignments: its initial assignment, its initial concentration or the concentration set before the initialization. roadrunner evaluated the rule with the new values and kept the amounts, so a changed body weight scaled the concentrations by the old over the new volume, also of a species of an initial concentration and of one set as
[S]before the body weight. - The PEtab export works with petab 0.10.0 (#408).
sbmlsim.fit.petab_v2.exportimportsSbmlModelfrompetab.v2.models, which petab 0.9.0 has as well, instead ofpetab.models, which petab 0.10.0 removed. With sbmlsim 0.14.0 and petab 0.10.0,import sbmlsim.fit.petab_v2.exportraisedModuleNotFoundError: No module named 'petab.models', and so did everything which exports a fit as a PEtab problem. - A run writes every chunk into its result when it arrives (#411, #415).
Simulator.runkept every chunk until the last one arrived and copied them into the result then, so the parent held the result twice. A chunk is written into the arrays of the result and released, on a grid when it arrives and for a ragged result one after the other at the end. The peak memory of the parent over a scan of the HCTZ model (191 selections, 4000 points, 1.2 GB) is 1.76x instead of 2.02x of the result serially and 1.14x instead of 2.02x on 4 workers. - A run without uncertain values does not import the uncertainty (#413, #414). The record of a scan checked every value for an uncertain one, which imported
sbmlsim.uncertaintyand with it the fit, matplotlib and scipy.stats: about a second on the firstSimulator.runof a process. - The netCDF files of the results are compressed with zstd (#412, #416).
ScanResult.to_netcdfandSensitivityResult.to_netcdfcompress the numeric variables with zstd (level 1, the HDF5 filter of the new dependencyhdf5plugin) and the shuffle filter, in chunks of whole timecourses of about 1 MiB.compression="gzip"writes the filter every HDF5 reader has,Nonenone. A result of the HCTZ model with 191 selections over 5000 points shrinks from 1551 MB to 136 MB.
Dependencies
- pillow 13.0.0 or newer is required. pillow is not imported by sbmlsim, matplotlib writes its images with it; 13.0.0 fixes the advisories of 12.3.0, among them the critical GHSA-5x8w-8jj5-q52h, GHSA-332p-7hrc-92wf, GHSA-8g5g-8vmr-9782, GHSA-v9pv-5gc8-w2m6 and GHSA-w889-685w-c8fh.
uv.lockhas the security releases of the development tools: virtualenv 21.15.2 (fixed in 21.14.7 and 21.14.9: GHSA-vxj4-q4g9-crj7, GHSA-394h-qwmc-48pf, GHSA-6w3r-xr62-4xcp, GHSA-c978-59m8-c77v and eight more) and filelock 4.2.6 (fixed in 4.2.1). It also has pkpdutils 1.4.0, sbmlutils 0.17.1, pymetadata 0.8.3 and petab 0.10.0.pip-auditfinds no known vulnerability in the lock.- The
devextra excludes tox 4.67.5, which rejects its own.tox/.tmp/packageunder the umask 002 (tox-dev/tox#4357). - The dependency group of dependabot (#404, #405, #406, #407, #408).