There are questions remain, We'll search for the answers together. But one thing we known for sure,the future is not set!

【原创文章】SnpEff自建注释库的正确方法

数据分析 百蔬君 6781℃ 已收录 0评论

这几天折腾snpeff的事情,感觉比annovar好用些。

我得环境是conda,安装snpeff命令

conda install snpeff

然后查找有没有需要的库,我安装的是snpeff4.5

安装指定版本方法

conda install snpeff=4.5

这是目前的最新版,然后列出所有snpeff拥有的数据库,可以保存到txt中、

snpEff databases >snpeff.database.txt

也可以值查找目标数据库,比如我的是辣椒参考组

snpEff databases |grep 'Capsicum' |less -S

最新版是有Capsicum的数据库的,然后下载数据库

snpEff download Capsicum_annuum

但是snpeff抽风,这个数据库无论怎么都下载不下来,不管你是否翻墙。

找了一下具体地址,http://downloads.sourceforge.net/project/snpeff/databases/v4_5/snpEff_v4_5_Capsicum_annuum.zip

确实无法下载,跑到sourceforge.net去看下了,只有v4.3的文件夹,v4.5的文件夹都没有,所有路径都是错误的,这个就不知道原因了。

没办法,只有一条路子了,自建这个Capsicum_annuum的注释库。

我使用的zunla的参考组,这个数据库就叫zunla了。

首先查找snpeff的配置文件位置

find / -name "snpEff.config"

发现有两个,这是因为我使用了conda的环境的原因,一个配置文件是原始的,一个配置文件是环境的,如果使用了环境,那么就修改环境的相关配置文件,并且把相关文件放到环境的相应目录中去。

原始环境

在data下面建立zunla文件夹和genomes文件夹

miniconda2/pkgs/snpeff-4.5covid19-1/share/snpeff-4.5covid19-1/data/zunla

相应配置文件是

miniconda2/pkgs/snpeff-4.5covid19-1/share/snpeff-4.5covid19-1/snpEff.config

自定义环境,我这里环境名是pepper

miniconda2/envs/pepper/share/snpeff-4.5covid19-1/data/zunla

配置文件

miniconda2/envs/pepper/share/snpeff-4.5covid19-1/snpEff.config

在配置文件中添加自定义数据库的命令

#---
# Non-standard Databases
#---

下面添加

#zunla
zunla.genome : Capsicum_annuum

序列文件名可以命民为zunla.fa或者sequences.fa

放入到genomes或者zunla文件夹均可,genomes文件夹优先读取。

这里需要强调的是必须是.fa扩展名,不认fasta扩展名

注释文件放到建立的zunla的文件中

注释文件命名为

zunla.gff或者genes.gff

gff3文件亦可,准备好之后就可以构建了

snpEff  build -gff3 -v zunla

这里必须要注明是gff2还是gff3。注释文件一般三种格式gff3/gff2/-gtf22,扩展名为gtf的肯定是gtf22了,gff3的扩展名一般为gff3。

由于辣椒的参考组序列比较大,内存溢出了

修改一下命令

snpEff -Xmx40g build -gff3 -v zunla

就可以正常构建了

 

然后再运行注释命令就可以了

snpEff -Xmx40g zunla input.vcf > snpeff.vcf

提醒一点的是所有的snpEff命令中E必须大写!

gff2与gff3格式区别

关于注释文件的格式可以参考这篇文章“常用生物信息学格式介绍(fasta、fastq、gff2、gtf(gff2.5)、gff3、bed、sam、bam、vcf)”

写的比较详细,我仔细研究了一下gff2和gff3之间的区别

可以看出gff2与gff3的区别,关键在于第九列
比如:

Chr1  curated  CDS 365647  365963  .  +  1  Transcript "R119.7"

gff2第九列中属性和键值之间是以空格表示,这段表示该CDS是属于名为R119.7的transcript

在gff3中,他的熟性和键值之间是用等号表示的。

比如

ctg123  .  exon  1300  1500  .  +  .  ID=exon00001

这里用id=exon00001来表示这个外显子的属性

一般的gff3文件都会在开头注明版本##gff-version 3,但是我的这个注释文件扩展名是gff,开头也没有这个版本的信息。

但gff的文件格式是


Chr00 GLEAN CDS 191355000 191355087 . + 0 Parent=Capana00g000065;
Chr00 GLEAN CDS 191355173 191355519 . + 2 Parent=Capana00g000065;
Chr00 GLEAN mRNA 191377025 191377768 1 + . ID=Capana00g000066;
Chr00 GLEAN CDS 191377025 191377768 . + 0 Parent=Capana00g000066;
Chr00 GLEAN mRNA 191690806 191691794 1 + . ID=Capana00g000067;

因而我的注释文件是gff3,而不是gff2,这个版本需要查看内容来自己识别。

 

 

 

转载请注明:百蔬君 » 【原创文章】SnpEff自建注释库的正确方法

喜欢 (23)or分享 (0)
发表我的评论
取消评论

请证明您不是机器人(^v^):

表情