基因组变异注释 — ANNOVAR(一)

基因组变异注释 — ANNOVAR(一)

1 简介

ANNOVAR 是一款高效的基因组注释工具,专门用于分析和注释来自多种生物基因组(包括人类的 hg18、hg19、hg38,以及小鼠、蠕虫、果蝇、酵母等)的遗传变异。这个工具实际上就是几个用 Perl 语言编写的脚本,因此可以在安装了 Perl 解释器的多种操作系统上(一般 Linux 自带)运行。

ANNOVAR 的核心功能在于其多样的注释方法,包括基于基因的注释(gene-based annotation)、基于区域的注释(region-based annotation)和基于筛选的注释(filter-based annotation)。基于基因的注释可以识别单核苷酸多态性(SNPs)或拷贝数变异(CNVs)是否导致蛋白质编码的变化及其影响的氨基酸;基于区域的注释用于鉴定特定基因组区域内的变异,如保守区域、转录因子结合位点、GWAS 候选区间等;而基于筛选的注释则用于判断变异是否被特定数据库(如dbSNP、1000 Genome项目)记录,以及进行多种功能预测评分,这也是 ANNOVAR 的主要优势之一。

ANNOVAR_main_workflows
ANNOVAR_main_workflows

ANNOVAR 支持多种输入和输出格式,最常见的输入格式是 VCF 文件,而输出则包括注释过的 VCF 文件、以tab 或逗号分隔的文本文件。除此之外,ANNOVAR 还提供了其他功能,如批量获取特定基因组位置的核苷酸序列,为孟德尔病从外显子组数据中识别候选基因列表等。

总而言之,ANNOVAR 是一款功能丰富、灵活高效的基因组注释工具,适用于广泛的基因组研究和遗传变异分析。与之类似的变异注释软件还包括 VEP、snpEff、VAAST、AnnTools 等。

扫码关注微信公众号【生信F3】获取更多生物信息学最新知识。

ShengXinF3_QRcode
ShengXinF3_QRcode

2 安装

  1. 访问官网下载页面:ANNOVAR Download Center.

  2. 注册

    在下载页面填写基本信息并使用机构邮箱(.edu 或 .gov 结尾的邮箱地址)进行注册。

  3. 下载

    完成注册后,ANNOVAR 会直接在当前页面刷新后提供链接。

    alt

    Linux 系统下载 ANNOVAR 可使用以下命令,但实测下载速度很慢。

    wget http://www.openbioinformatics.org/annovar/download/*/annovar.latest.tar.gz

    推荐使用 Motrix 在 windows 本地下载后上传至服务器中。

  4. 解压和安装

    在 Linux 系统(一般自带 Perl)中,使用 tar 命令解压后即可使用:

    tar -xvfz annovar.latest.tar.gz

    解压后的文件夹中包含以下文件:

    • example:存放的是示例数据文件
    • humandb:部分注释数据库的文件,annovar 的软件中默认自带了 hg19 的 refGene 数据库;
    • annotate_variation.pl:主程序,用来进行数据库的下载,以及不同形式的注释;
    • coding_change.pl:用来推断蛋白质的序列是否发生变化;
    • convert2annovar.pl:将其他多种文件格式(VCF 等)转化为 annovar 可识别的形式;
    • retrieve_seq_from_fasta.pl:自行建立其它物种的转录本
    • table_annovar.pl:可以一次完成三种不同形式的注释
    • variants_reduction.pl:用来定制过滤注释流程

3 用法

3.1 准备输入文件

convert2annovar.pl 脚本可以将其他 “genotype calling” 格式转换为 ANNOVAR 格式。目前,该程序可以处理Samtools 基因型 calling pileup 格式,Illumina CASAVA 格式,SOLiD GFF 基因型调用格式,Complete Genomics 变异格式,SOAPsnp 格式,MAQ 格式和 VCF 格式。此外,该程序还可以从 dbSNP 标识符列表、转录标识符或基因组区域生成 ANNOVAR 输入文件。现今,VCF 是使用最广泛的文件格式,而大多数其他格式已不再使用。

convert2annovar.pl \
 -format vcf4 \
 -allsample \
 -outfile SV \
 input.vcf
  • --format vcf4

    输入文件格式(默认:pileup)

  • --outfile file

    输出文件名(default: STDOUT)

  • --allsample

    对于多样本 VCF 文件,该参数将处理文件中的所有样本,并为每个样本生成单独的输出文件。默认情况下,只处理 VCF 文件中的第一个样本。

转换后用于后续 annovar 注释的输入文件格式为 .avinput,示例如下:

cat example/ex1.avinput

#
 1   948921  948921  T   C   comments: rs15842, a SNP in 5' UTR of ISG15
# 1   1404001 1404001 G   T   comments: rs149123833, a SNP in 3' UTR of ATAD3C
# 1   5935162 5935162 A   T   comments: rs1287637, a splice site variant in NPHP4
# 1   162736463   162736463   C   T   comments: rs1000050, a SNP in Illumina SNP arrays
# 1   84875173    84875173    C   T   comments: rs6576700 or SNP_A-1780419, a SNP in Affymetrix SNP arrays
# 1   13211293    13211294    TC  -   comments: rs59770105, a 2-bp deletion
# 1   11403596    11403596    -   AT  comments: rs35561142, a 2-bp insertion
# 1   105492231   105492231   A   ATAAA   comments: rs10552169, a block substitution
# 1   67705958    67705958    G   A   comments: rs11209026 (R381Q), a SNP in IL23R associated with Crohn's disease
# 2   234183368   234183368   A   G   comments: rs2241880 (T300A), a SNP in the ATG16L1 associated with Crohn's disease
# 16  50745926    50745926    C   T   comments: rs2066844 (R702W), a non-synonymous SNP in NOD2
# 16  50756540    50756540    G   C   comments: rs2066845 (G908R), a non-synonymous SNP in NOD2
# 16  50763778    50763778    -   C   comments: rs2066847 (c.3016_3017insC), a frameshift SNP in NOD2
# 13  20763686    20763686    G   -   comments: rs1801002 (del35G), a frameshift mutation in GJB2, associated with hearing loss
# 13  20797176    21105944    0   -   comments: a 342kb deletion encompassing GJB6, associated with hearing loss
# 8   8887543 8887543 A   T   comments: a mutation that abolishes stop codon
# 8       8887539 8887539 A       T   comments: a mutation that results in premature stop codon
# 8       8887536 8887537 AG      GATT    comments: a mutation that creates a stop codon 2 amino acids downstream
# 8       8887540 8887540 G       GGAA    comments: a mutation that results in insertion of a new amino acid
# 5       1295288 1295288 G       A   comments: a variant upstream of transcriptional start site
# chr14   95602958        95602958        A       C   comments: a variant that affects splicing of UTR regions

文件以空格或者制表符分隔,最少需要 5 列,分别代表:

  1. 染色体 (Chromosome)

  2. 起始位置 (Start)

  3. 终止位置 (End)

  4. 参考等位基因 (Reference Allele)

  5. 替代等位基因 (Alternative Allele)

  6. 其他的列作为额外补充信息 (可选)。插入或者删除以 - 表示,“0” 代表只指定 position,而不指定实际的核苷酸。

3.2 数据库下载

ANNOVAR 的注释主要依赖于数据库,因此在进行分析之前,应将所需的数据库下载到 humandb 文件夹中,下载的命令如下:

annotate_variation.pl -buildver hg19 -downdb -webfrom annovar avsnp147 humandb/

-buildver:对应参考基因组的版本

