changeset 0:92adc3382124 draft

planemo upload for repository https://github.com/brsynth/icfree-ml commit 7640e2163acff6c925cba16188eaa4ce54639180
author tduigou
date Tue, 23 Jul 2024 13:59:11 +0000
parents
children b3c862e8497f
files macros.xml plates_designer.xml test-data/destination_plate.csv test-data/instructor.access.test-2.csv test-data/instructor.hela.test-2.csv test-data/instructor.test-1.csv test-data/instructor.test-2.csv test-data/plates_designer.destination_plate.test-1.csv test-data/plates_designer.destination_plate.test-2.csv test-data/plates_designer.source_plate.test-1.csv test-data/plates_designer.source_plate.test-2.csv test-data/sampling.test-1.csv test-data/source_plate.csv
diffstat 13 files changed, 351 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,33 @@
+<macros>
+    <token name="@TOOL_VERSION@">2.4.0</token>
+    <token name="@VERSION_SUFFIX@">0</token>
+    <token name="@LICENSE@">MIT</token>
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="@TOOL_VERSION@">icfree-ml</requirement>
+            <yield/>
+        </requirements>
+    </xml>
+    <xml name="stdio">
+        <stdio>
+            <regex match="WARNING" level="warning" />
+            <regex match="ERROR" level="fatal" />
+        </stdio>
+    </xml>
+    <xml name="citation">
+        <citations>
+            <citation type="bibtex">
+                @unpublished{icfree
+                    author = {Joan Hérisson, Yorgo El Moubayed},
+                    title = {{icfree}},
+                    url = {https://github.com/brsynth/icfree-ml/},
+                }
+            </citation>
+        </citations>
+    </xml>
+    <xml name="creator">
+        <creator>
+            <organization name="BioRetroSynth" url="https://github.com/brsynth"/>
+        </creator>
+    </xml>
+</macros>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plates_designer.xml	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,118 @@
+<tool id="icfree_plates_designer" name="iCFree plates designer" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" license="@LICENCE@">
+    <description>Prepare source and destination well-plate mappings with advanced options.</description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <expand macro="requirements"/>
+    <expand macro="stdio"/>
+    <command detect_errors="exit_code"><![CDATA[
+        #set well_capacity = []
+        #set dead_volumes = []
+        #for $x in $adv.rep
+            #silent well_capacity.append(str($x.component_name) + "=" + str($x.well_capacity))
+            #silent dead_volumes.append(str($x.component_name) + "=" + str($x.dead_volumes))
+        #end for
+        #set swell_capacity = ','.join($well_capacity)
+        #set sdead_volumes = ','.join($dead_volumes)
+
+        python -m icfree.plate_designer
+            '$sampling_file'
+            '$sample_volume'
+            --start_well_src_plt '$adv.start_well_src_plt'
+            --start_well_dst_plt '$adv.start_well_dst_plt'
+            --plate_dims '$adv.plate_dims'
+            #if len($well_capacity) > 0
+                --well_capacity '$swell_capacity'
+            #end if
+            --default_well_capacity '$adv.default_well_capacity'
+            #if len($dead_volumes) > 0
+                --dead_volumes '$sdead_volumes'
+            #end if
+            --default_dead_volume '$adv.default_dead_volume'
+            --num_replicates '$adv.num_replicates' &&
+        mv source_plate.csv '$output_source_plate' &&
+        mv destination_plate.csv '$output_destination_plate'
+           ]]></command>
+    <inputs>
+        <param name="sampling_file" type="data" format="csv" label="Sampling file" />
+        <param name="sample_volume" type="integer" optional="false" label="Wanted sample volume in the destination plate" />
+        <section name="adv" title="Advanced Options" expanded="false">
+            <param name="start_well_src_plt" type="text" value="A1" label="Starting well for the source plate">
+                <validator type="empty_field" message="Not empty"/>
+                <validator type="regex" message="Some letters followed by a number">^(?:[A-K]{1}([1-9]|1[0-2]))$</validator>
+            </param>
+            <param name="start_well_dst_plt" type="text" value="A1" label="Starting well for the destination plate">
+                <validator type="empty_field" message="Not empty"/>
+                <validator type="regex" message="Some letters followed by a number">^(?:[A-K]{1}([1-9]|1[0-2]))$</validator>
+            </param>
+            <param name="plate_dims" type="text" value="16x24" label="Plate dimensions (Format: NxM)">
+                <validator type="empty_field" message="Not empty"/>
+                <validator type="regex" message="An 'x' separator is expected">^(?:\d+x\d+)$</validator>
+            </param>
+            <param name="default_well_capacity" type="integer" value="60000" min="1" max="250000" label="Default well capacity in nL for components not specified in well_capacity" />
+            <param name="default_dead_volume" type="integer" value="15000" min="1" max="250000" label="Default dead volume in nL for the source plate"/>
+            <param name="num_replicates" type="integer" value="1" min="1" max="10" label="Number of wanted replicates"/>
+            <repeat name="rep" title="Specific components">
+                <param name="component_name" type="text" value="" label="Component Name">
+                    <validator type="empty_field" message="Not empty"/>
+                </param>
+                <param name="well_capacity" type="integer" value="60000" min="1" max="250000" label="Well capacity" />
+                <param name="dead_volumes" type="integer" value="15000" min="1" max="250000" label="Dead volumes" />
+            </repeat>
+        </section>
+    </inputs>
+    <outputs>
+        <data name="output_source_plate" format="csv" label="${tool.name} - Source" />
+        <data name="output_destination_plate" format="csv" label="${tool.name} - Destination" />
+    </outputs>
+    <tests>
+        <test>
+            <!-- python -m icfree.plate_designer sampling.test-1.csv 6000 -default_well_capacity 60000 -default_dead_volume 20000 -num_replicates 1 -->
+            <param name="sampling_file" value="sampling.test-1.csv" />
+            <param name="sample_volume" value="6000" />
+            <param name="default_well_capacity" value="60000" />
+            <param name="default_dead_volume" value="20000" />
+            <param name="num_replicates" value="1" />
+            <output name="output_source_plate" file="plates_designer.source_plate.test-1.csv" ftype="csv" compare="diff" />
+            <output name="output_destination_plate" file="plates_designer.destination_plate.test-1.csv" ftype="csv" compare="diff" />
+        </test>
+        <test>
+            <!-- python -m icfree.plate_designer sampling.test-1.csv '5000' -start_well_src_plt 'A1' -start_well_dst_plt 'A1' -plate_dims '16x24' -well_capacity 'Hela lysate=3000,Access prot 50X=4000,Reaction mix=3000,RNA 1ug/uL=2000' -default_well_capacity '60000' -dead_volumes 'Hela lysate=30,Access prot 50X=5,Reaction mix=10,RNA 1ug/uL=20' -default_dead_volume '20000' -num_replicates '2' -->
+            <param name="sampling_file" value="sampling.test-1.csv" />
+            <param name="sample_volume" value="5000" />
+            <param name="default_well_capacity" value="60000" />
+            <param name="default_dead_volume" value="20000" />
+            <param name="num_replicates" value="2" />
+            <repeat name="rep">
+                <param name="component_name" value="Hela lysate" />
+                <param name="well_capacity" value="3000" />
+                <param name="dead_volumes" value="30" />
+            </repeat>
+            <repeat name="rep">
+                <param name="component_name" value="Access prot 50%" />
+                <param name="well_capacity" value="4000" />
+                <param name="dead_volumes" value="5" />
+            </repeat>
+            <repeat name="rep">
+                <param name="component_name" value="Reaction mix" />
+                <param name="well_capacity" value="3000" />
+                <param name="dead_volumes" value="10" />
+            </repeat>
+            <repeat name="rep">
+                <param name="component_name" value="RNA 1ug/uL" />
+                <param name="well_capacity" value="2000" />
+                <param name="dead_volumes" value="20" />
+            </repeat>
+            <output name="output_source_plate" file="plates_designer.source_plate.test-2.csv" ftype="csv" compare="diff" />
+            <output name="output_destination_plate" file="plates_designer.destination_plate.test-2.csv" ftype="csv" compare="diff" />
+        </test>
+    </tests>
+    <help><![CDATA[
+Plates Generator
+================
+
+Prepare source and destination well-plate mappings with advanced options.
+    ]]></help>
+    <expand macro="creator"/>
+    <expand macro="citation"/>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/destination_plate.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,4 @@
+Well,Hela lysate,Access prot 50%,Reaction mix,RNA 1ug/uL,Water
+A1,492.5,25.0,310.0,152.5,5020.0
+B1,970.0,165.0,257.5,112.5,4495.0
+C1,537.5,325.0,192.5,185.0,4760.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/instructor.access.test-2.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,7 @@
+Source Plate Name,Source Plate Type,Source Well,Destination Plate Name,Destination Well,Transfer Volume,Sample ID
+Source[1],384PP_AQ_GP3,C1,Destination[1],A1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],B1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],C1,325.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],D1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],E1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],F1,325.0,Access prot 50%
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/instructor.hela.test-2.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,11 @@
+Source Plate Name,Source Plate Type,Source Well,Destination Plate Name,Destination Well,Transfer Volume,Sample ID
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],A1,492.5,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],B1,500.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],B1,470.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],C1,500.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],C1,37.5,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],D1,492.5,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],E1,500.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],E1,470.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],F1,500.0,Hela lysate
+Source[1],384PP_AQ_CP,{A1;B1},Destination[1],F1,37.5,Hela lysate
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/instructor.test-1.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,77 @@
+Source Plate Name,Source Plate Type,Source Well,Destination Plate Name,Destination Well,Transfer Volume,Sample ID
+Source[1],384PP_AQ_GP3,C1,Destination[1],A1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],B1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],C1,325.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],D1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],E1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],F1,325.0,Access prot 50%
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],A1,492.5,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],B1,500.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],B1,470.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],C1,500.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],C1,37.5,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],D1,492.5,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],E1,500.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],E1,470.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],F1,500.0,Hela lysate
+Source[1],384PP_AQ_GP3,{A1;B1},Destination[1],F1,37.5,Hela lysate
+Source[1],384PP_AQ_GP3,E1,Destination[1],A1,152.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],B1,112.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],C1,185.0,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],D1,152.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],E1,112.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],F1,185.0,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,D1,Destination[1],A1,310.0,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],B1,257.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],C1,192.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],D1,310.0,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],E1,257.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],F1,192.5,Reaction mix
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,20.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,495.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,260.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,20.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,495.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,260.0,Water
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/instructor.test-2.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,67 @@
+Source Plate Name,Source Plate Type,Source Well,Destination Plate Name,Destination Well,Transfer Volume,Sample ID
+Source[1],384PP_AQ_GP3,C1,Destination[1],A1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],B1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],C1,325.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],D1,25.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],E1,165.0,Access prot 50%
+Source[1],384PP_AQ_GP3,C1,Destination[1],F1,325.0,Access prot 50%
+Source[1],384PP_AQ_GP3,E1,Destination[1],A1,152.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],B1,112.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],C1,185.0,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],D1,152.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],E1,112.5,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,E1,Destination[1],F1,185.0,RNA 1ug/uL
+Source[1],384PP_AQ_GP3,D1,Destination[1],A1,310.0,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],B1,257.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],C1,192.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],D1,310.0,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],E1,257.5,Reaction mix
+Source[1],384PP_AQ_GP3,D1,Destination[1],F1,192.5,Reaction mix
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],A1,20.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],B1,495.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],C1,260.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],D1,20.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],E1,495.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,500.0,Water
+Source[1],384PP_AQ_GP3,F1,Destination[1],F1,260.0,Water
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plates_designer.destination_plate.test-1.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,4 @@
+Well,Hela lysate,Access prot 50%,Reaction mix,RNA 1ug/uL,Water
+A1,492.5,25.0,310.0,152.5,5020.0
+B1,970.0,165.0,257.5,112.5,4495.0
+C1,537.5,325.0,192.5,185.0,4760.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plates_designer.destination_plate.test-2.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,7 @@
+Well,Hela lysate,Access prot 50%,Reaction mix,RNA 1ug/uL,Water
+A1,492.5,25.0,310.0,152.5,4020.0
+B1,970.0,165.0,257.5,112.5,3495.0
+C1,537.5,325.0,192.5,185.0,3760.0
+D1,492.5,25.0,310.0,152.5,4020.0
+E1,970.0,165.0,257.5,112.5,3495.0
+F1,537.5,325.0,192.5,185.0,3760.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plates_designer.source_plate.test-1.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,6 @@
+Well,Access prot 50%,Hela lysate,RNA 1ug/uL,Reaction mix,Water
+A1,0.0,22000.0,0.0,0.0,0.0
+B1,20515.0,0.0,0.0,0.0,0.0
+C1,0.0,0.0,0.0,20760.0,0.0
+D1,0.0,0.0,20450.0,0.0,0.0
+E1,0.0,0.0,0.0,0.0,34275.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plates_designer.source_plate.test-2.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,7 @@
+Well,Access prot 50%,Hela lysate,RNA 1ug/uL,Reaction mix,Water
+A1,0.0,3000.0,0.0,0.0,0.0
+B1,0.0,1060.0,0.0,0.0,0.0
+C1,21030.0,0.0,0.0,0.0,0.0
+D1,0.0,0.0,0.0,1530.0,0.0
+E1,0.0,0.0,920.0,0.0,0.0
+F1,0.0,0.0,0.0,0.0,42550.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/sampling.test-1.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,4 @@
+Hela lysate,Access prot 50%,Reaction mix,RNA 1ug/uL
+492.5,25.0,310.0,152.5
+970.0,165.0,257.5,112.5
+537.5,325.0,192.5,185.0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/source_plate.csv	Tue Jul 23 13:59:11 2024 +0000
@@ -0,0 +1,6 @@
+Well,Access prot 50%,Hela lysate,RNA 1ug/uL,Reaction mix,Water
+A1,0.0,22000.0,0.0,0.0,0.0
+B1,20515.0,0.0,0.0,0.0,0.0
+C1,0.0,0.0,0.0,20760.0,0.0
+D1,0.0,0.0,20450.0,0.0,0.0
+E1,0.0,0.0,0.0,0.0,34275.0