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

Annotation of /FigWebServices/comp_MR.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download)

1 : overbeek 1.1 # -*- perl -*-
2 :     #
3 :     # Copyright (c) 2003-2006 University of Chicago and Fellowship
4 :     # for Interpretations of Genomes. All Rights Reserved.
5 :     #
6 :     # This file is part of the SEED Toolkit.
7 :     #
8 :     # The SEED Toolkit is free software. You can redistribute
9 :     # it and/or modify it under the terms of the SEED Toolkit
10 :     # Public License.
11 :     #
12 :     # You should have received a copy of the SEED Toolkit Public License
13 :     # along with this program; if not write to the University of Chicago
14 :     # at info@ci.uchicago.edu or the Fellowship for Interpretation of
15 :     # Genomes at veronika@thefig.info or download a copy from
16 :     # http://www.theseed.org/LICENSE.TXT.
17 :     #
18 :    
19 :    
20 :     use HTML;
21 :     use strict;
22 :    
23 :     use CGI;
24 :     my $cgi = new CGI;
25 :    
26 :     if (0)
27 :     {
28 :     my $VAR1;
29 :     eval(join("",`cat /tmp/compMR_parms`));
30 :     $cgi = $VAR1;
31 :     # print STDERR &Dumper($cgi);
32 :     }
33 :    
34 :     if (0)
35 :     {
36 :     print $cgi->header;
37 :     my @params = $cgi->param;
38 :     print "<pre>\n";
39 :     foreach $_ (@params)
40 :     {
41 :     print "$_\t:",join(",",$cgi->param($_)),":\n";
42 :     }
43 :    
44 :     if (0)
45 :     {
46 :     if (open(TMP,">/tmp/compMR_parms"))
47 :     {
48 :     print TMP &Dumper($cgi);
49 :     close(TMP);
50 :     }
51 :     }
52 :     exit;
53 :     }
54 :    
55 :     my $genome1 = $cgi->param('genome1');
56 :     my $genome2 = $cgi->param('genome2');
57 :     my $request = $cgi->param('request');
58 :    
59 :     use CompareMR;
60 :     use FIG;
61 :     use FIGV;
62 :    
63 :     my($fig);
64 :     if ($genome1 =~ /^\d+\.\d+/)
65 :     {
66 :     $fig = new FIG;
67 :     }
68 :     elsif (($genome1 =~ /\d+\.\d+$/) && (-d $genome1))
69 :     {
70 :     my $tmp = new FIG;
71 :     $fig = new FIGV($genome1,$tmp);
72 :     }
73 :    
74 :     my($common,$in1_not2,$in2_not1) = &CompareMR::compare_genomes_MR($genome1,$genome2);
75 :    
76 :     my $html = [];
77 :    
78 :     if ($request eq "common")
79 :     {
80 :     &process_common($fig,$cgi,$html,$common);
81 :     }
82 :    
83 :    
84 :     unshift @$html, "<TITLE>Compare Metabolic Reconstructions</TITLE>\n";
85 :    
86 :     &HTML::show_page($cgi,$html);
87 :    
88 :     sub process_common {
89 :     my($fig,$cgi,$html,$common) = @_;
90 :     my($tuple,$sub,$role,$pegs1,$pegs2,$classification,$class1,$class2);
91 :     my($key,%subH,$subH1,$subH2,$subH3,@roles,$subL,$pegL,$peg);
92 :    
93 :     foreach $tuple (@$common)
94 :     {
95 :     ($sub,$role,$pegs1,$pegs2) = @$tuple;
96 :     $classification = $fig->subsystem_classification($sub);
97 :     $class1 = $classification->[0] || "Unclassified";
98 :     $class2 = $classification->[1] || "Unclassified";
99 :     $subH{$class1}->{$class2}->{$sub}->{$role} = [$pegs1,$pegs2];
100 :     }
101 :    
102 :     foreach $class1 (sort keys(%subH))
103 :     {
104 :     $subH1 = $subH{$class1};
105 :     push(@$html,"<h1>$class1</h1>\n");
106 :     foreach $class2 (sort keys(%$subH1))
107 :     {
108 :     $subH2 = $subH1->{$class2};
109 :     push(@$html,"<h2>$class2</h2>\n");
110 :     foreach $sub (sort keys(%$subH2))
111 :     {
112 :     $subL = &HTML::sub_link($cgi,$sub);
113 :     $subH3 = $subH2->{$sub};
114 :     push(@$html,"<h3>$subL</h3>\n");
115 :     push(@$html,"<ul>\n");
116 :     foreach $role (sort keys(%$subH3))
117 :     {
118 :     push(@$html,"<li>$role\n");
119 :     ($pegs1,$pegs2) = @{$subH3->{$role}};
120 :     push(@$html,"<ul>\n");
121 :    
122 :     foreach $peg (sort { &FIG::by_fig_id($a,$b) } @$pegs1)
123 :     {
124 :     $pegL = &HTML::fid_link($cgi,$peg);
125 :     push(@$html,"<li>$pegL\n");
126 :     }
127 :     push(@$html,"</ul>\n");
128 :     }
129 :     push(@$html,"</ul>\n");
130 :     }
131 :     }
132 :     }
133 :     }
134 :    
135 :    
136 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3