Skip to content

Commit 9faec63

Browse files
authored
Merge pull request #350 from sbmlteam/fbcV3-update
Update Fbc V3 package
2 parents bee0af7 + aee04c3 commit 9faec63

39 files changed

+892
-197
lines changed

NEWS.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ and converting models.
1414
- Attributes of the ModelHistory can now be accessed from
1515
const objects.
1616

17+
- The FBC V3 package has been updated to reflect the latest
18+
specification. There are now optional attributes `fbc:reaction2`
19+
on the FluxObjective and `fbc:variable2` on the
20+
UserDefinedConstraintComponent.
21+
1722
* Bug fixes
1823

1924
- A bug converting / validating models with the 'comp' package
@@ -23,6 +28,11 @@ and converting models.
2328

2429
- A fix to the CMake Build system ensures that check for dependencies
2530
is more robust. Thanks to first time contributor @adelhpour
31+
32+
- The type of the FBC V3 `coefficient` attribute on the
33+
UserDefinedConstraintComponent has been corrected, it was mistakenly
34+
a double before, now it has been corrected to be a SIdRef as
35+
described in the specification.
2636

2737

2838
====================================================================

dev/packages/deviser-fbc_v3.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
<attribute name="id" required="false" type="SId" abstract="false"/>
169169
<attribute name="name" required="false" type="string" abstract="false"/>
170170
<attribute name="reaction" required="true" type="SIdRef" element="Reaction" abstract="false"/>
171+
<attribute name="reaction2" required="false" type="SIdRef" element="Reaction" abstract="false"/>
171172
<attribute name="coefficient" required="true" type="double" abstract="false"/>
172173
<attribute name="variableType" required="true" type="enum" element="FbcVariableType" abstract="false"/>
173174
</attributes>
@@ -226,8 +227,9 @@
226227
<attributes>
227228
<attribute name="id" required="false" type="SId" abstract="false"/>
228229
<attribute name="name" required="false" type="string" abstract="false"/>
229-
<attribute name="coefficient" required="true" type="double" abstract="false"/>
230+
<attribute name="coefficient" required="true" type="SIdRef" element="Parameter" abstract="false"/>
230231
<attribute name="variable" required="true" type="SIdRef" element="Reaction,Parameter" abstract="false"/>
232+
<attribute name="variable2" required="false" type="SIdRef" element="Reaction,Parameter" abstract="false"/>
231233
<attribute name="variableType" required="true" type="enum" element="FbcVariableType" abstract="false"/>
232234
</attributes>
233235
</element>

src/bindings/matlab/getDefaultValues.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3565,7 +3565,7 @@
35653565
int32(-1), ...
35663566
'', ...
35673567
'', ...
3568-
0/0, ...
3568+
'', ...
35693569
int32(0), ...
35703570
'', ...
35713571
'', ...

src/bindings/matlab/getValueType.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3568,7 +3568,7 @@
35683568
'int', ...
35693569
'char', ...
35703570
'char', ...
3571-
'double', ...
3571+
'char', ...
35723572
'bool', ...
35733573
'char', ...
35743574
'char', ...

src/bindings/matlab/test/test-data/fbcV3.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
<fbc:listOfUserDefinedConstraints>
7676
<fbc:userDefinedConstraint sboTerm="SBO:0000001" fbc:id="uc2" fbc:lowerBound="uc2lb" fbc:upperBound="uc2ub">
7777
<fbc:listOfUserDefinedConstraintComponents>
78-
<fbc:userDefinedConstraintComponent metaid="_udc1" sboTerm="SBO:0000001" fbc:id="dd" fbc:name="string" fbc:coefficient="2" fbc:variable="R2" fbc:variableType="linear"/>
78+
<fbc:userDefinedConstraintComponent metaid="_udc1" sboTerm="SBO:0000001" fbc:id="dd" fbc:name="string" fbc:coefficient="uc2ub" fbc:variable="R2" fbc:variableType="linear"/>
7979
</fbc:listOfUserDefinedConstraintComponents>
8080
</fbc:userDefinedConstraint>
8181
</fbc:listOfUserDefinedConstraints>

src/bindings/matlab/test/testReadFromFileFbc3.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@
7777

