[Bio] / FigWebServices / ma_to_tf.cgi Repository:
ViewVC logotype

Annotation of /FigWebServices/ma_to_tf.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (view) (download)

1 : mkubal 1.1 # -*- perl -*-
2 :    
3 :     =pod
4 :    
5 :     =head1 protein_sets_2.cgi
6 :    
7 :     Find transcription factors for affymetrix spot ids
8 :    
9 :     =cut
10 :    
11 :     use FIG;
12 : mkubal 1.3 use FIG_Config;
13 : mkubal 1.1 use HTML;
14 :     use CGI;
15 :     my $cgi=new CGI;
16 :     use LWP::Simple qw(!head); # see the caveat in perldoc LWP about importing two head methods.
17 :    
18 : mkubal 1.4 my @list_of_tfs;
19 :     open(IN,"/home/mkubal/public_html/all_tfs.txt");
20 :     while($_ = <IN>){
21 :     chomp($_);
22 :     push(@list_of_tfs,$_);
23 :     }
24 :     unshift(@list_of_tfs,undef);
25 :     close(IN);
26 :    
27 :    
28 : mkubal 1.1 $fig = new FIG;
29 :     my $html = [];
30 :    
31 :     unshift(@$html, "<TITLE>Find Transcription Factors for Expressed Genes</TITLE>\n");
32 :    
33 :     my $id_to_ratio;
34 :     my $inputs;
35 :     if ($cgi->param('request') )
36 :     {
37 :     my $input =$cgi->param('proteins');
38 :     my @inputs = split("\n",$input);
39 :    
40 :     if ($cgi->upload('fileupload'))
41 :     {
42 :     my $fh=$cgi->upload('fileupload');
43 :     @inputs = <$fh> ;
44 :     }
45 :    
46 :     $given = [@inputs];
47 :     $id_to_ratio = &parse_inputs($given);
48 :    
49 :     }
50 :    
51 : mkubal 1.3 if ($cgi->param('request') eq "Find Transcription Factors By Gene")
52 :     {
53 :     if($cgi->param('gene_search_term')){
54 :     my $gene = $cgi->param('gene_search_term');
55 :     &find_tfs_by_gene($fig,$cgi,$html,$gene);
56 :     }
57 :     }
58 :    
59 :     if ($cgi->param('request') eq "Find Genes by Transcription Factor")
60 :     {
61 :     if($cgi->param('tf_search_term')){
62 :     my $tf = $cgi->param('tf_search_term');
63 :     &find_genes_by_tf($fig,$cgi,$html,$tf);
64 :     }
65 : mkubal 1.4 elsif($cgi->param('tf_search_combos')){
66 :     my $tf = $cgi->param('tf_search_combos');
67 :     &find_genes_by_tf($fig,$cgi,$html,$tf);
68 :     }
69 : mkubal 1.3 }
70 :    
71 : mkubal 1.1 if ($id_to_ratio && $cgi->param('request') eq "Find Transcription Factors")
72 :     {
73 : mkubal 1.2 if ($cgi->param('quality_score')){
74 :     my $score = $cgi->param('quality_score');
75 :     &find_tfs($fig,$cgi,$html,$id_to_ratio,$score);
76 :     }
77 : mkubal 1.1 }
78 :    
79 : mkubal 1.2 if($cgi->param('request') eq "Find Exclusive Factors")
80 : mkubal 1.1 {
81 :     &analyze_combinations($fig,$cgi,$html);
82 :     }
83 :    
84 :     if ($id_to_ratio && $cgi->param('request') eq "Find Most Frequent Factors")
85 :     {
86 :     &find_most_frequent($fig,$cgi,$html,$tag_to_id);
87 :     }
88 :    
89 :     else
90 :     {
91 :     &show_initial($fig,$cgi,$html);
92 :     &HTML::show_page($cgi,$html,1);
93 :     exit;
94 :     }
95 :    
96 :     sub show_initial {
97 :     my ($fig,$cgi,$html)=@_;
98 : mkubal 1.2 my @q_scores = (1,2,3,4,5,6);
99 : mkubal 1.4 my @ratio_cutoffs = (0,.5,1.5,2,2,3,4,5);
100 : mkubal 1.3 # generate a blank page
101 : mkubal 1.1 push @$html,
102 :     $cgi->start_multipart_form(),
103 : mkubal 1.3 "<h3>Search for Transcriptions Factors for a Gene</h3>",
104 :     $cgi->textarea(-name=>"gene_search_term", -rows=>1, -columns=>20),
105 :     $cgi->submit(-name=>'request', -value=>'Find Transcription Factors By Gene'),
106 :     $cgi->br,
107 :     $cgi->br,
108 :     $cgi->hr,
109 : mkubal 1.4 "<h3>Search for Genes by Transcription Factor</h3>",
110 :     $cgi->textarea(-name=>"tf_search_combos", -rows=>1, -columns=>20),
111 :     "<p>use commas to separate multiple factors in field above</p>",
112 :     $cgi->popup_menu(-name => 'tf_search_term', -values=>\@list_of_tfs),
113 : mkubal 1.3 $cgi->submit(-name=>'request', -value=>'Find Genes by Transcription Factor'),
114 : mkubal 1.4 "<p>or select single factor from menu</p>",
115 : mkubal 1.3 $cgi->hr,
116 :     "<h3>Find Transcription Factors for Genes in Microarray Data</h3>",
117 : mkubal 1.1 "<p>Enter affymetrix spot id, expression ratio pairs separated by a space or a tab</p>\n",
118 : mkubal 1.3 $cgi->textarea(-name=>"proteins", -rows=>10, -columns=>40),
119 : mkubal 1.2 $cgi->br,
120 : mkubal 1.3 "<p>or choose a file here:</p>",
121 :     $cgi->filefield(-name=>"fileupload", -size=>50),
122 : mkubal 1.2 $cgi->br,
123 :     $cgi->br,
124 :     $cgi->submit(-name=>'request', -value=>'Find Transcription Factors'),
125 :     $cgi->popup_menu(-name => 'quality_score', -values=>\@q_scores),
126 :     "<p>set quality threshold 1 (lowest) to 6 (highest)</p>",
127 : mkubal 1.3 $cgi->hr,
128 :     "<h3>Analyze Found Transcription Fcators</h3>",
129 :     $cgi->submit(-name=>'request', -value=>'Find Exclusive Factors'),
130 :     $cgi->popup_menu(-name => 'ratio_cutoff', -values=>\@ratio_cutoffs),
131 :     "<p>set fold change threshold </p>",
132 : mkubal 1.2 $cgi->br,
133 : mkubal 1.3 $cgi->hr,
134 : mkubal 1.1 $cgi->reset, $cgi->end_form;
135 :     return $html;
136 :     }
137 :    
138 :     sub find_tfs
139 :     {
140 : mkubal 1.2 my ($fig,$cgi,$html,$spotid_to_ratio,$score)=@_;
141 : mkubal 1.1 $new_html = [];
142 :     $dir = "/home/mkubal/public_html";
143 :    
144 :     my @ids = keys(%{$spotid_to_ratio});
145 :    
146 :     open(OUT2,">$dir/tfs_to_ratio.txt");
147 : mkubal 1.3 open(OUT3,">$FIG_Config::temp/download.txt");
148 :     open(IN,"$dir/spotid_to_refseq.txt");
149 : mkubal 1.1
150 :     %spotid_to_refseq;
151 :     while ($_ = <IN>){
152 :     chomp($_);
153 :     #print STDERR "spot_to_refseq:$_\n";
154 :     @temp = split("\t",$_);
155 :     $spotid_to_refseq{$temp[0]} = $temp[1];
156 :     }
157 :    
158 : mkubal 1.3 open(IN2,"$dir/refseq_to_transfac.txt");
159 : mkubal 1.1 %refseq_to_tf;
160 : mkubal 1.3 %tf_to_tf;
161 : mkubal 1.1 while ($_ = <IN2>){
162 :     chomp($_);
163 :     @temp = split("\t",$_);
164 : mkubal 1.3 @interactions = split(",",$temp[5]);
165 : mkubal 1.1 if($refseq_to_tf{$temp[0]}){
166 : mkubal 1.2 if($temp[2] > $score -1){
167 :     $ref = $refseq_to_tf{$temp[0]};
168 :     push(@$ref,$temp[1]);
169 : mkubal 1.3 foreach $int (@interactions){
170 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
171 :     else{$tf_to_tf{$temp[1]} = [$int] }
172 :     }
173 :     }
174 : mkubal 1.1 }
175 :     else{
176 : mkubal 1.2 if($temp[2] > $score -1){
177 :     $refseq_to_tf{$temp[0]} = [$temp[1]];
178 : mkubal 1.3 foreach $int (@interactions){
179 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
180 :     else{$tf_to_tf{$temp[1]} = [$int]; }
181 :     }
182 :     }
183 : mkubal 1.2 }
184 : mkubal 1.1 }
185 :    
186 :     push(@$new_html,"<HTML><HEAD>
187 :     <TITLE>strep</TITLE>
188 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
189 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
190 :     </HEAD>
191 :     <BODY BGCOLOR='#ffffff'>");
192 :    
193 : mkubal 1.3 push(@$new_html,"<br><a href='$FIG_Config::temp_url/download.txt'>download table</a><br>");
194 :    
195 :     push(@$new_html,"<TABLE border><TR><TH>Expression Ratio</TH><TH>Transcription Factor(s)</TH><TH>Affymetrix Spot ID</TH><TH>RefSeq ID</TH><TH>Interactions</TH><TH>Annotation</TH></TR>");
196 : mkubal 1.1
197 :     my $row_string = "";
198 : mkubal 1.3 my %row_already;
199 : mkubal 1.1 foreach my $id (@ids)
200 :     {
201 :     my $ratio = $spotid_to_ratio->{$id};
202 :     my $refseq = $spotid_to_refseq{$id};
203 :     my $tfs_ref = $refseq_to_tf{$refseq};
204 : mkubal 1.3 my %temp_hash;
205 :     my %int_hash;
206 :     foreach $k (keys(%temp_hash)){delete($temp_hash{$k})};
207 :     foreach $i (keys(%int_hash)){delete($int_hash{$i})};
208 : mkubal 1.1 foreach $tfs (@$tfs_ref){
209 : mkubal 1.3 $interactions = $tf_to_tf{$tfs};
210 :     foreach $int (@$interactions){$int_link = "<a href='$FIG_Config::temp_url/$int.html'>$int</a>";$temp_hash{$int_link} = 1; $int_hash{$int} = 1;}
211 :     $interactions = join(" ",keys(%temp_hash));
212 :     $int_string = join(" ",keys(%int_hash));
213 :     $annotation = "none yet";
214 :     my $tfs_link = "<a href='$FIG_Config::temp_url/$tfs.html'>$tfs</a>";
215 : mkubal 1.4 #my $refseq_link = "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Nucleotide&cmd=search&term=$refseq'>$refseq</a>";
216 :     my $refseq_link = "<a href='http://www.genecards.org/cgi-bin/cardsearch.pl?search=".$refseq."&search_type=kwd'>$refseq</a>";
217 : mkubal 1.3 $row_string = "<TR><TD>$ratio</TD><TD>$tfs_link</TD><TD>$id</TD><TD>$refseq_link</TD><TD>$interactions</TD><TD>$annotation</TD></TR>";
218 :     my $download_string = "$ratio\t$tfs\t$id\t$refseq\t$int_string\t$annotation";
219 :     if(!$row_already{$row_string}){
220 :     push(@$new_html,$row_string);
221 :     $row_already{$row_string} = 1;
222 :     print OUT3 "$download_string\n";
223 :     }
224 : mkubal 1.1 }
225 :    
226 :     if($tfs_ref){
227 :     foreach $tfs (@$tfs_ref){
228 :     print OUT2 "$tfs\t$ratio\n";
229 :     }
230 :     }
231 :     }
232 :    
233 :     close(OUT2);
234 : mkubal 1.3 close(OUT3);
235 : mkubal 1.1
236 :     push(@$new_html,"</TABLE>");
237 :     #push(@$new_html,
238 :     # "<br><br>",
239 :     # $cgi->submit(-name=>'request', -value=>'Find Exclusive Combinations'),
240 :     # $cgi->submit(-name=>'request', -value=>'Find Most Frequent Factors'));
241 :    
242 :    
243 :     &HTML::show_page($cgi,$new_html);
244 :     exit;
245 :     }
246 :    
247 : mkubal 1.3 sub find_tfs_by_gene
248 :     {
249 :     my ($fig,$cgi,$html,$gene_search_term)=@_;
250 :     my $refseq = $gene_search_term;
251 :     $new_html = [];
252 :     $dir = "/home/mkubal/public_html";
253 :     my $score = 0;
254 :    
255 :     open(IN2,"$dir/refseq_to_transfac.txt");
256 :     %refseq_to_tf;
257 :     %tf_to_tf;
258 :     while ($_ = <IN2>){
259 :     chomp($_);
260 :     @temp = split("\t",$_);
261 :     @interactions = split(",",$temp[5]);
262 :     if($refseq_to_tf{$temp[0]}){
263 :     if($temp[2] > $score -1){
264 :     $ref = $refseq_to_tf{$temp[0]};
265 :     push(@$ref,$temp[1]);
266 :     foreach $int (@interactions){
267 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
268 :     else{$tf_to_tf{$temp[1]} = [$int] }
269 :     }
270 :     }
271 :     }
272 :     else{
273 :     if($temp[2] > $score -1){
274 :     $refseq_to_tf{$temp[0]} = [$temp[1]];
275 :     foreach $int (@interactions){
276 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
277 :     else{$tf_to_tf{$temp[1]} = [$int]; }
278 :     }
279 :     }
280 :     }
281 :     }
282 :    
283 :     push(@$new_html,"<HTML><HEAD>
284 :     <TITLE>factors found by gene id</TITLE>
285 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
286 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
287 :     </HEAD>
288 :     <BODY BGCOLOR='#ffffff'>");
289 :    
290 :     push(@$new_html,"<TABLE border><TR><TH>Transcription Factor(s)</TH><TH>Interactions</TH><TH>Regulates</TH><TH>Annotation</TH></TR>");
291 :    
292 :     my $row_string = "";
293 :     my %row_already;
294 :     my $tfs_ref = $refseq_to_tf{$refseq};
295 :     my %temp_hash;
296 :     foreach $k (keys(%temp_hash)){delete($temp_hash{$key})};
297 :     foreach $tfs (@$tfs_ref){
298 :     $interactions = $tf_to_tf{$tfs};
299 :     foreach $int (@$interactions){$int_link = "<a href='$FIG_Config::temp_url/$int.html'>$int</a>";$temp_hash{$int_link} = 1}
300 :     $interactions = join(" ",keys(%temp_hash));
301 :     $annotation = "none yet\n";
302 :     my $tfs_link = "<a href='$FIG_Config::temp_url/$tfs.html'>$tfs</a>";
303 : mkubal 1.4 #my $refseq_link = "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Nucleotide&cmd=search&term=$refseq'>$refseq</a>";
304 :     my $refseq_link = "<a href='http://www.genecards.org/cgi-bin/cardsearch.pl?search=".$refseq."&search_type=kwd'>$refseq</a>";
305 : mkubal 1.3 $row_string = "<TR><TD>$tfs_link</TD><TD>$interactions</TD><TD>$refseq_link</TD><TD>$annotation</TD></TR>";
306 :     if(!$row_already{$row_string}){
307 :     push(@$new_html,$row_string);
308 :     $row_already{$row_string} = 1;
309 :     }
310 :     }
311 :    
312 :    
313 :     push(@$new_html,"</TABLE>");
314 :     &HTML::show_page($cgi,$new_html);
315 :     exit;
316 :    
317 :     }
318 :    
319 :     sub find_genes_by_tf
320 :     {
321 :     my ($fig,$cgi,$html,$tf_search_term)=@_;
322 :     my @list_of_tfs = split(",",$tf_search_term);
323 :     $new_html = [];
324 :     $dir = "/home/mkubal/public_html";
325 :     my $score = 0;
326 :    
327 :     open(IN2,"$dir/refseq_to_transfac.txt");
328 :     %tf_to_refseq;
329 :     $refseq_to_tf;
330 :     %tf_to_tf;
331 :     while ($_ = <IN2>){
332 :     chomp($_);
333 :     @temp = split("\t",$_);
334 :     @interactions = split(",",$temp[5]);
335 :     if($tf_to_refseq{$temp[1]}){
336 :     if($temp[2] > $score -1){
337 :     $ref = $tf_to_refseq{$temp[1]};
338 :     push(@$ref,$temp[0]);
339 :     foreach $int (@interactions){
340 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
341 :     else{$tf_to_tf{$temp[1]} = [$int] }
342 :     }
343 :     }
344 :     }
345 :     else{
346 :     if($temp[2] > $score -1){
347 :     $tf_to_refseq{$temp[1]} = [$temp[0]];
348 :     foreach $int (@interactions){
349 :     if($tf_to_tf{$temp[1]}){ $ref2= $tf_to_tf{$temp[1]}; push(@$ref2,$int)}
350 :     else{$tf_to_tf{$temp[1]} = [$int]; }
351 :     }
352 :     }
353 :     }
354 :    
355 :     if($refseq_to_tf{$temp[0]}){
356 :     if($temp[2] > $score -1){
357 :     $ref = $refseq_to_tf{$temp[0]};
358 :     push(@$ref,$temp[1]);
359 :     }
360 :     }
361 :     else{
362 :     if($temp[2] > $score -1){
363 :     $refseq_to_tf{$temp[0]} = [$temp[1]];
364 :     }
365 :     }
366 :     }
367 :    
368 :     push(@$new_html,"<HTML><HEAD>
369 :     <TITLE>genes found by tf</TITLE>
370 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
371 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
372 :     </HEAD>
373 :     <BODY BGCOLOR='#ffffff'>");
374 :    
375 :     push(@$new_html,"<TABLE border><TR><TH>Transcription Factor(s)</TH><TH>Regulates</TH><TH>Annotation</TH></TR>");
376 :    
377 :     my $row_string = "";
378 :     my %row_already;
379 :    
380 :     my @matching_refseqs;
381 :     foreach $rs (keys(%refseq_to_tf)){
382 :     my $tf_refs = $refseq_to_tf{$rs};
383 :     my $matched_all = 1;
384 :     foreach $passed_tf(@list_of_tfs){
385 :     $match = 0;
386 :     foreach $tf (@$tf_refs){
387 :     if($tf eq $passed_tf){$match = 1}
388 :     }
389 :     if(!$match){$matched_all = 0; last;}
390 :     }
391 :     if($matched_all){push(@matching_refseqs,$rs)}
392 :     }
393 :    
394 :     my %temp_hash;
395 :    
396 :     foreach $k (keys(%temp_hash)){delete($temp_hash{$key})};
397 :     my $tfs_link;
398 :     my @list_of_links;
399 :     foreach $tf (@list_of_tfs){
400 :     $tfs_link = "<a href='$FIG_Config::temp_url/$tf.html'>$tf</a>";
401 :     push(@list_of_links,$tfs_link);
402 :     }
403 :    
404 :     $tfs_link = join(",",@list_of_links);
405 :    
406 :     foreach $refseq (@matching_refseqs){
407 :     $annotation = "none yet\n";
408 : mkubal 1.4 #my $refseq_link = "<a href='http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=Nucleotide&cmd=search&term=$refseq'>$refseq</a>";
409 :     my $refseq_link = "<a href='http://www.genecards.org/cgi-bin/cardsearch.pl?search=".$refseq."&search_type=kwd'>$refseq</a>";
410 : mkubal 1.3 $row_string = "<TR><TD>$tfs_link</TD><TD>$refseq_link</TD><TD>$annotation</TD></TR>";
411 :     if(!$row_already{$row_string}){
412 :     push(@$new_html,$row_string);
413 :     $row_already{$row_string} = 1;
414 :     }
415 :     }
416 :    
417 :     push(@$new_html,"</TABLE>");
418 :     &HTML::show_page($cgi,$new_html);
419 :     exit;
420 :    
421 :     }
422 :    
423 : mkubal 1.1 sub analyze_combinations
424 :     {
425 :     my ($fig,$cgi,$html)=@_;
426 :     $new_html = [];
427 :     $dir = "/home/mkubal/public_html";
428 : mkubal 1.3 my $ratio_cutoff;
429 :     if($cgi->param('ratio_cutoff')){$ratio_cutoff = $cgi->param('ratio_cutoff');}
430 :     else{ $ratio_cutoff = 0;}
431 :    
432 : mkubal 1.1 open(IN,"$dir/tfs_to_ratio.txt");
433 : mkubal 1.2 #%tfs_combinations;
434 :     #%tfs_counts;
435 : mkubal 1.1
436 : mkubal 1.2 #%tfs_expected;
437 :     #open(IN3,"$dir/stats.txt.redundant");
438 :     #open(SUMMARY,">$dir/redundant_stats.summary");
439 :     #while ($_ = <IN3>){
440 :     # @temp = split("\t",$_);
441 :     # $expected = $temp[2];
442 :     # chomp($expected);
443 :     # $tfs_expected{$temp[0]} = $expected;
444 :     #}
445 :     #close(IN3);
446 : mkubal 1.1
447 :     my @lines;
448 :     while ($_ = <IN>){
449 :     push(@lines,$_);
450 :     #print "input line:$_\n";
451 :     chomp($_);
452 :     @temp = split("\t",$_);
453 :     $tfs_combinations{$temp[0]} = 1;
454 :     }
455 :     close(IN);
456 :    
457 :     @negative_exclusives;
458 :     @positive_exclusives;
459 :    
460 :     foreach my $k (keys(%tfs_combinations)){
461 : mkubal 1.2 #print STDERR "k:$k\n";
462 : mkubal 1.1 $sign = "not_set";
463 : mkubal 1.3 $exclusive = 1;
464 :     $skip = 0;
465 : mkubal 1.1 foreach $l (@lines){
466 :     @temp = split("\t",$l);
467 :     $tfs = $temp[0];
468 :     $ratio = $temp[1];
469 : mkubal 1.3 if($ratio < 0 && $ratio > ($ratio_cutoff * -1)){$skip = 1}
470 :     elsif($ratio > 0 && $ratio < $ratio_cutoff ){$skip = 1}
471 : mkubal 1.1 if($k eq $tfs){
472 :     if($tfs_counts{$k}){$tfs_counts{$k} = $tfs_counts{$k} + 1}
473 :     else{$tfs_counts{$k} = 1}
474 :    
475 :     if($sign eq "not_set"){
476 :     if($ratio < 0){$sign = "negative"}
477 :     else{$sign = "positive"}
478 :     }
479 :     else{
480 :     $previous_sign = $sign;
481 :     if($ratio < 0){$sign = "negative"}
482 :     else{$sign = "positive"}
483 :     if($previous_sign ne $sign){$exclusive =0}
484 :     }
485 :     }
486 :     }
487 :    
488 : mkubal 1.3 if(!$skip){
489 :     if($exclusive){
490 :     if($sign eq "positive"){
491 :     push(@positive_exclusives,$k)
492 :     }
493 :     else{
494 :     push(@negative_exclusives,$k);
495 :     }
496 :     }
497 :     }
498 :     }
499 : mkubal 1.2
500 :     push(@$new_html,"<HTML><HEAD>
501 : mkubal 1.1 <TITLE>strep</TITLE>
502 :     <META NAME='generator' CONTENT='YokMap 1.0.1'>
503 :     <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1'>
504 :     </HEAD>
505 :     <BODY BGCOLOR='#ffffff'>");
506 :    
507 : mkubal 1.2 #push(@$new_html,"<TABLE border><TR><TH>UP Transcription Factor Combinations</TH><TH>Number of Genes</TH><TH>Observed/Expected</TH></TR>");
508 :     push(@$new_html,"<TABLE border><TR><TH>UP Transcription Factor </TH></TR>");
509 :     foreach my $tfs (@positive_exclusives){
510 :     #my $count = $tfs_counts{$tfs};
511 :     #my $observed = $count * (1/4024);
512 :     # my $expected = $tfs_expected{$tfs};
513 :     # my $ratio = $observed/$expected;
514 :     # my $row_string = "<TR><TD>$tfs</TD><TD>$count</TD><TD>$ratio</TD></TR>";
515 :     my $url = $FIG_Config::temp_url."/$tfs".".html";
516 :     my $row_string = "<TR><TD><a href='$url'>$tfs</a></TD></TR>";
517 :     push(@$new_html,$row_string);
518 :     # print SUMMARY "UP\t$tfs\t$observed\t$expected\t$ratio\n";
519 : mkubal 1.1 }
520 :    
521 :     push(@$new_html,"</TABLE>");
522 :    
523 :     push(@$new_html,"<br><br>");
524 :    
525 : mkubal 1.2 #push(@$new_html,"<TABLE border><TR><TH>DOWN Transcription Factor Combinations</TH><TH>Number of Genes</TH><TH>Observed/Expected</TH></TR>");
526 :     push(@$new_html,"<TABLE border><TR><TH>DOWN Transcription Factor </TH></TR>");
527 : mkubal 1.1 foreach my $tfs (@negative_exclusives)
528 :     {
529 : mkubal 1.2 # my $count = $tfs_counts{$tfs};
530 :     # my $observed = $count * (1/4024);
531 :     # my $expected = $tfs_expected{$tfs};
532 :     # my $ratio = $observed/$expected;
533 :     # my $row_string = "<TR><TD>$tfs</TD><TD>$count</TD><TD>$ratio</TD></TR>";
534 :     my $url = $FIG_Config::temp_url."/$tfs".".html";
535 :     my $row_string = "<TR><TD><a href='$url'>$tfs</a></TD></TR>";
536 :     push(@$new_html,$row_string);
537 :     # print SUMMARY "DOWN\t$tfs\t$observed\t$expected\t$ratio\n";
538 : mkubal 1.1 }
539 :    
540 :     push(@$new_html,"</TABLE>");
541 :    
542 :     &HTML::show_page($cgi,$new_html);
543 :     exit;
544 :    
545 :     }
546 :    
547 :    
548 :     sub parse_inputs
549 :     {
550 :    
551 :     my ($given) =@_;
552 :     my $hash;
553 :     foreach my $g (@$given)
554 :     {
555 :     my $id ="";
556 :     my $ratio = "";
557 :    
558 :     if ($g =~/(.*?)(\t|\s+)(.*)/)
559 :     {
560 :     $id = $1;
561 :     $ratio = $3;
562 :     }
563 :    
564 :     $hash{$id} = $ratio;
565 :     }
566 :    
567 :     return \%hash;
568 :    
569 :     }
570 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3