利用snpEff对基因型vcf文件进行变异注释,软件安装、数据库配置、结果解读详细方法

简介: 利用snpEff对基因型vcf文件进行变异注释,软件安装、数据库配置、结果解读详细方法

群体遗传研究中,在获得SNP位点后,我们需要对SNP位点进行注释,对这些SNP位点进行更深的了解,比如哪些是启动子区突变、移码突变等,以便下一步寻找关键变异。

snpEff是一个用于对基因组单核苷酸多态性(SNP)进行注释的软件,snpEff软件可以用于对VCF文件进行变异注释,使用时需要先进行安装,然后构建参考基因组数据库,即可对VCF文件进行注释,下面进行用法介绍。


安装方法

首先安装好java环境,通过官网下载最新版本的软件压缩包,然后解压即可,最好安装在自己熟悉的目录下。

# Download latest version
wget https://snpeff.blob.core.windows.net/versions/snpEff_latest_core.zip
# Unzip file
unzip snpEff_latest_core.zip

另外,推荐一种更加简单快捷的方法,直接使用conda安装,命令如下:

conda install snpeff -c bioconda

配置数据库

有一些物种已经有官方的注释数据库,可以直接进行下载, 比如人类基因组,用如下代码下载:

java -jar snpEff.jar download GRCh38.76

如果需要查找哪些物种有现成的数据库,可以使用如下命令:

java -jar snpEff.jar databases

如果官方没有给出数据库,就需要自行建立数据库,以下用小麦举例,通过参考基因组和注释文件建立注释数据库。

下载数据文件

需要两个主要文件,iwgsc_refseqv2.1_assembly.fa是组装好的基因组序列,iwgscRefseqv2.1HCLC.gff3是注释文件,这两个文件可以在https://wheatgenome.org/Projects/Reference-Genome-Project/RefSeq-v2.1下载,如果是研究其他物种,也可以在网络上找到这两个文件。

image-20230429150117415

配置文件修改

需要修改的配置文件在snpEff目录下, 文件名为snpEff.config,打开这个文件,在最后一行添加自定义数据库信息(这里的wheat可以自定义,但是要保持一致)

echo"wheat.genome:wheat" >> snpEff.conf

数据库路径设置

按照如下设置进入snpEff的安装目录并创建文件夹:

cd snpEff  #进入 snpEff 目录下
mkdir data  #新建 data 目录
cd data  #进入 data 目录下,必须在该目录
mkdir genomes  #新建 genomes 目录,用于建立 wheat 目录中的 bin
mkdir wheat  #新建 wheat 目录,对应物种名或后续软件调用的参数名

将参考基因组.fa文件放在genomes文件夹中,并改名为wheat.fa,并将gff注释文件放在wheat文件夹中改名wheat.gff,最终形成如下文件结构。

$ tree
.
├── genomes
│   └── wheat.fa -> /NGS/Ref/IWGSC_V2.1_fa_gff/iwgsc_refseqv2.1_assembly.fa
└── wheat
    ├── genes.gff -> /NGS/Ref/IWGSC_V2.1_fa_gff/iwgscRefseqv2.1HCLC.gff3

运行脚本形成bin文件

准备好文件后,回到软件目录,并执行以下命令,自动生成参考文件。检查一下存放参考基因组注释文件的目录下是否出现一些以.bin结尾的文件(数量与参考基因组染色体数有关),有就代表构建成功。

java -jar snpEff.jar build -gff3 -v wheat -d -noCheckCds -noCheckProtein
    ├── sequence.1A.bin
    ├── sequence.1B.bin
    ├── sequence.1D.bin
    ├── sequence.2A.bin
    ├── sequence.2B.bin
    ├── sequence.2D.bin
    ├── sequence.3A.bin
    ├── sequence.3B.bin
    ├── sequence.3D.bin
    ├── sequence.4A.bin
    ├── sequence.4B.bin
    ├── sequence.4D.bin
    ├── sequence.5A.bin
    ├── sequence.5B.bin
    ├── sequence.5D.bin
    ├── sequence.6A.bin
    ├── sequence.6B.bin
    ├── sequence.6D.bin
    ├── sequence.7A.bin
    ├── sequence.7B.bin
    ├── sequence.7D.bin
    ├── sequence.Unknown.bin
    └── snpEffectPredictor.bin

