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

Annotation of /FigWebServices/figfam_proto.cgi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (view) (download)

1 : mkubal 1.1 # -*- perl -*-
2 :    
3 :     use FIG;
4 : mkubal 1.2 use FigFam;
5 : mkubal 1.1 use FIG_Config;
6 :     use HTML;
7 :     use CGI;
8 :     my $cgi=new CGI;
9 :     use LWP::Simple qw(!head); # see the caveat in perldoc LWP about importing two head methods.
10 :    
11 :     $fig = new FIG;
12 :     my $html = [];
13 :    
14 :     unshift(@$html, "<TITLE>Domain Analysis of Protein Sets</TITLE>\n");
15 :    
16 :     my $inputs;
17 :     if ($cgi->param('request') )
18 :     {
19 :     my $input =$cgi->param('proteins');
20 :     my @inputs = split("\n",$input);
21 :    
22 :     if ($cgi->upload('fileupload'))
23 :     {
24 :     my $fh=$cgi->upload('fileupload');
25 :     @inputs = <$fh> ;
26 :     }
27 :    
28 :     $given = [@inputs];
29 :     &analyze_domains($cgi,$fig,$given);
30 :    
31 :     }
32 :     else
33 :     {
34 :     &show_initial($fig,$cgi,$html);
35 :     &HTML::show_page($cgi,$html,1);
36 :     exit;
37 :     }
38 :    
39 :     sub show_initial {
40 :     my ($fig,$cgi,$html)=@_;
41 :     push @$html,
42 :     $cgi->start_multipart_form(),
43 :     "<h3>Enter FigFam ID</h3>",
44 :     $cgi->textarea(-name=>"figfam_id", -rows=>1, -columns=>20),
45 :     $cgi->br,
46 :     "<h3>Enter set of pegs</h3>\n",
47 :     $cgi->textarea(-name=>"set_of_pegs", -rows=>10, -columns=>40),
48 :     $cgi->br,
49 :     "<h3>Upload File</h3>",
50 :     $cgi->filefield(-name=>"fileupload", -size=>50),
51 :     $cgi->br,
52 :     $cgi->hr,
53 :     $cgi->submit(-name=>'request', -value=>'Submit for Domain Analysis'),
54 :     $cgi->reset, $cgi->end_form;
55 :     return $html;
56 :     }
57 :    
58 :     sub analyze_domains
59 :     {
60 :     my ($cgi,$fig,$given) =@_;
61 :    
62 :     my $sops = $cgi->param('set_of_pegs');
63 :     my $figfam_id = $cgi->param('figfam_id');
64 : mkubal 1.2 my $figfam = FigFam->new($fig,$figfam_id);
65 :     my $count;
66 :     my %domain;
67 : mkubal 1.1
68 :     if($figfam_id){
69 : mkubal 1.2 my $set = $figfam->pegs_of();
70 :     $count = scalar(@$set);
71 :     my $found = 0;
72 :     foreach my $peg (@$set){
73 :     #if($found){last;}
74 :     if($peg =~/fig\|/){
75 :     my @returns = $fig->get_attributes($peg,'CDD');
76 :     foreach $return (@returns){
77 :     if(@$return[1] =~/(\d+)/){
78 :     my $id = $1;
79 :     if($domain{$id}){$domain{$id} = $domain{$id} + 1;}
80 :     else{
81 :     $domain{$id} = 1;
82 :     $found = 1;
83 :     }
84 :     last;
85 :     }
86 : mkubal 1.1 }
87 :     }
88 : mkubal 1.2 }
89 : mkubal 1.1
90 :     push @$html,
91 :     "<h3>Domain Analysis Results</h3>",
92 :     "<br>",
93 :     "<table>";
94 :     foreach $dom (keys(%domain)){
95 :     $instances = $domain{$dom};
96 : mkubal 1.2 push @$html,"<tr><td>$dom</td><td>$instances</td></tr>";
97 : mkubal 1.1 }
98 : mkubal 1.2 push @$html,"</table>";
99 : mkubal 1.1
100 :     &HTML::show_page($cgi,$html,1);
101 :     exit;
102 :     }
103 :     else{
104 :     push @$html,
105 :     "<h3>Must enter either FigFam ID or set of pegs</h3>";
106 :     &HTML::show_page($cgi,$html,1);
107 :     exit;
108 :     }
109 :    
110 :     }
111 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3