sbml-test-suite icon indicating copy to clipboard operation
sbml-test-suite copied to clipboard

Interpretation of case 48

Open paulflang opened this issue 3 years ago • 3 comments

I do not know why it is possible to get a simulation result for test case 48. We have

  • an unsized zero dimensional compartment: <compartment id="compartment" name="compartment" spatialDimensions="0" constant="true"/>,
  • a Species S1 that with has_only_substance_units="false": <species id="S1" name="S1" compartment="compartment" initialAmount="0.015" substanceUnits="substance" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>, and
  • a kineticLaw that contains S1:
<kineticLaw>
  <math xmlns="http://www.w3.org/1998/Math/MathML">
    <apply>
      <times/>
      <ci> k1 </ci>
      <ci> S1 </ci>
    </apply>
  </math>
</kineticLaw>

Now I would think that this model cannot be solved, cause the concentration, not the amount of S1 needs to be plugged into the kineticLaw. However, we cannot know the concentration of S1, as we don't know the size of compartment. What am I getting wrong?

(Please let me know if there is a better channel to discuss this)

paulflang avatar May 26 '22 18:05 paulflang

This is a fine place to discuss the issue.

There were many rules in place in SBML L1 and L2 about 0D compartments, but those rules were dropped for SBML L3. However, as you have discovered, this means that tests like this are no longer accurate.

I believe the way to fix this is to set hasOnlySubstanceUnits to 'true' for the L3 models. We should also make sure this happens when L2 models are translated to L3 in general.

luciansmith avatar May 26 '22 23:05 luciansmith

https://github.com/sbmlteam/sbml-test-suite/pull/86

(Although the other option is to just drop the L3 versions of these tests.)

luciansmith avatar May 26 '22 23:05 luciansmith

Thanks for clarifying, Lucian!

paulflang avatar May 27 '22 00:05 paulflang