先看结论:先确认矩阵的测量单位和生成过程,再选择方法。DESeq2 的常规计数模型需要未归一化的 counts 或受支持的定量导入流程,不能把 TPM 或 log 表达四舍五入后充当 counts。评分和可视化可以使用适配方法的表达量,但仍需记录变换、输入层和基因覆盖。
适用情况
拿到一个名称含 expression、normalized、counts 或 TPM 的文件,不清楚能否做差异表达、GSVA、ssGSEA 或单细胞评分。
建议按这个顺序检查
- 查原始说明、脚本或数据下载字段,记录平台、单位、是否取对数和是否已经做批次处理。
- 核对行列含义、基因 ID、样本 ID、重复名称、缺失值和数值范围;不能仅凭整数外观认定为原始 counts。
- 计数差异分析使用受支持的原始计数或定量导入路径;不要用 TPM、FPKM 或经过校正的连续值伪装 counts。
- 样本评分按所用方法和版本选择输入与参数;芯片标准化值、log 表达和单细胞层不是可随意替换的对象。
- 每张结果表附上输入类型、变换、软件版本和对照方向,以便检查方向或尺度差异。
输入与任务对照表
| 输入 | 常见用途 | 需要避开的操作 |
|---|---|---|
| 未归一化基因 counts | 计数模型差异分析;之后另作变换 | 先转 TPM 再运行常规 DESeq2 |
| TPM / FPKM | 描述表达;按方法要求变换后评分 | 四舍五入当成原始计数 |
| 芯片标准化表达 | 匹配设计的 limma 分析或评分 | 套用测序文库大小归一化 |
| Seurat data / scale.data 等层 | 依方法使用指定层 | 把缩放残差当绝对表达或 counts |
依据:DESeq2 官方教程:输入、设计矩阵与技术重复 · Bioconductor:limma 软件介绍与用户指南入口 · Seurat v5:assay、layer 与数据访问
一个“看起来正确”但会出错的例子
示意情境:下载的表达表全是小数,运行 DESeq2 后提示不是整数。先回到数据来源确认单位;如果是 TPM,就不能用 round() 消除报错后继续解释为计数分析。若原始文件来自 Salmon 等定量工具,应查受支持的 tximport 等导入路径,不能把全部小数输入一概判成非法。
另一个常见问题是对已经 log2 变换的芯片矩阵再次 log2。数值范围只能帮助发现疑点,真正的依据应是原始处理记录。来源无法确认时,把输入标记为“单位待确认”。
先检查样本是否对齐
此检查可发现样本集合和顺序问题,不能证明文件单位正确。正式流程还需核对重复生物样本、供体和批次。
# 人工构造示例;真实分析必须提供 sample_id 列
x <- matrix(c(10, 20, 12, 18), nrow = 2,
dimnames = list(c('DEMO_A','DEMO_B'), c('S1','S2')))
meta <- data.frame(sample_id = c('S2','S1'), group = c('case','control'))
stopifnot(!anyDuplicated(colnames(x)), !anyDuplicated(meta$sample_id))
stopifnot(setequal(colnames(x), meta$sample_id))
meta <- meta[match(colnames(x), meta$sample_id), , drop = FALSE]
stopifnot(identical(colnames(x), meta$sample_id))
不能从当前结果直接得出什么
“标准化矩阵”不是一个足够明确的数据类型。GSVA 等方法也并非一律拒绝 counts,是否使用特定计数分布或转换必须按当前方法说明决定;这与 DESeq2 的输入要求是不同问题。
依据与版本
- DESeq2 官方教程:输入、设计矩阵与技术重复release 在线教程;示例应匹配本地版本
- Bioconductor:limma 软件介绍与用户指南入口limma release 文档;2026-10-10 核对
- Seurat v5:assay、layer 与数据访问Seurat v5 官方教程
- Bioconductor GSVA 参考手册release 手册;参数对象接口
最后核验:2026-10-10|资料核验:AI 编写与公开来源核对;未经人工专家审阅
依据公开来源核对概念、输入、证据边界与版本口径;示意数据不代表真实研究结果。仅标明的小型代码示例经过运行检查,不代表完整生物信息流程或原论文已复现。 本页最小 R 示例已在 R 4.3.3 独立会话运行;不涉及完整 Seurat/GSVA 工作流验证。