我先解释一下我的问题,因为理解我想要什么很重要 :-)
我正在开发一个使用多个外部工具进行基因组数据分析的Python管道。其中一个工具需要处理非常大的fastq文件,这些文件实际上只是普通文本文件。
通常,这些fastq文件是经过压缩的,由于它们是普通文本,所以压缩比率非常高。大多数数据分析工具都可以使用压缩文件,但我们有少数几个不能使用。因此,我们正在解压这些文件,进行操作,最后重新压缩。
正如你可以想象的那样,这个过程是:
- 更慢 - 占用更多磁盘空间 - 占用带宽(如果在NFS文件系统中工作)
因此,我正在尝试找到一种方法“欺骗”这些工具,使其能够直接使用已压缩的文件而无需触及工具的源代码。
我想过使用FIFO文件,并尝试了一下,但是如果工具多次读取文件或者在文件中查找,就行不通了。
因此,基本上我有两个问题:
1. 是否有任何方法可以将文件映射到内存中,以便您可以执行类似以下操作? ``` ./tool mapped_file ``` 其中mapped_file不是真正的文件,而是对内存映射文件的引用。
2. 是否有任何其他建议可以实现我的目标?
非常感谢大家!
我正在开发一个使用多个外部工具进行基因组数据分析的Python管道。其中一个工具需要处理非常大的fastq文件,这些文件实际上只是普通文本文件。
通常,这些fastq文件是经过压缩的,由于它们是普通文本,所以压缩比率非常高。大多数数据分析工具都可以使用压缩文件,但我们有少数几个不能使用。因此,我们正在解压这些文件,进行操作,最后重新压缩。
正如你可以想象的那样,这个过程是:
- 更慢 - 占用更多磁盘空间 - 占用带宽(如果在NFS文件系统中工作)
因此,我正在尝试找到一种方法“欺骗”这些工具,使其能够直接使用已压缩的文件而无需触及工具的源代码。
我想过使用FIFO文件,并尝试了一下,但是如果工具多次读取文件或者在文件中查找,就行不通了。
因此,基本上我有两个问题:
1. 是否有任何方法可以将文件映射到内存中,以便您可以执行类似以下操作? ``` ./tool mapped_file ``` 其中mapped_file不是真正的文件,而是对内存映射文件的引用。
2. 是否有任何其他建议可以实现我的目标?
非常感谢大家!
/etc/fstab
中添加一个条目,这样你就可以做到了,但这需要管理员的合作。或者如果你能够创建自己的虚拟机并使所有东西在其上运行...但我认为对于你所要求的内容来说会变得复杂... - bernard paulus