[Biopython] is there an updated tutorial on how to use the Wrappers for the new NCBI BLAST+ tools?

Peter biopython at maubp.freeserve.co.uk
Mon Jan 11 16:38:33 UTC 2010


On Sun, Jan 3, 2010 at 8:09 AM, Kevin Lam <aboulia at gmail.com> wrote:
> Hmmm found this in the blast+ manual is it possible to integrate this
> somewhere in biopython ?Cheers
> Kevin
>
>
> 3.1 For users of NCBI C Toolkit BLAST
>
> The easiest way to get started using these command line applications is by
> means of the legacy_blast.pl PERL script which is bundled along with the
> BLAST+ applications. To utilize this script, simply prefix it to the
> invocation of the C toolkit BLAST command line application and append the
> --path option pointing to the installation directory of the BLAST+
> applications. For example, instead of using
>  blastall -i query -d nr -o blast.out
>
> use
>  legacy_blast.pl blastall -i query -d nr -o blast.out --path /opt/blast/bin
>
> For more details, refer to the section titled Backwards compatibility
> script<http://www.ncbi.nlm.nih.gov/bookshelf/br.fcgi?book=helpblast&part=CmdLineAppsManual#CmdLineAppsManual.I43_Backwards_compat>
> .

Hi Kevin,

I don't understand how you think the Biopython documentation
should mention the legacy_blast.pl script. Could you explain?

If someone has an existing Biopython script written to call "legacy"
BLAST via the Bio.Blast.NCBIStandalone "helper" function then it
would be quite tricky to get this to call BLAST+ via legacy_blast.pl
to convert the arguments. These "helper" functions are just too
inflexible (we would probably have deprecated them anyway, even
without the introduction of BLAST+ by the NCBI).

If someone was using the the Bio.Blast.Applications wrapper to
call "legacy" BLAST then they could do something like this:

import subprocess
from Bio.Blast.Applications import BlastallCommandline
cline = BlastallCommandline(...)
child = subprocess.Popen(str(cline), ...)

Then I guess they could make a hack like this in order to use
BLAST+ via legacy_blast.pl without changing much code:

import subprocess
from Bio.Blast.Applications import BlastallCommandline
cline = BlastallCommandline(...)
hack_template = "legacy_blast.pl %s  --path /opt/blast/bin"
child = subprocess.Popen(hack_template % cline, ...)

Peter




More information about the Biopython mailing list