Seurat 基础知识

(一)Seurat的数据结构

版本:3.1.5

直接输入Seurat object的名称,我们可以得到类似如下内容:

An object of class Seurat 13425 features across 39233 samples within 1 assay 

Active assay: RNA (13425 features, 3000 variable features) 3 dimensional reductions calculated: pca, umap, tsne

这个告诉我们当前对象主体是13425(基因数)*39233(细胞数)的矩阵,有一个叫RNA的assay,在这个assay中,我们选择了3000个基因作为variable features(一般用来计算PCA),计算了三种降维:PCA, UMAP, t-SNE。

Assay

The Assay object is the basic unit of Seurat; each Assay stores raw, normalized, and scaled data as well as cluster information, variable features, and any other assay-specific metadata. Assays should contain single cell expression data such as RNA-seq, protein, or imputed expression data.

默认情况下,我们的seurat对象中是一个叫RNA的Assay。在我们处理数据的过程中,做整合(integration),或者做变换(SCTransform),或者做去除污染(SoupX),或者是融合velocity的数据等,我们可能会生成新的相关的Assay,用于存放这些处理之后的矩阵。在之后的处理中,我们可以根据情况使用指定Assay下的数据。不指定Assay使用数据的时候, Seurat给我们调用的是Default Assay下的内容。可以通过对象名@active.assay查看当前Default Assay,通过DefaultAssay函数更改当前Default Assay。Assay数据中,counts为raw,data为normalized,scale为scaled。

调用Assay中的数据的方式为,以调取一个名为PBMC的Seurat对象中Assay integrate中的nomalized数据为例:

PBMC@assays$RNA@data

meta.data

元数据,对每个细胞的描述。一般计算的nFeature_RNA等信息就以metafeature的形式存在Seurat对象的metadata中。计算的分类信息一般以RNA_snn_res.x(x指使用的resolution)存放在metadata中。

调取metadata中metafeature值的方式有多种,以调取一个名为PBMC的对象中stim这个metafeature为例:

方法1:PBMC[["stim"]]

方法2:PBMC$stim

reductions

降维之后的每个细胞的坐标信息。

以调取一个名为PBMC的对象中PCA embedding (也就是坐标)信息为例:

PBMC@reductions$pca@cell.embeddings

rownames(object) 获取的是全部基因

colnames(object)获取的是全部细胞id

VariableFeatures(object)获取当前object的Variable feature

levels(object)获取当前object的分类信息 

(二)Seurat中包含的函数

Seurat 提供了非常丰富的函数来协助单细胞数据分析,我想先把这些函数主要分为下面几种:

其一是用于提取数据的函数

    包括subset, WhichCell, VariableFeatures, Cells

其二是用于处理数据的函数

    包括NormalizeData, RunPCA, RunUMAP

其三是用来展示数据的函数

    包括DotPlot, DoHeatmap, DimPlot, UMAPPlot, DimPlot, FeaturePlot

1 用于提取数据的函数

对Seurat对象结构有所了解之后,我们其实可以直接在Seurat对象中提取数据。可能为了方便,Seurat也提供了一些函数来帮助我们提取一些我们想要的数据。

这里用一些例子来做实际说明

1.1 提取细胞ID

获取整个object的细胞ID:Cells(object),colnames(object)

按照idents获取部分细胞ID:WhichCells(object, idents = c(1, 2))

按照基因表达获取部分细胞ID:WhichCells(object, expression = gene1 > 1), WhichCells(object, expression = gene1 > 1, slot = "counts")

1.2 提取包含部分细胞的对象

按照细胞ID提取:subset(x = object, cells = cells)

按照idents提取:subset(x = object, idents = c(1, 2))

按照meta.data中设置过的stim信息提取:subset(x = object, stim == "Ctrl")

按照某一个resolution下的分群提取:subset(x = object, RNA_snn_res.2 == 2)

当然还可以根据某个基因的表达量来提取:subset(x = object, gene1 > 1),subset(x = object, gene1 > 1, slot = "counts")

1.3 提取降维之后的坐标信息

Embeddings(object = object[["pca"]])

Embeddings(object = object[["umap"]])

2 用于处理数据的函数

Seurat作为单细胞数据处理的R包,用于处理数据的函数非常的丰富。这里做一些简单的介绍和总结。

2.1 标准化

一般用的是:NormalizeData()

可以选择的另一种:SCTransform(),SCTransform也不是简单的标准化数据,这个函数会生成data, scale.data, VariableFeature, 然后存在一个叫SCT的assay里

2.2 降维

提供了包括RunPCA, RunUMAP, RunTSNE,在每种降维算法里还可以选择不同的方法

2.3 聚类

FindClusters()

2.4 差异分析

分析特定某些idents的差异:FindMarkers(object = object, ident.1 = 1, ident.2 = 2), FindMarkers(object = object, ident.1 = c(1, 2), ident.2 = c(3, 4))

分析每个ident和其他idents的差异:FindAllMarkers(object = object)

2.5 细胞周期

CellCycleScoring(object = object, s.features = s.genes, g2m.features = g2m.genes)

2.6 基因集和的表达

Seurat给了两种选择去考虑一个基因集的整体表达情况。

计算基因模块分值(Calculate module scores for feature expression programs in single cells):AddModuleScore(object = object, features = genes,  name = "Module_Score")

合计基因集表达(Aggregate expression of multiple features into a single feature):MetaFeature(object = , features = genes, meta.name = "Aggregate_Feature")

3. 用来展示数据的函数

数据的展示对于数据分析来说尤为重要,Seurat提供了多种类型的展示方式,在结果展示方面给我们提供了很多选择。而且由于Seurat很多展示方法的基础是ggplot,所以除了Seurat函数固定的那些参数以外,我们还可以有很多个性化的操作。

3.1 展示降维信息

DimPlot(object = object, reduction = reduction.name, group.by = groups, label = T)

其中,展示特定降维方法:UMAPPlot, TSNEPlot

3.2 基于降维结果展示数据表达

FeaturePlot(object = object, features = c("gene1", "gene2", "gene3", "gene4")),也可以是meta.data里的值

3.3 Violin Plot

VlnPlot(object = merged, features = c("nFeature_RNA", "nCount_RNA", "gene1", "gene2"), ncol = 2, pt.size = 0.1)

VlnPlot(object = merged, features = c("gene1", "gene2", "gene3", "gene4"), ncol = 2, pt.size = 0.1, slot = "counts")

3.4 DotPlot 

DotPlot(object = object, features = genes)

3.5 DoHeatmap

DoHeatmap(object = object, features = genes)

由于不同cluster细胞数目不同,建议抽样之后再画

DoHeatmap(object = object, features = genes, cells = downsampledCells)

3.6 Scatter Plot

两个feature的Scatter: FeatureScatter(object = object, feature1 = feature1, feature2 = feature2)

两个细胞所有feature的Scatter:CellScatter(object = object, cell1 = cell1, cell2 = cell2) 



reference:https://www.bilibili.com/read/cv7142541?spm_id_from=333.999.0.0

seurat基础知识

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容