StandAloneBlastPlus can't handle the new multiple-valued -outfmt option
majensen opened this issue · 2 comments
Problem below came in on the list. I can replicate it. The latest blast+ accepts the following
... -outfmt "7 sseqid qseqid" ...
I.e., enclosing multiple tokens in quotes as a value for the -outfmt option is a new feature.
The error below indicates that where the parameter -outfmt is set in the code (to be sent to the command line), the full string
"<token> <token> ..."
is not treated as an atom of text.
Preliminary investigation sez the problem lies deep within Bio::Tools::Run::WrapperBase::CommandExts, and might involve Bio::Root::RootI::_set_from_args, which was written in the Year 1.
I will see what I can do.
MAJ
I’m working with this script that uses StandAloneBlastPlus, and
I
would like to take advantage of a new feature in the latest
releases of blast+, which allows me to present the query coveragein the output (among other values). For that to work, the value
of
–outfmt needs to be quoted (for example, -outfmt “7 std
qcovs”), so
I’m passing the outfmt parameter via-method_args => [ '-outfmt' => '"7 std qcovs"' ]
(I’m using single quotes with doubles inside, so that the
double
quotes are passed literally).But when I run it, the quotes seem to get lost and I end up with
the error I get when I pass that value without the quotes:Error: Too many positional arguments (1), the offending value:
stdI have tried lots of combinations with single, double quotes,
character escaping and I couldn’t find the way to make it work.
bioperl/bioperl-live@8848178 should fix; adding tests to this distro.
So far so good. Closing.