[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.58, Wed Apr 23 15:50:16 2008 UTC revision 1.60, Fri Jun 20 16:08:32 2008 UTC
# Line 5  Line 5 
5  use Data::Dumper;  use Data::Dumper;
6    
7  require Exporter;  require Exporter;
8  @EXPORT_OK = qw(get_objects, get_sims_objects);  @EXPORT_OK = qw(get_objects get_sims_objects);
9    
10  use WebColors;  use WebColors;
11  use WebConfig;  use WebConfig;
# Line 712  Line 712 
712        $sim_order = "id";        $sim_order = "id";
713      }      }
714    
715      my(@tmp, $id, $genome, @genomes, %sims);      my($id, $genome, @genomes, %sims);
716      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);
717      @tmp = grep { !($_->id2 =~ /^fig\|/ and $fig->is_deleted_fid($_->id2)) } @tmp;      @tmp = grep { !($_->id2 =~ /^fig\|/ and $fig->is_deleted_fid($_->id2)) } @tmp;
718      my ($dataset);      my ($dataset);
# Line 1757  Line 1757 
1757      my $hit_stop = $thing->hstop;      my $hit_stop = $thing->hstop;
1758      my $ln_query = $thing->qlength;      my $ln_query = $thing->qlength;
1759      my $ln_hit = $thing->hlength;      my $ln_hit = $thing->hlength;
1760      my $query_color = match_color($query_start, $query_stop, $ln_query, 1);  #    my $query_color = match_color($query_start, $query_stop, $ln_query, 1);
1761      my $hit_color = match_color($hit_start, $hit_stop, $ln_hit, 1);  #    my $hit_color = match_color($hit_start, $hit_stop, $ln_hit, 1);
1762        my $query_color = match_color($query_start, $query_stop, abs($query_stop-$query_start), 1);
1763        my $hit_color = match_color($hit_start, $hit_stop, abs($query_stop-$query_start), 1);
1764    
1765      my $tax_link = "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=" . $org_tax;      my $tax_link = "http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=" . $org_tax;
1766    
# Line 1766  Line 1768 
1768      my $line_config = { 'title' => "$organism [$org_tax]",      my $line_config = { 'title' => "$organism [$org_tax]",
1769                          'short_title' => "$abbrev_name",                          'short_title' => "$abbrev_name",
1770                          'title_link' => '$tax_link',                          'title_link' => '$tax_link',
1771                          'basepair_offset' => '0'                          'basepair_offset' => '0',
1772                            'no_middle_line' => '1'
1773                          };                          };
1774    
1775      # query sequence title      # query sequence title
# Line 1776  Line 1779 
1779      my $query_config = { 'title' => "Query",      my $query_config = { 'title' => "Query",
1780                           'short_title' => "Query",                           'short_title' => "Query",
1781                           'title_link' => "changeSimsLocation('$replace_id', 1)",                           'title_link' => "changeSimsLocation('$replace_id', 1)",
1782                           'basepair_offset' => '0'                           'basepair_offset' => '0',
1783                             'no_middle_line' => '1'
1784                           };                           };
1785      my $line_data = [];      my $line_data = [];
1786      my $query_data = [];      my $query_data = [];
# Line 2066  Line 2070 
2070  =cut  =cut
2071    
2072  sub display_table {  sub display_table {
2073      my ($self,$dataset, $scroll_list, $query_fid,$lineages,$fig) = @_;      my ($self,$dataset, $show_columns, $query_fid, $fig, $application, $cgi) = @_;
2074        my ($count, $data, $content, %box_column, $subsystems_column, $evidence_column, %e_identical, $function_color, @ids);
2075    
2076      my $data = [];      my $scroll_list;
2077      my $count = 0;      foreach my $col (@$show_columns){
2078      my $content;          push (@$scroll_list, $col->{key});
2079      my $cgi = new CGI;      }
     my @ids;  
     $lineages = $fig->taxonomy_list();  
2080    
2081        push (@ids, $query_fid);
2082      foreach my $thing (@$dataset) {      foreach my $thing (@$dataset) {
2083          next if ($thing->class ne "SIM");          next if ($thing->class ne "SIM");
2084          push (@ids, $thing->acc);          push (@ids, $thing->acc);
2085      }      }
2086    
2087      my (%box_column, %subsystems_column, %evidence_column, %e_identical, $function_color);      $lineages = $fig->taxonomy_list() if (grep /lineage/, @$scroll_list);
2088      my @attributes = $fig->get_attributes(\@ids);      my @attributes = $fig->get_attributes(\@ids) if ( (grep /evidence/, @$scroll_list) || (grep /(pfam|mw)/, @$scroll_list) );
2089    
2090      # get the column for the subsystems      # get the column for the subsystems
2091      %subsystems_column = &get_subsystems_column(\@ids,$fig);      $subsystems_column = &get_subsystems_column(\@ids,$fig,$cgi,'hash') if (grep /subsystem/, @$scroll_list);
2092    
2093      # get the column for the evidence codes      # get the column for the evidence codes
2094      %evidence_column = &get_evidence_column(\@ids, \@attributes,$fig);      $evidence_column = &get_evidence_column(\@ids, \@attributes, $fig, $cgi, 'hash') if (grep /^evidence$/, @$scroll_list);
2095    
2096      # get the column for pfam_domain      # get the column for pfam_domain
2097      %pfam_column = &get_pfam_column(\@ids, \@attributes,$fig);      $pfam_column = &get_attrb_column(\@ids, \@attributes, $fig, $cgi, 'pfam', 'PFAM', 'hash') if (grep /^pfam$/, @$scroll_list);
2098    
2099        # get the column for molecular weight
2100        $mw_column = &get_attrb_column(\@ids, \@attributes, $fig, $cgi, 'mw', 'molecular_weight', 'hash') if (grep /^mw$/, @$scroll_list);
2101    
2102        # get the column for organism's habitat
2103        my $habitat_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'habitat', 'Habitat', 'hash') if (grep /^habitat$/, @$scroll_list);
2104    
2105        # get the column for organism's temperature optimum
2106        my $temperature_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'temperature', 'Optimal_Temperature', 'hash') if (grep /^temperature$/, @$scroll_list);
2107    
2108        # get the column for organism's temperature range
2109        my $temperature_range_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'temp_range', 'Temperature_Range', 'hash') if (grep /^temp_range$/, @$scroll_list);
2110    
2111        # get the column for organism's oxygen requirement
2112        my $oxygen_req_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'oxygen', 'Oxygen_Requirement', 'hash') if (grep /^oxygen$/, @$scroll_list);
2113    
2114        # get the column for organism's pathogenicity
2115        my $pathogenic_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'pathogenic', 'Pathogenic', 'hash') if (grep /^pathogenic$/, @$scroll_list);
2116    
2117        # get the column for organism's pathogenicity host
2118        my $pathogenic_in_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'pathogenic_in', 'Pathogenic_In', 'hash') if (grep /^pathogenic_in$/, @$scroll_list);
2119    
2120        # get the column for organism's salinity
2121        my $salinity_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'salinity', 'Salinity', 'hash') if (grep /^salinity$/, @$scroll_list);
2122    
2123        # get the column for organism's motility
2124        my $motility_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'motility', 'Motility', 'hash') if (grep /^motility$/, @$scroll_list);
2125    
2126        # get the column for organism's gram stain
2127        my $gram_stain_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'gram_stain', 'Gram_Stain', 'hash') if (grep /^gram_stain$/, @$scroll_list);
2128    
2129        # get the column for organism's endospores
2130        my $endospores_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'endospores', 'Endospores', 'hash') if (grep /^endospores$/, @$scroll_list);
2131    
2132        # get the column for organism's shape
2133        my $shape_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'shape', 'Shape', 'hash') if (grep /^shape$/, @$scroll_list);
2134    
2135        # get the column for organism's disease
2136        my $disease_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'disease', 'Disease', 'hash') if (grep /^disease$/, @$scroll_list);
2137    
2138        # get the column for organism's disease
2139        my $gc_content_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'gc_content', 'GC_Content', 'hash') if (grep /^gc_content$/, @$scroll_list);
2140    
2141        # get the column for transmembrane domains
2142        my $transmembrane_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'transmembrane', 'Phobius::transmembrane', 'hash') if (grep /^transmembrane$/, @$scroll_list);
2143    
2144        # get the column for similar to human
2145        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);
2146    
2147        # get the column for signal peptide
2148        my $signal_peptide_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'signal_peptide', 'Phobius::signal', 'hash') if (grep /^signal_peptide$/, @$scroll_list);
2149    
2150        # get the column for transmembrane domains
2151        my $isoelectric_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'isoelectric', 'isoelectric_point', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2152    
2153        # get the column for conserved neighborhood
2154        my $cons_neigh_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'conserved_neighborhood', undef, 'hash') if (grep /^conserved_neighborhood$/, @$scroll_list);
2155    
2156        # get the column for cellular location
2157        my $cell_location_column = &get_attrb_column(\@ids, undef, $fig, $cgi, 'cellular_location', 'PSORT::', 'hash') if (grep /^isoelectric$/, @$scroll_list);
2158    
2159        # get the aliases
2160        my $alias_col;
2161        if ( (grep /asap_id/, @$scroll_list) || (grep /ncbi_id/, @$scroll_list) ||
2162             (grep /refseq_id/, @$scroll_list) || (grep /swissprot_id/, @$scroll_list) ||
2163             (grep /uniprot_id/, @$scroll_list) || (grep /tigr_id/, @$scroll_list) ||
2164             (grep /kegg_id/, @$scroll_list) || (grep /pir_id/, @$scroll_list) ||
2165             (grep /trembl_id/, @$scroll_list) || (grep /jgi_id/, @$scroll_list) ) {
2166            $alias_col = &get_db_aliases(\@ids,$fig,'all',$cgi,'hash');
2167        }
2168    
2169      # get the colors for the function cell      # get the colors for the function cell
2170      my $functions = $fig->function_of_bulk(\@ids,1);      my $functions = $fig->function_of_bulk(\@ids,1);
2171      $function_color = &get_function_color_cell($functions, $fig);      $functional_color = &get_function_color_cell($functions, $fig);
2172      my $query_function = $fig->function_of($query_fid);      my $query_function = $fig->function_of($query_fid);
2173    
2174      my %e_identical = &get_essentially_identical($query_fid,$dataset,$fig);      my %e_identical = &get_essentially_identical($query_fid,$dataset,$fig);
     my $alias_col = &get_aliases(\@ids,$fig);  
     #my $alias_col = {};  