7878
Totalfail = Totalfail + fail_unless( strcmp(m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).typecode, 'SBML_FBC_USERDEFINEDCONSTRAINTCOMPONENT'));
7979
Totalfail = Totalfail + fail_unless( strcmp(m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).fbc_id, 'dd'));
80-
Totalfail = Totalfail + fail_unless( m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).fbc_coefficient == 2);
8180
Totalfail = Totalfail + fail_unless( m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).isSetfbc_coefficient == 1);
81+
Totalfail = Totalfail + fail_unless( strcmp(m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).fbc_coefficient, 'uc2ub'));
8282
Totalfail = Totalfail + fail_unless( strcmp(m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).fbc_variable, 'R2'));
8383
Totalfail = Totalfail + fail_unless( strcmp(m.fbc_userDefinedConstraint(1).fbc_userDefinedConstraintComponent(1).fbc_variableType, 'linear'));
8484

src/sbml/packages/fbc/extension/test/TestWriteFbcExtension.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,17 +415,19 @@ START_TEST(test_FbcExtension_create_and_write_L3V1V3)
415415
FluxObjective* fluxObjective = objective->createFluxObjective();
416416
fluxObjective->setReaction("J0");
417417
fluxObjective->setCoefficient(1);
418-
fluxObjective->setVariableType("linear");
418+
fluxObjective->setReaction2("J0");
419+
fluxObjective->setVariableType("quadratic");
419420

420421
UserDefinedConstraint* userconstraint = mplugin->createUserDefinedConstraint();
421422
userconstraint->setId("uc2");
422423
userconstraint->setLowerBound("uc2lb");
423424
userconstraint->setUpperBound("uc2ub");
424425

425426
UserDefinedConstraintComponent * udcc = userconstraint->createUserDefinedConstraintComponent();
426-
udcc->setCoefficient(2);
427+
udcc->setCoefficient("ucc1");
427428
udcc->setVariable("Avar");
428-
udcc->setVariableType("linear");
429+
udcc->setVariableType("quadratic");
430+
udcc->setVariable2("Avar2");
429431

430432
// check annotations on several types
431433
FbcSBasePlugin* sbaseplugin = dynamic_cast<FbcSBasePlugin*>(compartment->getPlugin("fbc"));

src/sbml/packages/fbc/extension/test/test-data/fbc_example2_v3.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@
3232
</listOfKeyValuePairs>
3333
</annotation>
3434
<fbc:listOfFluxObjectives>
35-
<fbc:fluxObjective fbc:reaction="J0" fbc:coefficient="1" fbc:variableType="linear"/>
35+
<fbc:fluxObjective fbc:reaction="J0" fbc:coefficient="1" fbc:variableType="quadratic" fbc:reaction2="J0"/>
3636
</fbc:listOfFluxObjectives>
3737
</fbc:objective>
3838
</fbc:listOfObjectives>
3939
<fbc:listOfUserDefinedConstraints>
4040
<fbc:userDefinedConstraint fbc:id="uc2" fbc:lowerBound="uc2lb" fbc:upperBound="uc2ub">
4141
<fbc:listOfUserDefinedConstraintComponents>
42-
<fbc:userDefinedConstraintComponent fbc:coefficient="2" fbc:variable="Avar" fbc:variableType="linear"/>
42+
<fbc:userDefinedConstraintComponent fbc:coefficient="ucc1" fbc:variable="Avar" fbc:variableType="quadratic" fbc:variable2="Avar2"/>
4343
</fbc:listOfUserDefinedConstraintComponents>
4444
</fbc:userDefinedConstraint>
4545
</fbc:listOfUserDefinedConstraints>

src/sbml/packages/fbc/extension/test/test-data/fbc_examplev3.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121

2222
<fbc:listOfUserDefinedConstraintComponents>
2323

24-
<fbc:userDefinedConstraintComponent fbc:coefficient="2" fbc:variable="Avar" fbc:variableType="linear"/>
24+
<fbc:userDefinedConstraintComponent fbc:coefficient="uc2ub" fbc:variable="Avar" fbc:variableType="linear"/>
2525
</fbc:listOfUserDefinedConstraintComponents>
2626
</fbc:userDefinedConstraint>
2727
</fbc:listOfUserDefinedConstraints>
2828
<fbc:listOfObjectives fbc:activeObjective="obj1">
2929
<fbc:objective fbc:id="obj1" fbc:type="maximize">
3030
<fbc:listOfFluxes>
31-
<fbc:fluxObjective fbc:reaction="J8" fbc:coefficient="1" fbc:variableType="linear"/>
31+
<fbc:fluxObjective fbc:reaction="J8" fbc:coefficient="1" fbc:variableType="quadratic" fbc:reaction2="J8"/>
3232
</fbc:listOfFluxes>
3333
</fbc:objective>
3434
</fbc:listOfObjectives>

0 commit comments

Comments
 (0)