专栏首页单细胞天地SCRNA-seq聚类分析(二)

SCRNA-seq聚类分析(二)

回顾

单细胞RNA-seq分析介绍 单细胞RNA-seq的设计和方法 从原始数据到计数矩阵 差异分析前的准备工作 scRNA-seq——读入数据详解 scRNA-seq——质量控制 为什么需要Normalization和PCA分析 scRNA-seq聚类分析(一)

Integrate samples using shared highly variable genes

如果细胞按样本、条件、数据集或模式进行聚类,此步骤可以极大地改进您的聚类和下游分析。如果不确定在不同条件(例如,肿瘤和对照样本)之间期望什么簇或期望某些不同的细胞类型,则首先单独条件执行可能会有帮助,然后再将它们一起研究,以查看在两种条件下是否存在针对细胞类型的条件特定簇。通常,当根据多个条件对细胞进行聚类时,可能会存在特定于条件的聚类,而整合样本可以帮助确保相同的细胞类型聚集在一起。

为了整合,我们将使用SCTransform鉴定出的每种情况下共同的高度可变的基因,然后,我们将“整合”或“协调”这些条件,以覆盖不同群体之间相似或具有“共同生物学特征”的细胞。这些群体可以代表:

  • 不同条件(e.g. control and stimulated)
  • 不同的数据集(例如,在同一样本上使用不同的文库制备方法生成的数据集的scRNA-seq)
  • 不同的模式(例如scRNA-seq和scATAC-seq)

整合是一种强大的方法,它利用这些变化最大的共享源来识别条件或数据集之间的共享亚群[Stuart and Bulter et al. (2018)]。整合的目标是确保一个条件/数据集的细胞类型与其他条件/数据集的相同细胞类型对齐(例如,对照组巨噬细胞与实验刺激组的巨噬细胞对齐)。

具体而言,这种整合方法期望整个群体中至少一个子细胞的子集之间具有“对应”或共享的生物学状态。下图概述了集成分析中的步骤:

具体步骤如下:

  1. 执行典型相关分析(CCA) CCA确定条件/组之间的共享变异源。它是主成分分析的一种形式,因为它可以识别数据中最大的变异源,但前提条件是,条件/组之间有shared or conserved的情况(使用每个样本的3000个变异最大的基因)。 此步骤使用最大的共同变异源大致对齐细胞

注:使用共同的高可变基因是因为它们最有可能代表那些区分不同细胞类型的基因。

  1. 跨数据集中识别标识或 mutual nearest neighbors(MNNs)(有时会识别出不正确的标识): 对于一个条件下的每个细胞,MNNS可以认为是"最好的朋友":
  • 根据基因表达值来识别的细胞在其他情况下最接近的邻居--它是“最好的伙伴”。
  • 执行reciprical分析,如果两个细胞在两个方向上都是“最好的伙伴”,则这些细胞将被标记为锚点,以便将两个数据集“锚定”在一起。

“MNN对中细胞之间表达值的差异提供了对批量效应的估计,通过对许多这样的对进行平均,可以更加精确地估计批量效应。获得校正向量,并将其应用于表达值以执行批量校正。“ [Stuart and Bulter et al. (2018)]

  1. 过滤标识以删除不正确的标识: 通过标识对在其本地邻域中的重叠来评估标识对之间的相似性(错误的锚点会有较低的得分)-相邻的细胞是否有彼此相邻的“最好的伙伴”?
  2. 整合条件/数据集: 使用标识和相应的分数来转换细胞表达值,从而可以整合不同的条件/数据集(不同的样本、条件、数据集、模态)数据。

注意:每个细胞的转换使用每个标识的两个细胞在数据集的标识之间的加权平均值。权重由细胞相似性分数(细胞与k个最近标识之间的距离)和标识分数确定,因此同一邻域中的细胞应该具有相似的校正值。

如果细胞类型存在于一个数据集中,但不存在于另一个数据集中,则这些细胞仍将显示为单独的样本特定簇。

现在,使用我们的SCTransform对象作为输入,让我们执行跨条件的整合。

首先,我们需要指定要使用SCTransform确定的所有3000个变异最大的基因进行整合。默认情况下,此功能仅选择前2000个基因。

# Select the most variable features to use for integration
integ_features <- SelectIntegrationFeatures(object.list = split_seurat, 
                                            nfeatures = 3000) 

然后,我们需要为整合准备SCTransform对象。

# Prepare the SCT list object for integration
split_seurat <- PrepSCTIntegration(object.list = split_seurat, 
                                   anchor.features = integ_features)

现在,我们将执行CCA,find the best buddies or anchors and filter incorrect anchors。对于我们的数据集,这将最多需要15分钟来运行。另外,请注意,控制台中的进度条将保持在0%,但要知道它实际上正在运行。

