标准化单细胞RNA测序数据—陷阱和建议

博文名称:Normalizing single cell RNA sequencing data — Pitfalls and Recommendations
博文链接:https://towardsdatascience.com/normalizing-single-cell-rna-sequencing-data-pitfalls-and-recommendations-19d0cb4fc43d
博文发表时间:Jan 29, 2020


单细胞RNA测序(scRNA-seq)的目的通常是亚群鉴定和差异基因表达分析。 为避免“维度灾难”(curse of dimensionality),将高可变基因 (HVG) 用于聚类分析。 多项研究表明,HVG对原始计数矩阵标准化方法的选择很敏感。

为什么要标准化?

原始read计数不能直接用于比较细胞之间的基因表达,因为它们会被实验技术和“无趣”的生物变异所混淆(干扰)。 通过QC质控步骤和其他方法可用于过滤和回归无趣的生物变异。 虽然PCR扩增偏差通常可以通过使用唯一分子标识符 (UMI) 来处理,但需要标准化以消除其他技术引起的变异,如测序深度、细胞裂解和逆转录效率的差异。

标准化(Normalization)处理的主要目标是消除技术效应的影响,同时保留真正的生物学异质性。在标准化处理良好的数据集中,一个基因的方差应该与细胞的基因丰度和测序深度无关。 “真正”差异表达的基因应该在不同细胞类型之间表现出高差异,而看家基因应该表现出低差异。

因此,标准化是一个关键的预处理步骤,它会极大地影响scRNA分析的下游应用。 不幸的是,scRNA数据集通常沿用从bulk RNA-seq继承的方法进行标准化,但是,由于技术性质的差异和这些数据集的固有复杂性,我们很快就会看到这些方法是不合适的。

在这篇博文中,我们将看到全局缩放方法(global scaling methods)在scRNA-seq分析中的局限性。 我们还将讨论最近推出的SCNorm和SCTransform归一化方法的潜力优势,这些方法专为单细胞分析量身定制。

全局缩放方法(Global Scaling methods)

传统上,使用RPKM(每千碱基百万读取数)、FPKM(每千碱基百万片段)或 TPM(每百万转录本)方法将跨细胞的原始表达计数通过测序深度进行标准化。 要了解它们的工作原理,请观看此视频。 虽然这些方法适用于样本内标准化,但它们已广泛认为不适合样本之间的差异表达分析。

例如,考虑在两个处理条件—对照组和治疗组之间,比较两个基因A和 基因B的表达的情况。 基因A在两种处理下的表达水平相同,而基因B在处理组中细胞的表达水平高出2倍。 TPM归一化将绝对表达值转化为相对表达值,因此,我们可能会得出结论,如果基因B在两组间是差异表达的,那么基因A也是差异表达的。

image.png
基于基因集的方法(Gene group based methods)

基于基因集的方法为了解决全局缩放方法的固有问题,最近引入了两种有趣的归一化方法 - SCnorm (2017) 和 SCTransform (Seurat package v3, 2019)。

SCnorm

SCnorm是 Bioconductor上的R包。 对于每个基因,SCnorm通过分位数回归(quantile regression)估计基因表达对测序深度的依赖性。 然后将具有相似依赖性的基因进行分组,并使用第二个分位数回归来估计每组的缩放因子( scale factors)。 最后使用每个组特定的缩放因子调整每个基因集的测序深度,以生成标准化的基因表达估计。

image.png

单个细胞数据集(Bacher et al)中3个基因表达
A:原始计数与测序深度,B:标准化的全局缩放因子与测序深度,C:SCnorm计数与测序深度
上图显示来自单个样本的细胞数据集中三个基因的计数深度关系。 图 A 是未标准化或原始表达计数。 很明显,与图C 中的 SCnorm 相比,基于全局缩放因子的方法(图 B)在标准化方面做得很差。

SCTransform

SCTransform是可用于Seurat v3的R包。 该方法使用正则化负二项式模型(regularized negative binomial model)对UMI计数进行建模,以消除因测序深度引起的变化。 简而言之,该方法首先使用测序深度作为自变量和UMI计数作为响应或因变量为每个基因构建广义线性模型 (GLM)。 然后根据基因表达对参数估计进行正则化(或调整)。 使用正则化参数应用第二轮负二项式回归。 该模型的输出(残差)是每个基因的标准化表达水平。

