如何从 fastq 文件中提取序列并将每个序列另存为新文件

问题描述 投票:0回答:1

我有一个 fastq 文件,其中前 8 行如下所示:

@SRR21388627.2845086/1
GCTGCAGTTGCTGCTGTTGCTGCTGCTGGGGCAGCACACCAGGATGGCCGGCGCCCCCG
+
FFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFFFFFFFFFFFFFFF:FFFFFFFFFF:FF
@SRR21388627.2707233/1
GCTGCAGTTGCTGCTGTTGCTGCTGCTGGGGCAGCACACCAGGATGGCCGGCGCCCCCG
+
FFFF:FF,:FFFF,FF,F:FFFFF:,F,,:,FF:,:,FFF:::F:,,FFF:::,FF:::

我想获取DNA序列并将每个序列保存为一个新文件,以序列前的行命名,例如“SRR21388627.2845086.1.fq”,其中删除了

@
,并替换了
/
.

到目前为止,我参考了这篇post想出了一个命令,但它还不起作用,因为我不确定如何删除

@
并替换
/
 中的 
awk

cat deltaQ_1_region_1.fq | paste - - - - | cut -f1,2 | 
awk -F'\t' '$1!=prev{close(out); out=$1".fq"; prev=$1} {sub(/[^\t]+\t/,""); print > out}' file

谢谢!

awk fastq
1个回答
0
投票

每个序列有 4 行,因此您可以使用 modulo4 来区分每行:

awk '
    NR%4 == 1 { sub("/","."); file_out = substr($0,2) ".fq"; next }
    NR%4 == 2 { print > file_out; close(file_out) }
' file.fq
© www.soinside.com 2019 - 2024. All rights reserved.