2. FastQC 安装与配置
说实话,FastQC 的安装是我见过最简单的生物信息学工具之一。但简单归简单,我在项目中还是碰到过不少人卡在环境问题上。嗯,这一章咱们就把它彻底讲明白。
2.1 系统环境准备
FastQC 是用 Java 写的,所以第一件事——你机器上必须有 Java 运行环境(JRE)。我建议用 OpenJDK 11 或以上版本,Oracle JDK 也行,但别搞太老的版本(比如 Java 8 以下)。为什么?因为 FastQC 后续更新可能会依赖较新的 Java API,我遇到过用 Java 8 跑新版 FastQC 直接报 UnsupportedClassVersionError 的坑。
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、源码编译。我把它们的优劣列了个表,你对照着选。
| 方式 | 命令 | 适合场景 | 我踩过的坑 |
|---|---|---|---|
| 官方二进制 | | 服务器无 root / 快速尝鲜 | 记得加执行权限,我第一次忘了,直接报“Permission denied” |
| Conda | | 已有 Conda 环境 / 流程整合 | Conda 版本有时比官方慢一两个小版本,但够用 |
| 源码编译 | | 想修改源码 / 教学研究 | 你得装 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
run_fastqc.sh,按项目名不同只改输入路径。
2.5 安装配置知识总览
下面这张图把安装到运行的核心步骤串了起来,方便你回顾。
最后想多说一句:别在安装上花太多时间。FastQC 本身很小,真正吃资源的是后面跑大样本。我建议先装好,跑一个测试样本确认 OK,然后就把命令固化到你的分析流程里。嗯,这一章就到这。