[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.33, Wed Aug 22 22:05:35 2007 UTC revision 1.34, Mon Aug 27 21:39:52 2007 UTC
# Line 2  Line 2 
2    
3  use lib '/vol/ontologies';  use lib '/vol/ontologies';
4  use DBMaster;  use DBMaster;
5    use Data::Dumper;
6    
7  require Exporter;  require Exporter;
8  @EXPORT_OK = qw(get_objects);  @EXPORT_OK = qw(get_objects);
# Line 1390  Line 1391 
1391    
1392          my $element_hash = {          my $element_hash = {
1393              "title" => "CELLO",              "title" => "CELLO",
1394                "color"=> $color,
1395              "start" => "1",              "start" => "1",
1396              "end" =>  $length + 1,              "end" =>  $length + 1,
             "color"=> $color,  
             "type" => 'box',  
1397              "zlayer" => '1',              "zlayer" => '1',
1398              "description" => $cello_descriptions};              "description" => $cello_descriptions};
1399    
# Line 1401  Line 1401 
1401          $gd->add_line($line_data, $line_config);          $gd->add_line($line_data, $line_config);
1402      }      }
1403    
   
1404      $color = "2";      $color = "2";
1405      if($tmpred_score){      if($tmpred_score){
1406          my $line_data =[];          my $line_data =[];
# Line 1409  Line 1408 
1408                              'short_title' => 'Transmembrane',                              'short_title' => 'Transmembrane',
1409                              'basepair_offset' => '1' };                              'basepair_offset' => '1' };
1410    
   
1411          foreach my $tmpred (@tmpred_locations){          foreach my $tmpred (@tmpred_locations){
1412              my $descriptions = [];              my $descriptions = [];
1413              my ($begin,$end) =split("-",$tmpred);              my ($begin,$end) =split("-",$tmpred);
# Line 1424  Line 1422 
1422              "end" =>  $end + 1,              "end" =>  $end + 1,
1423              "color"=> $color,              "color"=> $color,
1424              "zlayer" => '5',              "zlayer" => '5',
1425              "type" => 'smallbox',              "type" => 'box',
1426              "description" => $descriptions};              "description" => $descriptions};
1427    
1428              push(@$line_data,$element_hash);              push(@$line_data,$element_hash);
# Line 1709  Line 1707 
1707    
1708  }  }
1709    
1710    =head3 display_domain_composition()
1711    
1712    If available use the function specified here to display a graphical observation of the CDD(later Pfam or selected) domains that occur in the set of similar proteins
1713    
1714    =cut
1715    
1716    sub display_domain_composition {
1717        my ($self,$gd) = @_;
1718    
1719        my $fig = new FIG;
1720        my $peg = $self->acc;
1721    
1722        my $line_data = [];
1723        my $links_list = [];
1724        my $descriptions = [];
1725    
1726        my @domain_query_results =$fig->get_attributes($peg,"CDD");
1727    
1728        foreach $dqr (@domain_query_results){
1729            my $key = @$dqr[1];
1730            my @parts = split("::",$key);
1731            my $db = $parts[0];
1732            my $id = $parts[1];
1733            my $val = @$dqr[2];
1734            my $from;
1735            my $to;
1736            my $evalue;
1737    
1738            if($val =~/^(\d+\.\d+|0\.0);(\d+)-(\d+)/){
1739                my $raw_evalue = $1;
1740                $from = $2;
1741                $to = $3;
1742                if($raw_evalue =~/(\d+)\.(\d+)/){
1743                    my $part2 = 1000 - $1;
1744                    my $part1 = $2/100;
1745                    $evalue = $part1."e-".$part2;
1746                }
1747                else{
1748                    $evalue = "0.0";
1749                }
1750            }
1751    
1752            my $dbmaster = DBMaster->new(-database =>'Ontology');
1753            my ($name_value,$description_value);
1754    
1755            if($db eq "CDD"){
1756                my $cdd_objs = $dbmaster->cdd->get_objects( { 'id' => $id } );
1757                if(!scalar(@$cdd_objs)){
1758                    $name_title = "name";
1759                    $name_value = "not available";
1760                    $description_title = "description";
1761                    $description_value = "not available";
1762                }
1763                else{
1764                    my $cdd_obj = $cdd_objs->[0];
1765                    $name_value = $cdd_obj->term;
1766                    $description_value = $cdd_obj->description;
1767                }
1768            }
1769    
1770            my $domain_name;
1771            $domain_name = {"title" => "name",
1772                     "value" => $name_value};
1773            push(@$descriptions,$domain_name);
1774    
1775            my $description;
1776            $description = {"title" => "description",
1777                            "value" => $description_value};
1778            push(@$descriptions,$description);
1779    
1780            my $score;
1781            $score = {"title" => "score",
1782                      "value" => $evalue};
1783            push(@$descriptions,$score);
1784    
1785            my $link_id = $id;
1786            my $link;
1787            my $link_url;
1788            if ($db eq "CDD"){$link_url = "http://0-www.ncbi.nlm.nih.gov.library.vu.edu.au:80/Structure/cdd/cddsrv.cgi?uid=$link_id"}
1789            elsif($db eq "PFAM"){$link_url = "http://www.sanger.ac.uk/cgi-bin/Pfam/getacc?$link_id"}
1790            else{$link_url = "NO_URL"}
1791    
1792            $link = {"link_title" => $name_value,
1793                     "link" => $link_url};
1794            push(@$links_list,$link);
1795    
1796            my $domain_element_hash = {
1797                "title" => $peg,
1798                "start" => $from,
1799                "end" =>  $to,
1800                "type"=> 'box',
1801                "zlayer" => '4',
1802                "links_list" => $links_list,
1803                "description" => $descriptions
1804                };
1805    
1806            push(@$line_data,$domain_element_hash);
1807    
1808            #just one CDD domain for now, later will add option for multiple domains from selected DB
1809            last;
1810        }
1811    
1812        my $line_config = { 'title' => $peg,
1813                            'short_title' => $peg,
1814                            'basepair_offset' => '1' };
1815    
1816        $gd->add_line($line_data, $line_config);
1817    
1818        return ($gd);
1819    
1820    }
1821    
1822  =head3 display_table()  =head3 display_table()
1823    
1824  If available use the function specified here to display the "raw" observation.  If available use the function specified here to display the "raw" observation.

Legend:
Removed from v.1.33  
changed lines
  Added in v.1.34

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3