问题是这样的:有很多很多序列,几百条,想大致了解一下这些序列分别是什么样的微生物,如果一条一条去blast,那是相当的累。想找一个工具告诉我每条序列blast结果的前几条的名称是什么即可,不需要其它信息。
在网上找了一下,没找到合适的软件或工具,虽然有些关于批量blast的教程之类的,比如这个,但是给出的结果及其繁琐,很多不需要的信息。
后来发现Biopython可以很简单就进行批量Blast。只需先安装Python和Biopython,Python和Biopython的下载地址分别为: http://www.python.org/download/ http://www.biopython.org/wiki/Download
Windows版本下载后直接双击安装即可,非常简单。 然后打开IDLE(Python GUI),”File”->”New Window”, 分如下两步进行:
第一步,运行下面的代码进行Blast
from Bio.Blast import NCBIWWW from Bio import SeqIO import time SeqNumber = 0 for record in SeqIO.parse(“allseq.seq”, “fasta”): SeqNumber += 1 try: result_handle = NCBIWWW.qblast(“blastn”, “nr”, record.seq) save_file = open(‘xml\\’+str(SeqNumber)+’.xml’, ‘w’) save_file.write(result_handle.read()) save_file.close() print SeqNumber,’ OK!’ except: print SeqNumber,’ Error! Will try again later!’ […]
Recent Comments