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

Changeset 1:de9f53630349 (2021-12-15)
Previous changeset 0:e8e8050e9997 (2021-11-18) Next changeset 2:8a087d7546b8 (2022-03-28)
Commit message:
"planemo upload commit 2f1af427fa4c4f2aad53ab94c4cdb51456c66019-dirty"
added:
rpbasicdesign.xml
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
removed:
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
b
diff -r e8e8050e9997 -r de9f53630349 rpbasicdesign.xml
--- /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
b
diff -r e8e8050e9997 -r de9f53630349 rpbasicdesign/rpbasicdesign.xml
--- 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
b
diff -r e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/BASIC_construct_A1.xml
--- 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
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 e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/BASIC_construct_B1.xml
--- 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
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 e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/BASIC_construct_C1.xml
--- 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
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 e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/biolegio_plate.csv
--- 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
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 e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/constructs.csv
--- a/rpbasicdesign/test-data/constructs.csv Thu Nov 18 13:17:02 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 e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/lycopene_CrtEBI_from_selenzy.xml
--- 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
[
b'@@ -1,393 +0,0 @@\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="b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46" id="CMPD_0000000001" name="CMPD_0000000001" 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="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">\n-              <bqbiol:is>\n-                <rdf:Bag/>\n-              </bqbiol:is>\n-            </rdf:Description>\n-            <rdf:BRSynth rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">\n-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n-                <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]"/>\n-                <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"/>\n-                <brsynth:inchikey value="YVLPJIGOMTXXLP-UHFFFAOYSA-N"/>\n-              </brsynth:brsynth>\n-            </rdf:BRSynth>\n-          </rdf:RDF>\n-        </annotation>\n-      </species>\n-      <species metaid="_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc" id="MNXM132" name="MNXM132" 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="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">\n-              <bqbiol:is>\n-                <rdf:Bag/>\n-   '..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n-            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n-                <brsynth:global_score value="-1"/>\n-              </brsynth:brsynth>\n-            </rdf:BRSynth>\n-          </rdf:RDF>\n-        </annotation>\n-        <groups:listOfMembers>\n-          <groups:member groups:idRef="rxn_1"/>\n-          <groups:member groups:idRef="rxn_2"/>\n-          <groups:member groups:idRef="rxn_3"/>\n-        </groups:listOfMembers>\n-      </groups:group>\n-      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n-        <annotation>\n-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n-            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n-            </rdf:BRSynth>\n-          </rdf:RDF>\n-        </annotation>\n-        <groups:listOfMembers>\n-          <groups:member groups:idRef="CMPD_0000000003"/>\n-          <groups:member groups:idRef="CMPD_0000000001"/>\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_0000000001"/>\n-          <groups:member groups:idRef="MNXM132"/>\n-          <groups:member groups:idRef="CMPD_0000000003"/>\n-          <groups:member groups:idRef="TARGET_0000000001"/>\n-          <groups:member groups:idRef="MNXM83"/>\n-        </groups:listOfMembers>\n-      </groups:group>\n-      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n-        <annotation>\n-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n-            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n-            </rdf:BRSynth>\n-          </rdf:RDF>\n-        </annotation>\n-        <groups:listOfMembers>\n-          <groups:member groups:idRef="MNXM8975"/>\n-          <groups:member groups:idRef="MNXM24"/>\n-          <groups:member groups:idRef="MNXM11"/>\n-        </groups:listOfMembers>\n-      </groups:group>\n-      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n-        <annotation>\n-          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n-            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n-              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n-            </rdf:BRSynth>\n-          </rdf:RDF>\n-        </annotation>\n-        <groups:listOfMembers>\n-          <groups:member groups:idRef="MNXM83"/>\n-          <groups:member groups:idRef="MNXM132"/>\n-          <groups:member groups:idRef="MNXM11"/>\n-        </groups:listOfMembers>\n-      </groups:group>\n-    </groups:listOfGroups>\n-  </model>\n-</sbml>\n'
b
diff -r e8e8050e9997 -r de9f53630349 rpbasicdesign/test-data/user_parts_plate.csv
--- 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
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 e8e8050e9997 -r de9f53630349 test-data/BASIC_construct_A1.xml
--- /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
b
b'@@ -0,0 +1,339 @@\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 e8e8050e9997 -r de9f53630349 test-data/BASIC_construct_B1.xml
--- /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
b
b'@@ -0,0 +1,339 @@\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 e8e8050e9997 -r de9f53630349 test-data/BASIC_construct_C1.xml
--- /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
b
b'@@ -0,0 +1,339 @@\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 e8e8050e9997 -r de9f53630349 test-data/biolegio_plate.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/biolegio_plate.csv Wed Dec 15 15:10:43 2021 +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 e8e8050e9997 -r de9f53630349 test-data/constructs.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/constructs.csv Wed Dec 15 15:10:43 2021 +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 e8e8050e9997 -r de9f53630349 test-data/lycopene_CrtEBI_from_selenzy.xml
--- /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
[
b'@@ -0,0 +1,393 @@\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="b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46" id="CMPD_0000000001" name="CMPD_0000000001" 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="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+              </bqbiol:is>\n+            </rdf:Description>\n+            <rdf:BRSynth rdf:about="#b0098569a07f786a6e9b2294639668cd4ee564dd642a38bdf429c4c6bb560b46">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <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]"/>\n+                <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"/>\n+                <brsynth:inchikey value="YVLPJIGOMTXXLP-UHFFFAOYSA-N"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+      </species>\n+      <species metaid="_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc" id="MNXM132" name="MNXM132" 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="#_212c5940beac5625a2636d3d14fbc63cc5a8107d9dd39020ac544f296debabcc">\n+              <bqbiol:is>\n+                <rdf:Bag/>\n+   '..b':rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_93eef40c447d295fa61df9270c5fd909ec2ba7ee9883090552c0466873cd4299">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu">\n+                <brsynth:global_score value="-1"/>\n+              </brsynth:brsynth>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="rxn_1"/>\n+          <groups:member groups:idRef="rxn_2"/>\n+          <groups:member groups:idRef="rxn_3"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a" groups:id="rp_intermediate_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_613b064337553014ede418c67180137a4561ff11b13f3bfa1a2765ef37ac375a">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="CMPD_0000000001"/>\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_0000000001"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+          <groups:member groups:idRef="CMPD_0000000003"/>\n+          <groups:member groups:idRef="TARGET_0000000001"/>\n+          <groups:member groups:idRef="MNXM83"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378" groups:id="rp_completed_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_9e3154173c97366b3980dd1642e1e35d0bdfc3274abc744e89ecb518bcd48378">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM8975"/>\n+          <groups:member groups:idRef="MNXM24"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+      <groups:group metaid="_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3" groups:id="rp_sink_species" groups:kind="collection">\n+        <annotation>\n+          <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/">\n+            <rdf:BRSynth rdf:about="#_58b3b59284e0d918d6d3f3bcadc2d757726da7594cd899cad4e745836ac967a3">\n+              <brsynth:brsynth xmlns:brsynth="http://brsynth.eu"/>\n+            </rdf:BRSynth>\n+          </rdf:RDF>\n+        </annotation>\n+        <groups:listOfMembers>\n+          <groups:member groups:idRef="MNXM83"/>\n+          <groups:member groups:idRef="MNXM132"/>\n+          <groups:member groups:idRef="MNXM11"/>\n+        </groups:listOfMembers>\n+      </groups:group>\n+    </groups:listOfGroups>\n+  </model>\n+</sbml>\n'
b
diff -r e8e8050e9997 -r de9f53630349 test-data/user_parts_plate.csv
--- /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
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,