pypi sbmlsim 0.9.3

4 hours ago

Release notes for sbmlsim 0.9.3

sbmlsim

A patch release of fixes: the result of a simulation no longer depends on the simulation which ran before it on the same model, a change fires the events of a model written by sbmlutils with the right values, and a dataset reads the units with a numeric factor which PK-DB writes and converts the range of a row with its values.

Fixes

  • A simulation does not depend on the one before it (#292, #295). The absolute tolerance of a concentration species is the tolerance of a concentration times the volume of its compartment. 0.9.0 to 0.9.2 read the volumes from roadrunner before every run, and roadrunner answers the initial volume of a compartment with an initial assignment or an assignment rule from the current parameters, i.e. from the pre-initialization of the simulation which ran last, e.g. its body weight. A simulation after one of another body weight therefore integrated with other tolerances (relative differences of up to 7e-6 in a model of pkdb_models), and a serial run differed from a run in a pool, whose workers load the model. The tolerances are now computed from the initial volumes of the model as loaded, so the result of a simulation is the same whatever ran before it, serially and in a pool, bitwise; it is the result of the first run on a model in 0.9.2, and the one of 0.8.5 within a simulator (0.8.5 computed the tolerances again at every set_model, i.e. at the start of every experiment, from the volumes the experiment before left on a cached model). A model with a compartment of the size NaN no longer computes its tolerances again before every run.
  • A change fires the events of a model written by sbmlutils (#293, #295). The simulator fires an event whose trigger a change makes true. The math of the event was read with the units of its numbers (necrosis > 0.5 dimensionless, 0 mmole), which is no formula of the simulator, and sbmlutils writes a unit on every number: the event did not fire, without a message for its trigger (also in 0.8.5). The numbers are now read without their units, which do not change their values. A trigger which is still no formula the simulator evaluates, e.g. one with a function definition, is reported with a warning which names the event, once per event and model instance, i.e. once per worker of a pool; assignments and priorities which are no formulas were reported already. The constants pi, exponentiale and avogadro in the math of an event are their values (avogadro the one of roadrunner, 6.02214179e23), they stopped the simulation with an error of roadrunner before.
  • A dataset reads a unit with a numeric factor (#294, #295). DataSet.from_df refused every unit with a factor (Unit expression cannot have a scaling factor), also the units of publications which PK-DB writes by design, e.g. ml/min/(1.73*m^2), micromol/(0.5*hr), (10*ml)/hr or 10^9/l. Such a unit is now read as a number of the values: the numbers of its rows, values, sd, se, min and max, are multiplied by the factor, and a column whose first unit has a factor gets the unit without it, so 8.6 in micromol/(0.5*hr) is 17.2 in micromole/hour and converts into the units of a model. A unit without a factor is read as before; a factor which is no positive number, or with an offset unit such as degC, is an error.
  • A logarithm to a base in the math of an event (#296, #295). SBML writes the base of a logarithm first, log(2, x), the formulas of the simulator have it last, so an event which a change fired evaluated log(2, 8) as 0.333 instead of 3, without a message (also in 0.8.5). The base is now the second argument of the formula.
  • The range of a row is converted with its values (#294, #295). DataSet.from_df converted the values, sd and se of the rows with another unit of a column (since 0.9.0) but not their range, min and max (or *_min and *_max), which then did not bracket their values. The rows of a unit column are now converted in one pass, all numbers of a row once (cv is relative and stays), so mean, value and median get one unit, the unit of the first row with one of them; a table whose first mean and first value had different units gave the two columns different units before.

Don't miss a new sbmlsim release

NewReleases is sending notifications on new releases.