[Bioperl-l] Bio::Index::Abstract & bug #860
Ewan Birney
birney@ebi.ac.uk
Fri, 19 Jan 2001 16:51:12 +0000 (GMT)
On Fri, 19 Jan 2001, Jason Stajich wrote:
> Looking through this bug - I had 'fixed' it by adding
> use DB_File; at the top, but now I realize that may not be the best
> since it still causes an error when -type is specified as 'SDBM_File'.
> Could just add both in the 'use' but what if DB_File is not present...
>
> The code for the method dbm_package assumes that if you specify a package
> it will have been already 'included'. What to do... Try and require both
> in the BEGIN block so they are explictly loaded no matter what? Trap
> errors if DB_file is not present and user asks for it?
Go for a require run-time load....
check out pSW.pm for an example or the SeqIO.pm for another run-time load.
>
> >From Bio::Index::Abstract
>
> sub dbm_package {
> my( $self, $value ) = @_;
>
> if ($value) {
> $self->{'_dbm_package'} = $value;
> }
> elsif (! $self->{'_dbm_package'}) {
> if ($USE_DBM_TYPE) {
> $self->{'_dbm_package'} = $USE_DBM_TYPE;
> } else {
> my( $type );
> # DB_File isn't available on all systems
> eval {
> require DB_File;
> DB_File->import("$DB_HASH");
> };
> if ($@) {
> require SDBM_File;
> $type = 'SDBM_File';
> } else {
> $type = 'DB_File';
> }
> $USE_DBM_TYPE = $self->{'_dbm_package'} = $type;
> }
> }
> return $self->{'_dbm_package'};
> }
>
>
>
> Jason Stajich
> jason@chg.mc.duke.edu
> Center for Human Genetics
> Duke University Medical Center
> http://www.chg.duke.edu/
>
>
> ---------- Forwarded message ----------
> Date: Fri, 19 Jan 2001 09:55:29 +0000 (GMT)
> From: K Howe <klh@sanger.ac.uk>
> To: Jason Stajich <jason@chg.mc.duke.edu>
> Subject: Re: biperl bug #860
>
>
> Hi Jason,
>
> We use the following command:
>
> bpindex.pl -fmt EMBL -dir /nfs/disk92/Pfam/index -type DB_File
> pfamseq.index <embl flat file>
>
> where /nfs/disk92/Pfam/index is the intended location of the index file,
> and pfamseq.index is the name of it. The key thing is that we explicitly
> give the type as DB_File, and when this happens, it dies (when you don't
> specify type, and it has to make a guess as to which dbm type to use, it
> works, but this is not scalalble for us, since the default dmb file in
> bioperl may change from DB_File in the future).
>
> Hope this is enough information.
>
> Best,
>
> Kevin
>
> On Thu, 18 Jan 2001, Jason Stajich wrote:
>
> > Kevin - I'm trying to track down a bug you submitted for
> > Bio::Index::Abstract - I may have fixed it, but I want to be sure. Can
> > you give me an example of how to invoke bpfetch/bpindex so to throw an
> > error due to a potentially missing require.
> >
> > Thanks.
> > -Jason
>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l@bioperl.org
> http://bioperl.org/mailman/listinfo/bioperl-l
>
-----------------------------------------------------------------
Ewan Birney. Mobile: +44 (0)7970 151230, Work: +44 1223 494420
<birney@ebi.ac.uk>.
-----------------------------------------------------------------