Files
RGC-ADOA/doc/P2_预研_MitoCarta与liana.md
T

5.3 KiB
Raw Blame History

P2 预研:MitoCarta3.0 结构化资产 + liana+ 复用要点

日期:2026-09-17 | 状态:预研完成,待 P2 执行 P2 聚焦两方向:MitoCarta 线粒体通路精细分析 + liana+ 细胞通讯


1. MitoCarta3.0 结构化资产(已提取,script/18_mitocarta_extract.py

ref/Mouse.MitoCarta3.0.xlsRath et al. 2021, NAR)→ ref/mitocarta3.0/

文件 内容
Mouse_MitoCarta3.0_genes.csv 1140 个小鼠线粒体基因:亚线粒体定位(Matrix 528 / MIM 354 / MOM 110 / IMS 52)、通路归属、证据
MitoPathways.csv 149 条 MitoPathway,层级拆为 L1/L2/L3
MitoPathways_long.csv 基因 × 通路长表(3894 行,1037 基因)
MitoPathways.gmt 全层级 GMT → gseapy prerank 直接可用
MitoPathways_L1.gmt 7 个一级大类 GMT → 模块打分

L1 七大类Metabolism72 子通路/1659 基因次)、Mitochondrial central dogma21/787)、OXPHOS20/672)、Mitochondrial dynamics and surveillance11/238)、Protein import/sorting/homeostasis13/275)、Signaling7/108)、Small molecule transport5/155)。

P2 中用法(对现有分析的增量)

  1. GSEA prerank 补 Hallmark 盲区Hallmark 只有 OXPHOS 一条线粒体通路;用 MitoPathways.gmt 对已有 de_*.csv 重跑 prerank,可分辨 Complex IV 各复合体、mtDNA maintenance、mito-ribosome、Fe-S cluster、线粒体动力学(融合/分裂,OPA1 本体所在)等精细通路的方向。
  2. 与手工基因集交叉核对P0/P1 的 ETC/CI/糖酵解模块是手工整理,用 MitoCarta L2(如 OXPHOS > Complex I)重打分做敏感性核对——若结论一致,正面回应"基因集选择偏倚"质疑。
  3. OPA1 通路定位OPA1 属 Mitochondrial dynamics and surveillance,检查该大类在 RGC2-like 的整体方向(预期受扰),及线粒体自噬条目与作者 fig. S5 的对照。

⚠️ 注意:ref/ 目录原约定只读,本次按用户明确指示将结构化产物存回 ref/mitocarta3.0/(原始 xls 未动),后续同类资产沿用此例。


2. liana+ 复用要点(来自 D:\个人文档\PROJECTS\mg_liana+

该仓库是用户此前课题(microglia Opa1-cko → neuronLIANA+ 0.1.9 全流程),以下直接复用:

2.1 关键兼容性补丁(必须照抄,否则 scipy 1.17/numpy 2.x 下直接报错)

import liana.method._liana_pipe as _lp
def _patched_trimean(a, axis=0):
    arr = a.toarray() if hasattr(a, "toarray") else a.A
    return np.mean(np.quantile(arr, q=[0.25, 0.5, 0.5, 0.75], axis=axis), axis=axis)
_lp._trimean = _patched_trimean
import liana.method.sc._cellchat as _cc
_cc.np.product = np.prod   # numpy 2.x 移除了 np.product
# Windows 控制台 UTF-8
sys.stdout.reconfigure(encoding="utf-8"); sys.stderr.reconfigure(encoding="utf-8")

2.2 核心调用

li.mt.rank_aggregate(adata, groupby="cell_type", resource_name="mouseconsensus",
                     expr_prop=0.1, min_cells=5, n_perms=...)
li.pl.dotplot(liana_res=..., source_groups=..., target_groups=...)
  • 资源优先 mouseconsensus(内置小鼠 LR 库);不足时用 li.rs.get_hcop_orthologs() 映射 human consensus。
  • 差异通讯的务实策略:各条件分别跑 rank_aggregate → 比较 Δmagnitude_rank / Δlr_meansmg_liana+ 的 script/03 即此路线;li.multi.df_to_lr 需 liana≥0.2.0,本环境 0.1.9 不可用,不依赖)。
  • 参考文档已就位:mg_liana+/ref/api.md、Steady-state LR、Prior Knowledge、CCC best practices)。

2.3 迁移到本项目的设计调整

mg_liana+ 做法 本项目调整 原因
cko vs flox 两条件 WT / S1 / S2 三条件分别跑 沿用方向一致性框架:S1∩S2 方向一致且 S1-S2 不"差异"的 LR 对才可信
min_cells=5 microglia WT 仅 8 核、RGC2-like WT 仅 7 核 → 这两类的 WT 侧 LR 近乎不可用,结论限于方向性,与第三轮裁决一致 小样本硬约束
expr_prop=0.1 ⚠️ 深度混杂直接污染 lr_means(WT 非杆核深度 2 倍),Δlr_means 解释须谨慎,优先看 rank 相对变化而非绝对值 P1 已证深度是主 confounder
分组用 cell_type 分组用 cmp_groupMüller / RGC1-like / RGC2-like / Microglia / 其余细胞类型) 与 P1 分组口径一致
聚焦 MG→Neuron 聚焦 Müller ↔ Microglia ↔ RGC 三角 + 候选轴:C3C3aR、ApoeTrem2、Spp1CD44/Itg 家族、补体级联;另可加 Müller→RGC 代谢支持轴(Glul/Slc1a3 谷氨酸循环) AGENTS.md 假设(b)线粒体损伤→炎症→神经元

2.4 复用文件清单

  • script/02_steady_state_lr.py → 改造为本项目 script/19_liana_steady_state.py(补丁 + 三条件循环)
  • script/03_differential_ccc.py → 改造为 script/20_liana_diff.py(三向比较 + 一致性过滤)
  • dotplot/tileplot 可视化模式参考其 05/06/07 脚本(plotnine

3. P2 建议执行顺序

  1. script/19 MitoCarta GSEA prerank(复用 de_*.csv,纯增量,半天内)
  2. script/20 MitoCarta L2 模块敏感性核对(对照手工 ETC/CI 列表)
  3. script/21 liana 三条件稳态 LR(先 3000 核采样跑通,再全量)
  4. script/22 liana 差异通讯 + 一致性过滤 + 候选轴可视化
  5. 汇总进 doc/第一轮分析报告_P2.md