2175    
2176      my $figfam_data = &FIG::get_figfams_data();      my $figfam_data = &FIG::get_figfams_data();
2177      my $figfams = new FFs($figfam_data);      my $figfams = new FFs($figfam_data);
2178    
2179      my $func_color_offset=0;      my $func_color_offset=0;
2180        unshift(@$dataset, $query_fid);
2181      foreach my $thing ( @$dataset){      foreach my $thing ( @$dataset){
2182            my ($id, $taxid, $iden, $ln1,$ln2,$b1,$b2,$e1,$e2,$d1,$d2,$color1,$color2,$reg1,$reg2);
2183            if ($thing eq $query_fid){
2184                $id = $thing;
2185                $taxid   = $fig->genome_of($id);
2186                $organism = $fig->genus_species($taxid);
2187                $current_function = $fig->function_of($id);
2188            }
2189            else{
2190          next if ($thing->class ne "SIM");          next if ($thing->class ne "SIM");
2191    
2192                $id      = $thing->acc;
2193                $evalue  = $thing->evalue;
2194                $taxid   = $fig->genome_of($id);
2195                $iden    = $thing->identity;
2196                $organism= $thing->organism;
2197                $ln1     = $thing->qlength;
2198                $ln2     = $thing->hlength;
2199                $b1      = $thing->qstart;
2200                $e1      = $thing->qstop;
2201                $b2      = $thing->hstart;
2202                $e2      = $thing->hstop;
2203                $d1      = abs($e1 - $b1) + 1;
2204                $d2      = abs($e2 - $b2) + 1;
2205                $color1  = match_color( $b1, $e1, $ln1 );
2206                $color2  = match_color( $b2, $e2, $ln2 );
2207                $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};
2208                $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};
2209                $current_function = $thing->function;
2210            }
2211    
2212          my $single_domain = [];          my $single_domain = [];
2213          $count++;          $count++;
2214    
         my $id      = $thing->acc;  
         my $taxid   = $fig->genome_of($id);  
         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 $color1  = match_color( $b1, $e1, $ln1 );  
         my $color2  = match_color( $b2, $e2, $ln2 );  
         my $reg1    = {'data'=> "$b1-$e1 (<b>$d1/$ln1</b>)", 'highlight' => $color1};  
         my $reg2    = {'data'=> "$b2-$e2 (<b>$d2/$ln2</b>)", 'highlight' => $color2};  
   
