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质量编码,这很有趣,因为它抛弃了质量数据!)

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...