Repository navigation
SBML Upgrades, Species Clamping, and Smart Copy / Paste Fixes
·
18 commits
to master
since this release
[8.2.1.01] - October 16th, 2026
Highlights: Spatial stochastic models — Smoldyn particle models and PDE/particle hybrids, where some
species are individual molecules and others are concentrations — can be exported to SBML Spatial and
imported back. Until now VCell refused to export them. Copying simulation results into a stochastic
application's initial conditions or Math Overrides also works again: these pastes often found no target
and changed nothing.
Added
- SBML Spatial: export and import of spatial stochastic applications. Whether each species is a particle
or a concentration is recorded in VCell's species annotation
(<vcell:SpeciesContextSpecSettings vcell:representation="particle"/>). A species without the
annotation is a concentration, so plain SBML Spatial models still import as deterministic PDE models.
On import, a clamped species marked as particles is reported and kept as a concentration, since VCell
requires clamped species to be continuous. Rule-based and SpringSaLaD applications are still refused,
and SED-ML export still skips spatial stochastic applications. (#2175)
Fixed
- SBML import of a spatial stochastic model converts it, geometry included, to VCell's default units
(µm, µM, s). VCell's spatial stochastic math is only consistent in those units: a hybrid imported in
VCell's SBML units (dm, µmol, l) gave Smoldyn a world measured in dm while particle creation stayed per
µm³, so it created about 10⁻¹⁵ of the expected molecules. (#2175) - Pasting initial conditions between stochastic (molecule count) and deterministic (concentration)
applications works in both directions, in Specifications → Initial Conditions and in a simulation's
Math Overrides. The value to replace is now found by following the model's math to the constant that
sets each variable's starting value, rather than by guessing from its name (<var>_init_…), which
missed particle, count and membrane variables. Each pasted value goes to its own row. (#2180)
Changed
- Plot2D data panel (the table behind a plot): clearer layout and labels. (#2180)
- Math Overrides keep a fixed order instead of hash order. (#2180)
- Java API, for code built against VCell: in
MathOverrides,ScanIndexis now a record (.index→
.index()) andgetOverridesHashKeys()is nowgetOverrideKeys().Compare.nullStateis now
Compare.Nullness.determineNullState, andMathOverridesPanel.setMathOverridesis nowsetMath,
which also takes theMathSymbolMapping. New:cbit.vcell.mapping.MathRelationMappings, which finds
the constant that initializes a math variable. (#2180) - Developer builds:
SlurmProxyTestpasses on Windows (25 of 25; before, 18 failures and 1 skipped).
Generated Slurm scripts use Unix paths and line endings whatever the developer's OS; nothing changes on
the Linux servers. (#2182)