Repository 'rpcompletion'
hg clone https://toolshed.g2.bx.psu.edu/repos/tduigou/rpcompletion

Changeset 0:98d925a75257 (2021-11-23)
Next changeset 1:b8242cf18cc0 (2022-02-09)
Commit message:
"planemo upload commit 2f1af427fa4c4f2aad53ab94c4cdb51456c66019-dirty"
added:
rpcompletion.xml
test-data/1-rp2_metnet.csv
test-data/2-sink.csv
test-data/3-rp2paths_compounds.tsv
test-data/4-rp2paths_pathways.csv
test-data/rp_001_0001.xml
test-data/rp_001_0006.xml
test-data/rp_001_0011.xml
test-data/rp_002_0001.xml
test-data/rp_002_0011.xml
test-data/rp_002_0021.xml
test-data/rp_003_0001.xml
test-data/rp_003_0131.xml
test-data/rp_003_0261.xml
b
diff -r 000000000000 -r 98d925a75257 rpcompletion.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rpcompletion.xml Tue Nov 23 13:45:45 2021 +0000
[
@@ -0,0 +1,106 @@
+<tool id="rpCompletion" name="Complete Reactions" version="5.9.2">
+    <description>From the output of RP2Paths and RetroPath2.0, generate SBML unique and complete (with cofactors) pathways with mono-component reactions</description>
+    <requirements>
+        <requirement type="package" version="5.9.2">rptools</requirement>
+    </requirements>
+    <stdio>
+        <exit_code range="1" level="fatal" description="Could not Xref compartment_id" />
+        <exit_code range="2" level="fatal" description="ValueError returned" />
+    </stdio>
+    <command detect_errors="exit_code"><![CDATA[
+        python -m rptools.rpcompletion
+        '$rp2_pathways'
+        '$sink'
+        '$rp2paths_compounds'
+        '$rp2paths_pathways'
+        completed_pathways
+        --upper_flux_bound '$adv.upper_flux_bound'
+        --lower_flux_bound '$adv.lower_flux_bound'
+        --max_subpaths_filter '$adv.max_subpaths_filter'
+    ]]></command>
+    <inputs>
+        <param name="rp2paths_pathways" type="data" format="csv" label="RP2paths pathways" />
+        <param name="rp2paths_compounds" type="data" format="tsv" label="RP2paths compounds" />
+        <param name="rp2_pathways" type="data" format="csv" label="RetroPath2.0 metabolic network" />
+        <param name="sink" type="data" format="csv" label="Sink from SBML" />
+        <section name="adv" title="Advanced Options" expanded="false">
+            <param name="max_subpaths_filter" type="integer" value="10" label="Max subpaths generated per pathway" />
+            <param name="upper_flux_bound" type="integer" value="999999" label="Upper flux bound" />
+            <param name="lower_flux_bound" type="integer" value="0" label="Lower flux bound" />
+        </section>
+    </inputs>
+    <outputs>
+        <collection name="pathways" type="list" label="${tool.name}">
+            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.xml" format="xml" directory="completed_pathways" visible="false" />
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+        <!-- test 1: check if identical outputs are produced with default parameters  -->
+            <param name="rp2paths_pathways" value="4-rp2paths_pathways.csv" />
+            <param name="rp2paths_compounds" value="3-rp2paths_compounds.tsv" />
+            <param name="rp2_pathways" value="1-rp2_metnet.csv" />
+            <param name="sink" value="2-sink.csv" />
+            <output_collection name="pathways" type="list">
+                <element name="rp_001_0001" ftype="xml" file="rp_001_0001.xml" sort="true"/>
+                <element name="rp_001_0006" ftype="xml" file="rp_001_0006.xml" sort="true"/>
+                <element name="rp_001_0011" ftype="xml" file="rp_001_0011.xml" sort="true"/>
+                <element name="rp_002_0001" ftype="xml" file="rp_002_0001.xml" sort="true"/>
+                <element name="rp_002_0011" ftype="xml" file="rp_002_0011.xml" sort="true"/>
+                <element name="rp_002_0021" ftype="xml" file="rp_002_0021.xml" sort="true"/>
+                <element name="rp_003_0001" ftype="xml" file="rp_003_0001.xml" sort="true"/>
+                <element name="rp_003_0131" ftype="xml" file="rp_003_0131.xml" sort="true"/>
+                <element name="rp_003_0261" ftype="xml" file="rp_003_0261.xml" sort="true"/>
+            </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+rpCompletion
+============
+
+Completes mono-component reactions output by RetroPath2.0 with the appropriate cofactors. Creates sub-paths when multiple reaction rules are associated with a single reaction. Input is a single pathways file produced by RP2Paths. It stands on rpCache which store pre-computed data.
+
+Input
+-----
+
+Required:
+
+* **rp2_pathways**: (string) Path to the RetroPath2.0 pathways file
+* **rp2_sink**: (string) Path to the rpextractsink file containing infos on molecules in the sink
+* **rp2paths_compounds**: (string) Path to the rp2paths compounds file
+* **rp2paths_pathways**: (string) Path to the rp2paths pathways file
+* **outdir**: (string) Path to the output directory containing sbml completed pathways
+
+Advanced options:
+
+* **-upper_flux_bound**: (integer, default=9999) Upper flux bound value
+* **-lower_flux_bound**: (integer, default=0) Lower flux bound value
+* **-max_subpaths_filter**: (integer, default=10, 0=nofilter) Number of subpaths per path
+
+Project Links
+---------------------
+* `GitHub <https://github.com/brsynth/rptools>`_
+
+Version
+----------
+
+5.9.2
+
+Authors
+-------
+
+* **Melchior du Lac**
+* **Joan Hérisson**
+
+Acknowledgments
+---------------
+
+* Thomas Duigou
+
+Licence
+-------
+
+`MIT <https://github.com/brsynth/rptools/blob/master/LICENSE>`_
+
+    ]]></help>
+</tool>
\ No newline at end of file
b
diff -r 000000000000 -r 98d925a75257 test-data/1-rp2_metnet.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1-rp2_metnet.csv Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,9 @@\n+"Initial source","Transformation ID","Reaction SMILES","Substrate SMILES","Substrate InChI","Product SMILES","Product InChI","In Sink","Sink name","Diameter","Rule ID","EC number","Score","Starting Source SMILES","Iteration"\n+"[target]","TRS_0_0_1","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]>>[H]C(=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]","InChI=1S/C40H56/c1-33(2)19-13-23-37(7)27-17-31-39(9)29-15-25-35(5)21-11-12-22-36(6)26-16-30-40(10)32-18-28-38(8)24-14-20-34(3)4/h11-12,15-22,25-32H,13-14,23-24H2,1-10H3","[H]C(=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C40H64/c1-33(2)19-13-23-37(7)27-17-31-39(9)29-15-25-35(5)21-11-12-22-36(6)26-16-30-40(10)32-18-28-38(8)24-14-20-34(3)4/h11-12,19-22,27-30H,13-18,23-26,31-32H2,1-10H3","0","[None]","14","[RR-02-ae41ec5771136ea5-14-F]","[1.3.99.31]","0.4771212547196624","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]","0"\n+"[target]","TRS_0_1_9","[H]C(=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]>>[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","[H]C(=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C40H64/c1-33(2)19-13-23-37(7)27-17-31-39(9)29-15-25-35(5)21-11-12-22-36(6)26-16-30-40(10)32-18-28-38(8)24-14-20-34(3)4/h11-12,19-22,27-30H,13-18,23-26,31-32H2,1-10H3","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)","0","[None]","14","[RR-02-bedda4'..b'","[2.5.1.82, 2.5.1.29]","0.4771212547196624","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]","2"\n+"[target]","TRS_0_2_742","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]>>[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H].[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]","InChI=1S/C5H12O7P2/c1-5(2)3-4-11-14(9,10)12-13(6,7)8/h1,3-4H2,2H3,(H,9,10)(H2,6,7,8)","1","[MNXM83]","14","[RR-02-1d50852f3f343682-14-F, RR-02-3bf131230c6b2bf2-14-F, RR-02-07adee9ac9c42c7d-14-F, RR-02-1494429c7e6e0694-14-F, RR-02-f9759fe03c57b29f-14-F, RR-02-58d0f0d25e47b74a-14-F, RR-02-b3db29f084fc7a81-14-F]","[2.5.1.10, 2.5.1.68, 2.5.1.29, 2.5.1, 2.5.1.-, 2.5.1.88, 2.5.1.81, 2.5.1.31, NOEC, 2.5.1.84, 2.5.1.85, 2.5.1.92]","0.3010299956639812","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]","2"\n+"[target]","TRS_0_2_742","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]>>[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H].[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)","[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]","InChI=1S/C15H28O7P2/c1-13(2)7-5-8-14(3)9-6-10-15(4)11-12-21-24(19,20)22-23(16,17)18/h7,9,11H,5-6,8,10,12H2,1-4H3,(H,19,20)(H2,16,17,18)","1","[MNXM34]","14","[RR-02-1d50852f3f343682-14-F, RR-02-3bf131230c6b2bf2-14-F, RR-02-07adee9ac9c42c7d-14-F, RR-02-1494429c7e6e0694-14-F, RR-02-f9759fe03c57b29f-14-F, RR-02-58d0f0d25e47b74a-14-F, RR-02-b3db29f084fc7a81-14-F]","[2.5.1.10, 2.5.1.68, 2.5.1.29, 2.5.1, 2.5.1.-, 2.5.1.88, 2.5.1.81, 2.5.1.31, NOEC, 2.5.1.84, 2.5.1.85, 2.5.1.92]","0.3010299956639812","[H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]","2"\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/2-sink.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2-sink.csv Tue Nov 23 13:45:45 2021 +0000
b
b'@@ -0,0 +1,630 @@\n+"Name","InChI"\r\n+"MNXM3","InChI=1S/C10H16N5O13P3/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(26-10)1-25-30(21,22)28-31(23,24)27-29(18,19)20/h2-4,6-7,10,16-17H,1H2,(H,21,22)(H,23,24)(H2,11,12,13)(H2,18,19,20)"\r\n+"MNXM1","InChI=1S/p+1"\r\n+"MNXM7","InChI=1S/C10H15N5O10P2/c11-8-5-9(13-2-12-8)15(3-14-5)10-7(17)6(16)4(24-10)1-23-27(21,22)25-26(18,19)20/h2-4,6-7,10,16-17H,1H2,(H,21,22)(H2,11,12,13)(H2,18,19,20)"\r\n+"MNXM790","InChI=1S/C6H10N3O4P/c1-4-8-2-5(6(7)9-4)3-13-14(10,11)12/h2H,3H2,1H3,(H2,7,8,9)(H2,10,11,12)"\r\n+"MNXM13","InChI=1S/CO2/c2-1-3"\r\n+"MNXM188","InChI=1S/C7H7NO2/c8-6-4-2-1-3-5(6)7(9)10/h1-4H,8H2,(H,9,10)"\r\n+"MNXM91","InChI=1S/C5H13O14P3/c6-3-2(1-16-20(8,9)10)17-5(4(3)7)18-22(14,15)19-21(11,12)13/h2-7H,1H2,(H,14,15)(H2,8,9,10)(H2,11,12,13)"\r\n+"MNXM11","InChI=1S/H4O7P2/c1-8(2,3)7-9(4,5)6/h(H2,1,2,3)(H2,4,5,6)"\r\n+"MNXM1489","InChI=1S/C12H16NO9P/c14-9-8(5-21-23(18,19)20)22-11(10(9)15)13-7-4-2-1-3-6(7)12(16)17/h1-4,8-11,13-15H,5H2,(H,16,17)(H2,18,19,20)"\r\n+"MNXM30","InChI=1S/C10H15N5O11P2/c11-10-13-7-4(8(18)14-10)12-2-15(7)9-6(17)5(16)3(25-9)1-24-28(22,23)26-27(19,20)21/h2-3,5-6,9,16-17H,1H2,(H,22,23)(H2,19,20,21)(H3,11,13,14,18)"\r\n+"MNXM82","InChI=1S/C16H25N5O16P2/c17-16-19-12-6(13(28)20-16)18-3-21(12)14-10(26)8(24)5(34-14)2-33-38(29,30)37-39(31,32)36-15-11(27)9(25)7(23)4(1-22)35-15/h3-5,7-11,14-15,22-27H,1-2H2,(H,29,30)(H,31,32)(H3,17,19,20,28)"\r\n+"MNXM9","InChI=1S/H3O4P/c1-5(2,3)4/h(H3,1,2,3,4)"\r\n+"MNXM2","InChI=1S/H2O/h1H2"\r\n+"MNXM1351","InChI=1S/C15H25N5O20P4/c16-12-7-13(18-4-19(12)14-10(23)8(21)5(37-14)1-35-41(25,26)27)20(3-17-7)15-11(24)9(22)6(38-15)2-36-43(31,32)40-44(33,34)39-42(28,29)30/h3-6,8-11,14-16,21-24H,1-2H2,(H,31,32)(H,33,34)(H2,25,26,27)(H2,28,29,30)"\r\n+"MNXM66","InChI=1S/C3H9O6P/c4-1-3(5)2-9-10(6,7)8/h3-5H,1-2H2,(H2,6,7,8)"\r\n+"MNXM31","InChI=1S/C9H14N3O8P/c10-5-1-2-12(9(15)11-5)8-7(14)6(13)4(20-8)3-19-21(16,17)18/h1-2,4,6-8,13-14H,3H2,(H2,10,11,15)(H2,16,17,18)"\r\n+"MNXM26","InChI=1S/C2H4O2/c1-2(3)4/h1H3,(H,3,4)"\r\n+"MNXM27","InChI=1S/Na/q+1"\r\n+"MNXM334","InChI=1S/C10H12N4O5/c15-1-4-6(16)7(17)10(19-4)14-3-13-5-8(14)11-2-12-9(5)18/h2-4,6-7,10,15-17H,1H2,(H,11,12,18)"\r\n+"MNXM125","InChI=1S/C10H13N4O8P/c15-6-4(1-21-23(18,19)20)22-10(7(6)16)14-3-13-5-8(14)11-2-12-9(5)17/h2-4,6-7,10,15-16H,1H2,(H,11,12,17)(H2,18,19,20)"\r\n+"MNXM32180","InChI=1S/C38H76O13P2/c1-3-5-7-9-11-13-15-17-19-21-23-25-27-29-37(40)47-33-36(34-50-53(45,46)49-32-35(39)31-48-52(42,43)44)51-38(41)30-28-26-24-22-20-18-16-14-12-10-8-6-4-2/h35-36,39H,3-34H2,1-2H3,(H,45,46)(H2,42,43,44)"\r\n+"MNXM460","InChI=1S/C3H6O3/c4-1-3(6)2-5/h4-5H,1-2H2"\r\n+"MNXM74","InChI=1S/C3H7O6P/c4-1-3(5)2-9-10(6,7)8/h1,3,5H,2H2,(H2,6,7,8)"\r\n+"MNXM118","InChI=1S/C4H12N2/c5-3-1-2-4-6/h1-6H2"\r\n+"MNXM89557","InChI=1S/C5H9NO4/c6-3(5(9)10)1-2-4(7)8/h3H,1-2,6H2,(H,7,8)(H,9,10)"\r\n+"MNXM1668","InChI=1S/C9H19N3O3/c10-5-1-2-6-12-8(13)4-3-7(11)9(14)15/h7H,1-6,10-11H2,(H,12,13)(H,14,15)"\r\n+"MNXM38","InChI=1S/C27H35N9O15P2/c1-10-3-12-13(4-11(10)2)35(24-18(32-12)25(42)34-27(43)33-24)5-14(37)19(39)15(38)6-48-52(44,45)51-53(46,47)49-7-16-20(40)21(41)26(50-16)36-9-31-17-22(28)29-8-30-23(17)36/h3-4,8-9,14-16,19-21,26,32,37-41H,5-7H2,1-2H3,(H,44,45)(H,46,47)(H2,28,29,30)(H2,33,34,42,43)"\r\n+"MNXM7354","InChI=1S/C30H27N3O15/c34-19-7-1-4-13(22(19)37)25(40)31-16-10-46-29(44)18(33-27(42)15-6-3-9-21(36)24(15)39)12-48-30(45)17(11-47-28(16)43)32-26(41)14-5-2-8-20(35)23(14)38/h1-9,16-18,34-39H,10-12H2,(H,31,40)(H,32,41)(H,33,42)"\r\n+"MNXM111","InChI=1S/Fe/q+2"\r\n+"MNXM33","InChI=1S/C27H33N9O15P2/c1-10-3-12-13(4-11(10)2)35(24-18(32-12)25(42)34-27(43)33-24)5-14(37)19(39)15(38)6-48-52(44,45)51-53(46,47)49-7-16-20(40)21(41)26(50-16)36-9-31-17-22(28)29-8-30-23(17)36/h3-4,8-9,14-16,19-21,26,37-41H,5-7H2,1-2H3,(H5,28,29,30,34,42,43,44,45,46,47)/p+1"\r\n+"MNXM883","InChI=1S/C30H27N3O15/c34-19-7-1-4-13(22(19)37)25(40)31-16-10-46-29(44)18(33-27(42)15-6-3-9-21(36)24(15)39)12-48-30(45)17(11-47-28(16)43)32-26(41)14-5-2-8-20(35)23(14)38/h1-9,16-18,34-39H,10-12H2,(H,31,40)(H,32,41)(H,33,42)"\r\n+"MNXM'..b')3-13/h5-9,13,15-17,20H,2-3H2,1H3,(H,12,14)(H,18,19)"\r\n+"MNXM2403","InChI=1S/C8H15NO6/c1-4(12)9-5(2-10)7(14)8(15)6(13)3-11/h2,5-8,11,13-15H,3H2,1H3,(H,9,12)"\r\n+"MNXM730","InChI=1S/C7H11NO5/c1-4(9)8-5(7(12)13)2-3-6(10)11/h5H,2-3H2,1H3,(H,8,9)(H,10,11)(H,12,13)"\r\n+"MNXM1954","InChI=1S/C41H65N9O28P2/c1-15(32(58)45-17(3)37(62)63)44-35(61)21(8-6-7-20(42)38(64)65)47-25(53)10-9-22(39(66)67)48-33(59)16(2)43-34(60)18(4)74-31-27(46-19(5)52)40(76-23(13-51)29(31)56)77-80(71,72)78-79(69,70)73-14-24-28(55)30(57)36(75-24)50-12-11-26(54)49-41(50)68/h11-12,15-18,20-24,27-31,36,40,51,55-57H,6-10,13-14,42H2,1-5H3,(H,43,60)(H,44,61)(H,45,58)(H,46,52)(H,47,53)(H,48,59)(H,62,63)(H,64,65)(H,66,67)(H,69,70)(H,71,72)(H,49,54,68)"\r\n+"MNXM1608","InChI=1S/C4H6O5/c5-2(4(8)9)1-3(6)7/h2,5H,1H2,(H,6,7)(H,8,9)"\r\n+"MNXM1329","InChI=1S/C17H34N6O5S/c18-6-1-2-7-20-8-3-9-21-15(25)10-22-16(26)13(11-29)23-14(24)5-4-12(19)17(27)28/h12-13,20,29H,1-11,18-19H2,(H,21,25)(H,22,26)(H,23,24)(H,27,28)"\r\n+"MNXM1407","InChI=1S/C4H9O8P/c5-2(3(6)4(7)8)1-12-13(9,10)11/h2-3,5-6H,1H2,(H,7,8)(H2,9,10,11)"\r\n+"MNXM1734","InChI=1S/C6H12O7/c7-1-2(8)3(9)4(10)5(11)6(12)13/h2-5,7-11H,1H2,(H,12,13)"\r\n+"MNXM1750","InChI=1S/C6H12O5/c1-3(8)5(10)6(11)4(9)2-7/h3,5-8,10-11H,2H2,1H3"\r\n+"MNXM1403","InChI=1S/C9H10O2/c10-9(11)7-6-8-4-2-1-3-5-8/h1-5H,6-7H2,(H,10,11)"\r\n+"MNXM2112","InChI=1S/C3H7NO2S/c4-2(1-7)3(5)6/h2,7H,1,4H2,(H,5,6)"\r\n+"MNXM608","InChI=1S/C25H40N7O19P3S/c1-12(23(37)38)24(39)55-7-6-27-14(33)4-5-28-21(36)18(35)25(2,3)9-48-54(45,46)51-53(43,44)47-8-13-17(50-52(40,41)42)16(34)22(49-13)32-11-31-15-19(26)29-10-30-20(15)32/h10-13,16-18,22,34-35H,4-9H2,1-3H3,(H,27,33)(H,28,36)(H,37,38)(H,43,44)(H,45,46)(H2,26,29,30)(H2,40,41,42)"\r\n+"MNXM114390","InChI=1S/C13H19N6O9P/c14-5(1-20)13(23)28-29(24,25)26-2-6-8(21)9(22)12(27-6)19-4-18-7-10(15)16-3-17-11(7)19/h3-6,8-9,12,20-22H,1-2,14H2,(H,24,25)(H2,15,16,17)"\r\n+"MNXM1482","InChI=1S/C6H12N3O4P/c7-5(3-13-14(10,11)12)1-6-2-8-4-9-6/h2,4-5H,1,3,7H2,(H,8,9)(H2,10,11,12)"\r\n+"MNXM1922","InChI=1S/C10H13N4O7P/c15-5-1-7(21-6(5)2-20-22(17,18)19)14-4-13-8-9(14)11-3-12-10(8)16/h3-7,15H,1-2H2,(H,11,12,16)(H2,17,18,19)"\r\n+"MNXM435","InChI=1S/C3H6O3/c4-1-3(6)2-5/h1,3,5-6H,2H2"\r\n+"MNXM4232","InChI=1S/C15H31O7P/c1-2-3-4-5-6-7-8-9-10-11-15(17)21-12-14(16)13-22-23(18,19)20/h14,16H,2-13H2,1H3,(H2,18,19,20)"\r\n+"MNXM154","InChI=1S/C4H6O3/c1-3(5)2-4(6)7/h2H2,1H3,(H,6,7)"\r\n+"MNXM1886","InChI=1S/C46H70O/c1-37(2)19-12-20-38(3)21-13-22-39(4)23-14-24-40(5)25-15-26-41(6)27-16-28-42(7)29-17-30-43(8)31-18-32-44(9)35-36-45-33-10-11-34-46(45)47/h10-11,19,21,23,25,27,29,31,33-35,47H,12-18,20,22,24,26,28,30,32,36H2,1-9H3"\r\n+"MNXM1870","InChI=1S/C96H176N2O38P2/c1-6-11-16-21-26-31-36-41-46-51-66(101)56-76(107)97-81-89(130-79(110)57-67(102)52-47-42-37-32-27-22-17-12-7-2)85(114)74(128-92(81)136-138(122,123)124)64-125-91-82(98-77(108)59-69(54-49-44-39-34-29-24-19-14-9-4)127-78(109)55-50-45-40-35-30-25-20-15-10-5)90(131-80(111)58-68(103)53-48-43-38-33-28-23-18-13-8-3)88(135-137(119,120)121)75(129-91)65-126-95(93(115)116)61-73(84(113)87(133-95)72(106)63-100)132-96(94(117)118)60-70(104)83(112)86(134-96)71(105)62-99/h66-75,81-92,99-106,112-114H,6-65H2,1-5H3,(H,97,107)(H,98,108)(H,115,116)(H,117,118)(H2,119,120,121)(H2,122,123,124)"\r\n+"MNXM1080","InChI=1S/C6H10O8/c7-1(3(9)5(11)12)2(8)4(10)6(13)14/h1-4,7-10H,(H,11,12)(H,13,14)"\r\n+"MNXM1334","InChI=1S/C4H10NO6P/c5-3(4(6)7)1-2-11-12(8,9)10/h3H,1-2,5H2,(H,6,7)(H2,8,9,10)"\r\n+"MNXM495","InChI=1S/C10H14N4O11P2/c15-6-4(1-23-27(21,22)25-26(18,19)20)24-10(7(6)16)14-3-13-5-8(14)11-2-12-9(5)17/h2-4,6-7,10,15-16H,1H2,(H,21,22)(H,11,12,17)(H2,18,19,20)"\r\n+"MNXM309","InChI=1S/C21H26N6O15P2/c22-17-12-18(24-7-23-17)27(8-25-12)20-16(31)14(29)11(41-20)6-39-44(36,37)42-43(34,35)38-5-10-13(28)15(30)19(40-10)26-3-1-2-9(4-26)21(32)33/h1-4,7-8,10-11,13-16,19-20,28-31H,5-6H2,(H4-,22,23,24,32,33,34,35,36,37)/p+1"\r\n+"MNXM182","InChI=1S/C6H12O6/c7-1-2-3(8)4(9)5(10)6(11)12-2/h2-11H,1H2"\r\n+"MNXM241","InChI=1S/C6H10O7/c7-1-2(8)4(5(10)11)13-6(12)3(1)9/h1-4,6-9,12H,(H,10,11)"\r\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/3-rp2paths_compounds.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/3-rp2paths_compounds.tsv Tue Nov 23 13:45:45 2021 +0000
[
@@ -0,0 +1,8 @@
+Compound ID Structure
+CMPD_0000000001 [H]C(=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]
+CMPD_0000000003 [H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]
+MNXM100 [H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]
+MNXM132 [H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]
+MNXM34 [H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]
+MNXM83 [H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]
+TARGET_0000000001 [H]C(=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])=C(C([H])=C([H])C([H])=C(C([H])=C([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H])C([H])([H])[H])C([H])([H])[H]
b
diff -r 000000000000 -r 98d925a75257 test-data/4-rp2paths_pathways.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/4-rp2paths_pathways.csv Tue Nov 23 13:45:45 2021 +0000
b
@@ -0,0 +1,10 @@
+"Path ID","Unique ID","Rule ID","Left","Right"
+"1","TRS_0_0_1_0","RR-02-ae41ec5771136ea5-14-F","1.CMPD_0000000001","1.TARGET_0000000001"
+"1","TRS_0_1_9_0","RR-02-bedda4e2f5001e0c-14-F","1.CMPD_0000000003","1.CMPD_0000000001"
+"1","TRS_0_2_739_0","RR-02-90bcfd187709eb1b-14-F","1.MNXM132:1.MNXM83","1.CMPD_0000000003"
+"2","TRS_0_0_1_0","RR-02-ae41ec5771136ea5-14-F","1.CMPD_0000000001","1.TARGET_0000000001"
+"2","TRS_0_1_9_0","RR-02-bedda4e2f5001e0c-14-F","1.CMPD_0000000003","1.CMPD_0000000001"
+"2","TRS_0_2_740_0","RR-02-0c33a3bfd9bf5ad5-14-F,RR-02-6692e4af37fbca2d-14-F","1.MNXM100:1.MNXM83","1.CMPD_0000000003"
+"3","TRS_0_0_1_0","RR-02-ae41ec5771136ea5-14-F","1.CMPD_0000000001","1.TARGET_0000000001"
+"3","TRS_0_1_9_0","RR-02-bedda4e2f5001e0c-14-F","1.CMPD_0000000003","1.CMPD_0000000001"
+"3","TRS_0_2_742_0","RR-02-07adee9ac9c42c7d-14-F,RR-02-1494429c7e6e0694-14-F,RR-02-1d50852f3f343682-14-F,RR-02-3bf131230c6b2bf2-14-F,RR-02-58d0f0d25e47b74a-14-F,RR-02-b3db29f084fc7a81-14-F,RR-02-f9759fe03c57b29f-14-F","1.MNXM34:1.MNXM83","1.CMPD_0000000003"
\ No newline at end of file
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_001_0001.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_001_0001.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,363 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="a03e1bf0f20b54a66f7b4ce262ea6b0f7579c0a1e47144a649b9e2e711f6b3ed" id="RP_model_001_0001" name="001_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4" id="MNXM8975" name="MNXM8975" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">'..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_001_0006.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_001_0006.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,363 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="_9abfd4c46acaab90583da6a3a85bb5000b25ca6dcac80825140a206a3c167d09" id="RP_model_001_0006" name="001_0006" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a" id="MNXM36" name="MNXM36" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles/>\n+                <brsynth:inchi/>\n+                <brsynth:inchikey/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20('..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM36"/>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_001_0011.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_001_0011.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,363 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="_2eda565339ba8b09cce4d7e7775c0cdc48d2829ace3c6b73d4eb3136afc453a4" id="RP_model_001_0011" name="001_0011" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0" id="MNXM83" name="isopentenyl diphosphate" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad'..b'ns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM35"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_002_0001.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_002_0001.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,366 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="f9b1ff022aa2133fc1e5e5d1fbac90ac29a744e960a2774be646bc71471ed597" id="RP_model_002_0001" name="002_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4" id="MNXM8975" name="MNXM8975" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">'..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_002_0011.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_002_0011.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,366 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="b8c1523a13bf5120b604ab91344086ae4f6519e7153eba9eeacb319187964033" id="RP_model_002_0011" name="002_0011" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a" id="MNXM36" name="MNXM36" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles/>\n+                <brsynth:inchi/>\n+                <brsynth:inchikey/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5'..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM36"/>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_002_0021.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_002_0021.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,366 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="a9cc9409d25c0b3d10c2984625f4f08d3d0504a7022a8542a76d156ea34afa32" id="RP_model_002_0021" name="002_0021" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0" id="MNXM83" name="isopentenyl diphosphate" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad2'..b'ns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM35"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM100"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_003_0001.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_003_0001.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,404 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="d4bfc4fec7c42e9de20c2ade1a21933a8c1ca015d4ca77b2b5f95790e798931c" id="RP_model_003_0001" name="003_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4" id="MNXM8975" name="MNXM8975" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">'..b'ns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_003_0131.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_003_0131.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,404 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="d5d4a5735e41ff2b063def8c757236e2e1a0f63c1dfee8baf1e79e81ce759172" id="RP_model_003_0131" name="003_0131" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a" id="MNXM36" name="MNXM36" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_04b973bebf0de87c9fe23384ce8fd1fef71a33cbb0b827ade48cd364bf14a23a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles/>\n+                <brsynth:inchi/>\n+                <brsynth:inchikey/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5'..b'ns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM36"/>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r 000000000000 -r 98d925a75257 test-data/rp_003_0261.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rp_003_0261.xml Tue Nov 23 13:45:45 2021 +0000
[
b'@@ -0,0 +1,404 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="ab7a7ab71c6ccfe1bb89180d9a6fb504a8ea4784c1ace396ce99cb6892d1b81e" id="RP_model_003_0261" name="003_0261" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])C([H])([H])C([H])=C(C([H])([H])[H])C([H])([H])[H]"/>\n+                <brsynth:inchi value="InChI=1S/C20H36O7P2/c1-17(2)9-6-10-18(3)11-7-12-19(4)13-8-14-20(5)15-16-26-29(24,25)27-28(21,22)23/h9,11,13,15H,6-8,10,12,14,16H2,1-5H3,(H,24,25)(H2,21,22,23)"/>\n+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0" id="MNXM83" name="isopentenyl diphosphate" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad2'..b'mlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM35"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM34"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'