首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >并行BLAST程序耗时太长

并行BLAST程序耗时太长
EN

Stack Overflow用户
提问于 2021-03-10 12:50:02
回答 1查看 62关注 0票数 0

当我运行以下代码时,我甚至没有得到一个blast结果。有没有人能告诉我如果他们发现了bug?

代码语言:javascript
复制
from Bio.Blast import NCBIWWW
from Bio import SeqIO
from Bio.Blast import NCBIXML
from multiprocessing import Pool
import time


def blast_sequences_parallel(seq_record):
    result_handle = NCBIWWW.qblast("blastn", "nt", seq_record.seq, entrez_query='txid10239[viruses]')
    blast_records = NCBIXML.parse(result_handle)
    return blast_records


if __name__ == "__main__":
    file = "file.fa"
    get_number_of_seqs(file)
    seq_records = SeqIO.parse(file, "fasta")
    t1 = time.time()
    p = Pool()
    results = p.map(blast_sequences_parallel, seq_records)
    p.close()
    p.join()

    print("Pool took:", time.time() - t1)
    print(results)

我有73,000个序列要运行,所以我试图让它更快。我在一台超级计算机上运行它。对于我需要多少内存和多少核心/节点,有什么建议吗?我还在shell中尝试了以下命令:

代码语言:javascript
复制
blastn -query file.fa -remote

但是我收到一条错误消息,提示我需要下载数据库?有没有办法使用在线服务器进行搜索?如果有办法,我可以只针对病毒基因组进行搜索吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-11 03:25:50

对于73K序列,您应该下载适当的数据库并在本地运行BLAST,而不是尝试在线运行它。Biopython还为这个from Bio.Blast.Applications import NcbiblastxCommandline提供了一个包装器,但是只需从命令行运行BLAST就可以更简单。另请参阅相关的biopython docs

NCBI提供了一组预制的数据库(或者您可以通过makeblastdb从FASTA文件构建自己的数据库):https://ftp.ncbi.nlm.nih.gov/blast/db/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66558554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档