大数据集成员搜索的并行处理

2024-09-26 18:20:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在执行一个成员资格搜索,其中一个小列表(核苷酸读取字符串列表)的每个成员都会在一个非常大的关联k-mers trie中进行成员资格测试

每次读取的核苷酸被搜索大约200次(每次读取的k-mers数量),这个脚本必须能够处理包含数百亿次读取的文件。我已经设计了这个脚本,以便一次处理一个读取,使用两个(成对端)输入fastq文件作为生成器

剧本很好,但现在看来,可能需要几天到几周的时间才能完成

def readTrim1(inRead, indexList):

    # k-merize inRead.
    # for each k-mer in inRead
        #check if k-mer is present in trie of k-mres.
    # reassemble k-mers into read and return validated read.

for read1, read2 in readLists:
    finalRead1 = readTrim1(read1, indexList)  # send to method that will perform 
                                              # membership search.

    finalRead2 = readTrim2(read1, indexList)  # Same but for second read. 

基本上,一次读取一次就被发送到一个方法,该方法将执行大约200个成员搜索。每次读取将发生一次,一旦完成,将处理下一次读取

如何使用多个进程(一台给定的机器可以提供多少个进程)来提高计算效率,同时保持特定的读取顺序

我认为并行化应该主要进行,因为我认为限制因素是要处理的大量读取,而不是成员搜索方法本身

我查看了以下网站进行研究,但还没有找到一个与我类似的例子:

https://wiki.python.org/moin/ParallelProcessinghttp://www.parallelpython.com/

谢谢


Tags: 文件方法in脚本列表forread成员

热门问题