我的每个fastq文件大约有2000万次读取(或2000万行)。现在我需要将大的fastq文件分成块,每个块只有100万次读取(或100万行),以便进一步分析。fastq文件就像.txt。在
我的想法是,数一下线,每100万行数完就打印出来。但是输入文件是.gz压缩格式(速成gz),我需要先打开拉链吗?在
如何使用python实现这一点?在
我尝试了以下命令:
zless XXX.fastq.gz |split -l 4000000 prefix
(首先是gzip,然后拆分文件)
然而,似乎它不适用于前缀(我尝试过)“-prefix”,仍然不起作用。同样,使用split命令,输出如下:
^{pr2}$如果我的前缀是XXX.fastq.gz
,那么输出将是XXX.fastq.gzab
,这将销毁。速成gz格式。在
所以我需要的是XXX_aa.fastq.gz公司,XXX_ab.fastq.gz公司(即后缀)。我怎么能做到呢?在
不,你不知道,至少不是用手。^{} 将允许您打开压缩文件,此时您将读取一定数量的字节并将其写入单独的压缩文件中。请参阅底部的“如何读取”和“如何写入”两个压缩文件的示例。在
请注意,gzip压缩文件不是随机访问的,因此您需要一次性执行该操作,除非您想先将源文件解压缩到磁盘。在
可以像读取未压缩文件一样读取gzip压缩文件:
process()
函数将处理您提到的特定行计数和条件处理逻辑。在已发布here
相关问题 更多 >
编程相关推荐