第二章 环境准备:安装GATK、Java环境配置、下载Funcotator数据源包
好,咱们正式开始动手。这一章讲的是环境准备——说白了,就是把你电脑弄成能跑Funcotator的样子。我个人习惯先把基础环境搭好再碰数据,不然装到一半发现缺这缺那,很抓狂。
你会学到三件事:装Java、装GATK、下载Funcotator数据源包。嗯,顺序很重要,别跳着来。
2.1 检查Java环境
Funcotator是Java写的,没有Java什么都跑不起来。我建议你装Java 17或更高版本。GATK 4.5以上官方推荐Java 17。
先看一眼当前Java版本:
java -version
如果输出类似下面,说明Java已经装好了:
openjdk version "17.0.9" 2023-10-17 LTS
OpenJDK Runtime Environment (build 17.0.9+9-LTS)
OpenJDK 64-Bit Server VM (build 17.0.9+9-LTS, mixed mode, sharing)
如果没装,或者版本太老,去Oracle官网或者用包管理器装一个。我在项目中遇到过用OpenJDK 11跑GATK 4.6,结果直接报UnsupportedClassVersionError,后来换了Java 17就好了。
装好Java后,设置环境变量。Linux/macOS推荐加在 ~/.bashrc 或 ~/.zshrc:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
Windows用户去系统环境变量里新建 JAVA_HOME,然后把你安装的JDK路径填进去。别忘了把 %JAVA_HOME%\bin 加到Path里。
2.2 安装GATK
GATK(Genome Analysis Toolkit)是大名鼎鼎的变异分析工具集,Funcotator是它的一部分。安装方式有两种:直接下载jar包,或者用conda。我个人更推荐第一种,简单明了。
方法一:下载官方jar包。
去GATK官网或GitHub Release页面,找到最新版(比如4.6.1.0)。用wget或curl拉下来:
wget https://github.com/broadinstitute/gatk/releases/download/4.6.1.0/gatk-4.6.1.0.zip
unzip gatk-4.6.1.0.zip
cd gatk-4.6.1.0
验证安装:
./gatk --version
输出类似:
4.6.1.0
方法二:用Conda安装。如果你管理多个生物信息工具,conda能省心。
conda create -n gatk_env
conda activate gatk_env
conda install -c bioconda gatk4
注意:conda上的版本可能比官方稍慢,但胜在依赖自动处理。
export GATK_LOCAL_JAR=gatk-package-4.6.1.0-local.jar然后运行:
gatk Funcotator --java-options "-Xmx8g" ...
2.3 下载Funcotator数据源包
Funcotator需要参考数据库来注释变异,这个数据源包叫FuncotatorDataSource。Broad Institute提供了预打包好的版本,大概6~8GB。下载它需要一点时间,我建议你选个带宽好的时段。
数据源分为两种:
| 类型 | 基因组版本 | 典型大小 | 说明 |
|---|---|---|---|
| 全数据源包 | hg38 | ~8 GB | 包含所有能用的注释(gnomAD、ClinVar、COSMIC等) |
| 精简数据源包 | hg19/hg38 | ~1.5 GB | 只包含常用注释,适合快速测试 |
我个人建议直接下全数据源包,省得后续缺文件再补。不过如果你想先跑个demo,精简版也能用。
下载命令(以hg38全数据源包为例):
wget https://storage.googleapis.com/broad-public-datasets/funcotator/funcotator_dataSources.v1.8.hg38.20230908s.tar.gz
tar -xzvf funcotator_dataSources.v1.8.hg38.20230908s.tar.gz
解压后得到一个文件夹,比如funcotator_dataSources.v1.8.hg38.20230908s。你能看到一堆子目录:
ls funcotator_dataSources.v1.8.hg38.20230908s/
ClinVar Cosmic dbSNP gencode gnomAD ...
这就对了。每个子目录里是Funcotator要求的特定格式数据:VCF、基因模型GTF、以及一些元数据文件。
2.4 验证Funcotator能不能跑
装好Java、GATK、数据源包后,最好跑一个最小测试。找一个小VCF文件,随便一个包含几条变异记录的就行。我正在做的一个小demo:
gatk Funcotator \
--variant test.vcf \
--reference ref.fasta \
--ref-version hg38 \
--output test_funcotated.vcf \
--output-file-format VCF \
--data-sources-path funcotator_dataSources.v1.8.hg38.20230908s
看到屏幕输出类似:
INFO FuncotatorEngine - Funcotator Engine run completed.
INFO Funcotator - Shutting down engine.
并且在test_funcotated.vcf里能看到ANN、FUNCOTATION等新加入的INFO字段。恭喜,环境准备好了!
以上就是环境准备的全部内容。整个流程下来大概需要20分钟到1小时,取决于你的网络状况。我曾经在学校服务器上下载数据源包,只有1MB/s,等了一晚上。别急,慢慢来。