Bio::Tools::Run::StandAloneBlastPlus "entrez_query" option
cjfields opened this issue · 3 comments
Author Name: Remi empty (Remi empty)
Original Redmine Issue: 3150, https://redmine.open-bio.org/issues/3150
Original Date: 2010-10-27
Original Assignee: Bioperl Guts
When running this code:
my $fac = Bio::Tools::Run::StandAloneBlastPlus->new(
-db_name => ‘nr’,
-remote => 1,
);
my $result = $fac->blastp(
-query => ‘NP_861128.fasta’,
-outfile => ‘query.bls’,
-method_args => [
-entrez_query => ‘txid2759[ORGN]’,
],
);
the option ‘-entrez_query’ doesn’t work.
I’ve looked to the code of Bio::Tools::Run::StandAloneBlastPlus and it seems that in the AUTOLOAD method, the options in -method_args are overwritten:
push @Args, (‘-method_args’ => [’remote’ => 1] ) if ($self>is_remote);
If I put the -entrez_query option directly in the AUTOLOAD method, it works.
push @Args, (‘-method_args’ => [(‘-remote’ => 1,entrez_query => ’txid2759[ORGN]’)] ) if ($self>is_remote);
Original Redmine Comment
Author Name: Remi empty
Original Date: 2010-10-27T08:27:05Z
Created an attachment (id=1551)
Dirty patch
Original Redmine Comment
Author Name: Remi empty
Original Date: 2010-10-27T08:29:42Z
(From update of attachment 1551)
diff —git a/lib/Bio/Tools/Run/StandAloneBlastPlus.pm b/lib/Bio/Tools/Run/StandAloneBlastPlus.pm
index b13f464..cef2057 100755
—- a/lib/Bio/Tools/Run/StandAloneBlastPlus.pm
*_+ b/lib/Bio/Tools/Run/StandAloneBlastPlus.pm
@ -1289,6 +1289,7
@ Finally, if $AUTOLOAD is pointing to a blast query method, AUTOLOAD
runs C with the C<-method> parameter appropriately set.=cut
sub AUTOLOAD {
my $self = shift;
@ -1297,8 +1298,13
@ sub AUTOLOAD {
$method =~ s/._:://;
my `ret;
if (grep /^$method$/, `Bio::Tools::Run::StandAloneBlastPlus::BlastMethods) {
- push `args, ('-method_args' => ['-remote' => 1] ) if ($self->is_remote);
- return $self->run( -method => $method,
args ); \>+ if ($self-\>is\_remote) { \>+ my %argsHash =
args; >+ # push`args, ('-method_args' => ['-remote' => 1] ) if ($self->is_remote);push( `{$argsHash{-method\_args}} ,(‘-remote’ =\> 1) );
>+ }`args = %argsHash;
>+ return $self->run( -method => $method,args ); } if ($self->factory and $self->factory->can($method)) { # factory method return $self->factory->$method(
args);
Original Redmine Comment
Author Name: Remi empty
Original Date: 2010-10-27T08:43:25Z
*** Bug 3151 has been marked as a duplicate of this bug.***