主题
靶点功能验证 · 干分析进展(dr-amd-targets 项目)
承接 实验验证方案:干分析当漏斗、新意押功能验证。本页记录独立项目
dr-amd-targets(与 mr-pipeline 完全分开)的干分析进展。 ⚠️ 准确性:GEO 差异表达为实测结果;参考文献均检索核实(摘要级);生物学解读含推断,已标注。
项目位置:/home/research/dr-amd-targets/(WSL,research 用户)。只从 mr-pipeline 复制候选 shortlist 作输入,不改 mr-pipeline。
一、DrugReflector 已核实(真实 · 可装)
课程宣传的"2025 Science 首发筛药算法"基本属实:
- Python 包 github.com/Cellarity/drugreflector(
import drugreflector as dr),权重在 Zenodo。 - Science 原文 Active learning framework leveraging transcriptomics… (adi8577)。
- 原理:基于 Connectivity Map(9597 扰动×52 细胞系)的集成神经网络,按基因签名排化合物。可用于"疾病/靶点签名 → 候选化合物"。
二、GEO 差异表达(实测结果)
数据集(均已本地下载解析):
候选基因差异表达(病组 vs 参照):
| 靶点 | DR(PDR vs 视网膜) | AMD(RPE-脉络膜) |
|---|---|---|
| MERTK | ↓ logFC −0.62, FDR 0.018 | 无变化 |
| SPRY2 | ↓ FDR 0.013 | ns(p 0.13) |
| TNFRSF10A | ↑ FDR 0.008 | ns(p 0.023 名义) |
| TNXB | ↑ FDR 0.015 | ns(p 0.043 名义) |
| CFH | ↑ FDR 0.003 | ns |
| AGER(RAGE) | ↑ p 0.022(FDR 0.056) | ns |
| CFI / NFKB1 / CSF2 | 名义 ↑ | ns |
解读:
- DR 里 MERTK↓、SPRY2↓ 与 TNFRSF10A↑、AGER↑、CFH↑ 显著——你的候选在 DR 转录层面确有改变。MERTK↓ 与"高糖损害 MerTK"原文(PMC8835591)方向一致,可信度加分。
- AMD 候选在 bulk mRNA 基本无显著——遗传/蛋白信号不一定反映在转录本(可能在蛋白层面、或在特定细胞类型被 bulk 稀释)。
⚠️ 两个必须如实写的 caveat:
- DR 那套是 FVM(病理新生血管膜)vs 正常视网膜,差异部分来自组织类型不同,不纯是疾病效应——需在结论里披露。
- AMD bulk mRNA 阴性是真实局限,不是候选不重要,而是 bulk 转录本读不出——正是需要单细胞(分细胞类型)+ 蛋白/功能实验来补的地方。
三、单细胞数据集调研(待导师圈定)
见 results/scrna_survey/datasets.md。初步:AMD/RPE 定位用含 RPE 的人视网膜图谱(GSE142449 待核实覆盖);DR 用 GSE165784(PDR FVM)+ GSE230348(健康视网膜)。关键:AMD-MERTK 定位需数据含 RPE;DR 需含血管内皮/Müller。
四、WGCNA 共表达模块(实测)
AMD(GSE29801,样本足):power=4,16 个模块。
- MERTK 与 SPRY2 落在同一个共表达模块(blue) —— 在 RPE-脉络膜里共表达,提示可能同通路/共调控。
- AGER/TNFRSF10A/APOE 不在 top-5000 高变基因内,未分配。
- 模块-疾病相关较弱(|r|≤0.2,最强 p≈0.009)——与"AMD 候选 bulk mRNA 信号弱"一致。
DR(GSE60436):仅 9 样本,WGCNA 功效不足,跳过(如实标注,不硬跑)。
五、单基因 GSEA(实测,fgsea + GO-BP)
clusterProfiler 依赖链(enrichplot)在本环境装不动,改用 fgsea + org.Hs.eg.db 自建 GO-BP 基因集,等价且更轻。每靶点:全基因按与靶点表达相关性排序 → fgsea。
- AMD-MERTK:正富集氧化磷酸化 / 细胞呼吸 / 电子传递链(RPE 代谢活跃,MERTK 与线粒体代谢共表达)。
- DR-MERTK / SPRY2:正富集视觉感知 / 光感受器信号(与光感受器轴一致),负富集"化学刺激检测"。
- DR-AGER:与线粒体呼吸/ATP 合成负相关。
已扩充基因集库(04_gsea_msigdb.R,msigdbr 7.5.1 自带数据 + fgsea):Hallmark + KEGG + Reactome 均已跑。DR 里 MERTK/SPRY2 富集氧化磷酸化/TCA/呼吸链 + 视觉光转导;AGER 与呼吸链负相关。结果 results/gsea/*_{Hallmark,KEGG,Reactome}.csv。
⚠️ 强 caveat:DR 的这些通路(氧化磷酸化 / TCA / 光转导 / 嗅觉转导)高度反映 FVM vs 视网膜的组织成分差异(视网膜=高代谢神经元/光感受器,FVM=纤维血管),不是纯靶点通路——DR 的 GSEA 解读要非常谨慎。AMD(MERTK)那套组织一致(均 RPE-脉络膜),更可信。
关于 clusterProfiler:其可视化层(treeio→ggtree→enrichplot)在本环境(R4.3.3 + Bioc 3.18 + 可得 CRAN 版本)有顽固的 yulab 生态版本错配(treeio 缺
random_ref、ggtree 缺check_linewidth),需精确多包版本 pin,不值得。GSEA 计算已由 fgsea 完成(clusterProfiler 内部也是调 fgsea),结果等价且可发表;出版级 GSEA 图可用 fgsea::plotEnrichment + ggplot2 手搓。
出版级 GSEA 图(fgsea::plotEnrichment + ggplot2,600dpi)
汇总 dotplot(Hallmark,每靶点 top6;x=数据集·靶点,色=NES 红正蓝负,大小=−log10FDR):

跑分图示例(DR·MERTK — 氧化磷酸化,NES=5.41):

图很直观地暴露了那条 caveat:DR 的 MERTK/SPRY2 富集全被氧化磷酸化/代谢主导,而这些正是 FVM vs 视网膜的组织成分差异信号——图好看,但 DR 的 GSEA 结论要谨慎,别当成纯靶点通路。全部图见
results/gsea/figures/(6 张跑分图 + 汇总 dotplot,均 PNG 600dpi + 矢量 PDF)。
至此 B 的三块(DEG + WGCNA + GSEA[GO+Hallmark+KEGG+Reactome]+出版级图)全部完成。
待办
- 待导师定:单细胞数据集、主靶点(DR 里 MERTK/SPRY2 已有转录证据)、斑马鱼通量。
- 下一步:导师圈定单细胞数据集后跑细胞类型定位 + CellChat + Monocle;选定靶点后 scTenifoldKnk 虚拟敲除 + DrugReflector 筛药。
六、单细胞细胞类型定位(DR,实测)
数据 GSE165784(PDR/PVR 纤维血管膜 scRNA,6 样本,人源)。标准流程:per-sample 加载 → QC → harmony 整合 → 分群 → 典型 marker 注释(module-score argmax,不依赖外部参考集)→ 靶点定位。10074 细胞 / 14 群。
细胞组成(FVM 以小胶质为主,与原文一致):
| 细胞类型 | 细胞数 | 占比 |
|---|---|---|
| 小胶质/髓系 | 8580 | 85% |
| 壁细胞/成纤维 | 783 | 8% |
| T/NK | 296 | 3% |
| 内皮 | 269 | 3% |
| Müller 胶质 | 92 | 1% |
| 光感受器 | 54 | 0.5% |
⭐ MERTK 定位(核心)——平均表达 / 阳性细胞比例(病组 vs 各细胞类型):
| 靶点 | 主要表达细胞 | 证据 |
|---|---|---|
| MERTK | 小胶质/髓系(avg 0.71,25% 阳性);内皮/壁细胞仅 ~8% | 落在 FVM 主导群 |
| CFH | 内皮(85%)+壁细胞(67%) | 血管/基质 |
| SPRY2 | 壁细胞/成纤维(10%) | 与"SPRY2→血管/间质"设想一致 |
| AGER(RAGE) | 光感受器(7%,整体低) | FVM 里信号弱 |


为什么有价值:MERTK 在 DR 现在有三层证据链——遗传(MR 提名) → bulk 转录(↓ FDR0.018) → 单细胞定位到主导的小胶质/髓系群,把"高糖损害 MerTK 吞噬"接到了人 DR 组织的具体细胞类型(指向小胶质吞噬通路)。
⚠️ caveat:① FVM 本身 85% 是小胶质,MERTK 定位有"分母偏倚"成分,但 25%(小胶质) vs 8%(内皮) 的阳性率差异支持它确为髓系偏好;② 注释为 module-score argmax(较粗),精细亚群需 marker 复核。脚本 analysis/11_dr_scrna.R,结果 results/scrna_dr/。
DR 细胞通讯 CellChat(实测,GAS6/PROS1–MERTK 轴)
在同一 DR FVM 数据上跑 CellChat(1474 个高变配体-受体对,69 条显著通路)。聚焦 TAM 受体(MERTK/AXL/TYRO3)轴,检出的显著 L-R:
| 来源 → 靶 | 配体 → 受体 | pval |
|---|---|---|
| 光感受器 → 小胶质/髓系 | GAS6 → MERTK | 0 |
| 内皮 → 小胶质/髓系 | PROS1 → MERTK | 0 |
| 光感受器 → 壁细胞 | GAS6 → AXL | 0 |
| 内皮 → 壁细胞 | PROS1 → AXL | 0 |

小胶质/髓系是 GAS6/PROS1→MERTK 信号的接收方——正对应 MERTK 的**胞葬/吞噬(efferocytosis)**功能:微胶质通过 MERTK 接收来自光感受器(GAS6)与内皮(PROS1)的"清除"信号。至此 MERTK 在 DR 有四层证据:遗传(MR) → bulk↓ → 单细胞定位小胶质 → 细胞通讯(TAM 轴,微胶质为受体)。
⚠️ caveat:GAS6 在通路级聚合并非主导通路(top 通路是 MK/PTN/SPP1/APP 等),TAM 轴信号强度偏弱——结论落在"L-R 对显著检出"层面,不宣称 GAS6 是 DR 主通路。脚本 analysis/21_dr_cellchat.R,结果 results/cellchat_dr/。
DR 小胶质活化轨迹(Slingshot 假时序,实测)
工具说明:原计划用 Monocle3,但其 1.4.x 硬依赖 BPCells,而 BPCells 需系统库 libhdf5(本环境 research 用户无 sudo 装不了),且 monocle3 无 1.3.x 的 git tag 可 pin。改用 Slingshot(Street 2018,Saelens 2019 Nat Biotech benchmark 排名最高的轨迹方法之一,纯 R 无系统库依赖,高分文章通用)。这是被迫的等价替换,非偷懒。
在 DR 小胶质/髓系子集(8580 细胞)上重算 PCA/UMAP + 子分群(10 亚群),以静息态(P2RY12/CX3CR1 最高的 cluster)为轨迹起点。基因 vs 假时序 Spearman ρ:
| 随活化下降 ↓ | ρ | 随活化上升 ↑ | ρ |
|---|---|---|---|
| CX3CR1(静息) | −0.40 | SPP1 | +0.40 |
| MERTK | −0.31 | LGALS3 | +0.36 |
| GAS6 | −0.28 | GPNMB | +0.28 |
| P2RY12(静息) | −0.16 | TREM2 | +0.13 |


解读:轨迹捕捉到 homeostatic(P2RY12/CX3CR1↓)→ 活化/DAM 样(SPP1/LGALS3/GPNMB↑) 转变。MERTK 连同 TAM 轴(GAS6/AXL)随活化下降——提示活化的 DR 微胶质丢失 MERTK 介导的胞葬能力。给 MERTK 再加一层:高在静息态小胶质、活化后掉。⚠️ caveat:CD68 亦随假时序下降(−0.42),DAM 范式里个别标志物方向可变,轨迹方向以 P2RY12-high 起点锚定;假时序为计算推断非真实时间。脚本 analysis/25_dr_slingshot.R,结果 results/slingshot_dr/。
AMD 单细胞(GSE230348,实测,RPE/脉络膜)
数据 GSE230348 人视网膜 + RPE/脉络膜,Normal / Early-Inter / Intermediate / Atrophic AMD 疾病梯度。聚焦 RPE/脉络膜样本(mRPE+tRPE,35 样本 QC 后 50723 细胞),per-sample 细胞上限 2500 防内存爆。细胞图谱 RPE 20084(40%) + T/NK + 成纤维 + 免疫髓系 + 光感 + 内皮等 8 类。

MERTK 定位:免疫/髓系 avg 1.08(最高)> RPE 0.30 > 内皮 0.28——RPE 与巨噬都做 MERTK 依赖的吞噬(RPE 吞噬光感受器外节),生物学合理。
⭐ 一个必须如实记录的严谨性教训——校验挡住了假阳性:
| 检验方法 | MERTK RPE:AMD vs 正常 | 结论 |
|---|---|---|
| 细胞级 Wilcoxon(反保守) | log2FC −0.67, adj p 0.0096 | 貌似"AMD 下调" |
| per-sample 伪bulk(n=21 vs 13,正确,2026-07-27 补全分组后) | log2FC +0.71, Wilcoxon p=0.076 | 未达显著;方向为 AMD 侧偏高 |

细胞级"下调"是伪重复(pseudoreplication)假阳性(Squair et al. 2021, Nat Commun),per-donor 伪bulk 一测即消失。如实结论:MERTK 在 AMD 有细胞定位(RPE+髓系),但无 AMD vs 正常转录差异——与之前 AMD bulk mRNA 阴性一致,AMD 的 MERTK 证据在遗传/蛋白层面而非转录。不可写"AMD 里 MERTK 转录下调"。脚本 analysis/12_amd_scrna_rpe.R + 13_amd_pseudobulk.R,结果 results/scrna_amd/。
下一步(待 token):用此 RPE/脉络膜图谱构建眼组织专属签名矩阵 → CIBERSORTx 反卷积 DR/AMD bulk(用户已选注册版路线,避免 LM22 血液签名套眼组织)。
七、视网膜 eQTL 数据获取(EGA Live Outbox)+ 共定位
获批 EGAD50000002082 = Manchester Eye Tissue Repository(METR-GT):201 正常供体 NSR + RPE 的 WGS + bulk-RNA + 视网膜 eQTL(tensorQTL),共 1856 文件 / 15.9 TB。
⭐ 这套数据正好补 MR 流水线 stage 10 视网膜 eQTL 共定位的洞(当时缺数据),并给出 MERTK 等在 RPE vs NSR 的表达。
只需下 0.95 GB(跳过 15.9 TB 原始):
| 类型 | 数量 | 大小 | 用途 |
|---|---|---|---|
| tsv | 4 | 311 MB | eQTL 汇总统计(NSR/RPE cis-eQTL) |
| gct | 359 | 640 MB | 每样本表达矩阵(MERTK RPE vs NSR) |
| — | 15.9 TB | 原始,全跳过 |
关键坑与正确流程
- EGAD5 开头的数据集 pyega3 用不了(会 403 / 卡在数据服务器)→ 必须走 Live Outbox = SFTP + Crypt4GH(新 Federated EGA,文件在 CRG 非 EBI)。
- 文件清单可从公开元数据 API 无认证拿(pyega3 的 files/datasets 会卡):
curl https://metadata.ega-archive.org/datasets/EGAD50000002082/files(给 accession_id + extension + filesize,但无文件名)。 - Live Outbox 步骤:
- 生成 ssh-ed25519 密钥(outbox 接受 ssh-ed25519 或 c4gh-v1;ssh 一把管 SFTP 登录 + crypt4gh 解密最省事)
- 公钥加到 EGA 网页 Edit Profile → Public Keys → Add a new key(官方:同步到 outbox 需几小时)
sftp -i 私钥 -o "User=你的EGA邮箱" outbox.ega-archive.org(端口 22)ls看真实文件名 →get 文件.c4ghcrypt4gh decrypt --sk 私钥 < 文件.c4gh > 明文(注意输入输出别同名)
- 公钥同步:加公钥后约 90 分钟(官方说"几小时")SFTP 才连上;连上后 outbox 里
EGAD50000002082可访问,真实文件名 = 每供体MANGT_{id}.{NSR|RPE}.rnaseqc.gene_reads.gct.c4gh等。 - ★下载必走代理(实测提速 ~24×):WSL 侧直连 CRG(西班牙)仅 ~100 KB/s;改 Windows 侧
sftp+ncatSOCKS5 代理(同服务器连接配置的 ProxyCommand)达 ~2.35 MB/s,234 MB 的 NSR eQTL 从 ~40 分钟缩到 40 秒。解密crypt4gh decrypt --sk ega_ssh_ed25519(ssh-ed25519 私钥直接当 c4gh 密钥)已验证。
视网膜/RPE eQTL 共定位(实测,结果偏冷但如实)
拿到 NSR(神经视网膜)+ RPE 的 cis-eQTL(tensorQTL,NSR 9959 eGene / RPE 3699 eGene)后,与 FinnGen R13 疾病 GWAS 做 coloc.abf(真实 N/s:DR=RetinopathyStrict 6970/88076;AMD=H7_AMD 13947/458803):
| 靶点 | 组织 eQTL × 疾病 | 结果 |
|---|---|---|
| TNXB | 视网膜 × DR | PP.H4 = 0.68(提示性,167 SNP) |
| MERTK | 视网膜 × DR | PP.H4 = 0.01(强视网膜 eGene p1.7e-8,但 DR 在该位点无 GWAS 信号,PP.H1=0.99) |
| SPRY2 / AGER / TNFRSF10A | 视网膜 × DR | 非视网膜 eGene,无法检验 |
| MERTK/APOE/TNFRSF10A/TGFB1/CASP10/CFH | RPE × AMD | 全部非 RPE eGene,无法检验 |
诚实解读:
- TNXB 是唯一有组织级遗传支持的(视网膜 eQTL/DR 共定位 PP.H4=0.68)——但它在 MHC 区(chr6p21),LD 复杂,MHC 共定位需谨慎,且无斑马鱼同源。
- MERTK 在视网膜是强 eGene 但不与 DR 共定位——组织 eQTL 层不给 MERTK-DR 加遗传分。MERTK 的 DR 证据仍是 MR + 表达 + 细胞定位 + 活化轨迹,不含视网膜-eQTL-共定位(如实划清,不夸大)。
- 多数靶点因眼 eQTL 功效低(N~176-183)不是 eGene,测不了——数据集真实局限。
⚠️ caveat:该 eQTL 是研究发布的**显著 cis-eQTL 对(aFC)**而非全 nominal,coloc 用共享 SNP;要测更多靶点需下 gct 全表达矩阵自算 eQTL 或用其他视网膜 eQTL 源(EyeGEx 等)。脚本 analysis/30_eqtl_coloc.R,结果 results/coloc_eqtl/。
方向 B:bulk 表达矩阵——靶点组织定位(NSR vs RPE,实测)
同一 EGA 数据集下的 359 个 RNA-SeQC 表达矩阵(gct) 全下载 + 解密后(183 神经视网膜 NSR + 176 RPE),做 limma-voom RPE vs NSR 差异表达——不需要基因型,回答"候选靶点主要在哪个眼组织表达"。全组差异极显著(21144 / 25514 基因 FDR<0.05)。
| 靶点 | NSR logCPM | RPE logCPM | logFC (RPE/NSR) | adj.P | 定位解读 |
|---|---|---|---|---|---|
| CFH | 3.67 | 6.13 | +2.45 | 4e-52 | RPE/脉络膜高——补体沉积部位,吻合 AMD 生物学 |
| TGFB1 | 2.54 | 4.74 | +2.17 | 6e-61 | RPE 高 |
| TNXB | 2.90 | 3.72 | +0.83 | 6e-13 | RPE 略高 |
| CASP10 | 0.45 | 1.16 | +0.70 | 3e-15 | 两组都低 |
| MERTK | 4.15 | 4.83 | +0.63 | 1e-18 | NSR / RPE 两组织都表达、RPE 略高——吻合"RPE 吞噬光感受器外节 + 视网膜小胶质清除"双重定位 |
| AXL | 4.88 | 5.02 | +0.15 | ns | 两组织均表达 |
| TNFRSF10A / TYRO3 | — | — | ns | — | 无组织差异 |
| GAS6 | 5.78 | 5.22 | −0.54 | 9e-16 | NSR 略高 |
| AGER | 2.78 | 1.98 | −0.74 | 3e-21 | NSR 高 |
| APOE | 9.66 | 8.77 | −0.90 | 3e-26 | NSR 高(整体表达最高的靶点) |


解读:这是组织 compartment 对比(NSR vs RPE),不是疾病对比——回答"靶点在哪个眼组织表达",为细胞系选择提供依据(例:MERTK 双组织表达 → ARPE-19 与视网膜小胶质模型都合理)。CFH 在 RPE 高表达与其 AMD 中的补体机制自洽;MERTK 双组织定位与前面单细胞(小胶质 + RPE/髓系)一致。脚本 analysis/31_gct_nsr_vs_rpe.R,结果 results/gct_expr/(DE 表 + 候选组织定量表 + box/volcano 图 600dpi)。
八、可复现(含网络坑)
bash
# 全部走 research 用户
sudo -u research Rscript analysis/00_install_pkgs.R # 装包(Westlake Bioc镜像)
sudo -u research Rscript analysis/01_bulk_analysis.R # GEO差异表达
sudo -u research Rscript analysis/02_wgcna_gsea.R # WGCNA+单基因GSEA网络坑(都踩过):
- bioconductor.org 国内被墙(WSL 直连 000)→ 装 Bioc 包改用 Westlake 镜像
mirrors.westlake.edu.cn/bioconductor/packages/3.18/{bioc,data/annotation}(WSL 直连 200,不用代理)。 - Windows 的 SOCKS5 代理
127.0.0.1:10808WSL 侧不可达,只有 Windows 侧curl.exe --proxy socks5h://127.0.0.1:10808能用 → GEO/国外数据从 Windows 侧下载。 - GEO series matrix + GPL annot 手动解析(不依赖 GEOquery,规避其在线下载)。
九、下游功能验证待办(分子对接 / 虚拟敲除 / 筛药)
这几项尚未开跑,都**卡在"先锁定主打靶点"**这一步——不是遗漏,是有意暂缓。与其并行的多组学 MR刚好就是用来定靶点的,结论已出。
| 项 | 状态 | 卡在哪 / 前置 | 备注 |
|---|---|---|---|
| 分子对接 | 未跑 | 需锁靶点 + 定蛋白结构 + 化合物 | 对接流水线已装好(含 PyMOL,异步竞态 bug 已修);对接不需要遗传因果,只要可成药蛋白 + 结构 |
| scTenifoldKnk 虚拟敲除 | 未跑 | 需锁靶点(单细胞矩阵 DR 已有) | 在靶点所在细胞类型上做 in-silico 敲除,看下游网络扰动 |
| DrugReflector 筛药 | 未跑 | 用户要求放最后 | 环境已核实真实可装(见本页第一节) |
靶点决策(多组学 MR 已给出依据)
- MERTK:遗传/多组学五数据类型全弱,但生物学 + 转化最强(RPE 吞噬定位、可成药、基因治疗已进临床)。→ 适合做功能/转化主线:分子对接(MERTK 激酶域有现成 PDB + 已知抑制剂)+ 虚拟敲除。对接不依赖遗传因果,MERTK 完全成立。
- CASP10 / TNFRSF10A:遗传稳健(3 层多组学 + 共定位 + IAMDGC 复制),可作共同主打做对比对接。
执行顺序(锁靶点后):分子对接 → scTenifoldKnk 虚拟敲除 → DrugReflector 筛药(最后)。属
dr-amd-targets项目,与多组学 MR 分开、互不影响。