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

Changeset 2:8a087d7546b8 (2022-03-28)
Previous changeset 1:de9f53630349 (2021-12-15) Next changeset 3:e4821c820f7c (2022-03-30)
Commit message:
"planemo upload commit f40274f6b9f6a15eb4022aab21286d4c96cd8475-dirty"
modified:
rpbasicdesign.xml
added:
test-data/biolegio_plate_lycopene.csv
test-data/biolegio_plate_muconate.csv
test-data/constructs_lycopene.csv
test-data/constructs_muconate.csv
test-data/muconate_example.xml
test-data/user_parts_plate_lycopene.csv
test-data/user_parts_plate_muconate.csv
removed:
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/user_parts_plate.csv
b
diff -r de9f53630349 -r 8a087d7546b8 rpbasicdesign.xml
--- a/rpbasicdesign.xml Wed Dec 15 15:10:43 2021 +0000
+++ b/rpbasicdesign.xml Mon Mar 28 14:16:59 2022 +0000
[
b'@@ -1,7 +1,10 @@\n-<tool id="rpbasicdesign" name="BasicDesign" version="0.3.4">\n+<tool id="rpbasicdesign" name="BasicDesign" version="@TOOL_VERSION@" profile="19.09">\n     <description>Build DNA-BOT input files from rpSBML</description>\n+    <macros>\n+        <token name="@TOOL_VERSION@">1.0.1</token>\n+    </macros>\n     <requirements>\n-        <requirement type="package" version="0.3.4">rpbasicdesign</requirement>\n+        <requirement type="package" version="@TOOL_VERSION@">rpbasicdesign</requirement>\n     </requirements>\n     <command detect_errors="exit_code"><![CDATA[\n         python -m rpbasicdesign.cli\n@@ -14,46 +17,112 @@\n         --lmp_id \'$adv.lmp_id\'\n         --backbone_id \'$backbone_id\'\n         --sample_size \'$sample_size\'\n-        #if str($adv.cds_permutation) == "true"\n-            --cds_permutation true\n-        #else\n-            --cds_permutation false\n-        #end if\n+        $adv.cds_permutation\n         --o_dnabot_dir \'out/dnabot_in\'\n-        --o_sbol_dir \'out/sbol_export\'\n+        $adv.sbol_output\n+        --max_enz_per_rxn $adv.max_enz_per_rxn\n     ]]></command>\n     <inputs>\n-        <param name="rpsbml_file" type="data" format="xml" label="rpSBML file"/>\n-        <param name="backbone_id" type="text" value="BASIC_SEVA_37_CmR-p15A.1" label="Backbone part ID" />\n-        <param name="sample_size" type="integer" value="88" label="Number of constructs to generate" />\n+        <param name="rpsbml_file" type="data" format="xml" label="rpSBML file" help="SBML file from which enzymes UniProt IDs will be collected."/>\n+        <param argument="--backbone_id" type="text" value="BASIC_SEVA_37_CmR-p15A.1" label="Backbone part ID" help="Part ID to be used as the backbone.">\n+            <sanitizer invalid_char="">\n+                <valid initial="string.letters,string.digits">\n+                    <add value=":" />\n+                    <add value="." />\n+                    <add value="-" />\n+                    <add value="_" />\n+                </valid>\n+            </sanitizer>\n+            <validator type="empty_field" message="Backbone ID is required"/>\n+            <validator type="regex">[0-9a-zA-Z_:-]+</validator>\n+        </param>\n+        <param argument="--sample_size" type="integer" value="88" min="1" max="88" label="Number of constructs to generate" help="Number of construct to generate."/>\n         <section name="adv" title="Advanced Options" expanded="false">\n-            <param name="parts_files" type="data" format="csv" optional="true" multiple="true" label="Linkers and user parts" />\n-            <param name="lms_id" type="text" value="LMS" label="LMS part ID" />\n-            <param name="lmp_id" type="text" value="LMP" label="LMP part ID" />\n-            <param name="cds_permutation" type="boolean" label="Perform CDS permutation?" checked="true" />\n+            <param name="parts_files" type="data" format="csv" optional="true" multiple="true" label="Linkers and user parts" help="List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: Standard Biolegio Parts" />\n+            <param argument="--lms_id" type="text" value="LMS" label="LMS part ID" help="Part ID to be used as the LMS methylated linker." >\n+                <sanitizer invalid_char="">\n+                    <valid initial="string.letters,string.digits">\n+                        <add value=":" />\n+                        <add value="-" />\n+                        <add value="_" />\n+                        <add value="." />\n+                    </valid>\n+                </sanitizer>\n+                <validator type="empty_field" message="LMS ID is required"/>\n+            </param>\n+            <param argument="--lmp_id" type="text" value="LMP" label="LMP part ID" help="Part ID to be used as the LMP methylated linker.">\n+                <sanitizer invalid_char="">\n+                    <valid initial="string.letters,string.digits">\n+                        <add value=":" />\n+              '..b'"BASIC_construct_B1">\n+                    <assert_contents>\n+                        <is_valid_xml />\n+                        <has_text text="BASIC_construct_B1" />\n+                        <has_n_lines n="339" />\n+                    </assert_contents>\n+                </element>\n+                <element name="BASIC_construct_C1">\n+                    <assert_contents>\n+                        <is_valid_xml />\n+                        <has_text text="BASIC_construct_C1" />\n+                        <has_n_lines n="339" />\n+                    </assert_contents>\n+                </element>\n+            </output_collection>\n+        </test>\n+        <test>\n+            <!-- test 2: check if identical outputs are produced (Muconate input)-->\n+            <param name="rpsbml_file" value="muconate_example.xml" />\n+            <param name="sample_size" value="88" />\n+            <output name="Constructs" file="constructs_muconate.csv" ftype="csv" compare="diff">\n+                <assert_contents>\n+                    <has_n_lines n="89"/>\n+                </assert_contents>\n+            </output>\n+            <output name="User parts plate" file="user_parts_plate_muconate.csv" ftype="csv" compare="diff"/>\n+            <output name="Biolegio plate" file="biolegio_plate_muconate.csv" ftype="csv" compare="diff"/>\n         </test>\n     </tests>\n     <help><![CDATA[\n@@ -76,18 +145,19 @@\n \n Advanced options:\n \n-* **parts_files**\\ : (string) List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: [data/biolegio_parts.csv, user_parts.csv]\n+* **parts_files**\\ : (string) List of files providing available linkers and user parts (backbone, promoters, ...) for constructs. Default: [data/biolegio_parts.csv, data/user_parts.csv]\n * **lms_id**\\ : (string) part ID to be used as the LMS methylated linker. Default: LMS.\n * **lmp_id**\\ : (string) part ID to be used as the LMP methylated linker. Default: LMP.\n * **backbone_id**\\ : (string) part ID to be used as the backbone. Default: BASIC_SEVA_37_CmR-p15A.1.\n-* **sample_size**\\ : (int) Number of construct to generate.Default: 3.\n+* **sample_size**\\ : (int) Number of construct to generate. Default: 88.\n * **cds_permutation**\\ : (boolean) Whether all combinations of CDS permutation should be built Default: true.\n+* **max_enz_per_rxn**\\ : (integer) Maximum number of enyzme to consider per reaction. If more enzymes are available for a given reaction, then only the last one listed in the MIRIAM annotation section will be kept. (Default: 1). \n \n Output\n ------\n \n * **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.\n-* **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.\n+* **o_sbol_dir**\\ : (string) Output folder to write SBOL depictions of constructs. Existing files will be overwritten. Default: not output.\n \n Project Links\n ------------------\n@@ -101,21 +171,6 @@\n \n     ]]></help>\n     <citations>\n-        <citation type="bibtex">\n-      @article{10.1093/synbio/ysaa010,\n-          author = {Storch, Marko and Haines, Matthew C and Baldwin, Geoff S},\n-          title = {DNA-BOT: a low-cost, automated DNA assembly platform for synthetic biology},\n-          journal = {Synthetic Biology},\n-          volume = {5},\n-          number = {1},\n-          year = {2020},\n-          month = {07},\n-          issn = {2397-7000},\n-          doi = {10.1093/synbio/ysaa010},\n-          url = {https://doi.org/10.1093/synbio/ysaa010},\n-          note = {ysaa010},\n-          eprint = {https://academic.oup.com/synbio/article-pdf/5/1/ysaa010/33722340/ysaa010.pdf},\n-      }\n-        </citation>\n+        <citation type="doi">10.1093/synbio/ysaa010</citation>\n     </citations>\n </tool>\n\\ No newline at end of file\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/BASIC_construct_A1.xml
--- a/test-data/BASIC_construct_A1.xml Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,339 +0,0 @@\n-<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#">\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23119_BASIC/1">\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23119_BASIC"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:displayId>PJ23119_BASIC</sbol:displayId>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23119_BASIC/1"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-    <sbol:displayId>U1_RBS1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">\n-    <sbol:displayId>U2_RBS1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:C'..b'ion/BASIC_construct_A1/P21684_0/1"/>\n-        <sbol:displayId>constraint_4</sbol:displayId>\n-      </sbol:SequenceConstraint>\n-    </sbol:sequenceConstraint>\n-  </sbol:ComponentDefinition>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23119_BASIC/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23119_BASIC"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:displayId>PJ23119_BASIC</sbol:displayId>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">\n-    <sbol:elements></sbol:elements>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:displayId>U1_RBS1</sbol:displayId>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">\n-    <sbol:displayId>U2_RBS1</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:displayId>P21683</sbol:displayId>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>\n-    <sbol:displayId>U3_RBS2</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>P21685</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-  </sbol:Sequence>\n-</rdf:RDF>\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/BASIC_construct_B1.xml
--- a/test-data/BASIC_construct_B1.xml Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,339 +0,0 @@\n-<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#">\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS3/1">\n-    <sbol:displayId>U1_RBS3</sbol:displayId>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS3/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS3"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U2_RBS1/1">\n-    <sbol:displayId>U2_RBS1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U2_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U2_RBS1/1"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:C'..b'tity rdf:resource="https://localhost/ComponentDefinition/BASIC_construct_B1/constraint_2"/>\n-      </sbol:SequenceConstraint>\n-    </sbol:sequenceConstraint>\n-  </sbol:ComponentDefinition>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>\n-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS3/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS3"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>U1_RBS3</sbol:displayId>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS1/1">\n-    <sbol:displayId>U2_RBS1</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:displayId>P21683</sbol:displayId>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>\n-    <sbol:displayId>U3_RBS2</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>P21685</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-  </sbol:Sequence>\n-</rdf:RDF>\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/BASIC_construct_C1.xml
--- a/test-data/BASIC_construct_C1.xml Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
b'@@ -1,339 +0,0 @@\n-<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#">\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMS/1">\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMS/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMS"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000988"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/LMP/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000001"/>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/LMP/1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/LMP"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/PJ23101_BASIC/1">\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000167"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/PJ23101_BASIC/1"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/PJ23101_BASIC"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U1_RBS1/1">\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U1_RBS1/1"/>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-    <sbol:displayId>U1_RBS1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U1_RBS1"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/P21684/1">\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000316"/>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/P21684"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/P21684/1"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:ComponentDefinition>\n-  <sbol:ComponentDefinition rdf:about="https://localhost/ComponentDefinition/U3_RBS2/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/ComponentDefinition/U3_RBS2"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:sequence rdf:resource="https://localhost/Sequence/U3_RBS2/1"/>\n-    <sbol:displayId>U3_RBS2</sbol:displayId>\n-    <sbol:role rdf:resource="http://identifiers.org/so/SO:0000139"/>\n-    <sbol:type rdf:resource="http://www.biopax.org/release/biopax-level3.owl#DnaRegion"/>\n-  </sbol:ComponentDefinition>\n-  <sbol:C'..b'_BASIC_0"/>\n-        <sbol:displayId>PJ23101_BASIC_0</sbol:displayId>\n-        <sbol:version>1</sbol:version>\n-      </sbol:Component>\n-    </sbol:component>\n-  </sbol:ComponentDefinition>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMS/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMS"/>\n-    <sbol:displayId>LMS</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1/1">\n-    <sbol:displayId>BASIC_SEVA_37_CmR_p15A_1</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/BASIC_SEVA_37_CmR_p15A_1"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements></sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/LMP/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>LMP</sbol:displayId>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/LMP"/>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/PJ23101_BASIC/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/PJ23101_BASIC"/>\n-    <sbol:displayId>PJ23101_BASIC</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U1_RBS1/1">\n-    <sbol:elements></sbol:elements>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:displayId>U1_RBS1</sbol:displayId>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U1_RBS1"/>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21684/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21684"/>\n-    <sbol:displayId>P21684</sbol:displayId>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U3_RBS2/1">\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U3_RBS2"/>\n-    <sbol:displayId>U3_RBS2</sbol:displayId>\n-    <sbol:elements></sbol:elements>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21685/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21685"/>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-    <sbol:displayId>P21685</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/U2_RBS2/1">\n-    <sbol:displayId>U2_RBS2</sbol:displayId>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:version>1</sbol:version>\n-    <sbol:elements></sbol:elements>\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/U2_RBS2"/>\n-  </sbol:Sequence>\n-  <sbol:Sequence rdf:about="https://localhost/Sequence/P21683/1">\n-    <sbol:persistentIdentity rdf:resource="https://localhost/Sequence/P21683"/>\n-    <sbol:encoding rdf:resource="http://www.chem.qmul.ac.uk/iubmb/misc/naseq.html"/>\n-    <sbol:displayId>P21683</sbol:displayId>\n-    <sbol:elements>atgc</sbol:elements>\n-    <sbol:version>1</sbol:version>\n-  </sbol:Sequence>\n-</rdf:RDF>\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/biolegio_plate.csv
--- a/test-data/biolegio_plate.csv Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -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
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/biolegio_plate_lycopene.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/biolegio_plate_lycopene.csv Mon Mar 28 14:16:59 2022 +0000
b
@@ -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
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/biolegio_plate_muconate.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/biolegio_plate_muconate.csv Mon Mar 28 14:16:59 2022 +0000
b
@@ -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
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/constructs.csv
--- a/test-data/constructs.csv Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -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,,,,,,,,,,
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/constructs_lycopene.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/constructs_lycopene.csv Mon Mar 28 14:16:59 2022 +0000
b
@@ -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,,,,,,,,,,
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/constructs_muconate.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/constructs_muconate.csv Mon Mar 28 14:16:59 2022 +0000
b
b'@@ -0,0 +1,89 @@\n+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\r\n+A1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS2,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+B1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS3,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+C1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS2,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+D1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS3,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+E1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS1,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+F1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS2,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+G1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS3,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+H1,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS1,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+A2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS2,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+B2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS3,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+C2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS2,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+D2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS1,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+E2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS1,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+F2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS2,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+G2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS2,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+H2,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS2,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+A3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS3,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+B3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS2,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+C3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS1,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+D3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS1,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+E3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS3,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+F3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS3,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+G3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS3,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+H3,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS2,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+A4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS3,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+B4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS1,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+C4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS1,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+D4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS2,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+E4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS1,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+F4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS2,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+G4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS3,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+H4,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS2,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+A5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS2,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+B5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS3,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+C5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS2,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+D5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS2,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+E5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS3,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+F5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS2,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+G5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS2,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+H5,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS1,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+A6,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1'..b'O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+G6,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS1,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+H6,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS3,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+A7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS3,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+B7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS3,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+C7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS1,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+D7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS3,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+E7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS1,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+F7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS3,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+G7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS3,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+H7,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS2,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+A8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS3,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+B8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS2,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+C8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS3,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+D8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS1,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+E8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS1,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+F8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS3,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+G8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS3,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+H8,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS1,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+A9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U1-RBS2,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+B9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS2,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+C9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS2,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+D9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS1,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+E9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U2-RBS1,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+F9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS1,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+G9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS1,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+H9,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS2,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+A10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS3,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+B10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS2,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+C10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS1,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+D10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS3,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+E10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U2-RBS1,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+F10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U2-RBS1,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+G10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS3,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+H10,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U2-RBS2,O33948,U1-RBS2,O85675,,,,,,,,,,,,\r\n+A11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS3,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+B11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS1,O85675,U2-RBS3,O33948,,,,,,,,,,,,\r\n+C11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23104_BASIC,U1-RBS2,O85675,U2-RBS2,O33948,,,,,,,,,,,,\r\n+D11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS2,O33948,U1-RBS3,O85675,,,,,,,,,,,,\r\n+E11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23111_BASIC,U1-RBS3,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+F11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23119_BASIC,U1-RBS1,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n+G11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23101_BASIC,U2-RBS1,O33948,U1-RBS1,O85675,,,,,,,,,,,,\r\n+H11,LMS,BASIC_SEVA_37_CmR-p15A.1,LMP,PJ23108_BASIC,U1-RBS2,O85675,U2-RBS1,O33948,,,,,,,,,,,,\r\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/muconate_example.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/muconate_example.xml Mon Mar 28 14:16:59 2022 +0000
[
b'@@ -0,0 +1,5328 @@\n+<?xml version="1.0" encoding="UTF-8"?>\n+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" groups:required="false" fbc:required="false">\n+  <model metaid="a03e1bf0f20b54a66f7b4ce262ea6b0f7579c0a1e47144a649b9e2e711f6b3ed" id="RP_model_001_0001" name="001_0001" substanceUnits="mole" timeUnits="second" extentUnits="mole" fbc:strict="true">\n+    <listOfCompartments>\n+      <compartment metaid="_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6" sboTerm="SBO:0000290" id="c" name="cytosol" size="1" constant="true">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6">\n+              <bqbiol:is>\n+                <rdf:Bag>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/bigg.compartment/c_c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/metanetx.compartment/MNXC3"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/c0"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/seed/cytosol"/>\n+                  <rdf:li rdf:resource="http://identifiers.org/name/cytosol"/>\n+                </rdf:Bag>\n+              </bqbiol:is>\n+            </rdf:Description>\n+          </rdf:RDF>\n+        </annotation>\n+      </compartment>\n+    </listOfCompartments>\n+    <listOfSpecies>\n+      <species metaid="_4a3e4e32a6db24e5ddaa18997f93519c4ef1c0172e96160cd56ad49ecf025995" id="MNXM5" name="MNXM5" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_4a3e4e32a6db24e5ddaa18997f93519c4ef1c0172e96160cd56ad49ecf025995">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_4a3e4e32a6db24e5ddaa18997f93519c4ef1c0172e96160cd56ad49ecf025995">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:smiles value="N=C(O)c1ccc[n+](C2OC(COP(=O)(O)OP(=O)(O)OCC3OC(n4cnc5c(N)ncnc54)C(OP(=O)(O)O)C3O)C(O)C2O)c1"/>\n+                <brsynth:inchi value="InChI=1S/C21H28N7O17P3/c22-17-12-19(25-7-24-17)28(8-26-12)21-16(44-46(33,34)35)14(30)11(43-21)6-41-48(38,39)45-47(36,37)40-5-10-13(29)15(31)20(42-10)27-3-1-2-9(4-27)18(23)32/h1-4,7-8,10-11,13-16,20-21,29-31H,5-6H2,(H7-,22,23,24,25,32,33,34,35,36,37,38,39)/p+1"/>\n+                <brsynth:inchikey value="XJLXINKUBYWONI-UHFFFAOYSA-O"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858" id="CMPD_0000000003" name="CMPD_0000000003" compartment="c" initialConcentration="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:Description rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#_2c27bb432be6149f648dcec0e702fd9bdf6449fb9f730bd86eeb0b63b93d8858">\n+              <brsynth:brs'..b'df:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579" groups:id="rp_trunk_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_564fce39b23c6cf87d12dc2c612448384fd2cd980fe3fc07829e2ef802645579">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="MNXM4"/>\n+          <groups:member groups:idRef="MNXM188"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM6"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM15"/>\n+          <groups:member groups:idRef="MNXM1"/>\n+          <groups:member groups:idRef="MNXM5"/>\n+          <groups:member groups:idRef="MNXM13"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM5"/>\n+          <groups:member groups:idRef="MNXM4"/>\n+          <groups:member groups:idRef="MNXM188"/>\n+          <groups:member groups:idRef="MNXM1"/>\n+          <groups:member groups:idRef="MNXM6"/>\n+          <groups:member groups:idRef="MNXM13"/>\n+          <groups:member groups:idRef="MNXM15"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/user_parts_plate.csv
--- a/test-data/user_parts_plate.csv Wed Dec 15 15:10:43 2021 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -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,
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/user_parts_plate_lycopene.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/user_parts_plate_lycopene.csv Mon Mar 28 14:16:59 2022 +0000
b
@@ -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,
b
diff -r de9f53630349 -r 8a087d7546b8 test-data/user_parts_plate_muconate.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/user_parts_plate_muconate.csv Mon Mar 28 14:16:59 2022 +0000
b
@@ -0,0 +1,9 @@
+Part/linker,Well,Part concentration (ng/uL)
+BASIC_SEVA_37_CmR-p15A.1,A1,
+O33948,B1,
+O85675,C1,
+PJ23101_BASIC,D1,
+PJ23104_BASIC,E1,
+PJ23108_BASIC,F1,
+PJ23111_BASIC,G1,
+PJ23119_BASIC,H1,