dsh-bulk-scrna-concordance:Bulk 与单细胞伪 bulk 表达一致性分析

前言

在转录组流程里,同一份生物学样本常会同时有 bulk RNA-seq 和单细胞 RNA-seq。bulk 测的是样本层面的混合表达,单细胞则要按细胞类型或个体等分组汇总成伪 bulk,才能和 bulk 在同一基因维度上对比。手工做 CPM、log2(x+1)、按组求和/平均、再算相关和作图,步骤多且容易在分组名匹配上出错。

DeepSeek Harness(DSH)把能力封装成插件,对话或工作流里可以直接调用工具。下面介绍社区维护的 dsh-bulk-scrna-concordance:在 DSH Host 里注册为 bulk_scrna_concordance,同一套分析也可通过 Python CLI 或 MCP 给 Claude、ChatGPT 等客户端使用。

这是什么

Bulk–scRNA Concordance 用于比较 bulk RNA-seq 表达与单细胞按组汇总后的伪 bulk 轮廓是否一致。维护者为 Wanner122333,仓库 wanner122333/dsh-bulk-scrna-concordance,在 SkillHub 插件目录 中归类为模型推理。插件包名为 @local/dsh-bulk-scrna-concordance(package.json 版本 1.0.0)。

工具输出 Pearson、Spearman 相关、线性回归、可选的分组匹配诊断以及图形;每次运行会记录参数、输入输出哈希和依赖包版本。README 明确说明:这是描述性比较,按组汇总不能代替生物学重复变异估计;可选的 matched–mismatched 相关差距可用于提示异常匹配,但不能证明生物学一致。

核心功能

输入与分析逻辑

  1. 单细胞原始计数:.h5ad,或「基因 × 细胞」矩阵 CSV 加细胞 metadata。
  2. Bulk 表达:基因 × 样本的 CSV/TSV。
  3. 分组:每个细胞有一列分组标签;bulk 样本名须以精确分隔的 token 包含对应分组名。

按组对细胞计数求和,bulk 在同一组内对样本取平均。默认归一化为 CPM,再 log2(x+1);回归与作图以 bulk 为 x、伪 bulk 为 y,基因集合与变换保持一致。

对 .h5ad,默认计数来自 layers['counts'](若存在),否则用 X;可用 --sc-layer <name> 指定层,或用 --sc-use-raw 使用 raw.X。单细胞输入须为原始计数:非有限、负值、非整数会被拒绝;整数型数据仍可能是已变换矩阵,运行前需自行确认来源。

输出物

结果写在 --out-dir 下,主要包括:

文件 内容
<prefix>_results.json 参数、每组统计、诊断与警告(CLI 需 --results-json)
<prefix>_bulk_scrna_correlation_stats.csv 每组统计
<prefix>_discriminability.csv 伪 bulk × bulk 相关矩阵(启用 discriminability 时)
<prefix>_bulk_scrna_correlation.{png,pdf,svg} 散点图(回归线与 y=x)
<prefix>_manifest.json 代码/输入/输出哈希与环境版本
<prefix>_run.log 经 DSH 或 MCP 调用时的分析日志

DSH 与 MCP

  • DSH:注册工具名 bulk_scrna_concordance;安装后若提示 restart-required 需重启 DSH。
  • MCP:安装 requirements-mcp.txt 后运行 python/python/mcp_server.py;通过 stdio 或 Streamable HTTP 暴露同一工具。输入文件须在服务端本机存在;HTTP 默认绑定 loopback且无内置认证,需自行隔离或置于认证代理之后。

环境与依赖

Python 需 numpy、pandas、scipy、matplotlib;读 .h5ad 还需 anndata、h5py。在仓库根目录安装:

python -m pip install -r requirements.txt

可选 MCP 依赖:

python -m pip install -r requirements-mcp.txt

安装与启用

