基本使用:命令行运行、输入文件格式、输出报告结构
好了,这一章我们直接上手干活。说实话,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 了。它不复杂,真正考验经验的地方在于:怎么解读报告里的指标、怎么设定合理的阈值、怎么把报告集成到自动化流程中。这些就是我们后面章节要聊的事了。你自己先动手跑一次,看看自己项目里的质控数据到底是什么水平,会比只看文档有用得多。