基本使用:命令行运行、输入文件格式、输出报告结构

好了,这一章我们直接上手干活。说实话,MultiQC 最让我喜欢的一点就是它的“零门槛”启动方式:装好之后,一行命令就能跑出报告。你不用写脚本,不用配数据库,甚至不太需要看手册。我刚开始带团队的时候,让实习生半天就自己跑出来一份完整的质控报告,嗯,这个工具就是这么省心。

命令行运行

最基础的调用方式是这样的:

multiqc .

你用 multiqc 加上一个目录,它就会自动扫描下面所有常见质控工具的输出文件。我个人习惯在项目根目录下放一个 qc_results/ 文件夹,把所有工具的原始输出都丢进去,然后直接跑:

multiqc qc_results/ -o multiqc_report/

-o 参数指定输出目录,如果不写,默认就生成在当前目录下。我觉得这个习惯挺好的——至少不会把报告文件混在你的原始数据里,找起来费劲。

常用的参数我整理了一个小清单:

参数 作用 个人注解
-m 指定要包含的模块 我常用 -m fastqc 只测 FastQC
-f 强制覆盖已有报告 跑多轮时必加,不然报错
-o 指定输出目录 建议每次都写
-n 自定义报告文件名 避免覆盖不同批次的报告
-c 指定配置文件 后续章节会细讲

一个常见命令组合:

multiqc data/ -o reports/ -n mouse_rnaseq_qc -f -m fastqc -m cutadapt -m star

这个命令做了三件事:扫描 data/,把报告写到 reports/,只处理 FastQC、Cutadapt、STAR 三种模块的输出。

输入文件格式

MultiQC 支持的工具列表挺长的,但核心规则很简单:只要工具的输出文件是标准格式,MultiQC 就能认出来。我整理了一部分最常见的:

工具名称 搜索的文件名(正则) 常见扩展名
FastQC fastqc_data.txt .zip 或 _fastqc.html
Cutadapt cutadapt.log .log 或 .txt
STAR Log.final.out
BWA / Bowtie2 包含 `bwa` 或 `bowtie2` 的日志 .log .txt
Samtools flagstat / idxstats 输出 .flagstat .idxstats

我遇到过一个问题:有些人把所有模块的输出都放在同一目录,MultiQC 会自动区分。但如果你改了文件名,它可能找不着。所以我的建议是,不要随意重命名工具原始输出文件——老实放在一起,交给 MultiQC 自己去识别就行。

避坑指南:我曾经因为把 FastQC 的 zip 包手动解压并删除原始 zip,结果 MultiQC 没扫到任何数据。后来才明白,它默认只处理 zip 或 html 两种形式,提取出来的文件夹它不认。嗯,这个坑我替你们踩过了。

输出报告结构

跑完命令,你会得到什么?我拆开给你看:

multiqc_report/
├── multiqc_report.html   # 主报告,浏览器打开就行
├── multiqc_data/
│   ├── multiqc_general_stats.txt   # 所有样本的通用统计表
│   ├── multiqc_fastqc.txt          # FastQC 模块的所有数据
│   ├── multiqc_cutadapt.txt        # Cutadapt 数据
│   └── multiqc_sources.txt         # 记录了哪些文件被扫描
└── multiqc.log                     # 运行日志

HTML 报告是核心。Mac 上直接 open multiqc_report.html,Windows 双击即可。报告结构大概是这样:

  • 通用统计表:在最上面,展示每个样本的核心指标(比如总 reads 数、比对率、Q30 比例),一眼看出哪个样本有问题。
  • 模块结果:FastQC、Cutadapt 等每个模块单独一块,里面有图表和表格。
  • 侧边栏:用于快速跳转、筛选样本、修改报告配置。

为什么我特别推崇它?因为 MultiQC 最大的亮点在于聚合。你可以从30个样本的 FastQC 报告中快速找出那些 GC 含量异常、测序质量差的样本,不用一个个去点开原始 Html。我在做肿瘤全外显子测序项目时,50个样本的质控数据,用 MultiQC 花5分钟就能筛出问题样本,换成手工看,得折腾大半天。

那数据文件呢?multiqc_data/ 下的 txt 文件是纯表格格式,可以直接用 Excel 或 Python 进一步分析。举个例子:

Sample Name	Total Reads	Mapped Reads	% Mapped	Avg Quality
Sample_A	12000000	11500000	95.83	36.2
Sample_B	11000000	9000000	81.82	30.4
Sample_C	13000000	12900000	99.23	37.1

像 Sample_B 这种比对率明显偏低的,一眼就能揪出来。我曾在一个转录组项目里就用这个表发现了样本污染,避免了后面整个差异表达分析的浪费。

注意: MultiQC 只是汇总展示,它不会帮你判断“好”或“坏”。阈值和判断标准得你自己定。比如我在 RNA-seq 项目中,会把比对率低于80%的样本标红,然后逐个排查。别指望工具替你决策——它只是帮你更快地看到数据。

MultiQC 基本使用流程 输入文件 FastQC .zip Cutadapt .log STAR Log.final.out …… 命令行运行 multiqc . 或带 -o -m -f 输出报告 multiqc_report.html 交互式主报告 multiqc_data/ 纯文本表格数据 multiqc.log 运行日志 总结:一行命令,聚合所有质控数据

到这一步,你其实已经能跑起来 MultiQC 了。它不复杂,真正考验经验的地方在于:怎么解读报告里的指标、怎么设定合理的阈值、怎么把报告集成到自动化流程中。这些就是我们后面章节要聊的事了。你自己先动手跑一次,看看自己项目里的质控数据到底是什么水平,会比只看文档有用得多。