[Bioperl-l] Bio::Tools::Run::Cap3 - Parameters

Michael Stubbington Michael.Stubbington at hpa.org.uk
Thu May 7 03:53:29 EDT 2009


Jonathan,

 

Thanks a lot for this advice. It now all works for me. 

 

Strangely my cap3 installation is not in /usr/local/bin but everything
works fine without me having to change $PROGRAMDIR in cap3.pm

 

Thanks to everyone else involved in this thread for their efforts in
improving Bio::Tools::Run::Cap3.

 

Best wishes,

 

Mike

 

________________________________

From: Jonathan Crabtree [mailto:jonathancrabtree at gmail.com] 
Sent: 06 May 2009 16:46
To: Kevin Brown
Cc: Michael Stubbington; bioperl-l at lists.open-bio.org
Subject: Re: [Bioperl-l] Bio::Tools::Run::Cap3 - Parameters

 


The "new" argument to Cap3 expects an array, not a string.  So I think
you need to do this:

my $cap3Factory = Bio::Tools::Run::Cap3->new('y',  '150');

rather than this:

my $cap3Factory = Bio::Tools::Run::Cap3->new('y 150');

Otherwise it will silently ignore the parameter.  There are also several
problems with the Cap3 module itself, at least the version shown here:

http://cpansearch.perl.org/src/CJFIELDS/BioPerl-run-1.6.1/Bio/Tools/Run/
Cap3.pm

Those problems are:

1. "y" is not in the PARAMS array, as Brian and Kevin have noted
2. $PROGRAMDIR appears to be hard-coded to /usr/local/bin (OK if that's
where your cap3 is installed)
3. The run() method does this:

my $commandstring = $exe . $param_string . " $infilename1";

but at least for the version of cap3 I'm using, you need to put the
$param_string _after_ the $infilename1 for it to work.  Once all these
things are corrected it worked for me and correctly passed the -y 150 to
cap3 when new() was called as shown above.

Jonathan



On Wed, May 6, 2009 at 11:23 AM, Kevin Brown <Kevin.M.Brown at asu.edu>
wrote:

BEGIN {

   @PARAMS     = qw(a b c d e f g m n o p s u v x);
   $PROGRAMDIR = '/usr/local/bin';

   # Authorize attribute fields
   foreach my $attr (@PARAMS) { $OK_FIELD{$attr}++;

}

That is the list of params that Cap3 will accept in the BioPerl module.
I'm guessing if you add the y to that list that it might work.


> -----Original Message-----
> From: bioperl-l-bounces at lists.open-bio.org
> [mailto:bioperl-l-bounces at lists.open-bio.org] On Behalf Of
> Michael Stubbington
> Sent: Wednesday, May 06, 2009 7:39 AM
> To: bioperl-l at lists.open-bio.org
> Subject: [Bioperl-l] Bio::Tools::Run::Cap3 - Parameters
>
> Dear all,
>
>
>
> I am using the Bio::Tools::Run::Cap3 wrapper to the Cap3 assembly
> program. I have some reads that will only assemble if cap3 is
> used with
> the '-y 150' option. This is fine from the command line but I
> can't work
> out how to pass this option to the Cap3 factory object in my script.
>
>
>
> If I do the following
>
>
>
> my $params =  "y 150" ;
>
> my $cap3Factory = Bio::Tools::Run::Cap3->new($params);
>
> my $assembly = $cap3Factory->run($file);
>
>
>
> Then I get an exception as follows:
>
>
>
> ------------- EXCEPTION: Bio::Root::Exception -------------
>
> MSG: Unallowed parameter: y !
>
> STACK: Error::throw
>
> STACK: Bio::Root::Root::throw
> /Users/mike/lib/perl5/site_perl/5.8.9/Bio/Root/Root.pm:357
>
> STACK: Bio::Tools::Run::Cap3::AUTOLOAD
> /Users/mike/lib/perl5/site_perl/5.8.9/Bio/Tools/Run/Cap3.pm:116
>
> STACK: Bio::Tools::Run::Cap3::new
> /Users/mike/lib/perl5/site_perl/5.8.9/Bio/Tools/Run/Cap3.pm:101
>
> STACK: /Users/mike/perlScripts/QGenotype.pl:150
>
>
>
> If I don't try to pass any parameters to Cap3 it runs fine but just
> fails to assemble the reads that need the -y 150 flag.
>
>
>
> I'd very much appreciate any help with this. I'm pretty new
> to bioperl,
> hope I haven't missed anything obvious!
>
>
>
> Thanks in advance,
>
>
>
> Mike
>
>
>
> --------------------------------------------------------------
> ----------
> ----
>
> Mike Stubbington
>
> Novel and Dangerous Pathogens
>
> Health Protection Agency
>
> Centre for Emergency Preparedness and Response
>
> Porton Down
>
> Salisbury
>
> SP4 0JG
>
>
>
> Tel: +44 1980 619812
>
>
>
>
>
> -----------------------------------------
> **************************************************************
> ************
> The information contained in the EMail and any attachments is
> confidential and intended solely and for the attention and use of
> the named addressee(s). It may not be disclosed to any other person
> without the express authority of the HPA, or the intended
> recipient, or both. If you are not the intended recipient, you must
> not disclose, copy, distribute or retain this message or any part
> of it. This footnote also confirms that this EMail has been swept
> for computer viruses, but please re-sweep any attachments before
> opening or saving. HTTP://www.HPA.org.uk
> **************************************************************
> ************
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>

_______________________________________________
Bioperl-l mailing list
Bioperl-l at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/bioperl-l

 



-----------------------------------------
**************************************************************************
The information contained in the EMail and any attachments is
confidential and intended solely and for the attention and use of
the named addressee(s). It may not be disclosed to any other person
without the express authority of the HPA, or the intended
recipient, or both. If you are not the intended recipient, you must
not disclose, copy, distribute or retain this message or any part
of it. This footnote also confirms that this EMail has been swept
for computer viruses, but please re-sweep any attachments before
opening or saving. HTTP://www.HPA.org.uk
**************************************************************************



More information about the Bioperl-l mailing list