前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞转录组 | 细胞聚类分析

单细胞转录组 | 细胞聚类分析

作者头像
生信real
发布2022-12-20 09:24:44
1.2K0
发布2022-12-20 09:24:44
举报
文章被收录于专栏:Linux基础入门

前言

单细胞测序的细胞数目成千上万,在后续分析中需要对其进行注释,但是对每一个细胞都进行注释不现实,因此我们需要对这些细胞进行聚类,这样只需要对聚类生成的cluster进行注释就可以了(聚成一类的细胞大概率是相同的细胞类型)。

目前Seurate采用的是谱聚类,基于共享最近邻图和模块化优化的聚类算法识别细胞簇。聚类算法原理请看:你知道scRNA-Seq细胞聚类的算法原理嘛?

本文框架

1. 安装包

如果已经安装,此步请跳过。

代码语言:javascript
复制
install.packages('Seurat')
install.packages('dplyr')
install.packages('tidyverse')
install.packages('patchwork')

2. 加载包

代码语言:javascript
复制
library(Seurat)
library(dplyr)
library(tidyverse)
library(patchwork)

3. 设置工作路径

代码语言:javascript
复制
setwd("D:/sc-seq/BC21")

根据自己数据的存放位置自定义路径。

4. 读取数据

该数据为标准化后储存降维信息的数据,降维数据获取请查看:单细胞转录组 | 数据降维

代码语言:javascript
复制
scRNA <-load("scRNA1.Rdata")

5. 细胞聚类

5.1 构建SNN图(最近邻图)

FindNeighbors函数格式:FindNeighbors(object,dims = 1:10,……)

object:标准化后存储PCA信息的Seurat对象;

dims:设定维度。

代码语言:javascript
复制
# 选取PC数
pc.num=1:15
# 计算K最近邻,构造SNN图
scRNA1 <- FindNeighbors(scRNA1, dims = pc.num) 

5.2 识别细胞簇

FindClusters函数格式:FindClusters(object, resolution = 0.8,……)

object:上一步生成的已经构造SNN图的Seurat对象;

resolution:分辨率参数的值,如果要获得更多/更少的细胞簇,请使用高于/低于1.0的值。

代码语言:javascript
复制
## 识别细胞簇
scRNA1 <- FindClusters(scRNA1, resolution = 1)
## 查看每一类有多少个细胞
table(scRNA1@meta.data$seurat_clusters)
#  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15 
#634 435 404 365 323 306 281 262 214 203 127 114  80  62  30  14 

6. 系统发育分析

代码语言:javascript
复制
scRNA1<-BuildClusterTree(scRNA1)
PlotClusterTree(scRNA1)

7. 聚类结果可视化

7.1 tSNE

① RunTSNE函数格式:RunTSNE(object,dims,……)

object:聚类后的Seurat对象;

dims:指定纬度信息。

② DimPlot函数格式:DimPlot(object,reduction,……)

object:上一步tSNE降维后的Seurat对象;

reduction:降维方式(umap,tsne,pca)

代码语言:javascript
复制
# 对选定的特征运行tSNE降维
scRNA1 = RunTSNE(scRNA1, dims = pc.num)
# 绘制降维图
plot1 = DimPlot(scRNA1, reduction = "tsne") 
#label = TRUE把注释展示在图中
#DimPlot(scRNA1, reduction = "tsne",label = TRUE) 
# 将图输出到画板
plot1

查看图片

7.2 UMAP

参数同tSNE。

代码语言:javascript
复制
# 对选定的特征运行umap降维
scRNA1 <- RunUMAP(scRNA1, dims = pc.num)
# 绘制降维图
plot2 = DimPlot(scRNA1, reduction = "umap")
# 将图输出到画板
plot2

查看图片

7.3 合并tSNE与UMAP

代码语言:javascript
复制
# 合并图片
tSNE_UMAP <- CombinePlots(plots = list(plot1,plot2),nrow=1)
# 将图输出到画板
tSNE_UMAP
# 保存图片
ggsave(filename = "tSNE_UMAP_plot.pdf",tSNE_UMAP,wi = 25,he = 15)

8.保存数据

代码语言:javascript
复制
save(scRNA1,file='scRNA1.Rdata')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信百宝箱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 本文框架
    • 1. 安装包
    • 2. 加载包
    • 3. 设置工作路径
    • 4. 读取数据
    • 5. 细胞聚类
      • 5.1 构建SNN图(最近邻图)
        • 5.2 识别细胞簇
        • 6. 系统发育分析
        • 7. 聚类结果可视化
          • 7.1 tSNE
            • 查看图片
              • 7.2 UMAP
                • 查看图片
                  • 7.3 合并tSNE与UMAP
                    • 8.保存数据
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档