DSH 社区目录与 DeepSeek / 幻方无官方从属关系;安装前请阅读仓库源码与许可证。插件以当前 DSH 进程权限执行 Python 子进程,勿对不可信路径盲目 add。

在 DSH 图形界面

打开 Settings → Plugins,选择包含 package.json 的插件目录(绝对路径)安装 bundle。Desktop 自有 profile 可使用应用内安装器。

通过 CLI 管理 profile

dsh plugin --profile <profile> add /absolute/path/to/dsh-bulk-scrna-concordance

若 profile 所用环境的 PATH 中没有合适的 Python,在 profile 的插件配置中设置 pythonPath(README 示例):

- id: bulk-scrna-concordance
  name: "@local/dsh-bulk-scrna-concordance"
  config:
    pythonPath: /absolute/path/to/python
    defaultTimeoutMs: 1800000
    maxLogLines: 40

安装完成后检查安装结果;需要时重启 DSH。

典型用法

合成数据快速跑通

python python/bulk_scrna_concordance.py \
  --sc-matrix-csv examples/synthetic/sc_expr.csv \
  --sc-meta-csv examples/synthetic/sc_meta.csv \
  --bulk-csv examples/synthetic/bulk.csv \
  --group-col Group --discriminability \
  --out-dir results --out-prefix example \
  --results-json results/example_results.json

真实 .h5ad 数据

python python/bulk_scrna_concordance.py \
  --sc-h5ad /path/to/counts.h5ad --sc-layer counts \
  --bulk-csv /path/to/bulk.csv --group-col Group \
  --out-dir results --out-prefix my_run \
  --results-json results/my_run_results.json

公开数据示例 GSE77288

README 给出 Tung et al. (2017) 人 iPSC 数据(GSE77288):三位供体、未变换 read counts,去除 92 个 ERCC 列。先准备输入再跑与仓库一致的命令:

python examples/gse77288/prepare.py --out-dir results/gse77288/input-data
python python/bulk_scrna_concordance.py \
  --sc-h5ad results/gse77288/input-data/sc_read_counts.h5ad \
  --bulk-csv results/gse77288/input-data/bulk_read_counts.csv \
  --group-col individual --gene-id-key var_names --discriminability \
  --out-dir results/gse77288 --out-prefix GSE77288_real \
  --results-json results/gse77288/GSE77288_real_results.json

prepare.py 会下载约 13 MB 压缩计数与注释、校验固定 SHA-256,并写入原始计数与 provenance。README 公布的参考运行中,三位供体 Pearson r 约在 0.97 量级(见仓库结果表与 examples/gse77288/results/)。参数、归一化与限制见仓库 docs/usage.md。

MCP 本地服务

python python/mcp_server.py --transport stdio --workspace /path/to/data

客户端配置见仓库 docs/mcp.md。

适用场景与注意

适合:已有 bulk 与单细胞原始计数、需要按组做表达一致性 QC 或方法验证;希望在 DSH 对话里调用 bulk_scrna_concordance,或让 Claude / ChatGPT 通过 MCP 在本地数据目录上触发同一分析。

注意:

  • 分组与 bulk 样本名的 token 匹配规则严格,命名不一致会导致静默错配或诊断告警,需先核对 metadata。
  • 分析耗时与矩阵规模相关;DSH 配置里可将 defaultTimeoutMs 设为较大值(如 README 的 1800000)。
  • MCP 不处理聊天附件上传,只返回统计与产物路径;部署 HTTP 时注意访问控制。
  • 更细的 CLI 参数、MCP 部署与限制以 GitHub README 与 docs/ 为准。

结尾

dsh-bulk-scrna-concordance 把 bulk 与单细胞伪 bulk 的一致性检验做成可复现流水线,并接入 DSH 插件与 MCP,方便在智能体工作流里重复同一套统计与出图。目录页:SkillHub - dsh-bulk-scrna-concordance;源码与示例:GitHub - Wanner122333/dsh-bulk-scrna-concordance。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