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

Annotation of /FigWebServices/check_bad.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 FIG;
21 :     my $fig = new FIG;
22 :    
23 :     use HTML;
24 :     use strict;
25 :    
26 :     use CGI;
27 :     my $cgi = new CGI;
28 :    
29 :     if (0)
30 :     {
31 :     my $VAR1;
32 :     eval(join("",`cat /tmp/check_bad_parms`));
33 :     $cgi = $VAR1;
34 :     # print STDERR &Dumper($cgi);
35 :     }
36 :    
37 :     if (0)
38 :     {
39 :     print $cgi->header;
40 :     my @params = $cgi->param;
41 :     print "<pre>\n";
42 :     foreach $_ (@params)
43 :     {
44 :     print "$_\t:",join(",",$cgi->param($_)),":\n";
45 :     }
46 :    
47 :     if (0)
48 :     {
49 :     if (open(TMP,">/tmp/check_bad_parms"))
50 :     {
51 :     print TMP &Dumper($cgi);
52 :     close(TMP);
53 :     }
54 :     }
55 :     exit;
56 :     }
57 :     my($genome);
58 :    
59 :    
60 :     my $html = [];
61 :     unshift @$html, "<TITLE>Check Bad Conflicts</TITLE>\n";
62 :    
63 :     if (open(BAD,"<$FIG_Config::global/bad.figfams"))
64 :     {
65 :     my $user = $cgi->param('user');
66 :     $user =~ s/^master://;
67 :     if (! $user)
68 :     {
69 :     push(@$html, $cgi->start_form(-action => "check_bad.cgi",
70 :     -method => 'post'),
71 :     $cgi->textfield(-name => 'user', -size => 15, -override => 1),
72 :     $cgi->submit('set user'));
73 :     }
74 :     else
75 :     {
76 :     my $line = <BAD>;
77 :     while ($line && ($line =~ /^(\S+)/))
78 :     {
79 :     my $curr = $1;
80 :     my @set = ();
81 :     while ($line && ($line =~ /^(\S+)\t(\S+)/) && ($1 eq $curr))
82 :     {
83 :     push(@set,$2);
84 :     $line = <BAD>;
85 :     }
86 :     &process_set($fig,$cgi,$html,$user,\@set);
87 :     }
88 :     }
89 :     }
90 :     else
91 :     {
92 :     push(@$html,$cgi->h1('Nothing bad to check'));
93 :     }
94 :     &HTML::show_page($cgi,$html);
95 :    
96 :     sub process_set {
97 :     my($fig,$cgi,$html,$user,$set) = @_;
98 :    
99 :     my $keep = 0;
100 :     my @in_sub = ();
101 :     foreach my $peg (@$set)
102 :     {
103 :     my @subs = grep { $fig->usable_subsystem($_) } $fig->peg_to_subsystems($peg);
104 :     if (@subs > 0)
105 :     {
106 :     if (! $keep)
107 :     {
108 :     foreach my $sub (@subs)
109 :     {
110 :     my $curator = $fig->subsystem_curator($sub);
111 :     $curator =~ s/^master://;
112 :     if ($curator eq $user)
113 :     {
114 :     $keep = 1;
115 :     }
116 :     }
117 :     }
118 :     push(@in_sub,$peg);
119 :     }
120 :     }
121 :    
122 :     my $ok = 1;
123 :     if ((@in_sub > 1) && $keep)
124 :     {
125 :     my $func = $fig->function_of($in_sub[0]);
126 :     my $i;
127 :     for ($i=1; ($i < @in_sub) && ($fig->function_of($in_sub[$i]) eq $func); $i++) {}
128 :     $ok = ($i == @in_sub);
129 :     }
130 :    
131 :     if (! $ok)
132 :     {
133 :     my $col_hdrs = ["PEG","Function"];
134 :     my $tab = [];
135 :     foreach my $peg (@in_sub)
136 :     {
137 :     my $peg_link = &HTML::fid_link($cgi,$peg);
138 :     push(@$tab,[$peg_link,scalar $fig->function_of($peg)]);
139 :     }
140 :     push(@$html,&HTML::make_table($col_hdrs,$tab,""));
141 :     }
142 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3