为什么我的 awk 脚本会创建空的序列索引文件?

Why is my awk script creating empty sequence index files?

我想使用 awk 读取现有的 fasta 文件(称为 R2)并创建一个包含 select 信息和格式的新文件(称为 I2)。 R2 的格式如下:

@K00337:359:HGJV5BBXY:7:1101:1499:1314 1:N:0:NATCCATG
ANCTCGTCCTGCAGGTTTAAAACTTCAAAAATGCATAAAGAATATTCATTAAAACAGACTTCTCTGTACTATTACAATCCATCAATGCTTGTCTGACTGGAATCCATCTGAAAAACAAAGGAAAAATTACAACCCATATCTCTCTGTAATA
+
A#A-AFJJJJJJJJF<A-FFJJJFJAJJJJJFJFJ-<FJFJFFJJF<<-JAJJAJJJJJFJJJJJJFAFFJFF<FFJ<FAJ-<<JF-----AFFA7-F7AJ---FAF7AFJJJ<-A-A-7-A7FJJ-<JJ<F-77<JFFF-A7-FF--<-7
@K00337:359:HGJV5BBXY:7:1101:1681:1314 1:N:0:NGCCATCT
GNTACCCTGCAGCAAAGCCAGCAAGAGATTAACCCCTCTACAGCCCCAGCCACTTTCCATCTTCACTACCTCTCTACCGCAAATTACAATCCCGATCTGCCAGCATAACTCACTCACGTGAGATGGTCAAAGTAGACAGGGGTATTTAAAC
+
A#AFFFJJJJJJFFJJJFAJAFJJFJF<FF--JJJ<J<FFJJAAF7FJ<AFJJA-F7JJJJ--<<FA-A<77---<<<-A-F-AFF7---<-F77--A-FA77---<7A-<FF7AA--<77----<7<<<-A--A-77-------7-<--A
@K00337:359:HGJV5BBXY:7:1101:1824:1314 1:N:0:NCCTATCA
CNGCAACTCTGCAGAAATTGGCATAAGTAAAGAGGAACCCAATTATAGTAGCCAAGACAATGGGGGAAAAGTTTCAAAGGCATTTCAGAGACCAGTTGGCAGCCCCTTCCATCGTAGGCCCAGAGGCCTAGGAGGAAAGAATGGGTTTGTG
+
A#AAA-FAAFAJ7JF7J<JFJJ7J<-FFJFJJJA7FFJJAFFJFJJJFJJ-FAFJJJJJJAF-FAAA7FJF7F-FJFJJFFJ-FAFA--AF<---77--AF77AJ---7AA-<7----777<F-AAFJFJFJ-77-------7A---F-A-
@K00337:359:HGJV5BBXY:7:1101:2067:1314 1:N:0:NTCCTTCT
ANCGTTGCTGCAGCTGGGATAGAGCAACCCCCTACACCAGTACAGTTTTGGAACTGACTGGCTGAGTAACAGTTCTGCACTCATGCCAACATAGGAGAAAGCTTTACTTCTCTTTACAGTCCAGTTCTGTTAAACAGATCTCCTTTTTGAG
+
A#A-F<FAJAFJ-AA7A<FFJFFJJJJJJJJJFJJJJJJFFAFJFA<FJJJJJJJJJJJJJJJFJJJFJJJJ-FFJ-AFA<FJFFJ<7FJJJJAJA-A<F-AF-7AAF---A7<A-FJFJFJ<<A<A7--FJ<-7A-FFFF<F----AAJ7

这是 I2 所需的格式:

@K00337:359:HGJV5BBXY:7:1101:1499:1314 1:N:0:NATCCATG
NATCCATG
+
#AAFFJFJ
@K00337:359:HGJV5BBXY:7:1101:1681:1314 1:N:0:NGCCATCT
NGCCATCT
+
#AA--AF-
@K00337:359:HGJV5BBXY:7:1101:1824:1314 1:N:0:NCCTATCA
NCCTATCA
+
#<AAFFJJ
@K00337:359:HGJV5BBXY:7:1101:2067:1314 1:N:0:NTCCTTCT
NTCCTTCT
+
#<-A-AFF

由于这是序列数据,每个新的序列条目都以“@”符号开头(即每四行)。两个文件的第一行和第三行始终相同。但是,I2 的第二行将是 R2 第一行的最后 8 个字符,而 I2 的第四行将是 R2 第四行的前 8 个字符。这是我用来完成此操作的代码:

zcat Undetermined_R2_001.fq.gz |awk '{ 
if ((NR%4)==1) 
    print [=12=] '\n' substr(,7,8); 
else if ((NR%4)==3) 
    print [=12=]; 
else if ((NR%4)==4) 
    print substr([=12=],1,8); 
}' | gzip > ./Undetermined_I2_001.fq.gz

创建 I2 文件需要几分钟,所以我知道它可以读取 R2 文件,但创建的 I2 文件始终为空。有更多 awk 经验的人可以帮助我调试这一小段代码吗?

... | awk  '{r=NR%4} 
        r==1{print [=10=] ORS substr(,7,8)} 
        r==3{print}
        r==0{print substr([=10=],1,8)}' | ...