Seurat-单细胞差异表达分析

加载数据

此插图强调了一些在Seurat中执行差异表达的示例工作流程。出于演示目的,我们将使用在第一个指导教程中创建的2700 PBMC对象。您可以在此处下载预先计算的对象。

library(Seurat)
pbmc <- readRDS(file = "../data/pbmc3k_final.rds")

执行默认的差异表达测试

可以通过该FindMarkers函数访问Seurat的大部分差异表达功能。默认情况下,Seurat基于非参数Wilcoxon秩和检验执行微分表达式。这将替换以前的默认测试(“ bimod”)。要测试两组特定细胞之间的差异表达,请指定ident.1ident.2参数。

# list options for groups to perform differential expression on
levels(pbmc)
## [1] "Naive CD4 T"  "Memory CD4 T" "CD14+ Mono"   "B"            "CD8 T"       
## [6] "FCGR3A+ Mono" "NK"           "DC"           "Platelet"
# Find differentially expressed features between CD14+ and FCGR3A+ Monocytes
monocyte.de.markers <- FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono")
# view results
head(monocyte.de.markers)
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 0 -2.617707 0.131 0.975 0
LYZ 0 1.812078 1.000 0.988 0
RHOC 0 -1.611576 0.162 0.864 0
S100A8 0 2.610695 0.975 0.500 0
S100A9 0 2.286734 0.996 0.870 0
IFITM2 0 -1.445771 0.677 1.000 0

结果数据框包含以下列:

  • p_val:p_val(未调整)
  • avg_logFC:两组之间平均表达的对数折叠通道。正值表示该特征在第一组中的表达更高。
  • pct.1:第一组中检测到该功能的像元百分比
  • pct.2:第二组中检测到该功能的单元格的百分比
  • p_val_adj:基于使用数据集中所有特征的bonferroni校正,调整后的p值。

如果ident.2省略该参数或将其设置为NULL,FindMarkers将测试由指定的组ident.1与所有其他单元格之间的差异表达特征。

# Find differentially expressed features between CD14+ Monocytes and all other cells, only
# search for positive markers
monocyte.de.markers <- FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = NULL, only.pos = TRUE)
# view results
head(monocyte.de.markers)
p_val avg_logFC pct.1 pct.2 p_val_adj
S100A9 0 3.860873 0.996 0.215 0
S100A8 0 3.796640 0.975 0.121 0
LGALS2 0 2.634295 0.908 0.059 0
FCN1 0 2.352693 0.952 0.151 0
CD14 0 1.951644 0.667 0.028 0
TYROBP 0 2.111879 0.994 0.265 0

预过滤功能或单元可提高DE测试的速度

为了提高标记发现的速度,特别是对于大型数据集,Seurat允许对特征或单元进行预过滤。例如,在一组细胞中很少检测到的特征或以相似的平均水平表达的特征不太可能被差异表达。所述的实施例的用例min.pctlogfc.thresholdmin.diff.pct,和max.cells.per.ident参数在下面证明。

# Pre-filter features that are detected at <50% frequency in either CD14+ Monocytes or FCGR3A+
# Monocytes
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", min.pct = 0.5))
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 0 -2.617707 0.131 0.975 0
LYZ 0 1.812078 1.000 0.988 0
RHOC 0 -1.611576 0.162 0.864 0
S100A8 0 2.610695 0.975 0.500 0
S100A9 0 2.286734 0.996 0.870 0
IFITM2 0 -1.445771 0.677 1.000 0
# Pre-filter features that have less than a two-fold change between the average expression of
# CD14+ Monocytes vs FCGR3A+ Monocytes
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", logfc.threshold = log(2)))
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 0 -2.617707 0.131 0.975 0
LYZ 0 1.812078 1.000 0.988 0
RHOC 0 -1.611576 0.162 0.864 0
S100A8 0 2.610695 0.975 0.500 0
S100A9 0 2.286734 0.996 0.870 0
IFITM2 0 -1.445771 0.677 1.000 0
# Pre-filter features whose detection percentages across the two groups are similar (within
# 0.25)
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", min.diff.pct = 0.25))
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 0 -2.617707 0.131 0.975 0
RHOC 0 -1.611576 0.162 0.864 0
S100A8 0 2.610695 0.975 0.500 0
IFITM2 0 -1.445771 0.677 1.000 0
LGALS2 0 2.049431 0.908 0.265 0
CDKN1C 0 -1.007729 0.029 0.506 0
# Increasing min.pct, logfc.threshold, and min.diff.pct, will increase the speed of DE testing,
# but could also miss features that are prefiltered

