[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.62, Wed Jul 9 19:55:31 2008 UTC revision 1.71, Tue Sep 9 13:58:55 2008 UTC
# Line 319  Line 319 
319  =cut  =cut
320    
321  sub get_objects {  sub get_objects {
322      my ($self,$fid,$fig,$scope) = @_;      my ($self,$fid,$fig,$parameters,$scope) = @_;
323    
324      my $objects = [];      my $objects = [];
325      my @matched_datasets=();      my @matched_datasets=();
# Line 337  Line 337 
337          $domain_classes{'PFAM'} = 1;          $domain_classes{'PFAM'} = 1;
338          get_identical_proteins($fid,\@matched_datasets,$fig);          get_identical_proteins($fid,\@matched_datasets,$fig);
339          get_attribute_based_domain_observations($fid,\%domain_classes,\@matched_datasets,\@attributes,$fig);          get_attribute_based_domain_observations($fid,\%domain_classes,\@matched_datasets,\@attributes,$fig);
340          get_sims_observations($fid,\@matched_datasets,$fig);          get_sims_observations($fid,\@matched_datasets,$fig,$parameters);
341          get_functional_coupling($fid,\@matched_datasets,$fig);          get_functional_coupling($fid,\@matched_datasets,$fig);
342          get_attribute_based_location_observations($fid,\@matched_datasets,\@attributes,$fig);          get_attribute_based_location_observations($fid,\@matched_datasets,\@attributes,$fig);
343          get_pdb_observations($fid,\@matched_datasets,\@attributes,$fig);          get_pdb_observations($fid,\@matched_datasets,\@attributes,$fig);
# Line 374  Line 374 
374    
375  }  }
376    
377  =head  =head3 get_attributes
378      provides layer of abstraction between tools and underlying access method to Attribute Server      provides layer of abstraction between tools and underlying access method to Attribute Server
379  =cut  =cut
380    
# Line 420  Line 420 
420      my $content = [];      my $content = [];
421      my $row = [];      my $row = [];
422    
423      my $org_name = $fig->org_of($fid);      my $org_name = "Data not available";
424        if ( $fig->org_of($fid)){
425            $org_name = $fig->org_of($fid);
426        }
427      my $org_id = $fig->genome_of($fid);      my $org_id = $fig->genome_of($fid);
428      my $function = $fig->function_of($fid);      my $function = $fig->function_of($fid);
429      #my $taxonomy = $fig->taxonomy_of($org_id);      #my $taxonomy = $fig->taxonomy_of($org_id);
# Line 476  Line 479 
479          my @currLineage = ($parent_tax);          my @currLineage = ($parent_tax);
480          push (@{$families{figs}{$parent_tax}}, $id);          push (@{$families{figs}{$parent_tax}}, $id);
481          my $level = 2;          my $level = 2;
482          foreach my $tax (split(/\; /, $taxonomy)){  
483            foreach my $tax (split(/\; /, $taxonomy),$id){
484              next if ($tax eq $parent_tax);
485              push (@{$families{children}{$parent_tax}}, $tax) if ($tax ne $parent_tax);              push (@{$families{children}{$parent_tax}}, $tax) if ($tax ne $parent_tax);
486              push (@{$families{figs}{$tax}}, $id) if ($tax ne $parent_tax);              push (@{$families{figs}{$tax}}, $id) if ($tax ne $parent_tax);
487              $families{level}{$tax} = $level;              $families{level}{$tax} = $level;
# Line 540  Line 545 
545    
546      # 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)
547      my ($fid,$domain_classes,$datasets_ref,$attributes_ref,$fig) = (@_);      my ($fid,$domain_classes,$datasets_ref,$attributes_ref,$fig) = (@_);
548        my $seen = {};
549      foreach my $attr_ref (@$attributes_ref) {      foreach my $attr_ref (@$attributes_ref) {
550          my $key = @$attr_ref[1];          my $key = @$attr_ref[1];
551          my @parts = split("::",$key);          my @parts = split("::",$key);
552          my $class = $parts[0];          my $class = $parts[0];
553          my $name = $parts[1];          my $name = $parts[1];
554            next if ($seen->{$name});
555            $seen->{$name}++;
556          #next if (($class eq "PFAM") && ($name !~ /interpro/));          #next if (($class eq "PFAM") && ($name !~ /interpro/));
557    
558          if($domain_classes->{$parts[0]}){          if($domain_classes->{$parts[0]}){
# Line 706  Line 713 
713      my ($fid,$datasets_ref,$fig,$parameters) = (@_);      my ($fid,$datasets_ref,$fig,$parameters) = (@_);
714    
715      my ($max_sims, $max_expand, $max_eval, $sim_order, $db_filter, $sim_filters);      my ($max_sims, $max_expand, $max_eval, $sim_order, $db_filter, $sim_filters);
716      if ($parameters->{flag}){      if ( (defined $parameters->{flag}) && ($parameters->{flag})){
717        $max_sims = $parameters->{max_sims};        $max_sims = $parameters->{max_sims};
718        $max_expand = $parameters->{max_expand};        $max_expand = $parameters->{max_expand};
719        $max_eval = $parameters->{max_eval};        $max_eval = $parameters->{max_eval};
# Line 715  Line 722 
722        #$sim_order = $parameters->{sim_order};        #$sim_order = $parameters->{sim_order};
723        $group_by_genome = 1 if (defined ($parameters->{group_genome}));        $group_by_genome = 1 if (defined ($parameters->{group_genome}));
724      }      }
725        elsif ( (defined $parameters->{sims_db}) && ($parameters->{sims_db} eq 'all')){
726          $max_sims = 50;
727          $max_expand = 5;
728          $max_eval = 1e-5;
729          $db_filter = "all";
730          $sim_filters->{ sort_by } = 'id';
731        }
732      else{      else{
733        $max_sims = 50;        $max_sims = 50;
734        $max_expand = 5;        $max_expand = 5;
# Line 740  Line 754 
754        @tmp = map { @{ $sims{$_} } } @genomes;        @tmp = map { @{ $sims{$_} } } @genomes;
755      }      }
756    
757        my $seen_sims={};
758      foreach my $sim (@tmp){      foreach my $sim (@tmp){
759          my $hit = $sim->[1];          my $hit = $sim->[1];
760            next if ($seen_sims->{$hit});
761            $seen_sims->{$hit}++;
762          my $percent = $sim->[2];          my $percent = $sim->[2];
763          my $evalue = $sim->[10];          my $evalue = $sim->[10];
764          my $qfrom = $sim->[6];          my $qfrom = $sim->[6];
# Line 752  Line 769 
769          my $hlength = $sim->[13];          my $hlength = $sim->[13];
770          my $db = get_database($hit);          my $db = get_database($hit);
771          my $func = $fig->function_of($hit);          my $func = $fig->function_of($hit);
772          my $organism = $fig->org_of($hit);          my $organism;
773            if ($fig->org_of($hit)){
774                $organism = $fig->org_of($hit);
775            }
776            else{
777                $organism = "Data not available";
778            }
779    
780          $dataset = {'class' => 'SIM',          $dataset = {'class' => 'SIM',
781                      'query' => $sim->[0],                      'query' => $sim->[0],
# Line 859  Line 882 
882      my ($bound,$sim_cutoff,$coupling_cutoff) = (5000, 1.0e-10, 4);      my ($bound,$sim_cutoff,$coupling_cutoff) = (5000, 1.0e-10, 4);
883    
884      # get the fc data      # get the fc data
885      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);
886    
887      # retrieve data      # retrieve data
888      my @rows = map { ($sc,$neigh) = @$_;      my @rows = map { ($sc,$neigh) = @$_;
# Line 1146  Line 1169 
1169          my $id = $row->[0];          my $id = $row->[0];
1170          my $who = $row->[1];          my $who = $row->[1];
1171          my $assignment = $row->[2];          my $assignment = $row->[2];
1172          my $organism = $fig->org_of($id);          my $organism = "Data not available";
1173            if ($fig->org_of($id)){
1174                $organism = $fig->org_of($id);
1175            }
1176          my $single_domain = [];          my $single_domain = [];
1177          push(@$single_domain,$who);          push(@$single_domain,$who);
1178          push(@$single_domain,&HTML::set_prot_links($cgi,$id));          push(@$single_domain,"<a href='?page=Annotation&feature=$id'>$id</a>");
1179          push(@$single_domain,$organism);          push(@$single_domain,$organism);
1180          push(@$single_domain,$assignment);          push(@$single_domain,$assignment);
1181          push(@$all_domains,$single_domain);          push(@$all_domains,$single_domain);
# Line 1505  Line 1531 
1531      #color is      #color is
1532      my $color = "6";      my $color = "6";
1533    
 =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};  
1534    
             push(@$descriptions,$description_tmpred_score);  
1535    
1536              my $element_hash = {  #    if($cello_location){
1537              "title" => "transmembrane location",  #       my $cello_descriptions = [];
1538              "start" => $begin + 1,  #       my $line_data =[];
1539              "end" =>  $end + 1,  #
1540              "color"=> $color,  #       my $line_config = { 'title' => 'Localization Evidence',
1541              "zlayer" => '5',  #                           'short_title' => 'CELLO',
1542              "type" => 'box',  #                            'hover_title' => 'Localization',
1543              "description" => $descriptions};  #                           'basepair_offset' => '1' };
1544    #
1545              push(@$line_data,$element_hash);  #       my $description_cello_location = {"title" => 'Best Cello Location',
1546    #                                         "value" => $cello_location};
1547    #
1548    #       push(@$cello_descriptions,$description_cello_location);
1549    #
1550    #       my $description_cello_score = {"title" => 'Cello Score',
1551    #                                      "value" => $cello_score};
1552    #
1553    #       push(@$cello_descriptions,$description_cello_score);
1554    #
1555    #       my $element_hash = {
1556    #           "title" => "CELLO",
1557    #           "color"=> $color,
1558    #           "start" => "1",
1559    #           "end" =>  $length + 1,
1560    #           "zlayer" => '1',
1561    #           "description" => $cello_descriptions};
1562    #
1563    #       push(@$line_data,$element_hash);
1564    #       $gd->add_line($line_data, $line_config);
1565    #    }
1566    #
1567    #    $color = "2";
1568    #    if($tmpred_score){
1569    #       my $line_data =[];
1570    #       my $line_config = { 'title' => 'Localization Evidence',
1571    #                           'short_title' => 'Transmembrane',
1572    #                           'basepair_offset' => '1' };
1573    #
1574    #       foreach my $tmpred (@tmpred_locations){
1575    #           my $descriptions = [];
1576    #           my ($begin,$end) =split("-",$tmpred);
1577    #           my $description_tmpred_score = {"title" => 'TMPRED score',
1578    #                            "value" => $tmpred_score};
1579    #
1580    #           push(@$descriptions,$description_tmpred_score);
1581    #
1582    #           my $element_hash = {
1583    #           "title" => "transmembrane location",
1584    #           "start" => $begin + 1,
1585    #           "end" =>  $end + 1,
1586    #           "color"=> $color,
1587    #           "zlayer" => '5',
1588    #           "type" => 'box',
1589    #           "description" => $descriptions};
1590    #
1591    #           push(@$line_data,$element_hash);
1592    #
1593    #       }
1594    #       $gd->add_line($line_data, $line_config);
1595    #    }
1596    
         }  
         $gd->add_line($line_data, $line_config);  
     }  
 =cut  
1597    
1598      if((scalar(@phobius_tm_locations) > 0) || $phobius_signal_location){      if((scalar(@phobius_tm_locations) > 0) || $phobius_signal_location){
1599          my $line_data =[];          my $line_data =[];
# Line 1619  Line 1645 
1645          $gd->add_line($line_data, $line_config);          $gd->add_line($line_data, $line_config);
1646      }      }
1647    
 =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);  
1648    
1649          my $description_cleavage_prob = {"title" => 'cleavage site probability',  #    $color = "1";
1650                                           "value" => $cleavage_prob};  #    if($signal_peptide_score){
1651    #       my $line_data = [];
1652          push(@$descriptions,$description_cleavage_prob);  #       my $descriptions = [];
1653    #
1654          my $element_hash = {  #       my $line_config = { 'title' => 'Localization Evidence',
1655              "title" => "SignalP",  #                           'short_title' => 'SignalP',
1656              "start" => $cleavage_loc_begin - 2,  #                            'hover_title' => 'Localization',
1657              "end" =>  $cleavage_loc_end + 1,  #                           'basepair_offset' => '1' };
1658              "type" => 'bigbox',  #
1659              "color"=> $color,  #       my $description_signal_peptide_score = {"title" => 'signal peptide score',
1660              "zlayer" => '10',  #                                               "value" => $signal_peptide_score};
1661              "description" => $descriptions};  #
1662    #       push(@$descriptions,$description_signal_peptide_score);
1663    #
1664    #       my $description_cleavage_prob = {"title" => 'cleavage site probability',
1665    #                                        "value" => $cleavage_prob};
1666    #
1667    #       push(@$descriptions,$description_cleavage_prob);
1668    #
1669    #       my $element_hash = {
1670    #           "title" => "SignalP",
1671    #           "start" => $cleavage_loc_begin - 2,
1672    #           "end" =>  $cleavage_loc_end + 1,
1673    #           "type" => 'bigbox',
1674    #           "color"=> $color,
1675    #           "zlayer" => '10',
1676    #           "description" => $descriptions};
1677    #
1678    #       push(@$line_data,$element_hash);
1679    #       $gd->add_line($line_data, $line_config);
1680    #    }
1681    
         push(@$line_data,$element_hash);  
         $gd->add_line($line_data, $line_config);  
     }  
 =cut  
1682    
1683      return ($gd);      return ($gd);
1684    
# Line 1806  Line 1832 
1832      # evidence link      # evidence link
1833      my $evidence_link;      my $evidence_link;
1834      if ($peg =~ /^fig\|/){      if ($peg =~ /^fig\|/){
1835        $evidence_link = "?page=Evidence&feature=".$peg;        $evidence_link = "?page=Annotation&feature=".$peg;
1836      }      }
1837      else{      else{
1838        my $db = &Observation::get_database($peg);        my $db = &Observation::get_database($peg);
# Line 2100  Line 2126 
2126      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) );
2127    
2128      # get the column for the subsystems      # get the column for the subsystems
2129      $subsystems_column = &get_subsystems_column(\@ids,$fig,$cgi,'hash') if (grep /subsystem/, @$scroll_list);      $subsystems_column = &get_subsystems_column(\@ids,$fig,$cgi,'hash');
2130    
2131      # get the column for the evidence codes      # get the column for the evidence codes
2132      $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');
2133    
2134      # get the column for pfam_domain      # get the column for pfam_domain
2135      $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 2187  Line 2213 
2213    
2214      my $figfam_data = &FIG::get_figfams_data();      my $figfam_data = &FIG::get_figfams_data();
2215      my $figfams = new FFs($figfam_data);      my $figfams = new FFs($figfam_data);
2216        my $same_genome_flag = 0;
2217    
2218      my $func_color_offset=0;      my $func_color_offset=0;
2219      unshift(@$dataset, $query_fid);      unshift(@$dataset, $query_fid);
2220      foreach my $thing ( @$dataset){      for (my $thing_count=0;$thing_count<scalar @$dataset;$thing_count++){
2221          my ($id, $taxid, $iden, $ln1,$ln2,$b1,$b2,$e1,$e2,$d1,$d2,$color1,$color2,$reg1,$reg2);  #    foreach my $thing ( @$dataset){
2222            my $thing = $dataset->[$thing_count];
2223            my $next_thing = $dataset->[$thing_count+1] if (defined $dataset->[$thing_count+1]);
2224            my ($id, $taxid, $iden, $ln1,$ln2,$b1,$b2,$e1,$e2,$d1,$d2,$color1,$color2,$reg1,$reg2, $next_org);
2225          if ($thing eq $query_fid){          if ($thing eq $query_fid){
2226              $id = $thing;              $id = $thing;
2227              $taxid   = $fig->genome_of($id);              $taxid   = $fig->genome_of($id);
# Line 2219  Line 2249 
2249              $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};              $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};
2250              $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};              $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};
2251              $current_function = $thing->function;              $current_function = $thing->function;
2252                $next_org = $next_thing->organism if (defined $next_thing);
2253          }          }
2254    
2255          my $single_domain = [];          my $single_domain = [];
# Line 2226  Line 2257 
2257    
2258          # organisms cell          # organisms cell
2259          my ($org, $org_color) = $fig->org_and_color_of($id);          my ($org, $org_color) = $fig->org_and_color_of($id);
2260          my $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};  
2261            my $org_cell;
2262            if ( ($next_org ne $organism) && ($same_genome_flag == 0) ){
2263                $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};
2264            }
2265            elsif ($next_org eq $organism){
2266                $org_cell = { 'data' =>  "<b>" . $organism . "</b>", 'highlight' => $org_color};
2267                $same_genome_flag = 1;
2268            }
2269            elsif ($same_genome_flag == 1){
2270                $org_cell = { 'data' =>  "<b>" . $organism . "</b>", 'highlight' => $org_color};
2271                $same_genome_flag = 0;
2272            }
2273    
2274          # checkbox cell          # checkbox cell
2275          my ($box_cell,$tax, $radio_cell);          my ($box_cell,$tax, $radio_cell);
# Line 2239  Line 2282 
2282          $white = '#999966' if ($id eq $query_fid);          $white = '#999966' if ($id eq $query_fid);
2283          $org_color = '#999966' if ($id eq $query_fid);          $org_color = '#999966' if ($id eq $query_fid);
2284          my $anchor_name = "anchor_". $replace_id;          my $anchor_name = "anchor_". $replace_id;
2285          my $checked = ""; $checked = "checked" if ($id eq $query_fid);          my $checked = "";
2286            #$checked = "checked" if ($id eq $query_fid);
2287          if ($id =~ /^fig\|/){          if ($id =~ /^fig\|/){
2288            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>);            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>~;
           my $radio = qq(<input type="radio" name="function_select" value="$id" id="$field_name" >);  
2289            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};
           $radio_cell = { 'data'=>$radio, 'highlight'=>$white};  
2290            $tax = $fig->genome_of($id);            $tax = $fig->genome_of($id);
2291          }          }
2292          else{          else{
# Line 2252  Line 2294 
2294            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};
2295          }          }
2296    
2297            # create the radio cell for any sequence, not just fig ids
2298            my $radio = qq(<input type="radio" name="function_select" value="$id" id="$field_name" onClick="clearText('new_text_function')">);
2299            $radio_cell = { 'data'=>$radio, 'highlight'=>$white};
2300    
2301          # get the linked fig id          # get the linked fig id
2302          my $anchor_link = "graph_" . $replace_id;          my $anchor_link = "graph_" . $replace_id;
2303          my $fig_data =  "<table><tr><td>" . &HTML::set_prot_links($cgi,$id) . "</td>" . "&nbsp;" x 2;          my $fig_data =  "<table><tr><td><a href='?page=Annotation&feature=$id'>$id</a></td>" . "&nbsp;" x 2;
2304          $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>);          $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>);
2305          my $fig_col = {'data'=> $fig_data,          my $fig_col = {'data'=> $fig_data,
2306                         'highlight'=>$white};                         'highlight'=>$white};
2307    
# Line 2297  Line 2343 
2343          if ($id eq $query_fid){          if ($id eq $query_fid){
2344              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},
2345                    {'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},
2346                    {'data' =>  $organism, 'highlight'=> $white}, {'data'=>$current_function, 'highlight'=>$white});  # permanent columns                    {'data' =>  $organism, 'highlight'=> $white}, {'data'=>$current_function, 'highlight'=>$white},
2347                      {'data'=>$subsystems_column->{$id},'highlight'=>$white},
2348                      {'data'=>$evidence_column->{$id},'highlight'=>$white});  # permanent columns
2349          }          }
2350          else{          else{
2351              push (@$single_domain, $box_cell, $fig_col, {'data'=> $evalue, 'highlight'=>"#ffffff"},              push (@$single_domain, $box_cell, $fig_col, {'data'=> $evalue, 'highlight'=>"#ffffff"},
2352                    {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell);  # permanent columns                    {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell,
2353                      {'data'=>$subsystems_column->{$id},'highlight'=>"#ffffff"},
2354                      {'data'=>$evidence_column->{$id},'highlight'=>"#ffffff"});  # permanent columns
2355    
2356          }          }
2357    
2358          if ( ( $application->session->user) ){          if ( ( $application->session->user) ){
2359              if ( ($application->session->user->login) && ($application->session->user->login eq "arodri")){              my $user = $application->session->user;
2360                if ($user && $user->has_right(undef, 'annotate', 'genome', $fig->genome_of($id))) {
2361                  push (@$single_domain,$radio_cell);                  push (@$single_domain,$radio_cell);
2362              }              }
2363          }          }
# Line 2316  Line 2368 
2368              if ($id eq $query_fid) { $highlight_color = "#999966"; }              if ($id eq $query_fid) { $highlight_color = "#999966"; }
2369              else { $highlight_color = "#ffffff"; }              else { $highlight_color = "#ffffff"; }
2370    
2371              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});}  
2372              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});}
2373              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});}
2374              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 2336  Line 2386 
2386              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});}
2387              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});}
2388              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});}
2389              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});}
2390              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});}
2391              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});}
2392              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 2363  Line 2413 
2413      return ($content);      return ($content);
2414  }  }
2415    
2416    
2417    =head3 display_figfam_table()
2418    
2419    If available use the function specified here to display the "raw" observation.
2420    This code will display a table for the similarities protein
2421    
2422    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.
2423    
2424    =cut
2425    
2426    sub display_figfam_table {
2427      my ($self,$ids, $show_columns, $fig, $application, $cgi) = @_;
2428      my ($count, $data, $content, %box_column, $subsystems_column, $evidence_column, %e_identical, $function_color, @ids);
2429    
2430      my $scroll_list;
2431      foreach my $col (@$show_columns){
2432        push (@$scroll_list, $col->{key});
2433      }
2434    
2435      $lineages = $fig->taxonomy_list() if (grep /lineage/, @$scroll_list);
2436      my @attributes = $fig->get_attributes($ids) if ( (grep /evidence/, @$scroll_list) || (grep /(pfam|mw)/, @$scroll_list) );
2437    
2438      # get the column for the subsystems
2439      $subsystems_column = &get_subsystems_column($ids,$fig,$cgi,'hash');
2440    
2441      # get the column for the evidence codes
2442      $evidence_column = &get_evidence_column($ids, \@attributes, $fig, $cgi, 'hash') if (grep /^evidence$/, @$scroll_list);
2443    
2444      # get the column for pfam_domain
2445      $pfam_column = &get_attrb_column($ids, \@attributes, $fig, $cgi, 'pfam', 'PFAM', 'hash') if (grep /^pfam$/, @$scroll_list);
2446    
2447      # get the column for molecular weight
2448      $mw_column = &get_attrb_column($ids, \@attributes, $fig, $cgi, 'mw', 'molecular_weight', 'hash') if (grep /^mw$/, @$scroll_list);
2449    
2450      # get the column for organism's habitat
2451      my $habitat_column = &get_attrb_column($ids, undef, $fig, $cgi, 'habitat', 'Habitat', 'hash') if (grep /^habitat$/, @$scroll_list);
2452    
2453      # get the column for organism's temperature optimum
2454      my $temperature_column = &get_attrb_column($ids, undef, $fig, $cgi, 'temperature', 'Optimal_Temperature', 'hash') if (grep /^temperature$/, @$scroll_list);
2455    
2456      # get the column for organism's temperature range
2457      my $temperature_range_column = &get_attrb_column($ids, undef, $fig, $cgi, 'temp_range', 'Temperature_Range', 'hash') if (grep /^temp_range$/, @$scroll_list);
2458    
2459      # get the column for organism's oxygen requirement
2460      my $oxygen_req_column = &get_attrb_column($ids, undef, $fig, $cgi, 'oxygen', 'Oxygen_Requirement', 'hash') if (grep /^oxygen$/, @$scroll_list);
2461    
2462      # get the column for organism's pathogenicity
2463      my $pathogenic_column = &get_attrb_column($ids, undef, $fig, $cgi, 'pathogenic', 'Pathogenic', 'hash') if (grep /^pathogenic$/, @$scroll_list);
2464    
2465      # get the column for organism's pathogenicity host
2466      my $pathogenic_in_column = &get_attrb_column($ids, undef, $fig, $cgi, 'pathogenic_in', 'Pathogenic_In', 'hash') if (grep /^pathogenic_in$/, @$scroll_list);
2467    
2468      # get the column for organism's salinity
2469      my $salinity_column = &get_attrb_column($ids, undef, $fig, $cgi, 'salinity', 'Salinity', 'hash') if (grep /^salinity$/, @$scroll_list);
2470    
2471      # get the column for organism's motility
2472      my $motility_column = &get_attrb_column($ids, undef, $fig, $cgi, 'motility', 'Motility', 'hash') if (grep /^motility$/, @$scroll_list);
2473    
2474      # get the column for organism's gram stain
2475      my $gram_stain_column = &get_attrb_column($ids, undef, $fig, $cgi, 'gram_stain', 'Gram_Stain', 'hash') if (grep /^gram_stain$/, @$scroll_list);
2476    
2477      # get the column for organism's endospores
2478      my $endospores_column = &get_attrb_column($ids, undef, $fig, $cgi, 'endospores', 'Endospores', 'hash') if (grep /^endospores$/, @$scroll_list);
2479    
2480      # get the column for organism's shape
2481      my $shape_column = &get_attrb_column($ids, undef, $fig, $cgi, 'shape', 'Shape', 'hash') if (grep /^shape$/, @$scroll_list);
2482    
2483      # get the column for organism's disease
2484      my $disease_column = &get_attrb_column($ids, undef, $fig, $cgi, 'disease', 'Disease', 'hash') if (grep /^disease$/, @$scroll_list);
2485    
2486      # get the column for organism's disease
2487      my $gc_content_column = &get_attrb_column($ids, undef, $fig, $cgi, 'gc_content', 'GC_Content', 'hash') if (grep /^gc_content$/, @$scroll_list);
2488    
2489      # get the column for transmembrane domains
2490      my $transmembrane_column = &get_attrb_column($ids, undef, $fig, $cgi, 'transmembrane', 'Phobius::transmembrane', 'hash') if (grep /^transmembrane$/, @$scroll_list);
2491    
2492      # get the column for similar to human
2493      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);
2494    
2495      # get the column for signal peptide
2496      my $signal_peptide_column = &get_attrb_column($ids, undef, $fig, $cgi, 'signal_peptide', 'Phobius::signal', 'hash') if (grep /^signal_peptide$/, @$scroll_list);
2497    
2498      # get the column for transmembrane domains
2499      my $isoelectric_column = &get_attrb_column($ids, undef, $fig, $cgi, 'isoelectric', 'isoelectric_point', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2500    
2501      # get the column for conserved neighborhood
2502      my $cons_neigh_column = &get_attrb_column($ids, undef, $fig, $cgi, 'conserved_neighborhood', undef, 'hash') if (grep /^conserved_neighborhood$/, @$scroll_list);
2503    
2504      # get the column for cellular location
2505      my $cell_location_column = &get_attrb_column($ids, undef, $fig, $cgi, 'cellular_location', 'PSORT::', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2506    
2507      # get the aliases
2508      my $alias_col;
2509      if ( (grep /asap_id/, @$scroll_list) || (grep /ncbi_id/, @$scroll_list) ||
2510           (grep /refseq_id/, @$scroll_list) || (grep /swissprot_id/, @$scroll_list) ||
2511           (grep /uniprot_id/, @$scroll_list) || (grep /tigr_id/, @$scroll_list) ||
2512           (grep /kegg_id/, @$scroll_list) || (grep /pir_id/, @$scroll_list) ||
2513           (grep /trembl_id/, @$scroll_list) || (grep /jgi_id/, @$scroll_list) ) {
2514        $alias_col = &get_db_aliases($ids,$fig,'all',$cgi,'hash');
2515      }
2516    
2517      foreach my $id ( @$ids){
2518        my $current_function = $fig->function_of($id);
2519        my $organism = $fig->org_of($id);
2520        my $single_domain = [];
2521    
2522        # organisms cell
2523        my ($org, $org_color) = $fig->org_and_color_of($id);
2524        my $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};
2525    
2526        # get the linked fig id
2527        my $fig_data =  "<a href='?page=Annotation&feature=$id'>$id</a>";
2528        my $fig_col = {'data'=> $fig_data,
2529                       'highlight'=>"#ffffff"};
2530    
2531        # function cell
2532        $function_cell = {'data'=>$current_function, 'highlight'=> "#ffffff"};
2533    
2534        # insert data
2535        push (@$single_domain, $fig_col, $org_cell, {'data'=>$subsystems_column->{$id},'highlight'=>"#ffffff"}, $function_cell);
2536    
2537        foreach my $col (@$scroll_list){
2538          my $highlight_color = "#ffffff";
2539    
2540          if ($col =~ /evidence/)                   {push(@$single_domain,{'data'=>$evidence_column->{$id},'highlight'=>$highlight_color});}
2541          elsif ($col =~ /pfam/)                       {push(@$single_domain,{'data'=>$pfam_column->{$id},'highlight'=>$highlight_color});}
2542          elsif ($col =~ /mw/)                         {push(@$single_domain,{'data'=>$mw_column->{$id},'highlight'=>$highlight_color});}
2543          elsif ($col =~ /habitat/)                    {push(@$single_domain,{'data'=>$habitat_column->{$id},'highlight'=>$highlight_color});}
2544          elsif ($col =~ /temperature/)                {push(@$single_domain,{'data'=>$temperature_column->{$id},'highlight'=>$highlight_color});}
2545          elsif ($col =~ /temp_range/)                 {push(@$single_domain,{'data'=>$temperature_range_column->{$id},'highlight'=>$highlight_color});}
2546          elsif ($col =~ /oxygen/)                     {push(@$single_domain,{'data'=>$oxygen_req_column->{$id},'highlight'=>$highlight_color});}
2547          elsif ($col =~ /^pathogenic$/)               {push(@$single_domain,{'data'=>$pathogenic_column->{$id},'highlight'=>$highlight_color});}
2548          elsif ($col =~ /^pathogenic_in$/)            {push(@$single_domain,{'data'=>$pathogenic_in_column->{$id},'highlight'=>$highlight_color});}
2549          elsif ($col =~ /salinity/)                   {push(@$single_domain,{'data'=>$salinity_column->{$id},'highlight'=>$highlight_color});}
2550          elsif ($col =~ /motility/)                   {push(@$single_domain,{'data'=>$motility_column->{$id},'highlight'=>$highlight_color});}
2551          elsif ($col =~ /gram_stain/)                 {push(@$single_domain,{'data'=>$gram_stain_column->{$id},'highlight'=>$highlight_color});}
2552          elsif ($col =~ /endospores/)                 {push(@$single_domain,{'data'=>$endospores_column->{$id},'highlight'=>$highlight_color});}
2553          elsif ($col =~ /shape/)                      {push(@$single_domain,{'data'=>$shape_column->{$id},'highlight'=>$highlight_color});}
2554          elsif ($col =~ /disease/)                    {push(@$single_domain,{'data'=>$disease_column->{$id},'highlight'=>$highlight_color});}
2555          elsif ($col =~ /gc_content/)                 {push(@$single_domain,{'data'=>$gc_content_column->{$id},'highlight'=>$highlight_color});}
2556          elsif ($col =~ /transmembrane/)              {push(@$single_domain,{'data'=>$transmembrane_column->{$id},'highlight'=>$highlight_color});}
2557          elsif ($col =~ /signal_peptide/)             {push(@$single_domain,{'data'=>$signal_peptide_column->{$id},'highlight'=>$highlight_color});}
2558          elsif ($col =~ /isoelectric/)                {push(@$single_domain,{'data'=>$isoelectric_column->{$id},'highlight'=>$highlight_color});}
2559          elsif ($col =~ /conerved_neighborhood/)     {push(@$single_domain,{'data'=>$cons_neigh_column->{$id},'highlight'=>$highlight_color});}
2560          elsif ($col =~ /cellular_location/)          {push(@$single_domain,{'data'=>$cell_location_column->{$id},'highlight'=>$highlight_color});}
2561          elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>$highlight_color});}
2562          elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>$highlight_color});}
2563          elsif ($col =~ /swissprot_id/)               {push(@$single_domain,{'data'=>$alias_col->{$id}->{"SwissProt"},'highlight'=>$highlight_color});}
2564          elsif ($col =~ /uniprot_id/)                 {push(@$single_domain,{'data'=>$alias_col->{$id}->{"UniProt"},'highlight'=>$highlight_color});}
2565          elsif ($col =~ /tigr_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TIGR"},'highlight'=>$highlight_color});}
2566          elsif ($col =~ /pir_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"PIR"},'highlight'=>$highlight_color});}
2567          elsif ($col =~ /kegg_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"KEGG"},'highlight'=>$highlight_color});}
2568          elsif ($col =~ /trembl_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TrEMBL"},'highlight'=>$highlight_color});}
2569          elsif ($col =~ /asap_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"ASAP"},'highlight'=>$highlight_color});}
2570          elsif ($col =~ /jgi_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"JGI"},'highlight'=>$highlight_color});}
2571          elsif ($col =~ /lineage/)                   {push(@$single_domain,{'data'=>$lineages->{$tax},'highlight'=>$highlight_color});}
2572          elsif ($col =~ /figfam/)                     {push(@$single_domain,{'data'=>"<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>",'highlight'=>$highlight_color});}
2573        }
2574        push(@$data,$single_domain);
2575      }
2576    
2577      $content = $data;
2578      return ($content);
2579    }
2580    
2581  sub get_box_column{  sub get_box_column{
2582      my ($ids) = @_;      my ($ids) = @_;
2583      my %column;      my %column;
# Line 2580  Line 2795 
2795              my $pretty_code = $code->[2];              my $pretty_code = $code->[2];
2796              if ($pretty_code =~ /;/) {              if ($pretty_code =~ /;/) {
2797                  my ($cd, $ss) = split(";", $code->[2]);                  my ($cd, $ss) = split(";", $code->[2]);
2798                    print STDERR "$id: $cd, $ss\n";
2799                    if ($cd =~ /ilit|dlit/){
2800                        my ($type,$pubmed_id) = ($cd) =~ /(.*?)\((.*)\)/;
2801                        my $publink = &HTML::alias_url($pubmed_id,'PMID');
2802                        $cd = $type . "(<a href='" . $publink . "'>" . $pubmed_id . "</a>)";
2803                    }
2804                  $ss =~ s/_/ /g;                  $ss =~ s/_/ /g;
2805                  $pretty_code = $cd;# . " in " . $ss;                  $pretty_code = $cd;# . " in " . $ss;
2806              }              }
# Line 3260  Line 3481 
3481          last if ($count > 10);          last if ($count > 10);
3482          my $row_data = [];          my $row_data = [];
3483          my ($set, $org, $ss, $ev, $function, $function_cell, $id_cell);          my ($set, $org, $ss, $ev, $function, $function_cell, $id_cell);
3484            if ($fig->org_of($id)){
3485          $org = $fig->org_of($id);          $org = $fig->org_of($id);
3486            }
3487            else{
3488                $org = "Data not available";
3489            }
3490          $function = $fig->function_of($id);          $function = $fig->function_of($id);
3491          if ($mypeg ne $id){          if ($mypeg ne $id){
3492              $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.62  
changed lines
  Added in v.1.71

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3