我正在玩一些fastq文件,从fastq序列的第二行修剪特定序列:
输入示例:
@D00733:159:CA65UANXX:8:1214:11297:78554
GTTTTACACAATTATACGGACTTTATCCGCTTTTGTGCCTCTTTAATTTC
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
我从序列中删除了子序列'TTATACGGACTTTATC'及之前的任何内容:
sed 's/^.*TTATACGGACTTTATC//' in.fastq > in2.fastq
结果如下:
@D00733:159:CA65UANXX:8:1214:11297:78554
CGCTTTTGTGCCTCTTTAATTTC
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
这可能是一种有效的方法来修剪条目(质量)中第4行的开头以匹配第2行(序列)的长度?每行由\ n个字符分隔,每个条目由4行(标识符,序列,+,质量)组成。
预期产出:
@D00733:159:CA65UANXX:8:1214:11297:78554
CGCTTTTGTGCCTCTTTAATTTC
+
GGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG
提前致谢!
答案 0 :(得分:2)
$ awk 'NR%4==2{s=match($0,/TTATACGGACTTTATC/)+RLENGTH} NR%4~/[02]/{$0=substr($0,s)} 1' file
@D00733:159:CA65UANXX:8:1214:11297:78554
CGCTTTTGTGCCTCTTTAATTTC
+
GGGGGGGFGGGGGGGGGGGGEGG
@D00733:159:CA65UANXX:8:1214:11297:78555
TATGATTAGATGCGGATTGATCTGATCGGGACTGATTTTTTTTAGGGATT
+
BBCCCEGGGGGGGFGEGGGDGGGGGGGGGGGGGGFGGGGGGGGGGGGEGG