我的程序输入是人类遗传变异的大文件(~50G)。它可以分为24个部分(因为人类有24条染色体),文件的不同部分需要由具有不同参数的工具处理(将它们视为不同的工具)。大文件有很多行,每行以ID开头,ID表示应该处理它的工具。行按大文件中的ID排序。
注意每行不能单独处理,具有相同ID的行不是独立的。具有不同ID的行是独立的。
每个工具都可以并行处理自己的输入。
这是一个文本文件,是文件的一个示例:
#1 10109。 A T
#1 10146。 ACC AC
...
#24 10291。 C T
以前我写了一个python脚本,将大文件分成24个小文件,然后调用不同的工具来处理它们。
问题是现在IO是瓶颈。因为我必须读取文件,并写入小文件,所以需要再次读取每个小文件进行处理。