跳转至

MultiQC 质控报告

MultiQC 是一个一键式质控报告汇总工具,能自动扫描目录下 150+ 种生信工具的日志文件,生成一份漂亮的交互式 HTML 报告,一眼看清所有样本的质量状况。

核心知识点

知识点说明
工具定位多工具、多样本质控结果汇总,生成统一 HTML 报告
最新版本v1.34(2026.04,Seqera 维护)
开发者Phil Ewels(Seqera Labs)
支持工具数150+ 种(FastQC、STAR、Salmon、Picard、Samtools 等)
核心优势零配置扫描、交互式图表、支持暗色模式、AI 摘要
输出格式HTML 报告 + JSON/YAML/TSV 数据导出 + Parquet 文件
新功能AI 报告摘要、Apache Parquet 输出、WebAssembly 浏览器端运行

安装配置

方法一:pip 安装(推荐)

# 用 pip 安装
pip install multiqc            # 安装 multiqc

# 或者用 uv(更快,不需要单独装 Python)
# uv tool install multiqc

multiqc --version              # 验证版本

方法二:Conda 安装

conda install -c bioconda multiqc  # 安装
multiqc --version                   # 验证

方法三:Docker

# 用 Docker 运行(不需要安装任何依赖)
docker run -v $PWD:/data ewels/multiqc /data  # 挂载当前目录并运行

基本使用

1. 最简单的用法(一条命令搞定)

# 扫描当前目录及子目录下所有工具的日志
multiqc .                      # 扫描当前目录

# 扫描指定目录
multiqc results/               # 扫描 results 目录下的所有文件

# 指定输出目录
multiqc results/ -o qc_report/ # 报告输出到 qc_report 目录

# 输出文件:
# multiqc_report.html          交互式 HTML 报告(用浏览器打开)
# multiqc_data/                包含解析后的数据文件

2. 常用参数

# 完整参数的常用命令
multiqc \
  -f \                          # 覆盖已有报告(force overwrite)
  -n "项目质控报告" \            # 自定义报告标题
  -o qc_reports/ \              # 输出目录
  --dirs \                      # 在报告中显示目录路径
  --dirs-depth 1 \              # 目录路径深度
  results/                      # 要扫描的目录

# 其他常用参数
multiqc results/ --ignore "*.bam"    # 忽略某些文件
multiqc results/ --module fastqc     # 只运行 FastQC 模块
multiqc results/ --exclude picard    # 排除 Picard 模块

3. 查看报告

# 用浏览器打开报告
# Linux
xdg-open multiqc_report.html   # 默认浏览器打开

# WSL(Windows 子系统)
explorer.exe multiqc_report.html  # 用 Windows 浏览器打开

# Mac
open multiqc_report.html        # 打开

高级用法

1. 自定义配置文件

# 创建 multiqc_config.yaml 文件
# 放在运行目录下会自动加载

# 报告标题和描述
title: "宏基因组项目质控报告"
subtitle: "2型糖尿病肠道菌群研究"
intro_text: "本报告汇总了所有样本的质控指标"

# 自定义模块顺序
module_order:
  - fastqc        # FastQC 放最前
  - fastp          # fastp 结果
  - star           # STAR 比对统计
  - featurecounts  # 计数统计

# 自定义报告外观
plots_force_flat: false   # 使用交互式图表(默认)
plots_force_interactive: true

# 导出格式
export_plots: true        # 导出图表为静态图片
data_format: "tsv"        # 数据导出格式

# 样本名清理(去掉文件扩展名等)
fn_clean_exts:
  - ".sorted"
  - ".bam"
  - ".fq.gz"
  - "_R1"
  - "_001"

2. 批量项目质控流程

#!/bin/bash
# qc_pipeline.sh - 完整的质控流程

RAWDIR="raw_data"           # 原始数据目录
QCDIR="qc_results"         # 质控结果目录
THREADS=8

mkdir -p $QCDIR/fastqc $QCDIR/fastp

