Skip to content

09 · 细胞通讯与活化轨迹

代码目录同 08/home/research/dr-amd-targets/analysis/。 本页讲 MERTK 证据链里最靠后的两层——GAS6/PROS1→MERTK 胞葬轴小胶质活化轨迹是怎么算出来的。 ⚠ 其中活化轨迹这一层已于 2026-07-27 撤下(见本页末),MERTK 由「六层收敛」改为「五层收敛」。

对应脚本21_dr_cellchat.R(通讯)、25_dr_slingshot.R(轨迹)、23_dr_monocle.R未执行,见下方红框


★ 必须先说的一处订正

23_dr_monocle.R 脚本存在但从未成功运行

  • WSL 中 monocle3 未安装requireNamespace("monocle3") 返回 FALSE
  • results/monocle_dr/ 目录不存在,无任何输出
  • 原因见 25_dr_slingshot.R 头部注释:"Substitutes monocle3 (blocked: BPCells needs libhdf5, no sudo)"

因此"monocle3 第二方法交叉验证、方向一致"这一说法目前没有结果支撑,汇报与论文中都不能这样写。 轨迹分析当前只有 Slingshot 一种方法。若要第二方法交叉验证,需先解决 libhdf5 依赖再实跑。


一、细胞通讯 CellChat(21_dr_cellchat.R

输入是 08 存下的 dr_fvm_seurat.rds,分组变量为 celltype

r
cc <- createCellChat(object = GetAssayData(seu, assay="RNA", layer="data"),
                     meta = data.frame(labels = seu$celltype), group.by = "labels")
cc@DB <- CellChatDB.human          # 人类完整配受体库,未按 subset 裁剪
cc <- subsetData(cc)
cc <- identifyOverExpressedGenes(cc)
cc <- identifyOverExpressedInteractions(cc)
cc <- computeCommunProb(cc, type = "triMean")   # ★ triMean = 保守设定
cc <- filterCommunication(cc, min.cells = 10)   # ★ 少于10个细胞的类型不参与
cc <- computeCommunProbPathway(cc)
cc <- aggregateNet(cc)
cc <- netAnalysis_computeCentrality(cc)

两个关键参数要能答出来

参数含义
type = "triMean"三均值CellChat 默认,偏保守——只有在较大比例细胞中表达才算数,比 "truncatedMean" 更不容易出假阳性
min.cells = 1010细胞数少于 10 的细胞类型被剔出通讯网络

TAM 轴的实际结果(TAM_MERTK_axis_communication.csv

MERTK|GAS6|PROS1|AXL|TYRO3 匹配配体/受体/互作名筛出:

source → target配体 → 受体probpval通路
Photoreceptor → Microglia_MyeloidGAS6 → MERTK8.99e−40GAS
Endothelial → Microglia_MyeloidPROS1 → MERTK6.47e−40PROS
Photoreceptor → Mural_FibroblastGAS6 → AXL1.57e−30GAS
Endothelial → Mural_FibroblastPROS1 → AXL1.13e−30PROS

读法:小胶质/髓系确实处在 GAS6/PROS1 的接收端,配体来自光感受器与内皮——与胞葬(efferocytosis)的生物学一致。 但要注意:同样的配体对 AXL(同属 TAM 家族)的 prob 更高(1.57e−3 vs 8.99e−4)。 写作时不能只挑 MERTK 那两行讲,AXL 的信号更强这件事必须一并呈现,否则是选择性报告。


二、活化轨迹 Slingshot(25_dr_slingshot.R

为什么是 Slingshot

脚本注释写明:monocle3 被依赖问题挡住,改用 Slingshot,理由是 Saelens 2019 轨迹方法基准测评中排名靠前。这是一个合理的替代选择,但替代 ≠ 交叉验证

流程与根锚定(最常被追问的一步)

r
mg <- subset(seu, subset = celltype == "Microglia_Myeloid")   # 只取小胶质/髓系
mg <- FindVariableFeatures(nfeatures=2000) → ScaleData → RunPCA(npcs=20)
RunUMAP(dims=1:20) → FindNeighbors(dims=1:20) → FindClusters(resolution = 0.4)

homeo <- c("P2RY12","CX3CR1","TMEM119","SELPLG")     # 稳态小胶质 marker
mg <- AddModuleScore(mg, features = list(homeo), name = "homeo", seed = 1)
start_clus <- names(which.max(tapply(mg$homeo1, mg$seurat_clusters, mean)))   # ★ 根 = 稳态分最高的亚簇

sce <- slingshot(sce, clusterLabels = mg$seurat_clusters,
                 reducedDim = "PCA",          # ★ 在 PCA 上算轨迹,不是 UMAP
                 start.clus = start_clus)

要点

  1. 亚聚类 resolution = 0.4(比 08 的全局 0.5 低,亚状态更粗)
  2. 根不是随便指的,是"稳态四基因模块分最高的亚簇"——这是可复现的客观规则
  3. 轨迹在 PCA 空间学习(UMAP 只用于画图),这是 Slingshot 的推荐做法

沿伪时序的实际相关(Spearman,gene_pseudotime_correlation.csv

CD68     -0.418      TREM2    +0.130
CX3CR1   -0.398      FTL      +0.186
MERTK    -0.307      GPNMB    +0.276
GAS6     -0.282      LGALS3   +0.364
APOE     -0.277      SPP1     +0.395
AXL      -0.228
P2RY12   -0.161
TMEM119  -0.149

轨迹方向自校验通过:稳态标记(P2RY12/CX3CR1/TMEM119)为负、活化标记(SPP1/LGALS3/GPNMB)为正,说明伪时序确实是"稳态→活化"方向,不是反的。

MERTK ρ = −0.307该数值已作废(2026-07-27):它同时受两个人为因素影响 —— ① 混入 1 例非糖尿病 PVR/RRD 样本(贡献 32.6% 小胶质细胞);② 脚本硬编码只取第 1 条支线。 按 PDR 分层重跑后 Slingshot 给出 6 条支线,逐支线方向自校验后, 方向可解释的 3 条中 MERTK ρ = −0.04 / +0.12 / +0.17,均不为负 → 该证据层已撤下。 详见修复前后对比 §5.1

⚠ 一个必须自己先想清楚的弱点

MERTK 的 ρ(−0.307)与稳态标记 CX3CR1(−0.398)处在同一量级。 这意味着 MERTK 的下降可能只是"随稳态程序整体下调",而非独立的生物学事件。 要把它讲成"活化态特异性丢失 MERTK",需要补一步:控制稳态模块分之后 MERTK 与伪时序是否仍相关(偏相关或加协变量的回归)。当前代码没有做这一步


三、这两层的证据分量

能支持不能支持
CellChat小胶质处于 GAS6/PROS1 接收端,通路存在❌ 不能证明该通路在疾病中被改变(没做 AMD/DR vs 正常的差异通讯)
SlingshotMERTK 沿活化轴下降❌ 单方法、无交叉验证;❌ 未排除与稳态程序共变

★ 两者都是描述性的。加上 08 的定位、10 的 bulk 差异,构成"MERTK 功能故事", 但因果遗传层始终不支持 MERTK(coloc H4=0.01、deCODE 与视网膜 eQTL 全阴)。 详见 多组学 MR · 干分析


输出物

results/cellchat_dr/   dr_cellchat.rds, significant_pathways.txt,
                       LR_communication_all.csv, TAM_MERTK_axis_communication.csv
                       figures/ aggregate_interactions.png, pathway_*.png, signaling_role_heatmap.png
results/slingshot_dr/  dr_microglia_slingshot_sce.rds,
                       gene_pseudotime_correlation.csv, track_genes_along_pseudotime.csv
                       figures/ umap_pseudotime.png, umap_MERTK.png, MERTK_vs_pseudotime.png, trend_*.png
results/monocle_dr/    ❌ 不存在(未执行)

上一页 → 08 · 单细胞定位与伪 bulk · 下一页 → 10 · bulk 转录 / WGCNA / GSEA

个人科研与运维文档 · 内容持续修订