CapMux:一种用于将split-pool scRNA-seq(分裂池单细胞RNA测序)数据早期去复用(demultiplexing)为样本分辨输出结果的Snakemake流程
《Frontiers in Bioinformatics》:CapMux: a Snakemake pipeline for early demultiplexing of split-pool scRNA-seq data into sample-resolved outputs
编辑推荐:
基于分裂池组合条形码(split-pool combinatorial barcoding)的单细胞RNA测序(scRNA-seq)方法能够实现高通量分析,然而样本身份通常在早期条形码步骤中编码而非通过文库索引(index)实现。因此,来自多个生物样本的读段(
基于分裂池组合条形码(split-pool combinatorial barcoding)的单细胞RNA测序(scRNA-seq)方法能够实现高通量分析,然而样本身份通常在早期条形码步骤中编码而非通过文库索引(index)实现。因此,来自多个生物样本的读段(reads)仍保持混合状态,使每样本分析及选择性提取目标样本变得复杂。本文呈献CapMux,一种基于Snakemake的流程(pipeline),用于处理split-pool scRNA-seq数据——从原始测序文件到样本分辨输出结果。CapMux支持从BCL文件或FASTQ文件启动的工作流,并通过整合亚文库(sub-library)索引信息与实验特异性条形码平板布局(barcoding plate layout)来重建样本身份。该流程是为CapSeq方法开发的,但通过指定条形码位置及实验布局可配置用于相关scRNA-seq组合条形码设计。在受控的细胞系混合scRNA-seq实验中,CapMux将混合数据解析为每个样本的输出,实现了独立的质量控制汇总、比对统计、计数矩阵(count matrix)及下游可视化。运行时间基准测试表明二次去复用(secondary demultiplexing)步骤仅增加少量计算开销。综上结果表明,CapMux为从split-pool scRNA-seq数据中恢复样本水平分辨率提供了一个实用且可适应的框架。
论文解读:CapMux——面向Split-Pool scRNA-seq数据的早期样本去复用Snakemake流程
《Frontiers in Bioinformatics》刊载的此研究针对split-pool combinatorial barcoding(分裂池组合条形码,即 plate-based combinatorial indexing)scRNA-seq 数据中样本身份编码于内部条形码而非测序文库index、导致原始数据多样本混杂、无法早期分拆的问题,提出并验证了 CapMux——一个基于 Snakemake 的可配置上游预处理流程(pipeline),可在原始 reads 水平根据亚文库 index 与 BC1 barcoding plate 布局重建样本身份,实现早期 secondary demultiplexing(二次去复用),输出样本分辨的 FASTQ、BAM、基因表达计数矩阵(count matrix)及 QC 报告,为 split-pool scRNA-seq 提供灵活、低额外开销的样本级解混方案。
主要关键技术方法
研究人员使用 Snakemake (v9.16.3) 构建模块化流程,配合 per?rule Conda 环境保证可重复性。流程调用 bcl2fastq (v2.19.0) 做 primary demultiplexing,自写 Python (v3.13.12, pandas v2.2.3) 脚本依据样品表(sample sheet)中 BC1 plate layout 执行 secondary BC1?based demultiplexing,Cutadapt (v5.0) 去除 TSO(模板转换寡核苷酸,template switching oligo),FastQC (v0.12.1) 质控,STAR/STARsolo (v2.7.11b) 比对与单细胞定量,MultiQC (v1.28) 汇总 QC。流程支持 run_mode = "bcl"(起自 BCL)或 "fastq"(起自已 index?demultiplexed FASTQ),demux_by = "bc1"(含 BC1 二次去复用)或 "index"(仅 index 去复用);条形码段(BC1–BC4)、UMI(unique molecular identifier,唯一分子标识符)结构、允许错配数均在 config 文件定义,BC1 whitelist 须按物理板位序(A1–H12)排列于 assets/barcodes 目录。验证采用两组数据:3 鼠源细胞系(Neuro?2a/NIH/3T3/mESC)混合 CapSeq 实验数据集(~1 亿 reads,10 亚文库中 3 样本)及已发表 CapSeq 数据集(12 BC1?defined samples,~10 亿 reads),比对至小鼠 GRCm39 (GENCODE M30),HPC 节点(16 CPU/64 GB RAM)运行,Slurm sacct 记录 wall?clock time,Scanpy (v1.11.4) 做过滤与 UMAP。
2 Results(结果)
2.1 Pipeline architecture and workflow(流程架构与工作流)
CapMux 提供三种执行模式:① run_mode="bcl", demux_by="bc1"——BCL→bcl2fastq 初筛→BC1 二次去复用到样本 FASTQ→条码读段组装(拼接 BC 段+index+UMI、去 linker)→Cutadapt 去 TSO→FastQC→STARsolo 比对及 count matrix→MultiQC;② run_mode="bcl", demux_by="index"——仅 index?based primary demultiplexing,无样本拆分;③ run_mode="fastq", demux_by="bc1"——跳过 BCL 转换直接从 index?demultiplexed FASTQ 开始 BC1 去复用。用户在 config 文件定义 cell barcode(CB/细胞条形码) 由 1–3 段组成及各段起止长度、UMI 是否 split、index read 来源(i7/i5),输出 results 目录下含 demuxed/, mapped/, qc/, logs/ 等子目录及每样本最终产物。结论:该架构兼顾灵活性(可适配不同 barcode 架构)与标准化处理框架。
2.2 Sample demultiplexing: resolving sample identity after combinatorial barcoding(样本去复用:组合条形码后恢复样本身份)
Wet?lab 中样本身份由第一轮 RT 时细胞分配到的 BC1 barcoding plate 位置决定,pooling 与后续多轮 barcoding 后该信息丢失。CapMux 在 primary demultiplexing 后对每个 sub?library FASTQ 提取定义位置的 BC1 序列,对照 sample sheet 提供的 BC1 plate layout 匹配 whitelist(精确或允许 ≤1 bp mismatch via barcode.allow_mismatches),将 reads 分配至对应样本中间 FASTQ,未匹配者写入 undetermined;同时重组完整 CB(各 BC 段+index 序列)与 UMI 生成下游所需 barcode?read FASTQ,同一样本跨 sub?libraries 的中间文件最终合并压缩为 per?sample FASTQ。结论:通过 BC1 序列与实验 plate layout 的映射可可靠重建 lost sample identity,实现 pooled data 的样本水平拆分。
2.3 CapMux showcase in a cell line mixing experiment(细胞系混合实验展示)
3 株鼠细胞分别布于 BC1 plate 不同列(N2a 列1–4,NIH/3T3 列5–8,mESC 列9–12),同批测序后分别以 demux_by="index"(pooled)与 demux_by="bc1"(sample?resolved)运行 CapMux。结果显示:index?only 模式仅产单一合并 QC/STARsolo 汇总及 UMAP;bc1 模式产出三套独立比对统计(align rate、feature assignment)、STARsolo 细胞/基因数/reads per cell 指标及分色 UMAP,各细胞群依原始 BC1 板位正确分离。结论:BC1?based secondary demultiplexing 能有效从 pooled CapSeq 数据恢复样本分辨率,揭示被掩盖的样本间差异。
2.4 Runtime comparison across execution regimes(不同执行模式运行时间比较)
小数据集(~1 亿 reads,3 样本):regime A(bcl+bc1) 均时 44 min 51 s ±1 min 56 s,regime B(bcl+index) 40 min 46 s ±2 min 14 s,regime C(fastq+bc1) 35 min 58 s ±50 s;BC1 去复用增时约 4 min(≈10%)。大数据集(~10 亿 reads,12 样本):regime A 388 min 19 s ±7 min 35 s,regime B 313 min 58 s ±20 min 2 s;增时约 74 min(≈24%)。结论:secondary demultiplexing 引入的运行开销适中,随数据规模比例可控,不因样本拆分显著拖慢整体流程。
讨论与结论总结
Split?pool combinatorial barcoding scRNA?seq 因样本身份内嵌于早期条形码致原始数据多样本混杂,下游方知样本归属。CapMux 在此瓶颈上游(BCL/FASTQ 阶段)结合 sub?library index 与 BC1 plate layout 实施 early secondary demultiplexing,生成 sample?resolved outputs 先于 alignment 与 quantification,区别于 Seurat 或 Scanpy 等下游工具(作用于 count matrix 之后)。虽初为 CapSeq 设计,但允许用户自定义 barcode segments、UMI structure、indexing scheme 及 plate layout,故可推广至其他具相似逻辑的 split?pool 方法,减少新方法开发时重写去复用脚本之需。Benchmark 证实额外计算代价有限。作者指出未来可拓展支持更多 barcode 架构、替代 aligner/quantification 工具、增强 QC 及与下游 workflow 整合;Snakemake 模块化架构便于迭代。研究结论:CapMux 为 split?pool scRNA?seq 数据提供实用、可配置的早期样本去复用框架,能低开销地从 pooled raw data 恢复样本水平分辨率并输出标准下游分析输入文件。