数据库构建完成后就可以直接用了,下一次不用再重新弄。

使用方法

准备内容

  • 环境:Linux 或 Ubuntu,已经安装openjdk
  • 文件:基因型变异信息 VCF 格式的文件
  • 参考文件:gff 或 gtf 注释文件、参考基因文件
  • 软件:SnpEff

运行程序

如果是通过conda安装,直接运行以下命令即可调用,对vcf文件进行注释。

snpEff wheat ./xxx.vcf.gz > ./xxx_snpeff.vcf.gz

如果是通过本地安装,可以用java调用程序进行计算,推荐使用这种方法,更加稳定。

java -jar ~/snpeff-5.1-2/snpEff.jar 
-c ~/snpeff-5.1-2/snpEff.config wheat 
../xxx.vcf.gz > ./xxxsnp.vcf.gz

等待注释完成后会生成snpEff_genes.txt文件和snpEff_summary.html文件,记录了注释的摘要信息,另外生成一个新的vcf文件包含详细注释信息。

结果查看

运行完成后会生成一个html的网页文件,里面记录了很多重要信息,接下来进行解读(参考知乎大佬天火三玄变的帖子)

摘要信息

从上往下依次是:基因组(物种名)、注释日期、注释命令、警告信息、错误信息、输入文件行数、变异位点数(过滤之前)、非变异位点数(与参考基因组碱基一致)、变异位点数(过滤之后)、具有ID的变异位点数、非双等位基因组SNP位点数、effects个数、参考基因组总长度、参考基因组有效长度、变异率(参考基因组有效长度/变异位点数)

img

各染色体变异率

从左往右:染色体编号、长度、变异位点数、变异率(多少个碱基中有一个变异位点)

image-20230429152858036

变异类型

包括:SNP(单核苷酸多态性)、MNP(多核苷酸多态性)、INS(插入变异)、DEL(缺失变异)、MIXED(混合变异)、INV(倒位变异)、DUP(重复变异)、BED(易位变异)、INTERVAL(间隔变异)

image-20230429152836884image-20230429153541579

有效影响数量

image-20230429153006075

功能分级有效数

MiSSENSE(错义突变)、NONSENSE(无义突变)、SILENT(沉默突变)

image-20230429153035523

有效变异数和百分比

下图左边为按类型划分有效变异数,包括(从上往下):3’端主要UTR变异(UTR是成熟mRNA分子5'或3'端不被翻译的部分,一般在mRNA转运、稳定性和翻译调节中起重要作用)、5’端主要UTR提前启动子获得变异、5’端主要UTR变异、下游基因变异、起始密码子编码变异、基因间隔区、内含子变异、剪接受体变异、剪接供体变异、剪接区域变异、起始缺失、起始保留变异、终止获得、终止缺失、终止保留变异、同义变异、上游基因变异。

image-20230429153110800

右边为按区域划分有效变异数,包括(从上往下):下游、外显子、间隔区、内含子、剪接位点受体、剪接位点供体、剪接位点区域、上游、3’UTR区、5’UTR区。

SNP位点碱基变异表

可以看出SNP中哪些碱基的转换比较多(A腺嘌呤、C胞嘧啶、G鸟嘌呤、T胸腺嘧啶)

image-20230429153317738

总结

在使用snpEff过程中需要注意数据库的选择和构建,根据不同版本进行计算,另外尽量避免更改染色体的展示方式,防止造成识别错误。另外可以利用vcftools将vcf中的样品信息去掉,这样文件体积会大大缩小,有利用加快注释速度。

参考资料:

   https://www.jianshu.com/p/77c3a2fae4ab    https://zhuanlan.zhihu.com/p/613790756    https://pcingola.github.io/SnpEff/

END

© 素材来源于网络,侵权请联系后台删除

笔记合集,点击直达

相关文章
|
16天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
20天前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
27天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
28天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
1月前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
90 9
|
1月前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
47 3
|
1月前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
1月前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
55 2
|
2天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
10 3
|
2天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
14 3