当前位置: 首页 > article >正文

SCTransform normalization seurat

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

SCTransform normalization优势

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

用到的包

rm(list = ls())
library(Seurat)
library(tidyverse)
library(SingleR)
library(celldex)
library(RColorBrewer)
library(SingleCellExperiment)
library(ggsci)

示例数据

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

load("./srat1.Rdata")
srat

计算细胞周期评分

4.1 新版基因集

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

cc.genes.updated.2019


4.2 计算评分

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)

SCTransform normalization

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

srat <- SCTransform(srat, 
                    method = "glmGamPoi", 
                    ncells = 8824, 
                    vars.to.regress = c("percent.mt","S.Score","G2M.Score"), 
                    verbose = T)
srat

降维与聚类

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

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)


可视化一下吧。

ncluster <- length(unique(srat[[]]$seurat_clusters))

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

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

稀有细胞marker探索

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

7.1 可视化

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

FeaturePlot(srat,c("PPBP","LILRA4"),
            label = T,
            cols = colorRampPalette(brewer.pal(11, "Spectral"))(10)
            )


7.2 解决方案

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

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)

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

table(srat[[]]$seurat_clusters)


可视化一下吧!~

ncluster <- length(unique(srat[[]]$seurat_clusters))

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

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

 


http://www.kler.cn/news/157511.html

相关文章:

  • C++学习之路(十八)C++ 用Qt5实现一个工具箱(点击按钮以新窗口打开功能面板)- 示例代码拆分讲解
  • 深度学习模型部署与优化:关键考虑与实践策略
  • 重新定义页面滚动条
  • 常见的几种计算机编码格式
  • Oracle(2-9) Oracle Recovery Manager Overview and Configuration
  • IDEA构建springBoot新项目时JDK只有17和21,无法选择JDK8解决方案
  • 采用驱动IC和NMOS的防反电路设计
  • 【问题总结】Docker环境下,将Nacos版本2.0.4升级到2.2.3,操作留档 以及 踩坑记录
  • 【数据结构实验】排序(二)希尔排序算法的详细介绍与性能分析
  • pbootcms建站
  • 记录66666
  • oracle数据库 实例名是区分大小写的
  • nodejs+vue+微信小程序+python+PHP就业求职招聘信息平台的设计与实现-计算机毕业设计推荐
  • pyecharts可视化作图4:行业分布-条形图
  • 网络可信空间|探讨现有网络安全中可信空间建设问题,以及建设可信空间的关键要素
  • node运行报错:error:0308010C:digital envelope routines::unsupported
  • 07、pytest指定要运行哪些用例
  • PTA 7-239 进制转换
  • Redis--14--BigKey 和 热点Key
  • Raspberry Pi 2, 2 of n - Pi 作为 IoT 消息代理