我将首先解释我的问题是什么,因为了解我想要什么很重要:-)。
我正在研究一个 python 编写的管道,它使用几个外部工具来执行几个基因组数据分析。其中一个工具适用于非常大的 fastq 文件,这些文件最终不再是纯文本文件。
通常,这个 fastq 文件是 gzip 压缩的,因为它们是纯文本,所以压缩率非常高。大多数数据分析工具都可以处理压缩文件,但我们有一些不能。所以我们正在做的是解压缩文件,使用它们,最后重新压缩。
可以想象,这个过程是:
- 慢点
- 高磁盘消耗
- 占用带宽(如果在 NFS 文件系统中工作)
因此,我试图找出一种“欺骗”这些工具以直接处理 gzip 文件的方法,而无需接触工具的源代码。
我考虑过使用 FIFO 文件,并尝试过,但如果该工具多次读取文件,或者该工具在文件周围寻找,则不起作用。
所以基本上我有问题:
有没有办法将文件映射到内存中,以便您可以执行以下操作:
./tool mapped_file
(其中 mapped_file 并不是真正的文件,而是对内存映射文件的引用。关于如何实现我的目标,您还有其他建议吗?
非常感谢大家!