[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.24, Tue Jul 10 20:11:38 2007 UTC revision 1.25, Wed Jul 11 15:17:49 2007 UTC
# Line 1305  Line 1305 
1305      return $self;      return $self;
1306  }  }
1307    
1308    =head3 display()
1309    
1310    If available use the function specified here to display a graphical observation.
1311    This code will display a graphical view of the similarities using the genome drawer object
1312    
1313    =cut
1314    
1315    sub display {
1316        my ($self,$gd) = @_;
1317    
1318        my $fig = new FIG;
1319        my $peg = $self->acc;
1320    
1321        my $organism = $self->organism;
1322        my $function = $self->function;
1323        my $abbrev_name = $fig->abbrev($organism);
1324        my $align_start = $self->qstart;
1325        my $align_stop = $self->qstop;
1326        my $hit_start = $self->hstart;
1327        my $hit_stop = $self->hstop;
1328    
1329        my $line_config = { 'title' => "$organism",
1330                            'short_title' => "$abbrev_name",
1331                            'basepair_offset' => '0'
1332                            };
1333    
1334        my $line_data = [];
1335    
1336        my $element_hash;
1337        my $links_list = [];
1338        my $descriptions = [];
1339    
1340        # get subsystem information
1341        my $url_link = "http://seed-viewer.theseed.org/index.cgi?action=ShowAnnotation&prot=".$peg;
1342    
1343        my $link;
1344        $link = {"link_title" => $peg,
1345                 "link" => $url_link};
1346        push(@$links_list,$link);
1347    
1348        my @subsystems = $fig->peg_to_subsystems($peg);
1349        foreach my $subsystem (@subsystems){
1350            my $link;
1351            $link = {"link" => "http://seed-viewer.theseed.org/index.cgi?action=ShowSubsystem&subsystem_name=$subsystem",
1352                     "link_title" => $subsystem};
1353            push(@$links_list,$link);
1354        }
1355    
1356        my $description_function;
1357        $description_function = {"title" => "function",
1358                                 "value" => $function};
1359        push(@$descriptions,$description_function);
1360    
1361        my $description_ss;
1362        my $ss_string = join (",", @subsystems);
1363        $description_ss = {"title" => "subsystems",
1364                           "value" => $ss_string};
1365        push(@$descriptions,$description_ss);
1366    
1367        my $description_loc;
1368        $description_loc = {"title" => "location start",
1369                            "value" => $hit_start};
1370        push(@$descriptions, $description_loc);
1371    
1372        $description_loc = {"title" => "location stop",
1373                            "value" => $hit_stop};
1374        push(@$descriptions, $description_loc);
1375    
1376        my $color;
1377        my $evalue = $self->evalue;
1378        while ($evalue =~ /-0/)
1379        {
1380            my ($chunk1, $chunk2) = split(/-/, $evalue);
1381            $chunk2 = substr($chunk2,1);
1382            $evalue = $chunk1 . "-" . $chunk2;
1383        }
1384    
1385        $color = 1;
1386    
1387        my $description_eval = {"title" => "E-Value",
1388                                "value" => $evalue};
1389        push(@$descriptions, $description_eval);
1390    
1391        my $identity = $self->identity;
1392        my $description_identity = {"title" => "Identity",
1393                                    "value" => $identity};
1394        push(@$descriptions, $description_identity);
1395    
1396        $element_hash = {
1397            "title" => $peg,
1398            "start" => $align_start,
1399            "end" =>  $align_stop,
1400            "type"=> 'box',
1401            "color"=> $color,
1402            "zlayer" => "2",
1403            "links_list" => $links_list,
1404            "description" => $descriptions
1405            };
1406        push(@$line_data,$element_hash);
1407        $gd->add_line($line_data, $line_config);
1408    
1409        return ($gd);
1410    
1411    }
1412    
1413  =head3 display_table()  =head3 display_table()
1414    
1415  If available use the function specified here to display the "raw" observation.  If available use the function specified here to display the "raw" observation.
# Line 1464  Line 1569 
1569          $region_start = $end-4000;          $region_start = $end-4000;
1570          $region_end = $beg+4000;          $region_end = $beg+4000;
1571          $offset = ($3+(($2-$3)/2))-($gd_window_size/2);          $offset = ($3+(($2-$3)/2))-($gd_window_size/2);
1572          $reverse_flag{$target_genome} = 1;          $reverse_flag{$target_genome} = $fid;
1573      }      }
1574    
1575      # call genes in region      # call genes in region
# Line 1475  Line 1580 
1580    
1581      my %all_genes;      my %all_genes;
1582      my %all_genomes;      my %all_genomes;
1583      foreach my $feature (@$target_gene_features){ $all_genes{$feature} = 1;}      foreach my $feature (@$target_gene_features){ $all_genes{$feature} = $fid;}
1584    
1585      if ($compare_or_coupling eq "diverse")      if ($compare_or_coupling eq "diverse")
1586      {      {
# Line 1506  Line 1611 
1611                      $pair_region_start = $pair_end-4000;                      $pair_region_start = $pair_end-4000;
1612                      $pair_region_stop = $pair_beg+4000;                      $pair_region_stop = $pair_beg+4000;
1613                      $offset = ($3+(($2-$3)/2))-($gd_window_size/2);                      $offset = ($3+(($2-$3)/2))-($gd_window_size/2);
1614                      $reverse_flag{$pair_genome} = 1;                      $reverse_flag{$pair_genome} = $peg1;
1615                  }                  }
1616    
1617                  push (@start_array_region, $offset);                  push (@start_array_region, $offset);
# Line 1514  Line 1619 
1619                  $all_genomes{$pair_genome} = 1;                  $all_genomes{$pair_genome} = 1;
1620                  my ($pair_features) = $fig->genes_in_region($pair_genome, $pair_contig, $pair_region_start, $pair_region_stop);                  my ($pair_features) = $fig->genes_in_region($pair_genome, $pair_contig, $pair_region_start, $pair_region_stop);
1621                  push(@$all_regions,$pair_features);                  push(@$all_regions,$pair_features);
1622                  foreach my $pair_feature (@$pair_features){ $all_genes{$pair_feature} = 1;}                  foreach my $pair_feature (@$pair_features){ $all_genes{$pair_feature} = $peg1;}
1623              }              }
1624              $coup_count++;              $coup_count++;
1625          }          }
# Line 1566  Line 1671 
1671                          $pair_region_start = $pair_end-4000;                          $pair_region_start = $pair_end-4000;
1672                          $pair_region_stop = $pair_beg+4000;                          $pair_region_stop = $pair_beg+4000;
1673                          $offset = ($3+(($2-$3)/2))-($gd_window_size/2);                          $offset = ($3+(($2-$3)/2))-($gd_window_size/2);
1674                          $reverse_flag{$pair_genome} = 1;                          $reverse_flag{$pair_genome} = $peg1;
1675                      }                      }
1676    
1677                      push (@start_array_region, $offset);                      push (@start_array_region, $offset);
1678                      $all_genomes{$pair_genome} = 1;                      $all_genomes{$pair_genome} = 1;
1679                      my ($pair_features) = $fig->genes_in_region($pair_genome, $pair_contig, $pair_region_start, $pair_region_stop);                      my ($pair_features) = $fig->genes_in_region($pair_genome, $pair_contig, $pair_region_start, $pair_region_stop);
1680                      push(@$all_regions,$pair_features);                      push(@$all_regions,$pair_features);
1681                      foreach my $pair_feature (@$pair_features){ $all_genes{$pair_feature} = 1;}                      foreach my $pair_feature (@$pair_features){ $all_genes{$pair_feature} = $peg1;}
1682                  }                  }
1683              }              }
1684          }          }
# Line 1695  Line 1800 
1800    
1801          my $offsetting = shift @start_array_region;          my $offsetting = shift @start_array_region;
1802    
1803            my $second_line_config = { 'title' => "$region_gs",
1804                                       'short_title' => "",
1805                                       'basepair_offset' => '0'
1806                                       };
1807    
1808          my $line_data = [];          my $line_data = [];
1809            my $second_line_data = [];
1810    
1811            # initialize variables to check for overlap in genes
1812            my ($prev_start, $prev_stop, $prev_fig, $second_line_flag);
1813            my $major_line_flag = 0;
1814            my $prev_second_flag = 0;
1815    
1816          foreach my $fid1 (@$region){          foreach my $fid1 (@$region){
1817                $second_line_flag = 0;
1818              my $element_hash;              my $element_hash;
1819              my $links_list = [];              my $links_list = [];
1820              my $descriptions = [];              my $descriptions = [];
# Line 1738  Line 1856 
1856                  $start = $2 - $offsetting;                  $start = $2 - $offsetting;
1857                  $stop = $3 - $offsetting;                  $stop = $3 - $offsetting;
1858    
1859                  if (defined($reverse_flag{$region_genome})){                  if ( (($prev_start) && ($prev_stop) ) &&
1860                         ( ($start < $prev_start) || ($start < $prev_stop) ||
1861                           ($stop < $prev_start) || ($stop < $prev_stop) )){
1862                        if (($second_line_flag == 0) && ($prev_second_flag == 0)) {
1863                            $second_line_flag = 1;
1864                            $major_line_flag = 1;
1865                        }
1866                    }
1867                    $prev_start = $start;
1868                    $prev_stop = $stop;
1869                    $prev_fig = $fid1;
1870    
1871                    if ((defined($reverse_flag{$region_genome})) && ($reverse_flag{$region_genome} eq $all_genes{$fid1})){
1872                        print STDERR "$region_genome - $fid1";
1873                      $start = $gd_window_size - $start;                      $start = $gd_window_size - $start;
1874                      $stop = $gd_window_size - $stop;                      $stop = $gd_window_size - $stop;
1875                  }                  }
# Line 1753  Line 1884 
1884                      "links_list" => $links_list,                      "links_list" => $links_list,
1885                      "description" => $descriptions                      "description" => $descriptions
1886                  };                  };
1887                  push(@$line_data,$element_hash);  
1888                    # if there is an overlap, put into second line
1889                    if ($second_line_flag == 1){ push(@$second_line_data,$element_hash); $prev_second_flag = 1;}
1890                    else{ push(@$line_data,$element_hash); $prev_second_flag = 0;}
1891    
1892              }              }
1893          }          }
1894          $gd->add_line($line_data, $line_config);          $gd->add_line($line_data, $line_config);
1895            $gd->add_line($second_line_data, $second_line_config) if ($major_line_flag == 1);
1896      }      }
1897      return $gd;      return $gd;
1898  }  }

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3