[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.28, Tue Aug 14 21:32:57 2007 UTC revision 1.29, Thu Aug 16 16:49:16 2007 UTC
# Line 1641  Line 1641 
1641  =cut  =cut
1642    
1643  sub display_table {  sub display_table {
1644      my ($self,$dataset, $preference) = @_;      my ($self,$dataset, $preference, $columns) = @_;
1645    
1646      my $data = [];      my $data = [];
1647      my $count = 0;      my $count = 0;
# Line 1654  Line 1654 
1654          push (@ids, $thing->acc);          push (@ids, $thing->acc);
1655      }      }
1656    
1657      # get the subsystem information as a batch request      my (%box_column, %subsystems_column, %evidence_column, %code_attributes);
1658      my %in_subs  = $fig->subsystems_for_pegs(\@ids);      foreach my $col (@$columns){
1659            # get the column for the subsystems
1660      # get the evidence information as a batch request          if ($col eq "subsystem"){
1661      my @codes = grep { $_->[1] =~ /^evidence_code/i } $fig->get_attributes(\@ids);              %subsystems_column = &get_subsystems_column(\@ids);
1662      my %code_attributes;          }
1663      foreach my $key (@codes){          # get the column for the evidence codes
1664          push (@{$code_attributes{$$key[0]}}, $key);          elsif ($col eq "evidence"){
1665                %evidence_column = &get_evidence_column(\@ids);
1666            }
1667      }      }
1668    
1669      foreach my $thing (@$dataset) {      foreach my $thing (@$dataset) {
# Line 1671  Line 1673 
1673    
1674          my $id = $thing->acc;          my $id = $thing->acc;
1675    
1676          # add the subsystem information          my $iden    = $thing->identity;
1677          #my @in_sub  = $fig->peg_to_subsystems($id);          my $ln1     = $thing->qlength;
1678            my $ln2     = $thing->hlength;
1679            my $b1      = $thing->qstart;
1680            my $e1      = $thing->qstop;
1681            my $b2      = $thing->hstart;
1682            my $e2      = $thing->hstop;
1683            my $d1      = abs($e1 - $b1) + 1;
1684            my $d2      = abs($e2 - $b2) + 1;
1685            my $reg1    = "$b1-$e1 (<b>$d1/$ln1</b>)";
1686            my $reg2    = "$b2-$e2 (<b>$d2/$ln2</b>)";
1687    
1688            # checkbox column
1689            my $field_name = "tables_" . $id;
1690            my $pair_name = "visual_" . $id;
1691            my $box_col = qq(<input type=checkbox name=seq value="$id" id="$field_name" onClick="VisualCheckPair('$field_name', '$pair_name');">);
1692    
1693            my $prefer_id = &get_prefer($thing->acc, $preference);
1694            my $acc_col .= &HTML::set_prot_links($cgi,$prefer_id);
1695            my $db = $thing->database;
1696            if ($preference ne "FIG"){
1697                $db = &Observation::get_database($prefer_id);
1698            }
1699    
1700            push(@$single_domain,$box_col);                        # permanent column
1701            push(@$single_domain,$acc_col);                        # permanent column
1702            push(@$single_domain,$thing->evalue);                  # permanent column
1703            push(@$single_domain,"$iden\%");                       # permanent column
1704            push(@$single_domain,$reg1);                           # permanent column
1705            push(@$single_domain,$reg2);                           # permanent column
1706            push(@$single_domain,$thing->organism);                # permanent column
1707            push(@$single_domain,$thing->function);                # permanent column
1708            push(@$single_domain,$subsystems_column{$id}) if (grep (/subsystem/, @$columns));
1709            push(@$single_domain,$evidence_column{$id}) if (grep (/evidence/, @$columns));
1710            push(@$data,$single_domain);
1711        }
1712    
1713        if ($count >0 ){
1714            $content = $data;
1715        }
1716        else{
1717            $content = "<p>This PEG does not have any similarities</p>";
1718        }
1719        return ($content);
1720    }
1721    
1722    sub get_box_column{
1723        my ($ids) = @_;
1724        my %column;
1725        foreach my $id (@$ids){
1726            my $field_name = "tables_" . $id;
1727            my $pair_name = "visual_" . $id;
1728            $column{$id} = qq(<input type=checkbox name=seq value="$id" id="$field_name" onClick="VisualCheckPair('$field_name', '$pair_name');">);
1729        }
1730        return (%column);
1731    }
1732    
1733    sub get_subsystems_column{
1734        my ($ids) = @_;
1735    
1736        my $fig = new FIG;
1737        my $cgi = new CGI;
1738        my %in_subs  = $fig->subsystems_for_pegs($ids);
1739        my %column;
1740        foreach my $id (@$ids){
1741          my @in_sub = $in_subs{$id} if (defined $in_subs{$id});          my @in_sub = $in_subs{$id} if (defined $in_subs{$id});
1742          my $in_sub;          my $in_sub;
1743    
# Line 1681  Line 1746 
1746    
1747              # RAE: add a javascript popup with all the subsystems              # RAE: add a javascript popup with all the subsystems
1748              my $ss_list=join "<br>", map { my $g = $_; $g =~ s/\_/ /g; $_ = $g } sort {$a cmp $b} @in_sub;              my $ss_list=join "<br>", map { my $g = $_; $g =~ s/\_/ /g; $_ = $g } sort {$a cmp $b} @in_sub;
1749              $in_sub = $cgi->a( {id=>"subsystems", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Subsystems', '$ss_list', ''); this.tooltip.addHandler(); return false;"}, $in_sub);              $column{$id} = $cgi->a( {id=>"subsystems", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Subsystems', '$ss_list', ''); this.tooltip.addHandler(); return false;"}, $in_sub);
1750          } else {          } else {
1751              $in_sub = "&nbsp;";              $column{$id} = "&nbsp;";
1752          }          }
1753        }
1754        return (%column);
1755    }
1756    
1757    sub get_evidence_column{
1758        my ($ids) = @_;
1759        my $fig = new FIG;
1760        my $cgi = new CGI;
1761        my (%column, %code_attributes);
1762    
1763        my @codes = grep { $_->[1] =~ /^evidence_code/i } $fig->get_attributes($ids);
1764        foreach my $key (@codes){
1765            push (@{$code_attributes{$$key[0]}}, $key);
1766        }
1767    
1768        foreach my $id (@$ids){
1769          # add evidence code with tool tip          # add evidence code with tool tip
1770          my $ev_codes=" &nbsp; ";          my $ev_codes=" &nbsp; ";
1771          my @ev_codes = "";          my @ev_codes = "";
# Line 1711  Line 1791 
1791                                  {                                  {
1792                                      id=>"evidence_codes", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Evidence Codes', '$ev_code_help', ''); this.tooltip.addHandler(); return false;"}, join("<br />", @ev_codes));                                      id=>"evidence_codes", onMouseover=>"javascript:if(!this.tooltip) this.tooltip=new Popup_Tooltip(this, 'Evidence Codes', '$ev_code_help', ''); this.tooltip.addHandler(); return false;"}, join("<br />", @ev_codes));
1793          }          }
1794            $column{$id}=$ev_codes;
         my $iden    = $thing->identity;  
         my $ln1     = $thing->qlength;  
         my $ln2     = $thing->hlength;  
         my $b1      = $thing->qstart;  
         my $e1      = $thing->qstop;  
         my $b2      = $thing->hstart;  
         my $e2      = $thing->hstop;  
         my $d1      = abs($e1 - $b1) + 1;  
         my $d2      = abs($e2 - $b2) + 1;  
         my $reg1    = "$b1-$e1 (<b>$d1/$ln1</b>)";  
         my $reg2    = "$b2-$e2 (<b>$d2/$ln2</b>)";  
   
         my $name = $thing->acc;  
         my $field_name = "tables_" . $name;  
         my $pair_name = "visual_" . $name;  
   
         my $checkbox_col = qq(<input type=checkbox name=seq value="$name" id="$field_name" onClick="VisualCheckPair('$field_name', '$pair_name');">);  
   
         my $prefer_id = &get_prefer($thing->acc, $preference);  
         my $acc_col .= &HTML::set_prot_links($cgi,$prefer_id);  
         my $db = $thing->database;  
         if ($preference ne "FIG"){  
             $db = &Observation::get_database($prefer_id);  
         }  
   
         push(@$single_domain,$checkbox_col);  
         push(@$single_domain,$db);  
         push(@$single_domain,$acc_col);  
         push(@$single_domain,$thing->evalue);  
         push(@$single_domain,"$iden\%");  
         push(@$single_domain,$reg1);  
         push(@$single_domain,$reg2);  
         push(@$single_domain,$in_sub);  
         push(@$single_domain,$ev_codes);  
         push(@$single_domain,$thing->organism);  
         push(@$single_domain,$thing->function);  
         push(@$data,$single_domain);  
   
     }  
   
     if ($count >0 ){  
         $content = $data;  
1795      }      }
1796      else{      return (%column);
         $content = "<p>This PEG does not have any similarities</p>";  
     }  
     return ($content);  
1797  }  }
1798    
1799  sub html_enc { $_ = $_[0]; s/\&/&amp;/g; s/\>/&gt;/g; s/\</&lt;/g; $_ }  sub html_enc { $_ = $_[0]; s/\&/&amp;/g; s/\>/&gt;/g; s/\</&lt;/g; $_ }

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3