1. 从“看见”到“看清”单细胞与空间技术的联手大家好我是老张在生物信息分析这个行当里摸爬滚打了十几年尤其是这几年单细胞和空间组学火得一塌糊涂我经手处理的数据集没有一千也有八百了。今天想和大家聊聊一个特别有意思的研究它把单细胞RNA测序scRNA-seq和空间转录组学这两项“黑科技”拧成了一股绳去深挖子宫内膜癌这个“沉默杀手”内部不为人知的秘密。很多刚入门的朋友可能会觉得单细胞测序不就是把细胞一个个分开看基因表达吗空间转录组不就是看这些表达发生在组织的哪个位置吗两者结合能有什么新花样我一开始也这么想但实际做下来才发现这“11”产生的效果远大于2它让我们从“看见细胞在干什么”进化到了“看清细胞在哪儿、跟谁说话、说了什么悄悄话”。就拿子宫内膜癌来说传统的批量测序Bulk RNA-seq就像一杯混合果汁告诉你这里面有苹果味、橙子味但分不清具体是哪个苹果细胞贡献的酸哪个橙子细胞贡献的甜。而scRNA-seq技术就像拥有了一个超级精细的滤网能把每个水果细胞都单独分离、榨汁、品尝。我们终于能区分出肿瘤里具体有哪几类细胞嚣张的癌细胞、助纣为虐的成纤维细胞、功能各异的免疫细胞等等。但这还不够因为我们不知道这些细胞在肿瘤组织里是怎么“排兵布阵”的。一个凶狠的癌细胞如果它孤零零地待在角落和一个被众多“帮手”簇拥在核心的癌细胞破坏力是完全不同的。这时候空间转录组学技术就登场了。它就像给组织切片拍了一张超高清的“基因表达地图”每个像素点spot都记录了该位置所有细胞的基因表达混合信号。虽然单个spot的分辨率还不足以定位到单个细胞但当我们把scRNA-seq得到的“细胞身份词典”和这张“空间地图”结合起来时就能反推出每种细胞类型在组织中的具体分布。这就好比你先通过单细胞技术认识了“张三”T细胞和“李四”癌细胞的长相和说话特征然后在一张集体合照空间数据里通过分析每个区域的声音特征基因表达模式就能推断出“张三”大概站在照片左边“李四”聚集在照片中央。这项研究正是这么干的它先通过scRNA-seq定义了子宫内膜癌微环境中的9个主要细胞群再把它们“映射”回组织切片上直观地看到了上皮细胞癌细胞的来源是如何在空间上占据主导的。2. 抽丝剥茧肿瘤微环境里的“活跃分子”与“沉默帮凶”当我们有了细胞类型清单和它们的空间坐标下一个核心问题自然就是它们之间在交流什么是谁在发号施令谁又在默默执行这就需要用上细胞通讯分析工具了比如这项研究里用到的CellChat。我处理过不少类似的数据这个过程有点像破译一场大型的、嘈杂的无线电报会议。每个细胞都在持续发射和接收着由配体Ligand和受体Receptor这对“密码”组成的信号。分析结果往往非常直观。在这项子宫内膜癌的研究中他们发现上皮细胞是信号发射的“最强广播塔”而内皮细胞构成血管的细胞则是信号的“主要接收站”。这个发现本身就很有启发性。它提示我们癌细胞主要来源于上皮细胞可能正在主动地、高强度地向其周围环境特别是向为肿瘤输送养分的血管系统传递着某种关键信息。那么这条最关键的信息通道是什么呢分析指向了一条名为MK信号通路的途径。MK通路里的关键角色是一个叫做MDK的配体和一个叫做NCL的受体。MDK主要在上皮细胞和纤毛细胞里高表达而它的“接头人”NCL则在几乎所有类型的细胞上都有表达像个无处不在的“信号接收器”。这就构成了一个非常高效的通讯架构少数表达MDK的细胞如癌细胞可以向周围大量表达NCL的细胞包括内皮细胞、免疫细胞等广播信号。研究者进一步深挖把上皮细胞和内皮细胞各自又分成了几个亚群。结果发现上皮细胞中某些更具恶性的亚群比如簇1和簇2正是MDK信号的主要发射源而内皮细胞中一个特定的亚群簇0则是NCL信号的主要接收者并且这个内皮细胞亚群显示出更活跃的血管生成等相关通路。这就像找到了犯罪团伙里的“指挥官”恶性上皮亚群和它直接控制的“行动队”特定内皮亚群而他们之间联络的暗号就是MDK-NCL这对配体-受体。光有单细胞层面的推断还不够万一这只是细胞分离后产生的人工假象呢这时候空间转录组数据的验证就至关重要了。研究者利用空间数据分析了组织切片上相邻“点位”之间的通讯情况。你猜怎么着在空间局部微环境中MDK-NCL相互作用依然位列最活跃的通讯对前茅。这就从空间邻域的角度实锤了这种通讯是真实发生在肿瘤组织原位而不是技术假象。MDK信号在空间上“热点”区域与癌细胞富集区域高度重合这进一步证实了癌细胞正是通过分泌MDK来影响其周边微环境。3. 关键推手MDK-NCL如何为癌细胞打造“免疫避风港”前面的分析告诉我们MDK-NCL这条线很重要但它的具体后果是什么这才是研究最精彩的部分也是与临床治疗潜力直接挂钩的地方。研究者把目光投向了肿瘤免疫微环境。他们利用公共数据库如TCGA的大量样本做了一个非常聪明的关联分析计算每个肿瘤样本的免疫评分ImmuneScore、基质评分StromalScore等指标然后看这些指标与MK通路基因包括MDK和NCL的表达量是什么关系。结果令人印象深刻NCL的表达水平与免疫评分呈显著的负相关。也就是说肿瘤里NCL越高免疫细胞的浸润和活性可能就越低。MDK也显示出类似的趋势。这就像发现了一个“免疫刹车”的标记物。更进一步的生存分析显示与MDK-NCL通路相关的一些基因其高表达与患者较差的预后相关。把这些线索串起来一个合理的逻辑链条就浮现了癌细胞尤其是恶性亚群高表达MDK。MDK作为配体结合到微环境中多种细胞内皮细胞、免疫细胞等表面的NCL受体上。这条通路的持续激活抑制了免疫细胞的功能降低了它们攻击癌细胞的能力即创造了免疫抑制环境。同时该通路还可能“教育”基质细胞如内皮细胞让它们为肿瘤生长提供更有利的支持如促进血管生成。最终导致肿瘤逃脱免疫系统的监视和清除患者预后变差。所以MDK-NCL轴不仅仅是细胞间的一个普通聊天通道它更像是癌细胞用来“驯化”周围环境、为自己打造一个“免疫避风港”的关键工具。它一边给免疫系统“踩刹车”一边给肿瘤的支撑系统“加油门”。这个发现的意义在于它为我们提供了一个非常具体的、可干预的靶点。既然这条通路促进了免疫逃逸那么阻断MDK与NCL的结合是不是就能解除免疫抑制让患者的免疫系统重新识别并攻击癌细胞呢这为开发新的免疫治疗策略比如针对MDK或NCL的抗体或小分子抑制剂提供了坚实的理论依据。4. 实战指南如何复现与拓展这类联合分析看到这里可能有些动手能力强的朋友已经跃跃欲试想用自己的数据试试了。别急我结合自己的经验给大家捋一捋复现和拓展这类分析的关键步骤和容易踩的坑。整个流程可以大致分为四个阶段数据准备与预处理、单细胞图谱构建、细胞通讯分析、空间整合与验证。### 4.1 数据获取与质控万事开头难首先你得有数据。像这项研究一样从GEO、TCGA、EGA等公共数据库下载是常见起点。这里有个小技巧尽量选择同一癌种、平台接近的数据可以减少批次校正的难度。下载的scRNA-seq数据通常是基因-细胞表达矩阵。第一步永远是质控。我用Seurat包R语言居多标准流程一般是# 假设你的数据已经读入为一个Seurat对象名为‘seurat_obj’ # 计算细胞的质量指标 seurat_obj[[percent.mt]] - PercentageFeatureSet(seurat_obj, pattern ^MT-) seurat_obj[[percent.rb]] - PercentageFeatureSet(seurat_obj, pattern ^RP[SL]) # 绘制质控小提琴图直观查看分布 VlnPlot(seurat_obj, features c(nFeature_RNA, nCount_RNA, percent.mt), ncol 3) # 根据分布设置过滤阈值例如 seurat_obj - subset(seurat_obj, subset nFeature_RNA 200 nFeature_RNA 6000 percent.mt 20)过滤掉低质量细胞基因数太少和死细胞线粒体基因比例过高是关键。原始文章里提到了“批次效应”他们用了CCA典范相关分析来整合多个样本。现在Seurat的IntegrateData函数基于锚点的方法更常用效果也很稳定。记住整合前要对每个样本单独进行标准化NormalizeData和找高变基因FindVariableFeatures。### 4.2 细胞分群与注释给细胞发“身份证”质控整合后的数据经过标准化、缩放、降维PCA和聚类如Louvain算法就能在UMAP图上看到不同的细胞群了。接下来是最需要生物学知识的一步细胞类型注释。这没有完全自动化的金标准非常依赖已知的标记基因。# 使用已知的标记基因来可视化辅助判断 FeaturePlot(seurat_obj, features c(EPCAM, PECAM1, CD3D, CD79A, COL1A1, CD68, MS4A2)) # EPCAM上皮PECAM1内皮CD3DT细胞CD79AB细胞COL1A1成纤维CD68巨噬MS4A2肥大 # 也可以使用单细胞参考数据库进行半自动注释如SingleR包 library(SingleR) ref - HumanPrimaryCellAtlasData() # 举例加载一个参考数据集 sce - as.SingleCellExperiment(seurat_obj) # 转换格式 pred - SingleR(test sce, ref ref, labels ref$label.main) seurat_obj$celltype - pred$labels # 将注释结果添加到metadata文章里把细胞分成了9大类并且进一步对上皮和内皮细胞做了亚群分析。亚群分析通常是把某一类细胞提取出来subset重新进行标准化、降维和聚类。这时候关注的标记基因就更细致了比如内皮细胞里区分淋巴内皮LYVE1,PROX1和血管内皮CD34,VWF。### 4.3 细胞通讯推断破译细胞“社交网络”细胞注释好后就可以用CellChat或CellPhoneDB等工具来推断通讯了。我更喜欢CellChat因为它输出结果可视化非常友好而且能整合多个数据集进行比较。library(CellChat) # 创建CellChat对象需要表达矩阵和细胞类型标签 data.input - GetAssayData(seurat_obj, assay RNA, slot data) # 使用标准化后的数据 meta - seurat_objmeta.data cellchat - createCellChat(object data.input, meta meta, group.by celltype) # 设置配体-受体数据库内置人类或小鼠的 CellChatDB - CellChatDB.human cellchatDB - CellChatDB # 识别过表达的配体和受体 cellchat - subsetData(cellchat) # 可选为加快速度可以只保留高表达基因 cellchat - identifyOverExpressedGenes(cellchat) cellchat - identifyOverExpressedInteractions(cellchat) # 计算通讯概率 cellchat - computeCommunProb(cellchat) # 过滤掉细胞数太少的通讯 cellchat - filterCommunication(cellchat, min.cells 10) # 整合所有通路的通讯结果 cellchat - computeCommunProbPathway(cellchat) # 汇总细胞层面的通讯网络 cellchat - aggregateNet(cellchat)运行完后你就可以画出像文章中那样的点图、圆图、和弦图直观地看到哪些细胞在活跃地发出信号如文章中的上皮细胞哪些在接收信号如内皮细胞以及最重要的信号通路如MK通路和配体-受体对如MDK-NCL。### 4.4 空间转录组整合与验证从推断到“目击”这是让分析提升一个档次的关键。你需要有匹配癌种的空间转录组数据如10x Visium数据。核心思路是利用单细胞数据作为参考去反卷积deconvolute空间数据每个spot的细胞组成。常用工具有SPOTlight、Cell2location、RCTD等Seurat也内置了SpatialDecon相关功能。# 假设‘seurat_ref’是你的单细胞参考数据集已注释好‘visium_obj’是空间数据对象 # 使用SPOTlight进行反卷积为例 library(SPOTlight) # 准备数据从单细胞数据提取标记基因 markers - Seurat::FindAllMarkers(seurat_ref, only.pos TRUE, min.pct 0.25, logfc.threshold 0.25) # 运行SPOTlight deconv_result - spotlight_deconvolution( se_sc seurat_ref, counts_spatial visium_objassays$Spatialcounts, clust_vr celltype, # 单细胞数据中的细胞类型列名 cluster_markers markers, n_top NULL # 使用所有标记基因 ) # 将反卷积结果每个spot的细胞类型比例添加到空间对象 visium_obj - AddMetaData(visium_obj, deconv_result$mat, col.name colnames(deconv_result$mat))有了每个spot的细胞组成你就可以结合空间坐标画出细胞类型分布图就像文章中的图5A。更进一步可以用NICHES这样的工具专门分析空间局部邻域内的细胞通讯。它会在每个spot周围定义一个微环境计算其中可能发生的配体-受体互作从而在空间上验证你从单细胞数据中推断出的关键通讯如MDK-NCL是否确实发生在组织的特定区域。这一步的成功能极大地增强你研究结论的说服力。最后别忘了用公共大队列数据TCGA、GEO做关联分析和生存分析把分子发现和临床结局联系起来就像原文中验证NCL与免疫评分负相关那样。这整个流程走下来你就能完成一次从单细胞到空间、从现象到机制、从基础到临床的完整探索了。过程中肯定会遇到各种报错和参数调整的问题别怕这都是常态多查文档、多交流每一个坑踩过去你的功力就增长一分。