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

Diff of /FigWebServices/figfam_proto.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2, Thu Feb 22 23:06:08 2007 UTC revision 1.3, Tue Feb 27 21:06:16 2007 UTC
# Line 62  Line 62 
62      my $sops = $cgi->param('set_of_pegs');      my $sops = $cgi->param('set_of_pegs');
63      my $figfam_id = $cgi->param('figfam_id');      my $figfam_id = $cgi->param('figfam_id');
64      my $figfam = FigFam->new($fig,$figfam_id);      my $figfam = FigFam->new($fig,$figfam_id);
65      my $count;      my $function = $figfam->family_function();
66        my %peg_to_domain;
67        my %peg_to_score;
68      my %domain;      my %domain;
69        my %domain_location;
70        my %domain_length;
71    
     if($figfam_id){  
72          my $set = $figfam->pegs_of();          my $set = $figfam->pegs_of();
73          $count = scalar(@$set);      my  $count = scalar(@$set);
74          my $found = 0;  
75          foreach my $peg (@$set){      if($figfam_id){
76              #if($found){last;}          my @returns = $fig->get_attributes($set,'CDD');
             if($peg =~/fig\|/){  
                 my @returns = $fig->get_attributes($peg,'CDD');  
77                  foreach $return (@returns){                  foreach $return (@returns){
78                my $peg = @$return[0];
79                my $seq = $fig->get_translation($peg);
80                my $length = length($seq);
81    
82                if(@$return[2] =~/^(\d+\.\d+);(\d+)-(\d+)/){
83                    my $score = $1;
84                    my $begin = $2;
85                    my $end = $3;
86                    my $begin_percent = $begin/$length;
87                    my $end_percent = $end/$length;
88    
89                    if($peg_to_score{$peg}){
90                        if($peg_to_score{$peg} > $score){
91                            $peg_to_score{$peg} = $score;
92                      if(@$return[1] =~/(\d+)/){                      if(@$return[1] =~/(\d+)/){
93                          my $id = $1;                          my $id = $1;
94                          if($domain{$id}){$domain{$id} = $domain{$id} + 1;}                              $peg_to_domain{$peg} = "$id\t$begin_percent\t$end_percent\t$length";
95                            }
96                        }
97                    }
98                          else{                          else{
99                              $domain{$id} = 1;                      $peg_to_score{$peg} = $score;
100                              $found = 1;                      if(@$return[1] =~/(\d+)/){
101                            my $id = $1;
102                            $peg_to_domain{$peg} = "$id\t$begin_percent\t$end_percent\t$length";
103                        }
104                          }                          }
                         last;  
105                      }                      }
106    
107            }
108    
109            foreach $peg (keys(%peg_to_domain)){
110                my($id,$begin,$end,$length) = split("\t",$peg_to_domain{$peg});
111                my $number;
112                if($domain{$id}){
113                    $number = $domain{$id};
114                    $domain_begin{$id} = (($domain_begin{$id} * $number) + $begin)/($number + 1);
115                    $domain_end{$id} = (($domain_end{$id} * $number) + $end)/($number + 1);
116                    $domain_length{$id} = (($domain_length{$id} * $number) + $length)/($number + 1);
117                    $domain{$id} = $number + 1;
118                  }                  }
119                else{
120                    $domain{$id} = 1;
121                    $domain_begin{$id} = $begin;
122                    $domain_end{$id} = $end;
123                    $domain_length{$id} = $length;
124              }              }
125          }          }
126    
127          push @$html,          push @$html,
128          "<h3>Domain Analysis Results</h3>",          "<h3>Domain Analysis Results for $count pegs in $figfam_id</h3>",
129            "<h3>Family Function: $function</h3>",
130          "<br>",          "<br>",
131          "<table>";          "<table border>";
132            push @$html,"<tr><td>CDD Domain</td><td>Occurences</td><td>AVG Protein Length</td><td>AVG Begin</td><td>AVG End</td></tr>";
133    
134          foreach $dom (keys(%domain)){          foreach $dom (keys(%domain)){
135              $instances = $domain{$dom};              my ($length,$begin,$end);
136              push @$html,"<tr><td>$dom</td><td>$instances</td></tr>";              my $instances = $domain{$dom};
137                if($domain_length{$dom} =~/^(\d+)/){$length = $1};
138                $begin = $domain_begin{$dom};
139                $end = $domain_end{$dom};
140    
141                push @$html,"<tr><td>$dom</td><td>$instances</td><td>$length</td><td>$begin</td><td>$end</td></tr>";
142          }          }
143          push @$html,"</table>";          push @$html,"</table>";
144    
145          &HTML::show_page($cgi,$html,1);          &HTML::show_page($cgi,$html,1);
146          exit;          exit;
147      }      }
148    
149      else{      else{
150          push @$html,          push @$html,
151          "<h3>Must enter either FigFam ID or set of pegs</h3>";          "<h3>Must enter either FigFam ID or set of pegs</h3>";

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3