单细胞中MarkerGene的确定:哈佛生信课程学习(二)

搬运自哈佛生物信息课程:《Introduction to Single-cell RNA-seq》
链接:https://hbctraining.github.io/scRNA-seq/lessons/09_merged_SC_marker_identification.html
这也是哈佛单细胞课程中的最后一节

本章主要内容

Goals:

To determine the gene markers for each of the clusters
To identify cell types of each cluster using markers
To determine whether there’s a need to re-cluster based on cell type markers, perhaps clusters need to be merged or split

Challenges:

Over-interpretation of the results
Combining different types of marker identification

Recommendations:

Think of the results as hypotheses that need verification. Inflated p-values can lead to over-interpretation of results (essentially each cell is used as a replicate). Top markers are most trustworthy. Identify all markers conserved between conditions for each cluster
Identify markers that are differentially expressed between specific clusters

我们的聚类分析产生了以下群集:

image.png

我们在聚类分析中有以下问题:

  1. 群集7和20的细胞类型是什么?
  2. 与相同细胞类型相对应的群集是否有生物学意义的差异?
  3. 这些细胞类型有亚群吗?我们是否可以通过识别这些群集的其他标记基因来获得对这些细胞类型特性的更准确的识别?

我们可以使用Seurat探索几种不同类型的标记识别,以获得这些问题的答案。每种都有自己的优点和缺点:

  1. 识别每个群集的所有标记:该分析将每个群集与所有其他群集进行比较,并输出差异表达/存在的基因。
    • 对于识别未知群集和提高假设细胞类型的置信度非常有用。
  2. 识别每个群集的保守标记:该分析首先寻找在每个条件下差异表达/存在的基因,然后报告那些在所有条件下都在群集中保守的基因。这些基因可以帮助鉴定群集的身份。
    • 与多个条件配合使用时,可用于标识跨条件保留的细胞类型标记。
  3. 特定聚类之间的标记识别:该项分析探索了特定簇之间差异表达的基因。
    • 对于从上述分析中确定的似乎代表相同细胞类型(即具有相似标记)的群集之间的基因表达差异很有用。

识别每个群集的所有标记

通常建议在评估单个样本组/条件时使用此类型的分析。通过FindAllMarkers() 函数,我们将每个群集与所有其他群集进行比较,以识别潜在的标记基因。每个群集中的细胞被视为重复的,本质上是通过一些统计检验来执行差异表达分析。

注:默认值为Wilcoxon Rank Sum检验,但也有其他可用选项。

FindAllMarkers()函数有三个重要参数,它们提供了确定基因是否为标记基因的阈值:

logfc.threshold :相对于所有其他群集组合中的平均表达,群集中基因的平均表达的最小log2倍数变化。默认值为0.25。
缺点:
如果平均log2FC不满足阈值,则可能会错过那些在目标簇中的一小部分细胞中表达但不在其他簇中表达的细胞标记。
由于不同细胞类型的代谢输出存在细微差异,可能会返回许多代谢/核糖体基因,这对于区分细胞类型身份没有帮助。

min.diff.pct :群集中表达基因的细胞百分比与所有其他簇中表达基因的细胞百分比之和的最小百分比差异。
缺点:
可能会错过在所有细胞中表达但在该特定细胞类型中高度上调的那些细胞标志物。

min.pct :只测试在两个群体中任何一个的细胞中检测到的最小部分的基因。旨在通过不测试那些很少表达的基因来加快功能。默认值为0.1。
(解释:也就是说,被用来分析的单个基因的数量,最低要占任何一组数据总数的0.1%(默认)及以上才行,不然会被舍弃掉。)

缺点:
如果将其设置为很高的值,则可能会导致许多假阴性,原因是并非在所有细胞中都检测到了所有基因(即使它已被表达)。

这些参数可以理解为是用来限制参与运算的基因数量,并不是所有的基因都用来运算。

我们可以根据需要的严格程度使用这些参数的任意组合。同样,默认情况下,此功能将返回给您同时显示正向和负向表达变化的基因。通常,我们添加一个参数only.pos以选择仅保留积极的更改。查找每个集群标记的代码如下所示:

