-
-
Notifications
You must be signed in to change notification settings - Fork 30
Closed
Description
Hi all,
I have a model were the units in the math of the AssignmentRule do not match the variable. But the unit validation does not raise a UnitError. The model is attached here: dapagliflozin_kidney.zip
<unitDefinition id="g_per_mole" name="g/mole">
<listOfUnits>
<unit kind="gram" exponent="1" scale="0" multiplier="1"/>
<unit kind="mole" exponent="-1" scale="0" multiplier="1"/>
</listOfUnits>
</unitDefinition>
<unitDefinition id="mmole" name="mmole">
<listOfUnits>
<unit kind="mole" exponent="1" scale="0" multiplier="0.001"/>
</listOfUnits>
</unitDefinition> <species metaid="meta_glc_urine" sboTerm="SBO:0000247" id="glc_urine" name="glucose (urine)" compartment="Vurine" initialConcentration="0" substanceUnits="mmole" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>The variable is UGE (urinary glucose excretion) with the unit "gram".
<parameter id="UGE" name="urinary glucose excretion (UGE)" value="NaN" units="gram" constant="false"/>
<parameter metaid="meta_Mr_glc" sboTerm="SBO:0000647" id="Mr_glc" name="Molecular weight glc [g/mole]" value="180" units="g_per_mole" constant="true"/>And the corresponding assignment rule:
<assignmentRule name="urinary glucose excretion (UGE)" variable="UGE">
<notes>
<body xmlns="http://www.w3.org/1999/xhtml">
<p>Urinary glucose excretion is calculated from cumulative amount of glucose in urine.</p>
</body>
</notes>
<math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version2/core">
<apply>
<divide/>
<apply>
<times/>
<ci> glc_urine </ci>
<ci> Mr_glc </ci>
</apply>
<cn sbml:units="dimensionless" type="integer"> 1000 </cn>
</apply>
</math>
</assignmentRule>glc_urine [mmole] * Mr_glc [g/mole] = mg != g, i.e., the variable is in g, but the math of the assignment has the units mg. This should give a UnitError.
The same issue happens when not using the factor 1000 in the equation (just but this in so the values are correct)
Normally such errors are correctly handled, not sure why this is not the case here.
Best Matthias
Metadata
Metadata
Assignees
Labels
No labels