使用 Annovar 注释 VCF 文件
变异注释是基因组学研究中的关键步骤,帮助研究人员理解变异的功能意义。Annovar (ANNOtate VARiation) 是一个广泛使用的工具,用于对变异进行功能注释。

安装 Annovar
下载 Annovar 需要在 [此处](https://www.openbioinformatics.org/annovar/annovar_download_form.php) 用教育邮箱注册,然后邮箱中会收到下载链接。
+++info 如果你没有教育邮箱
[这里](http://www.openbioinformatics.org/annovar/download/0wgxR2rIVP/annovar.latest.tar.gz) 或许是一个可以下载的链接
+++
解压压缩包
根据自己的习惯看要不要配置环境变量,此处以不配置环境变量为例
Annovar 的可执行文件存放在 `~/annovar/` 下,因此后续使用都要带上这个前缀,为绝对路径调用
准备数据
我的目录结构如下:
其中需要注释的 VCF 文件存在于每个样本的 `gvcf/` 目录下,是一个 `.g.vcf.gz` 文件
简单的示例
步骤 1:转换 VCF 文件
Annovar 使用其专有的输入格式,因此首先需要将 VCF 文件转换为 Annovar 的输入格式。例如对 `16794N.g.vcf.gz` 文件进行转换:
这将生成一个 `sample.avinput` 文件,作为后续注释的输入。
步骤 2:下载 Annovar 数据库
在进行注释之前,需要下载相关的数据库。所有支持的数据库可以在 [官网](https://annovar.openbioinformatics.org/en/latest/user-guide/download/) 上找到:
例如,我使用 RefGene, cytoBand, 1000g2015aug, dbnsfp42c, cg69, ljb26_all, snp138 数据库进行注释:
RefGene 数据库已经在 `humandb/` 目录下,不需要下载
步骤 3:变异注释
下载完数据库后,可以开始注释 VCF 文件中的变异。例如对样本 `16794N` 进行注释:
在这个命令中:
- `-buildver hg19` 指定参考基因组版本。
- `-out sample` 指定输出文件的前缀。
- `-remove` 表示注释完成后删除中间文件。
- `-protocol` 指定使用的数据库,这里使用了 `refGene`、`cytoBand`、`1000g2015aug_all`、`1000g2015aug_eur`、`1000g2015aug_afr`、`dbnsfp42c`、`cg69`、`ljb26_all`、`snp138`。
- `-operation` 指定每个数据库的操作类型,`g` 表示基因注释,`r` 表示区域注释,`f` 表示过滤数据库。
- `-nastring .` 指定将缺失值表示为 "."
- `-csvout` 表示输出文件为 CSV 格式。
步骤 4:查看结果
由于我们删除了中间文件,注释完成后我们将只得到 1 个 csv 输出文件 `16794B.hg19_multianno.csv`
批量操作
现在我们对 22 个样本进行批量注释:
使用循环
如果服务器比较拥挤,可以使用循环:
写入以下代码:
赋予执行权限,并使用 nohup 命令后台运行:
同时进行
当我们的 vcf 文件很大的时候,转换和注释通常非常耗时,因此在服务器空闲的情况下我们可以同时进行:
写入以下代码:
赋予执行权限,并使用 nohup 命令后台运行:
结果处理
查看注释结果
发现有些值两侧有引号,这会对后面的处理产生影响,需要去除引号
写入以下代码:
赋予执行权限,并使用 nohup 命令后台运行:
筛选并合并所有样本的注释
写入以下代码:
赋予执行权限,并使用 nohup 命令后台运行:
Annovar 注释结果与 MAF 文件的转换
MAF 文件是 Mutation Annotation Format 文件的缩写,是一种用于存储基因突变注释信息的标准文件格式。
如果你的 Annovar 注释结果比较多
可以使用 [annovar2maf](https://github.com/PoisonAlien/annovar2maf)
这是一个 python 编写的脚本,不过他是针对 txt 文件的,由于我们的注释结果保存为了 csv 文件,需要将脚本中的 `line.split("\t")` 替换为 `line.split(",")`
以下是替换后的脚本
此脚本会在第一列添加一列脚本自定义的 `Tumor_Sample_Barcode`,使用以下命令去除:
生成的 `merged_annotations_python.maf` 文件可以使用 R 语言的 `maftools` 包来直接进行分析和绘图
如果你的 Annovar 注释结果比较少
我们可以使用 R 语言的 `maftools` 包来直接进行转换、分析和绘图:
使用 R 包转换的文件会稍大一点,但是它们的绘图结果是一致的。
Loading...



