重生之我在剑桥大学学习单细胞RNA-seq分析——5. scRNA-seq数据的基本质量控制 (QC) 和探索(5)

5.5 标准化实践
我们继续使用Tung数据(下载地址:https://singlecellcourse.cog.sanger.ac.uk/index.html?shared=data/)。

> library(scRNA.seq.funcs)
> library(scater)
> library(scran)
>
> set.seed(1234567)
> umi <- readRDS("data/tung/umi.rds")
> umi.qc <- umi[! rowData(umi)$discard, ! colData(umi)$discard]

5.5.1 对logcounts_raw进行PCA分析
对数变换使数据分组直观(例如,按个体),但对测序深度的依赖性明显。

> umi.qc <- runPCA(umi.qc, exprs_values = "logcounts_raw")
> plotPCA(umi.qc, colour_by = "batch", size_by = "detected", shape_by = "individual")
Tung数据的PCA图(logcounts raw)

5.5.2 对CPM标准化数据进行PCA分析
名为logcounts的assay是大多数绘图和降维函数的默认设置。我们将用各种标准化来填充它并比较结果。每次重新进行标准化或运行PCA时,logcountsPCA reducedDim对象都会被替换。

> logcounts(umi.qc) <- log2(calculateCPM(umi.qc) + 1)
> umi.qc <- runPCA(umi.qc)
> plotPCA(umi.qc, colour_by = "batch", size_by = "detected", shape_by = "individual")
CPM标准化后Tung数据的PCA图

相对对数表达(RLE)图对于评估标准化过程是否成功非常有用。

> plotRLE(umi.qc, exprs_values = "logcounts_raw",colour_by = "batch") + 
    ggtitle("RLE plot for logcounts_raw")
> plotRLE(umi.qc, exprs_values = "logcounts",colour_by = "batch") + 
    ggtitle("RLE plot for log2(CPM) counts")  
logcounts_raw的每个细胞的RLE
log2转换的CPM的每个细胞的RLE

5.5.3 对scran标准化数据进行PCA分析
基于CPM和其他类似的方法都假设所有细胞都含有相似数量的RNA,因此应该产生相似的UMI数。这并不总是正确的。以下方法可在scran和其他几个bioconductoR包中使用,使用聚类来实现标准化,有时被称为通过反卷积进行标准化。首先,让我们进行快速而粗略的聚类。这些聚类看起来与我们的批次非常相似!

> qclust <- quickCluster(umi.qc, min.size = 30)
> table(qclust)
qclust
 1  2  3  4  5  6  7  8 
86 77 81 94 90 88 66 88

接下来,使用聚类来计算尺度因子。第一个函数向colData添加一个名为sizeFactor的列,随后logNormCounts使用了这些值。

> umi.qc <- computeSumFactors(umi.qc, clusters = qclust)
Warning message:
In .guessMinMean(x, min.mean = min.mean, BPPARAM = BPPARAM) :
  assuming UMI data when setting 'min.mean'
> umi.qc <- logNormCounts(umi.qc)

我们现在可以看到对于单个个体和批次具有更高分辨率。

> umi.qc <- runPCA(umi.qc)
> plotPCA(umi.qc, colour_by = "batch",size_by = "detected", shape_by = "individual")
经过scran标准化后的Tung数据PCA图

RLE图也显示出很好的规则图形。

> plotRLE(umi.qc, exprs_values = "logcounts",colour_by = "batch")
Tung数据的细胞RLE

有时scran会产生负或零尺寸因子。这将完全扭曲标准化表达矩阵。我们可以像这样检查scran计算的尺度因子:

> summary(sizeFactors(umi.qc))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.3820  0.7712  0.9525  1.0000  1.1477  3.2692

对于此数据集,所有尺度因子都表现良好;我们将使用此标准化进行进一步分析。如果您发现scran计算出负尺度因子,请尝试增加聚类和池化大小,直到它们全部为正。
5.5.4 对下采样数据进行PCA分析

> logcounts(umi.qc) <- log2(Down_Sample_Matrix(counts(umi.qc)) + 1)
> umi.qc <- runPCA(umi.qc)
> plotPCA(umi.qc,colour_by = "batch",size_by = "detected", shape_by = "individual")
下采样后的Tung数据PCA图
> plotRLE(umi.qc, exprs_values = "logcounts",colour_by = "batch")
下采样标准化的Tung数据的细胞RLE

往期内容:
重生之我在剑桥大学学习单细胞RNA-seq分析——5. scRNA-seq数据的基本质量控制 (QC) 和探索(1)
重生之我在剑桥大学学习单细胞RNA-seq分析——5. scRNA-seq数据的基本质量控制 (QC) 和探索(2)
重生之我在剑桥大学学习单细胞RNA-seq分析——5. scRNA-seq数据的基本质量控制 (QC) 和探索(3)
重生之我在剑桥大学学习单细胞RNA-seq分析——5. scRNA-seq数据的基本质量控制 (QC) 和探索(4)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容