基因的可变剪切造就了转录本的多样性,作为一种常见的基因表达调控机制,对于生物体的生长、发育和适应环境等方面都具有重要作用。前面写过一篇关于bulk RNA-seq
的推文,谈过一点对可变剪切的感受,感兴趣的可以戳这里:bulk RNA-seq还有必要做差异可变剪切分析么?。
既然,可变剪切这么重要,在单细胞领域当然也是不可或缺的,所以针对单细胞也出现了不少的分析方法,这其中大部分方法的原理类似于bulk RNA-seq
。但是,单细胞数据由于其测序方法的特殊性,为保证分析的质量,在做可变剪切的时候就不得不考虑这些因素,其中最重要的两个因素为数据的稀疏性、测序的不完整性(10x 3' gene expression)。
单细胞数据的稀疏性是不可以回避的因素。针对这个问题,有的软件直接采用合并数据的方法,先将数据分成不同的细胞亚群,然后将亚群内的细胞数据合并视为bulk RNA-seq
数据,这样便可以轻松解决稀疏性的问题。相同类型的细胞有着相似的基因表达,而基因的不同转录本也正是可变剪接的结果,由此也有理由认为相同细胞类型具有相似的可变剪切。所以,虽然合并数据的方式牺牲了数据的分辨率,但也不失为一种增加数据丰度的有效方法。
单细胞测序数据的不完整性,例如10x 3'
的捕获方式获取到的数据仅仅是转录本3'
端的一小部分片段,这个问题是没办法像稀疏性那样通过数据本身来解决。对于这样的数据,也有软件还是采用类似bulk RNA-seq
方式来做可变剪切,虽然不能说不对,但至少有失偏颇。
既然,单细胞数据分析的障碍更多的是来自于技术的限制,分析方法建立在数据之上,如果数据本身不完整,也只能死马当活马医,再好的方法也是治标不治本,形容的更离谱一点就是:巧妇也难为无米之炊。所以,想要更好更系统的解决这些限制,只能期待未来技术的发展推动分析方法的迭代。好在当下米虽然不多但至少还有一点,所以,需要做的事就是寻找到适合现有食材的烹饪方法,从而利用现有的数据挖掘出有用的信息。
SpliZ
目前,已有不少单细胞数据可变剪切相关的分析软件,其中一款软件的原理视角可谓是别出心裁,不管是从另辟蹊径的切入角度还是从文章中不错的效果来讲,都给人一种有点意思的读后感。利用一个Splicing Z-score
作为基因可变剪切的整体分数,站在细胞群体的角度衡量剪切跨度的大小,从而评估不同细胞类型之间剪切发生的差异性。
上面的原理图看着不复杂,理解起来还是有点不够顺畅,下面还原一下示意图的计算过程:
- 计算剪切类型的均值和标准差
sj1rank <- (1+1)
sj2rank <- (2+2+1)
sj3rank <- (3+2)
sjmean <- (sj1rank + sj2rank + sj3rank)/12
sjsum <- (1-sjmean)^2 + (1-sjmean)^2 + (2-sjmean)^2 + (2-sjmean)^2 + (1-sjmean)^2 + (3-sjmean)^2 + (2-sjmean)^2
sjσ <- sqrt(sjsum/12)
sjσ
[1] 0.7637626
- 计算每种剪切类型的残差
sj1rs <- (1-2)/0.7
sj1rs
[1] -1.428571
sj2rs <- (2-2)/0.7
sj2rs
[1] 0
sj3rs <- (3-2)/0.7
sj3rs
[1] 1.428571
- 计算细胞内每个基因的剪切Z-score
cell1_gzs <- (-1.4*3 + 0*1)/4
cell1_gzs
[1] -1.05
cell2_gzs <- (-1.4*1 + 0*2 + 1.4*1)/4
cell2_gzs
[1] 0
cell3_gzs <- ( 0*1 + 1.4*3)/4
cell3_gzs
[1] 1.05
经过排序和计算,细胞中每个基因都被赋予了一个整体剪切的评估分数,分数值的大小直接与剪切的跨度大小直接关联,值越小跨度越小,值越大跨度阅读。当然,具体的计算过程比这里展示的要复杂的多,比如剪切跨度考虑方式为3'
和5'
两种情况等。通过该分数值便可以分析不同细胞类型之间的可变剪切差异。
流程分析结束会得到一个表格,记录了每个细胞中每个基因的SpliZ
分数,即下面结果的中scZ
:
SpliZVD
文章中还定义了另外一个值SpliZVD
来衡量剪切的情况,即上面结果中的svd_z0 - svd_z2
,分别对应特征矩阵前三个向量计算的分数值。从该分数的名字可以看出与SpliZ
有些关系,这也可以从文章给出的流程图看出。
虽然有关联,但不要被迷惑。这里的SpliZVD
肯定不是由前面介绍的SpliZ
直接计算而来,因为前面的SpliZ
在计算过程中已经丢失了剪切位点信息,而SpliZVD
需要经过奇异值分解来达到数据降维的效果。所以,这里应该是采用类似SpliZ
的计算过程,先是计算出每个基因所有剪切位点的评分值,也就是说上面的SpliZ
分数是基因水平,而这里的是位点水平。然后,采用奇异值分解的方法得到基因水平的SpliZVD
分数。相较于前面的SpliZ
分数,SpliZVD
不受read depth
影响。并且,利用SpliZVD
的计算也可以发现具有驱动作用的剪切位点。关于SpliZVD
计算过程的理解本人也是一知半解,感兴趣的可以直接看原文献:<The SpliZ generalizes 'percent spliced in' to reveal regulated splicing at single-cell resolution>。
SpliZ
和SpliZVD
都是从基因水平的角度赋予剪切的整体打分,通过分数的大小可以判断不同细胞间剪切的区别,但这种视角仅是基因水平,也就是说仅仅知道细胞间某个基因剪切有差异,却不知道具体由于何种剪切导致。思路很新奇,分辨率却不足,没有像bulk RNA-seq
可变剪切那样下沉到转录本水平。不过,SpliZ
和SpliZVD
并不受显现于测序类型,不管是部分转录本还是全长转录本的数据类型都可以应用。
网友评论