SCTransform normalization seurat

2023-12-04 18:04

本文主要是介绍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.genessrat <- 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)

 

这篇关于SCTransform normalization seurat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/454401

相关文章

Signac R|如何合并多个 Seurat 对象 (2)

引言 在本文中演示了如何合并包含单细胞染色质数据的多个 Seurat 对象。为了进行演示,将使用 10x Genomics 提供的四个 scATAC-seq PBMC 数据集: 500-cell PBMC 1k-cell PBMC 5k-cell PBMC 10k-cell PBMC 构建数据对象 接下来,将利用已经量化的矩阵数据,针对每个数据集构建一个 Seurat 数据对象

Layer Normalization论文解读

基本信息 作者JL Badoi发表时间2016期刊NIPS网址https://arxiv.org/abs/1607.06450v1 研究背景 1. What’s known 既往研究已证实 batch Normalization对属于同一个Batch中的数据长度要求是相同的,不适合处理序列型的数据。因此它在NLP领域的RNN上效果并不显著,但在CV领域的CNN上效果显著。 2. What’s

神经网络训练不起来怎么办(五)| Batch Normalization

Ⅰ,领域背景 训练困境:当 input feature 在不同 dimension 上差距很大的时候,会产生一个非常崎岖的 error surface(误差平面)。这种崎岖多变的误差平面容易导致训练陷入以下的几个困境。 收敛困难:在崎岖的误差表面上,梯度下降等优化算法很容易陷入局部最小值或者鞍点,并且很难继续优化。这会导致模型无法收敛到全局最优解,训练过程变得非常困难。训练速度变慢:由于优化算

深度学习中的Normalization模型

深度学习中的Normalization模型 本文转载自张俊林的知乎专栏[https://zhuanlan.zhihu.com/p/43200897],谢谢大佬的分享。 Batch Normalization(简称BN)自从提出之后,因为效果特别好,很快被作为深度学习的标准工具应用在了各种场合。BN大法虽然好,但是也存在一些局限和问题,诸如当Batc

基于医学图像配准软件 ANTs(Advanced Normalization Tools)提取脑图像数值并与临床量表计算相关

前言: 神经影像学与临床评估的结合正在革新我们对神经精神疾病的理解。本博客聚焦于如何利用先进的医学图像配准软件ANTs(Advanced Normalization Tools)提取脑图像数值,并将其与临床量表进行相关性分析。 目录   一、准备掩模(Mask) 二、准备T-value map T-map 和 Z-map的转化 比较同一结果的T-map和Zmap 三、提取Mask

Layer Normalization(层归一化)里的可学习的参数

参考pyttorch官方文档: LayerNorm — PyTorch 2.4 documentation 在深度学习模型中,层归一化(Layer Normalization, 简称LN)是一种常用的技术,用于稳定和加速神经网络的训练。层归一化通过对单个样本内的所有激活进行归一化,使得训练过程更加稳定。 关于层归一化是否可训练,其实层归一化中确实包含可训练的参数。具体来说,层归一化会对激活值

「Debug R」一个Seurat导致的Rstudio网页版经常被终止的bug

在网页版的Rstuio加载Seurat时,等待了很久都没有成功,刷新网页后就出现了如下的提示   报错信息 测试了其他包,例如ggplot2,都没有任何问题,唯独是Seurat出现了问题,因此我用关键词"seurat cause rsession terminated" 进行搜索,发现有人在Rstudio的社区上提出了这个问题,看来我并不是一个人遇到这个问题。 我尝试里帖子h

深度学习中的Normalization模型(二)

上次我们主要介绍了Batch Normalization,今天接下去介绍其他的正则化方法。 四.Layer Normalization、Instance Normalization及Group Normalization 4.1 Layer Normalization 为了能够在只有当前一个训练实例的情形下,也能找到一个合理的统计范围,一个最直接的想法是:MLP的同一隐层自己包含了若干神经元

深度学习中的Normalization模型(一)

之前一直在做CV相关的工作,一直在用cnn,cnn中有个特别常用的东西叫做归一化,归一化的方法也有很多,用法也各不相同,发现一篇整理的很好的文章,给大家分享一下,文章图文并茂,有原理也有例子,文章有点长,分两次给大家分享,但是这个时间花的很值得,相信大家一定会有收获的。 以下为干货! Batch Normalization(简称BN)自从提出之后,因为效果特别好,很快被作为深度学习的标准工具

BatchNormalization和Layer Normalization解析

Batch Normalization 是google团队2015年提出的,能够加速网络的收敛并提升准确率 1.Batch Normalization原理 图像预处理过程中通常会对图像进行标准化处理,能够加速网络的收敛,如下图所示,对于Conv1来说输入的就是满足某一分布的特征矩阵,但对于Conv2而言输入的feature map就不一定满足某一分布规律了(注意这里所说满足某一分布规律并不是