changeset 0:8fb3d398725a draft default tip

Uploaded
author pmac
date Wed, 01 Jun 2016 03:37:27 -0400
parents
children
files calculateZPrimeFactor.pl calculateZPrimeFactor.xml test-data/150615-HR-12015-01A.linear test-data/calc_z_prime.tabular test-data/plate_config.txt
diffstat 5 files changed, 628 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/calculateZPrimeFactor.xml	Wed Jun 01 03:37:27 2016 -0400
@@ -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>
--- /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
@@ -0,0 +1,385 @@
+#Well	Table_1	Table_2	Table_3	Table_4	Table_5	Table_6
+A01	2215	8.88	55.62	2.57	2.91	78.76
+A02	2811	8.61	57.35	1.07	2.03	63.32
+A03	2226	10.96	70.4	0.54	2.41	79.41
+A04	2528	9.35	61.59	1.66	2.14	74.9
+A05	1827	11.87	73.78	0.66	2.27	79.31
+A06	2337	8.69	58.49	1.07	1.87	62.34
+A07	2233	9.7	63.41	1.07	2.32	77.48
+A08	2462	8.48	57.39	1.06	2.07	67.32
+A09	2790	9.5	62.83	1.65	2.52	80.57
+A10	2792	9.19	60.67	1.9	2.38	73.6
+A11	2547	9.51	61.76	1.33	2.8	84.6
+A12	2629	9.47	60.94	2.09	2.42	72.34
+A13	1655	11.8	71.24	0.85	2.3	71.88
+A14	2647	8.27	52.13	2.15	2.37	72.76
+A15	2300	11.5	72.17	0.57	2.68	86.26
+A16	2030	11.71	71.63	0.74	2.66	89.03
+A17	2124	9.78	63.89	1.13	2.45	81.13
+A18	2461	9.14	59.65	1.83	2.3	77.14
+A19	2273	8.68	57.85	0.97	2.32	69.57
+A20	2281	10.62	70.58	0.7	1.98	65.3
+A21	2412	10.49	69.86	0.46	2.07	70.27
+A22	1331	10.72	69.65	0.68	1.97	61.54
+A23	2245	9.88	66.24	0.4	2.17	66.33
+A24	2037	8.13	53.26	1.42	2.06	70.05
+B01	2184	10.31	65.29	0.87	2.33	72.4
+B02	2104	9.33	57.94	3.09	2.44	79.26
+B03	1639	11.13	69.68	0.55	2.03	67.42
+B04	2467	9.84	64.33	0.77	2.03	67.95
+B05	1818	11.75	75.25	0.66	1.97	68.96
+B06	1769	9.08	57.32	2.43	2.29	69.18
+B07	1654	12.22	75.7	0.6	2.14	75.29
+B08	2199	10.04	68.58	0.73	2.43	73.55
+B09	2043	8.74	59.03	1.22	1.96	57.65
+B10	1329	11.6	73.06	0.68	2.04	58.75
+B11	2533	7.31	47.06	3.83	3.01	95.3
+B12	2712	9.31	61.98	2.06	2.49	75.2
+B13	1824	10.83	68.42	1.54	2.45	80.09
+B14	2718	7.68	49.74	4.01	2.54	81.37
+B15	2443	10.4	68.81	1.02	2.64	91.33
+B16	2061	11.82	77.1	0.39	2.53	87.74
+B17	2088	10.83	70.69	0.62	2.22	74.12
+B18	2730	10.36	70.4	0.81	2.39	78.69
+B19	2279	8.09	54.28	1.14	1.98	61.28
+B20	2371	12.37	78.28	0.25	2.23	78.36
+B21	2114	10.49	71.85	0.85	2.32	73.66
+B22	2355	9.84	66.71	0.72	2.04	64.63
+B23	1154	11.75	72.1	0.35	2.35	65.16
+B24	1646	7.49	50.12	1.82	2.11	64.74
+C01	2356	9.67	64.43	1.02	2.07	61.55
+C02	2680	10.27	67.57	0.82	2.03	60.64
+C03	2305	8.51	55.88	1.56	1.87	56.38
+C04	2510	9.55	63.55	1	2.02	58.22
+C05	2650	10.23	67.96	0.3	1.95	59.48
+C06	2918	9.76	64.98	0.69	2.21	65.35
+C07	2618	8.28	55.39	1.26	2.42	68.98
+C08	2654	9.56	65.3	1.09	2.52	75.17
+C09	2828	8.44	57.39	1.34	2.21	63.59
+C10	2877	9.48	64.75	1.32	2.59	77.38
+C11	2441	9.78	65.38	1.47	2.38	73.63
+C12	2870	7.1	47.04	3.69	2.87	88.54
+C13	3202	9.02	59.93	1.72	2.43	78.2
+C14	2619	8.63	57.43	2.1	2.93	95.11
+C15	2716	8.82	58.73	1.18	2.46	78.45
+C16	2413	10.72	71.07	0.33	2.62	84.52
+C17	2893	8.18	56.14	1.52	2.8	83.32
+C18	2669	9.82	66.62	0.67	2.26	70.88
+C19	2272	10.81	71.79	0.79	2.1	68.8
+C20	2161	9.42	63.4	1.2	2.79	79.7
+C21	2677	8.75	59.62	0.78	2.04	62.52
+C22	2406	9.91	65	0.71	2.08	68.61
+C23	2494	7.54	49.44	2.33	2.25	63.14
+C24	1760	7.85	51.99	1.82	2.15	66.92
+D01	2206	7.2	45.01	2.77	1.41	36.44
+D02	1033	10.08	62.25	1.84	2.61	77.42
+D03	1744	7.58	49.14	3.04	2.4	70.59
+D04	2579	8.78	59.83	1.2	2.12	62.68
+D05	1921	9.41	64.08	0.94	2.29	70.86
+D06	2352	9.68	63.95	2.3	2.6	79.33
+D07	1844	8.86	59.06	2.11	2.76	85.21
+D08	2831	8.45	56.55	1.77	2.62	78
+D09	1803	9.59	63.67	1.22	2.81	84.73
+D10	2531	9.03	59.9	1.78	2.64	75.75
+D11	1942	7.37	48.51	3.24	3.1	95.33
+D12	2653	9.72	66.34	1.43	2.77	84.49
+D13	2624	6.77	43.52	4.54	3.06	101.35
+D14	2777	6.68	43.03	5.47	3.36	106.95
+D15	2523	8.53	58.7	1.43	3.13	101.22
+D16	2532	9.9	66.11	0.87	2.96	89.01
+D17	2243	9.92	66.79	0.76	3.15	105.74
+D18	2653	11.31	76.1	0.45	2.67	85.7
+D19	1806	11.24	73.26	0.44	2.77	90.06
+D20	2502	11.17	74.5	0.48	2.58	76.4
+D21	2355	9.81	67.22	0.85	2.69	88.68
+D22	2036	11.95	77.65	0.29	2.54	82.78
+D23	4	19.75	100	0	1.5	74.25
+D24	2056	7.06	45.82	1.9	2.27	76.56
+E01	1953	7.89	52.02	2.36	2.09	64.14
+E02	58	10.38	67.24	6.9	2.34	81.33
+E03	1429	11	70.89	0.91	2.09	65.5
+E04	2419	9.41	61.06	1.2	2.4	69.87
+E05	2326	9.41	62.64	1.25	2.36	69.72
+E06	2281	9.32	61.03	2.59	2.88	89.16
+E07	2524	7.92	52.61	2.73	2.63	78
+E08	2444	9.17	62.19	1.51	2.8	84.21
+E09	2402	9.13	60.95	1.5	2.6	78.8
+E10	2470	9.23	60.89	1.94	2.64	78.64
+E11	2387	9.57	63.3	1.59	2.58	80.7
+E12	2812	9.54	64.76	1.21	2.61	83.54
+E13	2121	9.11	60.68	2.22	2.37	70.04
+E14	2467	8.67	58.25	1.34	2.65	87.2
+E15	1932	6.3	39.23	5.64	2.89	91.38
+E16	2207	9.54	63.57	1.54	2.63	86.13
+E17	866	11.03	69.98	0.81	2.23	71.41
+E18	1665	8.31	55.56	2.34	3.14	93.34
+E19	1668	11.19	72.96	0.66	2.3	73.16
+E20	1942	10.59	70.19	0.46	2.46	76.69
+E21	2717	10.46	69.82	0.44	2.22	72.24
+E22	1995	9.92	67.27	1.45	2.73	86.76
+E23	2686	8.98	60.65	1.19	2.33	71.8
+E24	1711	8.25	53.71	1.81	2.43	78.22
+F01	2647	8.61	56.89	1.44	2.05	56.86
+F02	1866	10.14	66.4	0.91	1.86	55.02
+F03	2327	7.3	46.41	4.08	2.04	60.29
+F04	1831	6.3	39.16	6.66	2.25	67.66
+F05	2081	8.89	57.33	2.4	2.34	70.01
+F06	2360	9.29	62.12	2.54	2.41	77.11
+F07	2465	8.21	54.36	2.92	2.59	77.73
+F08	2561	7.36	49	2.89	2.31	66.52
+F09	2242	9.81	66.77	1.43	2.47	72.7
+F10	2595	6.08	37.5	6.2	2.39	68.73
+F11	2601	8.19	54.48	3.65	2.77	96.56
+F12	2075	9.72	63.04	1.59	2.47	72.8
+F13	2452	9.25	62.11	1.51	2.66	82.33
+F14	2506	8.22	53.79	2.04	2.54	77.56
+F15	2228	8.19	53.82	2.65	2.91	103.54
+F16	2869	7.83	52.49	1.92	2.58	76.14
+F17	1322	8.78	60.14	1.97	2.52	72.6
+F18	2712	7.56	50	3.39	2.68	81.09
+F19	2623	9	60.62	1.03	2.41	73.71
+F20	2320	9.37	62.5	1.51	2.43	70.9
+F21	2528	9.04	59.53	1.15	2.2	65.33
+F22	1797	6.44	39.96	4.67	2.38	70.58
+F23	1933	10.26	67.36	0.93	2.5	71.62
+F24	1759	8.4	56.17	1.99	1.92	67.93
+G01	2715	10.83	72.08	0.59	1.98	58.65
+G02	2567	11.22	71.76	0.51	1.95	59.34
+G03	2346	8.73	57.37	1.49	2.13	61.93
+G04	2536	7.29	46.77	4.89	2.24	65.72
+G05	2157	8.33	54.38	2.23	2.35	65.99
+G06	2549	6.64	41.66	5.1	2.59	78.36
+G07	2368	9.22	61.15	1.35	2.41	73.63
+G08	2798	9.61	63.44	1.18	2.46	72.8
+G09	2595	8.97	59.73	1.93	2.4	68.47
+G10	3309	6.57	42.16	3.84	2.34	62.92
+G11	2701	7.84	53.05	2.3	2.46	68.96
+G12	2916	7.37	49.04	3.19	2.61	72.96
+G13	2664	9.26	63.48	1.73	2.88	88.03
+G14	2998	7.58	51.17	2.94	2.6	75.25
+G15	2257	9.19	63.14	1.2	2.49	71.58
+G16	2850	10.29	70.53	1.09	2.33	71.99
+G17	2559	7.88	52.25	2.34	2.67	83.35
+G18	2684	8.49	55.48	2.72	2.69	83.61
+G19	2852	7.68	50.25	3.54	2.78	87.58
+G20	2779	7.11	45.88	3.17	2.58	73.2
+G21	2448	9.83	67.28	0.69	2.52	77.41
+G22	2741	7.4	48.23	3.1	2.42	68.04
+G23	2945	10.08	70.12	0.75	2.52	78.27
+G24	1740	6.25	38.91	3.33	2.19	65.21
+H01	2214	12.71	78.73	0.36	2.1	68.06
+H02	11	19.73	90.91	0	2.18	67.36
+H03	1344	10.4	65.77	1.86	2.36	69.92
+H04	1937	7.72	49.3	3.1	2.42	70.48
+H05	2130	9.08	60.19	1.41	2.39	67.18
+H06	2637	8.69	56.16	1.71	2.34	68.97
+H07	2278	10.21	67.08	1.14	2.85	85.95
+H08	2020	10.78	72.62	1.09	2.56	74.15
+H09	1780	10.32	67.25	1.91	3.05	82.88
+H10	2262	7.84	52.43	2.25	3.01	78.92
+H11	2130	12.63	80.47	0.47	3.17	96.52
+H12	2404	9.57	63.89	1.87	3.07	87.48
+H13	1872	10.9	70.78	1.23	3.15	91.34
+H14	2598	9.23	63.01	1.31	2.65	76.86
+H15	2164	10.57	72.87	1.06	2.74	78.64
+H16	2475	9.77	66.87	0.73	2.86	90.95
+H17	1783	11.15	72.74	0.67	2.97	88.69
+H18	2114	9.08	60.83	1.32	2.87	84.31
+H19	2621	7.59	49.83	3.13	2.69	81.29
+H20	2623	7.95	53.49	2.06	2.34	68.36
+H21	1954	10.2	66.27	1.64	2.5	78.56
+H22	2356	9.53	62.82	1.57	3.31	99.15
+H23	8	26	100	0	3.25	139
+H24	1421	7.88	47.64	4.93	1.98	78.52
+I01	2071	12.39	78.17	0.43	2.11	61.97
+I02	1366	12.04	75.62	0.88	2.36	65.33
+I03	1769	9.91	63.2	1.19	2.13	56.36
+I04	2389	10.75	70.24	0.63	2.28	65.29
+I05	1983	8	51.49	2.57	2.69	74.38
+I06	2209	9.97	64.46	1.45	2.9	80.24
+I07	2524	9.56	62.08	1.78	3.01	88.14
+I08	1961	11.84	75.68	0.66	3.23	88.78
+I09	1925	11.12	71.27	0.88	2.82	78.49
+I10	2364	10.85	69.42	0.89	3.17	89.68
+I11	1809	12.46	77.34	0.44	2.66	76.47
+I12	2387	10.95	70.38	0.88	3.15	87.18
+I13	2530	12.5	78.42	0.87	3.04	94.74
+I14	2086	12.23	75.6	0.91	3.47	101.93
+I15	2587	10.9	72.59	0.7	2.84	85.07
+I16	2480	12.24	78.15	0.44	3.45	108.16
+I17	1770	12.3	78.25	0.73	3.12	95.09
+I18	1964	8.3	55.09	2.9	3.32	96.99
+I19	1969	10.6	69.78	1.12	3.11	95.42
+I20	2330	8.19	53.22	2.1	3.43	100.06
+I21	1922	8.76	58.27	1.82	3.08	90.8
+I22	2062	11.61	75.12	0.58	3.06	95.76
+I23	2446	9.95	66.39	1.19	2.99	83.27
+I24	1457	9.09	57.79	2.2	3.49	102.71
+J01	1967	13.45	80.22	0.31	2.06	62
+J02	1954	11.02	71.65	1.23	2.08	57.26
+J03	1402	10.14	67.05	0.86	1.75	48.25
+J04	1316	10.69	70.82	0.68	2.08	59.11
+J05	1784	7	45.8	4.37	2.09	58.3
+J06	2557	7.78	52.33	2.66	2.73	77.66
+J07	1753	10.05	66.29	1.43	2.44	71.51
+J08	1844	11.57	75.43	0.98	2.59	73.92
+J09	1670	9.2	61.44	0.78	2.5	65.14
+J10	2427	9.55	64.19	1.03	2.68	75.03
+J11	2011	11.93	77.03	0.2	2.55	73.74
+J12	1973	11.51	74.71	0.91	2.92	82.11
+J13	2276	11.43	74.74	0.66	3	89.39
+J14	2088	11.24	74.47	0.67	2.94	87.12
+J15	2476	10.48	69.35	0.65	2.77	79.58
+J16	2395	10.95	71.9	0.92	3.22	94.31
+J17	2127	11.9	75.6	0.52	2.8	87.35
+J18	2341	9.92	66.21	0.94	3.11	93.03
+J19	1800	13.06	81.61	0.61	2.54	82.49
+J20	2368	8.52	56.88	1.56	2.67	79.25
+J21	2387	7.99	50.98	2.51	2.99	88.09
+J22	2309	10.5	70.12	0.52	2.64	80.93
+J23	822	8.44	55.6	2.68	3.41	88.31
+J24	1434	11.4	69.67	0.49	2.56	75.84
+K01	2652	8.11	53.96	1.58	1.72	47.85
+K02	209	14.67	84.69	0.96	1.77	51.87
+K03	2838	6.24	38.51	4.33	1.85	52.13
+K04	3001	9.71	65.98	1.03	1.95	56.69
+K05	2873	7.73	52.52	2.89	1.97	54.93
+K06	2327	7.32	47.53	3.52	2.19	61.63
+K07	2870	7.96	54.01	2.37	2.14	62.09
+K08	2914	7.98	53.98	2.16	2.34	64.88
+K09	3239	8.13	55.26	1.82	2.2	59.7
+K10	2663	9.31	62.04	1.05	2.27	60.76
+K11	3009	7.53	49.52	1.5	2.28	62.38
+K12	2521	9.74	65.01	1.19	2.64	71.55
+K13	2470	8.63	58.14	1.74	2.43	68.82
+K14	2648	11.19	73.3	0.6	2.69	79.57
+K15	2692	8.76	58.77	1.63	2.18	64.46
+K16	2915	10.94	72.45	0.51	2.83	83.73
+K17	2653	9.45	64.87	1.39	2.41	73.68
+K18	2661	8.63	57.31	2.37	3.24	86.86
+K19	2647	7.55	49.34	2.34	2.74	82.51
+K20	2221	10.27	69.29	1.44	3.22	93.3
+K21	1987	9.5	63.56	1.56	2.41	70.16
+K22	2557	9.32	60.62	2.11	3.64	108.95
+K23	2367	9.79	65.82	1.31	2.82	81.75
+K24	1498	9.08	58.88	1.94	2.74	86.15
+L01	2370	10.08	67.26	0.97	1.89	53.56
+L02	2240	10.54	68.53	1.12	1.89	56.19
+L03	1355	10.4	68.34	1.11	1.71	48.94
+L04	2608	10.09	67.75	1	2.14	61.59
+L05	2088	8.34	54.21	3.21	2.08	58.54
+L06	2332	9.22	61.62	1.97	2.29	66.29
+L07	1528	9.21	59.95	1.7	2.06	58.84
+L08	2352	9.47	63.95	1.66	2.14	60.65
+L09	2595	9.2	62.62	0.66	2.1	56.05
+L10	2135	8.54	55.64	1.73	2.23	57.12
+L11	2537	8.28	55.54	1.3	2.41	65.07
+L12	2348	11.87	76.11	0.38	2.63	78.84
+L13	2197	9.55	63.63	1.14	2.37	67.98
+L14	2411	10.23	68.56	0.91	2.61	76.71
+L15	2815	8.27	54.03	2.1	2.26	64.29
+L16	2498	8.88	58.93	1.44	2.24	64.05
+L17	2493	9.81	67.19	0.96	2.22	67.86
+L18	2709	8.11	53.78	2.03	2.2	60.62
+L19	2416	8.75	59.89	1.28	2.54	75.84
+L20	2081	10.65	69.1	0.62	2.25	72.08
+L21	2376	10.08	68.9	0.67	2.33	72.37
+L22	1528	7.56	48.3	3.99	2.6	77.79
+L23	2344	12.22	77.05	0.34	2.26	68.61
+L24	1646	9.04	58.81	1.7	1.8	55.4
+M01	2012	9.29	60.04	1.79	2.3	65.75
+M02	1813	11.41	72.31	0.77	2.2	66.88
+M03	1962	9.57	60.14	2.14	2.43	73.04
+M04	1816	11.38	72.91	0.88	2.07	66.33
+M05	2155	8.49	55.96	3.62	2.4	76.36
+M06	1993	11.24	75.01	0.85	1.94	63.19
+M07	2175	10.08	64.69	1.52	2.39	70.2
+M08	2309	10.12	67.43	1.17	2.16	65.42
+M09	2005	8.1	53.27	2.49	2.33	64.79
+M10	2786	9.29	62.1	1.4	2.45	66.01
+M11	2191	10.62	70.61	0.46	2.43	69.75
+M12	2571	10.68	70.48	0.51	2.23	66.84
+M13	2492	10.03	65.85	0.88	2.33	70.78
+M14	2326	10.11	66.38	0.86	2.51	73.36
+M15	2134	9.57	63.96	1.73	2.41	70.35
+M16	2637	9.38	63.56	1.63	2.36	68.77
+M17	2058	9.33	60.74	1.65	2.36	68.1
+M18	2428	9.96	65.98	0.66	2.42	72.35
+M19	1955	10.45	67.88	0.82	1.96	58.52
+M20	2349	8.09	53.34	2.68	2.76	83.89
+M21	2413	9.06	60.92	1.41	2.12	66.1
+M22	2398	10.66	71.18	0.75	2.4	73.38
+M23	2369	9.28	60.57	1.1	2.22	65.44
+M24	1753	7.99	52.48	2	2.31	73.49
+N01	2349	9.7	62.96	1.23	2	54.24
+N02	1100	9.78	65.64	1.91	2.11	59.64
+N03	1959	11.19	70.7	1.07	2.13	63.27
+N04	2547	9.07	60.35	1.53	2.17	60.21
+N05	1861	6.58	41.91	5.59	2.15	58.81
+N06	2667	7.91	50.69	3.11	2.25	62.86
+N07	2841	7.86	52.34	1.9	2.25	59.96
+N08	2090	9.2	60.53	2.11	2.45	68.68
+N09	2292	10.12	67.32	0.96	2.14	56.57
+N10	1988	8.68	57.8	1.51	2.37	60.56
+N11	1850	9.76	63.3	1.08	2.16	58.67
+N12	2692	9.25	62.33	0.74	2.27	62.41
+N13	2556	8.4	54.3	2.58	2.69	77.77
+N14	2718	6.73	42.9	3.42	2.63	70.67
+N15	1790	10.56	70.06	0.78	2.5	71.66
+N16	2357	10.09	68.65	0.89	2.38	71.39
+N17	1855	11.31	73.75	0.65	2.26	69.82
+N18	2912	9.07	61.81	1.17	2.43	70.12
+N19	2774	8.88	59.7	1.95	2.7	80.08
+N20	2244	7.66	51.16	3.03	2.61	72.69
+N21	2607	6.2	38.59	4.99	2.53	74.74
+N22	1606	10.13	66.63	1	2.57	75.63
+N23	2548	10.1	69.31	0.82	2.3	69.19
+N24	1885	8.58	57.93	1.86	2.42	76.91
+O01	2211	7.97	50.11	4.84	2.51	75.51
+O02	1992	10.62	66.16	2.11	1.97	57.64
+O03	2127	9.32	59.43	3.57	2.23	66.12
+O04	2209	11.3	71.57	0.91	2.08	62.99
+O05	2659	9.12	61.34	1.32	1.85	52.69
+O06	2635	8.44	54.99	3.19	2.32	68.44
+O07	2715	9.04	59.08	1.73	2.07	59.75
+O08	2380	8.6	58.24	1.39	2.08	54.5
+O09	2660	9.1	60.45	1.39	2.11	57.22
+O10	2754	9.46	63.62	1.6	2.16	59.51
+O11	2441	10.22	66.41	1.31	2.14	62.51
+O12	2149	10.7	68.96	1.07	1.98	56.79
+O13	1852	9.47	60.21	2	2.11	62.8
+O14	2402	10.61	68.53	0.67	2.25	70.24
+O15	2391	10.34	69.97	1.21	2.42	77.32
+O16	2544	9.71	62.62	1.42	2.23	65.64
+O17	2212	9.12	60.53	1.18	2.18	65.33
+O18	2282	8.64	57.27	2.76	2.5	70.41
+O19	2386	9.37	63.45	1.22	1.86	55.53
+O20	1851	8.95	59.75	1.24	1.93	53.9
+O21	2400	8.57	56.79	2.29	2.2	66.64
+O22	2414	9.52	63.92	1.33	2.3	66.6
+O23	2636	8.44	55.54	2.2	2.27	64.76
+O24	2115	6.49	40.28	4.4	2.68	77.69
+P01	1588	4.5	24.5	12.59	2.79	86.44
+P02	2169	5.6	32.6	6.22	2.01	52.67
+P03	1924	7.28	47.97	2.86	1.75	47.57
+P04	2189	7.91	50.57	2.7	1.82	51.07
+P05	1911	8.01	52.8	1.88	2.06	51.74
+P06	2083	7.87	51.32	2.4	1.85	48.44
+P07	2465	4.52	23.85	11.03	2.38	67.92
+P08	2061	6.89	43.81	3.93	2.19	57.17
+P09	2394	8.75	56.27	1.71	1.8	48.47
+P10	2095	8.88	59	1.53	2.14	56.81
+P11	2744	8.51	57.14	1.38	2.14	59.91
+P12	2863	8.12	55.4	1.5	1.96	52.69
+P13	2294	8.23	55.32	1.96	2.09	55.48
+P14	2386	7.09	45.52	2.1	2.21	60.22
+P15	1721	8.98	61.13	1.57	2.24	61.47
+P16	2550	6.79	43.37	2.59	2.23	60.22
+P17	2533	7.36	48.28	2.09	2.3	65.8
+P18	2539	8.56	57.74	1.61	2.16	59.73
+P19	2234	7.78	50.31	2.69	1.92	53.58
+P20	2680	8.03	53.66	1.34	2	56.58
+P21	2361	9.24	61.54	0.93	1.99	57.69
+P22	2209	8.39	56.81	1.54	1.74	49.86
+P23	2365	6.57	41.31	4.02	2.1	56.17
+P24	1448	2.74	10.29	26.1	1.98	67.63
--- /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
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/plate_config.txt	Wed Jun 01 03:37:27 2016 -0400
@@ -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