Repository 'calculatezprimefactor'
hg clone https://toolshed.g2.bx.psu.edu/repos/pmac/calculatezprimefactor

Changeset 0:8fb3d398725a (2016-06-01)
Commit message:
Uploaded
added:
calculateZPrimeFactor.pl
calculateZPrimeFactor.xml
test-data/150615-HR-12015-01A.linear
test-data/calc_z_prime.tabular
test-data/plate_config.txt
b
diff -r 000000000000 -r 8fb3d398725a calculateZPrimeFactor.pl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calculateZPrimeFactor.pl Wed Jun 01 03:37:27 2016 -0400
[
@@ -0,0 +1,102 @@
+###############################################################################
+# In summary this script calculates the z prime factor for one or more plates
+# of data.
+#
+# Args:
+#   input.data.frame contains one or more columns of plate data. The first column 
+#   must contain the well annotation ie A01, A02 etc. Each subsequent column represents
+#   a plate of data where the column name is the plate name.
+#
+#   plate.conf.data.frame is a file of the following format:
+#   well, type(syntax must be either "poscontr" or "negcontr"), name (name of control)
+#
+# Returns:
+#    z'factor for each plate for each combination of each type of positive vs negative control.
+#
+# Author: gouldkate
+###############################################################################
+
+use strict;
+use warnings;
+use IO::Handle;
+use File::Temp qw/ tempfile tempdir /;
+my $tdir = tempdir( CLEANUP => 0 );
+
+# check to make sure having correct input and output files
+my $usage = "usage: calculateZPrimeFactor.pl [TABULAR.in] [TABULAR.in] [TABULAR.out] \n";
+die $usage unless @ARGV == 3;
+
+#get the input arguments
+my $plateData = $ARGV[0];
+my $plateConfig =  $ARGV[1];
+my $zPrimeFactor =  $ARGV[2];
+
+#open the input files
+open (INPUT1, "<", $plateData) || die("Could not open file $plateData \n");
+open (INPUT2, "<", $plateConfig) || die("Could not open file $plateConfig \n");
+open (OUTPUT1, ">", $zPrimeFactor) || die("Could not open file $zPrimeFactor \n");
+
+#variable to store the name of the R script file
+my $r_script;
+
+# R script to implement the calcualtion of q-values based on multiple simultaneous tests p-values 
+# construct an R script file and save it in a temp directory
+chdir $tdir;
+$r_script = "calculateZPrimeFactor.r";
+
+open(Rcmd,">", $r_script) or die "Cannot open $r_script \n\n"; 
+print Rcmd "
+ #options(show.error.messages = FALSE);
+ input.data.frame <- read.table(\"$plateData\", head=T, sep=\"\\t\", comment=\"\");
+ plate.conf.data.frame <- read.table(\"$plateConfig\", head=T, sep=\"\\t\", comment=\"\");
+
+ # assumed second column is type ie negcontr or poscontr and third column is name of control
+ negative.controls.list <- unique(plate.conf.data.frame[which (plate.conf.data.frame[,2] == \"negcontr\"),][,3])
+ positive.controls.list <- unique(plate.conf.data.frame[which (plate.conf.data.frame[,2] == \"poscontr\"),][,3])
+  
+ z.prime.factor.report.data.frame <- data.frame()
+  
+  
+ for (negative.control in negative.controls.list){
+ for (positive.control in positive.controls.list){
+ for (i in 2:length(colnames(input.data.frame))){
+        
+ negative.control.wells <- plate.conf.data.frame[which (plate.conf.data.frame[3] == negative.control),][,1]
+ positive.control.wells <- plate.conf.data.frame[which (plate.conf.data.frame[3] == positive.control),][,1]
+
+ control.duo <- paste(negative.control, positive.control, sep=\"/\")
+
+ negative.control.values <- input.data.frame[((input.data.frame[,1] %in% negative.control.wells)&(!(is.na(input.data.frame[,i])))),][,i]
+ positive.control.values <- input.data.frame[((input.data.frame[,1] %in% positive.control.wells)&(!(is.na(input.data.frame[,i])))),][,i]
+
+ if ((length(negative.control.values)==0)|(length(positive.control.values)==0)){
+ z.prime.factor <- NA
+ } else {
+ if ((sum(negative.control.values)) < (sum(positive.control.values))){
+ low.value.controls <- negative.control.values
+ high.value.controls <- positive.control.values
+ } else {
+ low.value.controls <- positive.control.values
+ high.value.controls <- negative.control.values
+ }
+ z.prime.factor <- round(1 - ((3 * (sd(high.value.controls, na.rm = TRUE) + sd(low.value.controls, na.rm = TRUE))/(abs(mean(high.value.controls, na.rm = TRUE) - mean(low.value.controls, na.rm = TRUE))))), 2)
+ }
+
+ plate.name <- colnames(input.data.frame)[i]
+ z.prime.factor.current.row.data.frame <- data.frame(plate=plate.name, control.duo=control.duo, z.prime.factor=z.prime.factor, stringsAsFactors=FALSE)
+ z.prime.factor.report.data.frame <-rbind(z.prime.factor.report.data.frame, z.prime.factor.current.row.data.frame)
+ }
+ }
+ }
+ z.prime.factor.report.data.frame <- z.prime.factor.report.data.frame[order(z.prime.factor.report.data.frame\$control.duo),]
+ write.table(z.prime.factor.report.data.frame, file=\"$zPrimeFactor\", quote=F, sep=\"\\t\", row.names=F);
+ #eof\n";
+
+close Rcmd;
+
+system("R --no-restore --no-save --no-readline < $r_script > $r_script.out");
+
+#close the input and output files
+close(OUTPUT1);
+close(INPUT1);
+close(INPUT2);
b
diff -r 000000000000 -r 8fb3d398725a calculateZPrimeFactor.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calculateZPrimeFactor.xml Wed Jun 01 03:37:27 2016 -0400
b
@@ -0,0 +1,91 @@
+<tool id="calculateZPrimeFactor" name="Calculate Z Prime Factor" version="1.0.0">
+  
+  <command interpreter="perl">
+   calculateZPrimeFactor.pl $inputFile1 $inputFile2 $outputFile1
+  </command>
+
+  <inputs>
+   <param format="tabular" name="inputFile1" type="data" label="Select the linear plates file"/>
+   <param format="tabular" name="inputFile2" type="data" label="Select the plate configuration file"/>
+  </inputs>
+  
+  <outputs>
+    <data format="tabular" name="outputFile1"/>
+  </outputs>
+
+  <tests>
+    <test>
+    <param name="inputFile1" value="150615-HR-12015-01A.linear"/>
+    <param name="inputFile2" value="plate_config.txt"/>
+    <output name="outputFile1" file="calc_z_prime.tabular"/> 
+  </test>
+  </tests>
+
+  
+  <help> 
+
+.. class:: infomark
+
+**What it does**
+
+This program takes a linear plate table and a plate config file and then calculates the Z Prime Factors for your data.
+The plate config file **must** contain the columns Well, Type and Name in that order. Further the data in column Type must be **exclude**, **negcontr** or **poscontr**.
+
+**Example**
+
+If the plates table consisted of::
+
+ #Well Table_1 Table_2 A01 1654 6 A02 1719 8 A03 1624 19 A04 1518 6 A05 1587 12 A06 1517 8 A07 1638 9 A08 1733 7 A09 1617 6 A10 1722 8 ...
+ P14 1630 6 P15 1576 6 P16 1740 7 P17 1578 6 P18 1544 6 P19 1692 6 P20 1560 6 P21 1552 6 P22 1790 7 P23 1537 6 P24 NA NA
+
+and the plates config was::
+
+ #Well Type Name A02 negcontr mock B02 negcontr mock C02 poscontr ASCIZ D02 poscontr PARP E02 negcontr NT2 F02 poscontr ASCIZ G02 poscontr PARP H02 negcontr NT2 I02 poscontr ASCIZ J02 poscontr PARP K02 negcontr NT2 L02 poscontr ASCIZ M02 poscontr PARP N02 negcontr mock O02 poscontr ASCIZ P02 negcontr NT2 A23 negcontr mock B23 negcontr mock C23 poscontr ASCIZ D23 poscontr PARP E23 negcontr NT2 F23 poscontr ASCIZ G23 poscontr PARP H23 negcontr NT2 I23 poscontr ASCIZ J23 poscontr PARP K23 negcontr NT2 L23 poscontr ASCIZ M23 poscontr PARP N23 negcontr mock O23 poscontr ASCIZ P23 negcontr NT2
+ A01 exclude exclude
+ A24 exclude exclude
+ B01 exclude exclude
+ B24 exclude exclude
+ C01 exclude exclude
+ C24 exclude exclude
+ D01 exclude exclude
+ D24 exclude exclude
+ E01 exclude exclude
+ E24 exclude exclude
+ F01 exclude exclude
+ F24 exclude exclude
+ G01 exclude exclude
+ G24 exclude exclude
+ H01 exclude exclude
+ H24 exclude exclude
+ I01 exclude exclude
+ I24 exclude exclude
+ J01 exclude exclude
+ J24 exclude exclude
+ K01 exclude exclude
+ K24 exclude exclude
+ L01 exclude exclude
+ L24 exclude exclude
+ M01 exclude exclude
+ M24 exclude exclude
+ N01 exclude exclude
+ N24 exclude exclude
+ O01 exclude exclude
+ O24 exclude exclude
+ P01 exclude exclude
+ P24 exclude exclude
+
+Running the program will give the following output::
+
+ plate control.duo z.prime.factor
+ Table_1 mock/ASCIZ -64.34
+ Table_2 mock/ASCIZ -Inf
+ Table_1 mock/PARP -10.78
+ Table_2 mock/PARP -0.67
+ Table_1 NT2/ASCIZ -55.97
+ Table_2 NT2/ASCIZ -9.38
+ Table_1 NT2/PARP -16.79
+ Table_2 NT2/PARP -0.32
+
+  </help>  
+  
+</tool>
b
diff -r 000000000000 -r 8fb3d398725a test-data/150615-HR-12015-01A.linear
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/150615-HR-12015-01A.linear Wed Jun 01 03:37:27 2016 -0400
b
b'@@ -0,0 +1,385 @@\n+#Well\tTable_1\tTable_2\tTable_3\tTable_4\tTable_5\tTable_6\n+A01\t2215\t8.88\t55.62\t2.57\t2.91\t78.76\n+A02\t2811\t8.61\t57.35\t1.07\t2.03\t63.32\n+A03\t2226\t10.96\t70.4\t0.54\t2.41\t79.41\n+A04\t2528\t9.35\t61.59\t1.66\t2.14\t74.9\n+A05\t1827\t11.87\t73.78\t0.66\t2.27\t79.31\n+A06\t2337\t8.69\t58.49\t1.07\t1.87\t62.34\n+A07\t2233\t9.7\t63.41\t1.07\t2.32\t77.48\n+A08\t2462\t8.48\t57.39\t1.06\t2.07\t67.32\n+A09\t2790\t9.5\t62.83\t1.65\t2.52\t80.57\n+A10\t2792\t9.19\t60.67\t1.9\t2.38\t73.6\n+A11\t2547\t9.51\t61.76\t1.33\t2.8\t84.6\n+A12\t2629\t9.47\t60.94\t2.09\t2.42\t72.34\n+A13\t1655\t11.8\t71.24\t0.85\t2.3\t71.88\n+A14\t2647\t8.27\t52.13\t2.15\t2.37\t72.76\n+A15\t2300\t11.5\t72.17\t0.57\t2.68\t86.26\n+A16\t2030\t11.71\t71.63\t0.74\t2.66\t89.03\n+A17\t2124\t9.78\t63.89\t1.13\t2.45\t81.13\n+A18\t2461\t9.14\t59.65\t1.83\t2.3\t77.14\n+A19\t2273\t8.68\t57.85\t0.97\t2.32\t69.57\n+A20\t2281\t10.62\t70.58\t0.7\t1.98\t65.3\n+A21\t2412\t10.49\t69.86\t0.46\t2.07\t70.27\n+A22\t1331\t10.72\t69.65\t0.68\t1.97\t61.54\n+A23\t2245\t9.88\t66.24\t0.4\t2.17\t66.33\n+A24\t2037\t8.13\t53.26\t1.42\t2.06\t70.05\n+B01\t2184\t10.31\t65.29\t0.87\t2.33\t72.4\n+B02\t2104\t9.33\t57.94\t3.09\t2.44\t79.26\n+B03\t1639\t11.13\t69.68\t0.55\t2.03\t67.42\n+B04\t2467\t9.84\t64.33\t0.77\t2.03\t67.95\n+B05\t1818\t11.75\t75.25\t0.66\t1.97\t68.96\n+B06\t1769\t9.08\t57.32\t2.43\t2.29\t69.18\n+B07\t1654\t12.22\t75.7\t0.6\t2.14\t75.29\n+B08\t2199\t10.04\t68.58\t0.73\t2.43\t73.55\n+B09\t2043\t8.74\t59.03\t1.22\t1.96\t57.65\n+B10\t1329\t11.6\t73.06\t0.68\t2.04\t58.75\n+B11\t2533\t7.31\t47.06\t3.83\t3.01\t95.3\n+B12\t2712\t9.31\t61.98\t2.06\t2.49\t75.2\n+B13\t1824\t10.83\t68.42\t1.54\t2.45\t80.09\n+B14\t2718\t7.68\t49.74\t4.01\t2.54\t81.37\n+B15\t2443\t10.4\t68.81\t1.02\t2.64\t91.33\n+B16\t2061\t11.82\t77.1\t0.39\t2.53\t87.74\n+B17\t2088\t10.83\t70.69\t0.62\t2.22\t74.12\n+B18\t2730\t10.36\t70.4\t0.81\t2.39\t78.69\n+B19\t2279\t8.09\t54.28\t1.14\t1.98\t61.28\n+B20\t2371\t12.37\t78.28\t0.25\t2.23\t78.36\n+B21\t2114\t10.49\t71.85\t0.85\t2.32\t73.66\n+B22\t2355\t9.84\t66.71\t0.72\t2.04\t64.63\n+B23\t1154\t11.75\t72.1\t0.35\t2.35\t65.16\n+B24\t1646\t7.49\t50.12\t1.82\t2.11\t64.74\n+C01\t2356\t9.67\t64.43\t1.02\t2.07\t61.55\n+C02\t2680\t10.27\t67.57\t0.82\t2.03\t60.64\n+C03\t2305\t8.51\t55.88\t1.56\t1.87\t56.38\n+C04\t2510\t9.55\t63.55\t1\t2.02\t58.22\n+C05\t2650\t10.23\t67.96\t0.3\t1.95\t59.48\n+C06\t2918\t9.76\t64.98\t0.69\t2.21\t65.35\n+C07\t2618\t8.28\t55.39\t1.26\t2.42\t68.98\n+C08\t2654\t9.56\t65.3\t1.09\t2.52\t75.17\n+C09\t2828\t8.44\t57.39\t1.34\t2.21\t63.59\n+C10\t2877\t9.48\t64.75\t1.32\t2.59\t77.38\n+C11\t2441\t9.78\t65.38\t1.47\t2.38\t73.63\n+C12\t2870\t7.1\t47.04\t3.69\t2.87\t88.54\n+C13\t3202\t9.02\t59.93\t1.72\t2.43\t78.2\n+C14\t2619\t8.63\t57.43\t2.1\t2.93\t95.11\n+C15\t2716\t8.82\t58.73\t1.18\t2.46\t78.45\n+C16\t2413\t10.72\t71.07\t0.33\t2.62\t84.52\n+C17\t2893\t8.18\t56.14\t1.52\t2.8\t83.32\n+C18\t2669\t9.82\t66.62\t0.67\t2.26\t70.88\n+C19\t2272\t10.81\t71.79\t0.79\t2.1\t68.8\n+C20\t2161\t9.42\t63.4\t1.2\t2.79\t79.7\n+C21\t2677\t8.75\t59.62\t0.78\t2.04\t62.52\n+C22\t2406\t9.91\t65\t0.71\t2.08\t68.61\n+C23\t2494\t7.54\t49.44\t2.33\t2.25\t63.14\n+C24\t1760\t7.85\t51.99\t1.82\t2.15\t66.92\n+D01\t2206\t7.2\t45.01\t2.77\t1.41\t36.44\n+D02\t1033\t10.08\t62.25\t1.84\t2.61\t77.42\n+D03\t1744\t7.58\t49.14\t3.04\t2.4\t70.59\n+D04\t2579\t8.78\t59.83\t1.2\t2.12\t62.68\n+D05\t1921\t9.41\t64.08\t0.94\t2.29\t70.86\n+D06\t2352\t9.68\t63.95\t2.3\t2.6\t79.33\n+D07\t1844\t8.86\t59.06\t2.11\t2.76\t85.21\n+D08\t2831\t8.45\t56.55\t1.77\t2.62\t78\n+D09\t1803\t9.59\t63.67\t1.22\t2.81\t84.73\n+D10\t2531\t9.03\t59.9\t1.78\t2.64\t75.75\n+D11\t1942\t7.37\t48.51\t3.24\t3.1\t95.33\n+D12\t2653\t9.72\t66.34\t1.43\t2.77\t84.49\n+D13\t2624\t6.77\t43.52\t4.54\t3.06\t101.35\n+D14\t2777\t6.68\t43.03\t5.47\t3.36\t106.95\n+D15\t2523\t8.53\t58.7\t1.43\t3.13\t101.22\n+D16\t2532\t9.9\t66.11\t0.87\t2.96\t89.01\n+D17\t2243\t9.92\t66.79\t0.76\t3.15\t105.74\n+D18\t2653\t11.31\t76.1\t0.45\t2.67\t85.7\n+D19\t1806\t11.24\t73.26\t0.44\t2.77\t90.06\n+D20\t2502\t11.17\t74.5\t0.48\t2.58\t76.4\n+D21\t2355\t9.81\t67.22\t0.85\t2.69\t88.68\n+D22\t2036\t11.95\t77.65\t0.29\t2.54\t82.78\n+D23\t4\t19.75\t100\t0\t1.5\t74.25\n+D24\t2056\t7.06\t45.82\t1.9\t2.27\t76.56\n+E01\t1953\t7.89\t52.02\t2.36\t2.09\t64.14\n+E02\t58\t10.38\t67.24\t6.9\t2.34\t81.33\n+E03\t1429\t11\t70.89\t0.91\t2.09\t65.5\n+E04\t2419\t9.41\t61.06\t1.2\t2.4\t69.87\n+E05\t2326\t9.41\t62.64\t1.25\t2.36\t69.72\n+E06\t2281\t9.32\t61.03\t2.59\t2.88\t89.16\n+E07\t2524\t7.92\t52.61\t2.73\t2.63\t78\n+E08\t2444\t9.17\t62.19\t1.51\t2.8\t84.21\n+E09\t2402\t9.13\t60.95\t1.5\t2.6\t78.8\n+E10\t2470\t9.23\t60.89\t1.94\t2.64\t78.64\n+E11\t2387\t9.57\t63.3\t1.59\t2.58\t80.7\n+E12\t2812\t9.54\t'..b'\t1.3\t2.41\t65.07\n+L12\t2348\t11.87\t76.11\t0.38\t2.63\t78.84\n+L13\t2197\t9.55\t63.63\t1.14\t2.37\t67.98\n+L14\t2411\t10.23\t68.56\t0.91\t2.61\t76.71\n+L15\t2815\t8.27\t54.03\t2.1\t2.26\t64.29\n+L16\t2498\t8.88\t58.93\t1.44\t2.24\t64.05\n+L17\t2493\t9.81\t67.19\t0.96\t2.22\t67.86\n+L18\t2709\t8.11\t53.78\t2.03\t2.2\t60.62\n+L19\t2416\t8.75\t59.89\t1.28\t2.54\t75.84\n+L20\t2081\t10.65\t69.1\t0.62\t2.25\t72.08\n+L21\t2376\t10.08\t68.9\t0.67\t2.33\t72.37\n+L22\t1528\t7.56\t48.3\t3.99\t2.6\t77.79\n+L23\t2344\t12.22\t77.05\t0.34\t2.26\t68.61\n+L24\t1646\t9.04\t58.81\t1.7\t1.8\t55.4\n+M01\t2012\t9.29\t60.04\t1.79\t2.3\t65.75\n+M02\t1813\t11.41\t72.31\t0.77\t2.2\t66.88\n+M03\t1962\t9.57\t60.14\t2.14\t2.43\t73.04\n+M04\t1816\t11.38\t72.91\t0.88\t2.07\t66.33\n+M05\t2155\t8.49\t55.96\t3.62\t2.4\t76.36\n+M06\t1993\t11.24\t75.01\t0.85\t1.94\t63.19\n+M07\t2175\t10.08\t64.69\t1.52\t2.39\t70.2\n+M08\t2309\t10.12\t67.43\t1.17\t2.16\t65.42\n+M09\t2005\t8.1\t53.27\t2.49\t2.33\t64.79\n+M10\t2786\t9.29\t62.1\t1.4\t2.45\t66.01\n+M11\t2191\t10.62\t70.61\t0.46\t2.43\t69.75\n+M12\t2571\t10.68\t70.48\t0.51\t2.23\t66.84\n+M13\t2492\t10.03\t65.85\t0.88\t2.33\t70.78\n+M14\t2326\t10.11\t66.38\t0.86\t2.51\t73.36\n+M15\t2134\t9.57\t63.96\t1.73\t2.41\t70.35\n+M16\t2637\t9.38\t63.56\t1.63\t2.36\t68.77\n+M17\t2058\t9.33\t60.74\t1.65\t2.36\t68.1\n+M18\t2428\t9.96\t65.98\t0.66\t2.42\t72.35\n+M19\t1955\t10.45\t67.88\t0.82\t1.96\t58.52\n+M20\t2349\t8.09\t53.34\t2.68\t2.76\t83.89\n+M21\t2413\t9.06\t60.92\t1.41\t2.12\t66.1\n+M22\t2398\t10.66\t71.18\t0.75\t2.4\t73.38\n+M23\t2369\t9.28\t60.57\t1.1\t2.22\t65.44\n+M24\t1753\t7.99\t52.48\t2\t2.31\t73.49\n+N01\t2349\t9.7\t62.96\t1.23\t2\t54.24\n+N02\t1100\t9.78\t65.64\t1.91\t2.11\t59.64\n+N03\t1959\t11.19\t70.7\t1.07\t2.13\t63.27\n+N04\t2547\t9.07\t60.35\t1.53\t2.17\t60.21\n+N05\t1861\t6.58\t41.91\t5.59\t2.15\t58.81\n+N06\t2667\t7.91\t50.69\t3.11\t2.25\t62.86\n+N07\t2841\t7.86\t52.34\t1.9\t2.25\t59.96\n+N08\t2090\t9.2\t60.53\t2.11\t2.45\t68.68\n+N09\t2292\t10.12\t67.32\t0.96\t2.14\t56.57\n+N10\t1988\t8.68\t57.8\t1.51\t2.37\t60.56\n+N11\t1850\t9.76\t63.3\t1.08\t2.16\t58.67\n+N12\t2692\t9.25\t62.33\t0.74\t2.27\t62.41\n+N13\t2556\t8.4\t54.3\t2.58\t2.69\t77.77\n+N14\t2718\t6.73\t42.9\t3.42\t2.63\t70.67\n+N15\t1790\t10.56\t70.06\t0.78\t2.5\t71.66\n+N16\t2357\t10.09\t68.65\t0.89\t2.38\t71.39\n+N17\t1855\t11.31\t73.75\t0.65\t2.26\t69.82\n+N18\t2912\t9.07\t61.81\t1.17\t2.43\t70.12\n+N19\t2774\t8.88\t59.7\t1.95\t2.7\t80.08\n+N20\t2244\t7.66\t51.16\t3.03\t2.61\t72.69\n+N21\t2607\t6.2\t38.59\t4.99\t2.53\t74.74\n+N22\t1606\t10.13\t66.63\t1\t2.57\t75.63\n+N23\t2548\t10.1\t69.31\t0.82\t2.3\t69.19\n+N24\t1885\t8.58\t57.93\t1.86\t2.42\t76.91\n+O01\t2211\t7.97\t50.11\t4.84\t2.51\t75.51\n+O02\t1992\t10.62\t66.16\t2.11\t1.97\t57.64\n+O03\t2127\t9.32\t59.43\t3.57\t2.23\t66.12\n+O04\t2209\t11.3\t71.57\t0.91\t2.08\t62.99\n+O05\t2659\t9.12\t61.34\t1.32\t1.85\t52.69\n+O06\t2635\t8.44\t54.99\t3.19\t2.32\t68.44\n+O07\t2715\t9.04\t59.08\t1.73\t2.07\t59.75\n+O08\t2380\t8.6\t58.24\t1.39\t2.08\t54.5\n+O09\t2660\t9.1\t60.45\t1.39\t2.11\t57.22\n+O10\t2754\t9.46\t63.62\t1.6\t2.16\t59.51\n+O11\t2441\t10.22\t66.41\t1.31\t2.14\t62.51\n+O12\t2149\t10.7\t68.96\t1.07\t1.98\t56.79\n+O13\t1852\t9.47\t60.21\t2\t2.11\t62.8\n+O14\t2402\t10.61\t68.53\t0.67\t2.25\t70.24\n+O15\t2391\t10.34\t69.97\t1.21\t2.42\t77.32\n+O16\t2544\t9.71\t62.62\t1.42\t2.23\t65.64\n+O17\t2212\t9.12\t60.53\t1.18\t2.18\t65.33\n+O18\t2282\t8.64\t57.27\t2.76\t2.5\t70.41\n+O19\t2386\t9.37\t63.45\t1.22\t1.86\t55.53\n+O20\t1851\t8.95\t59.75\t1.24\t1.93\t53.9\n+O21\t2400\t8.57\t56.79\t2.29\t2.2\t66.64\n+O22\t2414\t9.52\t63.92\t1.33\t2.3\t66.6\n+O23\t2636\t8.44\t55.54\t2.2\t2.27\t64.76\n+O24\t2115\t6.49\t40.28\t4.4\t2.68\t77.69\n+P01\t1588\t4.5\t24.5\t12.59\t2.79\t86.44\n+P02\t2169\t5.6\t32.6\t6.22\t2.01\t52.67\n+P03\t1924\t7.28\t47.97\t2.86\t1.75\t47.57\n+P04\t2189\t7.91\t50.57\t2.7\t1.82\t51.07\n+P05\t1911\t8.01\t52.8\t1.88\t2.06\t51.74\n+P06\t2083\t7.87\t51.32\t2.4\t1.85\t48.44\n+P07\t2465\t4.52\t23.85\t11.03\t2.38\t67.92\n+P08\t2061\t6.89\t43.81\t3.93\t2.19\t57.17\n+P09\t2394\t8.75\t56.27\t1.71\t1.8\t48.47\n+P10\t2095\t8.88\t59\t1.53\t2.14\t56.81\n+P11\t2744\t8.51\t57.14\t1.38\t2.14\t59.91\n+P12\t2863\t8.12\t55.4\t1.5\t1.96\t52.69\n+P13\t2294\t8.23\t55.32\t1.96\t2.09\t55.48\n+P14\t2386\t7.09\t45.52\t2.1\t2.21\t60.22\n+P15\t1721\t8.98\t61.13\t1.57\t2.24\t61.47\n+P16\t2550\t6.79\t43.37\t2.59\t2.23\t60.22\n+P17\t2533\t7.36\t48.28\t2.09\t2.3\t65.8\n+P18\t2539\t8.56\t57.74\t1.61\t2.16\t59.73\n+P19\t2234\t7.78\t50.31\t2.69\t1.92\t53.58\n+P20\t2680\t8.03\t53.66\t1.34\t2\t56.58\n+P21\t2361\t9.24\t61.54\t0.93\t1.99\t57.69\n+P22\t2209\t8.39\t56.81\t1.54\t1.74\t49.86\n+P23\t2365\t6.57\t41.31\t4.02\t2.1\t56.17\n+P24\t1448\t2.74\t10.29\t26.1\t1.98\t67.63\n'
b
diff -r 000000000000 -r 8fb3d398725a test-data/calc_z_prime.tabular
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/calc_z_prime.tabular Wed Jun 01 03:37:27 2016 -0400
b
@@ -0,0 +1,49 @@
+plate control.duo z.prime.factor
+Table_1 mock/Hamp -21.87
+Table_2 mock/Hamp -17.1
+Table_3 mock/Hamp -11.02
+Table_4 mock/Hamp -9.96
+Table_5 mock/Hamp -6.74
+Table_6 mock/Hamp -4.12
+Table_1 mock/MPEG1 -6.17
+Table_2 mock/MPEG1 -10.38
+Table_3 mock/MPEG1 -5.13
+Table_4 mock/MPEG1 0.21
+Table_5 mock/MPEG1 -12.56
+Table_6 mock/MPEG1 -5.8
+Table_1 mock/PLK -1.34
+Table_2 mock/PLK -9
+Table_3 mock/PLK -6.86
+Table_4 mock/PLK -2.82
+Table_5 mock/PLK -3.55
+Table_6 mock/PLK -3.6
+Table_1 mock/TOX 0.28
+Table_2 mock/TOX -1.6
+Table_3 mock/TOX -1.28
+Table_4 mock/TOX -14.8
+Table_5 mock/TOX -29.08
+Table_6 mock/TOX -4.33
+Table_1 OTP/Hamp -17.48
+Table_2 OTP/Hamp -19.11
+Table_3 OTP/Hamp -14.19
+Table_4 OTP/Hamp -5.35
+Table_5 OTP/Hamp -17.35
+Table_6 OTP/Hamp -9.95
+Table_1 OTP/MPEG1 -5.13
+Table_2 OTP/MPEG1 -572.82
+Table_3 OTP/MPEG1 -56.41
+Table_4 OTP/MPEG1 -8.07
+Table_5 OTP/MPEG1 -69.32
+Table_6 OTP/MPEG1 -35.84
+Table_1 OTP/PLK -1.03
+Table_2 OTP/PLK -37.38
+Table_3 OTP/PLK -138.48
+Table_4 OTP/PLK -10.57
+Table_5 OTP/PLK -6.62
+Table_6 OTP/PLK -10.23
+Table_1 OTP/TOX 0.42
+Table_2 OTP/TOX -1.75
+Table_3 OTP/TOX -1.96
+Table_4 OTP/TOX -20.12
+Table_5 OTP/TOX -61.09
+Table_6 OTP/TOX -6.57
b
diff -r 000000000000 -r 8fb3d398725a test-data/plate_config.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plate_config.txt Wed Jun 01 03:37:27 2016 -0400
b
@@ -0,0 +1,1 @@
+well type name geneID B02 poscontr Hamp 57817 C02 negcontr OTP -1 D02 poscontr PLK 5347 E02 poscontr TOX -1 F02 negcontr OTP -1 G02 poscontr MPEG1 17476 H02 poscontr TOX -1 I02 poscontr PLK 5347 J02 negcontr OTP -1 K02 poscontr TOX -1 L02 poscontr Hamp 57817 M02 negcontr OTP -1 N02 poscontr PLK 5347 O02 negcontr mock -1 B23 poscontr PLK 5347 C23 negcontr OTP -1 D23 poscontr TOX -1 E23 negcontr OTP -1 F23 poscontr PLK 5347 G23 poscontr MPEG1 17476 H23 poscontr TOX -1 I23 negcontr OTP -1 J23 poscontr PLK 5347 K23 poscontr Hamp 57817 L23 negcontr OTP -1 M23 poscontr MPEG1 17476 N23 negcontr OTP -1 O23 negcontr mock -1
\ No newline at end of file