如何合并压缩的 fastq 文件?

如何合并压缩的 fastq 文件?

如何合并 gzip 压缩的 fastq 文件?我尝试过阅读 1 和阅读 2

zcat file_1.fastq.gz file_2.fastq.gz | gzip > combined.fastq.gz 

但它给了我不平等的阅读次数。为什么?
还有其他方法可以做到这一点吗?

答案1

要组合(连接)两个文件,请使用cat

$ cat file1 file2 >file3

由于这些压缩格式的结构方式,这也适用于使用gzipbzip2和(可能还有其他)压缩的文件。xz

例如,假设我有两个压缩的 Fasta 文件(或我想要连接的任何两个压缩文件):

$ gzcat file1.fa.gz
>seq1
ACTACTACTACTACTACTACTACTACT

$ gzcat file2.fa.gz
>seq1
GATAGATAGATAGATAGATAGATAGATAAAAAAAA

我将它们组合起来,没有任何解压缩或重新压缩:

$ cat file1.fa.gz file2.fa.gz >file3.fa.gz

结果是一个组合的压缩文件:

$ gzcat file3.fa.gz
>seq1
ACTACTACTACTACTACTACTACTACT
>seq1
GATAGATAGATAGATAGATAGATAGATAAAAAAAA

请注意,如果这给您提供的数据在某种程度上是错误的,那么该错误也可能存在于您的一个(或两个)原始文件中。

答案2

尝试:

tar -cvzf fastq.tar.gz /path/to/all/fastqs/*.gz

或者你想跳过焦油?

答案3

改为这样做:

#!/bin/bash
gzip -d $1 && gzip -d $2
1A=`sed 's/.gz//g`
2A=`sed 's/.gz//g`
cat $2A >> $1A
gzip -c $1A > $1A.gz

调用:

$> bash yourNewScriptIMadeForYou file1.gz file2.gz

解释

  • 第 1 行将环境声明为 Bash。
  • 第 2 行调用 GZIP [-d] 来提取存档,“&&”运算符的意思是“如果此有效,则执行此操作,然后执行此操作”。
  • 第 3-4 行:流文本处理以从输入 $1 和 $2 中去除“.gz”后缀。
  • 第 5 行:将 $2A 的内容连接到 $1A 主体的末尾
  • 第 6 行:创建一个新的 GZIP 文件,其名称与第一个文件输入的名称相同,或者如果您想包含这两个名称...

    gzip -c $1A > $1A$2A.gz

如果您向我展示您的目录结构,并描述您需要如何组合 fastq 文件,我可以创建一个更好的脚本,完全适合您的要求。

相关内容