指导
之前我们整合了高质量的细胞,现在想知道细胞群中不同的细胞类型,所以下面进行“细胞降维分析”。
全过程
Learning objectives Describe the way to evaluating the number of principal components for dimensional reduction 根据重要的主成分对单元格进行降维 1.目标 2.挑战 3.建议 4.设置
在开始之前,创建一个名为 clustering.R 的新脚本。
接下来,让我们加载我们需要的所有库。
# 单细胞聚类
# 加载包
library(Seurat)
library(tidyverse)
library(RCurl)
library(cowplot)
5. 个人电脑的识别
为了克服 scRNA-seq 数据中任何单个基因表达中广泛的技术噪音,Seurat 根据从最可变基因的综合表达中获得的 PCA 分数将细胞分配到簇中,每个 PC 基本上代表一个“元基因”,结合相关基因组的信息。 为此,确定在降维步骤中包含多少 PC 对于确保我们捕获数据集中存在的大多数变体或细胞类型尤为重要。
在决定将哪些 PC 用于下游降维分析之前,对 PC 搜索很有用。
(a) 探索 PC 的一种方法是使用热图可视化所选 PC 的突变最多的基因,其中基因和细胞按 PCA 分数排序。 这里的想法是观察 PC 并确定驱动它们的基因是否对区分不同的细胞类型有意义。
cells 参数指定具有最高负值或正值 PCA 分数的单元格数以供绘图。
# 利用热图探索 PCs
DimHeatmap(seurat_integrated,
dims = 1:9,
cells = 500,
balanced = TRUE)
热图
如果我们想要搜索大量 PC,这些方法可能很慢并且无法可视化单个基因。 同样,要搜索大量 PC,我们可以通过驱动 PC 的 PCA 分数打印出前 10 个(或更多)阴性和阳性基因。
# 打印出驱动 PC 的可变基因
print(x = seurat_integrated[["pca"]],
dims = 1:10,
nfeatures = 5)
可变基因
(b) 肘部图是确定用于降维的 PC 数量的另一种有用方法,使我们能够捕获数据中的大部分变化。 肘部图可视化了每台 PC 的标准误差,我们正在寻找标准误差开始稳定的位置。 从本质上讲,肘部出现的位置通常是识别大多数变化的阈值。 此外,这些方法可能非常主观。
让我们使用前 40PCs 绘制肘部图:
# 绘制 elbow 图
ElbowPlot(object = seurat_integrated,
ndims = 40)
弯头图
根据这张图,我们可以通过肘部出现在PC8-PC10附近的位置大致判断出大部分的变化,或者有人会认为当数据点开始接近X轴时,PC在30左右。这个给了我们一个非常简单的想法,我们需要包含的PC数量,我们可以用更精确的方式提取这里可视化的信息,这可能更可靠一点。
虽然以上2种方法一般都与Seurat的老方法一起使用,用于变异基因的归一化和鉴定,但已经没有以前那么重要了。 这是因为 SCTransform 方法比旧方法更准确。
较旧的方法将一些变异技术的来源结合到一些更高级的 PC 中,因此 PC 的选择更为重要。 SCTransform 可以更好地捕获残差,并且通常不会在更高的 PC 上包含这种技术变异源。
理论上,使用 SCTransform,我们选择的 PC 越多,在进行降维时考虑的变化就越多,进行降维所需的时间也就越长。 因此细胞生物学题库,对于此分析,我们将使用前 40 个 afterlife blast 集群。
6.降维
Seurat 使用基于图的降维方法将细胞嵌入到图结构中,使用 K 最近邻 (KNN) 图(默认情况下)描绘具有相似基因表达模式的细胞之间的边。 之后,它试图将图形定义为高度互连的“准集团”或社区。
我们将使用 FindClusters() 函数来执行基于图形的降维。 码率是设置下游降维粒度的重要参数,需要单独优化。 对于3000-5000个cell的数据集,将帧率设置在0.4-1.4之间一般会得到更好的降维效果。 较低的帧率值会导致更多的聚类细胞生物学题库,这对于较大的数据集通常是必需的。
FindClusters() 函数允许我们输入一系列帧速率,并将估计降维的粒度。 这对于测试哪个帧率更合适而不必为每个帧率单独运行函数很有用。
# 确定 K 近邻图
seurat_integrated <- FindNeighbors(object = seurat_integrated,
dims = 1:40)
# 确定各种分辨率的簇
seurat_integrated <- FindClusters(object = seurat_integrated,
resolution = c(0.4, 0.6, 0.8, 1.0, 1.4))
如果我们查看 Seurat 对象的元数据 (seurat_integrated@meta.data),每个估计的不同比特率都有一个单独的列。
# 分辨率探索
seurat_integrated@meta.data %>%
View()
对于开始选择的帧率,我们一般选择一个在范围中间的值,比如0.6或者0.8。 我们将从 0.8 的帧速率开始,并使用 Idents() 函数来分配集群标识。
# 分配簇的标识
Idents(object = seurat_integrated) <- "integrated_snn_res.0.8"
要可视化细胞簇,有几种不同的聚类技术可能会有所帮助。 最流行的方法包括 t-SNE 和 UMAP 技术。
这两种方法都旨在将具有相似局部邻域的单元格从高维空间减少到低维空间。 这种方式将要求您输入用于可视化的 PCA 维数,我们建议使用相同数量的 PC 作为降维分析的输入。 在这里,我们将继续使用 UMAP 方法来可视化细胞簇。
# UMAP的计算
# seurat_integrated <- RunUMAP(seurat_integrated,
# reduction = "pca",
# dims = 1:40)
# UMAP 可视化
DimPlot(seurat_integrated,
reduction = "umap",
label = TRUE,
label.size = 6)
UMAP可视化
探索其他比特率也很有用。 它会让您快速了解簇将如何根据比特率参数发生变化。 例如,让我们切换到 0.4 的帧率:
# 分配簇的标识
Idents(object = seurat_integrated) <- "integrated_snn_res.0.4"
# UMAP 可视化
DimPlot(seurat_integrated,
reduction = "umap",
label = TRUE,
label.size = 6)
UMAP可视化
专业资料网:建议开通SVIP超级会员更划算,全站所有资源永久免费下载(正版自考网课除外)
1. 本站所有网课课程资料来源于用户上传和网络收集,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,助力考生上岸!
3. 如果你想分享自己的自考经验或案例,可在后台编辑,经审核后发布在“专业资料网”,有下载币奖励哦!
4. 本站提供的课程资源,可能含有水印,介意者请勿下载!
5. 如有链接无法下载、失效或广告,请联系客服处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 星光不问赶路人,岁月不负有心人,不忘初心,方得始终!