Skip to content

simrun

The kinds of the run layer as task types of simrun.

simrun runs the tasks of a workflow on a cluster; this module registers the thirteen kinds of python -m sbmlsim.run (sbmlsim.run) as its task types sbmlsim.<kind>, entry points of the group simrun.task_types in the pyproject.toml of sbmlsim, see the plugins of simrun. The settings of a task are the spec of its kind, and plan is the plan of the kind, which simrun's client calls before it submits a task.

A splittable kind (fit, identifiability, scan, sensitivity, uncertainty) is split: simrun's workers compute its units with sbmlsim.run.compute_unit and its merge merges them with sbmlsim.run.merge. Every other kind (simulate, fisher, report, petab, adopt, factory, credibility, release) runs as the command (simrun-exec runs it, {settings}, {out} and {input} filled by simrun)

python -m sbmlsim.run <kind> {settings} --out {out}/out
    --summary {out}/summary.json --resume --input={input}

in which --resume lets a retry after an eviction continue the run it finds and starts a run in an empty output.

A task writes the output of its run into its output port out, the directory out/out of the task (OUTPUT), which a task downstream reads as the input <task>.out, e.g. the fit of an identifiability analysis. The run, the command of an unsplit task or the merge of a split one, also writes its summary to out/summary.json, the summary of the task which simrun compare reads.

The resource hints are the maximum resident memory of a run on one worker (/usr/bin/time -v, python 3.14 on linux, the HCTZ project examples.hctz_fitting.project, --workers 1) times 1.5, rounded up to 0.5 GiB: the fit of the subset PK with 4 repeats 0.36 GiB, the scan dose 0.37 GiB, the sensitivity sobol 0.38 GiB, the uncertainty cl 0.38 GiB, the simulation of the three experiments 0.38 GiB and the report of the fit with its figures 0.48 GiB, so 1 GiB per worker for every kind. The build of a release (release) runs the analyses of the release in its own processes and is hinted alike.

The kind verify is no task type: it compares the dumps of two environments, a task type comes when a workflow needs it. The base memory is the process of simrun's worker besides the processes of its units, 0.10 GiB measured with this module imported, 0.5 GiB.

This module imports simrun; import sbmlsim and sbmlsim.run do not import it, only simrun's loading of the entry points and the tests do.

simulate_plan

simulate_plan(settings)

Plan a simulation of the experiments of a project, see sbmlsim.run.plan.

fit_plan

fit_plan(settings)

Plan a fit: its id, its seed and its units, see sbmlsim.run.plan.

fit_count_units

fit_count_units(settings)

Count the units of a planned fit, see sbmlsim.run.count_units.

fit_compute_unit

fit_compute_unit(settings, index, paths)

Compute one unit of a fit, see sbmlsim.run.compute_unit.

fit_merge

fit_merge(settings, paths)

Merge the units of a fit, see sbmlsim.run.merge.

identifiability_plan

identifiability_plan(settings)

Plan a profile likelihood: its parameters and units.

identifiability_count_units

identifiability_count_units(settings)

Count the units of a planned profile likelihood, one per parameter.

identifiability_compute_unit

identifiability_compute_unit(settings, index, paths)

Compute the profile of one parameter.

identifiability_merge

identifiability_merge(settings, paths)

Merge the profiles of a profile likelihood.

fisher_plan

fisher_plan(settings)

Plan the Fisher information of a fit, see sbmlsim.run.plan.

report_plan

report_plan(settings)

Plan the report of a fit, see sbmlsim.run.plan.

adopt_plan

adopt_plan(settings)

Plan the adoption of a fit, see sbmlsim.run.plan.

factory_plan

factory_plan(settings)

Plan a build of the models of a project, see sbmlsim.run.plan.

credibility_plan

credibility_plan(settings)

Plan an assessment of the credibility, see sbmlsim.run.plan.

release_plan

release_plan(settings)

Plan the build of a release of a project, see sbmlsim.run.plan.

petab_plan

petab_plan(settings)

Plan the PEtab problem of a fit, see sbmlsim.run.plan.

scan_plan

scan_plan(settings)

Plan a scan: the hash of its scan and its units.

scan_count_units

scan_count_units(settings)

Count the units of a planned scan, see sbmlsim.run.count_units.

scan_compute_unit

scan_compute_unit(settings, index, paths)

Compute one block of the points of a scan.

scan_merge

scan_merge(settings, paths)

Merge the blocks of a scan into its result.

sensitivity_plan

sensitivity_plan(settings)

Plan a sensitivity analysis: the hash of its scan and its units.

sensitivity_count_units

sensitivity_count_units(settings)

Count the units of a planned sensitivity analysis.

sensitivity_compute_unit

sensitivity_compute_unit(settings, index, paths)

Compute one block of the points of the scan of a sensitivity analysis.

sensitivity_merge

sensitivity_merge(settings, paths)

Merge the blocks of a sensitivity analysis and compute its indices.

uncertainty_plan

uncertainty_plan(settings)

Plan an uncertainty propagation: its seed and its units.

uncertainty_count_units

uncertainty_count_units(settings)

Count the units of a planned uncertainty propagation.

uncertainty_compute_unit

uncertainty_compute_unit(settings, index, paths)

Compute one block of the draws of an uncertainty propagation.

uncertainty_merge

uncertainty_merge(settings, paths)

Merge the blocks of an uncertainty propagation into its result.