changeset 1:de9f53630349 draft

"planemo upload commit 2f1af427fa4c4f2aad53ab94c4cdb51456c66019-dirty"
author tduigou
date Wed, 15 Dec 2021 15:10:43 +0000
parents e8e8050e9997
children 8a087d7546b8
files rpbasicdesign.xml rpbasicdesign/rpbasicdesign.xml rpbasicdesign/test-data/BASIC_construct_A1.xml rpbasicdesign/test-data/BASIC_construct_B1.xml rpbasicdesign/test-data/BASIC_construct_C1.xml rpbasicdesign/test-data/biolegio_plate.csv rpbasicdesign/test-data/constructs.csv rpbasicdesign/test-data/lycopene_CrtEBI_from_selenzy.xml rpbasicdesign/test-data/user_parts_plate.csv test-data/BASIC_construct_A1.xml test-data/BASIC_construct_B1.xml test-data/BASIC_construct_C1.xml test-data/biolegio_plate.csv test-data/constructs.csv test-data/lycopene_CrtEBI_from_selenzy.xml test-data/user_parts_plate.csv
diffstat 16 files changed, 1625 insertions(+), 1625 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rpbasicdesign.xml	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,121 @@
+<tool id="rpbasicdesign" name="BasicDesign" version="0.3.4">
+    <description>Build DNA-BOT input files from rpSBML</description>
+    <requirements>
+        <requirement type="package" version="0.3.4">rpbasicdesign</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        python -m rpbasicdesign.cli
+        --rpsbml_file '$rpsbml_file'
+        #if $adv.parts_files
+            #set files = '" "'.join([str($file) for $file in $adv.parts_files])
+            --parts_files "${files}"
+        #end if
+        --lms_id '$adv.lms_id'
+        --lmp_id '$adv.lmp_id'
+        --backbone_id '$backbone_id'
+        --sample_size '$sample_size'
+        #if str($adv.cds_permutation) == "true"
+            --cds_permutation true
+        #else
+            --cds_permutation false
+        #end if
+        --o_dnabot_dir 'out/dnabot_in'
+        --o_sbol_dir 'out/sbol_export'
+    ]]></command>
+    <inputs>
+        <param name="rpsbml_file" type="data" format="xml" label="rpSBML file"/>
+        <param name="backbone_id" type="text" value="BASIC_SEVA_37_CmR-p15A.1" label="Backbone part ID" />
+        <param name="sample_size" type="integer" value="88" label="Number of constructs to generate" />
+        <section name="adv" title="Advanced Options" expanded="false">
+            <param name="parts_files" type="data" format="csv" optional="true" multiple="true" label="Linkers and user parts" />
+            <param name="lms_id" type="text" value="LMS" label="LMS part ID" />
+            <param name="lmp_id" type="text" value="LMP" label="LMP part ID" />
+            <param name="cds_permutation" type="boolean" label="Perform CDS permutation?" checked="true" />
+        </section>
+    </inputs>
+    <outputs>
+        <data name="Constructs" format="csv" from_work_dir="out/dnabot_in/constructs.csv" label="${tool.name} - ${rpsbml_file.name}: constructs" />
+        <data name="User parts plate" format="csv" from_work_dir="out/dnabot_in/user_parts_plate.csv" label="${tool.name} - ${rpsbml_file.name}: User parts plate"/>
+        <data name="Biolegio plate" format="csv" from_work_dir="out/dnabot_in/biolegio_plate.csv" label="${tool.name} - ${rpsbml_file.name}: Biolegio plate"/>
+        <collection name="sbol_dir" type="list" label="${tool.name} - ${rpsbml_file.name}: SBOL constructs">
+            <discover_datasets pattern="__designation_and_ext__" format="xml" directory="out/sbol_export" />
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+        <!-- test 1: check if identical outputs are produced -->
+        <param name="rpsbml_file" value="lycopene_CrtEBI_from_selenzy.xml" />
+        <param name="sample_size" value="3" />
+        <output name="Constructs" file="constructs.csv" ftype="csv" compare="diff"/>
+        <output name="User parts plate" file="user_parts_plate.csv" ftype="csv" compare="diff"/>
+        <output name="Biolegio plate" file="biolegio_plate.csv" ftype="csv" compare="diff"/>
+        <output_collection name="sbol_dir" type="list">
+            <element name="BASIC_construct_A1" ftype="xml" value="BASIC_construct_A1.xml" sort="true"/>
+            <element name="BASIC_construct_B1" ftype="xml" value="BASIC_construct_B1.xml" sort="true"/>
+            <element name="BASIC_construct_C1" ftype="xml" value="BASIC_construct_C1.xml" sort="true"/>
+        </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+rpbasicdesign
+================
+
+Convert rpSBML enzyme info in to BASIC construct. UniProt IDs corresponding
+enzyme variants are extracted rpSBMl files. Promoters and RBSs are randomly
+chosen from a default list. CDSs, in other words gene variants, of enzymes are
+randomly chosen from amongst the UniProt IDs extracted. Constructs generated
+can be stored as (i) a CSV file ready to be used by DNA-Bot, (ii) as SBOL
+files.
+
+Input
+-----
+
+Required:
+
+* **rpsbml_file**\ : (string) rpSBML file from which enzymes UniProt IDs will be collected.
+
+Advanced options:
+
+* **parts_files**\ : (string) List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: [data/biolegio_parts.csv, user_parts.csv]
+* **lms_id**\ : (string) part ID to be used as the LMS methylated linker. Default: LMS.
+* **lmp_id**\ : (string) part ID to be used as the LMP methylated linker. Default: LMP.
+* **backbone_id**\ : (string) part ID to be used as the backbone. Default: BASIC_SEVA_37_CmR-p15A.1.
+* **sample_size**\ : (int) Number of construct to generate.Default: 3.
+* **cds_permutation**\ : (boolean) Whether all combinations of CDS permutation should be built Default: true.
+
+Output
+------
+
+* **o_dnabot_dir**\ : (string) Output folder to write construct and plate files. It will be created if it does not exist yet. Existing files will be overwritten. Default: out/dnabot_in.
+* **o_sbol_dir**\ : (string) Output folder to write SBOL depictions of constructs. It will be created if it does not exist yet. Existing files will be overwritten. Default: out/sbol_export.
+
+Project Links
+------------------
+
+* `GitHub <https://github.com/brsynth/rpbasicdesign>`_
+
+License
+-------
+
+* `MIT <https://github.com/brsynth/rpbasicdesign/blob/master/LICENSE.txt>`_
+
+    ]]></help>
+    <citations>
+        <citation type="bibtex">
+      @article{10.1093/synbio/ysaa010,
+          author = {Storch, Marko and Haines, Matthew C and Baldwin, Geoff S},
+          title = {DNA-BOT: a low-cost, automated DNA assembly platform for synthetic biology},
+          journal = {Synthetic Biology},
+          volume = {5},
+          number = {1},
+          year = {2020},
+          month = {07},
+          issn = {2397-7000},
+          doi = {10.1093/synbio/ysaa010},
+          url = {https://doi.org/10.1093/synbio/ysaa010},
+          note = {ysaa010},
+          eprint = {https://academic.oup.com/synbio/article-pdf/5/1/ysaa010/33722340/ysaa010.pdf},
+      }
+        </citation>
+    </citations>
+</tool>
\ No newline at end of file
--- a/rpbasicdesign/rpbasicdesign.xml	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-<tool id="rpbasicdesign" name="BasicDesign" version="0.3.4">
-    <description>Build DNA-BOT input files from rpSBML</description>
-    <requirements>
-        <requirement type="package" version="0.3.4">rpbasicdesign</requirement>
-    </requirements>
-    <command detect_errors="exit_code"><![CDATA[
-        python -m rpbasicdesign.cli
-        --rpsbml_file '$rpsbml_file'
-        #if $adv.parts_files
-            #set files = '" "'.join([str($file) for $file in $adv.parts_files])
-            --parts_files "${files}"
-        #end if
-        --lms_id '$adv.lms_id'
-        --lmp_id '$adv.lmp_id'
-        --backbone_id '$backbone_id'
-        --sample_size '$sample_size'
-        #if str($adv.cds_permutation) == "true"
-            --cds_permutation true
-        #else
-            --cds_permutation false
-        #end if
-        --o_dnabot_dir 'out/dnabot_in'
-        --o_sbol_dir 'out/sbol_export'
-    ]]></command>
-    <inputs>
-        <param name="rpsbml_file" type="data" format="xml" label="rpSBML file"/>
-        <param name="backbone_id" type="text" value="BASIC_SEVA_37_CmR-p15A.1" label="Backbone part ID" />
-        <param name="sample_size" type="integer" value="3" label="Number of construct to generate" />
-        <section name="adv" title="Advanced Options" expanded="false">
-            <param name="parts_files" type="data" format="csv" optional="true" multiple="true" label="Linkers and user parts" />
-            <param name="lms_id" type="text" value="LMS" label="LMS part ID" />
-            <param name="lmp_id" type="text" value="LMP" label="LMP part ID" />
-            <param name="cds_permutation" type="boolean" label="Perform CDS permutation?" checked="true" />
-        </section>
-    </inputs>
-    <outputs>
-        <data name="Constructs" format="csv" from_work_dir="out/dnabot_in/constructs.csv" label="${tool.name} - ${rpsbml_file.name}: constructs" />
-        <data name="User parts plate" format="csv" from_work_dir="out/dnabot_in/user_parts_plate.csv" label="${tool.name} - ${rpsbml_file.name}: User parts plate"/>
-        <data name="Biolegio plate" format="csv" from_work_dir="out/dnabot_in/biolegio_plate.csv" label="${tool.name} - ${rpsbml_file.name}: Biolegio plate"/>
-        <collection name="sbol_dir" type="list" label="${tool.name} - ${rpsbml_file.name}: SBOL constructs">
-            <discover_datasets pattern="__designation_and_ext__" format="xml" directory="out/sbol_export" />
-        </collection>
-    </outputs>
-    <tests>
-        <test>
-        <!-- test 1: check if identical outputs are produced -->
-        <param name="rpsbml_file" value="lycopene_CrtEBI_from_selenzy.xml" />
-        <param name="sample_size" value="3" />
-        <output name="Constructs" file="constructs.csv" ftype="csv" compare="diff"/>
-        <output name="User parts plate" file="user_parts_plate.csv" ftype="csv" compare="diff"/>
-        <output name="Biolegio plate" file="biolegio_plate.csv" ftype="csv" compare="diff"/>
-        <output_collection name="sbol_dir" type="list">
-            <discovered_dataset designation="BASIC_construct_A1" ftype="xml" file="BASIC_construct_A1.xml"/>
-            <discovered_dataset designation="BASIC_construct_B1" ftype="xml" file="BASIC_construct_B1.xml"/>
-            <discovered_dataset designation="BASIC_construct_C1" ftype="xml" file="BASIC_construct_C1.xml"/>
-        </output_collection>
-        </test>
-    </tests>
-    <help><![CDATA[
-rpbasicdesign
-================
-
-Convert rpSBML enzyme info in to BASIC construct. UniProt IDs corresponding
-enzyme variants are extracted rpSBMl files. Promoters and RBSs are randomly
-chosen from a default list. CDSs, in other words gene variants, of enzymes are
-randomly chosen from amongst the UniProt IDs extracted. Constructs generated
-can be stored as (i) a CSV file ready to be used by DNA-Bot, (ii) as SBOL
-files.
-
-Input
------
-
-Required:
-
-* **rpsbml_file**\ : (string) rpSBML file from which enzymes UniProt IDs will be collected.
-
-Advanced options:
-
-* **parts_files**\ : (string) List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: [data/biolegio_parts.csv, user_parts.csv]
-* **lms_id**\ : (string) part ID to be used as the LMS methylated linker. Default: LMS.
-* **lmp_id**\ : (string) part ID to be used as the LMP methylated linker. Default: LMP.
-* **backbone_id**\ : (string) part ID to be used as the backbone. Default: BASIC_SEVA_37_CmR-p15A.1.
-* **sample_size**\ : (int) Number of construct to generate.Default: 3.
-* **cds_permutation**\ : (boolean) Whether all combinations of CDS permutation should be built Default: true.
-
-Output
-------
-
-* **o_dnabot_dir**\ : (string) Output folder to write construct and plate files. It will be created if it does not exist yet. Existing files will be overwritten. Default: out/dnabot_in.
-* **o_sbol_dir**\ : (string) Output folder to write SBOL depictions of constructs. It will be created if it does not exist yet. Existing files will be overwritten. Default: out/sbol_export.
-
-Project Links
-------------------
-
-* `GitHub <https://github.com/brsynth/rpbasicdesign>`_
-
-License
--------
-
-* `MIT <https://github.com/brsynth/rpbasicdesign/blob/master/LICENSE.txt>`_
-
-    ]]></help>
-    <citations>
-        <citation type="bibtex">
-      @article{10.1093/synbio/ysaa010,
-          author = {Storch, Marko and Haines, Matthew C and Baldwin, Geoff S},
-          title = {DNA-BOT: a low-cost, automated DNA assembly platform for synthetic biology},
-          journal = {Synthetic Biology},
-          volume = {5},
-          number = {1},
-          year = {2020},
-          month = {07},
-          issn = {2397-7000},
-          doi = {10.1093/synbio/ysaa010},
-          url = {https://doi.org/10.1093/synbio/ysaa010},
-          note = {ysaa010},
-          eprint = {https://academic.oup.com/synbio/article-pdf/5/1/ysaa010/33722340/ysaa010.pdf},
-      }
-        </citation>
-    </citations>
-</tool>
\ No newline at end of file
--- a/rpbasicdesign/test-data/BASIC_construct_A1.xml	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMS</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23119_BASIC/1">
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23119_BASIC"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:displayId>PJ23119_BASIC</sbol:displayId>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23119_BASIC/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:displayId>U1_RBS1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">
-    <sbol:displayId>U2_RBS1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
-    <sbol:version>1</sbol:version>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/1">
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1">
-        <sbol:displayId>U3_RBS2_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_5/1">
-        <sbol:version>1</sbol:version>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1"/>
-        <sbol:displayId>constraint_5</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_5"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_7/1">
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1"/>
-        <sbol:displayId>constraint_7</sbol:displayId>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_7"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:version>1</sbol:version>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS1/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>U1_RBS1_0</sbol:displayId>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1">
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0"/>
-        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21684_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
-        <sbol:displayId>LMS_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>LMP_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
-        <sbol:displayId>P21683_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1"/>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_8/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_8"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>constraint_8</sbol:displayId>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_2/1">
-        <sbol:displayId>constraint_2</sbol:displayId>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_2"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
-    <sbol:displayId>BASIC_construct_A1</sbol:displayId>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_0/1">
-        <sbol:displayId>constraint_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_0"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_6/1">
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_6</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_6"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1">
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23119_BASIC/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>PJ23119_BASIC_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1">
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS1/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>U2_RBS1_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_3/1">
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_3"/>
-        <sbol:displayId>constraint_3</sbol:displayId>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21685_0</sbol:displayId>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_1/1">
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1"/>
-        <sbol:displayId>constraint_1</sbol:displayId>
-        <sbol:version>1</sbol:version>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_4/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_4"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1"/>
-        <sbol:displayId>constraint_4</sbol:displayId>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-  </sbol:ComponentDefinition>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
-    <sbol:displayId>LMS</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements></sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23119_BASIC/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23119_BASIC"/>
-    <sbol:elements></sbol:elements>
-    <sbol:displayId>PJ23119_BASIC</sbol:displayId>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">
-    <sbol:elements></sbol:elements>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:displayId>U1_RBS1</sbol:displayId>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">
-    <sbol:displayId>U2_RBS1</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements></sbol:elements>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-  </sbol:Sequence>
-</rdf:RDF>
--- a/rpbasicdesign/test-data/BASIC_construct_B1.xml	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMS</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS3/1">
-    <sbol:displayId>U1_RBS3</sbol:displayId>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:version>1</sbol:version>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS3/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS3"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">
-    <sbol:displayId>U2_RBS1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
-    <sbol:version>1</sbol:version>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/1">
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_1/1">
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-        <sbol:displayId>constraint_1</sbol:displayId>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1">
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21684_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_7/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_7"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>constraint_7</sbol:displayId>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS1/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>U2_RBS1_0</sbol:displayId>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1">
-        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_3/1">
-        <sbol:displayId>constraint_3</sbol:displayId>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_3"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_6/1">
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_6</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_6"/>
-        <sbol:version>1</sbol:version>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1">
-        <sbol:displayId>U3_RBS2_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_4/1">
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_4</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_4"/>
-        <sbol:version>1</sbol:version>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS3/1"/>
-        <sbol:displayId>U1_RBS3_0</sbol:displayId>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1"/>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_5/1">
-        <sbol:displayId>constraint_5</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_5"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>LMP_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0/1">
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:version>1</sbol:version>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
-        <sbol:displayId>LMS_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:displayId>BASIC_construct_B1</sbol:displayId>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0/1">
-        <sbol:displayId>P21685_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0"/>
-        <sbol:version>1</sbol:version>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1">
-        <sbol:version>1</sbol:version>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0"/>
-        <sbol:displayId>PJ23101_BASIC_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_8/1">
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>constraint_8</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_8"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1">
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21683_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
-        <sbol:version>1</sbol:version>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-        <sbol:displayId>constraint_0</sbol:displayId>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:version>1</sbol:version>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_2/1">
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_2</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_2"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-  </sbol:ComponentDefinition>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
-    <sbol:displayId>LMS</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements></sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>
-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
-    <sbol:elements></sbol:elements>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS3/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS3"/>
-    <sbol:elements></sbol:elements>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>U1_RBS3</sbol:displayId>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">
-    <sbol:displayId>U2_RBS1</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements></sbol:elements>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-  </sbol:Sequence>
-</rdf:RDF>
--- a/rpbasicdesign/test-data/BASIC_construct_C1.xml	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMS</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:displayId>U1_RBS1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
-    <sbol:version>1</sbol:version>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
-    <sbol:version>1</sbol:version>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS2/1">
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
-    <sbol:displayId>U2_RBS2</sbol:displayId>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS2/1"/>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS2"/>
-    <sbol:version>1</sbol:version>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
-  </sbol:ComponentDefinition>
-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1"/>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1">
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21685_0</sbol:displayId>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1">
-        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:displayId>P21684_0</sbol:displayId>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:version>1</sbol:version>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_6/1">
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_6</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_6"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_4/1">
-        <sbol:displayId>constraint_4</sbol:displayId>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_4"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>LMP_0</sbol:displayId>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0/1">
-        <sbol:displayId>P21683_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1">
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS2/1"/>
-        <sbol:displayId>U2_RBS2_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_5/1">
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_5"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:displayId>constraint_5</sbol:displayId>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_8/1">
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_8</sbol:displayId>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_8"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_2/1">
-        <sbol:displayId>constraint_2</sbol:displayId>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_2"/>
-        <sbol:version>1</sbol:version>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_3/1">
-        <sbol:version>1</sbol:version>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_3"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1"/>
-        <sbol:displayId>constraint_3</sbol:displayId>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0/1">
-        <sbol:displayId>LMS_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1">
-        <sbol:displayId>U1_RBS1_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS1/1"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_1/1">
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1"/>
-        <sbol:displayId>constraint_1</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1">
-        <sbol:displayId>U3_RBS2_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0"/>
-      </sbol:Component>
-    </sbol:component>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_7/1">
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_7"/>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1"/>
-        <sbol:displayId>constraint_7</sbol:displayId>
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:version>1</sbol:version>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:displayId>BASIC_construct_C1</sbol:displayId>
-    <sbol:sequenceConstraint>
-      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_0/1">
-        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0/1"/>
-        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
-        <sbol:displayId>constraint_0</sbol:displayId>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_0"/>
-        <sbol:version>1</sbol:version>
-        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
-      </sbol:SequenceConstraint>
-    </sbol:sequenceConstraint>
-    <sbol:component>
-      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1">
-        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
-        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC/1"/>
-        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0"/>
-        <sbol:displayId>PJ23101_BASIC_0</sbol:displayId>
-        <sbol:version>1</sbol:version>
-      </sbol:Component>
-    </sbol:component>
-  </sbol:ComponentDefinition>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
-    <sbol:displayId>LMS</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements></sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>LMP</sbol:displayId>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>
-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
-    <sbol:elements></sbol:elements>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">
-    <sbol:elements></sbol:elements>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:displayId>U1_RBS1</sbol:displayId>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
-    <sbol:displayId>P21684</sbol:displayId>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
-    <sbol:displayId>U3_RBS2</sbol:displayId>
-    <sbol:elements></sbol:elements>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-    <sbol:displayId>P21685</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS2/1">
-    <sbol:displayId>U2_RBS2</sbol:displayId>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:version>1</sbol:version>
-    <sbol:elements></sbol:elements>
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS2"/>
-  </sbol:Sequence>
-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
-    <sbol:displayId>P21683</sbol:displayId>
-    <sbol:elements>atgc</sbol:elements>
-    <sbol:version>1</sbol:version>
-  </sbol:Sequence>
-</rdf:RDF>
--- a/rpbasicdesign/test-data/biolegio_plate.csv	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-Part/linker,Well,Part concentration (ng/uL)
-L1-S,A1,
-L1-P,B1,
-L2-S,A2,
-L2-P,B2,
-L3-S,A3,
-L3-P,B3,
-L4-S,A4,
-L4-P,B4,
-L5-S,A5,
-L5-P,B5,
-L6-S,A6,
-L6-P,B6,
-LMP-S,A7,
-LMP-P,B7,
-LMS-S,A8,
-LMS-P,B8,
-U1-S,C1,
-U2-S,C2,
-U3-S,C3,
-U1-RBS1-P,C4,
-U1-RBS2-P,C5,
-U1-RBS3-P,C6,
-U1-A01-P,D1,
-U1-A02-P,D2,
-U1-A03-P,D3,
-U1-A04-P,D4,
-U1-A05-P,D5,
-U1-A06-P,D6,
-U1-A07-P,D7,
-U1-A08-P,D8,
-U1-A09-P,D9,
-U1-A10-P,D10,
-U1-A11-P,D11
-U1-A12-P,D12,
-U2-RBS1-P,C7,
-U2-RBS2-P,C8,
-U2-RBS3-P,C9,
-U2-A01-P,E1,
-U2-A02-P,E2,
-U2-A03-P,E3,
-U2-A04-P,E4,
-U2-A05-P,E5,
-U2-A06-P,E6,
-U2-A07-P,E7,
-U2-A08-P,E8,
-U2-A09-P,E9,
-U2-A10-P,E10,
-U2-A11-P,E11
-U2-A12-P,E12,
-U3-RBS1-P,C10,
-U3-RBS2-P,C11,
-U3-RBS3-P,C12,
-U3-A01-P,F1,
-U3-A02-P,F2,
-U3-A03-P,F3,
-U3-A04-P,F4,
-U3-A05-P,F5,
-U3-A06-P,F6,
-U3-A07-P,F7,
-U3-A08-P,F8,
-U3-A09-P,F9,
-U3-A10-P,F10,
-U3-A11-P,F11
-U3-A12-P,F12,
-U1-AM12-P,A10,
-U1-AM24-P,B10,
-U2-AM12-P,A11,
-U2-AM24-P,B11,
-U3-AM12-P,A12,
-U3-AM24-P,B12,
-LF1-S,A9,
-LF1-P,B9,
-LF2-S,G1,
-LF2-P,H1,
-LF3-S,G2,
-LF3-P,H2,
-LF4-S,G3,
-LF4-P,H3,
-LF5-S,G4,
-LF5-P,H4,
-LF6-S,G5,
-LF6-P,H5,
\ No newline at end of file
--- a/rpbasicdesign/test-data/constructs.csv	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-Well,Linker 1,Part 1,Linker 2,Part 2,Linker 3,Part 3,Linker 4,Part 4,Linker 5,Part 5,Linker 6,Part 6,Linker 7,Part 7,Linker 8,Part 8,Linker 9,Part 9,Linker 10,Part 10
-A1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS1,P21684,U2-RBS1,P21683,U3-RBS2,P21685,,,,,,,,,,
-B1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS3,P21684,U2-RBS1,P21683,U3-RBS2,P21685,,,,,,,,,,
-C1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS1,P21684,U3-RBS2,P21685,U2-RBS2,P21683,,,,,,,,,,
--- a/rpbasicdesign/test-data/lycopene_CrtEBI_from_selenzy.xml	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
-  <model metaid="a03e1bf0f20b54a66f7b4ce262ea6b0f7579c0a1e47144a649b9e2e711f6b3ed" id="RP_model_001_0001" name="001_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">
-    <listOfCompartments>
-      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">
-              <bqbiol:is>
-                <rdf:Bag>
-                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>
-                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>
-                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>
-                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>
-                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>
-                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>
-                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>
-                </rdf:Bag>
-              </bqbiol:is>
-            </rdf:Description>
-          </rdf:RDF>
-        </annotation>
-      </compartment>
-    </listOfCompartments>
-    <listOfSpecies>
-      <species metaid="b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46" id="CMPD_0000000001" name="CMPD_0000000001" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles value="[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]"/>
-                <brsynth:inchi value="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"/>
-                <brsynth:inchikey value="YVLPJIGOMTXXLP-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc" id="MNXM132" name="MNXM132" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <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])[H]"/>
-                <brsynth:inchi value="InChI=1S/C5H12O7P2/c1-5(2)3-4-11-14(9,10)12-13(6,7)8/h3H,4H2,1-2H3,(H,9,10)(H2,6,7,8)"/>
-                <brsynth:inchikey value="CBIDRCWHNCKSTO-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1" id="MNXM11" name="MNXM11" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles value="O=P(O)(O)OP(=O)(O)O"/>
-                <brsynth:inchi value="InChI=1S/H4O7P2/c1-8(2,3)7-9(4,5)6/h(H2,1,2,3)(H2,4,5,6)"/>
-                <brsynth:inchikey value="XPPKVPWEQAFLFU-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4" id="MNXM8975" name="MNXM8975" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles/>
-                <brsynth:inchi/>
-                <brsynth:inchikey/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <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]"/>
-                <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)"/>
-                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002" id="TARGET_0000000001" name="TARGET_0000000001" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles value="[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]"/>
-                <brsynth:inchi value="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"/>
-                <brsynth:inchikey value="OAIJSZIZWZSQBC-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0" id="MNXM83" name="MNXM83" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]"/>
-                <brsynth:inchi value="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)"/>
-                <brsynth:inchikey value="NUHSROFQTUXZQQ-UHFFFAOYSA-N"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-      <species metaid="_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39" id="MNXM24" name="MNXM24" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39">
-              <bqbiol:is>
-                <rdf:Bag/>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles/>
-                <brsynth:inchi/>
-                <brsynth:inchikey/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-      </species>
-    </listOfSpecies>
-    <listOfParameters>
-      <parameter metaid="dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91" sboTerm="SBO:0000625" id="BRS_FBC_999999_0" value="999999" constant="true"/>
-      <parameter metaid="dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91" sboTerm="SBO:0000625" id="BRS_FBC_0_0" value="0" constant="true"/>
-    </listOfParameters>
-    <listOfReactions>
-      <reaction metaid="_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4" sboTerm="SBO:0000176" id="rxn_1" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4">
-              <bqbiol:is>
-                <rdf:Bag>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21684"/>
-                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.29"/>
-                </rdf:Bag>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <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])[H].[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]&gt;&gt;[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].O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O"/>
-                <brsynth:rp2_transfo_id value="TRS_0_2_363"/>
-                <brsynth:rule_ids>
-                  <brsynth:RR-02-90bcfd187709eb1b-16-F/>
-                </brsynth:rule_ids>
-                <brsynth:tmpl_rxn_ids>
-                  <brsynth:MNXR132232/>
-                </brsynth:tmpl_rxn_ids>
-                <brsynth:rule_score value="0.5869134225065102"/>
-                <brsynth:idx_in_path value="1"/>
-                <brsynth:selenzy_P21684>
-                  <brsynth:score value="85.958"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21684>
-                <brsynth:selenzy_P21683>
-                  <brsynth:score value="48.927"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21683>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <listOfReactants>
-          <speciesReference species="MNXM132" stoichiometry="1" constant="true"/>
-          <speciesReference species="MNXM83" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="CMPD_0000000003" stoichiometry="1" constant="true"/>
-          <speciesReference species="MNXM11" stoichiometry="3" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction metaid="c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff" sboTerm="SBO:0000176" id="rxn_2" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff">
-              <bqbiol:is>
-                <rdf:Bag>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21684"/>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
-                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.32"/>
-                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.99"/>
-                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.96"/>
-                </rdf:Bag>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <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]&gt;&gt;[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].O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O"/>
-                <brsynth:rp2_transfo_id value="TRS_0_1_9"/>
-                <brsynth:rule_ids>
-                  <brsynth:RR-02-b25156a335e3e30f-16-F/>
-                </brsynth:rule_ids>
-                <brsynth:tmpl_rxn_ids>
-                  <brsynth:MNXR111250/>
-                  <brsynth:MNXR111499/>
-                  <brsynth:MNXR113543/>
-                  <brsynth:MNXR118024/>
-                  <brsynth:MNXR139549/>
-                </brsynth:tmpl_rxn_ids>
-                <brsynth:rule_score value="0.5683242688496836"/>
-                <brsynth:idx_in_path value="2"/>
-                <brsynth:selenzy_P21683>
-                  <brsynth:score value="91.9"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21683>
-                <brsynth:selenzy_P21684>
-                  <brsynth:score value="74.885"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21684>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <listOfReactants>
-          <speciesReference species="CMPD_0000000003" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="CMPD_0000000001" stoichiometry="1" constant="true"/>
-          <speciesReference species="MNXM11" stoichiometry="2" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction metaid="_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d" sboTerm="SBO:0000176" id="rxn_3" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:Description rdf:about="#_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d">
-              <bqbiol:is>
-                <rdf:Bag>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
-                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21685"/>
-                  <rdf:li rdf:resource="http://identifiers.org/ec-code/1.3.99.31"/>
-                </rdf:Bag>
-              </bqbiol:is>
-            </rdf:Description>
-            <rdf:BRSynth rdf:about="#_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:smiles value="[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]&gt;&gt;[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]"/>
-                <brsynth:rp2_transfo_id value="TRS_0_0_1"/>
-                <brsynth:rule_ids>
-                  <brsynth:RR-02-bdf7d8715e2e4d93-16-F/>
-                </brsynth:rule_ids>
-                <brsynth:tmpl_rxn_ids>
-                  <brsynth:MNXR113128/>
-                </brsynth:tmpl_rxn_ids>
-                <brsynth:rule_score value="0.7486085128675456"/>
-                <brsynth:idx_in_path value="3"/>
-                <brsynth:selenzy_P21685>
-                  <brsynth:score value="81.82"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21685>
-                <brsynth:selenzy_P21683>
-                  <brsynth:score value="63.183"/>
-                  <brsynth:target_ID value="553"/>
-                </brsynth:selenzy_P21683>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <listOfReactants>
-          <speciesReference species="CMPD_0000000001" stoichiometry="1" constant="true"/>
-          <speciesReference species="MNXM8975" stoichiometry="4" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="MNXM24" stoichiometry="4" constant="true"/>
-          <speciesReference species="TARGET_0000000001" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-    </listOfReactions>
-    <groups:listOfGroups>
-      <groups:group metaid="_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299" groups:id="rp_pathway" groups:kind="collection">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
-                <brsynth:global_score value="-1"/>
-              </brsynth:brsynth>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <groups:listOfMembers>
-          <groups:member groups:idRef="rxn_1"/>
-          <groups:member groups:idRef="rxn_2"/>
-          <groups:member groups:idRef="rxn_3"/>
-        </groups:listOfMembers>
-      </groups:group>
-      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <groups:listOfMembers>
-          <groups:member groups:idRef="CMPD_0000000003"/>
-          <groups:member groups:idRef="CMPD_0000000001"/>
-        </groups:listOfMembers>
-      </groups:group>
-      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <groups:listOfMembers>
-          <groups:member groups:idRef="CMPD_0000000001"/>
-          <groups:member groups:idRef="MNXM132"/>
-          <groups:member groups:idRef="CMPD_0000000003"/>
-          <groups:member groups:idRef="TARGET_0000000001"/>
-          <groups:member groups:idRef="MNXM83"/>
-        </groups:listOfMembers>
-      </groups:group>
-      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <groups:listOfMembers>
-          <groups:member groups:idRef="MNXM8975"/>
-          <groups:member groups:idRef="MNXM24"/>
-          <groups:member groups:idRef="MNXM11"/>
-        </groups:listOfMembers>
-      </groups:group>
-      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">
-        <annotation>
-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
-            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">
-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
-            </rdf:BRSynth>
-          </rdf:RDF>
-        </annotation>
-        <groups:listOfMembers>
-          <groups:member groups:idRef="MNXM83"/>
-          <groups:member groups:idRef="MNXM132"/>
-          <groups:member groups:idRef="MNXM11"/>
-        </groups:listOfMembers>
-      </groups:group>
-    </groups:listOfGroups>
-  </model>
-</sbml>
--- a/rpbasicdesign/test-data/user_parts_plate.csv	Thu Nov 18 13:17:02 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-Part/linker,Well,Part concentration (ng/uL)
-BASIC_SEVA_37_CmR-p15A.1,A1,
-P21683,B1,
-P21684,C1,
-P21685,D1,
-PJ23101_BASIC,E1,
-PJ23119_BASIC,F1,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/BASIC_construct_A1.xml	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,339 @@
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMS</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23119_BASIC/1">
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23119_BASIC"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:displayId>PJ23119_BASIC</sbol:displayId>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23119_BASIC/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:displayId>U1_RBS1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">
+    <sbol:displayId>U2_RBS1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
+    <sbol:version>1</sbol:version>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/1">
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1">
+        <sbol:displayId>U3_RBS2_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_5/1">
+        <sbol:version>1</sbol:version>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1"/>
+        <sbol:displayId>constraint_5</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_5"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_7/1">
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1"/>
+        <sbol:displayId>constraint_7</sbol:displayId>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_7"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:version>1</sbol:version>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS1/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>U1_RBS1_0</sbol:displayId>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1">
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0"/>
+        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21684_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
+        <sbol:displayId>LMS_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>LMP_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
+        <sbol:displayId>P21683_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1"/>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_8/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_8"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U3_RBS2_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>constraint_8</sbol:displayId>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_2/1">
+        <sbol:displayId>constraint_2</sbol:displayId>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_2"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
+    <sbol:displayId>BASIC_construct_A1</sbol:displayId>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_0/1">
+        <sbol:displayId>constraint_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMS_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_0"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_6/1">
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_6</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_6"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21683_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1">
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23119_BASIC/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>PJ23119_BASIC_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0/1">
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS1/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U2_RBS1_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>U2_RBS1_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_3/1">
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/PJ23119_BASIC_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_3"/>
+        <sbol:displayId>constraint_3</sbol:displayId>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21685_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21685_0</sbol:displayId>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_1/1">
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/LMP_0/1"/>
+        <sbol:displayId>constraint_1</sbol:displayId>
+        <sbol:version>1</sbol:version>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_4/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/constraint_4"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/U1_RBS1_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_A1/P21684_0/1"/>
+        <sbol:displayId>constraint_4</sbol:displayId>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+  </sbol:ComponentDefinition>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
+    <sbol:displayId>LMS</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements></sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23119_BASIC/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23119_BASIC"/>
+    <sbol:elements></sbol:elements>
+    <sbol:displayId>PJ23119_BASIC</sbol:displayId>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">
+    <sbol:elements></sbol:elements>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:displayId>U1_RBS1</sbol:displayId>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">
+    <sbol:displayId>U2_RBS1</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements></sbol:elements>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+  </sbol:Sequence>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/BASIC_construct_B1.xml	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,339 @@
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMS</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS3/1">
+    <sbol:displayId>U1_RBS3</sbol:displayId>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:version>1</sbol:version>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS3/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS3"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">
+    <sbol:displayId>U2_RBS1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
+    <sbol:version>1</sbol:version>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/1">
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_1/1">
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+        <sbol:displayId>constraint_1</sbol:displayId>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1">
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21684_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_7/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_7"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>constraint_7</sbol:displayId>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS1/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>U2_RBS1_0</sbol:displayId>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1">
+        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_3/1">
+        <sbol:displayId>constraint_3</sbol:displayId>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_3"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_6/1">
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_6</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_6"/>
+        <sbol:version>1</sbol:version>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1">
+        <sbol:displayId>U3_RBS2_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_4/1">
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_4</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_4"/>
+        <sbol:version>1</sbol:version>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U1_RBS3_0"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS3/1"/>
+        <sbol:displayId>U1_RBS3_0</sbol:displayId>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1"/>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_5/1">
+        <sbol:displayId>constraint_5</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U2_RBS1_0/1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21684_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_5"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>LMP_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0/1">
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:version>1</sbol:version>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
+        <sbol:displayId>LMS_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:displayId>BASIC_construct_B1</sbol:displayId>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0/1">
+        <sbol:displayId>P21685_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0"/>
+        <sbol:version>1</sbol:version>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1">
+        <sbol:version>1</sbol:version>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0"/>
+        <sbol:displayId>PJ23101_BASIC_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_8/1">
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/U3_RBS2_0/1"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21685_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>constraint_8</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_8"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0/1">
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21683_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/P21683_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
+        <sbol:version>1</sbol:version>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+        <sbol:displayId>constraint_0</sbol:displayId>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMS_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:version>1</sbol:version>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_2/1">
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/PJ23101_BASIC_0/1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/LMP_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_2</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_2"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+  </sbol:ComponentDefinition>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
+    <sbol:displayId>LMS</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements></sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>
+    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
+    <sbol:elements></sbol:elements>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS3/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS3"/>
+    <sbol:elements></sbol:elements>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>U1_RBS3</sbol:displayId>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">
+    <sbol:displayId>U2_RBS1</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements></sbol:elements>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+  </sbol:Sequence>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/BASIC_construct_C1.xml	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,339 @@
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:sbol="http://sbols.org/v2#">
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMS</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:displayId>U1_RBS1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>
+    <sbol:version>1</sbol:version>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>
+    <sbol:version>1</sbol:version>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21685/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21685"/>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21685/1"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS2/1">
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>
+    <sbol:displayId>U2_RBS2</sbol:displayId>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS2/1"/>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS2"/>
+    <sbol:version>1</sbol:version>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21683/1">
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21683"/>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:sequence rdf:resource="https://localhost/Sequence/P21683/1"/>
+    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>
+  </sbol:ComponentDefinition>
+  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1"/>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1">
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21685/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21685_0</sbol:displayId>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1">
+        <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21684/1"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:displayId>P21684_0</sbol:displayId>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:version>1</sbol:version>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_6/1">
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_6</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_6"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_4/1">
+        <sbol:displayId>constraint_4</sbol:displayId>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_4"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>LMP_0</sbol:displayId>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMP/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:type rdf:resource="http://identifiers.org/so/SO:0000987"/>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0/1">
+        <sbol:displayId>P21683_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/P21683/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1">
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U2_RBS2/1"/>
+        <sbol:displayId>U2_RBS2_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_5/1">
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_5"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21684_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:displayId>constraint_5</sbol:displayId>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_8/1">
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_8</sbol:displayId>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21683_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_8"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_2/1">
+        <sbol:displayId>constraint_2</sbol:displayId>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_2"/>
+        <sbol:version>1</sbol:version>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_3/1">
+        <sbol:version>1</sbol:version>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_3"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1"/>
+        <sbol:displayId>constraint_3</sbol:displayId>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0/1">
+        <sbol:displayId>LMS_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/LMS/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0/1">
+        <sbol:displayId>U1_RBS1_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U1_RBS1_0"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U1_RBS1/1"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_1/1">
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMP_0/1"/>
+        <sbol:displayId>constraint_1</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0/1">
+        <sbol:displayId>U3_RBS2_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/U3_RBS2/1"/>
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U3_RBS2_0"/>
+      </sbol:Component>
+    </sbol:component>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_7/1">
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_7"/>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/U2_RBS2_0/1"/>
+        <sbol:displayId>constraint_7</sbol:displayId>
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/P21685_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:version>1</sbol:version>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:displayId>BASIC_construct_C1</sbol:displayId>
+    <sbol:sequenceConstraint>
+      <sbol:SequenceConstraint rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_0/1">
+        <sbol:subject rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/LMS_0/1"/>
+        <sbol:restriction rdf:resource="http://sbols.org/v2#precedes"/>
+        <sbol:displayId>constraint_0</sbol:displayId>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/constraint_0"/>
+        <sbol:version>1</sbol:version>
+        <sbol:object rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/BASIC_SEVA_37_CmR_p15A_1_0/1"/>
+      </sbol:SequenceConstraint>
+    </sbol:sequenceConstraint>
+    <sbol:component>
+      <sbol:Component rdf:about="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0/1">
+        <sbol:access rdf:resource="http://sbols.org/v2#public"/>
+        <sbol:definition rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC/1"/>
+        <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_C1/PJ23101_BASIC_0"/>
+        <sbol:displayId>PJ23101_BASIC_0</sbol:displayId>
+        <sbol:version>1</sbol:version>
+      </sbol:Component>
+    </sbol:component>
+  </sbol:ComponentDefinition>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>
+    <sbol:displayId>LMS</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">
+    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements></sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>LMP</sbol:displayId>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>
+    <sbol:displayId>PJ23101_BASIC</sbol:displayId>
+    <sbol:elements></sbol:elements>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">
+    <sbol:elements></sbol:elements>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:displayId>U1_RBS1</sbol:displayId>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>
+    <sbol:displayId>P21684</sbol:displayId>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>
+    <sbol:displayId>U3_RBS2</sbol:displayId>
+    <sbol:elements></sbol:elements>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+    <sbol:displayId>P21685</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS2/1">
+    <sbol:displayId>U2_RBS2</sbol:displayId>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:version>1</sbol:version>
+    <sbol:elements></sbol:elements>
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS2"/>
+  </sbol:Sequence>
+  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">
+    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>
+    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>
+    <sbol:displayId>P21683</sbol:displayId>
+    <sbol:elements>atgc</sbol:elements>
+    <sbol:version>1</sbol:version>
+  </sbol:Sequence>
+</rdf:RDF>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/biolegio_plate.csv	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,83 @@
+Part/linker,Well,Part concentration (ng/uL)
+L1-S,A1,
+L1-P,B1,
+L2-S,A2,
+L2-P,B2,
+L3-S,A3,
+L3-P,B3,
+L4-S,A4,
+L4-P,B4,
+L5-S,A5,
+L5-P,B5,
+L6-S,A6,
+L6-P,B6,
+LMP-S,A7,
+LMP-P,B7,
+LMS-S,A8,
+LMS-P,B8,
+U1-S,C1,
+U2-S,C2,
+U3-S,C3,
+U1-RBS1-P,C4,
+U1-RBS2-P,C5,
+U1-RBS3-P,C6,
+U1-A01-P,D1,
+U1-A02-P,D2,
+U1-A03-P,D3,
+U1-A04-P,D4,
+U1-A05-P,D5,
+U1-A06-P,D6,
+U1-A07-P,D7,
+U1-A08-P,D8,
+U1-A09-P,D9,
+U1-A10-P,D10,
+U1-A11-P,D11
+U1-A12-P,D12,
+U2-RBS1-P,C7,
+U2-RBS2-P,C8,
+U2-RBS3-P,C9,
+U2-A01-P,E1,
+U2-A02-P,E2,
+U2-A03-P,E3,
+U2-A04-P,E4,
+U2-A05-P,E5,
+U2-A06-P,E6,
+U2-A07-P,E7,
+U2-A08-P,E8,
+U2-A09-P,E9,
+U2-A10-P,E10,
+U2-A11-P,E11
+U2-A12-P,E12,
+U3-RBS1-P,C10,
+U3-RBS2-P,C11,
+U3-RBS3-P,C12,
+U3-A01-P,F1,
+U3-A02-P,F2,
+U3-A03-P,F3,
+U3-A04-P,F4,
+U3-A05-P,F5,
+U3-A06-P,F6,
+U3-A07-P,F7,
+U3-A08-P,F8,
+U3-A09-P,F9,
+U3-A10-P,F10,
+U3-A11-P,F11
+U3-A12-P,F12,
+U1-AM12-P,A10,
+U1-AM24-P,B10,
+U2-AM12-P,A11,
+U2-AM24-P,B11,
+U3-AM12-P,A12,
+U3-AM24-P,B12,
+LF1-S,A9,
+LF1-P,B9,
+LF2-S,G1,
+LF2-P,H1,
+LF3-S,G2,
+LF3-P,H2,
+LF4-S,G3,
+LF4-P,H3,
+LF5-S,G4,
+LF5-P,H4,
+LF6-S,G5,
+LF6-P,H5,
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/constructs.csv	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,4 @@
+Well,Linker 1,Part 1,Linker 2,Part 2,Linker 3,Part 3,Linker 4,Part 4,Linker 5,Part 5,Linker 6,Part 6,Linker 7,Part 7,Linker 8,Part 8,Linker 9,Part 9,Linker 10,Part 10
+A1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS1,P21684,U2-RBS1,P21683,U3-RBS2,P21685,,,,,,,,,,
+B1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS3,P21684,U2-RBS1,P21683,U3-RBS2,P21685,,,,,,,,,,
+C1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS1,P21684,U3-RBS2,P21685,U2-RBS2,P21683,,,,,,,,,,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/lycopene_CrtEBI_from_selenzy.xml	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+  <model metaid="a03e1bf0f20b54a66f7b4ce262ea6b0f7579c0a1e47144a649b9e2e711f6b3ed" id="RP_model_001_0001" name="001_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">
+    <listOfCompartments>
+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">
+              <bqbiol:is>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>
+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>
+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>
+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>
+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>
+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>
+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>
+                </rdf:Bag>
+              </bqbiol:is>
+            </rdf:Description>
+          </rdf:RDF>
+        </annotation>
+      </compartment>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species metaid="b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46" id="CMPD_0000000001" name="CMPD_0000000001" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles value="[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]"/>
+                <brsynth:inchi value="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"/>
+                <brsynth:inchikey value="YVLPJIGOMTXXLP-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc" id="MNXM132" name="MNXM132" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <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])[H]"/>
+                <brsynth:inchi value="InChI=1S/C5H12O7P2/c1-5(2)3-4-11-14(9,10)12-13(6,7)8/h3H,4H2,1-2H3,(H,9,10)(H2,6,7,8)"/>
+                <brsynth:inchikey value="CBIDRCWHNCKSTO-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1" id="MNXM11" name="MNXM11" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#a6e267be12defb7184259624f5adc519108c6c6adfe6be13f64b649567cb6df1">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles value="O=P(O)(O)OP(=O)(O)O"/>
+                <brsynth:inchi value="InChI=1S/H4O7P2/c1-8(2,3)7-9(4,5)6/h(H2,1,2,3)(H2,4,5,6)"/>
+                <brsynth:inchikey value="XPPKVPWEQAFLFU-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4" id="MNXM8975" name="MNXM8975" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_2f4b2d21d00b43a266620e821de533b08c3e42ff09ca008f915ca4400eb7d8c4">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles/>
+                <brsynth:inchi/>
+                <brsynth:inchikey/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <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]"/>
+                <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)"/>
+                <brsynth:inchikey value="OINNEUNVOZHBOX-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002" id="TARGET_0000000001" name="TARGET_0000000001" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_6817bb5f7133f50744b232330f1f3009343f785b8f77602ce5f44cdd9458f002">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles value="[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]"/>
+                <brsynth:inchi value="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"/>
+                <brsynth:inchikey value="OAIJSZIZWZSQBC-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0" id="MNXM83" name="MNXM83" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_47d72a86d31940edf1cc42c7a7361a7a96211dc2a6679326b8ad27a7e216ada0">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles value="[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]"/>
+                <brsynth:inchi value="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)"/>
+                <brsynth:inchikey value="NUHSROFQTUXZQQ-UHFFFAOYSA-N"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+      <species metaid="_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39" id="MNXM24" name="MNXM24" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39">
+              <bqbiol:is>
+                <rdf:Bag/>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_61841f05183ff06dbe77a0e01f6d73d7a890997d823ac18d9fd56bac3d4bcc39">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles/>
+                <brsynth:inchi/>
+                <brsynth:inchikey/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+      </species>
+    </listOfSpecies>
+    <listOfParameters>
+      <parameter metaid="dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91" sboTerm="SBO:0000625" id="BRS_FBC_999999_0" value="999999" constant="true"/>
+      <parameter metaid="dc937b59892604f5a86ac96936cd7ff09e25f18ae6b758e8014a24c7fa039e91" sboTerm="SBO:0000625" id="BRS_FBC_0_0" value="0" constant="true"/>
+    </listOfParameters>
+    <listOfReactions>
+      <reaction metaid="_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4" sboTerm="SBO:0000176" id="rxn_1" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4">
+              <bqbiol:is>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21684"/>
+                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.29"/>
+                </rdf:Bag>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_7af1776cbbaecbf874d7f576d21891f6ad79e3b7c2e726cfd2ee9f5bd6f483c4">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <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])[H].[H]OP(=O)(O[H])OP(=O)(O[H])OC([H])([H])C([H])([H])C(=C([H])[H])C([H])([H])[H]&gt;&gt;[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].O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O"/>
+                <brsynth:rp2_transfo_id value="TRS_0_2_363"/>
+                <brsynth:rule_ids>
+                  <brsynth:RR-02-90bcfd187709eb1b-16-F/>
+                </brsynth:rule_ids>
+                <brsynth:tmpl_rxn_ids>
+                  <brsynth:MNXR132232/>
+                </brsynth:tmpl_rxn_ids>
+                <brsynth:rule_score value="0.5869134225065102"/>
+                <brsynth:idx_in_path value="1"/>
+                <brsynth:selenzy_P21684>
+                  <brsynth:score value="85.958"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21684>
+                <brsynth:selenzy_P21683>
+                  <brsynth:score value="48.927"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21683>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="MNXM132" stoichiometry="1" constant="true"/>
+          <speciesReference species="MNXM83" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="CMPD_0000000003" stoichiometry="1" constant="true"/>
+          <speciesReference species="MNXM11" stoichiometry="3" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction metaid="c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff" sboTerm="SBO:0000176" id="rxn_2" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff">
+              <bqbiol:is>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21684"/>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
+                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.32"/>
+                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.99"/>
+                  <rdf:li rdf:resource="http://identifiers.org/ec-code/2.5.1.96"/>
+                </rdf:Bag>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#c9c2d56fd0ad9d5b8cd80acad4b5df22945ab4de50db7b24db52a91a7560c3ff">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <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]&gt;&gt;[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].O=P(O)(O)OP(=O)(O)O.O=P(O)(O)OP(=O)(O)O"/>
+                <brsynth:rp2_transfo_id value="TRS_0_1_9"/>
+                <brsynth:rule_ids>
+                  <brsynth:RR-02-b25156a335e3e30f-16-F/>
+                </brsynth:rule_ids>
+                <brsynth:tmpl_rxn_ids>
+                  <brsynth:MNXR111250/>
+                  <brsynth:MNXR111499/>
+                  <brsynth:MNXR113543/>
+                  <brsynth:MNXR118024/>
+                  <brsynth:MNXR139549/>
+                </brsynth:tmpl_rxn_ids>
+                <brsynth:rule_score value="0.5683242688496836"/>
+                <brsynth:idx_in_path value="2"/>
+                <brsynth:selenzy_P21683>
+                  <brsynth:score value="91.9"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21683>
+                <brsynth:selenzy_P21684>
+                  <brsynth:score value="74.885"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21684>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="CMPD_0000000003" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="CMPD_0000000001" stoichiometry="1" constant="true"/>
+          <speciesReference species="MNXM11" stoichiometry="2" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction metaid="_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d" sboTerm="SBO:0000176" id="rxn_3" reversible="false" fast="false" fbc:lowerFluxBound="BRS_FBC_0_0" fbc:upperFluxBound="BRS_FBC_999999_0">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:Description rdf:about="#_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d">
+              <bqbiol:is>
+                <rdf:Bag>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21683"/>
+                  <rdf:li rdf:resource="http://identifiers.org/uniprot/P21685"/>
+                  <rdf:li rdf:resource="http://identifiers.org/ec-code/1.3.99.31"/>
+                </rdf:Bag>
+              </bqbiol:is>
+            </rdf:Description>
+            <rdf:BRSynth rdf:about="#_376841fa42ba139764a5509b9d817e2e540d0e228582c970025c73ae1ee77c0d">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:smiles value="[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]&gt;&gt;[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]"/>
+                <brsynth:rp2_transfo_id value="TRS_0_0_1"/>
+                <brsynth:rule_ids>
+                  <brsynth:RR-02-bdf7d8715e2e4d93-16-F/>
+                </brsynth:rule_ids>
+                <brsynth:tmpl_rxn_ids>
+                  <brsynth:MNXR113128/>
+                </brsynth:tmpl_rxn_ids>
+                <brsynth:rule_score value="0.7486085128675456"/>
+                <brsynth:idx_in_path value="3"/>
+                <brsynth:selenzy_P21685>
+                  <brsynth:score value="81.82"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21685>
+                <brsynth:selenzy_P21683>
+                  <brsynth:score value="63.183"/>
+                  <brsynth:target_ID value="553"/>
+                </brsynth:selenzy_P21683>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <listOfReactants>
+          <speciesReference species="CMPD_0000000001" stoichiometry="1" constant="true"/>
+          <speciesReference species="MNXM8975" stoichiometry="4" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="MNXM24" stoichiometry="4" constant="true"/>
+          <speciesReference species="TARGET_0000000001" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+    </listOfReactions>
+    <groups:listOfGroups>
+      <groups:group metaid="_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299" groups:id="rp_pathway" groups:kind="collection">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">
+                <brsynth:global_score value="-1"/>
+              </brsynth:brsynth>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <groups:listOfMembers>
+          <groups:member groups:idRef="rxn_1"/>
+          <groups:member groups:idRef="rxn_2"/>
+          <groups:member groups:idRef="rxn_3"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <groups:listOfMembers>
+          <groups:member groups:idRef="CMPD_0000000003"/>
+          <groups:member groups:idRef="CMPD_0000000001"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <groups:listOfMembers>
+          <groups:member groups:idRef="CMPD_0000000001"/>
+          <groups:member groups:idRef="MNXM132"/>
+          <groups:member groups:idRef="CMPD_0000000003"/>
+          <groups:member groups:idRef="TARGET_0000000001"/>
+          <groups:member groups:idRef="MNXM83"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <groups:listOfMembers>
+          <groups:member groups:idRef="MNXM8975"/>
+          <groups:member groups:idRef="MNXM24"/>
+          <groups:member groups:idRef="MNXM11"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">
+        <annotation>
+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">
+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">
+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>
+            </rdf:BRSynth>
+          </rdf:RDF>
+        </annotation>
+        <groups:listOfMembers>
+          <groups:member groups:idRef="MNXM83"/>
+          <groups:member groups:idRef="MNXM132"/>
+          <groups:member groups:idRef="MNXM11"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/user_parts_plate.csv	Wed Dec 15 15:10:43 2021 +0000
@@ -0,0 +1,7 @@
+Part/linker,Well,Part concentration (ng/uL)
+BASIC_SEVA_37_CmR-p15A.1,A1,
+P21683,B1,
+P21684,C1,
+P21685,D1,
+PJ23101_BASIC,E1,
+PJ23119_BASIC,F1,