# Find best buddies - can take a while to run
integ_anchors <- FindIntegrationAnchors(object.list = split_seurat, 
                                        normalization.method = "SCT", 
                                        anchor.features = integ_features)

最后,我们可以integrate across conditions

# Integrate across conditions
seurat_integrated <- IntegrateData(anchorset = integ_anchors, 
                                   normalization.method = "SCT")

保存R对对象

# Save integrated seurat object
saveRDS(seurat_integrated, "results/integrated_seurat.rds")

UMAP可视化

整合后,我们可以使用PCA和Uniform Manifold Approximation and Projection(UMAP)等降维技术来可视化整合后的数据。虽然PCA将确定所有PC,但我们一次只能绘制两个。相反,UMAP将从任意数量的top PCs获取信息,以便在这个多维空间中排列细胞。它将在多维空间中获取这些距离,并尝试在二维中绘制它们。这样,细胞之间的距离代表表达上的相似性。

要生成这些可视化效果,我们需要首先运行PCA和UMAP方法。让我们从PCA开始。

# Run PCA
seurat_integrated <- RunPCA(object = seurat_integrated)

# Plot PCA
PCAPlot(seurat_integrated,
        split.by = "sample")  

通过PCA映射,我们可以看到PCA很好地覆盖了这两个条件。

现在,我们还可以使用UMAP进行可视化。让我们运行该方法和绘图。

# Run UMAP
seurat_integrated <- RunUMAP(seurat_integrated, 
                             dims = 1:40,
                 reduction = "pca")

# Plot UMAP                             
DimPlot(seurat_integrated)        

同样,我们看到使用这两种方法都能很好地对齐这两个条件。有时,如果我们在条件之间拆分绘图,则更容易看到所有单元格是否都很好地对齐,这可以通过向DimPlot()函数添加Split.by参数来实现:

DimPlot(seurat_integrated,
        split.by = "sample")  

当我们与未整合的数据集进行比较时,很明显,此数据集受益于整合!

未完待续……


注:以上内容来自哈佛大学生物信息中心(HBC)_的教学团队的生物信息学培训课程。原文链接:https://hbctraining.github.io/scRNA-seq/schedule/ 点击 “阅读原文” 可直达

References

[1] Stuart and Bulter et al. (2018): https://www.biorxiv.org/content/early/2018/11/02/46014

本文分享自微信公众号 - 单细胞天地(sc-ngs),作者:单细胞天地

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • scRNA-seq聚类分析(一)

    现在我们有了高质量的细胞,在将细胞聚类并确定不同的潜在细胞类型之前,我们需要执行一些步骤。我们的数据集包含来自两个不同条件(Control and Stimul...

    生信技能树jimmy
  • scRNA-seq Clustering quality control

    为了确定我们的分群是否可能是由于细胞周期阶段或线粒体表达等人工因素造成的,可视化探索这些指标以查看是否有任何簇表现出富集或与其他簇不同,这是很有用的。然而,如果...

    生信技能树jimmy
  • scRNA-seq—质量控制

    单细胞RNA-seq分析介绍 单细胞RNA-seq的设计和方法 从原始数据到计数矩阵 差异分析前的准备工作 scRNA-seq—读入数据详解

    生信技能树jimmy
  • scRNA-seq聚类分析(一)

    现在我们有了高质量的细胞,在将细胞聚类并确定不同的潜在细胞类型之前,我们需要执行一些步骤。我们的数据集包含来自两个不同条件(Control and Stimul...

    生信技能树jimmy
  • 单精度浮点数的取值,表示以及相关

    可以表示的范围为±3.40282 * 10^38(1.1111…1×2^127)即:

    用户1148523
  • python将print输出结果写入文件

    重定向标准输出流有两种方式,既可以在每个print方法中进行重定向,如下所示:

    种花家的奋斗兔
  • 浅入深出Vue:代码整洁之去重

    字面上意思:去除重复,在项目中,不可避免的会出现重复代码。但是如果不好好去处理这些重复代码,那很有可能就会给你很多“惊喜”。

    若羽
  • 2020就业形势报告:计算机相关行业仍是最热,人工智能聚集北上广深

    而与下滑的招聘需求形成严重矛盾的是高校毕业生规模的扩大。根据教育部数据,2020年我国高校毕业生达874万人!

    新智元
  • VMware 12 下 Ubuntu 16.04 安装图文教程

    本文为大家分享了VMware 12 下 Ubuntu 16.04 安装教程,供大家参考,具体内容如下

    砸漏
  • 谷歌的十种搜索技术创新

    大数据文摘

扫码关注云+社区

领取腾讯云代金券