1. 什么是ECC(纠错编码)?就是一种利用冗余信息来让信息传递更准确的方法;
2. 什么是ECC测序?就是三轮BitSeq取交集来获得序列的方法,如果交集为空,就说明出现了测序错误,需要校正测序信号。
那么,既然ECC测序能冠以ECC之名,它的冗余信息体现在哪里呢?
我们先来看一下什么是“信息”。信息论的创始人克劳德·香农说:信息是不确定性的降低。
怎么理解这句话呢?最近很火的电影《年会不能停》里有个场景恰好回答了这个问题。——“ 当前问题的关键,是要找到关键的问题。”
因为这句话没有信息量,并没有降低不确定性。
我们再来看,一条DNA能提供多少信息量?假设我找了一条DNA序列:这条序列的第一个碱基是什么,第二个碱基又是什么?
肯定答不上来:没有测序怎么能知道?
这说明在测序之前,这条DNA序列是不确定的,而且是完全不确定:我们不仅不知道它的序列是什么,连它是高GC还是低GC,来自编码区还是非编码区等信息都不知道。于是我们只能给出每个碱基的概率分布:
碱基 | A | C | G | T |
概率 | 1/4 | 1/4 | 1/4 | 1/4 |
接下来我们对这条序列做个Sanger测序,测出了这条序列:TGAACTTT……
我们知道Sanger测序的准确度是非常高的,堪称测序界的金标准。那么在Sanger测序后,每个碱基的可能性就从4种情况减小到了1种情况,比如第一个碱基就从ACGT四种可能性减少到了T这唯一的可能性,不确定性就下降了。换句话说,Sanger测序提供了信息。
香农有个公式,可以根据概率算出信息量:
看到数学公式就犯怵的同学不要紧张,大概能理解每个碱基都有4种等可能的情况,这对应2“份”信息即可。
那如果我们不做Sanger测序,而是做BitSeq,那么测序结果会是:KKMMMKKK……
K是GT的合称,而M是AC的合称。对第一个碱基而言,我们在BitSeq之后仍然不知道它具体是哪一种碱基,只知道它是个K,也就是G和T中的一个,但我们知道它已经不可能是A或C了。也就是说这个碱基的概率分布变成了:
碱基 | A | C | G | T |
概率 | 0 | 0 | 1/2 | 1/2 |
虽然这时第一个碱基仍然是不确定的,但它的不确定性已经降低了:从4种可能的情况,减少到了2种。套用香农的公式,我们会算出此时的信息量是1 bit,也就是说BitSeq提供了碱基一半的信息。
这从碱基可能性的数目上也是可以理解的:BitSeq消除了一半的可能性,所以也就提供了一半的信息。
说完BitSeq,再来看ECC测序。ECC测序是什么呢?就是三轮BitSeq取交集。另外两轮的测序结果是:
YRRRYYYY……
WSWWSWWW……
还是以第一个碱基为例,它在这两轮测序后的概率分布分别是:
碱基 | A | C | G | T |
概率 | 0 | 1/2 | 0 | 1/2 |
碱基 | A | C | G | T |
概率 | 1/2 | 0 | 0 | 1/2 |
这三轮各自都能把碱基的可能性从4种降低到2种,而如果联合起来看,这个碱基就只有1种可能性:T。这也就是ECC做的事情。我们会发现两件有意思的事情:
1. 其实两轮BitSeq也能取交集:K和Y的交集、Y和W的交集、W和K的交集,都是T;
2. 一轮BitSeq提供一半的信息,两轮BitSeq刚好提供100%的信息。
碱基两两分组的分法
这两件事是什么关系呢?这是ECC测序原理在不同视角下的体现:一个是取交集的角度,另一个是信息论的角度。
1. 三轮BitSeq不仅可以取交集得到序列,有时还会取出空集,而空集提示了测序错误的存在;
回顾我们之前的文章 👉 “赛纳测序中的ECC纠错编码到底是怎么一回事儿?(1)”,我们知道纠错码(ECC)是一种利用冗余信息来极大提高信息传递准确性的技术。同样地,ECC测序也利用三轮BitSeq产生的冗余信息,发现并校正潜在的测序错误,从而实现了极高的准确度。
至此,我们就明白了ECC测序中冗余信息的来源,也明白了ECC测序何以被冠以ECC之名。不仅如此,我们还看到ECC测序可以从集合取交集和信息论两个角度来分别理解。未来,我们还将从更多视角展示ECC测序的方式,敬请期待。
END
关注赛纳生物
获取更多内容