[Bioperl-l] How to get Remote BLAST results in a single out
Fields, Christopher J
cjfields at illinois.edu
Mon Nov 14 12:02:22 EST 2011
Re: a BLAST+ equivalent for blastcl3, I believe there is an option for the various 'blast*' indicating the search is to use a remote database. I haven't used it, though...
chris
On Nov 14, 2011, at 8:07 AM, Jason Stajich wrote:
> Please keep this on list discussions
>
> Sent from my iPhone-please excuse typos
>
> --
> Jason Stajich
>
> Begin forwarded message:
>
>> From: José Luis Lavín <jluis.lavin at unavarra.es>
>> Date: November 14, 2011 8:04:25 AM EST
>> To: Jason Stajich <jason.stajich at gmail.com>
>> Subject: Re: [Bioperl-l] Fwd: How to get Remote BLAST results in a single out
>>
>> Hello Jason,
>>
>> As answering your question:
>>
>> " If you want to do this within this code I guess the question is what format you want the data in - a BLAST report or something more like a table?"
>>
>> A concatenation of BLAST (default format) reports should be OK, since I have a script to parse that kind of results. Anyway formats 1 or 2 will also do the trick.
>> I'll be happy to get assistance on how to change the OUTFILE from "a query a report" to "all queries in the same report", because I don't seem to be able to do it myself after reading the module documentation.
>>
>> Thanks in advance
>>
>> El 14 de noviembre de 2011 12:59, Jason Stajich <jason.stajich at gmail.com> escribió:
>> if you want to do a bunch of BLASTs remotely on the cmdline you should also just use the NCBI's blastcl3 tool (not sure if there is a BLAST+ equivalent). This might be faster to do and easier since you need to learn the programming part too.
>>
>> If you want to do this within this code I guess the question is what format you want the data in - a BLAST report or something more like a table?
>>
>> On Nov 14, 2011, at 6:14 AM, José Luis Lavín wrote:
>>
>>> Hello everybody,
>>>
>>> I've been using "Bio::Tools::Run::RemoteBlast" for a time and it has
>>> worked fine for me. Now I need to perform a multiple BLAST search, but this
>>> time I'd just like to get all the BLAST results in a single out file
>>> instead of having each sequence's report written individually. I've read
>>> the documentation of the module, but due to my short
>>> experience/understanding on complex modules as this one seems to be I can't
>>> figure out where to change the script to achieve my previously mentioned
>>> aim.
>>> Here I post the script I've been using (it's basically the one posted on
>>> the module cookbook).
>>>
>>> #!/c:/Perl -w
>>> use Bio::Tools::Run::RemoteBlast;
>>> use Bio::SearchIO;
>>> use Data::Dumper;
>>>
>>> #Here i set the parameters for blast
>>> print "Enter your BLAST choice (blastn, blastp, blastx, tblastn,
>>> tblastx):\n";
>>> my $blst = <STDIN>;
>>> my $prog = "$blst";
>>> print "Enter a database to search (nr, refseq_protein, swissprot, pat, pdb,
>>> env_nr):\n";
>>> my $dtb = <STDIN>;
>>> $db = "$dtb";
>>> print "Enter your cutt off score (1e-n):\n";
>>> my $cut = <STDIN>;
>>> my $e_val = "$cut";
>>>
>>> my @params = ( '-prog' => $prog,
>>> '-data' => $db,
>>> '-expect' => $e_val,
>>> '-readmethod' => 'SearchIO' );
>>>
>>> my $remoteBlast = Bio::Tools::Run::RemoteBlast->new(@params);
>>>
>>>
>>> #Select the file and make the blast.
>>> print "Enter your FASTA file:\n";
>>> chomp(my $infile = <STDIN>);
>>> my $r = $remoteBlast->submit_blast($infile);
>>> my $v = 1;
>>>
>>> print STDERR "waiting..." if( $v > 0 ); ######## WAIT FOR THE RESULTS
>>> TO RETURN!!!!!
>>> while ( my @rids = $remoteBlast->each_rid ) {
>>> foreach my $rid ( @rids ) {
>>> my $rc = $remoteBlast->retrieve_blast($rid);
>>> if( !ref($rc) ) {
>>> if( $rc < 0 ) {
>>> $remoteBlast->remove_rid($rid);
>>> }
>>> print STDERR "." if ( $v > 0 );
>>> sleep 5;
>>> } else {
>>> my $result = $rc->next_result();
>>> #save the output
>>> my $filename =
>>> $result->query_name()."\.out";##################open SALIDA,
>>> '>>'."$^T"."Report"."\.out";
>>> $remoteBlast->save_output($filename);#############
>>> $remoteBlast->remove_rid($rid);
>>> print "\nQuery Name: ", $result->query_name(), "\n";
>>> while ( my $hit = $result->next_hit ) {
>>> next unless ( $v > 0);
>>> print "\thit name is ", $hit->name, "\n";
>>> while( my $hsp = $hit->next_hsp ) {
>>> print "\t\tscore is ", $hsp->score, "\n";
>>> }
>>> }
>>> }
>>> }
>>> }
>>>
>>>
>>> May any of you please explain me how to solve my question?
>>>
>>> Thanks in advence
>>>
>>> With best wishes
>>>
>>> --
>>> --
>>> Dr. José Luis Lavín Trueba
>>>
>>> Dpto. de Producción Agraria
>>> Grupo de Genética y Microbiología
>>> Universidad Pública de Navarra
>>> 31006 Pamplona
>>> Navarra
>>> SPAIN
>>>
>>>
>>>
>>> --
>>> --
>>> Dr. José Luis Lavín Trueba
>>>
>>> Dpto. de Producción Agraria
>>> Grupo de Genética y Microbiología
>>> Universidad Pública de Navarra
>>> 31006 Pamplona
>>> Navarra
>>> SPAIN
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>> --
>> --
>> Dr. José Luis Lavín Trueba
>>
>> Dpto. de Producción Agraria
>> Grupo de Genética y Microbiología
>> Universidad Pública de Navarra
>> 31006 Pamplona
>> Navarra
>> SPAIN
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list