shell – 使用SED / AWK将FASTQ转换为FASTA

前端之家收集整理的这篇文章主要介绍了shell – 使用SED / AWK将FASTQ转换为FASTA前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据,总是四分之一
以下格式(称为FASTQ):
@SRR018006.2016 GA2:6:1:20:650 length=36
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
+SRR018006.2016 GA2:6:1:20:650 length=36
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!+!
@SRR018006.19405469 GA2:6:100:1793:611 length=36
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+SRR018006.19405469 GA2:6:100:1793:611 length=36
7);;).;);;/;*.2>/@@7;@77<..;)58)5/>/

有没有一个简单的sed / awk / bash方式来将它们转换成
这种格式(称为FASTA):

>SRR018006.2016 GA2:6:1:20:650 length=36
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006.19405469 GA2:6:100:1793:611 length=36
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

原则上我们要提取每个block-of-4中的前两行
并用@替换@.

这是一个老问题,并提供了许多不同的解决方案.由于接受的答案使用sed但有一个明显的问题(即当@标志出现为质量线的第一个字母时,它将用>代替@),我感到被迫提供一个简单的基于sed的解决方案,实际上作品:
sed -n '1~4s/^@/>/p;2~4p'

唯一的假设是,每个读取在FASTQ文件中占据正好4行,但根据我的经验,这看起来很安全.

fastx工具包中的fastq_to_fasta脚本也可以正常工作. (值得一提的是,您需要指定-Q33选项以适应现在普遍的Phred 33质量编码,这很有趣,因为它抛弃了质量数据!)

猜你在找的Bash相关文章