Exclude organisms in remoteblast with bioperl
Hi everyone, I am writing to ask for help with a BioPerl script.
I'm doing a remote blast using Bio::Tools::Run::RemoteBlast and I need to exclude shuttle vectors and synthetic constructs.
I've tried to use this:
$Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'NOT shuttle vectors[orgn] AND NOT synthetic constructs[orgn]';
but it gives me no result, it seems as if the "NOT" is not making any effect because I'm getting the sequences that should be excluded.
This is part of the script:
use strict;
use Bio::Tools::Run::RemoteBlast;
use Bio::Search::Hit::Fasta;
use Bio::DB::GenBank;
use Bio::SeqIO;
my $infile = shift or die "sintaxis: perl myScript.pl sequenceFile.fasta\n";
my $prog = 'blastn';
my $db = 'nr';
my @params = ( '-prog' => $prog,
'-data' => $db);
my $factory = Bio::Tools::Run::RemoteBlast->new(@params);
#change a paramter
$Bio::Tools::Run::RemoteBlast::HEADER{'ALIGNMENTS'} = '20000';
$Bio::Tools::Run::RemoteBlast::RETRIEVALHEADER{'ALIGNMENTS'} = '20000';
$Bio::Tools::Run::RemoteBlast::HEADER{'ENTREZ_QUERY'} = 'NOT shuttle vectors[orgn] AND NOT synthetic constructs[orgn]';
$Bio::Tools::Run::RemoteBlast::HEADER{'HITLIST_SIZE'} = '20000';
my $v = 1;
my $coverage_cutoff = 1.00;
my $identity_cutoff = 1.00;
my $linea = 1;
my $r = $factory->submit_blast($infile);
if( $v > 0 )
{
print STDERR "Searching hits...";
}
while ( my @rids = $factory->each_rid )
{
foreach my $rid ( @rids )
{
my $rc = $factory->retrieve_blast($rid);
if( !ref($rc) )
{
if( $rc < 0 )
{
$factory->remove_rid($rid);
}
if( $v > 0 )
{
print STDERR ".";
}
sleep 5;
}
else
{
my $result = $rc->next_result();
my $filename = $infile."\.out";
$factory->save_output($filename);
$factory->remove_rid($rid);
my $query_name = $result->query_name();
open(SALIDA,">resultBLAST.txt");
open(SALIDA2,">resultBLASTplano.txt");
..................
I hope you can help!
Thanks
• 2,090 views
•
link
0 answers
No answers yet.
Log in to answer this question.
If you are able to find only shuttle vectors and synthetic constructs, get their gi list, and use it with the "-negative_gilist" parameter.