[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.3, Tue Feb 27 21:06:16 2007 UTC revision 1.5, Thu May 24 20:54:25 2007 UTC
# Line 16  Line 16 
16  my $inputs;  my $inputs;
17  if ($cgi->param('request') )  if ($cgi->param('request') )
18  {  {
19    my $input =$cgi->param('proteins');    my $input =$cgi->param('set_of_pegs');
20    my @inputs = split("\n",$input);    my @inputs = split("\n",$input);
21    
22    if ($cgi->upload('fileupload'))    if ($cgi->upload('fileupload'))
# Line 29  Line 29 
29    &analyze_domains($cgi,$fig,$given);    &analyze_domains($cgi,$fig,$given);
30    
31  }  }
32    
33    elsif ($cgi->param('domain_search') )
34    {
35      #print STDERR "pressed\n";
36      my $query_domain =$cgi->param('query_domain');
37      &not_in_family_search($cgi,$fig,$query_domain);
38    }
39    
40  else  else
41  {  {
42    &show_initial($fig,$cgi,$html);    &show_initial($fig,$cgi,$html);
# Line 55  Line 63 
63      return $html;      return $html;
64  }  }
65    
66    sub not_in_family_search
67    {
68        my $html = [];
69        my ($cgi,$fig,$query_domain) =@_;
70        my $figfam_id = $cgi->param('figfam_id');
71        #print STDERR "fam_id:$figfam_id\n";
72        my $figfam = FigFam->new($fig,$figfam_id);
73        my $set = $figfam->pegs_of();
74        my %in_family;
75        foreach $member (@$set){
76            $in_family{$member} = 1;
77        }
78        my $key = $query_domain;
79        my @returns = $fig->get_attributes(undef,$key);
80    
81        push @$html,
82        "<br>",
83        "<h3>Pegs with $query_domain Not in $figfam_id</h3>",
84        "<table border><tr><td>PEG</td><td>FUNCTION</td></tr>";
85        my $count = scalar(@returns);
86        #print STDERR "count:$count\n";
87        foreach my $return (@returns){
88            my $peg = @$return[0];
89            #print STDERR "peg:$peg\n";
90            if(!$in_family{$peg}){
91                #print STDERR "peg:$peg\n";
92                my $function = $fig->function_of($peg);
93                push @$html,"<tr><td>$peg</td><td>$function</td></tr>";
94            }
95        }
96    
97        push @$html,"</table>";
98        &HTML::show_page($cgi,$html,1);
99        exit;
100    
101    }
102    
103    
104  sub analyze_domains  sub analyze_domains
105  {  {
106      my ($cgi,$fig,$given) =@_;      my ($cgi,$fig,$given) =@_;
107        my ($figfam_id,$figfam,$function,$set,$count);
108    
109        if ($cgi->param('figfam_id')){
110            $figfam_id = $cgi->param('figfam_id');
111            $figfam = FigFam->new($fig,$figfam_id);
112            $function = $figfam->family_function();
113            $set = $figfam->pegs_of();
114        }
115    
116        else{
117            my @temp = ();
118            foreach $g (@$given){
119                if($g=~/(fig\|\d+.\d.peg.\d+)/){push(@temp,$1)}
120            }
121            $set = [@temp];
122            $figfam_id = "Arbitrary Set";
123            $function = "Mixed Set";
124        }
125        $count = scalar(@$set);
126    
     my $sops = $cgi->param('set_of_pegs');  
     my $figfam_id = $cgi->param('figfam_id');  
     my $figfam = FigFam->new($fig,$figfam_id);  
     my $function = $figfam->family_function();  
127      my %peg_to_domain;      my %peg_to_domain;
128      my %peg_to_score;      my %peg_to_score;
129      my %domain;      my %domain;
130      my %domain_location;      my %domain_location;
131      my %domain_length;      my %domain_length;
132    
133      my $set = $figfam->pegs_of();      my %prob;
134      my  $count = scalar(@$set);      open(PROB,"/home/mkubal/Domain_Analysis/domain_probability_table.txt");
135        while($_ = <PROB>){
136            chomp($_);
137            @parts = split("\t",$_);
138            my $domain = $parts[0];
139            my $prob = $parts[1];
140            $prob{$domain} = $prob;
141        }
142        close(PROB);
143    
144        my %single;
145        open(IN,"/home/mkubal/Domain_Analysis/domain_to_single_family.txt");
146        while($_ = <IN>){
147            chomp($_);
148            @parts = split("\t",$_);
149            $single{$parts[0]} = $parts[1];
150        }
151        close(IN);
152    
153        push @$html,
154        "<h3>Domain Analysis Results for $count pegs in $figfam_id</h3>",
155        "<h3>Family Function: $function</h3>",
156        "<br>";
157    
158      if($figfam_id){      my @databases = ('CDD','PIR','PROSITE','PRODOM');
159          my @returns = $fig->get_attributes($set,'CDD');      if($count > 0){
160          foreach $return (@returns){          #print STDERR "some in set\n";
161            foreach my $db (@databases){
162                foreach $key (keys(%peg_to_score)){delete($peg_to_score{$key})}
163                foreach $key (keys(%peg_to_domain)){delete($peg_to_domain{$key})}
164                foreach $key (keys(%domain)){delete($domain{$key})}
165    
166                push @$html, "<table border>";
167                my @returns = $fig->get_attributes($set,$db);
168                foreach my $return (@returns){
169              my $peg = @$return[0];              my $peg = @$return[0];
170              my $seq = $fig->get_translation($peg);              my $seq = $fig->get_translation($peg);
171              my $length = length($seq);              my $length = length($seq);
# Line 103  Line 194 
194                      }                      }
195                  }                  }
196              }              }
   
197          }          }
198    
199          foreach $peg (keys(%peg_to_domain)){          foreach $peg (keys(%peg_to_domain)){
# Line 124  Line 214 
214              }              }
215          }          }
216    
217          push @$html,              push @$html,"<tr><td>$db Domain</td><td>Occurences</td><td>AVG Protein Length</td><td>AVG Begin</td><td>AVG End</td><td>Probability</td><td>Sole Family</td></tr>";
         "<h3>Domain Analysis Results for $count pegs in $figfam_id</h3>",  
         "<h3>Family Function: $function</h3>",  
         "<br>",  
         "<table border>";  
         push @$html,"<tr><td>CDD Domain</td><td>Occurences</td><td>AVG Protein Length</td><td>AVG Begin</td><td>AVG End</td></tr>";  
