FastQC 安装与运行:命令行使用、常见参数
环境准备:检查你的系统
正式开始之前,先看看你手头的环境。FastQC 是一个 Java 程序,所以只要你有 Java 运行环境(JRE),它就能跑。我见过不少人卡在这一步——下载了压缩包却跑不起来,最后发现是 Java 没装。
确认 Java 版本很简单,打开终端敲一句:
java -version
如果看到类似 openjdk version "11.0.18" 这样的输出,那就没问题。
要是系统提示 command not found,赶紧去装个 Java。我个人习惯用 OpenJDK 11,兼容性最好,不会遇到奇奇怪怪的问题。
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 批量提取。
我需要提醒的几个坑
这些年我踩过的坑不少,挑三个最常见的跟你分享:
- 路径有中文或空格 —— 有些 Windows 转过来的同事喜欢在文件名加中文,FastQC 解析时会报错。建议所有路径和文件名只用英文字母、数字、下划线。
- 输入文件太大 —— 默认 FastQC 只分析前 10 万条 reads 做统计。如果你的 FASTQ 文件超大,耐心等就行了,别强行加大样本量。我曾经试过用
--kmers 8跑全量,结果内存爆了。 - 输出目录不存在 —— FastQC 不会自动创建目录。如果你指定
-o /path/to/nonexistent,它会报错退出。所以在运行前先mkdir -p一下。
核心理念:FastQC 本身不修改原始数据,只做分析。所以放心大胆地跑,错了就重来。但一定要把报告保存好,后续审计全指着它们。
本章知识图谱
这张图把整个流程串起来了:从环境检查到最终拿到 HTML 报告,中间需要关注的就是那几个参数和批量处理的技巧。你跟着走一遍,基本不会出问题。