需要准备的内容:
- 环境:Linux 或 Ubuntu,已经安装openjdk
- 文件:通过 GATK 流程得到的变异或者 VCF 格式的文件
- 参考文件:对应基因组版本的 gff 或 gtf 注释文件、参考基因文件
- 软件:SnpEff,更多说明查看请 点击链接 , 帮助文档
- 以 Ecoli 为例: NCBI的FTP地址
参考基因组相关文件下载:
- 参考基因组:通过 wget 下载 FTP目录下 的后缀为 genome.fna.gz 基因组文件
- 参考基因组对应注释文件:通过 wget 下载后缀为 genome.gff 的注释文件,gft 也可
SnpEff 安装
-
conda 安装(不推荐)
conda 安装不利于自定义参考基因组及注释文件
conda indstall snpeff -y
-
安装包下载直接使用(推荐)
cd work_dir/ #进入工作目录
#下载方式一
wget http://sourceforge.net/projects/snpeff/files/snpEff_latest_core.zip
#解压
unzip snpEff_latest_core.zip
#下载方式二
git clone https://github.com/pcingola/SnpSift.gi
注释数据库准备:
-
自动下载
不推荐,下载时间过长
java -jar snpEff.jar databases | grep -i GRCh | awk '{print $1}' #查看数据库中是否存在对应物种
java -jar snpEff.jar download {name_in_snpEffdatabase} #可通过搜索到的物种名下载数据
-
手动准备
此处要特别注意参考文件所在文件夹及文件命名
#建立文件夹
cd snpEff #进入 snpEff 目录下
mkdir data #新建 data 目录
cd data #进入 data 目录下,必须在该目录
mkdir genomes #新建 genomes 目录,用于建立 ecoli 目录中的 bin
mkdir ecoli #新建 ecoli 目录,对应物种名或后续软件调用的参数名
#将参考基因序列放至 genomes 目录下并改名,改名对应 data 中的 ecoli 文件夹名
gzip -d {reference}_genomic.fna.gz
mv dir_path/{reference}_genomic.fna snpEff/data/ecoli.fa
#将参考注释放至 ecoli 文件夹中并一定改名为 gene.gff
gzip -d {reference}_genomic.gff.gz
mv dir_path/{reference}_genomic.gff snpEff/data/genes.gff
#配置 snpEff/snpEff.config 文件
echo "ecoli.genome:ecoli" >> snpEff.conf
#可配置 config 文件自定义 data 文件夹路径
#data_dir = PATH/TO/data/
#软件配置自动建立数据库,建立后文件夹 ecoli 中生成 snpEffectPredictor.bin 文件
java -jar snpEff/snpEff.jar build -gff3 ecoli
#-gff3 对应为 ecoli 文件夹中注释文件的对应格式版本
#如果注释文件的格式版本在后缀名中无法体现,可通过 head 命令查看文件头信息获得
#head ecoli.gff
#ecoli 对应为 data 目录中的 ecoli 文件夹以及 genomes 目录中的 ecoli.fa 文件
#配置完成后的目录结构,其他文件夹/结构不显示
snpEff
├── SnpSift.jar
├── data
│ ├── ecoli
│ │ ├── genes.gff
│ │ └── snpEffectPredictor.bin
│ ├── genomes
│ │ └── ecoli.fa
├── examples/
├── galaxy/
├── scripts/
├── snpEff.config
└── snpEff.jar
SnpEff 的使用及注释
#详细见帮助文档
#举例
java -jar snpEff/snpEff.jar -v ecoli Ecoli.vcf.gz > Ecoli.anno.vcf.gz
#-v 表示显示更多信息
#ecoli 表示调用 data/ecoli/中的注释信息
#结束后生成文件
├── EcoliK12.anno.vcf.gz
├── snpEff_genes.txt
├── snpEff_summary.html