Fastqc 能够识别的碱基编码格式

Posted 庐州月光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fastqc 能够识别的碱基编码格式相关的知识,希望对你有一定的参考价值。

Fastqc 能够自动识别序列的碱基编码格式,我查看一下源代码,发现是碱基编码格式一共分为

1)sanger/illumina 1.9

2) illumina 1.3

3) illumina 1.5

其核心的代码为

 public static PhredEncoding getFastQEncodingOffset(final char lowestChar) {
        if (lowestChar < ‘!‘) {
            throw new IllegalArgumentException("No known encodings with chars < 33 (Yours was " + lowestChar + ")");
        }
        if (lowestChar < ‘@‘) {
            return new PhredEncoding("Sanger / Illumina 1.9", 33);
        }
        if (lowestChar == ‘A‘) {
            return new PhredEncoding("Illumina 1.3", 64);
        }
        if (lowestChar <= ‘~‘) {
            return new PhredEncoding("Illumina 1.5", 64);
        }
        throw new IllegalArgumentException("No known encodings with chars > 126 (Yours was " + lowestChar + ")");
    }

通过找到对应的ASCII值最小的碱基质量值来判断对应的编码格式,

在ASCII码表中, ! 代表33,  @ 代表64,A 代表65,~ 代表 126

在维基百科关于fastq格式的描述中介绍了碱基编码的各种格式

在sange format 中采用 33到126 表示0到93, 所以sange 格式的偏移量为33

从illumina 1.3 开始,使用 64和126 来表示0到62, 所以illumina 1.3 格式的偏移量为64

从illumina 1.5 开始,0和1不在使用,最低的质量值为66,

从illumina 1.9 开始,又采用和sange 一样的编码格式

 

所以如果碱基质量的最低值如果小于64,则不可能是illumina 1.3 和illumina  1.5 的格式,因为这两种格式中最低的质量值都是64,

为什么碱基最低的等于65就是illumina 1.3 这里没看懂

小于33或者大于126都是未知的编码格式

以上是关于Fastqc 能够识别的碱基编码格式的主要内容,如果未能解决你的问题,请参考以下文章

生信笔记2-fastqc的安装和使用

我的ChIP-Seq(1): FastQC报告解读

测序中Q20 Q30 Q40

一文读懂FastQC Report

测序fq文件的Q20是啥意思

用ACCESS数据库提示 无法识别的数据库格式