218    
219          foreach $dom (keys(%domain)){              foreach my $dom (keys(%domain)){
220              my ($length,$begin,$end);              my ($length,$begin,$end);
221              my $instances = $domain{$dom};              my $instances = $domain{$dom};
222              if($domain_length{$dom} =~/^(\d+)/){$length = $1};              if($domain_length{$dom} =~/^(\d+)/){$length = $1};
223              $begin = $domain_begin{$dom};              $begin = $domain_begin{$dom};
224                    if($begin =~/(\d\.\d{3})/){$begin = $1}
225              $end = $domain_end{$dom};              $end = $domain_end{$dom};
226                    if($end =~/(\d\.\d{3})/){$end = $1}
227              push @$html,"<tr><td>$dom</td><td>$instances</td><td>$length</td><td>$begin</td><td>$end</td></tr>";                  my $prob = $prob{$dom};
228                    my $single_family = "multiple";
229                    if($single{$dom}){$single_family = $single{$dom};}
230                    my $link;
231                    if($db eq "CDD"){$link ="http://0-www.ncbi.nlm.nih.gov.library.vu.edu.au:80/Structure/cdd/cddsrv.cgi?uid=";}
232                    elsif($db eq "PIR"){$link = "http://pir.georgetown.edu/cgi-bin/ipcSF?id=PIRSF";}
233                    elsif($db eq "PRODOM"){$link = "http://prodom.prabi.fr/prodom/current/cgi-bin/request.pl?question=DBEN&query=PD";}
234                    else{$link ="http://expasy.org/prosite/PS";}
235                    my $tag = "<a href='$link$dom'>$dom</a>";
236                    push @$html,"<tr><td>$tag</td><td>$instances</td><td>$length</td><td>$begin</td><td>$end</td><td>$prob</td><td>$single_family</td></tr>";
237          }          }
238          push @$html,"</table>";          push @$html,"</table>";
239    
240            }
241    
242    
243            push @$html,
244            $cgi->start_multipart_form(),
245            "<br><table border><tr><td>Search Pegs with Domain Not in Family</td><td>",
246            $cgi->textarea(-name=>"query_domain", -rows=>1, -columns=>15),
247            "</td><td>",
248            $cgi->submit(-name=>'domain_search', -value=>'Not In Family'),
249            "</td></tr></table>";
250            push @$html, "<input type='hidden' name='figfam_id' value='" . $cgi->param('figfam_id') . "'>";
251    
252          &HTML::show_page($cgi,$html,1);          &HTML::show_page($cgi,$html,1);
253          exit;          exit;
254      }      }
# Line 152  Line 259 
259          &HTML::show_page($cgi,$html,1);          &HTML::show_page($cgi,$html,1);
260          exit;          exit;
261      }      }
   
262  }  }
263    

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3