前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🤫 Seurat | 强烈建议收藏的单细胞分析标准流程(SCTransform normalization)(四)

🤫 Seurat | 强烈建议收藏的单细胞分析标准流程(SCTransform normalization)(四)

作者头像
生信漫卷
发布2023-02-24 13:45:40
2.1K0
发布2023-02-24 13:45:40
举报
文章被收录于专栏:R语言及实用科研软件

1写在前面

完成了前面的基础质控过滤以及去除细胞周期的影响后,我们可以开始SCTransform normalization。😘

SCTransform normalization优势:👇

  • 1️⃣ 一个SCTransform函数即可替代NormalizeData, ScaleData, FindVariableFeatures三个函数;
  • 2️⃣ 对测序深度的校正效果要好于log标准化(10万以内的细胞都建议使用SCT);
  • 3️⃣ SCTransform,可用于矫正线粒体细胞周期等因素的影响,但不能用于批次矫正;
  • 4️⃣ 改善信/噪比
  • 5️⃣ 发现稀有细胞

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(Seurat)
library(tidyverse)
library(SingleR)
library(celldex)
library(RColorBrewer)
library(SingleCellExperiment)
library(ggsci)

3示例数据

这里我们还是使用之前建好的srat文件,我之前保存成了.Rdata,这里就直接加载了。

代码语言:javascript
复制
load("./srat1.Rdata")
srat

4计算细胞周期评分

4.1 新版基因集

这次我们用新版的细胞周期基因集。🤩

代码语言:javascript
复制
cc.genes.updated.2019

4.2 计算评分

代码语言:javascript
复制
s.genes <- cc.genes.updated.2019$s.genes
g2m.genes <- cc.genes.updated.2019$g2m.genes

srat <- CellCycleScoring(srat, s.features = s.genes, g2m.features = g2m.genes)
table(srat[[]]$Phase)

5SCTransform normalization

这里我们用一个函数就可以完成。😘

代码语言:javascript
复制
srat <- SCTransform(srat, 
                    method = "glmGamPoi", 
                    ncells = 8824, 
                    vars.to.regress = c("percent.mt","S.Score","G2M.Score"), 
                    verbose = T)
srat

6降维与聚类

我们这里进行一下的标准降维聚类,这里的dims推荐大家尽可能设置的大一些。🧐

代码语言:javascript
复制
srat <- RunPCA(srat, verbose = F)
srat <- RunUMAP(srat, dims = 1:30, verbose = F)
srat <- FindNeighbors(srat, dims = 1:30, verbose = F)
srat <- FindClusters(srat, verbose = F)
table(srat[[]]$seurat_clusters)

可视化一下吧。🥳

代码语言:javascript
复制
ncluster <- length(unique(srat[[]]$seurat_clusters))

mycol <- colorRampPalette(brewer.pal(8, "Set2"))(ncluster)

DimPlot(srat, label = T,
        cols = mycol)

7稀有细胞marker探索

接着我们探索一下血小板树突状细胞marker,分别为PPBPLILRA4。🤜

7.1 可视化

这里我们可以发现在PPBP在一个极小的细胞群中没有被标注出来。

代码语言:javascript
复制
FeaturePlot(srat,c("PPBP","LILRA4"),
            label = T,
            cols = colorRampPalette(brewer.pal(11, "Spectral"))(10)
            )

7.2 解决方案

我们可以通过提高FindClusters函数中的resolution选项来提高聚类数量。🥰 当然最简单的办法就是手动标记啦,这里就不演示啦。

代码语言:javascript
复制
srat <- FindNeighbors(srat, dims = 1:30, k.param = 15, verbose = F)

## Leiden algorithm即algorithm = 4, 需要配置python环境
srat <- FindClusters(srat, verbose = F, algorithm = 4, resolution = 0.95)

看一下现在有多少个聚类吧。👀

代码语言:javascript
复制
table(srat[[]]$seurat_clusters)

可视化一下吧!~

代码语言:javascript
复制
ncluster <- length(unique(srat[[]]$seurat_clusters))

mycol <- colorRampPalette(brewer.pal(8, "Set2"))(ncluster)

DimPlot(srat, label = T,
        cols = mycol)

最后祝大家早日不卷!~


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
  • 4计算细胞周期评分
    • 4.1 新版基因集
      • 4.2 计算评分
      • 5SCTransform normalization
      • 6降维与聚类
      • 7稀有细胞marker探索
        • 7.1 可视化
          • 7.2 解决方案
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档