## DO NOT RUN THIS CODE ##

# Find markers for every cluster compared to all remaining cells, report only the positive ones
markers <- FindAllMarkers(object = seurat_integrated, 
                          only.pos = TRUE,
                          logfc.threshold = 0.25)    

各种条件下保守标记的鉴定

因为我们的数据集中有代表不同条件的样本,所以我们最好的选择是找到保守的标记。此函数按样本组/条件在内部分离出细胞,然后针对所有其他群集(或第二个群集,如果指定,则为第二个群集)执行单个指定群集的差异基因表达测试。针对每种情况计算基因水平的p值,然后使用MetaDE R软件包中的meta分析方法进行跨组组合。

在开始标记鉴定之前,我们将明确设置默认测定,我们希望使用原始计数,而不是集成数据

DefaultAssay(seurat_integrated) <- "RNA"

注意:虽然此函数的默认设置是从“RNA”插槽获取数据,但我们建议您运行上面的代码行,以绝对确保万一活动插槽在您的分析中的上游某处发生更改。原始计数和归一化计数存储在此槽中,用于查找标记的函数将自动提取原始计数。

函数 FindConservedMarkers() 具有以下结构:FindConservedMarkers() 语法:

FindConservedMarkers(seurat_integrated,
                     ident.1 = cluster,
                     grouping.var = "sample",
                     only.pos = TRUE,
       min.diff.pct = 0.25,
                     min.pct = 0.25,
       logfc.threshold = 0.25)

从中可以看到我们前面为 FindAllMarkers() 函数描述的一些参数;这是因为它在内部使用该函数首先在每个组中查找标记。在这里,我们列出了在使用 FindConservedMarkers() 时提供的一些附加参数:

  • ident.1 :该函数一次只评估一个集群;在这里您将指定感兴趣的集群。
  • grouping.var: 元数据中的变量(列标题),它指定将细胞分隔成组

对于我们的分析,我们将相当宽松,只使用大于0.25的log2倍数变化的阈值。我们还将指定仅返回每个群集的正标记。
在一个群集上进行测试,看看它是如何工作的:

cluster0_conserved_markers <- FindConservedMarkers(seurat_integrated,
                              ident.1 = 0,
                            grouping.var = "sample",
                              only.pos = TRUE,
                logfc.threshold = 0.25)
image.png

FindConservedMarkers() 函数的输出是一个矩阵,其中包含按我们指定的群集的基因ID列出的假定标记的排序列表,以及相关的统计数据。请注意,为每个组(在我们的 Case,Ctrl和Stim)计算相同的统计信息集,最后两列对应于这两个组中的组合p值。

  • gene: gene symbol
  • condition_p_val: 未针对条件进行多次测试校正调整的P值
  • condition_avg_logFC: 条件的平均log2FC。正值表示该基因在簇中的表达量更高。
  • condition_pct.1: 在条件群集中检测到该基因的细胞百分比
  • condition_pct.2: 在条件的其他群集中平均检测到该基因的细胞百分比
  • condition_p_val_adj: 基于使用数据集中所有基因的Bonferroni校正。调整后的p值,用于确定显著性
  • max_pval: 按group/condition计算的p值的最大p值
  • minimump_p_val: combined p value

注意:由于每个细胞都被视为复制细胞,这将导致每个组内的p值膨胀!一个基因可能有一个极低的p值<1e-50,但这并不能证明它是一个高度可靠的标记基因。

在查看输出时,我们建议寻找在 pct.1pct.2 之间表达差异较大且logFC较大的标记。例如,如果 pct.1 =0.90和 pct.2 =0.80,则可能没有那么令人兴奋的标记。然而,如果 pct.2 =0.1,那么更大的差异将会很有说服力。同样,我们感兴趣的是表达该标记的大多数细胞是否在我感兴趣的群集中。如果 pct.1 较低,例如0.3,则可能没有那么有意义。如上所述,这两个参数也是运行函数时可能包括的参数。
如上所述,这两个参数也是运行函数时可能包括的参数。

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

推荐阅读更多精彩内容