起源是我们微信群里的小伙伴发了一张热图,需要让我复现,是一篇Cancer cell的文章,因为我们写过很多热图,所以对这个图无感,原因是看似复杂,可了解complexheatmap的话,这个图不在话下。所以问题在于数据的获取,这个热图使用relative abundance做的热图,也就是细胞占比的相对比例,这倒是很新奇。看看原文描述:“最后,我们对 BrM 生态系统内的凝聚型细胞生态型进行了研究,其中包括 74 种细胞亚型(不包括三种仅存在于 PT 中的亚型)。基于相对细胞丰度采用无监督层次聚类分析,我们推断出了细胞关系和共关联模式,并在 BrM 生态系统中识别出了五种生态类型”。这篇文章是无监督层次聚类的方式,通过对细胞比例进行聚类,划分了物种肿瘤生态模型!

(reference:Pan-cancer human brain metastases atlas at single cell resolution)
而后,又被另外一个小伙伴推了文章,也就是张院士的Cell文章,图可以说是一模一样,但是内在却大有不同。这里采用的是NMF的方式,对细胞比例矩阵进行分解,然后提取因子,对病人TIME进行分类。这篇Cell文章提供了全部代码,可以学习!

(reference:A single-cell atlas reveals immune heterogeneity in anti-PD-1-treated non-small cell lung cancer)
热图我们都会了(公众号检索热图关键词),NMF我们也学习了((视频教程)NMF: 单细胞非负矩阵分解R语言版-数据降维及MetaProgram分析)。那我们具体学习一下文章的描述及方法,解释不到位的还请指正。如果自己遇到这样的数据,需要对病人进行分类的,或许可以借鉴一下,唯一需要的是样本量需要足够大,亚群注释需要足够细致,足够精确。
Patient classification using NMF
为了剖析患者肿瘤免疫微环境的异质性,并揭示不同的免疫相关模式,我们依据所有免疫细胞中各类亚细胞类型的百分比(每种celltype在样本中比例),使用 NMF 将患者分为五组。用于NMF分析的矩阵是经过scale的矩阵。NMF算法大家很熟悉了,先设置多个k值选择最优k,确定好之后再跑NMF。我们测量了在 200 次 NMF 分类过程中同一 NMF 模块中不同免疫细胞亚型共现的频率。我们发现免疫细胞亚型被分组为 5 个共现模块,表明秩为 5 最好地描述了 TIME 异质性。同时也比较了k设置为4,6的结果,发现不理想。分析完成后,使用 extractFeatures() 函数从结果中提取 k 个细胞类型模块(对应于普通的使用基因表达矩阵的分解,就是基因模块)。我们使用 predict() 函数进一步将样本分为 k 个簇。每个簇与一个细胞模块相匹配,该模块呈现其免疫相关模式。通过基础成分热图可视化每个免疫细胞亚型对每个 TIME 亚型的相对贡献。每个患者被分配到一个单一的 TIME 亚型。
Manuscript
原文中结果描述如下:我们推断免疫细胞亚型组成的变化能够反映时间依赖性(TIME)异质性,并计算了每位患者体内每种免疫细胞亚型在总 CD45+ 细胞中的比例。在总共 234 名患者中,有 11 名患者因每位患者体内检测到的免疫细胞数量少于 500 个而被排除在外,随后对剩余的 222 名患者应用非负矩阵分解(NMF)来探索 TIME 异质性,......得到五个不同的 TIME 亚型。每位患者都被分配到一个单一的 TIME 亚型。这五种 TIME 亚型的患者各自表现出免疫细胞亚型模块的显著富集特征。具有第一种 TIME 亚型的患者显示出自然杀伤(NK)细胞和 NK 相似细胞的富集,并被指定为 TIME-NK(NK 富集型)患者)。具有第二种 .......。
复现效果:
