FastQC 安装与运行:命令行使用、常见参数

环境准备:检查你的系统

正式开始之前,先看看你手头的环境。FastQC 是一个 Java 程序,所以只要你有 Java 运行环境(JRE),它就能跑。我见过不少人卡在这一步——下载了压缩包却跑不起来,最后发现是 Java 没装。

确认 Java 版本很简单,打开终端敲一句:

java -version

如果看到类似 openjdk version "11.0.18" 这样的输出,那就没问题。
要是系统提示 command not found,赶紧去装个 Java。我个人习惯用 OpenJDK 11,兼容性最好,不会遇到奇奇怪怪的问题。

注意:旧版 Java 8 也能运行 FastQC,但它有些内部路径处理有问题,偶尔会报 NullPointerException。我曾经因为这个排查了大半天,最后升级到 Java 11 就解决了。

FastQC 安装实操

安装方式很多,这里我只讲最稳的一种——手动下载解压。为什么?因为通过包管理器(apt、conda 等)拿到的版本经常不是最新的,而且有时候依赖冲突会让你抓狂。

打开 FastQC 官方链接,找到 Linux / macOS 下的 zip 包。

wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.12.1.zip
unzip fastqc_v0.12.1.zip
cd FastQC

解压后会得到一个 FastQC 目录,里面有个 fastqc 可执行脚本。注意,这个脚本默认没有执行权限,你得先给它加上:

chmod +x fastqc

然后我习惯把它放到 ~/bin/ 或者 /usr/local/bin/ 里,这样在任何路径下都能直接调用。

ln -s $(pwd)/fastqc ~/bin/fastqc

检验一下是否装好了:

fastqc --version

输出类似 FastQC v0.12.1,那就成功了。嗯,就这么简单,别想复杂了。

命令行基本用法

安装完成,现在跑一次最基本的 FastQC。拿一个测序数据(比如 sample_R1.fastq.gz)试试:

fastqc sample_R1.fastq.gz

运行结束后,当前目录会生成两个文件:

  • sample_R1_fastqc.html —— 可视化报告,用浏览器打开
  • sample_R1_fastqc.zip —— 原始数据压缩包,里面包含所有统计结果

你想想看,如果每次都要手动打开 zip 找数据,多麻烦。
所以 FastQC 给了不少参数,让我们可以灵活控制输出。

常用参数一览

参数 作用 我的经验
-o / --outdir 指定输出目录 一定要用绝对路径,否则容易跑到想不到的地方
--threads / -t 设置线程数 建议不超过 CPU 核心数,一般 4-8 就够
--extract 自动解压结果 zip 省了一步手动解压,我常用
--nogroup 不合并碱基位置 只在想看原始粒度时用,默认建议不加
--min-length 设置最短 read 长度 用于过滤太短的序列,默认 0
--format 指定输入文件格式 大部分时候自动识别,不用管

举个例子,我想把结果统一放到 qc_reports/ 目录,用 4 个线程并行处理:

fastqc -o ~/qc_reports -t 4 sample_R1.fastq.gz sample_R2.fastq.gz

这会同时分析两个文件,速度快很多。

实战示例:批量处理与报告生成

真实项目中你不会只跑一两个文件,少则几十,多则几百个 FASTQ。我记得有一次接了个全外显子项目,96 个样本,每个样本有双端测序的两条文件。如果一条一条敲命令,手都得断。

批量处理小技巧:用 shell 的 for 循环。

mkdir -p qc_results
for f in *.fastq.gz; do
    fastqc -o qc_results -t 4 "$f"
done

更快的方式是直接把文件名列表传给 FastQC:

fastqc -o qc_results -t 8 *.fastq.gz

FastQC 会智能分配线程处理多个文件。不过我建议线程数不要超过 CPU 核心数的一半,否则 I/O 会成为瓶颈。

如果你还想要 HTML 报告自动解压,加上 --extract:

fastqc -o qc_results -t 8 --extract *.fastq.gz

小提示:解压后的 fastqc_data.txt 文件很有用,里面是所有模块的原始数据。你可以写脚本直接解析它,整合成一张汇总表。我后面章节会讲怎么用 Python 批量提取。

我需要提醒的几个坑

这些年我踩过的坑不少,挑三个最常见的跟你分享:

  1. 路径有中文或空格 —— 有些 Windows 转过来的同事喜欢在文件名加中文,FastQC 解析时会报错。建议所有路径和文件名只用英文字母、数字、下划线。
  2. 输入文件太大 —— 默认 FastQC 只分析前 10 万条 reads 做统计。如果你的 FASTQ 文件超大,耐心等就行了,别强行加大样本量。我曾经试过用 --kmers 8 跑全量,结果内存爆了。
  3. 输出目录不存在 —— FastQC 不会自动创建目录。如果你指定 -o /path/to/nonexistent,它会报错退出。所以在运行前先 mkdir -p 一下。

核心理念:FastQC 本身不修改原始数据,只做分析。所以放心大胆地跑,错了就重来。但一定要把报告保存好,后续审计全指着它们。

本章知识图谱

FastQC 安装与运行流程 1. 确认 Java 环境 2. 下载并解压 FastQC 3. chmod +x & 加入 PATH 4. 运行 fastqc 命令 5. 常用参数 -o -t --extract 6. 批量 *.fastq.gz 处理 7. 输出:.html 报告 + .zip 数据包 (含 fastqc_data.txt 原始统计) ⚠ 常见问题: 路径含空格 / 文件过大 / 输出目录不存在 — 记住这三条,能省你半天排查时间。

这张图把整个流程串起来了:从环境检查到最终拿到 HTML 报告,中间需要关注的就是那几个参数和批量处理的技巧。你跟着走一遍,基本不会出问题。