MultiQC 简介与质控报告概述
为什么需要 MultiQC?
做生物信息分析,第一步往往是质控。你跑完测序下机,拿到一堆 FASTQ 文件。然后你会用 FastQC 逐个检查,再手动打开几十个 HTML 报告,一个个翻。我当时带一个 RNA‑seq 项目,36 个样本,每个样本两个端。72 个 FastQC 报告,我一个下午都在点鼠标。说实话,看得眼花。
后来我从同事那听说了 MultiQC。它的核心逻辑很简单:把多个质控工具的输出汇总成一个报告。你不需要再一个个点开看了。它会自动扫描当前目录下的质控结果文件,然后拼成一个漂亮的 HTML 页面。
我个人觉得,MultiQC 最重要的价值不是节省那几分钟,而是让“全局对比”变得可行。你可以在同一个页面里快速发现哪些样本的 GC 含量异常,哪些样本的接头污染严重。这种横向比较,在单独看每个报告时很难做到。
MultiQC 的优势
它的优势我归纳成三点,你想想看:
- 支持的工具多:FastQC、FastQ_Screen、Kraken、STAR、Bowtie2、Salmon、Picard……官方列了超过 60 种。你常用的基本都有。
- 输出灵活:生成 HTML 交互报告,也可以导出 PDF 或静态图片。我在团队汇报时,直接拿生成的 HTML 挂在 wiki 上,同事点开就能看。
- 扩展性强:你可以写自定义插件。后面几章我们会重点讲这个——这也是本课程的核心。
说白了,MultiQC 就是把碎片化的质控信息“拧成一股绳”。
质控报告在生物信息学中的重要性
质控报告不只是“看个心里有数”。它直接决定分析结果是否可信。我遇到过一件事:有个项目比对率特别低,开始以为是参考基因组版本不对。后来我用 MultiQC 汇总了 FastQC 和 FastQ_Screen 的报告,发现样本中存在大量 phiX 污染——测序时 spike‑in 的对照没去除干净。如果没有全局质控报告,这种问题很难一眼看出来。
质控报告的核心作用:
- 发现批次效应(比如不同测序 lane 的 GC 分布差异)
- 识别样本异常(低质量、污染、重复率过高)
- 为下游分析提供过滤阈值依据
- 存档与可复现性(好的质控报告能让别人重现你的分析流程)
我个人习惯是:每次跑完分析流程,第一件事就是运行 MultiQC 看看整体质量。如果报告里没有明显异常,我再继续往下走。这步不能省。
MultiQC 的常用场景
我列几个最常见的:
| 场景 | 涉及工具 | MultiQC 做了什么 |
|---|---|---|
| RNA‑seq 原始数据质控 | FastQC, FastQ_Screen, Trimmomatic | 汇总碱基质量、接头污染、GC 分布 |
| 比对后质控 | STAR, Bowtie2, BWA | 汇总比对率、唯一比对比例、剪接位点特征 |
| 变异检测统计 | Picard, GATK | 汇总覆盖深度、变异数量、转换/颠换比 |
| 宏基因组分类 | Kraken, Bracken | 汇总物种组成、分类丰度 |
你可能会问:那 MultiQC 是不是只能用于这些工具的输出?其实不是。它有一个通用的日志解析模块,只要你输出的是标准格式(比如 JSON、YAML、TSV),它基本都能处理。我曾在项目中用它聚合自定义的质控脚本输出。
快速上手:一行命令看效果
假设你已经有 FastQC 的结果,输出在当前目录的 fastqc_data/ 下。运行:
multiqc fastqc_data/
它会自动生成 multiqc_report.html。打开后,左边是样本列表,右边是各种统计图。你可以点击某个样本,高亮它。这就是 MultiQC 的默认体验。
--outdir,否则报告会生成在当前工作目录。我以前因为这个把报告混在原始数据里,找了好半天。
MultiQC 的工作流程
下面的 SVG 图展示了 MultiQC 的核心逻辑:输入多个工具的结果文件,经过解析和聚合,输出一个统一的交互式报告。
从上图可以看出,MultiQC 就像是一个“数据汇流排”。它不关心你运行的是哪个工具,只要输出格式符合规范,它就能识别并提取关键指标。我在实际项目中,经常把 Trimmomatic 的日志、Kraken 的报告和 Qualimap 的结果放在一起跑 MultiQC,一张报告就能覆盖从原始数据到物种分类的全程质控。
一点避坑经验
我曾经犯过的一个错误:MultiQC 默认会在当前目录递归搜索。如果你的分析流程生成很多中间文件,它可能会把一些不相关的日志也扫进来,导致报告里出现重复或错误的数据。现在我习惯用 --ignore 参数排除某些文件夹:
multiqc . --ignore old_runs/ --ignore logs/
另外要注意版本问题。同一个工具的不同版本,输出格式可能略有差异。比如 FastQC 0.11.5 和 0.11.9 的 zip 文件内部结构不同。MultiQC 会尝试兼容,但偶尔会有解析失败的情况。遇到时,检查一下 MultiQC 的版本是不是最新的,或者看看 release notes 里有没有相关的修复。
说到这,你应该对 MultiQC 有了基本认识。它不是一个复杂的工具,但用好了能大幅提升质控效率。接下来的章节,我们会一步步教你如何定制它的模板,让报告更符合你的项目风格。