我正在做一个基于基因组数据的蛋白质预测程序,有时我需要向服务器发送多个请求并将结果写入文件中。 我大约有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次的方法。
谢谢