scRNA-seq Clustering(二)
Cluster the cells
Seurat使用基于graph的聚类方法,该方法使用K最近邻(KNN)图(默认情况下)将细胞嵌入到图结构中,在具有相似基因表达模式的细胞之间绘制边缘。然后,它试图将该图划分为高度互连的‘quasi-cliques’或 ‘communities’[ Seurat - Guided Clustering Tutorial(https://satijalab.org/seurat/v3.1/pbmc3k_tutorial.html)]。
我们将使用 FindClusters()
函数来执行基于图的分群。resolution
是设置下游聚类分群“granularity”的重要参数,需要针对每个单独的实验进行优化。对于3,000-5,000个单元的数据集,resolution
设置在0.4-1.4之间的通常会产生良好的聚类。分辨率值越高,簇的数量就越多,这对于较大的数据集通常是必需的。
FindClusters()
函数允许我们输入一系列分辨率,来计算分群的“granularity”。这对于测试哪个分辨率最合适非常有帮助,而不必为每个分辨率都单独运行该函数。
# Determine the K-nearest neighbor graph
seurat_integrated <- FindNeighbors(object = seurat_integrated,
dims = 1:40)
# Determine the clusters for various resolutions
seurat_integrated <- FindClusters(object = seurat_integrated,
resolution = c(0.4, 0.6, 0.8, 1.0, 1.4))
如果我们查看Seurat对象的元数据( seurat_integrated@metadata
),则计算出的每种不同分辨率都有单独的列。
# Explore resolutions
seurat_integrated@meta.data %>%
View()
一开始选择分辨率,我们通常选择介于0.6或0.8之间的分辨率。我们将从0.8的分辨率开始,首先使用 Idents()
函数指定分群的标识。
# Assign identity of clusters
Idents(object = seurat_integrated) <- "integrated_snn_res.0.8"
为了可视化细胞群集,有几种不同的降维技术可能会有所帮助。最流行的方法包括 t-distributed stochastic neighbor embedding (t-SNE)(https://kb.10xgenomics.com/hc/en-us/articles/217265066-What-is-t-Distributed-Stochastic-Neighbor-Embedding-t-SNE-) 和Uniform Manifold Approximation and Projection (UMAP) (https://umap-learn.readthedocs.io/en/latest/index.html)技术。
这两种方法的目的都是将高维空间中具有相似局部邻域的细胞放在一起放在低维空间中。这些方法将要求您输入用于可视化的PCA维度的数量,我们建议使用与聚类分析输入相同的PC数量。在这里,我们将继续使用UMAP方法(https://umap-learn.readthedocs.io/en/latest/how_umap_works.html) 来可视化分群。
## Calculation of UMAP
## DO NOT RUN (calculated in the last lesson)
# seurat_integrated <- RunUMAP(seurat_integrated,
# reduction = "pca",
# dims = 1:40)
# Plot the UMAP
DimPlot(seurat_integrated,
reduction = "umap",
label = TRUE,
label.size = 6)
这对 探索其他分辨率 也很有用。它将使您快速了解如何根据分辨率参数更改分群。例如,让我们切换为0.4的分辨率:
# Assign identity of clusters
Idents(object = seurat_integrated) <- "integrated_snn_res.0.4"
# Plot the UMAP
DimPlot(seurat_integrated,
reduction = "umap",
label = TRUE,
label.size = 6)
你的UMAP图与上面的相比怎么样?
与课程中的图像相比,簇的外观可能存在一些变化。特别是,您可能会看到分群标签的不同之处。这主要是软件包版本(主要是Seurat依赖项)稍有不同造成的不幸结果。
如果您的分群看起来与课程中的内容相同,请转到下一节,不用下载任何内容。
如果您的群集看起来与课程中的不同,请单击鼠标右键并将此Rdata 文件(https://www.dropbox.com/s/sz2xpg43xnbv7qx/seurat_integrated.RData.bz?dl=1) 下载到 data
文件夹。它包含我们为该类创建的 seurat_integrated
对象。
下载该大文件后,您需要:
- 解压
- 将该对象加载到R会话并覆盖现有对象:
load("data/seurat_integrated.RData")
我们现在将继续使用0.8分辨率来检查预期细胞类型的质量控制度量和已知标记。再次绘制UMAP,以确保您现在的图像与您在课程中看到的图像相同:
# Assign identity of clusters
Idents(object = seurat_integrated) <- "integrated_snn_res.0.8"
# Plot the UMAP
DimPlot(seurat_integrated,
reduction = "umap",
label = TRUE,
label.size = 6)
未完待续......
注:以上内容来自哈佛大学生物信息中心(HBC)_的教学团队的生物信息学培训课程。原文链接:https://hbctraining.github.io/scRNA-seq/schedule/ 点击 “阅读原文” 可直达。
- 基于图像识别的自动化
- 主从同步中的关键技术解析
- 腾讯织云:DevOps 流水线应用平台践行之路
- 腾讯云 GAME-TECH 沙龙干货回顾:与腾讯云携手出海
- 陈杰:无服务器架构,让云端开发更纯粹
- 王磊:AI 时代物流行业的 OCR 应用
- 张兴华:云端架构助力企业快速成长
- 腾讯云GAME-TECH沙龙干货回顾:腾讯游戏云全球化实践
- 基于内容关键性的高效 FEC 抗网络丢包算法
- 腾讯云GAME-TECH沙龙干货回顾:三七互娱游戏全球化运营心得分享
- 《实现模式》读书总结
- 腾讯云 GAME-TECH 沙龙干货回顾:Eyougame 海外发行实践分享
- 腾讯 AI Lab 副主任俞栋:过去两年基于深度学习的声学模型进展
- 白辉(七公):电商转型难题,看云如何破题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 新版企业远程办公视频通话系统EasyRTC-SFU,如何解决用户登录信息更新不及时的问题?
- 服务应用突然宕机了?别怕,Dubbo 帮你自动搞定服务隔离!
- 33.Python字符串方法find以及与序列解包的技巧结合
- 代码审计从0到1 —— Centreon One-click To RCE
- 一文带你深扒ClassLoader内核,揭开它的神秘面纱!
- 小知识:OGG的TRANLOGOPTIONS MINEFROMACTIVEDG参数
- oracle转postgreSQL修改点
- 重学数据结构(三、队列)
- Jmeter系列(68)- BeanShell 内置变量 prev
- 聊聊java中的哪些Map:(六)ConcurrentHashMap源码分析
- 任意文件包含漏洞的绕过方式
- XXE实体注入漏洞详解
- ent orm笔记2---schema使用(下)
- 零基础Python教程043期 列表的增删改查,彻底学通序列基本操作
- MySQL与JDBC精简笔记