[Bio] / FigKernelPackages / Observation.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/Observation.pm

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

revision 1.10, Wed Jun 20 20:55:36 2007 UTC revision 1.11, Thu Jun 21 21:15:23 2007 UTC
# Line 186  Line 186 
186    return $self->{stop};    return $self->{stop};
187  }  }
188    
189    =head3 start()
190    
191    Start of hit in query sequence.
192    
193    =cut
194    
195    sub qstart {
196        my ($self) = @_;
197    
198        return $self->{qstart};
199    }
200    
201    =head3 qstop()
202    
203    End of the hit in query sequence.
204    
205    =cut
206    
207    sub qstop {
208        my ($self) = @_;
209    
210        return $self->{qstop};
211    }
212    
213    =head3 hstart()
214    
215    Start of hit in hit sequence.
216    
217    =cut
218    
219    sub hstart {
220        my ($self) = @_;
221    
222        return $self->{hstart};
223    }
224    
225    =head3 end()
226    
227    End of the hit in hit sequence.
228    
229    =cut
230    
231    sub hstop {
232        my ($self) = @_;
233    
234        return $self->{hstop};
235    }
236    
237    =head3 qlength()
238    
239    length of the query sequence in similarities
240    
241    =cut
242    
243    sub qlength {
244        my ($self) = @_;
245    
246        return $self->{qlength};
247    }
248    
249    =head3 hlength()
250    
251    length of the hit sequence in similarities
252    
253    =cut
254    
255    sub hlength {
256        my ($self) = @_;
257    
258        return $self->{hlength};
259    }
260    
261    
262    
263  =head3 evalue()  =head3 evalue()
264    
265  E-value or P-Value if present.  E-value or P-Value if present.
# Line 593  Line 667 
667    
668      my ($fid,$datasets_ref) = (@_);      my ($fid,$datasets_ref) = (@_);
669      my $fig = new FIG;      my $fig = new FIG;
670      my @sims= $fig->nsims($fid,100,1e-20,"fig");  #    my @sims= $fig->nsims($fid,100,1e-20,"fig");
671        my @sims= $fig->nsims($fid,100,1e-20,"all");
672      my ($dataset);      my ($dataset);
673      foreach my $sim (@sims){      foreach my $sim (@sims){
674          my $hit = $sim->[1];          my $hit = $sim->[1];
675            my $percent = $sim->[2];
676          my $evalue = $sim->[10];          my $evalue = $sim->[10];
677          my $from = $sim->[8];          my $qfrom = $sim->[6];
678          my $to = $sim->[9];          my $qto = $sim->[7];
679            my $hfrom = $sim->[8];
680            my $hto = $sim->[9];
681            my $qlength = $sim->[12];
682            my $hlength = $sim->[13];
683            my $db = get_database($hit);
684            my $func = $fig->function_of($hit);
685            my $organism = $fig->org_of($hit);
686    
687          $dataset = {'class' => 'SIM',          $dataset = {'class' => 'SIM',
688                      'acc' => $hit,                      'acc' => $hit,
689                        'identity' => $percent,
690                      'type' => 'seq',                      'type' => 'seq',
691                      'evalue' => $evalue,                      'evalue' => $evalue,
692                      'start' => $from,                      'qstart' => $qfrom,
693                      'stop' => $to                      'qstop' => $qto,
694                        'hstart' => $hfrom,
695                        'hstop' => $hto,
696                        'database' => $db,
697                        'organism' => $organism,
698                        'function' => $func,
699                        'qlength' => $qlength,
700                        'hlength' => $hlength
701                      };                      };
702    
703          push (@{$datasets_ref} ,$dataset);          push (@{$datasets_ref} ,$dataset);
704      }      }
705  }  }
706    
707    =head3 get_database (internal)
708    This method gets the database association from the sequence id
709    
710    =cut
711    
712    sub get_database{
713        my ($id) = (@_);
714    
715        my ($db);
716        if ($id =~ /^fig\|/)              { $db = "FIG" }
717        elsif ($id =~ /^gi\|/)            { $db = "NCBI" }
718        elsif ($id =~ /^^[NXYZA]P_/)      { $db = "RefSeq" }
719        elsif ($id =~ /^sp\|/)            { $db = "SwissProt" }
720        elsif ($id =~ /^uni\|/)           { $db = "UniProt" }
721        elsif ($id =~ /^tigr\|/)          { $db = "TIGR" }
722        elsif ($id =~ /^pir\|/)           { $db = "PIR" }
723        elsif ($id =~ /^kegg\|/)          { $db = "KEGG" }
724        elsif ($id =~ /^tr\|/)            { $db = "TrEMBL" }
725        elsif ($id =~ /^eric\|/)          { $db = "ASAP" }
726        elsif ($id =~ /^img\|/)           { $db = "JGI" }
727    
728        return ($db);
729    
730    }
731    
732  =head3 get_identical_proteins() (internal)  =head3 get_identical_proteins() (internal)
733    
734  This methods retrieves sims fills the internal data structures.  This methods retrieves sims fills the internal data structures.
# Line 629  Line 746 
746      foreach my $id (@maps_to) {      foreach my $id (@maps_to) {
747          my ($tmp, $who);          my ($tmp, $who);
748          if (($id ne $fid) && ($tmp = $fig->function_of($id))) {          if (($id ne $fid) && ($tmp = $fig->function_of($id))) {
749              if ($id =~ /^fig\|/)           { $who = "FIG" }              $who = &get_database($id);
             elsif ($id =~ /^gi\|/)            { $who = "NCBI" }  
             elsif ($id =~ /^^[NXYZA]P_/)      { $who = "RefSeq" }  
             elsif ($id =~ /^sp\|/)            { $who = "SwissProt" }  
             elsif ($id =~ /^uni\|/)           { $who = "UniProt" }  
             elsif ($id =~ /^tigr\|/)          { $who = "TIGR" }  
             elsif ($id =~ /^pir\|/)           { $who = "PIR" }  
             elsif ($id =~ /^kegg\|/)          { $who = "KEGG" }  
             elsif ($id =~ /^tr\|/)            { $who = "TrEMBL" }  
             elsif ($id =~ /^eric\|/)          { $who = "ASAP" }  
   
750              push(@funcs, [$id,$who,$tmp]);              push(@funcs, [$id,$who,$tmp]);
751          }          }
752      }      }
# Line 787  Line 894 
894    return $self;    return $self;
895  }  }
896    
897    =head3 identity (internal)
898    
899    Returns the % identity of the similar sequence
900    
901    =cut
902    
903    sub identity {
904        my ($self) = @_;
905    
906        return $self->{identity};
907    }
908    
909  =head3 feature_id (internal)  =head3 feature_id (internal)
910    
911    
# Line 847  Line 966 
966  }  }
967    
968    
969    
970  ############################################################  ############################################################
971  ############################################################  ############################################################
972  package Observation::Identical;  package Observation::Identical;
# Line 1051  Line 1171 
1171    
1172      my ($class,$dataset) = @_;      my ($class,$dataset) = @_;
1173      my $self = $class->SUPER::new($dataset);      my $self = $class->SUPER::new($dataset);
1174        $self->{identity} = $dataset->{'identity'};
1175      $self->{acc} = $dataset->{'acc'};      $self->{acc} = $dataset->{'acc'};
1176      $self->{evalue} = $dataset->{'evalue'};      $self->{evalue} = $dataset->{'evalue'};
1177      $self->{start} = $dataset->{'start'};      $self->{qstart} = $dataset->{'qstart'};
1178      $self->{stop} = $dataset->{'stop'};      $self->{qstop} = $dataset->{'qstop'};
1179        $self->{hstart} = $dataset->{'hstart'};
1180        $self->{hstop} = $dataset->{'hstop'};
1181        $self->{database} = $dataset->{'database'};
1182        $self->{organism} = $dataset->{'organism'};
1183        $self->{function} = $dataset->{'function'};
1184        $self->{qlength} = $dataset->{'qlength'};
1185        $self->{hlength} = $dataset->{'hlength'};
1186    
1187      bless($self,$class);      bless($self,$class);
1188      return $self;      return $self;
# Line 1075  Line 1203 
1203      my $data = [];      my $data = [];
1204      my $count = 0;      my $count = 0;
1205      my $content;      my $content;
1206        my $fig = new FIG;
1207    
1208      foreach my $thing (@$dataset) {      foreach my $thing (@$dataset) {
1209          my $single_domain = [];          my $single_domain = [];
1210          next if ($thing->class ne "SIM");          next if ($thing->class ne "SIM");
1211          $count++;          $count++;
1212    
1213            my $id = $thing->acc;
1214    
1215            # add the subsystem information
1216            my @in_sub  = $fig->peg_to_subsystems($id);
1217            my $in_sub;
1218    
1219            if (@in_sub > 0) {
1220                $in_sub = @in_sub;
1221    
1222                # RAE: add a javascript popup with all the subsystems
1223                my $ss_list=join "<br>", map { my $g = $_; $g =~ s/\_/ /g; $_ = $g } sort {$a cmp $b} @in_sub;
1224                $in_sub = $cgi->a( {id=>"subsystems", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Subsystems', '$ss_list', ''); this.tooltip.addHandler(); return false;"}, $in_sub);
1225            } else {
1226                $in_sub = "&nbsp;";
1227            }
1228    
1229            # add evidence code with tool tip
1230            my $ev_codes=" &nbsp; ";
1231            my @ev_codes = "";
1232            if ($id =~ /^fig\|\d+\.\d+\.peg\.\d+$/) {
1233                my @codes = grep { $_->[1] =~ /^evidence_code/i } $fig->get_attributes($id);
1234                @ev_codes = ();
1235                foreach my $code (@codes) {
1236                    my $pretty_code = $code->[2];
1237                    if ($pretty_code =~ /;/) {
1238                        my ($cd, $ss) = split(";", $code->[2]);
1239                        $ss =~ s/_/ /g;
1240                        $pretty_code = $cd;# . " in " . $ss;
1241                    }
1242                    push(@ev_codes, $pretty_code);
1243                }
1244            }
1245    
1246            if (scalar(@ev_codes) && $ev_codes[0]) {
1247                my $ev_code_help=join("<br />", map {&HTML::evidence_codes_explain($_)} @ev_codes);
1248                $ev_codes = $cgi->a(
1249                                    {
1250                                        id=>"evidence_codes", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Evidence Codes', '$ev_code_help', ''); this.tooltip.addHandler(); return false;"}, join("<br />", @ev_codes));
1251            }
1252    
1253            # add the aliases
1254            my $aliases = undef;
1255            $aliases = &html_enc( join( ", ", $fig->feature_aliases($id) ) );
1256            $aliases = &HTML::set_prot_links( $cgi, $aliases );
1257            $aliases ||= "&nbsp;";
1258    
1259            my $iden    = $thing->identity;
1260            my $ln1     = $thing->qlength;
1261            my $ln2     = $thing->hlength;
1262            my $b1      = $thing->qstart;
1263            my $e1      = $thing->qstop;
1264            my $b2      = $thing->hstart;
1265            my $e2      = $thing->hstop;
1266            my $d1      = abs($e1 - $b1) + 1;
1267            my $d2      = abs($e2 - $b2) + 1;
1268            my $reg1    = "$b1-$e1 (<b>$d1/$ln1</b>)";
1269            my $reg2    = "$b2-$e2 (<b>$d2/$ln2</b>)";
1270    
1271    
1272            push(@$single_domain,$thing->database);
1273          push(@$single_domain,&HTML::set_prot_links($cgi,$thing->acc));          push(@$single_domain,&HTML::set_prot_links($cgi,$thing->acc));
         push(@$single_domain,$thing->start);  
         push(@$single_domain,$thing->stop);  
1274          push(@$single_domain,$thing->evalue);          push(@$single_domain,$thing->evalue);
1275            push(@$single_domain,"$iden\%");
1276            push(@$single_domain,$reg1);
1277            push(@$single_domain,$reg2);
1278            push(@$single_domain,$in_sub);
1279            push(@$single_domain,$ev_codes);
1280            push(@$single_domain,$thing->organism);
1281            push(@$single_domain,$thing->function);
1282            push(@$single_domain,$aliases);
1283          push(@$data,$single_domain);          push(@$data,$single_domain);
1284      }      }
1285    
# Line 1097  Line 1292 
1292      }      }
1293      return ($content);      return ($content);
1294  }  }
1295    
1296    sub html_enc { $_ = $_[0]; s/\&/&amp;/g; s/\>/&gt;/g; s/\</&lt;/g; $_ }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3