美文网首页生物信息分析
如何判断ASCII码的类型?

如何判断ASCII码的类型?

作者: 笺牒九州的怪咖 | 来源:发表于2022-01-22 15:43 被阅读0次

    脚本如下:

    $ cat fq_ASCII_type.sh 
    
    less $1 | head -n 1000 | awk '{if(NR%4==0) printf("%s",$0);}' \
    | od -A n -t u1 -v \
    | awk 'BEGIN{min=100;max=0;} \
    {for(i=1;i<=NF;i++) {if($i>max) max=$i; if($i<min) min=$i;}}END \
    {if(max<=126 && min<59) print "Phred33"; \
    else if(max>73 && min>=64) print "Phred64"; \
    else if(min>=59 && min<64 && max>73) print "Solexa64"; \
    else print "Unknown score encoding";}'\
    
    

    运行

    $ sh fq_ASCII_type.sh temp.fq
    Phred33      #即temp.fq的质量值使用的是Phred33
    

    设计思路

    · 如果有2个以上的质量字符ASCII值小于等于58(即有两个碱基的得分小于等于25),同时没有任何质量字符的ASCII值大于等于75,即判断是Phred+33。
    · 如果有2个以上的质量字符ASCII值大于等于75(即有两个碱基的得分大于等于10),同时没有任何质量字符的ASCII值小于等于58,即判断是Phred+64。
    · 如果所有质量字符的ASCII值介于59到74之间,即判断可能是Phred+33,但建议使用更多的序列做进一步测试(出现这种结果可能有两种情况:1, Phred+33编码,所有碱基质量得分介于26到42之间;2,Phred+64编码,所有碱基质量得分介于-5到10;是前者的可能性大)。
    · 如果出现上述3种以外的情况,建议打印出质量字符的ASCII值人工判断。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------I`m a line!Thanks!-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    参考:https://www.jianshu.com/p/248308513e2e

    相关文章

      网友评论

        本文标题:如何判断ASCII码的类型?

        本文链接:https://www.haomeiwen.com/subject/qywuhrtx.html