[Bioperl-l] bioperl-db on Windows (update)

Hilmar Lapp hlapp at gmx.net
Thu Jan 26 06:31:43 UTC 2006


This is a lot of work you did to investigate this Chris, thanks. Yes
filing as a bug report will help, and don't forget to attach this
report of yours with all the tests you did. Really all that's left to
do is test on a couple of Unix platforms, which will happen
semi-automatically by people once we commit the change.

   -hilmar

On 1/25/06, Chris Fields <cjfields at uiuc.edu> wrote:
> Hilmar,
>
> I checked load_seqdatabase.pl with all variables of Root.pm and checking
> debugging output; basically, the only way that I could find to get
> load_seqdatabase.pl to work on native Windows is by changing those Root.pm
> lines by adding a comma (i.e. three lines, from 'throw $class ...' to 'throw
> $class, ...').  I ran debugging on load_seqdatabase.pl using all versions of
> Root.pm, with and without Error.pm.  Only those with a comma present worked
> in both circumstances.  I don't know why this hasn't popped up before now,
> but it seems to be a unique combination of Windows, load_seqdatabase.pl, and
> bioperl-db.  It doesn't happen with any scripts of Bioperl on Windows that
> I've run into, and debugging other modules (for instance,
> Bio::SearchIO::blast, which I recently worked on) doesn't cause this
> problem.
>
> Here's the debugging output for load_seqdatabase.pl, with and w/o Error.pm
> and without modifying Root.pm.
>
> ____________________________________________________________
>
> Without Error.pm:
> ____________________________________________________________
> C:\Perl\Scripts>perl -MError
> Can't locate Error.pm in @INC (@INC contains:
> C:\Perl\src\bioperl\bioperl-live C:\Perl\src\bioperl\bioperl-db C:/Perl/lib
> C:/P
> erl/site/lib .).
> BEGIN failed--compilation aborted.
>
> C:\Perl\Scripts>load_seqdatabase.pl -dbname biotest -dbuser root -dbpass
> ****** -driver mysql -format genbank -namespace tes
> t -testonly -safe -debug input.gpt
> Loading input.gpt ...
> attempting to load adaptor class for Bio::Seq::RichSeq
>         attempting to load module Bio::DB::BioSQL::RichSeqAdaptor
> attempting to load adaptor class for Bio::Seq
>         attempting to load module Bio::DB::BioSQL::SeqAdaptor
> instantiating adaptor class Bio::DB::BioSQL::SeqAdaptor
> attempting to load adaptor class for Bio::Species
>         attempting to load module Bio::DB::BioSQL::SpeciesAdaptor
> instantiating adaptor class Bio::DB::BioSQL::SpeciesAdaptor
> Undefined subroutine &Bio::Root::Root::debug called at
> C:\Perl\src\bioperl\bioperl-db/Bio/DB/BioSQL/BasePersistenceAdaptor.pm
> line 1537, <GEN0> line 63.
> ____________________________________________________________
>
> With Error.pm:
> ____________________________________________________________
>
> C:\Perl\Scripts>perl -MError -e ";"
>
> C:\Perl\Scripts>load_seqdatabase.pl -dbname biotest -dbuser root -dbpass
> ****** -driver mysql -format genbank -namespace tes
> t -testonly -safe -debug input.gpt
> Loading input.gpt ...
> attempting to load adaptor class for Bio::Seq::RichSeq
>         attempting to load module Bio::DB::BioSQL::RichSeqAdaptor
>   Calling Error::throw
>
>   Calling Error::throw
>
> attempting to load adaptor class for Bio::Seq
>         attempting to load module Bio::DB::BioSQL::SeqAdaptor
> instantiating adaptor class Bio::DB::BioSQL::SeqAdaptor
>   Calling Error::throw
>
> attempting to load adaptor class for Bio::Species
>         attempting to load module Bio::DB::BioSQL::SpeciesAdaptor
> instantiating adaptor class Bio::DB::BioSQL::SpeciesAdaptor
>   Calling Error::throw
>
>   Calling Error::throw
>
> Undefined subroutine &Bio::Root::Root::debug called at
> C:\Perl\src\bioperl\bioperl-db/Bio/DB/BioSQL/BasePersistenceAdaptor.pm
> line 1537, <GEN0> line 63.
>
> ____________________________________________________________
>
> Error::throw is called w/o a problem when Error.pm is present (which is what
> should happen).  For some reason, that extra comma makes all the difference
> in the world.
>
> The line above in BasePersistenceAdaptor.pm is :
>
> $self->debug("attempting to load driver for adaptor class $class\n");
>
> which is found in many modules.  I don't really know why it decides to hang
> up here.  I'll try running a few of the Root.pm modifications under Mac OS X
> in the next day or so to see what happens.
>
> I also reran a few of Steve Chervitz's recommendations from a previous post;
> everything ran fine except in circumstances in which Error.pm was required
> with a 'use' statement, and only when Error.pm wasn't present, which is
> expected.  Previously, when I ran them, there was a bit of confusion b/c it
> seemed that Error.pm was present somewhere.  It was; Steve included it in
> bioperl-live/examples/root/lib.  When I deleted it, I got the expected
> results.
>
> Anyway, I don't know what else I can do at this point besides check out
> everything on Mac OS X.  Any additional checks of the modified Root.pm need
> to be made on other systems.  Will filing this as a bug in Bugzilla help?
>
> Christopher Fields
> Postdoctoral Researcher - Switzer Lab
> Dept. of Biochemistry
> University of Illinois Urbana-Champaign
>
>


--
----------------------------------------------------------
: Hilmar Lapp -:- San Diego, CA -:- hlapp at gmx dot net :
----------------------------------------------------------




More information about the Bioperl-l mailing list