Mercurial > repos > jesse-erdmann > tapdance
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"); |