comparison lib/Fisher_clean.pl @ 0:1437a2df99c0

Uploaded
author jesse-erdmann
date Fri, 09 Dec 2011 11:56:56 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1437a2df99c0
1 #this is a script to automate data workup following Fishers exact test association analyses
2 # This script takes the R_result and the names file and then generates
3 #4 4xls spreadsheets
4 # 3 images
5 @name;
6 @sub_name;
7 @result;
8 @sub_result;
9 $count = 0;
10 unless (-d "results/Assoc") {
11 mkdir("results/Assoc");
12 }
13 open OUT1, "> results/Assoc/Associations.xls";
14 open OUT2, "> results/Assoc/Ann_cis_list.txt";
15 open OUT3, "> results/Assoc/Ann_cis_table.xls";
16 print OUT3 "Event1\tEvent2\tFET Pvalue\tBonferroni Significance\tBH 20%FDR Significancei\n";
17 open OUT4, "> results/Assoc/Cis_cis_list.txt";
18 open OUT5, "> results/Assoc/Cis_cis_table.xls";
19 print OUT5 "Event1\tEvent2\tFET Pvalue\tBonferroni Significance\tBH 20%FDR Significance\n";
20 open OUT6, "> results/Assoc/Ann_ann_list.txt";
21 open OUT7, "> results/Assoc/Ann_Ann_table.xls";
22 print OUT7 "Event1\tEvent2\tFET Pvalue\tBonferroni Significance\tBH 20%FDR Significance\n";
23 open SOURCE, "< results/Assoc/R_result.txt";
24 @tableAnnCis;
25 @tableAnnAnn;
26 @tableCisCis;
27 while (defined($line = <SOURCE>)) {
28 $count++;
29 chomp $line;
30 @result= split(/\t/, $line);
31 @sub_result= split(/\s=\s|\s<\s/, $result[1]);
32 print $sub_result[1];
33 $pval[$count]= $sub_result[1];
34 }
35 $count = 0;
36 open SOURCE, "< results/Assoc/Fisher_pre_named.txt";
37 while (defined($line = <SOURCE>)) {
38 $count++;
39 chomp $line;
40 @name= split(/\t/, $line);
41 @sub_name= split(/__/, $name[0]);
42 print OUT1 "$line\t$pval[$count]\n";
43 if (($sub_name[1] =~m/descriptor/) and ($sub_name[0] !~ m/descriptor/)) {
44 $viewpval= -(log($pval[$count])/log(10));
45 print OUT2 "$sub_name[1]\t$sub_name[0]\t$viewpval\n";
46 if ($pval[$count] < 0.05) {
47 $data4table = "$sub_name[1]\t$sub_name[0]\t$pval[$count]\n";
48 push(@tableAnnCis, $data4table);
49 }
50 }
51
52
53 if (($sub_name[1] !~m/descriptor/) and ($sub_name[0] !~ m/descriptor/)) {
54 $viewpval= -log($pval[$count]);
55 print OUT4 "$sub_name[1]\t$sub_name[0]\t$viewpval\n";
56 print OUT4 "$sub_name[0]\t$sub_name[1]\t$viewpval\n";
57 if ($pval[$count] < 0.05) {
58 $data4table = "$sub_name[1]\t$sub_name[0]\t$pval[$count]\n";
59 push(@tableCisCis, $data4table);
60 }
61 }
62
63 if (($sub_name[1] =~m/descriptor/) and ($sub_name[0] =~ m/descriptor/)) {
64 $viewpval= -log($pval[$count]);
65 print OUT6 "$sub_name[1]\t$sub_name[0]\t$viewpval\n";
66 print OUT6 "$sub_name[0]\t$sub_name[1]\t$viewpval\n";
67 if ($pval[$count] < 0.05) {
68 $data4table = "$sub_name[1]\t$sub_name[0]\t$pval[$count]\n";
69 push(@tableAnnAnn, $data4table);
70 }
71 }
72
73
74 }
75 @sortedAnnCis = sort { (split '\t', $a)[2] <=> (split '\t', $b)[2] } @tableAnnCis;
76 @sortedCisCis = sort { (split '\t', $a)[2] <=> (split '\t', $b)[2] } @tableCisCis;
77 @sortedAnnAnn = sort { (split '\t', $a)[2] <=> (split '\t', $b)[2] } @tableAnnAnn;
78
79 open SOURCE, "< FISH/multi_test.txt";
80 while (defined($line = <SOURCE>)) {
81 chomp $line;
82 @name=split(/\t/, $line);
83 $corrAnnCis = $name[2];
84 $corrCisCis = $name[3];
85 $corrAnnAnn = $name[4];
86 }
87
88 $pos = 1;
89 foreach (@sortedAnnCis) {
90 $bonf = 0.05/$corrAnnCis;
91 $fdr = ($pos/$corrAnnCis)*0.20;
92 $pos++;
93 chomp $_;
94 print OUT3 "$_\t$bonf\t$fdr\n";
95 }
96 $pos = 1;
97
98 foreach (@sortedCisCis) {
99 $bonf = 0.05/$corrCisCis;
100 $fdr = ($pos/$corrCisCis)*0.20;
101 $pos++;
102 chomp $_;
103 print OUT5 "$_\t$bonf\t$fdr\n";
104 }
105 $pos =1;
106 foreach (@sortedAnnAnn) {
107 $bonf = 0.05/$corrAnnAnn;
108 $fdr = ($pos/$corrAnnAnn)*0.20;
109 $pos++;
110 chomp $_;
111 print OUT7 "$_\t$bonf\t$fdr\n";
112 }
113
114
115 close OUT7;
116 close OUT6;
117 close OUT5;
118 close OUT4;
119 close OUT3;
120 close OUT2;
121 close OUT1;
122 system ("perl lib/list2tab.pl 1 2 3 0 results/Assoc/Ann_cis_list.txt > results/Assoc/Ann_cis_matrix.txt");
123 system ("perl lib/list2tab.pl 1 2 3 0 results/Assoc/Cis_cis_list.txt > results/Assoc/Cis_cis_matrix.txt");
124 system ("perl lib/list2tab.pl 1 2 3 0 results/Assoc/Ann_ann_list.txt > results/Assoc/Ann_ann_matrix.txt");