[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.60, Fri Jun 20 16:08:32 2008 UTC revision 1.77, Mon May 18 20:26:44 2009 UTC
# Line 11  Line 11 
11  use WebConfig;  use WebConfig;
12    
13  use FIG_Config;  use FIG_Config;
14    use LWP::Simple;
15  #use strict;  #use strict;
16  #use warnings;  #use warnings;
17  use HTML;  use HTML;
# Line 319  Line 320 
320  =cut  =cut
321    
322  sub get_objects {  sub get_objects {
323      my ($self,$fid,$fig,$scope) = @_;      my ($self,$fid,$fig,$parameters,$scope) = @_;
324    
325      my $objects = [];      my $objects = [];
326      my @matched_datasets=();      my @matched_datasets=();
# Line 333  Line 334 
334      else{      else{
335          my %domain_classes;          my %domain_classes;
336          my @attributes = $fig->get_attributes($fid);          my @attributes = $fig->get_attributes($fid);
337          $domain_classes{'CDD'} = 1;          #$domain_classes{'CDD'} = 1;
338          $domain_classes{'PFAM'} = 1;          $domain_classes{'PFAM'} = 1;
339          get_identical_proteins($fid,\@matched_datasets,$fig);          get_identical_proteins($fid,\@matched_datasets,$fig);
340          get_attribute_based_domain_observations($fid,\%domain_classes,\@matched_datasets,\@attributes,$fig);          get_attribute_based_domain_observations($fid,\%domain_classes,\@matched_datasets,\@attributes,$fig);
341          get_sims_observations($fid,\@matched_datasets,$fig);          get_sims_observations($fid,\@matched_datasets,$fig,$parameters);
342          get_functional_coupling($fid,\@matched_datasets,$fig);          get_functional_coupling($fid,\@matched_datasets,$fig);
343          get_attribute_based_location_observations($fid,\@matched_datasets,\@attributes,$fig);          get_attribute_based_location_observations($fid,\@matched_datasets,\@attributes,$fig);
344          get_pdb_observations($fid,\@matched_datasets,\@attributes,$fig);          get_pdb_observations($fid,\@matched_datasets,\@attributes,$fig);
# Line 374  Line 375 
375    
376  }  }
377    
378    =head3 get_attributes
379        provides layer of abstraction between tools and underlying access method to Attribute Server
380    =cut
381    
382    sub get_attributes{
383        my ($self,$fig,$search_set,$search_term,$value_array_ref) = @_;
384        my @attributes = $fig->get_attributes($search_set,$search_term,@$value_array_ref);
385        return @attributes;
386    }
387    
388  =head3 get_sims_objects()  =head3 get_sims_objects()
389    
390  This is the B<REAL WORKHORSE> method of this Package.  This is the B<REAL WORKHORSE> method of this Package.
# Line 410  Line 421 
421      my $content = [];      my $content = [];
422      my $row = [];      my $row = [];
423    
424      my $org_name = $fig->org_of($fid);      my $org_name = "Data not available";
425        if ( $fig->org_of($fid)){
426            $org_name = $fig->org_of($fid);
427        }
428      my $org_id = $fig->genome_of($fid);      my $org_id = $fig->genome_of($fid);
429      my $function = $fig->function_of($fid);      my $function = $fig->function_of($fid);
430      #my $taxonomy = $fig->taxonomy_of($org_id);      #my $taxonomy = $fig->taxonomy_of($org_id);
# Line 466  Line 480 
480          my @currLineage = ($parent_tax);          my @currLineage = ($parent_tax);
481          push (@{$families{figs}{$parent_tax}}, $id);          push (@{$families{figs}{$parent_tax}}, $id);
482          my $level = 2;          my $level = 2;
483          foreach my $tax (split(/\; /, $taxonomy)){  
484            foreach my $tax (split(/\; /, $taxonomy),$id){
485              next if ($tax eq $parent_tax);
486              push (@{$families{children}{$parent_tax}}, $tax) if ($tax ne $parent_tax);              push (@{$families{children}{$parent_tax}}, $tax) if ($tax ne $parent_tax);
487              push (@{$families{figs}{$tax}}, $id) if ($tax ne $parent_tax);              push (@{$families{figs}{$tax}}, $id) if ($tax ne $parent_tax);
488              $families{level}{$tax} = $level;              $families{level}{$tax} = $level;
# Line 530  Line 546 
546    
547      # we read a FIG ID and a reference to an array (of arrays of hashes, see above)      # we read a FIG ID and a reference to an array (of arrays of hashes, see above)
548      my ($fid,$domain_classes,$datasets_ref,$attributes_ref,$fig) = (@_);      my ($fid,$domain_classes,$datasets_ref,$attributes_ref,$fig) = (@_);
549        my $seen = {};
550      foreach my $attr_ref (@$attributes_ref) {      foreach my $attr_ref (@$attributes_ref) {
551          my $key = @$attr_ref[1];          my $key = @$attr_ref[1];
552          my @parts = split("::",$key);          my @parts = split("::",$key);
553          my $class = $parts[0];          my $class = $parts[0];
554          my $name = $parts[1];          my $name = $parts[1];
555            next if ($seen->{$name});
556            $seen->{$name}++;
557          #next if (($class eq "PFAM") && ($name !~ /interpro/));          #next if (($class eq "PFAM") && ($name !~ /interpro/));
558    
559          if($domain_classes->{$parts[0]}){          if($domain_classes->{$parts[0]}){
# Line 551  Line 569 
569                      $evalue = $part1."e-".$part2;                      $evalue = $part1."e-".$part2;
570                  }                  }
571                  elsif(($raw_evalue =~/(\d+)\.(\d+)/) && ($class eq "PFAM")){                  elsif(($raw_evalue =~/(\d+)\.(\d+)/) && ($class eq "PFAM")){
572                      $evalue=$raw_evalue;                      #$evalue=$raw_evalue;
573                        my $part2 = 1000 - $1;
574                        my $part1 = $2/100;
575                        $evalue = $part1."e-".$part2;
576    
577                  }                  }
578                  else{                  else{
579                      $evalue = "0.0";                      $evalue = "0.0";
# Line 695  Line 717 
717  sub get_sims_observations{  sub get_sims_observations{
718      my ($fid,$datasets_ref,$fig,$parameters) = (@_);      my ($fid,$datasets_ref,$fig,$parameters) = (@_);
719    
720      my ($max_sims, $max_expand, $max_eval, $sim_order, $db_filter);      my ($max_sims, $max_expand, $max_eval, $sim_order, $db_filter, $sim_filters);
721      if ($parameters->{flag}){      if ( (defined $parameters->{flag}) && ($parameters->{flag})){
722        $max_sims = $parameters->{max_sims};        $max_sims = $parameters->{max_sims};
723        $max_expand = $parameters->{max_expand};        $max_expand = $parameters->{max_expand};
724        $max_eval = $parameters->{max_eval};        $max_eval = $parameters->{max_eval};
725        $db_filter = $parameters->{db_filter};        $db_filter = $parameters->{db_filter};
726        $sim_order = $parameters->{sim_order};        $sim_filters->{ sort_by } = $parameters->{sim_order};
727          #$sim_order = $parameters->{sim_order};
728        $group_by_genome = 1 if (defined ($parameters->{group_genome}));        $group_by_genome = 1 if (defined ($parameters->{group_genome}));
729      }      }
730        elsif ( (defined $parameters->{sims_db}) && ($parameters->{sims_db} eq 'all')){
731          $max_sims = 50;
732          $max_expand = 5;
733          $max_eval = 1e-5;
734          $db_filter = "all";
735          $sim_filters->{ sort_by } = 'id';
736        }
737      else{      else{
738        $max_sims = 50;        $max_sims = 50;
739        $max_expand = 5;        $max_expand = 5;
740        $max_eval = 1e-5;        $max_eval = 1e-5;
741        $db_filter = "figx";        $db_filter = "figx";
742        $sim_order = "id";        $sim_filters->{ sort_by } = 'id';
743          #$sim_order = "id";
744      }      }
745    
746      my($id, $genome, @genomes, %sims);      my($id, $genome, @genomes, %sims);
747      my @tmp= $fig->sims($fid,$max_sims,$max_eval,$db_filter,$max_expand);  #    my @tmp= $fig->sims($fid,$max_sims,$max_eval,$db_filter,$max_expand,$sim_filters);
748        my @tmp= $fig->sims($fid,1000000,$max_eval,$db_filter,$max_expand,$sim_filters);
749      @tmp = grep { !($_->id2 =~ /^fig\|/ and $fig->is_deleted_fid($_->id2)) } @tmp;      @tmp = grep { !($_->id2 =~ /^fig\|/ and $fig->is_deleted_fid($_->id2)) } @tmp;
750      my ($dataset);      my ($dataset);
751    
# Line 728  Line 760 
760        @tmp = map { @{ $sims{$_} } } @genomes;        @tmp = map { @{ $sims{$_} } } @genomes;
761      }      }
762    
763        my $seen_sims={};
764        my $count=1;
765      foreach my $sim (@tmp){      foreach my $sim (@tmp){
766    
767          my $hit = $sim->[1];          my $hit = $sim->[1];
768            next if ($seen_sims->{$hit});
769            next if ($hit =~ /nmpdr\||gnl\|md5\|/);
770            $seen_sims->{$hit}++;
771    
772            last if ($count>$max_sims);
773            $count++;
774    
775          my $percent = $sim->[2];          my $percent = $sim->[2];
776          my $evalue = $sim->[10];          my $evalue = $sim->[10];
777          my $qfrom = $sim->[6];          my $qfrom = $sim->[6];
# Line 740  Line 782 
782          my $hlength = $sim->[13];          my $hlength = $sim->[13];
783          my $db = get_database($hit);          my $db = get_database($hit);
784          my $func = $fig->function_of($hit);          my $func = $fig->function_of($hit);
785          my $organism = $fig->org_of($hit);          my $organism;
786            if ($fig->org_of($hit)){
787                $organism = $fig->org_of($hit);
788            }
789            else{
790                $organism = "Data not available";
791            }
792    
793          $dataset = {'class' => 'SIM',          $dataset = {'class' => 'SIM',
794                      'query' => $sim->[0],                      'query' => $sim->[0],
# Line 847  Line 895 
895      my ($bound,$sim_cutoff,$coupling_cutoff) = (5000, 1.0e-10, 4);      my ($bound,$sim_cutoff,$coupling_cutoff) = (5000, 1.0e-10, 4);
896    
897      # get the fc data      # get the fc data
898      my @fc_data = $fig->coupling_and_evidence($fid,$bound,$sim_cutoff,$coupling_cutoff,1);      my @fc_data = $fig->coupling_and_evidence($fid,$bound,$sim_cutoff,$coupling_cutoff);
899    
900      # retrieve data      # retrieve data
901      my @rows = map { ($sc,$neigh) = @$_;      my @rows = map { ($sc,$neigh) = @$_;
# Line 1134  Line 1182 
1182          my $id = $row->[0];          my $id = $row->[0];
1183          my $who = $row->[1];          my $who = $row->[1];
1184          my $assignment = $row->[2];          my $assignment = $row->[2];
1185          my $organism = $fig->org_of($id);          my $organism = "Data not available";
1186            if ($fig->org_of($id)){
1187                $organism = $fig->org_of($id);
1188            }
1189          my $single_domain = [];          my $single_domain = [];
1190          push(@$single_domain,$who);          push(@$single_domain,$who);
1191          push(@$single_domain,&HTML::set_prot_links($cgi,$id));          push(@$single_domain,"<a href='?page=Annotation&feature=$id'>$id</a>");
1192          push(@$single_domain,$organism);          push(@$single_domain,$organism);
1193          push(@$single_domain,$assignment);          push(@$single_domain,$assignment);
1194          push(@$all_domains,$single_domain);          push(@$all_domains,$single_domain);
# Line 1260  Line 1311 
1311                                  -password => $WebConfig::DBPWD);                                  -password => $WebConfig::DBPWD);
1312    
1313      my ($name_title,$name_value,$description_title,$description_value);      my ($name_title,$name_value,$description_title,$description_value);
1314      if($db eq "CDD"){  
1315          my $cdd_objs = $dbmaster->cdd->get_objects( { 'id' => $id } );      if($db =~ /PFAM/){
1316          if(!scalar(@$cdd_objs)){          my $new_id;
1317              $name_title = "name";          if ($id =~ /_/){
1318              $name_value = "not available";              ($new_id) = ($id) =~ /(.*?)_/;
             $description_title = "description";  
             $description_value = "not available";  
1319          }          }
1320          else{          else{
1321              my $cdd_obj = $cdd_objs->[0];              $new_id = $id;
             $name_title = "name";  
             $name_value = $cdd_obj->term;  
             $description_title = "description";  
             $description_value = $cdd_obj->description;  
         }  
1322      }      }
1323      elsif($db =~ /PFAM/){  
         my ($new_id) = ($id) =~ /(.*?)_/;  
1324          my $pfam_objs = $dbmaster->pfam->get_objects( { 'id' => $new_id } );          my $pfam_objs = $dbmaster->pfam->get_objects( { 'id' => $new_id } );
1325          if(!scalar(@$pfam_objs)){          if(!scalar(@$pfam_objs)){
1326              $name_title = "name";              $name_title = "name";
# Line 1333  Line 1376 
1376    
1377      my $link;      my $link;
1378      my $link_url;      my $link_url;
1379      if ($thing->class eq "CDD"){$link_url = "http://0-www.ncbi.nlm.nih.gov.library.vu.edu.au:80/Structure/cdd/cddsrv.cgi?uid=$link_id"}  #    if ($thing->class eq "CDD"){$link_url = "http://0-www.ncbi.nlm.nih.gov.library.vu.edu.au:80/Structure/cdd/cddsrv.cgi?uid=$link_id"}
1380      elsif($thing->class eq "PFAM"){$link_url = "http://pfam.sanger.ac.uk/family?acc=$link_id"}      if($thing->class eq "PFAM"){$link_url = "http://pfam.sanger.ac.uk/family?acc=$link_id"}
1381      else{$link_url = "NO_URL"}      else{$link_url = "NO_URL"}
1382    
1383      $link = {"link_title" => $thing->acc,      $link = {"link_title" => $thing->acc,
# Line 1363  Line 1406 
1406      my $data = [];      my $data = [];
1407      my $count = 0;      my $count = 0;
1408      my $content;      my $content;
1409        my $seen = {};
1410    
1411      foreach my $thing (@$dataset) {      foreach my $thing (@$dataset) {
1412          next if ($thing->type !~ /dom/);          next if ($thing->type !~ /dom/);
# Line 1378  Line 1422 
1422                                  -password => $WebConfig::DBPWD);                                  -password => $WebConfig::DBPWD);
1423    
1424          my ($name_title,$name_value,$description_title,$description_value);          my ($name_title,$name_value,$description_title,$description_value);
1425          if($db eq "CDD"){  
1426              my $cdd_objs = $dbmaster->cdd->get_objects( { 'id' => $id } );          my $new_id;
1427              if(!scalar(@$cdd_objs)){          if($db =~ /PFAM/){
1428                  $name_title = "name";              if ($id =~ /_/){
1429                  $name_value = "not available";                  ($new_id) = ($id) =~ /(.*?)_/;
                 $description_title = "description";  
                 $description_value = "not available";  
1430              }              }
1431              else{              else{
1432                  my $cdd_obj = $cdd_objs->[0];                  $new_id = $id;
                 $name_title = "name";  
                 $name_value = $cdd_obj->term;  
                 $description_title = "description";  
                 $description_value = $cdd_obj->description;  
             }  
1433          }          }
1434          elsif($db =~ /PFAM/){  
1435              my ($new_id) = ($id) =~ /(.*?)_/;              next if ($seen->{$new_id});
1436                $seen->{$new_id}=1;
1437    
1438              my $pfam_objs = $dbmaster->pfam->get_objects( { 'id' => $new_id } );              my $pfam_objs = $dbmaster->pfam->get_objects( { 'id' => $new_id } );
1439    #           print STDERR "VALUES: " . $pfam_objs . "\n";
1440              if(!scalar(@$pfam_objs)){              if(!scalar(@$pfam_objs)){
1441                  $name_title = "name";                  $name_title = "name";
1442                  $name_value = "not available";                  $name_value = "not available";
# Line 1415  Line 1455 
1455          my $location =  $thing->start . " - " . $thing->stop;          my $location =  $thing->start . " - " . $thing->stop;
1456    
1457          push(@$single_domain,$db);          push(@$single_domain,$db);
1458          push(@$single_domain,$thing->acc);          push(@$single_domain,$new_id);
1459          push(@$single_domain,$name_value);          push(@$single_domain,$name_value);
1460          push(@$single_domain,$location);          push(@$single_domain,$location);
1461          push(@$single_domain,$thing->evalue);          push(@$single_domain,$thing->evalue);
# Line 1493  Line 1533 
1533      #color is      #color is
1534      my $color = "6";      my $color = "6";
1535    
 =head3  
   
     if($cello_location){  
         my $cello_descriptions = [];  
         my $line_data =[];  
   
         my $line_config = { 'title' => 'Localization Evidence',  
                             'short_title' => 'CELLO',  
                             'hover_title' => 'Localization',  
                             'basepair_offset' => '1' };  
   
         my $description_cello_location = {"title" => 'Best Cello Location',  
                                           "value" => $cello_location};  
   
         push(@$cello_descriptions,$description_cello_location);  
   
         my $description_cello_score = {"title" => 'Cello Score',  
                                        "value" => $cello_score};  
   
         push(@$cello_descriptions,$description_cello_score);  
   
         my $element_hash = {  
             "title" => "CELLO",  
             "color"=> $color,  
             "start" => "1",  
             "end" =>  $length + 1,  
             "zlayer" => '1',  
             "description" => $cello_descriptions};  
   
         push(@$line_data,$element_hash);  
         $gd->add_line($line_data, $line_config);  
     }  
   
     $color = "2";  
     if($tmpred_score){  
         my $line_data =[];  
         my $line_config = { 'title' => 'Localization Evidence',  
                             'short_title' => 'Transmembrane',  
                             'basepair_offset' => '1' };  
   
         foreach my $tmpred (@tmpred_locations){  
             my $descriptions = [];  
             my ($begin,$end) =split("-",$tmpred);  
             my $description_tmpred_score = {"title" => 'TMPRED score',  
                              "value" => $tmpred_score};  
1536    
             push(@$descriptions,$description_tmpred_score);  
1537    
1538              my $element_hash = {  #    if($cello_location){
1539              "title" => "transmembrane location",  #       my $cello_descriptions = [];
1540              "start" => $begin + 1,  #       my $line_data =[];
1541              "end" =>  $end + 1,  #
1542              "color"=> $color,  #       my $line_config = { 'title' => 'Localization Evidence',
1543              "zlayer" => '5',  #                           'short_title' => 'CELLO',
1544              "type" => 'box',  #                            'hover_title' => 'Localization',
1545              "description" => $descriptions};  #                           'basepair_offset' => '1' };
1546    #
1547              push(@$line_data,$element_hash);  #       my $description_cello_location = {"title" => 'Best Cello Location',
1548    #                                         "value" => $cello_location};
1549    #
1550    #       push(@$cello_descriptions,$description_cello_location);
1551    #
1552    #       my $description_cello_score = {"title" => 'Cello Score',
1553    #                                      "value" => $cello_score};
1554    #
1555    #       push(@$cello_descriptions,$description_cello_score);
1556    #
1557    #       my $element_hash = {
1558    #           "title" => "CELLO",
1559    #           "color"=> $color,
1560    #           "start" => "1",
1561    #           "end" =>  $length + 1,
1562    #           "zlayer" => '1',
1563    #           "description" => $cello_descriptions};
1564    #
1565    #       push(@$line_data,$element_hash);
1566    #       $gd->add_line($line_data, $line_config);
1567    #    }
1568    #
1569    #    $color = "2";
1570    #    if($tmpred_score){
1571    #       my $line_data =[];
1572    #       my $line_config = { 'title' => 'Localization Evidence',
1573    #                           'short_title' => 'Transmembrane',
1574    #                           'basepair_offset' => '1' };
1575    #
1576    #       foreach my $tmpred (@tmpred_locations){
1577    #           my $descriptions = [];
1578    #           my ($begin,$end) =split("-",$tmpred);
1579    #           my $description_tmpred_score = {"title" => 'TMPRED score',
1580    #                            "value" => $tmpred_score};
1581    #
1582    #           push(@$descriptions,$description_tmpred_score);
1583    #
1584    #           my $element_hash = {
1585    #           "title" => "transmembrane location",
1586    #           "start" => $begin + 1,
1587    #           "end" =>  $end + 1,
1588    #           "color"=> $color,
1589    #           "zlayer" => '5',
1590    #           "type" => 'box',
1591    #           "description" => $descriptions};
1592    #
1593    #           push(@$line_data,$element_hash);
1594    #
1595    #       }
1596    #       $gd->add_line($line_data, $line_config);
1597    #    }
1598    
         }  
         $gd->add_line($line_data, $line_config);  
     }  
 =cut  
1599    
1600      if((scalar(@phobius_tm_locations) > 0) || $phobius_signal_location){      if((scalar(@phobius_tm_locations) > 0) || $phobius_signal_location){
1601          my $line_data =[];          my $line_data =[];
# Line 1607  Line 1647 
1647          $gd->add_line($line_data, $line_config);          $gd->add_line($line_data, $line_config);
1648      }      }
1649    
 =head3  
     $color = "1";  
     if($signal_peptide_score){  
         my $line_data = [];  
         my $descriptions = [];  
   
         my $line_config = { 'title' => 'Localization Evidence',  
                             'short_title' => 'SignalP',  
                             'hover_title' => 'Localization',  
                             'basepair_offset' => '1' };  
   
         my $description_signal_peptide_score = {"title" => 'signal peptide score',  
                                                 "value" => $signal_peptide_score};  
   
         push(@$descriptions,$description_signal_peptide_score);  
   
         my $description_cleavage_prob = {"title" => 'cleavage site probability',  
                                          "value" => $cleavage_prob};  
1650    
1651          push(@$descriptions,$description_cleavage_prob);  #    $color = "1";
1652    #    if($signal_peptide_score){
1653          my $element_hash = {  #       my $line_data = [];
1654              "title" => "SignalP",  #       my $descriptions = [];
1655              "start" => $cleavage_loc_begin - 2,  #
1656              "end" =>  $cleavage_loc_end + 1,  #       my $line_config = { 'title' => 'Localization Evidence',
1657              "type" => 'bigbox',  #                           'short_title' => 'SignalP',
1658              "color"=> $color,  #                            'hover_title' => 'Localization',
1659              "zlayer" => '10',  #                           'basepair_offset' => '1' };
1660              "description" => $descriptions};  #
1661    #       my $description_signal_peptide_score = {"title" => 'signal peptide score',
1662    #                                               "value" => $signal_peptide_score};
1663    #
1664    #       push(@$descriptions,$description_signal_peptide_score);
1665    #
1666    #       my $description_cleavage_prob = {"title" => 'cleavage site probability',
1667    #                                        "value" => $cleavage_prob};
1668    #
1669    #       push(@$descriptions,$description_cleavage_prob);
1670    #
1671    #       my $element_hash = {
1672    #           "title" => "SignalP",
1673    #           "start" => $cleavage_loc_begin - 2,
1674    #           "end" =>  $cleavage_loc_end + 1,
1675    #           "type" => 'bigbox',
1676    #           "color"=> $color,
1677    #           "zlayer" => '10',
1678    #           "description" => $descriptions};
1679    #
1680    #       push(@$line_data,$element_hash);
1681    #       $gd->add_line($line_data, $line_config);
1682    #    }
1683    
         push(@$line_data,$element_hash);  
         $gd->add_line($line_data, $line_config);  
     }  
 =cut  
1684    
1685      return ($gd);      return ($gd);
1686    
# Line 1794  Line 1834 
1834      # evidence link      # evidence link
1835      my $evidence_link;      my $evidence_link;
1836      if ($peg =~ /^fig\|/){      if ($peg =~ /^fig\|/){
1837        $evidence_link = "?page=Evidence&feature=".$peg;        $evidence_link = "?page=Annotation&feature=".$peg;
1838      }      }
1839      else{      else{
1840        my $db = &Observation::get_database($peg);        my $db = &Observation::get_database($peg);
# Line 2088  Line 2128 
2128      my @attributes = $fig->get_attributes(\@ids) if ( (grep /evidence/, @$scroll_list) || (grep /(pfam|mw)/, @$scroll_list) );      my @attributes = $fig->get_attributes(\@ids) if ( (grep /evidence/, @$scroll_list) || (grep /(pfam|mw)/, @$scroll_list) );
2129    
2130      # get the column for the subsystems      # get the column for the subsystems
2131      $subsystems_column = &get_subsystems_column(\@ids,$fig,$cgi,'hash') if (grep /subsystem/, @$scroll_list);      $subsystems_column = &get_subsystems_column(\@ids,$fig,$cgi,'hash');
2132    
2133      # get the column for the evidence codes      # get the column for the evidence codes
2134      $evidence_column = &get_evidence_column(\@ids, \@attributes, $fig, $cgi, 'hash') if (grep /^evidence$/, @$scroll_list);      $evidence_column = &get_evidence_column(\@ids, \@attributes, $fig, $cgi, 'hash');
2135    
2136      # get the column for pfam_domain      # get the column for pfam_domain
2137      $pfam_column = &get_attrb_column(\@ids, \@attributes, $fig, $cgi, 'pfam', 'PFAM', 'hash') if (grep /^pfam$/, @$scroll_list);      $pfam_column = &get_attrb_column(\@ids, \@attributes, $fig, $cgi, 'pfam', 'PFAM', 'hash') if (grep /^pfam$/, @$scroll_list);
# Line 2175  Line 2215 
2215    
2216      my $figfam_data = &FIG::get_figfams_data();      my $figfam_data = &FIG::get_figfams_data();
2217      my $figfams = new FFs($figfam_data);      my $figfams = new FFs($figfam_data);
2218        my $same_genome_flag = 0;
2219    
2220      my $func_color_offset=0;      my $func_color_offset=0;
2221      unshift(@$dataset, $query_fid);      unshift(@$dataset, $query_fid);
2222      foreach my $thing ( @$dataset){      for (my $thing_count=0;$thing_count<scalar @$dataset;$thing_count++){
2223          my ($id, $taxid, $iden, $ln1,$ln2,$b1,$b2,$e1,$e2,$d1,$d2,$color1,$color2,$reg1,$reg2);  #    foreach my $thing ( @$dataset){
2224            my $thing = $dataset->[$thing_count];
2225            my $next_thing = $dataset->[$thing_count+1] if (defined $dataset->[$thing_count+1]);
2226            my ($id, $taxid, $iden, $ln1,$ln2,$b1,$b2,$e1,$e2,$d1,$d2,$color1,$color2,$reg1,$reg2, $next_org);
2227          if ($thing eq $query_fid){          if ($thing eq $query_fid){
2228              $id = $thing;              $id = $thing;
2229              $taxid   = $fig->genome_of($id);              $taxid   = $fig->genome_of($id);
# Line 2207  Line 2251 
2251              $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};              $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};
2252              $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};              $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};
2253              $current_function = $thing->function;              $current_function = $thing->function;
2254                $next_org = $next_thing->organism if (defined $next_thing);
2255          }          }
2256    
2257            next if ($id =~ /nmpdr\||gnl\|md5\|/);
2258    
2259          my $single_domain = [];          my $single_domain = [];
2260          $count++;          $count++;
2261    
2262          # organisms cell          # organisms cell
2263          my ($org, $org_color) = $fig->org_and_color_of($id);          my ($org, $org_color) = $fig->org_and_color_of($id);
2264          my $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};  
2265            my $org_cell;
2266            if ( ($next_org ne $organism) && ($same_genome_flag == 0) ){
2267                $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};
2268            }
2269            elsif ($next_org eq $organism){
2270                $org_cell = { 'data' =>  "<b>" . $organism . "</b>", 'highlight' => $org_color};
2271                $same_genome_flag = 1;
2272            }
2273            elsif ($same_genome_flag == 1){
2274                $org_cell = { 'data' =>  "<b>" . $organism . "</b>", 'highlight' => $org_color};
2275                $same_genome_flag = 0;
2276            }
2277    
2278          # checkbox cell          # checkbox cell
2279          my ($box_cell,$tax, $radio_cell);          my ($box_cell,$tax, $radio_cell);
# Line 2227  Line 2286 
2286          $white = '#999966' if ($id eq $query_fid);          $white = '#999966' if ($id eq $query_fid);
2287          $org_color = '#999966' if ($id eq $query_fid);          $org_color = '#999966' if ($id eq $query_fid);
2288          my $anchor_name = "anchor_". $replace_id;          my $anchor_name = "anchor_". $replace_id;
2289          if ($id =~ /^fig\|/){          my $checked = "";
2290            my $box = qq(<a name="$anchor_name"></a><input type="checkbox" name="seq" value="$id" id="$field_name" onClick="VisualCheckPair('$field_name', '$pair_name','$cell_name');">);          #$checked = "checked" if ($id eq $query_fid);
2291            my $radio = qq(<input type="radio" name="function_select" value="$id" id="$field_name" >);  #       if ($id =~ /^fig\|/){
2292              my $box = qq~<a name="$anchor_name"></a><input type="checkbox" name="seq" value="$id" id="$field_name" onClick="VisualCheckPair('$field_name', '$pair_name','$cell_name');" $checked>~;
2293            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};
2294              $tax = $fig->genome_of($id) if ($id =~ /^fig\|/);
2295    #       }
2296    #       else{
2297    #         my $box = qq(<a name="$anchor_name"></a>);
2298    #         $box_cell = { 'data'=>$box, 'highlight'=>$org_color};
2299    #       }
2300    
2301            # create the radio cell for any sequence, not just fig ids
2302            my $radio = qq(<input type="radio" name="function_select" value="$current_function" id="$field_name" onClick="clearText('new_text_function')">);
2303            $radio_cell = { 'data'=>$radio, 'highlight'=>$white};            $radio_cell = { 'data'=>$radio, 'highlight'=>$white};
           $tax = $fig->genome_of($id);  
         }  
         else{  
           my $box = qq(<a name="$anchor_name"></a>);  
           $box_cell = { 'data'=>$box, 'highlight'=>$org_color};  
         }  
2304    
2305          # get the linked fig id          # get the linked fig id
2306          my $anchor_link = "graph_" . $replace_id;          my $anchor_link = "graph_" . $replace_id;
2307          my $fig_data =  "<table><tr><td>" . &HTML::set_prot_links($cgi,$id) . "</td>" . "&nbsp;" x 2;  
2308          $fig_data .= qq(<td><img height='10px' width='20px' src='./Html/anchor_alignment.png' alt='View Graphic View of Alignment' onClick='changeSimsLocation("$anchor_link", 0)'/></td></tr></table>);          my $fig_data;
2309            if ($id =~ /^fig\|/)
2310            {
2311                $fig_data =  "<table><tr><td><a href='?page=Annotation&feature=$id'>$id</a></td>" . "&nbsp;" x 2;
2312            }
2313            else
2314            {
2315                my $url_link = &HTML::set_prot_links($cgi,$id);
2316                $fig_data = "<table><tr><td>$url_link</td>". "&nbsp;" x 2;
2317            }
2318            $fig_data .= qq(<td><img height='10px' width='20px' src='$FIG_Config::cgi_url/Html/anchor_alignment.png' alt='View Graphic View of Alignment' onClick='changeSimsLocation("$anchor_link", 0)'/></td></tr></table>);
2319          my $fig_col = {'data'=> $fig_data,          my $fig_col = {'data'=> $fig_data,
2320                         'highlight'=>$white};                         'highlight'=>$white};
2321    
# Line 2284  Line 2357 
2357          if ($id eq $query_fid){          if ($id eq $query_fid){
2358              push (@$single_domain, $box_cell, {'data'=>qq~<i>Query Sequence: </i>~  . qq~<b>$id</b>~ , 'highlight'=>$white}, {'data'=> 'n/a', 'highlight'=>$white},              push (@$single_domain, $box_cell, {'data'=>qq~<i>Query Sequence: </i>~  . qq~<b>$id</b>~ , 'highlight'=>$white}, {'data'=> 'n/a', 'highlight'=>$white},
2359                    {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white},                    {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white},
2360                    {'data' =>  $organism, 'highlight'=> $white}, {'data'=>$current_function, 'highlight'=>$white});  # permanent columns                    {'data' =>  $organism, 'highlight'=> $white}, {'data'=>$current_function, 'highlight'=>$white},
2361                      {'data'=>$subsystems_column->{$id},'highlight'=>$white},
2362                      {'data'=>$evidence_column->{$id},'highlight'=>$white});  # permanent columns
2363          }          }
2364          else{          else{
2365              push (@$single_domain, $box_cell, $fig_col, {'data'=> $evalue, 'highlight'=>"#ffffff"},              push (@$single_domain, $box_cell, $fig_col, {'data'=> $evalue, 'highlight'=>"#ffffff"},
2366                    {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell);  # permanent columns                    {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell,
2367                      {'data'=>$subsystems_column->{$id},'highlight'=>"#ffffff"},
2368                      {'data'=>$evidence_column->{$id},'highlight'=>"#ffffff"});  # permanent columns
2369    
2370          }          }
2371    
2372          if ( ( $application->session->user) ){          if ( ( $application->session->user) ){
2373              if ( ($application->session->user->login) && ($application->session->user->login eq "arodri")){              my $user = $application->session->user;
2374                if ($user && $user->has_right(undef, 'annotate', 'genome', $fig->genome_of($id))) {
2375                  push (@$single_domain,$radio_cell);                  push (@$single_domain,$radio_cell);
2376              }              }
2377          }          }
# Line 2303  Line 2382 
2382              if ($id eq $query_fid) { $highlight_color = "#999966"; }              if ($id eq $query_fid) { $highlight_color = "#999966"; }
2383              else { $highlight_color = "#ffffff"; }              else { $highlight_color = "#ffffff"; }
2384    
2385              if ($col =~ /subsystem/)                     {push(@$single_domain,{'data'=>$subsystems_column->{$id},'highlight'=>$highlight_color});}              if ($col =~ /pfam/)                       {push(@$single_domain,{'data'=>$pfam_column->{$id},'highlight'=>$highlight_color});}
             elsif ($col =~ /evidence/)                   {push(@$single_domain,{'data'=>$evidence_column->{$id},'highlight'=>$highlight_color});}  
             elsif ($col =~ /pfam/)                       {push(@$single_domain,{'data'=>$pfam_column->{$id},'highlight'=>$highlight_color});}  
2386              elsif ($col =~ /mw/)                         {push(@$single_domain,{'data'=>$mw_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /mw/)                         {push(@$single_domain,{'data'=>$mw_column->{$id},'highlight'=>$highlight_color});}
2387              elsif ($col =~ /habitat/)                    {push(@$single_domain,{'data'=>$habitat_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /habitat/)                    {push(@$single_domain,{'data'=>$habitat_column->{$id},'highlight'=>$highlight_color});}
2388              elsif ($col =~ /temperature/)                {push(@$single_domain,{'data'=>$temperature_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /temperature/)                {push(@$single_domain,{'data'=>$temperature_column->{$id},'highlight'=>$highlight_color});}
# Line 2323  Line 2400 
2400              elsif ($col =~ /transmembrane/)              {push(@$single_domain,{'data'=>$transmembrane_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /transmembrane/)              {push(@$single_domain,{'data'=>$transmembrane_column->{$id},'highlight'=>$highlight_color});}
2401              elsif ($col =~ /signal_peptide/)             {push(@$single_domain,{'data'=>$signal_peptide_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /signal_peptide/)             {push(@$single_domain,{'data'=>$signal_peptide_column->{$id},'highlight'=>$highlight_color});}
2402              elsif ($col =~ /isoelectric/)                {push(@$single_domain,{'data'=>$isoelectric_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /isoelectric/)                {push(@$single_domain,{'data'=>$isoelectric_column->{$id},'highlight'=>$highlight_color});}
2403              elsif ($col =~ /conserved_neighborhood/)     {push(@$single_domain,{'data'=>$cons_neigh_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /conerved_neighborhood/)     {push(@$single_domain,{'data'=>$cons_neigh_column->{$id},'highlight'=>$highlight_color});}
2404              elsif ($col =~ /cellular_location/)          {push(@$single_domain,{'data'=>$cell_location_column->{$id},'highlight'=>$highlight_color});}              elsif ($col =~ /cellular_location/)          {push(@$single_domain,{'data'=>$cell_location_column->{$id},'highlight'=>$highlight_color});}
2405              elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>$highlight_color});}              elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>$highlight_color});}
2406              elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>$highlight_color});}              elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>$highlight_color});}
# Line 2350  Line 2427 
2427      return ($content);      return ($content);
2428  }  }
2429    
2430    
2431    =head3 display_figfam_table()
2432    
2433    If available use the function specified here to display the "raw" observation.
2434    This code will display a table for the similarities protein
2435    
2436    B<Please note> that URL linked to in display_method() is an external component and needs to added to the code for every class of evidence.
2437    
2438    =cut
2439    
2440    sub display_figfam_table {
2441      my ($self,$ids, $show_columns, $fig, $application, $cgi) = @_;
2442      my ($count, $data, $content, %box_column, $subsystems_column, $evidence_column, %e_identical, $function_color, @ids);
2443    
2444      my $scroll_list;
2445      foreach my $col (@$show_columns){
2446        push (@$scroll_list, $col->{key});
2447      }
2448    
2449      $lineages = $fig->taxonomy_list() if (grep /lineage/, @$scroll_list);
2450      my @attributes = $fig->get_attributes($ids) if ( (grep /evidence/, @$scroll_list) || (grep /(pfam|mw)/, @$scroll_list) );
2451    
2452      # get the column for the subsystems
2453      $subsystems_column = &get_subsystems_column($ids,$fig,$cgi,'hash');
2454    
2455      # get the column for the evidence codes
2456      $evidence_column = &get_evidence_column($ids, \@attributes, $fig, $cgi, 'hash') if (grep /^evidence$/, @$scroll_list);
2457    
2458      # get the column for pfam_domain
2459      $pfam_column = &get_attrb_column($ids, \@attributes, $fig, $cgi, 'pfam', 'PFAM', 'hash') if (grep /^pfam$/, @$scroll_list);
2460    
2461      # get the column for molecular weight
2462      $mw_column = &get_attrb_column($ids, \@attributes, $fig, $cgi, 'mw', 'molecular_weight', 'hash') if (grep /^mw$/, @$scroll_list);
2463    
2464      # get the column for organism's habitat
2465      my $habitat_column = &get_attrb_column($ids, undef, $fig, $cgi, 'habitat', 'Habitat', 'hash') if (grep /^habitat$/, @$scroll_list);
2466    
2467      # get the column for organism's temperature optimum
2468      my $temperature_column = &get_attrb_column($ids, undef, $fig, $cgi, 'temperature', 'Optimal_Temperature', 'hash') if (grep /^temperature$/, @$scroll_list);
2469    
2470      # get the column for organism's temperature range
2471      my $temperature_range_column = &get_attrb_column($ids, undef, $fig, $cgi, 'temp_range', 'Temperature_Range', 'hash') if (grep /^temp_range$/, @$scroll_list);
2472    
2473      # get the column for organism's oxygen requirement
2474      my $oxygen_req_column = &get_attrb_column($ids, undef, $fig, $cgi, 'oxygen', 'Oxygen_Requirement', 'hash') if (grep /^oxygen$/, @$scroll_list);
2475    
2476      # get the column for organism's pathogenicity
2477      my $pathogenic_column = &get_attrb_column($ids, undef, $fig, $cgi, 'pathogenic', 'Pathogenic', 'hash') if (grep /^pathogenic$/, @$scroll_list);
2478    
2479      # get the column for organism's pathogenicity host
2480      my $pathogenic_in_column = &get_attrb_column($ids, undef, $fig, $cgi, 'pathogenic_in', 'Pathogenic_In', 'hash') if (grep /^pathogenic_in$/, @$scroll_list);
2481    
2482      # get the column for organism's salinity
2483      my $salinity_column = &get_attrb_column($ids, undef, $fig, $cgi, 'salinity', 'Salinity', 'hash') if (grep /^salinity$/, @$scroll_list);
2484    
2485      # get the column for organism's motility
2486      my $motility_column = &get_attrb_column($ids, undef, $fig, $cgi, 'motility', 'Motility', 'hash') if (grep /^motility$/, @$scroll_list);
2487    
2488      # get the column for organism's gram stain
2489      my $gram_stain_column = &get_attrb_column($ids, undef, $fig, $cgi, 'gram_stain', 'Gram_Stain', 'hash') if (grep /^gram_stain$/, @$scroll_list);
2490    
2491      # get the column for organism's endospores
2492      my $endospores_column = &get_attrb_column($ids, undef, $fig, $cgi, 'endospores', 'Endospores', 'hash') if (grep /^endospores$/, @$scroll_list);
2493    
2494      # get the column for organism's shape
2495      my $shape_column = &get_attrb_column($ids, undef, $fig, $cgi, 'shape', 'Shape', 'hash') if (grep /^shape$/, @$scroll_list);
2496    
2497      # get the column for organism's disease
2498      my $disease_column = &get_attrb_column($ids, undef, $fig, $cgi, 'disease', 'Disease', 'hash') if (grep /^disease$/, @$scroll_list);
2499    
2500      # get the column for organism's disease
2501      my $gc_content_column = &get_attrb_column($ids, undef, $fig, $cgi, 'gc_content', 'GC_Content', 'hash') if (grep /^gc_content$/, @$scroll_list);
2502    
2503      # get the column for transmembrane domains
2504      my $transmembrane_column = &get_attrb_column($ids, undef, $fig, $cgi, 'transmembrane', 'Phobius::transmembrane', 'hash') if (grep /^transmembrane$/, @$scroll_list);
2505    
2506      # get the column for similar to human
2507      my $similar_to_human_column = &get_attrb_column($ids, undef, $fig, $cgi, 'similar_to_human', 'similar_to_human', 'hash') if (grep /^similar_to_human$/, @$scroll_list);
2508    
2509      # get the column for signal peptide
2510      my $signal_peptide_column = &get_attrb_column($ids, undef, $fig, $cgi, 'signal_peptide', 'Phobius::signal', 'hash') if (grep /^signal_peptide$/, @$scroll_list);
2511    
2512      # get the column for transmembrane domains
2513      my $isoelectric_column = &get_attrb_column($ids, undef, $fig, $cgi, 'isoelectric', 'isoelectric_point', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2514    
2515      # get the column for conserved neighborhood
2516      my $cons_neigh_column = &get_attrb_column($ids, undef, $fig, $cgi, 'conserved_neighborhood', undef, 'hash') if (grep /^conserved_neighborhood$/, @$scroll_list);
2517    
2518      # get the column for cellular location
2519      my $cell_location_column = &get_attrb_column($ids, undef, $fig, $cgi, 'cellular_location', 'PSORT::', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2520    
2521      # get the aliases
2522      my $alias_col;
2523      if ( (grep /asap_id/, @$scroll_list) || (grep /ncbi_id/, @$scroll_list) ||
2524           (grep /refseq_id/, @$scroll_list) || (grep /swissprot_id/, @$scroll_list) ||
2525           (grep /uniprot_id/, @$scroll_list) || (grep /tigr_id/, @$scroll_list) ||
2526           (grep /kegg_id/, @$scroll_list) || (grep /pir_id/, @$scroll_list) ||
2527           (grep /trembl_id/, @$scroll_list) || (grep /jgi_id/, @$scroll_list) ) {
2528        $alias_col = &get_db_aliases($ids,$fig,'all',$cgi,'hash');
2529      }
2530    
2531      foreach my $id ( @$ids){
2532        my $current_function = $fig->function_of($id);
2533        my $organism = $fig->org_of($id);
2534        my $single_domain = [];
2535    
2536        # organisms cell comehere2
2537        my ($org, $org_color) = $fig->org_and_color_of($id);
2538        my $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};
2539    
2540        # get the linked fig id
2541        my $fig_data;
2542        if ($id =~ /^fig\|/)
2543        {
2544            $fig_data =  "<a href='?page=Annotation&feature=$id'>$id</a>";
2545        }
2546        else
2547        {
2548            my $url_link = &HTML::set_prot_links($cgi,$id);
2549            $fig_data = "<table><tr><td>$url_link</td>". "&nbsp;" x 2;
2550        }
2551    
2552        my $fig_col = {'data'=> $fig_data,
2553                       'highlight'=>"#ffffff"};
2554    
2555        # function cell
2556        $function_cell = {'data'=>$current_function, 'highlight'=> "#ffffff"};
2557    
2558        # insert data
2559        push (@$single_domain, $fig_col, $org_cell, {'data'=>$subsystems_column->{$id},'highlight'=>"#ffffff"}, $function_cell);
2560    
2561        foreach my $col (@$scroll_list){
2562          my $highlight_color = "#ffffff";
2563    
2564          if ($col =~ /evidence/)                   {push(@$single_domain,{'data'=>$evidence_column->{$id},'highlight'=>$highlight_color});}
2565          elsif ($col =~ /pfam/)                       {push(@$single_domain,{'data'=>$pfam_column->{$id},'highlight'=>$highlight_color});}
2566          elsif ($col =~ /mw/)                         {push(@$single_domain,{'data'=>$mw_column->{$id},'highlight'=>$highlight_color});}
2567          elsif ($col =~ /habitat/)                    {push(@$single_domain,{'data'=>$habitat_column->{$id},'highlight'=>$highlight_color});}
2568          elsif ($col =~ /temperature/)                {push(@$single_domain,{'data'=>$temperature_column->{$id},'highlight'=>$highlight_color});}
2569          elsif ($col =~ /temp_range/)                 {push(@$single_domain,{'data'=>$temperature_range_column->{$id},'highlight'=>$highlight_color});}
2570          elsif ($col =~ /oxygen/)                     {push(@$single_domain,{'data'=>$oxygen_req_column->{$id},'highlight'=>$highlight_color});}
2571          elsif ($col =~ /^pathogenic$/)               {push(@$single_domain,{'data'=>$pathogenic_column->{$id},'highlight'=>$highlight_color});}
2572          elsif ($col =~ /^pathogenic_in$/)            {push(@$single_domain,{'data'=>$pathogenic_in_column->{$id},'highlight'=>$highlight_color});}
2573          elsif ($col =~ /salinity/)                   {push(@$single_domain,{'data'=>$salinity_column->{$id},'highlight'=>$highlight_color});}
2574          elsif ($col =~ /motility/)                   {push(@$single_domain,{'data'=>$motility_column->{$id},'highlight'=>$highlight_color});}
2575          elsif ($col =~ /gram_stain/)                 {push(@$single_domain,{'data'=>$gram_stain_column->{$id},'highlight'=>$highlight_color});}
2576          elsif ($col =~ /endospores/)                 {push(@$single_domain,{'data'=>$endospores_column->{$id},'highlight'=>$highlight_color});}
2577          elsif ($col =~ /shape/)                      {push(@$single_domain,{'data'=>$shape_column->{$id},'highlight'=>$highlight_color});}
2578          elsif ($col =~ /disease/)                    {push(@$single_domain,{'data'=>$disease_column->{$id},'highlight'=>$highlight_color});}
2579          elsif ($col =~ /gc_content/)                 {push(@$single_domain,{'data'=>$gc_content_column->{$id},'highlight'=>$highlight_color});}
2580          elsif ($col =~ /transmembrane/)              {push(@$single_domain,{'data'=>$transmembrane_column->{$id},'highlight'=>$highlight_color});}
2581          elsif ($col =~ /signal_peptide/)             {push(@$single_domain,{'data'=>$signal_peptide_column->{$id},'highlight'=>$highlight_color});}
2582          elsif ($col =~ /isoelectric/)                {push(@$single_domain,{'data'=>$isoelectric_column->{$id},'highlight'=>$highlight_color});}
2583          elsif ($col =~ /conerved_neighborhood/)     {push(@$single_domain,{'data'=>$cons_neigh_column->{$id},'highlight'=>$highlight_color});}
2584          elsif ($col =~ /cellular_location/)          {push(@$single_domain,{'data'=>$cell_location_column->{$id},'highlight'=>$highlight_color});}
2585          elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>$highlight_color});}
2586          elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>$highlight_color});}
2587          elsif ($col =~ /swissprot_id/)               {push(@$single_domain,{'data'=>$alias_col->{$id}->{"SwissProt"},'highlight'=>$highlight_color});}
2588          elsif ($col =~ /uniprot_id/)                 {push(@$single_domain,{'data'=>$alias_col->{$id}->{"UniProt"},'highlight'=>$highlight_color});}
2589          elsif ($col =~ /tigr_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TIGR"},'highlight'=>$highlight_color});}
2590          elsif ($col =~ /pir_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"PIR"},'highlight'=>$highlight_color});}
2591          elsif ($col =~ /kegg_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"KEGG"},'highlight'=>$highlight_color});}
2592          elsif ($col =~ /trembl_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TrEMBL"},'highlight'=>$highlight_color});}
2593          elsif ($col =~ /asap_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"ASAP"},'highlight'=>$highlight_color});}
2594          elsif ($col =~ /jgi_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"JGI"},'highlight'=>$highlight_color});}
2595          elsif ($col =~ /lineage/)                   {push(@$single_domain,{'data'=>$lineages->{$tax},'highlight'=>$highlight_color});}
2596          elsif ($col =~ /figfam/)                     {push(@$single_domain,{'data'=>"<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>",'highlight'=>$highlight_color});}
2597        }
2598        push(@$data,$single_domain);
2599      }
2600    
2601      $content = $data;
2602      return ($content);
2603    }
2604    
2605  sub get_box_column{  sub get_box_column{
2606      my ($ids) = @_;      my ($ids) = @_;
2607      my %column;      my %column;
# Line 2370  Line 2622 
2622      my $figfams = new FFs($figfam_data);      my $figfams = new FFs($figfam_data);
2623    
2624      foreach my $id (@$ids){      foreach my $id (@$ids){
2625          my ($ff) =  $figfams->families_containing_peg($id);          my ($ff);
2626            if ($id =~ /\.peg\./){
2627                ($ff) =  $figfams->families_containing_peg($id);
2628            }
2629          if ($ff){          if ($ff){
2630              push (@$column, "<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>");              push (@$column, "<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>");
2631          }          }
# Line 2567  Line 2822 
2822              my $pretty_code = $code->[2];              my $pretty_code = $code->[2];
2823              if ($pretty_code =~ /;/) {              if ($pretty_code =~ /;/) {
2824                  my ($cd, $ss) = split(";", $code->[2]);                  my ($cd, $ss) = split(";", $code->[2]);
2825                    if ($cd =~ /ilit|dlit/){
2826                        my ($type,$pubmed_id) = ($cd) =~ /(.*?)\((.*)\)/;
2827                        my $publink = &HTML::alias_url($pubmed_id,'PMID');
2828                        $cd = $type . "(<a href='" . $publink . "'>" . $pubmed_id . "</a>)";
2829                    }
2830                  $ss =~ s/_/ /g;                  $ss =~ s/_/ /g;
2831                  $pretty_code = $cd;# . " in " . $ss;                  $pretty_code = $cd;# . " in " . $ss;
2832              }              }
# Line 2630  Line 2890 
2890                      my @parts = split("::",$code);                      my @parts = split("::",$code);
2891                      my $pfam_link = "<a href=http://pfam.sanger.ac.uk/family?acc=" . $parts[1] . ">$parts[1]</a>";                      my $pfam_link = "<a href=http://pfam.sanger.ac.uk/family?acc=" . $parts[1] . ">$parts[1]</a>";
2892    
2893                      # get the locations for the domain  #                   # get the locations for the domain
2894                      my @locs;  #                   my @locs;
2895                      foreach my $part (@{$attribute_location{$id}{$code}}){  #                   foreach my $part (@{$attribute_location{$id}{$code}}){
2896                          my ($loc) = ($part) =~ /\;(.*)/;  #                       my ($loc) = ($part) =~ /\;(.*)/;
2897                          push (@locs,$loc);  #                       push (@locs,$loc);
2898                      }  #                   }
2899                      my %locsaw;  #                   my %locsaw;
2900                      foreach my $key (@locs) {$locsaw{$key}=1;}  #                   foreach my $key (@locs) {$locsaw{$key}=1;}
2901                      @locs = keys %locsaw;  #                   @locs = keys %locsaw;
2902    #
2903                      my $locations = join (", ", @locs);  #                   my $locations = join (", ", @locs);
2904    #
2905                      if (defined ($description_codes{$parts[1]})){                      if (defined ($description_codes{$parts[1]})){
2906                          push(@pfam_codes, "$parts[1] ($locations)");                          push(@pfam_codes, "$parts[1]");
2907                      }                      }
2908                      else {                      else {
2909                          my $description = $dbmaster->pfam->get_objects( { 'id' => $parts[1] } );                          my $description = $dbmaster->pfam->get_objects( { 'id' => $parts[1] } );
2910                          $description_codes{$parts[1]} = $description->[0]->{term};                          $description_codes{$parts[1]} = $description->[0]->{term};
2911                          push(@pfam_codes, "$pfam_link ($locations)");                          push(@pfam_codes, "$pfam_link");
2912                      }                      }
2913                  }                  }
2914    
# Line 2757  Line 3017 
3017      return $column;      return $column;
3018  }  }
3019    
3020    sub get_aclh_aliases {
3021        my ($ids,$fig,$db,$cgi,$returnType) = @_;
3022        my $db_array;
3023    
3024        my $id_line = join (",", @$ids);
3025        my $aclh_url = "http://clearinghouse.nmpdr.org/aclh.cgi?page=SearchResults&raw_dump=1&query=" . $id_line;
3026    
3027    
3028    }
3029    
3030    sub get_id_aliases {
3031        my ($id, $fig) = @_;
3032        my $aliases = {};
3033    
3034        my $org = $fig->org_of($id);
3035        my $url = "http://clearinghouse.nmpdr.org/aclh.cgi?page=SearchResults&raw_dump=1&query=$id";
3036        if ( my $form = &LWP::Simple::get($url) ) {
3037            my ($block) = ($form) =~ /<pre>(.*)<\/pre>/s;
3038            foreach my $line (split /\n/, $block){
3039                my @values = split /\t/, $line;
3040                next if ($values[3] eq "Expert");
3041                if (($values[1] =~ /$org/) || ($org =~ /$values[1]/) && (! defined $aliases->{$values[4]}) ){
3042                    $aliases->{$values[4]} = $values[0];
3043                }
3044            }
3045        }
3046    
3047        return $aliases;
3048    }
3049    
3050  sub get_db_aliases {  sub get_db_aliases {
3051      my ($ids,$fig,$db,$cgi,$returnType) = @_;      my ($ids,$fig,$db,$cgi,$returnType) = @_;
   
3052      my $db_array;      my $db_array;
3053      my $all_aliases = $fig->feature_aliases_bulk($ids);      my $all_aliases = $fig->feature_aliases_bulk($ids);
3054      foreach my $id (@$ids){      foreach my $id (@$ids){
3055    #       my @all_aliases = grep { $_ ne $id and $_ !~ /^xxx/ } map { $_->[0] } $fig->mapped_prot_ids($id);
3056            my $id_org = $fig->org_of($id);
3057    
3058          foreach my $alias (@{$$all_aliases{$id}}){          foreach my $alias (@{$$all_aliases{$id}}){
3059    #       foreach my $alias (@all_aliases){
3060              my $id_db = &Observation::get_database($alias);              my $id_db = &Observation::get_database($alias);
3061              next if ( ($id_db ne $db) && ($db ne 'all') );              next if ( ($id_db ne $db) && ($db ne 'all') );
3062              next if ($aliases->{$id}->{$db});              next if ($aliases->{$id}->{$db});
3063                my $alias_org = $fig->org_of($alias);
3064    #           if (($id ne $peg) && ( ($alias_org =~ /$id_org/) || ($id_org =~ /$alias_org/)) ) {
3065                    #push(@funcs, [$id,$id_db,$tmp]);
3066              $aliases->{$id}->{$id_db} = &HTML::set_prot_links($cgi,$alias);              $aliases->{$id}->{$id_db} = &HTML::set_prot_links($cgi,$alias);
3067    #           }
3068          }          }
3069          if (!defined( $aliases->{$id}->{$db})){          if (!defined( $aliases->{$id}->{$db})){
3070              $aliases->{$id}->{$db} = " ";              $aliases->{$id}->{$db} = " ";
# Line 3247  Line 3543 
3543          last if ($count > 10);          last if ($count > 10);
3544          my $row_data = [];          my $row_data = [];
3545          my ($set, $org, $ss, $ev, $function, $function_cell, $id_cell);          my ($set, $org, $ss, $ev, $function, $function_cell, $id_cell);
3546            if ($fig->org_of($id)){
3547          $org = $fig->org_of($id);          $org = $fig->org_of($id);
3548            }
3549            else{
3550                $org = "Data not available";
3551            }
3552          $function = $fig->function_of($id);          $function = $fig->function_of($id);
3553          if ($mypeg ne $id){          if ($mypeg ne $id){
3554              $function_cell = "<input type='radio' name='function' id='$id' value='$function' onClick=\"clearText('setAnnotation');\">&nbsp;&nbsp;$function";              $function_cell = "<input type='radio' name='function' id='$id' value='$function' onClick=\"clearText('setAnnotation');\">&nbsp;&nbsp;$function";

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.77

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3