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

Diff of /FigWebServices/comp_MR.cgi

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

revision 1.2, Mon Mar 12 01:13:24 2007 UTC revision 1.3, Mon Mar 12 21:58:58 2007 UTC
# Line 79  Line 79 
79    
80  if ($request eq "common")  if ($request eq "common")
81  {  {
82        push @$html, "<h2>Showing common pegs between $genome1 and $genome2</h2>";
83      &process_data($fig,$cgi,$html,$common,$use_figV);      &process_data($fig,$cgi,$html,$common,$use_figV);
84  }  }
85  elsif ($request eq "in1_not2")  elsif ($request eq "in1_not2")
86  {  {
87        push @$html, "<h2>Showing pegs in $genome1, but not in $genome2</h2>";
88      &process_data($fig,$cgi,$html,$in1_not2,$use_figV);      &process_data($fig,$cgi,$html,$in1_not2,$use_figV);
89  }  }
90  elsif ($request eq "in2_not1")  elsif ($request eq "in2_not1")
91  {  {
92        push @$html, "<h2>Showing pegs in $genome2, but not in $genome1</h2>";
93      &process_data($fig,$cgi,$html,$in2_not1,0);      &process_data($fig,$cgi,$html,$in2_not1,0);
94  }  }
95    elsif ($request eq "find_similar_pegs") {
96        &find_similar_pegs($fig, $cgi, $html,$use_figV);
97    }
98  unshift @$html, "<TITLE>Compare Metabolic Reconstructions</TITLE>\n";  unshift @$html, "<TITLE>Compare Metabolic Reconstructions</TITLE>\n";
99    
100  &HTML::show_page($cgi,$html);  &HTML::show_page($cgi,$html);
# Line 137  Line 142 
142    
143                      foreach $peg (sort { &FIG::by_fig_id($a,$b) } @$pegs1)                      foreach $peg (sort { &FIG::by_fig_id($a,$b) } @$pegs1)
144                      {                      {
145                          if ($use_figV)                          $pegL = &peg_P1K_link($cgi,$fig,$peg, $use_figV);
146                          {  
                             $pegL = &peg_P1K_link($cgi,$fig,$peg);  
                         }  
                         else  
                         {  
                             $pegL = &HTML::fid_link($cgi,$peg);  
                         }  
147                          push(@$html,"<li>$pegL\n");                          push(@$html,"<li>$pegL\n");
148    
149                            if ($cgi->param('request') eq 'in1_not2' or
150                                $cgi->param('request') eq 'in2_not1') {
151                                push(@$html, &peg_find_similar_link($cgi,$fig, $peg));
152                            }
153    
154                      }                      }
155                      push(@$html,"</ul>\n");                      push(@$html,"</ul>\n");
156                  }                  }
# Line 155  Line 160 
160      }      }
161  }  }
162    
163    sub peg_link {
164        my ($cgi, $fig, $use_figV, $peg) = @_;
165        if ($use_figV) {
166            return &peg_P1K_link($cgi,$fig,$peg);
167        }
168        else {
169            return &HTML::fid_link($cgi,$peg);
170        }
171    }
172    
173    sub peg_find_similar_link {
174        my($cgi,$fig,$peg) = @_;
175        return '&nbsp; <a target="find_similar_pegs" href="?genome1='.$cgi->param('genome1').
176            '&genome2='.$cgi->param('genome2').'&request=find_similar_pegs&peg='.
177            $peg.'">find similar pegs</a>';
178    }
179    
180  sub peg_P1K_link {  sub peg_P1K_link {
181      my($cgi,$fig,$peg) = @_;      my($cgi,$fig,$peg) = @_;
182    
183      return $peg;      $fig->organism_directory =~ /(\d+)\/rp\/\d+\.\d+$/;
184        return "<a target='seedviewer' href='".$FIG_Config::seedviewer_url.
185            "?action=ShowAnnotation&prot=$peg&job=$1'>$peg</a>";
186    
187  }  }
188    
189  sub sub_P1K_link {  sub sub_P1K_link {
190      my($cgi,$sub) = @_;      my($cgi,$sub) = @_;
191    
192        $fig->organism_directory =~ /(\d+)\/rp\/\d+\.\d+$/;
193        return "<a target='seedviewer' href='".$FIG_Config::seedviewer_url.
194            "?action=ShowSubsystem&subsystem_name=$sub&job=$1'>$sub</a>";
195    
196      return $sub;      return $sub;
197  }  }
198    
199    
200    sub find_similar_pegs {
201        my ($fig, $cgi, $html, $use_figV) = @_;
202    
203        my $peg = $cgi->param('peg');
204        my @sims = $fig->sims($peg, 50, 1.0e-20, 'fig');
205    
206        $cgi->param('genome1') =~ /(\d+\.\d+)/;
207        my $genome1 = $1;
208        $cgi->param('genome2') =~ /(\d+\.\d+)/;
209        my $genome2 = $1;
210    
211        $peg =~ /fig\|(\d+\.\d+)\./;
212        my $source = $1;
213        my $target = ($genome1 eq $source) ? $genome2 : $genome1;
214    
215        push(@$html, "<h2>Showing similar pegs from $target for $peg</h2>");
216        my @table;
217        foreach (@sims) {
218            $_->[1] =~ /fig\|(\d+\.\d+)\./;
219            if ($1 eq $target) {
220    
221                unless (@table) {
222                    push @table, [ &peg_link($cgi, $fig, $use_figV, $peg),
223                                   $fig->function_of($peg), '100.00', 'n/a', 'n/a' ];
224                }
225                push @table, [ &peg_link($cgi, $fig, $use_figV, $_->[1]),
226                               $fig->function_of($_->[1]), $_->[2], $_->[10], $_->[11] ];
227                last if (scalar(@table) == 3);
228            }
229        }
230        if (scalar(@table)) {
231            push @$html, &HTML::make_table( ['Id', 'Function', '% Identity', 'E-value', 'Bitscore' ], \@table );
232        }
233        else {
234            push @$html, '<p>No similar pegs found.</p>';
235        }
236    }

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3