snpEFF注释vcf-笔记

找了突变,获得了snp的vcf文件,肯定想知道这些突变位点到底是出现在哪些基因上以及那些转录本上;如果是出现在外显子上的突变,想了解这些突变会对编码蛋白造成怎么样的影响,这些统统能用annovar解决,选择annovar的Gene-based annotation即可,可查看之前的笔记Annovar注释vcf-笔记

但是如果想获得其他信息或者说更加详细的信息,网上搜了下,发现推荐使用snpEFF来做突变注释,而且软件更新的很勤快~~!因此学习一下,做个笔记

软件下载与安装

    wget http://sourceforge.net/projects/snpeff/files/snpEff_latest_core.zip
    unzip snpEff_latest_core.zip

下载数据库

    java -jar snpEff.jar databases |grep 'Homo_sapiens' |less -S

会有下面这些关于人的数据库,可根据自己的基因组版本进行选择,GRCh37.75则表示的是ENSEMBL的参考基因组

    GRCh37.75                  Homo_sapiens                                                            
    GRCh38.86                  Homo_sapiens                                                            
    hg19                       Homo_sapiens (USCS)                                                     
    hg19kg                     Homo_sapiens (UCSC KnownGenes)                                          
    hg38                       Homo_sapiens (USCS)                                                     
    hg38kg                     Homo_sapiens (UCSC KnownGenes)                                          
    testHg19ChrM               Homo_sapiens (UCSC) 

然后当然是下载对应数据库,我选择的是GRCh37.75

    java -jar snpEff.jar download GRCh37.75

注释

  1. 以GATK获得的snp的vcf文件为例,对其进行注释

    java -Xmx4g -jar ~/biosoft/SnpEff/snpEff/snpEff.jar GRCh37.75 KPGP-00001_filtered_pass.snp.vcf >KPGP-00001_filtered_pass.snpEff.vcf
    
  2. 输出的vcf文件

    从结果文件KPGP-00001_filtered_pass.snpEff.vcf可看出,其还是一个vcf格式的文件,但是在原来的输出文件基础上增加了一个tag:ANN

    因此我可以将这个vcf格式文件稍微处理下,保留原来的vcf文件的前5列,再加上ANNtag形成一个新文件来查看

    perl -alne 'next if $_ =~ /^#/;$F[7] =~ /(ANN=\S+)/;print "$F[1]\t$F[2]\t$F[3]\t$F[4]\t$F[5]\t$1"' KPGP-00001_filtered_pass.snpEff.vcf >snpEff.anntag.vcf
    

    可以看到如下:

    1   63268   rs75478250  T   C   ANN=C|non_coding_transcript_exon_variant|MODIFIER|OR4G11P|ENSG00000240361|transcript|ENST00000492842|unprocessed_pseudogene|1/1|n.321T>C||||||
    

    从上可看出ANNtag将注释信息以”|”分割,每个field有其对应的意义,比如从ANN=开始:

    1. Allele :C表示该突变在参考基因组上的碱基
    2. Annotation :non_coding_transcript_exon_variant表示突变类型?
    3. Putative_impact :MODIFIER表示snpEFF对这个突变的影响的预测,有4个程度(HIGH, MODERATE, LOW, MODIFIER)
    4. Gene Name :OR4G11P表示该突变所在基因的基因名,如果是这个突变位于intergenic,则使用该突变离的最近的一个基因的名称
    5. Gene ID :ENSG00000240361表示gene id,这里是使用ENSEMBL id
    6. Feature type :transcript表示突变所在区域的类型,比如transcript, motif, miRNA等
    7. Feature ID :ENST00000492842表示Feature type对应的id
    8. Transcript biotype :unprocessed_pseudogene表示The bare minimum is at least a description on whether the transcript is {“Coding”, “Noncoding”}. Whenever possible, use ENSEMBL biotypes
    9. Rank / total :1/1表示Exon or Intron rank / total number of exons or introns,前面的1表示这个突变是在第1个exon上(因为annatation已经给出了这个是突变是在exon上),后面的11表示这个突变所在的transcript总共有1个exon(个人理解是这个意思)
    10. HGVS.c :n.321T>C表示Variant using HGVS notation (DNA level)

    后面可能还会有其他注释信息,遇到的话,具体查看官网说明http://snpeff.sourceforge.net/SnpEff_manual.html#input

  3. 突变影响的预测,如上所述,snpEff给予每个突变的影响进行了预测

    HIGH:The variant is assumed to have high (disruptive) impact in the protein, probably causing protein truncation, loss of function or triggering nonsense mediated decay

    MODERATE:A non-disruptive variant that might change protein effectiveness

    LOW:Assumed to be mostly harmless or unlikely to change protein behavior

    MODIFIER:Usually non-coding variants or variants affecting non-coding genes, where predictions are difficult or there is no evidence of impact

    所以我们也可以根据这些categorized impact来找more significant variants

    snpEFF官方说明还有列出了每种impact有哪些Effect Classic,以及对应的解释说明

Summary

snpEff软件也有丰富的参数选择,比如:

  1. 可以根据自己的需求来个性化建库,
  2. -t可以使用Mutlithreaded
  3. SnpSift filter可以过滤掉一些不想显示的突变信息,如:-no-intron :Do not show INTRON changes
  4. -fi intervals.bed可以选择输入vcf文件的注释intervals位置

还有其他功能,由于现在只是想看下snpEFF和annovar的区别,所以只是简单的使用下

主要参考:
http://snpeff.sourceforge.net/SnpEff_manual.html
http://www.bio-info-trainee.com/1594.html

本文出自于http://www.bioinfo-scrounger.com转载请注明出处