[Bioperl-l] Bio::DB::Fasta

Heikki Lehvaslaiho heikki at ebi.ac.uk
Mon Jun 30 17:19:39 EDT 2003


Mike,

Is this line part of the actual code of yours:

   $db = new Bio::DB::Fasta($filename);

The unnamed argument to the constructor should be a directory with one
or more fasta files, not a filename. Changing that should solve your
problems with this module.

(I was just about to submit a bug report when I noticed this...)

	-Heikki



On Mon, 2003-06-30 at 16:07, Brian Osborne wrote:
> Mike,
> 
> >Is the large size of the database a problem for returning seq objects?
> >Do I need to go back to LargeSeq?
> 
> If you can shorten the sequence in that one database and then successfully
> use get_Seq_by_id on it that would strongly suggest that the length is the
> problem and not, say, some oddity in the header. The case of the sequence
> makes no difference, as you say. I would conclude, as you seem to be doing,
> that LargeSeq is one solution.
> 
> Brian O.
> 
> 
> -----Original Message-----
> From: bioperl-l-bounces at portal.open-bio.org
> [mailto:bioperl-l-bounces at portal.open-bio.org]On Behalf Of Michael R Olson
> Sent: Friday, June 27, 2003 4:50 PM
> To: Brian Osborne
> Cc: Bioperl Mailing List
> Subject: RE: [Bioperl-l] Bio::DB::Fasta
> 
> I have 2 followup questions, the first of which is small:
> You sent me three links that had documentation on them before.
> Was this on any of them or a different one, because I couldn't find it.
> 
> Second:
> I have one database that just consists of one Fasta ID line followed by
> the entire genome.  When I say
> 
> $db = new Bio::DB::Fasta($filename);
> $bigseq = $db->get_Seq_by_id($id);
> 
> it crashes with this error:
> 
> Odd number of elements in anonymous hash at
> /usr/local/bio/www/cgi-bin/BPPNew/Bio/DB/Fasta.pm line 969.
> 
> It does THAT because of the call in Fasta.pm that goes:
> 
>   return bless { db    => $db,
>                  id    => $id,
>                  start => $start || 1,
>                  stop  => $stop  || $db->length($id)
>                },$class;
> 
> because $stop is undefined and $db->length($id) returns undefined.
> Since $db comes from the Bio::DB::Fasta constructor, I tend to assume
> that that's where the problem is, but that's where the code gets hard to
> understand and my investigation ended, so now I'm asking you folks.
> 
> It works when I use a database that's broken up into chunks.
> 
> The only other (obvious) difference between the working version and the
> non-working version is that the working version is uppercase and the
> non-working version is lowercase, and I don't expect this should be an
> issue.
> 
> Is the large size of the database a problem for returning seq objects?
> Do I need to go back to LargeSeq?
> 
> Thanks,
> Mike
> 
> On Fri, 2003-06-27 at 07:38, Brian Osborne wrote:
> > Michael,
> >
> > This comes directly from the module's documentation:
> >
> > use Bio::DB::Fasta;
> >
> > # Bio::SeqIO-style access
> > my $stream  = Bio::DB::Fasta->new('test.fa')->get_PrimarySeq_stream;
> >
> > while ( my $seq = $stream->next_seq ) {
> >    print $seq->seq;
> > }
> >
> > You also asked about "customizing" the indexing so you can use ids you
> have
> > in hand, which partially match the ids in the file. See the bptutorial
> > section on "Indexing or accessing..." or FAQ question 2.5.
> >
> >
> > Brian O.
> 
> 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
> 
> 
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
-- 
______ _/      _/_____________________________________________________
      _/      _/                      http://www.ebi.ac.uk/mutations/
     _/  _/  _/  Heikki Lehvaslaiho    heikki_at_ebi ac uk
    _/_/_/_/_/  EMBL Outstation, European Bioinformatics Institute
   _/  _/  _/  Wellcome Trust Genome Campus, Hinxton
  _/  _/  _/  Cambs. CB10 1SD, United Kingdom
     _/      Phone: +44 (0)1223 494 644   FAX: +44 (0)1223 494 468
___ _/_/_/_/_/________________________________________________________



More information about the Bioperl-l mailing list