作者 (author): LKP kunpeng.liao@abiosciences.com Skill 及脚本参数来源: Chen et al., 2025, Cancer Cell 43, 1656–1676, https://doi.org/10.1016/j.ccell.2025.06.020
细胞组成与共定位分析
条件分组(如 NI High/Low)下细胞类型组成偏好与共现网络。
1. Ro/e(相对富集期望比)
# NI × cell_type 计数矩阵 → chisq.test 期望 → observed/expected
tab <- table(meta$NI, meta$cell_type)
roe <- tab / chisq.test(tab)$expected # >1 富集,<1 缺失
# T 细胞处理:仅保留 T 占比 >= 1% 的样本再单独跑(T 数量巨大稀释其余)
2. Fisher 偏好检验(逐细胞类型 × 条件)
# 每型构建 2×2 表(该型/其余 × High/Low),fisher.test 得 OR 与 p
# BH 校正;剔除 OR 为 0/Inf;signed_or:High 取正 / Low 取负;
# 每型取 |signed_or| 最大组 → 棒棒糖图(calculate_plot_OR)
3. Wilcoxon 样本级比例检验
# 样本级比例 = N_celltype / sample_cells;每型 High vs Low
wilcox.test(prop_high, prop_low, exact = FALSE) # 两组各 >= 2 样本才跑
# BH 校正后与 Fisher 结果交叉验证
4. 共现网络(pairwise Spearman)
# 样本 × 细胞类型比例矩阵,combn 全对 cor.test(method="spearman", exact=FALSE)
# BH 校正后保留 spearman > 0.6 且 p < 0.05 的边
# igraph:graph_from_data_frame
# authority_score(weights=spearman) # 节点权威度
# cluster_edge_betweenness(weights=1/spearman) # 社群
# ggraph:layout="linear", circular=TRUE + geom_edge_arc2(弧形圈图)
# 或 tidygraph:centrality_authority() + group_edge_betweenness(directed=FALSE)
5. 空间侧变体(niche 组成)
# 切片级 niche 比例:每片每 niche 占比
# Low vs High NI:wilcox.test(exact=FALSE) + BH
# niche PCA:prcomp(t(niche×slide 比例矩阵), scale.=FALSE),PC1/PC2 展示分组
输出表约定
NI_roe.csv:Ro/e 矩阵NI_fisher_preference.csv:OR/p/signed_or/最适组NI_sample_wilcoxon.csv:样本级检验cooccurrence_edges_rho_gt_0.6.csv:共现边表
常见坑
- Ro/e 与 Fisher 结论可能不一致:Ro/e 是全局卡方期望,Fisher 是逐型对比,报告时并列展示
- 样本级检验防 pseudo-replicate:细胞级直接比较会夸大显著性,必须汇总到样本/切片级
- Spearman min_rho=0.6 是经验阈值:太低网络过密,社群无意义
- edge_betweenness 权重取倒数:相关高=距离短,weights=1/spearman
- T 细胞单独处理:占比如此之高时与其他型拆开算,否则全部显著负相关
Scan to join WeChat group