这里的关键信息是,SCnorm 和 SCTransform 方法都学习基因集(gene-group )特定的因素,而不是使用常数因子来标准化所有基因。 这些因素分别针对低、中和高表达基因,消除了技术变异的影响,同时保留了真正的生物异质性。

总结

归一化方法的选择会影响高变异基因的选择,从而影响scRNA数据的所有下游分析。 直接将bulk RNA-seq的归一化方法应用于scRNA数据集是不合适的。 推荐通过选择SCNorm或SCTransform归一化方法来更新分析流程并充分利用最新的技术方法是值得的。


对RPKM,FPKM,TPM的理解

在RNA-Seq的分析中,对基因或转录本的read counts数目进行标准化(normalization)非常重要,因为落在一个基因区域內的read counts数目取决于基因长度和测序深度。一个基因越长,测序深度会越高,落在其內部的read counts数目就会相对越多。因此,我们使用相对测量,而不是绝对测量。

因此,我们需要标准化的两个关键因素就是基因长度和测序深度,常常用RPKM (Reads Per Kilobase Million), FPKM (Fragments Per Kilobase Million) 和 TPM (Transcripts Per Million)作为标准化数值。

1. RPKM

计算RPKM主要包括以下三步:

  1. 计算与测序深度有关的系数:计算每个样本中reads的总数并除以10^6—此时就可以得到"per million"的缩放系数;
  2. 去除测序深度的影响:每个reads数除以上面得到的"per million"缩放系数,得到对应基因在每百万reads中所占比例,即reads per million (RPM);
  3. 去除基因长度的影响:用上一步的结果再除以对应基因的长度(通常是所有外显子长度的总和,以kb为单位),得到每百万reads每一千碱基对中包含的reads数,即RPKM。
    计算RPKM的公式可以表示如下:


    image.png

其中:

  • x可以表示一个基因或转录本,或基因组上一段特定的区域;
  • C_x表示比对到基因x外显子区域的reads数;
  • R表示当前样本中包含的全部reads数,R=\sum^{N}_{i=1}{C_i},其中N表示该样本中的基因总数;
  • L_x表示基因x外显子区域包含的碱基数(bp)
    RPKM的计算
2. FPKM

FPKM与RPKM的计算过程相同,它们的区别是:RPKM用于单端测序结果,FPKM用于双端测序结果(如图2所示)。因为双端测序中,每一个fragment会包含两个reads,使用FPKM来计算基因的表达丰度时,可以避免把同一个fragment的两个reads计算两次(实际上只需要计算一次)。


单端测序read与双端测序read

单端read与双端read比对到基因组的示意图所示:


单端测序read与双端测序read比对到参考基因组
3.TPM

TPM与RPKM最大的区别在于消除两种影响的次序:在TPM中先消除基因长度的影响,再消除测序深度的影响。计算TPM的过程也可以分为三个步骤:

  1. 将每个read counts除以对应基因的长度(外显子区域的长度,单位为kb),此时得到每千个碱基包含的reads数,即(reads per kilobase, RPK);
  2. 将一个样本中的RPK加起来的总数除以10^6,得到"per million"缩放系数(这是两种方法计算结果不同的主要来源,因为这里的总数是消除了基因长度的影响之后得到的RPK,而不是原始read counts之和);
  3. 用RPK除以"per million"缩放系数,得到TPM。

计算公式表示如下:


image.png

其中:

  • x可以表示一个基因或转录本,或基因组上一段特定的区域(下面统一当做基因);
  • r表示reads的长度(例如所有reads包含的平均碱基数),一般为常数;
  • C_x表示比对到基因x外显子区域的reads数;
  • T表示当前样本中所有基因除以自身长度(kb)后求和的结果,T=\sum^{N}_{i=1}{r}*{C_i/L_i},其中N表示该样本中的基因总数;
  • L_x表示基因x外显子区域包含的碱基数(kp).

