[Bio] / FigKernelPackages / FIGV.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/FIGV.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.35, Fri Jul 6 21:55:20 2007 UTC revision 1.36, Tue Jul 17 19:04:56 2007 UTC
# Line 583  Line 583 
583      else      else
584      {      {
585          my @out;          my @out;
586            $self->load_contigs();
587    
588            my $contigs = $self->{_contigs_index};
589            if ($contigs)
590            {
591                return keys %$contigs;
592            }
593    
594          if (open(CONTIGS,"<$newGdir/contigs"))          if (open(CONTIGS,"<$newGdir/contigs"))
595          {          {
596              local $/ = "\n>";              local $/ = "\n>";
# Line 627  Line 635 
635          return $fig->dna_seq($genome, @locations);          return $fig->dna_seq($genome, @locations);
636      }      }
637    
638      my %contigs;      my $contigs = $self->{_contigs_index};
639        if (!$contigs)
640        {
641            $contigs = {};
642      if (open(CONTIGS,"<$newGdir/contigs"))      if (open(CONTIGS,"<$newGdir/contigs"))
643      {      {
644          local $/ = "\n>";          local $/ = "\n>";
# Line 639  Line 650 
650                  my $id = $1;                  my $id = $1;
651                  my $seq = $2;                  my $seq = $2;
652                  $seq =~ s/\s//gs;                  $seq =~ s/\s//gs;
653                  $contigs{$id} = $seq;                      $contigs->{$id} = $seq;
654              }              }
655          }          }
656          close(CONTIGS);          close(CONTIGS);
657      }      }
658        }
659    
660      my(@pieces,$loc,$contig,$beg,$end,$ln,$rdbH);      my(@pieces,$loc,$contig,$beg,$end,$ln,$rdbH);
661    
# Line 654  Line 666 
666          if ($loc =~ /^(\S+)_(\d+)_(\d+)$/)          if ($loc =~ /^(\S+)_(\d+)_(\d+)$/)
667          {          {
668              ($contig,$beg,$end) = ($1,$2,$3);              ($contig,$beg,$end) = ($1,$2,$3);
669              my $seq = $contigs{$contig};              my $seq = $contigs->{$contig};
670    
671              $ln = length($seq);              $ln = length($seq);
672    
# Line 1752  Line 1764 
1764      }      }
1765  }  }
1766    
1767    sub load_contigs_index
1768    {
1769        my($self) = @_;
1770    
1771        return if defined($self->{_contigs_index});
1772    
1773        my $fig     = $self->{_fig};
1774        my $newG    = $self->{_genome};
1775        my $newGdir = $self->{_orgdir};
1776    
1777        my $contig_index_file = "$newGdir/contigs.btree";
1778        my $contig_index = {};
1779    
1780        my $tied = tie %$contig_index, 'DB_File', $contig_index_file, O_RDONLY, 0666, $DB_BTREE;
1781    
1782        #
1783        # Set these even if failed so we don't keep trying to open and failing.
1784        #
1785        $self->{_contig_index} = $contig_index;
1786        $self->{_contig_tie} = $tied;
1787    
1788        if (not $tied)
1789        {
1790            warn "Cannot tie contig index $contig_index_file: $!\n";
1791        }
1792    }
1793    
1794  sub load_sims_index  sub load_sims_index
1795  {  {
1796      my($self) = @_;      my($self) = @_;

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3