多服务器请求和文件写入,而无需等待答案

时间:2019-03-29 13:22:20

标签: python multithreading asynchronous bioinformatics biopython

我正在做一个基于基因组数据的蛋白质预测程序,有时我需要向服务器发送多个请求并将结果写入文件中。 我大约有100个请求和文件编写要做。问题是每个请求大约需要2到5分钟才能回答和写入文件。这意味着使用循环,需要花费3个多小时才能运行。 问题是,我不需要第一个请求的结果来执行第二个,第三个等等。我想同时提出100个要求。我该怎么办?

我们尝试使用多线程,它的工作原理是使用4核计算机将运行时间减少了4。但是我敢肯定这是解决问题的错误方法,我们不会同时运行所有请求。

from Bio.Blast import NCBIWWW
from Bio.Blast import NCBIXML

seq1 = "AGYRGYGCAYGCGYAGCAGC"

result_handle = NCBIWWW.qblast("blastp","nr",seq1)
blast_file = open("my_blast_1.xml", "w")
blast_file.write(result_handle.read())
blast_file.close()
result_handle.close()

这是在我的序列之一上执行请求和文件写入的示例代码。它可以完成预期的工作,但我需要为seq1,seq2,seq3,seq4 ...找到一次同时执行100次的方法。

谢谢

0 个答案:

没有答案