-downdb –webfrom annovar:从 ANNOVAR 库中下载对应的数据库,可获取的数据库查询网址为:(http://annovar.openbioinformatics.org/en/latest/user-guide/download/)

avsnp147:下载的数据库的名称,各个数据库的详细介绍可以参考以下链接:https://annovar.openbioinformatics.org/en/latest/user-guide/filter/

humandb:下载到 humandb 文件夹中

3.3 基因注释

确定 SNPs、InDels、SVs 或 CNVs 等是否会引起蛋白质编码变化以及受影响的氨基酸。用户可以灵活使用 RefSeq 基因、UCSC 基因、ENSEMBL 基因、GENCODE 基因、AceView 基因等多种基因定义系统。

3.3.1 模式物种变异注释

对于人类等模式生物,现在下载 ANNOVAR 的最新版本默认自带了 hg19 的数据库,所以基于 hg19 进行的变异检测可以很方便的直接注释SNV/InDel/SV/CNV,如果是 hg38 等其它基因组版本,则需自行下载后再进行注释。

annotate_variation.pl \
 -geneanno \
 -buildver hg19 \
 -dbtype refGene \
 -outfile SV.S1.anno \
 -exonsort \
 SV.S1.avinput /path/to/annovar/humandb

-buildver 基因组版本

-dbtype 数据库类型,参考:https://annovar.openbioinformatics.org/en/latest/user-guide/download/

-neargene [int] 定义基因上游/下游的距离阈值

-exonsort 结果按外显子排序

3.3.2 非模式物种变异注释
非模式物种

针对非模式物种需要首先自己构建数据库,准备基因组文件(genome.fasta)、基因组注释文件(gtf)

gtfToGenePred  -genePredExt genome.gtf genome_refGene.txt
./annovar/retrieve_seq_from_fasta.pl \
 --format refGene \
 --seqfile genome.fasta \
 --out genome_refGeneMrna.fa \
 genome_refGene.txt

3.4 区间注释

识别特定基因组区域的变异,例如 44 个物种的保守区域,预测转录因子结合位点,片段重复区域,GWAS hits,基因组变异数据库,DNAse I超敏位点,ENCODE H3K4Me1/H3K4Me3/H3K27Ac/CTCF 位点,ChIP-Seq 峰,RNA-Seq 峰,或许多其他基因组区间的注释。

3.4.1 识别细胞遗传带(cytogenetic band)

要识别吉氏(Giemsa)染色带,需要首先下载对应数据库信息:

annotate_variation.pl -build hg19 -downdb cytoBand annovar/humandb/

可使用 -dbtype cytoBand 选项:

annotate_variation.pl -regionanno -buildver hg19 -dbtype cytoBand ex1.avinput humandb/

当一个变异跨越多个条带时,它们之间会用破折号连接(例如 1q21.1-q23.3)。

3.5 数据库注释(基于筛选的注释)

这个使用频率非常高,而且通常是结合多个数据库信息一起过滤。

重点是检查那些后缀为 dropped 的文件,Known variants will be written to the dropped file together with allele frequencies. 如下:

 238104 tmp.hg38_ALL.sites.2015_08_dropped
 15575 tmp.hg38_clinvar_20170905_dropped
 7527 tmp.hg38_cosmic70_dropped
 172432 tmp.hg38_exac03_dropped
 281449 tmp.hg38_gnomad_genome_dropped

可以看到,总共的48万位点,其中有13万是在千人基因组计划出现的,有17万是在EXAC数据库出现,但是只有区区7527个位点是在COSMIC数据库出现,,在clinvar数据库的,有15575位点。

最原始的想法,通常是找到某个基因被注释到外显子区域的nonsynonymous突变位点,然后如果其被clinvar数据库记录,那就说明找到了有证据支持的致病位点。

不过,值得一提的是 clinvar 数据库需要经常更新哦。

~/biosoft/ANNOVAR/annovar/annotate_variation.pl -downdb clinvar_20180603 humandb -buildver hg38
# 72M Jul 9 2018 hg38_clinvar_20180603.txt
~/biosoft/ANNOVAR/annovar/annotate_variation.pl -filter \
-buildver hg38 -dbtype clinvar_20180603 --outfile tmp for_annovar.input \
~/biosoft/ANNOVAR/annovar/humandb/

3.6 联合注释

对于初学者来说,使用 ANNOVAR 的最简单方法是使用 table_annovar.pl 程序。该程序接收一个输入变异文件(如 VCF 文件),并生成一个以制表符分隔的输出文件,文件中有许多列,每列代表一组注释。此外,如果输入是 VCF 文件,程序还会生成一个新的输出 VCF 文件,并在 INFO 字段中填入注释信息。

使用 table_annovar.pl 主程序对 example/ex1.avinput 输入文件同时进行多数据库的注释:

# 下载refGene数据库
annotate_variation.pl -buildver hg19 -downdb -webfrom annovar refGene humandb/
# 下载refGene数据库
annotate_variation.pl -buildver hg19 -downdb cytoBand humandb/
# 下载refGene数据库
annotate_variation.pl -buildver hg19 -downdb -webfrom annovar exac03 humandb/ 
# 下载refGene数据库
annotate_variation.pl -buildver hg19 -downdb -webfrom annovar avsnp147 humandb/ 
# 下载refGene数据库
annotate_variation.pl -buildver hg19 -downdb -webfrom annovar dbnsfp30a humandb/
# 利用以上下载的数据库注释
table_annovar.pl example/ex1.avinput humandb/ \
 -buildver hg19 \
 -out myanno \
 -remove \
 -protocol refGene,cytoBand,exac03,avsnp147,dbnsfp30a \
 -operation gx,r,f,f,f \
 -nastring . \
 -csvout \
 -polish \
 -xref example/gene_xref.txt
  • -protocol

    注释来源数据库的准确名称,有多少个数据库,需要与随后的 operation 方案一一对应。

  • -operation

    注释的类型:g 表示基于基因的注释(gene-based annotation)、r 表示基于区域的注释(region-based annotation) 、f 表示基于筛选的注释( filter-based annotation)。

  • -polish

    优化索引的蛋白质符号(如p.G12Vfs*2)

依次运行以上命令。前几个命令将适当的数据库下载到 humandb/ 目录中。最后运行 TABLE_ANNOVAR 命令,使用 ExAC 版本0.3 (简称exac03) dbNFSP版本3.0a (简称dbnsfp30a), dbSNP 版本147 使用左规范化(简称avsnp147) 数据库并删除所有临时文件,并生成名为 myanno.hg19_multianno.txt 的输出文件。没有任何注释的字段将由 . 字符串填充。在 Excel 中打开输出文件,查看其中包含的内容。

table_annovar
table_annovar

table_annovar.pl 可以直接支持 VCF 文件的输入和输出 (注释将写入输出 VCF 文件的 INFO 字段):

table_annovar.pl example/ex2.vcf humandb/ \
 -buildver hg19 \
 -out myanno \
 -protocol refGene,cytoBand \
 -operation g,r \
 -nastring . -vcfinput -polish -remove

输出内容以两种方式展示:

  • ex2.hg19_multianno.vcf
  • ex2. hg19_multiano .txt

其中包含不同格式的类似信息。

在得到变异位点的注释信息后,我们就可以按需要筛选我们感兴趣(如与疾病关联)的遗传位点了。关于如何筛选的内容请参考微信公众号【生信F3】中《致病基因分析详解》。

扫码关注微信公众号【生信F3】获取更多生物信息学最新知识。

ShengXinF3_QRcode
ShengXinF3_QRcode

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/219133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【工作生活】汽车电子嵌入式开发简介

目录 1. 目标 2. 要分享什么 3.1 行业知识 3.1.1车载行业知识: 3.1.2项目: 3.1.3开发测试工具: 3.2 硬件平台 3.3 基础知识 3.4 工作生活 3. 我们是谁 1. 目标 随着新能源汽车的快速崛起,汽车电子行业开始快速发展&…

iEnglish:家长陪伴助力养成阅读兴趣与坚持习惯

日前,一则10岁男孩子铮连续进行英语原版阅读超过940天的打卡视频在短视频平台刷屏,评论区成为家长热议互动的平台,高赞评论包括“孩子是如何做到愿意阅读的?”“口语太棒了!”“别人家的孩子就是优秀!”“求子铮妈妈分享经验”等等。 子铮妈妈对于自己孩子的优秀也是十分开心…

通达信指标公式19:龙虎榜股票池——主力控盘度的计算方法

0.小红牛本指标,选股的思路说明:控盘度,又称主力控盘,是指主力控制了某只股票的大部分流通股,从而控制了股票的价格。主力控盘的目的通常是为了获取更多的收益,通过控制股票价格来实现其策略。所以首要分析…

数据结构——链表题目

文章目录 JZ25 合并两个排序的链表(简单)NC22 合并两个有序的数组(简单)NC3 链表中环的入口节点(中等)NC50 链表中的节点每k个一组翻转(中等)NC53 删除链表的倒数第n个节点(中等) JZ…

软件崩溃时VS中看不到有效的调用堆栈,使用Windbg动态调试去分析定位

目录 1、问题说明 2、使用Windbg查看崩溃时详细的函数调用堆栈 3、将Windbg中显示的函数调用堆栈对照着C源码进一步分析 4、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/art…

[Java学习日记]多线程练习、线程池

目录 一.案例:五个人抢红包 二.案例:两个抽奖池抽奖 三.案例:两个抽奖池抽奖:获取线程运行的结果 四.线程池:用来存放线程,避免多次重复创建线程 五.自定义线程池 六.最大并行数与线程池大小 一.案例&…

【Android】Glide的简单使用(上)

文章目录 引入Glide的优点:缺点: 使用常用方法:从网络加载图片从文件加载图片加载resource资源加载URI地址设置占位图出错时的图片占位图图片过渡的Transitions自定义过渡动画图片大小调整缩放图片播放gifasGif()把Gif当作Bitmap播放显示本地视频缩略图 引入 Glide是Google员工…

IntelliJ IDEA 2023.2新特性详解第三弹!Docker、Kubernetes等支持!

9 Docker 在 Docker 镜像层内预览文件 现在可以在 Services(服务)工具窗口中轻松访问和预览 Docker 镜像层的内容。 从列表选择镜像,选择 Show layers(显示层),然后点击 Analyze image for more informati…

平价开放式耳机怎么选?盘点几款好用的平价开放式耳机!

在这个充满音频奇迹的年代,选一副好耳机就像是挑选人生伴侣一样重要,而开放式耳机,由于佩戴无需入耳带来了不错的舒适度,就此受到了许多人的喜爱。 可问题是,市面上平价开放式耳机太多,让人眼花缭乱&#…

医院运维 告警闪现后的故障排查

长期以来,医院信息化运维中存在着科室复杂、应用场景多、终端运维工作量大、软件系统兼容需求强等诸多痛点,且对技术设备的稳定性、连续性要求极高,在日常运维中,需要应对和解决这些问题来保障业务稳定、健康运行。 1、数据孤岛 …

【离散数学】——期末刷题题库(二元关系作业一(运算性质闭包))

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

揭秘MQTT:为何它是物联网的首选协议?

文章目录 MQTT 协议简介概览MQTT 与其他协议对比MQTT vs HTTPMQTT vs XMPP 为什么 MQTT 是适用于物联网的最佳协议?轻量高效,节省带宽可靠的消息传递海量连接支持安全的双向通信在线状态感知 MQTT 5.0 与 3.1.1MQTT 服务器MQTT 客户端 MQTT 协议简介 概…

acwing1209.带分数暴力与优化(java版)

//n a b / c n是确定的,只需找到其中两个。判断剩下一个数是否满足条件即可 //由题目条件可知,每个数不能重复使用,需要一个st全局数组判断每个数是否使用过 //递归实现排列型枚举,cn ac b //对于枚举出来的每一个a,再去枚举每一个c,再在c的枚举里判断b是否满足条件 //…

第四期丨酷雷曼无人机技能培训

第4期无人机技能培训 2023年10月25日,酷雷曼无人机技能培训及执照考试第四期成功举办,自7月份首期开办以来,已按照每月一期的惯例连续举办四期,取得了极为热烈的反响。 随着无人机培训的重要性及影响力逐渐扩大,参加培…

算法-贪心思想

贪心的思想非常不好解释,而且越使用权威的语言解释越难懂。而且做题的时候根据自己的理解可能直接做出来,但是非要解释一下怎么使用的贪心的话,就懵圈了。一般来说,贪心的题目没有固定的套路,一题一样,不过…

分享67个节日PPT,总有一款适合您

分享67个节日PPT,总有一款适合您 67个节日PPT下载链接:https://pan.baidu.com/s/1oU-UUCV_69e8Gp5Y6zrzVA?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

Spark---Spark on Hive

1、Spark On Hive的配置 1&#xff09;、在Spark客户端配置Hive On Spark 在Spark客户端安装包下spark-2.3.1/conf中创建文件hive-site.xml&#xff1a; 配置hive的metastore路径 <configuration><property><name>hive.metastore.uris</name><v…

关于对ArrayBlockingQueue 的AQS探究

1、介绍 条件队列是 AQS 中最容易被忽视的一个细节。大部分时候&#xff0c;我们都用不上条件队列&#xff0c;但是这并不说明条件队列就没有用处了&#xff0c;它反而是我们学习生产者-消费者模式的最佳教材。条件队列是指一个阻塞队列&#xff0c;其中的元素是等待某个条件成…

每日一题:LeetCode-75. 颜色分类

每日一题系列&#xff08;day 12&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

ROS 元功能包

ROS元功能包&#xff08;Metapackage&#xff09;是一种特殊的软件包&#xff0c;它本身并不包含任何可执行代码或数据文件。在ROS 1中&#xff0c;可以通过catkin_create_pkg命令创建元功能包。 相反&#xff0c;它的主要目的是作为一组相关功能包的集合或者依赖关系列表。使…