我的每个 fastq 文件大约有 2000 万次读取(或 2000 万行)。现在我需要将大的 fastq 文件分割成 block ,每个 block 只有 100 万次读取(或 100 万行),以便于进一步分析。 fastq 文件就像 .txt。
我的想法是,只统计行数,每统计100万行后打印出行数。但是输入文件是.gz压缩形式(fastq.gz),我需要先解压吗?
我怎样才能用Python做到这一点?
我尝试了以下命令:
zless XXX.fastq.gz |split -l 4000000 prefix
(先gzip然后分割文件)
但是,似乎它不适用于前缀(我尝试过)“-prefix”,但它仍然不起作用。另外,使用 split 命令,输出如下:
prefix-aa, prefix-ab...
如果我的前缀是XXX.fastq.gz
,那么输出将为XXX.fastq.gzab
,这会破坏.fastq.gz格式。
所以我需要的是XXX_aa.fastq.gz,XXX_ab.fastq.gz(即后缀)。我怎样才能做到这一点?
最佳答案
已发布here
zcat XXX.fastq.gz | split -l 1000000 --additional-suffix=".fastq" --filter='gzip > $FILE.gz' - "XXX_"
关于python - 使用前缀分割大型 .gz 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904195/