pypi sbmlsim 0.14.1

4 hours ago

Release notes for sbmlsim 0.14.1

sbmlsim

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.export imports SbmlModel from petab.v2.models, which petab 0.9.0 has as well, instead of petab.models, which petab 0.10.0 removed. With sbmlsim 0.14.0 and petab 0.10.0, import sbmlsim.fit.petab_v2.export raised ModuleNotFoundError: 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.run kept 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.uncertainty and with it the fit, matplotlib and scipy.stats: about a second on the first Simulator.run of a process.
  • The netCDF files of the results are compressed with zstd (#412, #416). ScanResult.to_netcdf and SensitivityResult.to_netcdf compress the numeric variables with zstd (level 1, the HDF5 filter of the new dependency hdf5plugin) and the shuffle filter, in chunks of whole timecourses of about 1 MiB. compression="gzip" writes the filter every HDF5 reader has, None none. A result of the HCTZ model with 191 selections over 5000 points shrinks from 1551 MB to 136 MB.

Dependencies

Don't miss a new sbmlsim release

NewReleases is sending notifications on new releases.