寫在前面
在進(jìn)行基因組學(xué)研究中,總避免不了對一些SNP和Indel進(jìn)行分析,如何去注釋它們的,就需要用到SnpEff,SnpEff是一個變異注釋和預(yù)測變異影響(氨基酸和核酸改變)的工具。
1.介紹
安裝
因為是用JAVA編寫的,所以需要提前安裝JAVA。
http://snpeff.sourceforge.net/download.html
概括介紹
Input:通常是VCF(variant call format)文件,也接受BED文件(如來自ChIP-Seq peaker)
Output:注釋變異并預(yù)測對已知基因的影響。
內(nèi)置數(shù)據(jù)庫包含超過2500個基因組,包括大多數(shù)哺乳動物,植物,細(xì)菌和真菌基因組。
變異類型
| Type | What is means | Example |
|---|---|---|
| SNP | Single-Nucleotide Polymorphism | Reference = 'A', Sample = 'C' |
| Ins | Insertion | Reference = 'A', Sample = 'AGT' |
| Del | Deletion | Reference = 'AC', Sample = 'C' |
| MNP | Multiple-nucleotide polymorphism | Reference = 'ATA', Sample = 'GTC' |
| MIXED | Multiple-nucleotide and an InDel | Reference = 'ATA', Sample = 'GTCAGT' |
數(shù)據(jù)庫
從4.0版本開始,SnpEff自動下載和安裝所有數(shù)據(jù)庫。
查看支持的數(shù)據(jù)庫。
$ java -jar snpEff.jar databases | less
尋找特定的數(shù)據(jù)庫。
$ java -jar snpEff.jar databases | grep -i musculus
GRCm38.68 Mus_musculus OK http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.69 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.70 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.71 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.72 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.73 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
GRCm38.74 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
NCBIM37.64 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
NCBIM37.65 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
NCBIM37.66 Mus_musculus http://sourceforge.net/projects/snpeff/files/databases/v3.4/snpEff_v3.4_Mus_musculus.zip
2.啟動 SnpEff
基本例子:使用SnpEff進(jìn)行注釋
以系統(tǒng)提供的vcf樣本為例。examples/test.chr22.vcf
$ java -Xmx4g -jar snpEff.jar GRCh37.75 examples/test.chr22.vcf > test.chr22.ann.vcf #-Xmx4g指定使用4g內(nèi)存,
?
# Here is how the output looks like
$ head examples/test.chr22.ann.vcf
##SnpEffVersion="4.1 (build 2015-01-07), by Pablo Cingolani"
##SnpEffCmd="SnpEff GRCh37.75 examples/test.chr22.vcf "
##INFO=
##INFO=
##INFO=
#CHROM POS ID REF ALT QUAL FILTER INFO
22 17071756 . T C . . ANN=C|3_prime_UTR_variant|MODIFIER|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.*11A>G|||||11|,C|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397A>G|||||4223|
22 17072035 . C T . . ANN=T|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1406G>A|p.Gly469Glu|1666/2034|1406/1674|469/557||,T|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397G>A|||||3944|
22 17072258 . C A . . ANN=A|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1183G>T|p.Gly395Cys|1443/2034|1183/1674|395/557||,A|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397G>T|||||3721|
22 17072674 . G A . . ANN=A|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.767C>T|p.Pro256Leu|1027/2034|767/1674|256/557||,A|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397C>T|||||3305|
第八列ANN是SnpEff添加的注釋信息,老版本的會使用EFF。
添加-v(verbose)參數(shù)顯示詳細(xì)的分析過程,便于糾正報錯??梢钥吹降谝淮沃付〝?shù)據(jù)庫也是下載安裝基因組的過程,第二次就會直接調(diào)用本地版本。
輸出結(jié)果會生成一個html文件,會顯示基本的統(tǒng)計信息和對變異的分析。
3.命令和命令行參數(shù)
運行加速:
一是不做統(tǒng)計。如果vcf文件中沒有成百上千個樣本的話,應(yīng)該使用-noStats來提高運行速度。
二是使用多線程。參數(shù)-t來實現(xiàn)。
過濾
對輸出結(jié)果進(jìn)行過濾。
使用SnpSift filter實現(xiàn)輸出結(jié)果的過濾。
| Command line option | Meaning |
|---|---|
| -no-downstream | Do not show DOWNSTREAM changes |
| -no-intergenic | Do not show INTERGENIC changes |
| -no-intron | Do not show INTRON changes |
| -no-upstream | Do not show UPSTREAM changes |
| -no-utr | Do not show 5_PRIME_UTR or 3_PRIME_UTR changes |
| -no EffectType | Do not show 'EffectType' (it can be used several times) e.g: -no INTERGENIC -no SPLICE_SITE_REGION
|
經(jīng)典轉(zhuǎn)錄本
一個基因中經(jīng)典的轉(zhuǎn)錄本被定義為蛋白編碼轉(zhuǎn)錄本中最長的CDS,如果一個基因中沒有一個轉(zhuǎn)錄本是蛋白編碼的,那么它就是最長的cDNA。使用-canon來調(diào)用經(jīng)典轉(zhuǎn)錄本功能。
4.輸入和輸出文件
介紹vcf文件
vcf文件是tab分隔的,通常包含以下八個內(nèi)容。Chromosome name,Position,Variant's ID,Reference genome,Alternative (i.e. variant),Quality score,F(xiàn)ilter (whether or not the variant passed quality filters),INFO : Generic information about this variant. SnpEff adds annotation information in this column.
示例:
#CHROM POS ID REF ALT QUAL FILTER INFO
20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2
20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017
vcf的輸出
vcf也是默認(rèn)的標(biāo)準(zhǔn)輸出。
vcf輸出文件的ANN區(qū)域
示例:
ANN=T|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1406G>A|p.Gly469Glu|1666/2034|1406/1674|469/557||,T|downstream_gene_variant|MODIFIER|FABP5P11|ENSG00000240122|transcript|ENST00000430910|processed_pseudogene||n.*397G>A|||||3944|
一個變異通常由超過一個注釋,多個注釋用逗號來分隔,每個注釋的子區(qū)域都用|來分隔。
Annotation : T|missense_variant|MODERATE|CCT8L2|ENSG00000198445|transcript|ENST00000359963|protein_coding|1/1|c.1406G>A|p.Gly469Glu|1666/2034|1406/1674|469/557| |
SubField number : 1| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |15| 16
對注釋的子區(qū)域進(jìn)行解讀:
1.Allele(or ALT):變異位點
2.Annotation (a.k.a. effect):使用序列本體術(shù)語來注釋影響。
3.Putative_impact: 對基本影響的簡單估計(HIGH, MODERATE, LOW, MODIFIER)
4.Gene Names:常用的基因名(HGNC)
5.Gene ID
6.Feature type:哪種類型的特征, (e.g. transcript, motif, miRNA, etc.)。
7.Feature ID:可能是Transcript ID (preferably using version number), Motif ID, miRNA, ChipSeq peak, Histone mark, etc。
8.Transcript biotype:“Coding”, “Noncoding”
9.Rank / total:外顯子或內(nèi)含子等級/總的外顯子或內(nèi)含子數(shù)量。
10.HGVS.c:使用HGVS符號的變異。
11.HGVS.p:
12.cDNA_position / cDNA_len:在cDNA或轉(zhuǎn)錄本cDNA的位置。
13.CDS_position / CDS_len:
14.Protein_position / Protein_len:
15.Distance to feature:可以是空的。
16.Errors, Warnings or Information messages: 影響注釋準(zhǔn)確性的錯誤,警告或提示信息。
每個vcf行的多條注釋:
出現(xiàn)多條注釋的原因:
1.一個變異影響多個基因,如一個變異可以是一個基因的下游或者另一個基因的上游。
2.基因有多個轉(zhuǎn)錄本,單個變異影響每個轉(zhuǎn)錄本。
5.癌癥樣本
6.添加注釋
SnpEff也能對非編碼區(qū)和調(diào)節(jié)區(qū)域進(jìn)行注釋。
只對少數(shù)幾個物種有效(如人,鼠等)
進(jìn)行該注釋前,首先該看看自己研究的這個物種有沒有調(diào)節(jié)性的數(shù)據(jù)庫。