2. FastQC 安装:三分钟搞定,别再卡在这一步
好,咱们不废话,直接上手先把家伙事儿装好。FastQC 这东西,说白了就是一个 Java 写的图形界面工具。你把它下载下来,解压,就能用。没有复杂的编译过程,也不需要装什么依赖环境。我自己刚开始做分析的时候,就被各种软件的安装折磨过,所以当第一次用 FastQC 的时候,心里其实挺舒服的——终于有个能「开箱即用」的了。
java -version 看看。如果没装,去 Oracle 官网下一个装上就好,这个我就不细讲了。
2.1 下载:去哪拿?拿哪个?
官网就是它的大本营:Babraham Bioinformatics。直接搜“FastQC”就能找到下载页面。别信第三方链接,我见过有人下了带病毒的假包。
下载页面会提供几个版本:
- Windows 版:一个 .zip 压缩包
- macOS 版:一个 .dmg 镜像文件
- Linux 版:同样是一个 .zip 压缩包
我个人习惯,不管什么系统,都直接下载 Linux / Mac OS X 版 的那个 .zip 包。因为它的运行逻辑最纯粹,没有那些花里胡哨的安装向导。嗯,这里要注意,别手滑下载了源码包,那个是需要你自己编译的,新手别碰。
2.2 安装:解压即用,就这么简单
下载完成后,安装过程几乎可以忽略不计。
Windows
- 把下载好的
fastqc_v0.12.1.zip文件拷贝到一个你喜欢的目录,比如D:\bioinfo\。 - 右键点击,选择“解压到当前文件夹”。
- 解压后会得到一个
FastQC文件夹。
装好了?对,就两步。打开这个文件夹,你会发现里面有一个 run_fastqc.bat 的批处理文件。双击它,程序就跑起来了。不过,这样跑会弹出一个命令窗口,不太优雅。我们后面会讲怎么配环境变量,让你在任意位置都能敲命令来用。
我之前带过一个实习生,他在 Windows 上折腾了快两个小时,说报错 “找不到文件”。我过去一看,他把 .zip 文件直接解压到了桌面,文件夹名字里的空格导致路径出了问题。从那以后,我养成了一个习惯:所有软件的安装路径里,绝对不要有中文和空格。
macOS
- 双击下载的
.dmg文件,会挂载一个磁盘镜像。 - 在弹出的窗口里,把
FastQC的图标直接拖拽到旁边的Applications(应用程序)文件夹里。
这就完事了。以后你就可以在启动台里找到它,跟打开其他 App 一样。
/usr/local/bin 目录下做一个软链接。这样你就能在终端里直接输入 fastqc 来运行它,方便后续写脚本批量处理。命令大概是:ln -s /Applications/FastQC.app/Contents/MacOS/fastqc /usr/local/bin/fastqc
Linux
- 在终端里,进入你下载文件的目录。
- 使用
unzip命令解压:
unzip fastqc_v0.12.1.zip -d ~/software/
- 进入解压后的 FastQC 目录,给那个程序文件赋予执行权限:
cd ~/software/FastQC
chmod +x fastqc
- 为了方便,把它的路径加到环境变量里。你可以编辑
~/.bashrc或~/.zshrc文件,在末尾添加一行:
export PATH=$PATH:~/software/FastQC
- 保存文件后,执行
source ~/.bashrc或source ~/.zshrc让它生效。
在 Linux 服务器上跑数据分析,这是最标准的做法。你想想看,要是每次都得进到那个文件夹里才能运行,那你的工作流得多别扭。
2.3 验证:装没装对,一试便知
装好之后,怎么确认它没问题?很简单,打开终端(Windows 下打开 CMD 或 PowerShell),输入下面的命令:
fastqc --version
如果屏幕上打印出了版本号,比如 FastQC v0.12.1,那就说明安装成功,并且环境变量配对了。如果提示“command not found”,那就是环境变量没配好,或者文件没解压对。
另一个更直接的验证方法,是让它跑一个真正的数据文件。我随便从公共数据库下载一个小的 FASTQ 文件做测试:
fastqc test_data.fastq
命令一敲,你会看到终端里开始滚日志。如果能顺利结束,并且在同目录下生成了一个 .html 文件和一个 .zip 文件,那就妥妥的了。双击打开那个 HTML 文件,你就能看到 FastQC 的分析报告。
- 输入
fastqc --version能显示版本号 - 输入
fastqc somefile.fastq能正常跑完 - 生成了
.html和.zip结果文件 - 生成的 HTML 文件能在浏览器里正常打开
Exception in thread "main" java.awt.HeadlessException。这是因为没有图形界面的服务器上,FastQC 试图调用图形组件。解决方法很简单,在那个运行命令前面加个 export DISPLAY=,强制用命令行模式跑就好。或者用 fastqc --noextract 参数也能跳过一些图形相关的检查。