# Subsample each group to a maximum of 200 cells. Can be very useful for large clusters, or
# computationally-intensive DE tests
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", max.cells.per.ident = 200))
p_val avg_logFC pct.1 pct.2 p_val_adj
FCGR3A 0 -2.6177073 0.131 0.975 0
LYZ 0 1.8120776 1.000 0.988 0
S100A8 0 2.6106955 0.975 0.500 0
S100A9 0 2.2867339 0.996 0.870 0
IFITM2 0 -1.4457715 0.677 1.000 0
RPS19 0 -0.7563274 0.990 1.000 0

使用替代测试执行DE分析

当前支持以下差异表达测试:

  • “ wilcox”:Wilcoxon秩和检验(默认)
  • “ bimod”:单细胞特征表达的似然比测试(McDavid等,生物信息学,2013)
  • “ roc”:标准AUC分类器
  • “ t”:学生的t检验
  • “泊松”:假设潜在泊松分布的似然比检验。仅用于基于UMI的数据集
  • “ negbinom”:似然比检验,假设潜在的负二项式分布。仅用于基于UMI的数据集
  • “ LR”:使用逻辑回归框架确定差异表达的基因。构造一个逻辑回归模型,根据每个特征分别预测组成员身份,并将其与似然比检验的空模型进行比较。
  • “ MAST”:将细胞检测率视为协变量的GLM框架(Finak等,Genome Biology,2015)安装说明
  • “ DESeq2”:基于使用负二项式分布的模型的DE (Love等人,Genome Biology,2014)安装说明

对于MAST和DESeq2,请确保单独安装这些软件包,以便将它们用作Seurat的一部分。安装后,可以使用use test.use参数指定要使用的DE测试。

# Test for DE features using the MAST package
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", test.use = "MAST"))
p_val avg_logFC pct.1 pct.2 p_val_adj
LYZ 0 1.812078 1.000 0.988 0
FCGR3A 0 -2.617707 0.131 0.975 0
S100A9 0 2.286734 0.996 0.870 0
S100A8 0 2.610695 0.975 0.500 0
IFITM2 0 -1.445771 0.677 1.000 0
LGALS2 0 2.049431 0.908 0.265 0
# Test for DE features using the DESeq2 package. Throws an error if DESeq2 has not already been
# installed Note that the DESeq2 workflows can be computationally intensive for large datasets,
# but are incompatible with some feature pre-filtering options We therefore suggest initially
# limiting the number of cells used for testing
head(FindMarkers(pbmc, ident.1 = "CD14+ Mono", ident.2 = "FCGR3A+ Mono", test.use = "DESeq2", max.cells.per.ident = 50))
p_val avg_logFC pct.1 pct.2 p_val_adj
S100A9 0 1.759457 0.996 0.870 0
LYZ 0 1.377950 1.000 0.988 0
S100A8 0 1.929894 0.975 0.500 0
FCGR3A 0 -2.044779 0.131 0.975 0
RPS19 0 -1.119358 0.990 1.000 0
IFITM2 0 -1.53​​3646 0.677 1.000 0

致谢

我们感谢MAST和DESeq2软件包的作者的帮助和建议。我们还将用户引向Charlotte Soneson和Mark Robinson 进行的以下研究,该研究对单细胞差异表达测试的方法进行了仔细而广泛的评估。

参考材料:

https://satijalab.org/seurat/v3.1/de_vignette.html

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