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

Annotation of /FigWebServices/check_anno.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 :     use FIG;
20 :     my $fig = new FIG;
21 :     use URI::Escape; # uri_escape
22 :     use HTML;
23 :     use Data::Dumper;
24 :     use strict;
25 :     use CGI;
26 :     my $cgi = new CGI;
27 :    
28 :     if (0) {
29 :     my $VAR1;
30 :     eval(join("",`cat /tmp/check_anno_parms`));
31 :     $cgi = $VAR1;
32 :     # print STDERR &Dumper($cgi);
33 :     }
34 :    
35 :     if (0) {
36 :     print $cgi->header;
37 :     my @params = $cgi->param;
38 :     print "<pre>\n";
39 :     foreach $_ (@params) {
40 :     print "$_\t:",join(",",$cgi->param($_)),":\n";
41 :     }
42 :    
43 :     if (0) {
44 :     if (open(TMP,">/tmp/check_anno_parms")) {
45 :     print TMP &Dumper($cgi);
46 :     close(TMP);
47 :     }
48 :     }
49 :     exit;
50 :     }
51 :    
52 :     my $html = [];
53 :     unshift @$html, "<TITLE>The SEED Annotation Checking Page</TITLE>\n";
54 :    
55 :     my $file = $cgi->param('file');
56 :     if ((! $file) || (! -s $file))
57 :     {
58 :     push(@$html,"<h1>Sorry, the file = $file is not there</h1>\n");
59 :     &HTML::show_page($cgi,$html);
60 :     exit;
61 :     }
62 :    
63 :     my $user = $cgi->param('user');
64 :     if (! $user)
65 :     {
66 :     push(@$html,"<h1>Sorry, you need to specify a user</h1>\n");
67 :     &HTML::show_page($cgi,$html);
68 :     exit;
69 :     }
70 :    
71 :     my @tab = sort { ($a->[0] cmp $b->[0]) or ($a->[1] cmp $b->[1]) or ($a->[2] cmp $b->[2]) }
72 :     map { chop; [split(/\t/,$_)] }
73 :     `cat $file`;
74 :    
75 :     my $start_at = $cgi->param('start_at');
76 :     $start_at = $start_at ? $start_at : 0;
77 :    
78 :     my @actions = grep { $_ =~ /^action/ } $cgi->param;
79 :    
80 :     if ((@actions > 0) && open(TMP,">> $FIG_Config::global/annotation_checks"))
81 :     {
82 :     foreach my $action (@actions)
83 :     {
84 :     if (($action =~ /^action(\d+)/) && (my $i = $1) && (my $do = $cgi->param($action)))
85 :     {
86 :     my $f1 = $tab[$i]->[0];
87 :     my $f2 = $tab[$i]->[1];
88 :     my $peg1 = $tab[$i]->[2];
89 :    
90 :     my @set = ();
91 :     while (($i < @tab) && ($tab[$i]->[0] eq $f1) && ($tab[$i]->[1] eq $f2) && ($tab[$i]->[2] eq $peg1))
92 :     {
93 :     push(@set,$tab[$i]);
94 :     $i++;
95 :     }
96 :     print TMP "$do\n";
97 :     foreach $_ (@set)
98 :     {
99 :     print TMP join("\t",@$_),"\n";
100 :     }
101 :     print TMP "//\n";
102 :     }
103 :     }
104 :     close(TMP);
105 :     }
106 :    
107 :     my $col_hdrs = ["NI","=","I","FIG Function","Other Function","FIG IDs","Other IDs"];
108 :     my $tab = [];
109 :     push(@$html,$cgi->start_form( -method => 'post',
110 :     -action => 'check_anno.cgi'));
111 :     push(@$html, $cgi->hidden(-name => 'user', -value => $user));
112 :     push(@$html, $cgi->hidden(-name => 'file', -value => $file));
113 :    
114 :     my $got = 0;
115 :     my $i = $start_at;
116 :     while (($i < @tab) && ($got < 25))
117 :     {
118 :     my $f1 = $tab[$i]->[0];
119 :     my $f2 = $tab[$i]->[1];
120 :     my $peg1 = $tab[$i]->[2];
121 :    
122 :     my @set = ();
123 :     while (($i < @tab) && ($tab[$i]->[0] eq $f1) && ($tab[$i]->[1] eq $f2) && ($tab[$i]->[2] eq $peg1))
124 :     {
125 :     push(@set,$tab[$i]);
126 :     $i++;
127 :     }
128 :     my @fig = map { $_->[2] } @set;
129 :     my %fig = map { $_ => 1 } @fig;
130 :     @fig = sort { &FIG::by_fig_id($a,$b) } keys(%fig);
131 :    
132 :     my @other = map { $_->[3] } @set;
133 :     my %other = map { $_ => 1 } @other;
134 :     @other = sort keys(%other);
135 :    
136 :     my @figL = map { &HTML::fid_link($cgi,$_) } @fig;
137 :     my @otherL = map { &HTML::set_prot_links($cgi,$_) } @other;
138 :    
139 :     my @actions = $cgi->radio_group( -name => "action$start_at",
140 :     -nolabels => 1,
141 :     -override => 1,
142 :     -values => ["NI","=","I"]);
143 :     push(@$tab,[@actions,$f1,$f2,join("<br>",@figL),join("<br>",@otherL)]);
144 :     $got++;
145 :     $start_at = $i;
146 :     }
147 :     if (@$tab > 0)
148 :     {
149 :     push(@$html, $cgi->hidden(-name => 'start_at', -value => $start_at));
150 :     push(@$html,&HTML::make_table($col_hdrs,$tab,"Discrepancies in Annotations"));
151 :     push(@$html,$cgi->submit('take_actions'), $cgi->end_form);
152 :     &HTML::show_page($cgi,$html);
153 :     }
154 :     else
155 :     {
156 :     $html = [];
157 :     push(@$html,"<h1>Nothing left to do</h1>\n");
158 :     &HTML::show_page($cgi,$html);
159 :     }
160 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3