2215          # organisms cell          # organisms cell
2216          my ($org, $org_color) = $fig->org_and_color_of($id);          my ($org, $org_color) = $fig->org_and_color_of($id);
2217          my $org_cell = { 'data' =>  $thing->organism, 'highlight' => $org_color};          my $org_cell = { 'data' =>  $organism, 'highlight' => $org_color};
2218    
2219          # checkbox cell          # checkbox cell
2220          my ($box_cell,$tax);          my ($box_cell,$tax, $radio_cell);
2221          my $field_name = "tables_" . $id;          my $field_name = "tables_" . $id;
2222          my $pair_name = "visual_" . $id;          my $pair_name = "visual_" . $id;
2223          my $cell_name = "cell_". $id;          my $cell_name = "cell_". $id;
2224          my $replace_id = $id;          my $replace_id = $id;
2225          $replace_id =~ s/\|/_/ig;          $replace_id =~ s/\|/_/ig;
2226            my $white = '#ffffff';
2227            $white = '#999966' if ($id eq $query_fid);
2228            $org_color = '#999966' if ($id eq $query_fid);
2229          my $anchor_name = "anchor_". $replace_id;          my $anchor_name = "anchor_". $replace_id;
2230          if ($id =~ /^fig\|/){          if ($id =~ /^fig\|/){
2231            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');">);            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');">);
2232              my $radio = qq(<input type="radio" name="function_select" value="$id" id="$field_name" >);
2233            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};            $box_cell = { 'data'=>$box, 'highlight'=>$org_color};
2234            ($tax) = ($id) =~ /fig\|(.*?)\./;            $radio_cell = { 'data'=>$radio, 'highlight'=>$white};
2235              $tax = $fig->genome_of($id);
2236          }          }
2237          else{          else{
2238            my $box = qq(<a name="$anchor_name"></a>);            my $box = qq(<a name="$anchor_name"></a>);
# Line 2151  Line 2242 
2242          # get the linked fig id          # get the linked fig id
2243          my $anchor_link = "graph_" . $replace_id;          my $anchor_link = "graph_" . $replace_id;
2244          my $fig_data =  "<table><tr><td>" . &HTML::set_prot_links($cgi,$id) . "</td>" . "&nbsp;" x 2;          my $fig_data =  "<table><tr><td>" . &HTML::set_prot_links($cgi,$id) . "</td>" . "&nbsp;" x 2;
2245          $fig_data .= qq(<td><img height='10px' width='20px' src='./Html/anchor_alignment' alt='View Graphic View of Alignment' onClick='changeSimsLocation("$anchor_link", 0)'/></td></tr></table>);          $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>);
2246          my $fig_col = {'data'=> $fig_data,          my $fig_col = {'data'=> $fig_data,
2247                         'highlight'=>"#ffffff"};                         'highlight'=>$white};
2248    
2249      my $replace_id = $peg;          $replace_id = $peg;
2250      $replace_id =~ s/\|/_/ig;      $replace_id =~ s/\|/_/ig;
2251      my $anchor_name = "anchor_". $replace_id;          $anchor_name = "anchor_". $replace_id;
2252      my $query_config = { 'title' => "Query",      my $query_config = { 'title' => "Query",
2253                           'short_title' => "Query",                           'short_title' => "Query",
2254                           'title_link' => "changeSimsLocation('$replace_id')",                           'title_link' => "changeSimsLocation('$replace_id')",
2255                           'basepair_offset' => '0'                           'basepair_offset' => '0'
2256                           };                           };
2257    
2258          # function cell          # function cell
2259          my $function_cell_colors = {0=>"#ffffff", 1=>"#eeccaa", 2=>"#ffaaaa",          my $function_cell_colors = {0=>"#ffffff", 1=>"#eeccaa", 2=>"#ffaaaa",
2260                                      3=>"#ffcc66", 4=>"#ffff00", 5=>"#aaffaa",                                      3=>"#ffcc66", 4=>"#ffff00", 5=>"#aaffaa",
2261                                      6=>"#bbbbff", 7=>"#ffaaff", 8=>"#dddddd"};                                      6=>"#bbbbff", 7=>"#ffaaff", 8=>"#dddddd"};
2262          my $current_function =  $thing->function;  
2263          my $function_color = $function_cell_colors->{ $function_color->{$current_function} - $func_color_offset};          my $function_color;
2264            if ( (defined($functional_color->{$query_function})) && ($functional_color->{$query_function} == 1) ){
2265                $function_color = $function_cell_colors->{ $functional_color->{$current_function} - $func_color_offset};
2266            }
2267            else{
2268                $function_color = $function_cell_colors->{ $functional_color->{$current_function}};
2269            }
2270          my $function_cell;          my $function_cell;
2271          if ($current_function){          if ($current_function){
2272            if ($current_function eq $query_function){            if ($current_function eq $query_function){
# Line 2183  Line 2281 
2281            $function_cell = {'data'=>$current_function,'highlight' => "#dddddd"};            $function_cell = {'data'=>$current_function,'highlight' => "#dddddd"};
2282          }          }
2283    
2284          push (@$single_domain, $box_cell, $fig_col, {'data'=> $thing->evalue, 'highlight'=>"#ffffff"},          if ($id eq $query_fid){
2285                push (@$single_domain, $box_cell, {'data'=>qq~<i>Query Sequence: </i>~  . qq~<b>$id</b>~ , 'highlight'=>$white}, {'data'=> 'n/a', 'highlight'=>$white},
2286                      {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white}, {'data'=>'n/a', 'highlight'=>$white},
2287                      {'data' =>  $organism, 'highlight'=> $white}, {'data'=>$current_function, 'highlight'=>$white});  # permanent columns
2288            }
2289            else{
2290                push (@$single_domain, $box_cell, $fig_col, {'data'=> $evalue, 'highlight'=>"#ffffff"},
2291                 {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell);   # permanent columns                 {'data'=>"$iden\%", 'highlight'=>"#ffffff"}, $reg1, $reg2, $org_cell, $function_cell);   # permanent columns
2292            }
2293    
2294            if ( ( $application->session->user) ){
2295                if ( ($application->session->user->login) && ($application->session->user->login eq "arodri")){
2296                    push (@$single_domain,$radio_cell);
2297                }
2298            }
2299    
2300          my ($ff) = $figfams->families_containing_peg($id);          my ($ff) = $figfams->families_containing_peg($id);
2301    
2302          foreach my $col (sort keys %$scroll_list){          foreach my $col (@$scroll_list){
2303              if ($col =~ /associated_subsystem/)          {push(@$single_domain,{'data'=>$subsystems_column{$id},'highlight'=>"#ffffff"});}              if ($id eq $query_fid) { $highlight_color = "#999966"; }
2304              elsif ($col =~ /evidence/)                   {push(@$single_domain,{'data'=>$evidence_column{$id},'highlight'=>"#ffffff"});}              else { $highlight_color = "#ffffff"; }
2305              elsif ($col =~ /pfam_domains/)               {push(@$single_domain,{'data'=>$pfam_column{$id},'highlight'=>"#ffffff"});}  
2306              elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>"#ffffff"});}              if ($col =~ /subsystem/)                     {push(@$single_domain,{'data'=>$subsystems_column->{$id},'highlight'=>$highlight_color});}
2307              elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>"#ffffff"});}              elsif ($col =~ /evidence/)                   {push(@$single_domain,{'data'=>$evidence_column->{$id},'highlight'=>$highlight_color});}
2308              elsif ($col =~ /swissprot_id/)               {push(@$single_domain,{'data'=>$alias_col->{$id}->{"SwissProt"},'highlight'=>"#ffffff"});}              elsif ($col =~ /pfam/)                       {push(@$single_domain,{'data'=>$pfam_column->{$id},'highlight'=>$highlight_color});}
2309              elsif ($col =~ /uniprot_id/)                 {push(@$single_domain,{'data'=>$alias_col->{$id}->{"UniProt"},'highlight'=>"#ffffff"});}              elsif ($col =~ /mw/)                         {push(@$single_domain,{'data'=>$mw_column->{$id},'highlight'=>$highlight_color});}
2310              elsif ($col =~ /tigr_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TIGR"},'highlight'=>"#ffffff"});}              elsif ($col =~ /habitat/)                    {push(@$single_domain,{'data'=>$habitat_column->{$id},'highlight'=>$highlight_color});}
2311              elsif ($col =~ /pir_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"PIR"},'highlight'=>"#ffffff"});}              elsif ($col =~ /temperature/)                {push(@$single_domain,{'data'=>$temperature_column->{$id},'highlight'=>$highlight_color});}
2312              elsif ($col =~ /kegg_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"KEGG"},'highlight'=>"#ffffff"});}              elsif ($col =~ /temp_range/)                 {push(@$single_domain,{'data'=>$temperature_range_column->{$id},'highlight'=>$highlight_color});}
2313              #elsif ($col =~ /trembl_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TrEMBL"},'highlight'=>"#ffffff"});}              elsif ($col =~ /oxygen/)                     {push(@$single_domain,{'data'=>$oxygen_req_column->{$id},'highlight'=>$highlight_color});}
2314              elsif ($col =~ /asap_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"ASAP"},'highlight'=>"#ffffff"});}              elsif ($col =~ /^pathogenic$/)               {push(@$single_domain,{'data'=>$pathogenic_column->{$id},'highlight'=>$highlight_color});}
2315              elsif ($col =~ /jgi_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"JGI"},'highlight'=>"#ffffff"});}              elsif ($col =~ /^pathogenic_in$/)            {push(@$single_domain,{'data'=>$pathogenic_in_column->{$id},'highlight'=>$highlight_color});}
2316              elsif ($col =~ /taxonomy/)                   {push(@$single_domain,{'data'=>$lineages->{$tax},'highlight'=>"#ffffff"});}              elsif ($col =~ /salinity/)                   {push(@$single_domain,{'data'=>$salinity_column->{$id},'highlight'=>$highlight_color});}
2317              #elsif ($col =~ /taxonomy/)                   {push(@$single_domain,$fig->taxonomy_of($taxid));}              elsif ($col =~ /motility/)                   {push(@$single_domain,{'data'=>$motility_column->{$id},'highlight'=>$highlight_color});}
2318              #elsif ($col =~ /figfam/)                     {push(@$single_domain,"<a href='?page=FigFamViewer&figfam=" . $ff_hash->{$id} . "' target='_new'>" . $ff_hash->{$id} . "</a>");}              elsif ($col =~ /gram_stain/)                 {push(@$single_domain,{'data'=>$gram_stain_column->{$id},'highlight'=>$highlight_color});}
2319              elsif ($col =~ /figfam/)                     {push(@$single_domain,{'data'=>"<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>",'highlight'=>"#ffffff"});}              elsif ($col =~ /endospores/)                 {push(@$single_domain,{'data'=>$endospores_column->{$id},'highlight'=>$highlight_color});}
2320                elsif ($col =~ /shape/)                      {push(@$single_domain,{'data'=>$shape_column->{$id},'highlight'=>$highlight_color});}
2321                elsif ($col =~ /disease/)                    {push(@$single_domain,{'data'=>$disease_column->{$id},'highlight'=>$highlight_color});}
2322                elsif ($col =~ /gc_content/)                 {push(@$single_domain,{'data'=>$gc_content_column->{$id},'highlight'=>$highlight_color});}
2323                elsif ($col =~ /transmembrane/)              {push(@$single_domain,{'data'=>$transmembrane_column->{$id},'highlight'=>$highlight_color});}
2324                elsif ($col =~ /signal_peptide/)             {push(@$single_domain,{'data'=>$signal_peptide_column->{$id},'highlight'=>$highlight_color});}
2325                elsif ($col =~ /isoelectric/)                {push(@$single_domain,{'data'=>$isoelectric_column->{$id},'highlight'=>$highlight_color});}
2326                elsif ($col =~ /conserved_neighborhood/)     {push(@$single_domain,{'data'=>$cons_neigh_column->{$id},'highlight'=>$highlight_color});}
2327                elsif ($col =~ /cellular_location/)          {push(@$single_domain,{'data'=>$cell_location_column->{$id},'highlight'=>$highlight_color});}
2328                elsif ($col =~ /ncbi_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"NCBI"},'highlight'=>$highlight_color});}
2329                elsif ($col =~ /refseq_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"RefSeq"},'highlight'=>$highlight_color});}
2330                elsif ($col =~ /swissprot_id/)               {push(@$single_domain,{'data'=>$alias_col->{$id}->{"SwissProt"},'highlight'=>$highlight_color});}
2331                elsif ($col =~ /uniprot_id/)                 {push(@$single_domain,{'data'=>$alias_col->{$id}->{"UniProt"},'highlight'=>$highlight_color});}
2332                elsif ($col =~ /tigr_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TIGR"},'highlight'=>$highlight_color});}
2333                elsif ($col =~ /pir_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"PIR"},'highlight'=>$highlight_color});}
2334                elsif ($col =~ /kegg_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"KEGG"},'highlight'=>$highlight_color});}
2335                elsif ($col =~ /trembl_id/)                  {push(@$single_domain,{'data'=>$alias_col->{$id}->{"TrEMBL"},'highlight'=>$highlight_color});}
2336                elsif ($col =~ /asap_id/)                    {push(@$single_domain,{'data'=>$alias_col->{$id}->{"ASAP"},'highlight'=>$highlight_color});}
2337                elsif ($col =~ /jgi_id/)                     {push(@$single_domain,{'data'=>$alias_col->{$id}->{"JGI"},'highlight'=>$highlight_color});}
2338                elsif ($col =~ /lineage/)                   {push(@$single_domain,{'data'=>$lineages->{$tax},'highlight'=>$highlight_color});}
2339                elsif ($col =~ /figfam/)                     {push(@$single_domain,{'data'=>"<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>",'highlight'=>$highlight_color});}
2340          }          }
2341          push(@$data,$single_domain);          push(@$data,$single_domain);
2342      }      }
# Line 2215  Line 2346 
2346      else{      else{
2347          $content = "<p>This PEG does not have any similarities</p>";          $content = "<p>This PEG does not have any similarities</p>";
2348      }      }
2349        shift(@$dataset);
2350      return ($content);      return ($content);
2351  }  }
2352    
# Line 2230  Line 2362 
2362      return (%column);      return (%column);
2363  }  }
2364    
2365    sub get_figfam_column{
2366        my ($ids, $fig, $cgi) = @_;
2367        my $column;
2368    
2369        my $figfam_data = &FIG::get_figfams_data();
2370        my $figfams = new FFs($figfam_data);
2371    
2372        foreach my $id (@$ids){
2373            my ($ff) =  $figfams->families_containing_peg($id);
2374            if ($ff){
2375                push (@$column, "<a href='?page=FigFamViewer&figfam=" . $ff . "' target='_new'>" . $ff . "</a>");
2376            }
2377            else{
2378                push (@$column, " ");
2379            }
2380        }
2381    
2382        return $column;
2383    }
2384    
2385  sub get_subsystems_column{  sub get_subsystems_column{
2386      my ($ids,$fig) = @_;      my ($ids,$fig,$cgi,$returnType) = @_;
2387    
     #my $fig = new FIG;  
     my $cgi = new CGI;  
2388      my %in_subs  = $fig->subsystems_for_pegs($ids);      my %in_subs  = $fig->subsystems_for_pegs($ids);
2389      my %column;      my ($column, $ss);
2390      foreach my $id (@$ids){      foreach my $id (@$ids){
2391          my @in_sub = @{$in_subs{$id}} if (defined $in_subs{$id});          my @in_sub = @{$in_subs{$id}} if (defined $in_subs{$id});
2392          my @subsystems;          my @subsystems;
2393    
2394          if (@in_sub > 0) {          if (@in_sub > 0) {
2395              foreach my $array(@in_sub){              foreach my $array(@in_sub){
2396                  my $ss = $$array[0];                  my $ss = $array->[0];
2397                  $ss =~ s/_/ /ig;                  $ss =~ s/_/ /ig;
2398                  push (@subsystems, "-" . $ss);                  push (@subsystems, "-" . $ss);
2399              }              }
2400              my $in_sub_line = join ("<br>", @subsystems);              my $in_sub_line = join ("<br>", @subsystems);
2401              $column{$id} = $in_sub_line;              $ss->{$id} = $in_sub_line;
2402          } else {          } else {
2403              $column{$id} = "&nbsp;";              $ss->{$id} = "None added";
2404          }          }
2405            push (@$column, $ss->{$id});
2406      }      }
2407      return (%column);  
2408        if ($returnType eq 'hash') { return $ss; }
2409        elsif ($returnType eq 'array') { return $column; }
2410    }
2411    
2412    sub get_lineage_column{
2413        my ($ids, $fig, $cgi) = @_;
2414    
2415        my $lineages = $fig->taxonomy_list();
2416    
2417        foreach my $id (@$ids){
2418            my $genome = $fig->genome_of($id);
2419            if ($lineages->{$genome}){
2420    #           push (@$column, qq~<table style='border-style:hidden;'><tr><td style='background-color: #ffffff;'>~ . $lineages->{$genome} . qq~</td></tr</table>~);
2421                push (@$column, $lineages->{$genome});
2422            }
2423            else{
2424                push (@$column, " ");
2425            }
2426        }
2427        return $column;
2428  }  }
2429    
2430  sub match_color {  sub match_color {
# Line 2373  Line 2544 
2544    
2545    
2546  sub get_evidence_column{  sub get_evidence_column{
2547      my ($ids, $attributes,$fig) = @_;      my ($ids,$attributes,$fig,$cgi,$returnType) = @_;
2548      #my $fig = new FIG;      my ($column, $code_attributes);
2549      my $cgi = new CGI;  
2550      my (%column, %code_attributes);      if (! defined $attributes) {
2551            my @attributes_array = $fig->get_attributes($ids);
2552            $attributes = \@attributes_array;
2553        }
2554    
2555      my @codes = grep { $_->[1] =~ /^evidence_code/i } @$attributes;      my @codes = grep { $_->[1] =~ /^evidence_code/i } @$attributes;
2556      foreach my $key (@codes){      foreach my $key (@codes){
2557          push (@{$code_attributes{$$key[0]}}, $key);          push (@{$code_attributes->{$key->[0]}}, $key);
2558      }      }
2559    
2560      foreach my $id (@$ids){      foreach my $id (@$ids){
2561          # add evidence code with tool tip          # add evidence code with tool tip
2562          my $ev_codes=" &nbsp; ";          my $ev_codes=" &nbsp; ";
2563    
2564          my @codes = @{$code_attributes{$id}} if (defined @{$code_attributes{$id}});          my @codes = @{$code_attributes->{$id}} if (defined @{$code_attributes->{$id}});
2565          my @ev_codes = ();          my @ev_codes = ();
2566          foreach my $code (@codes) {          foreach my $code (@codes) {
2567              my $pretty_code = $code->[2];              my $pretty_code = $code->[2];
# Line 2405  Line 2579 
2579                                  {                                  {
2580                                      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));
2581          }          }
2582          $column{$id}=$ev_codes;  
2583            if ($returnType eq 'hash') { $column->{$id}=$ev_codes; }
2584            elsif ($returnType eq 'array') { push (@$column, $ev_codes); }
2585      }      }
2586      return (%column);      return $column;
2587  }  }
2588    
2589  sub get_pfam_column{  sub get_attrb_column{
2590      my ($ids, $attributes,$fig) = @_;      my ($ids, $attributes, $fig, $cgi, $colName, $attrbName, $returnType) = @_;
2591      #my $fig = new FIG;  
2592      my $cgi = new CGI;      my ($column, %code_attributes, %attribute_locations);
     my (%column, %code_attributes, %attribute_locations);  
2593      my $dbmaster = DBMaster->new(-database =>'Ontology',      my $dbmaster = DBMaster->new(-database =>'Ontology',
2594                                  -host     => $WebConfig::DBHOST,                                  -host     => $WebConfig::DBHOST,
2595                                  -user     => $WebConfig::DBUSER,                                  -user     => $WebConfig::DBUSER,
2596                                  -password => $WebConfig::DBPWD);                                  -password => $WebConfig::DBPWD);
2597    
2598      my @codes = grep { $_->[1] =~ /^PFAM/i } @$attributes;      if ($colName eq "pfam"){
2599            if (! defined $attributes) {
2600                my @attributes_array = $fig->get_attributes($ids);
2601                $attributes = \@attributes_array;
2602            }
2603    
2604            my @codes = grep { $_->[1] =~ /^$attrbName/i } @$attributes;
2605      foreach my $key (@codes){      foreach my $key (@codes){
2606          my $name = $key->[1];          my $name = $key->[1];
2607          if ($name =~ /_/){          if ($name =~ /_/){
# Line 2431  Line 2612 
2612      }      }
2613    
2614      foreach my $id (@$ids){      foreach my $id (@$ids){
2615          # add evidence code              # add pfam code
2616          my $pfam_codes=" &nbsp; ";          my $pfam_codes=" &nbsp; ";
2617          my @pfam_codes = "";          my @pfam_codes = "";
2618          my %description_codes;          my %description_codes;
# Line 2466  Line 2647 
2647                  }                  }
2648                  else {                  else {
2649                      my $description = $dbmaster->pfam->get_objects( { 'id' => $parts[1] } );                      my $description = $dbmaster->pfam->get_objects( { 'id' => $parts[1] } );
2650                      $description_codes{$parts[1]} = ${$$description[0]}{term};                          $description_codes{$parts[1]} = $description->[0]->{term};
2651                      push(@pfam_codes, "$pfam_link ($locations)");                      push(@pfam_codes, "$pfam_link ($locations)");
2652                  }                  }
2653              }              }
2654    
2655                    if ($returnType eq 'hash') { $column->{$id} = join("<br><br>", @pfam_codes); }
2656                    elsif ($returnType eq 'array') { push (@$column, join("<br><br>", @pfam_codes)); }
2657                }
2658            }
2659        }
2660        elsif ($colName eq 'cellular_location'){
2661            if (! defined $attributes) {
2662                my @attributes_array = $fig->get_attributes($ids);
2663                $attributes = \@attributes_array;
2664          }          }
2665    
2666          $column{$id}=join("<br><br>", @pfam_codes);          my @codes = grep { $_->[1] =~ /^$attrbName/i } @$attributes;
2667            foreach my $key (@codes){
2668                my ($loc) = ($key->[1]) =~ /::(.*)/;
2669                my ($new_loc, @all);
2670                @all = split (//, $loc);
2671                my $count = 0;
2672                foreach my $i (@all){
2673                    if ( ($i eq uc($i)) && ($count > 0) ){
2674                        $new_loc .= " " . $i;
2675                    }
2676                    else{
2677                        $new_loc .= $i;
2678                    }
2679                    $count++;
2680                }
2681                push (@{$code_attributes{$key->[0]}}, [$new_loc, $key->[2]]);
2682            }
2683    
2684            foreach my $id (@$ids){
2685                my (@values, $entry);
2686                #@values = (" ");
2687                if (defined @{$code_attributes{$id}}){
2688                    my @ncodes = @{$code_attributes{$id}};
2689                    foreach my $code (@ncodes){
2690                        push (@values, $code->[0] . ", " . $code->[1]);
2691                    }
2692                }
2693                else{
2694                    @values = ("Not available");
2695                }
2696    
2697                if ($returnType eq 'hash') { $column->{$id} = join ("<BR>", @values); }
2698                elsif ($returnType eq 'array') { push (@$column, join ("<BR>", @values)); }
2699            }
2700        }
2701        elsif ( ($colName eq 'mw') || ($colName eq 'transmembrane') || ($colName eq 'similar_to_human') ||
2702                ($colName eq 'signal_peptide') || ($colName eq 'isoelectric') ){
2703            if (! defined $attributes) {
2704                my @attributes_array = $fig->get_attributes($ids);
2705                $attributes = \@attributes_array;
2706            }
2707    
2708            my @codes = grep { $_->[1] =~ /^$attrbName/i } @$attributes;
2709            foreach my $key (@codes){
2710                push (@{$code_attributes{$key->[0]}}, $key->[2]);
2711            }
2712    
2713            foreach my $id (@$ids){
2714                my (@values, $entry);
2715                #@values = (" ");
2716                if (defined @{$code_attributes{$id}}){
2717                    my @ncodes = @{$code_attributes{$id}};
2718                    foreach my $code (@ncodes){
2719                        push (@values, $code);
2720                    }
2721                }
2722                else{
2723                    @values = ("Not available");
2724                }
2725    
2726                if ($returnType eq 'hash') { $column->{$id} = join ("<BR>", @values); }
2727                elsif ($returnType eq 'array') { push (@$column, join ("<BR>", @values)); }
2728            }
2729        }
2730        elsif ( ($colName eq 'habitat') || ($colName eq 'temperature') || ($colName eq 'temp_range') ||
2731                ($colName eq 'oxygen') || ($colName eq 'pathogenic') || ($colName eq 'pathogenic_in') ||
2732                ($colName eq 'salinity') || ($colName eq 'motility') || ($colName eq 'gram_stain') ||
2733                ($colName eq 'endospores') || ($colName eq 'shape') || ($colName eq 'disease') ||
2734                ($colName eq 'gc_content') ) {
2735            if (! defined $attributes) {
2736                my @attributes_array = $fig->get_attributes(undef,$attrbName);
2737                $attributes = \@attributes_array;
2738            }
2739    
2740            my $genomes_with_phenotype;
2741            foreach my $attribute (@$attributes){
2742                my $genome = $attribute->[0];
2743                $genomes_with_phenotype->{$genome} = $attribute->[2];
2744            }
2745    
2746            foreach my $id (@$ids){
2747                my $genome = $fig->genome_of($id);
2748                my @values = (' ');
2749                if (defined $genomes_with_phenotype->{$genome}){
2750                    push (@values, $genomes_with_phenotype->{$genome});
2751                }
2752                if ($returnType eq 'hash') { $column->{$id} = join ("<BR>", @values); }
2753                elsif ($returnType eq 'array') { push (@$column, join ("<BR>", @values)); }
2754            }
2755      }      }
     return (%column);  
2756    
2757        return $column;
2758  }  }
2759    
 sub get_aliases {  
     my ($ids,$fig) = @_;  
2760    
2761    sub get_db_aliases {
2762        my ($ids,$fig,$db,$cgi,$returnType) = @_;
2763    
2764        my $db_array;
2765      my $all_aliases = $fig->feature_aliases_bulk($ids);      my $all_aliases = $fig->feature_aliases_bulk($ids);
2766      foreach my $id (@$ids){      foreach my $id (@$ids){
2767          foreach my $alias (@{$$all_aliases{$id}}){          foreach my $alias (@{$$all_aliases{$id}}){
2768              my $id_db = &Observation::get_database($alias);              my $id_db = &Observation::get_database($alias);
2769              next if ($aliases->{$id}->{$id_db});              next if ( ($id_db ne $db) && ($db ne 'all') );
2770                next if ($aliases->{$id}->{$db});
2771              $aliases->{$id}->{$id_db} = &HTML::set_prot_links($cgi,$alias);              $aliases->{$id}->{$id_db} = &HTML::set_prot_links($cgi,$alias);
2772          }          }
2773            if (!defined( $aliases->{$id}->{$db})){
2774                $aliases->{$id}->{$db} = " ";
2775      }      }
2776      return ($aliases);          #push (@$db_array, {'data'=>  $aliases->{$id}->{$db},'highlight'=>"#ffffff"});
2777            push (@$db_array, $aliases->{$id}->{$db});
2778  }  }
2779    
2780        if ($returnType eq 'hash') { return $aliases; }
2781        elsif ($returnType eq 'array') { return $db_array; }
2782    }
2783    
2784    
2785    
2786  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; $_ }
2787    
2788  sub color {  sub color {
# Line 2930  Line 3221 
3221      my $cgi = new CGI;      my $cgi = new CGI;
3222      my $count = 0;      my $count = 0;
3223      my $peg_array = [];      my $peg_array = [];
3224      my (%evidence_column, %subsystems_column,  %e_identical);      my ($evidence_column, $subsystems_column,  %e_identical);
3225    
3226      if (@$dataset != 1){      if (@$dataset != 1){
3227          foreach my $thing (@$dataset){          foreach my $thing (@$dataset){
# Line 2939  Line 3230 
3230              }              }
3231          }          }
3232          # get the column for the evidence codes          # get the column for the evidence codes
3233          %evidence_column = &Observation::Sims::get_evidence_column($peg_array);          $evidence_column = &Observation::Sims::get_evidence_column($peg_array, undef, $fig, $cgi, 'hash');
3234    
3235          # get the column for the subsystems          # get the column for the subsystems
3236          %subsystems_column = &Observation::Sims::get_subsystems_column($peg_array,$fig);          $subsystems_column = &Observation::Sims::get_subsystems_column($peg_array,$fig, $cgi, 'array');
3237    
3238          # get essentially identical seqs          # get essentially identical seqs
3239          %e_identical = &Observation::Sims::get_essentially_identical($mypeg,$dataset,$fig);          %e_identical = &Observation::Sims::get_essentially_identical($mypeg,$dataset,$fig);
# Line 2971  Line 3262 
3262    
3263          push(@$row_data,$id_cell);          push(@$row_data,$id_cell);
3264          push(@$row_data,$org);          push(@$row_data,$org);
3265          push(@$row_data, $subsystems_column{$id}) if ($mypeg ne $id);          push(@$row_data, $subsystems_column->{$id}) if ($mypeg ne $id);
3266          push(@$row_data, $evidence_column{$id}) if ($mypeg ne $id);          push(@$row_data, $evidence_column->{$id}) if ($mypeg ne $id);
3267          push(@$row_data, $fig->translation_length($id));          push(@$row_data, $fig->translation_length($id));
3268          push(@$row_data,$function_cell);          push(@$row_data,$function_cell);
3269          push(@$all_rows,$row_data);          push(@$all_rows,$row_data);

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3