重点关注分子实验

一文阐述链特异性测序——stranded? reverse-st

2021-12-29  本文已影响0人  Bio_Infor
小小的眼睛里,装着……大大的疑惑

全文2800字,伤脑筋……

今天尝试把自己对于 stranded、reverse-stranded、un-stranded 这个问题的理解给讲清楚,有不对的地方还请大家批评指正,相互交流学习~

其实这个问题的是伴随着链特异性测序的兴起而产生的,那么为什么要有链特异性测序呢?

一些链

我们都知道DNA有两条链,很自然的我们就想把这两条链给区分一下,所有就有了各种链的定义:

难以理解……上图:


总结起来:
非模板链 = 编码链(coding strand)= 正义链(sense strand)
模板链 = 非编码链(noncoding strand) = 反义链(antisense strand)

链特异性测序

为什么要有链特异性测序?答案就是:

"With non-stranded RNA-Seq, you can't tell whether a sequencing read represents the plus or minus strand of the DNA template. In comparison, stranded RNA-Seq distinguishes the first and second strands of cDNA."

总结来说,链特异性测序有这几个优点是链非特异性测序所不具备的:

设想分别位于正负链上的两个基因有一个共同的区域(overlap gene),那么如果我们用链非特异性测序:


non-stranded RNA-seq

详细讲一下该图的建库流程:
(1)oligo-dT富集:我们一般说的RNA-seq是指mRNA,但是我们提出来的总RNA有接近90%全部是rRNA,我们只想得到mRNA,利用真核生物mRNA一般都带有polyA的尾巴这一性质我们设计oligo-dT去与这个polyA的尾巴进行杂交,就能把我们想要的mRNA给富集出来。

(2)添加随机引物进行链的合成:这个过程实际上就是一个DNA双链的合成,无论你起始的mRNA是上面的哪一条,最终形成的两条DNA双链基本是一样的(考虑到随机引物的结合位置,两个DNA分子会有差异)。

(3)添加接头:我们最终会使用illumina进行测序,从这一步开始实际上已经开始构建测序文库了,这里添加的是“Y”接头,注意,这个接头并不是互补配对的,从图里就可以看出,是“Y”字形,显然不是互补配对的。但是你会发现,紫色的接头是都位于5'端的,而红色的接头则都是位于3'端的

(4)PCR扩增:这一步扩增的引物结合位点是在前面的接头中的,而不像前面的随机引物了。可以看到,左右两边都扩增产生了两个DNA分子,我们通过添加read1的测序引物就能测得read1,同理,添加read2的测序引物就能测得read2。但是在这里你就会发现一个尴尬的问题,无论是左边还是右边,read1测出来的序列并不一样,拿左边举例,上面那个DNA分子测出的序列为浅灰色的序列,即Plus Stranded mRNA的互补链,而下面的DNA分子测出来的序列为深灰色的序列,即和Plus Stranded mRNA序列一样的那条链。这样在同一个库中,你最后得到的read1你也不知道它到底和mRNA之间的关系是怎样的,所以就是链非特异性了。

但是当我们换成链特异性测序:


stranded RNA-Seq

以Plus Stranded mRNA举例:首先还是以mRNA为模板进行第一链的合成,然后在利用RNaseH对杂合链中的RNA进行降解,再利用含有dUTP的反应液进行第二链的合成,添加接头。来看它是如何实现链特异性的:

(1)第一种方法是,我使用能够特异性降解含有尿嘧啶(U)的酶来对含有U的链进行降解,然后再进行链的合成,这样,我的文库里面显然只会有一种DNA分子,我测出来的read1自然就肯定是mRNA的序列(在这张图里)。
(2)第二种方法是,将含有U的DNA双链解开,进行扩增,但是DNA聚合酶没有办法以U为模板进行扩增,所以最终所有的DNA分子也只有一种,就是DNA聚合酶以没有U的DNA单链为模板合成的DNA分子,这个时候测出来的read1显然也只能是mRNA的序列。

通过上面的方法,你就能知道你的read1到底是测的哪条链,就实现了真正的链特异性测序了。

stranded 与 reverse-stranded

这个问题实际上来源于我在使用featureCounts进行定量时的一个选项,下面是这个选项的描述:


很难搞清楚……这里的0、1、2是什么意思。实际上不仅仅是 featureCounts ,还有很多工具都有这个类似的选项,比如:TopHat、HTSeq、RSEM、Salmon 等等。下面借用一张网图来对这个问题进行解释:

我们在进行双端测序的时候,会有read1与read2,但是就会有三种情况,第一种是read1就是测到的sense strand的信息(condition A),第二种情况是read1测到的是antisense strand的信息(condition B),第三种情况就是前面讲到的链非特异性测序(condition C)。那我们要对这个进行区分,就需要指定上面的这个参数,例如 featureCounts 中,-s 0就表示链非特异性测序,也就是 condition C-s 1就表示,read1测到的是sense strand的信息,也就是 condition A,也就是它自己所描述的 stranded-s 2就表示,read1得到的是antisense strand的信息,也就是 condition B,也就是它自己所描述的 reversely stranded

好了,上面的清楚了,但是同样是这样的一个问题,不同的软件……它有着不同的描述,例如 TopHat 就不是用 strandedreversely stranded 来定义(这也是我认为最好相通的),它用 first strandedsecond stranded 来定义这件事,它的 first stranded 表示 read1测到的是antisense strand的信息!second stranded 表示 read1测到的是sense strand的信息!这在我看来……是很奇葩的,是很容易搞混淆的。

下面用一张图进行一个汇总,实名感谢这篇帖子Strandness in RNASeq,应该是全网讲的最清楚的了:

注:这里的 caseA 就是上面的 condition A,以此类推

fr & ff & rf & f & r

细心的人会注意到上面的 TopHat 参数中有个 fr,这又是什么……?

先上图(图片来源:https://www.biostars.org/p/344264/):

来个生动的例子,大多数情况下,单端测序测出来的reads一般就是sense strand的信息,但是我就遇到过测出来的反而是antisense strand的信息的情况,这是一个PRO-seq的单端测序数据,首先在igv上看一下:

igv
你可以看到,最上面的那套数据,所有的reads全部是比对到反链上的,但是在这个区间里面只有正链基因PTBP2,所以如果不把这个问题搞清楚……后面的分析基本要出问题。

建库决定read1的信息

上面那张表,不同的建库方式就会有不同的结果,总结一下:

下面尝试理解为什么 dUTP 建库为 reversely stranded ,而 Ligation 建库为 stranded 。针对这个问题的理解,最多的就是这个图了:


但是这个图分不清sense和antisense,可以看我的这张:
dUTP vs Ligation
详细来讲:
在这里,红色始终表示sense strand的信息天蓝色始终表示antisense strand的信息蓝色和黄色表示接头深绿色和玫瑰红色表示reads
需要注意的是:在将adapter连接到待测序的核酸链上时,能够与裸露的3'端连接的一定是黄色的adapter;而能够与裸露的5'端连接的一定是蓝色的adapter!而我们在测序时,首先会添加能够与蓝色adapter结合的测序引物进行测序,生成read1,随后才是生成read2。仔细看就知道,从连上接头两边就已经开始出现差异了,所以这两种测序建库方法,得到的reads与链之间的关系一定是相反的~

怎么办?

今天又是摸鱼的一天!

上一篇下一篇

猜你喜欢

热点阅读