http://www.perlmonks.org?node_id=984212

reubs85 has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I use bioperl a lot and have come across an issue with what appears to be an incompatibility between a couple of modules I am attempting to use. To set the scene, the first few lines of my script looks like this:

#!/usr/bin/perl use strict; use warnings; use Bio::Tools::Run::Alignment::TCoffee; use Bio::Tools::Run::StandAloneBlastPlus; # do loads of stuff... my $factory=Bio::Tools::Run::Alignment::TCoffee->new();

The error I'm thrown is this:

Use of uninitialized value $name in pattern match (m//) at /usr/share/ +perl5/Bio/Tools/Run/WrapperBase/CommandExts.pm line 499. ------------- EXCEPTION: Bio::Root::Exception ------------- MSG: Command 'run' not registered STACK: Error::throw STACK: Bio::Root::Root::throw /usr/share/perl5/Bio/Root/Root.pm:472 STACK: Bio::Tools::Run::WrapperBase::set_parameters /usr/share/perl5/B +io/Tools/Run/WrapperBase/CommandExts.pm:1203 STACK: Bio::Tools::Run::WrapperBase::new /usr/share/perl5/Bio/Tools/Ru +n/WrapperBase/CommandExts.pm:505 STACK: Bio::Tools::Run::Alignment::TCoffee::new /usr/share/perl5/Bio/T +ools/Run/Alignment/TCoffee.pm:612 STACK: /home/s0451486/usr/bin/t_coffeeTest.pl:13 -----------------------------------------------------------

The script always quits at the line where I try and use the program 'TCoffee' (a DNA alignment tool, in case anyone's wondering).

I had a play around with a dummy script and figured out that it doesn't like the two modules used in the example above together - it will always quit. But if I remove the Bio::Tools::Run::StandAloneBlastPlus module, the TCoffe one can now function as it should do.

Rooting deeper, both these modules use another module, called CommandExts.pm, so I am guessing that there is some internal shenanigans going on such that both cannot use this same module within the same script.

Is this assessment right? And is there some method of effectively dealing with something like this? Any general advice on this kind of issue would also be massively appreciated as well - I am still a Perl-baby, really (obviously). I tried some things with Module::Refresh but, as I'm not even sure if my diagnosis is correct, it didn't surprise me that I had no joy (yet) with a fix. Apologies if it's something really obvious/stupid.

Many thanks for any replies,

Replies are listed 'Best First'.
Re: Incompatible modules?
by toolic (Bishop) on Jul 28, 2012 at 18:46 UTC
    From the Bio::Tools::Run::Alignment::TCoffee POD:
    Please direct usage questions or support issues to the mailing list:
    bioperl-l@bioperl.org
    rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Re: Incompatible modules?
by BrowserUk (Patriarch) on Jul 28, 2012 at 19:31 UTC
    You->new()->isIn( Maze->new( type => 'twisty', env => 'dark' ) ) == tr +ue

    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      ... don't go west!

      ...roboticus

      When your only tool is a hammer, all problems look like your thumb.