2. FastQC 安装与配置

说实话,FastQC 的安装是我见过最简单的生物信息学工具之一。但简单归简单,我在项目中还是碰到过不少人卡在环境问题上。嗯,这一章咱们就把它彻底讲明白。

2.1 系统环境准备

FastQC 是用 Java 写的,所以第一件事——你机器上必须有 Java 运行环境(JRE)。我建议用 OpenJDK 11 或以上版本,Oracle JDK 也行,但别搞太老的版本(比如 Java 8 以下)。为什么?因为 FastQC 后续更新可能会依赖较新的 Java API,我遇到过用 Java 8 跑新版 FastQC 直接报 UnsupportedClassVersionError 的坑。

检查 Java 版本:
java -version
# 输出类似:
# openjdk version "11.0.18" 2023-01-17 LTS
# OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu122.04)
如果版本低于 11,请先升级。

另外,FastQC 本身不依赖 Perl 或 Python,但如果你想用自带的统计脚本或者后续集成到流程里,建议把 Perl 5.26+ 和 Python 3.6+ 也装上。我个人习惯在 Conda 环境里统一管理工具,这样不会污染系统。

2.2 下载与安装

安装方式有三种:官方二进制、Conda、源码编译。我把它们的优劣列了个表,你对照着选。

方式命令适合场景我踩过的坑
官方二进制
wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.12.1.zip
unzip fastqc_v0.12.1.zip
cd FastQC
chmod +x fastqc
服务器无 root / 快速尝鲜记得加执行权限,我第一次忘了,直接报“Permission denied”
Conda
conda install -c bioconda fastqc
已有 Conda 环境 / 流程整合Conda 版本有时比官方慢一两个小版本,但够用
源码编译
git clone https://github.com/s-andrews/FastQC.git
cd FastQC
ant build
想修改源码 / 教学研究你得装 Ant 和 JDK,时间成本较高
重要提醒: 官方二进制解压后有个 fastqc 脚本,里面第一行是 #!/usr/bin/perl,实际上它只调用 Java 启动 FastQC。如果你机器上没装 Perl,可以改成 #!/bin/bash,或者直接用 java -jar FastQC.jar 运行。我曾经在纯 Docker 镜像里被这个坑过。

我个人最推荐 Conda 方式——一行命令搞定,环境隔离,而且后续升级也方便。如果你服务器不允许连外网,那就用官方二进制手动下载上传。

2.3 验证安装

装完之后,跑个最简单的测试:

fastqc --version
# 输出类似:FastQC v0.12.1

如果没有报错,说明 Java 环境和脚本都正常。再找个小的 FASTQ 文件试试(你可以用 seqkit sample 抽个几百条数据):

fastqc sample.fastq -o ./qc_output
ls qc_output/
# 应该看到 sample_fastqc.html 和 sample_fastqc.zip
避坑指南: 我曾经在集群上遇到一个问题——fastqc 命令能运行,但生成 HTML 文件为空。后来发现是 -o 指定的输出目录不存在,FastQC 不会自动创建。所以建议先 mkdir -p qc_output。

另外,如果你想直接用 Java 运行(不依赖外层脚本),可以这样:

java -jar /path/to/FastQC/FastQC.jar sample.fastq -o ./qc_output

嗯,这招在有些容器化环境里特别管用,因为外层脚本可能改过 $PATH 导致找不到 Java。

2.4 配置文件与常用参数

FastQC 默认行为已经覆盖 90% 的场景,但有几个参数值得你记住:

  • --threads:多线程处理多个文件,比如 --threads 4,能大幅提速。我一般设成机器核心数 - 1。
  • --extract:自动解压生成的 zip 文件,省去手动 unzip 步骤。
  • --nogroup / --kmers 7:如果你需要查看单碱基级别的细节,用 --nogroup 禁用分组;分析 k-mer 偏好时调整 --kmers。
  • --contaminants:指定污染文件(如 adapter 列表),FastQC 会额外标注。我当年在 RNA-seq 项目中靠这个发现了建库试剂盒的接头残留。

完整的参数列表可以看 fastqc --help 或官方文档。这里贴一个我常用的生产级命令:

fastqc *.fastq.gz \
  --threads 8 \
  --extract \
  --nogroup \
  --kmers 8 \
  --contaminants /ref/contaminants.txt \
  -o ./fastqc_raw
个人习惯: 我会把常用参数写在一个 shell 脚本或 Snakemake 规则里,避免每次敲错。比如我本地就有一个 run_fastqc.sh,按项目名不同只改输入路径。

2.5 安装配置知识总览

下面这张图把安装到运行的核心步骤串了起来,方便你回顾。

FastQC 安装与配置流程 环境准备 官方二进制 Conda 安装 源码编译 验证安装 参数配置与生产运行 提示:任何方式安装后,都需确保 fastqc 命令在 PATH 中,或者使用绝对路径调用

最后想多说一句:别在安装上花太多时间。FastQC 本身很小,真正吃资源的是后面跑大样本。我建议先装好,跑一个测试样本确认 OK,然后就把命令固化到你的分析流程里。嗯,这一章就到这。