第二章 环境准备:安装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 8或Java 11跑新版本GATK。Funcotator对Java版本很敏感,低了会报错,高了反而没事。

装好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上的版本可能比官方稍慢,但胜在依赖自动处理。

小技巧:我习惯把GATK路径加到PATH里,这样任何目录下都能敲gatk命令。加一行到 .bashrc:export PATH=$PATH:/path/to/gatk-4.6.1.0
避坑指南——你可能会遇到Java内存不足:GATK默认只分2GB内存。处理WGS数据时根本不够。我曾经跑Funcotator中途OOM,白等了半小时。解决方案是设置环境变量:
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、以及一些元数据文件。

注意:数据源包的版本要和GATK版本匹配。比如GATK 4.6.x对应的数据源包是1.8及以上。不匹配的话,Funcotator启动时可能会报错并要求指定合法的source版本。

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字段。恭喜,环境准备好了!

你可能会问:如果没有参考基因组(--reference)会怎样?Funcotator会报错退出。记得准备一个对应的hg38.fasta文件和fai索引。大部分研究机构都有本地副本,问问同事或者去UCSC下载。
环境准备流程(第二章知识结构) 第1步:安装Java 17+ 第2步:安装GATK 4.x 第3步:下载数据源包 Java环境变量 JAVA_HOME + PATH GATK安装方式 jar包 / conda 数据源版本 全量 / 精简 / hg38 / hg19 验证:跑一个最小测试 严格按照顺序:Java → GATK → 数据源 → 测试。跳步容易踩坑。

以上就是环境准备的全部内容。整个流程下来大概需要20分钟到1小时,取决于你的网络状况。我曾经在学校服务器上下载数据源包,只有1MB/s,等了一晚上。别急,慢慢来。