0
|
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");
|