# 第一步:FastQC 原始数据质控
fastqc -t $THREADS -o $QCDIR/fastqc $RAWDIR/*.fq.gz

# 第二步:fastp 数据预处理
for R1 in $RAWDIR/*_R1.fq.gz; do
    SAMPLE=$(basename $R1 _R1.fq.gz)
    R2=${R1/_R1/_R2}

    fastp \
      -i $R1 -I $R2 \
      -o $QCDIR/fastp/${SAMPLE}_R1.fq.gz \
      -O $QCDIR/fastp/${SAMPLE}_R2.fq.gz \
      -j $QCDIR/fastp/${SAMPLE}_fastp.json \
      -h $QCDIR/fastp/${SAMPLE}_fastp.html
done

# 第三步:MultiQC 汇总所有结果
multiqc $QCDIR/ \
  -o $QCDIR/multiqc/ \
  -n "全流程质控报告" \
  -f

echo "报告生成完毕: $QCDIR/multiqc/全流程质控报告.html"

3. AI 摘要功能(v1.29+)

# 生成带 AI 摘要的报告(需要 AI API 配置)
multiqc results/ --ai           # 启用 AI 摘要

# AI 会自动分析报告中的关键指标
# 告诉你哪些样本可能有问题、整体数据质量如何

4. 与 Nextflow/Snakemake 集成

# Snakemake 中使用 MultiQC
rule multiqc:
    input:
        expand("qc/{sample}_fastqc.zip", sample=SAMPLES),  # FastQC 结果
        expand("aligned/{sample}.sorted.bam", sample=SAMPLES)  # BAM 文件
    output:
        "reports/multiqc_report.html"  # 输出报告
    shell:
        "multiqc qc/ aligned/ -o reports/ -f"  # 运行 MultiQC

5. 自定义内容

# 在 multiqc_config.yaml 中添加自定义部分
custom_data:
  my_section:
    plot_type: "bargraph"        # 图表类型
    pconfig:
      title: "自定义统计"
      ylab: "数量"
    data:
      sample1:
        metric_a: 100
        metric_b: 200
      sample2:
        metric_a: 150
        metric_b: 180

常见报错与解决

报错信息原因解决方法
No analysis results found目录下没有可识别的日志文件确认路径正确,检查是否有支持的工具输出
ModuleNotFoundErrorPython 依赖缺失pip install multiqc --upgrade 升级
报告中缺少某个工具该工具日志格式不对或被忽略检查 --ignore 参数,或查看日志
样本名混乱文件名太长或含特殊字符fn_clean_exts 配置清理样本名
报告太慢样本或文件太多--dirs-depth 限制扫描深度
Permission denied输出目录无写权限检查目录权限或换输出路径

速查表

# ===== MultiQC 速查表 =====

# 安装
pip install multiqc                    # pip 安装
conda install -c bioconda multiqc      # conda 安装

# 基本用法
multiqc .                              # 扫描当前目录
multiqc results/ -o report/            # 指定输入和输出
multiqc results/ -f                    # 覆盖已有报告
multiqc results/ -n "项目报告"          # 自定义报告名

# 过滤控制
multiqc . --module fastqc              # 只运行指定模块
multiqc . --exclude picard             # 排除指定模块
multiqc . --ignore "*.bam"             # 忽略文件

# 报告定制
multiqc . --flat                       # 静态图表(非交互式)
multiqc . --interactive                # 强制交互式
multiqc . --export                     # 导出图片
multiqc . --ai                         # AI 摘要

# 数据导出
multiqc . --data-format tsv            # TSV 格式数据导出
multiqc . --data-format json           # JSON 格式

# 支持的主要工具
# FastQC, fastp, Trimmomatic          质控
# STAR, HISAT2, BWA, Salmon           比对/定量
# Picard, Samtools                     BAM处理
# featureCounts, HTSeq                 计数
# GATK, bcftools                       变异检测
# Kraken, Bracken, MetaPhlAn          宏基因组
# Bismark                              甲基化
# 更多见: https://multiqc.info