用途:在降维聚类前对 scRNA-seq 数据做预处理,包括去除空液滴/死细胞条码、校正技术偏差、选择信息基因。参考示例基于 scanpy 1.10+、Seurat 5.0+、scran 1.30+,使用前需核对已安装版本(Python 用 pip show 与 help(),R 用 packageVersion() 与 ?函数名),API 不符时应自行适配。
主要能力与流程:规范顺序为加载原始未过滤矩阵、空液滴识别(EmptyDrops 或 CellBender)、环境 RNA 去除(SoupX/DecontX/CellBender,须在质控前)、质控过滤(细胞用 MAD,基因用 min_cells)、双细胞检测(按样本、基于原始计数)、归一化(默认 shifted-log,或 scran/Pearson)、高变基因选择、可选 scaling、HVG 上做 PCA 后建邻接图与聚类。第 1-5 步须按样本分别执行后再合并,否则批次效应会渗入阈值、soup 估计与双细胞打分。
关键用法:Python 侧 calculate_qc_metrics() -> 过滤 -> normalize_total()+log1p() -> highly_variable_genes();R 侧 QC -> NormalizeData() 或 SCTransform() -> FindVariableFeatures() -> ScaleData()。质控用 MAD 自适应阈值(如 log1p_total_counts 5 MAD、pct_counts_mt 3 MAD 加硬阈值 8%),样本深度不同时按样本计算。高变基因需注意输入类型:seurat_v3 与 pearson_residuals 要原始计数,seurat/cell_ranger 要对数归一化数据,seurat_v3 需 n_top_genes 并依赖 scikit-misc。
适用场景:PBMC、实体瘤、snRNA-seq、血液等单细胞/单核数据的预处理。
限制与注意:归一化假设每细胞总 mRNA 近似恒定,对浆细胞、分泌上皮、肝细胞、大神经元及 S/G2M 细胞不成立;线粒体比例混杂凋亡、代谢与解离应激,固定阈值会误删健康实质细胞;环境 RNA 校正工具无共识,不可叠加使用;不建议反射式回归 total_counts 或线粒体比例。资料未提供具体收费、平台与效果数据。