空间转录组数据分析中有个比较重要的概念就是细胞生态位(niche),简单理解就是组织中一组具有特定细胞类型组成和功能的空间区域。它通常描述的是一种稳定的空间结构或微环境,反映了细胞在组织中的分布模式以及它们在生理和病理过程中扮演的角色。生态位通常通过聚类分析基于每个空间点(spot)的细胞组成来定义。例如,心肌梗塞研究文章Spatial multi-omic map of human myocardial infarction中定义了纤维化生态位、炎症生态位等;功能性意义:每种生态位代表一种特定的生物学过程或组织状态,如纤维化、免疫反应或正常心肌收缩;空间分布稳定性:生态位通常在特定组织区域中有较为一致的分布模式,例如纤维化生态位集中于纤维化区域,炎症生态位集中于缺血或损伤区域。今年2月份发表在Nature Genetics上的一篇空间转录组学揭示与肺纤维化中远端肺重塑相关的分子生态位失调文章中,着重分析了细胞生态位和分子生态位。
整个文章的故事起点就是下面的细胞niche和分子niche
文章一句话简单概括了细胞niche是怎么计算的,用的是Seurat5里的BuildNicheAssay函数,先找每个细胞最近邻的25个细胞,然后K-means无监督聚类,今天介绍下我们自己用python重写的函数实现。
使用10x官方Xenium肺癌示例数据(只有一个样本),结果展示如下:
1. 细胞niches空间原位映射
2. 各样本niches占比统计
3. 各niche中不同细胞类型占比统计
4. 各niches中各细胞类型占比dotplot
以下是python实现细胞niche分析的全部代码
细胞niche计算