因为交换了两次计算的次序,TPM最终得到的结果中,每个样本总的TPM值是相同的,这样的结果便于样本间差异的比较。


案例说明

有以下RNA-seq数据,测定了A、B、C、D四个基因,长度分别是2、4、1、10kb,共测定了3个生物重复:Rep1、Rep2、Rep3。

1. RPKM的计算

第一步,计算总Read数
由于只有4个基因,所以总Read数并没有太大,因此使用10模拟百万进行总read换算。


image.png

第二步:标准化总Read数
将Rep1、Rep2、Rep3除以各自换算后的总Read数(也就是3.5,4.5,10.6),得到RPM:


image.png

第三步:标准化基因长度
再将基因A、B、C、D的RPM值除以各自的基因长度,得到RPKM:
image.png

2. TPM的计算

RPKM是先进行测序深度标准化,后进行基因长度标准化;而TPM是先进行基因长度标准化,后进行测序深度标准化 。事实证明,TPM的标准化方法更有优势,为何会这样,见后述。这里先看看TPM的计算。


image.png

第一步:进行基因长度标准化。先将基因A、B、C、D的Read数除以各自的基因长度(基因长度单位kb),得到RPK。


image.png

第二歩:计算总Read数(RPK)。计算总Read数,并将其进行百万转换。由于基因数太少,这里是使用10模拟百万转换。
image.png

问题1:RPKM和TPM那种计算方法更优?

详见黄树嘉的《为什么说FPKM和RPKM都错了?》

问题2:seurat的归一化和TPM是不是一致的?

TPM的归一化考虑了基因长度和测序深度,而seurat的归一化没有考虑基因长度,只考虑了测序深度,为什么不需要考虑基因的长度?
每个归一化方法内在的考虑因素不相同,TPM考虑了基因长度,基因越长,落在基因序列上的reads数量也相应越多。
归一化还跟它要解决的问题相关。

  • 差异表达分析,如果我们只比较某个基因在样本组间的差异,基因的长度是固定影响因素(恒定因子),可以不用考虑基因长度的影响。
  • 如果比较同一个样本中的不同基因,考虑基因的长度问题,把基因放在到同一赛道上比较。
    另外,seurat在比较不同基因时,对归一化的基因表达值进行scale处理。

10X官方也答复了该问题:
https://kb.10xgenomics.com/hc/en-us/articles/115003684783-How-to-calculate-TPM-RPKM-or-FPKM-instead-of-counts-

Should I calculate TPM, RPKM or FPKM, instead of counts for 10x Genomics data?

答:在10x Genomics基因表达分析中,每个转录本都标记有唯一的分子标识符(UMI)序列。这些UMI能够准确定量基因表达水平,因为我们可以判断哪些read是由相同的mRNA分子产生的。因此,Cell Ranger和Space Ranger执行UMI计数(非read计数)以测量基因表达水平,并且所有下游分析步骤均基于UMI计数执行。

传统的RNA-seq数据中,完整的转录本被片段化,随后是cDNA合成、末端修复和接头连接。在此实验流程中,从长转录本中提取fragment片段的概率高于从短转录本中提取的概率。因此,TPM、RPKM、FPKM通过转录本长度(基因的长度)对read计数进行标准化是有意义的。然而,在10x基因表达分析中,这种基因长度偏差并不存在。因此,我们不建议通过基因长度使UMI计数标准化。

10X单细胞测序的UMI标签,消除PCR扩增的偏好性;

  • UMIs enable accurate quantitation of gene expression levels because we can tell when reads are generated from the same mRNA molecule.
  • In traditional RNA-seq workflow, the probability of sampling a fragment from a long transcript is higher than from a short one.
  • in 10x single cell 3’ or 5’ gene expression assay, this gene-length bias does not exist.
    image.png

    image.png

参考:
https://www.plob.org/article/16013.html
https://www.cnblogs.com/Belter/p/13205635.html
https://www.jianshu.com/p/1940c5954c81?from=groupmessage
https://www.jianshu.com/p/35e861b76486
https://bioinfo.umassmed.edu/content/pdf2016fall/normalization.pdf
https://www.cnblogs.com/emanlee/p/14933354.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容