如何合并 gzip 压缩的 fastq 文件?我尝试过阅读 1 和阅读 2
zcat file_1.fastq.gz file_2.fastq.gz | gzip > combined.fastq.gz
但它给了我不平等的阅读次数。为什么?
还有其他方法可以做到这一点吗?
答案1
要组合(连接)两个文件,请使用cat
:
$ cat file1 file2 >file3
由于这些压缩格式的结构方式,这也适用于使用gzip
、bzip2
和(可能还有其他)压缩的文件。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 文件,我可以创建一个更好的脚本,完全适合您的要求。