计数归一化和主成分分析
在获得我们的高质量单细胞后,单细胞 RNA-seq (scRNA-seq) 分析工作流程的下一步是执行聚类。聚类的目标是将不同的细胞类型分成独特的细胞簇。为了进行聚类,我们确定了细胞之间表达差异最大的基因。然后,我们使用这些基因来确定哪些相关基因集是造成对细胞间的表达差异最大的原因。
在进行聚类之前,先需要理解几个概念。
Count normalization
第一个是count normalization,这对于准确比较细胞(或样本)之间的基因表达是至关重要的。每个基因的RNA表达,通过mapped reads 这一有意义的数值来反映,但是这一数值还会受到许多其他无意义的因素干扰。Normalization就是缩放原始计数以解决“无意义”因素的过程。这样,表达水平在细胞之间和/或细胞内更加具有可比性。
归一化过程中经常考虑的主要因素是:
- 测序深度:考虑测序深度对于比较细胞之间的基因表达是必要的。在下面的例子中,每个基因在细胞 2 中的表达几乎都翻了一番,但这是因为细胞 2 的测序深度增加了两倍。
scRNA-seq中的每个细胞都将具有与之相关的不同数量的reads。因此,要准确比较细胞之间的表达,有必要对测序深度进行标准化。
-
基因长度:比较相同细胞内不同基因之间的表达,需要考虑基因长度。映射到较长基因的reads可能看起来与较高表达的较短基因具有相同的计数/表达。
在 scRNA-seq 分析中,我们将比较细胞内不同基因的表达以对细胞进行聚类。如果使用基于 3' 或 5' 液滴的方法,基因的长度不会影响分析,因为仅对转录物的 5' 或 3' 末端进行测序。但是,如果使用全长测序,则应考虑转录本长度。
主成分分析 (PCA)
主成分分析(PCA)是一种既强调相似性又强调变异的技术,用来在数据集中产生强模式(降维)。我们将在简要介绍PCA(改编自StatQuests/Josh Starmer的YouTube视频),强烈建议您浏览YouTube的StatQuest视频,有更全面的讲解。
解释一个简单例子
假设您已经量化了两个样本(或细胞)中四种基因的表达,您可以绘制这些基因的表达值,其中一个样本表示在 x 轴上,另一个样本表示在 y 轴上,如下所示:
在表示最大变化的方向上通过数据绘制一条线,在本例中,该方向位于对角线上。数据集中的最大变异发生在构成这条线的两个端点的基因之间。
我们能看到基因在该线的上方和下方有些不同。同时我们可以在数据上绘制另一条线,表示数据中变化第二大的量,因为该图是二维(2轴)的。
每条线末端附近的基因将是那些变异最高的基因;这些基因在数学上对线条的方向影响最大。
例如,基因 C值的微小变化会极大地改变较长线的方向,而基因 A或基因 D的微小变化对线条方向影响很小。
我们还可以旋转整个曲线图,并以从左到右、向上和向下的方式查看表示变化的线条。我们看到数据中的大部分变化是从左到右的(较长的线),第二大的变化是向上和向下的(较短的线)。现在,您可以将这些线视为表示变化的轴。这些轴本质上是“主成分”,其中PC1代表数据中最大的变化,而PC2代表数据中第二大变化。
如果我们有三个样本/细胞,那么我们就会有一个额外的方向可以发生变化(3D)。因此,如果我们有N个样本/细胞,我们就会有N个变化方向或N个主成分(PC)!一旦计算出这些PC,处理数据集中最大变化的PC被指定为PC1,第二PC被指定为PC2,依此类推。
一旦为数据集确定了PC,我们就必须弄清楚每个样本/细胞是如何重新适应坐标系的,这样我们才能以直观的方式可视化相似性/差异性之处。这里的问题是“基于Sample_X中的基因表达,给定PC的Sample_X得分是多少?”按照以下步骤对所有样本计算PC对分数:
(1)首先,根据每个基因对每个PC的影响程度,给每个基因分配一个“影响力”分数。对给定PC没有任何影响的基因得分接近于零,而影响更大的基因得分更高。PC线末端的基因会有更大的影响,所以他们会得到更高的分数,但有相反的符号。
计算所有样本-PC 对的 PC 分数,如下面的步骤和示意图中所述:
(2)确定了影响值,每个样本的分数将使用以下公式计算:
Sample1 PC1 score = (read count * influence) + ... for all genes
对于我们的 2 个样本示例,以下是分数的计算方式:
## Sample1
PC1 score = (4 * -2) + (1 * -10) + (8 * 8) + (5 * 1) = 51
PC2 score = (4 * 0.5) + (1 * 1) + (8 * -5) + (5 * 6) = -7
## Sample2
PC1 score = (5 * -2) + (4 * -10) + (8 * 8) + (7 * 1) = 21
PC2 score = (5 * 0.5) + (4 * 1) + (8 * -5) + (7 * 6) = 8.5
这是前两个步骤的示意图:
(3) 一旦计算出所有 PC 的分数,就可以将它们绘制在一个简单的散点图上。下面是示例的绘图,从 2D 矩阵到 2D 绘图:
scRNA-seq 示例
假设您正在处理12,000 个细胞的单细胞 RNA-seq 数据集,并且您已经量化了20,000 个基因的表达。
计算 PC 分数后,您会看到一个 12,000 x 12,000 的矩阵,该矩阵表示有关所有细胞中相对基因表达的信息。您可以选择 PC1 和 PC2 列并以二维方式绘制它们。
您还可以使用前 40 个 PC 的 PC 分数进行下游分析,如聚类、标记识别等,因为这些代表了数据中的大部分变化。我们将在后面对此进行更多讨论。
注意:对于具有大量样本或细胞的数据集,通常只绘制每个样本/细胞的 PC1 和 PC2 分数,并进行可视化。由于这些 PC 解释了数据集中的最大变化,因此期望彼此更相似的样本/细胞将与 PC1 和 PC2 聚集在一起。请参阅下面的真实示例:
图片来源:https://github.com/AshwiniRS/Medium_Notebooks/blob/master/PCA/PCA_Iris_DataSet.ipynb) : //github.com/AshwiniRS/Medium_Notebooks/blob/master/PCA/PCA_Iris_DataSet.ipynb