SnpEff自建註釋庫及HGVS命名
最開始用SnpEff一直使用最近SnpEff提供的註釋庫,通過snpEff命令即可查詢所需要的資料庫名稱
java -jar snpEff.jar databases |less -S
而且SnpEff官網也說明只用其預設的提供的資料庫即可
SnpEff databases for the most popular genomes are already pre-built and available for you to download. So, chances are that you don’t need to build a database yourself (this will save you a LOT of work)
然後通過 download
命令下載其官網上的資料庫即可
java -jar snpEff.jar download -v GRCh38.86
但是最近發現如果我們在Call variant時使用的是Ensembl最新的資料庫,比如release-94版本;而我們下載的SnpEff資料庫只有release-86版本(GRCh38.86),那麼最終的突變註釋則還是基於86版本的資訊,最簡單的偏差的有:
- 定位到的基因ID不同(由於一些基因ID在最新的註釋版本中被移除或者新增了)
- 定位到的基因symbol發生變化(正常註釋版本更新導致的)
- 定位到的轉錄本ID不同,如果只是ID變了,對應序列不變的話還好,如果轉錄本序列也變了,從而會導致HGVS.c/HGVS.p也發生變化
- 另外還有些突變位點位於兩個基因之間,有時snpEff自建註釋庫和官網下載的註釋庫,對於這些位點到底屬於哪個基因的選擇會有點不同(我暫時也不知道是什麼原因)
- 其他影響暫時還沒發現
所以我覺得還是有必要將在call variant時選用的參考基因組版本與用SnpEff註釋時用的基因組版本保持一致
如何建立snpEFF註釋庫,官網上有個針對人物種的詳細例子,我以release-94版本的小鼠為例:
修改配置檔案 vim snpEff.config
,在最後一行後增加對應基因組資訊
# ENSEMBL release 94 Mus_musculus_94.genome : Mus_musculus_94
在snpEff目錄下的data資料夾內新建Mus_musculus_94目錄,用於放置snpEff庫檔案
mkdir Mus_musculus_94 && cd Mus_musculus_94
下載snpEff建庫所需檔案,並更改為固定檔名,檔案分別有:
-
參考基因組序列
wget ftp://ftp.ensembl.org/pub/release-94/fasta/mus_musculus/dna/Mus_musculus.GRCm38.dna.primary_assembly.fa.gz
-
參考註釋檔案GTF
wget ftp://ftp.ensembl.org/pub/release-94/gtf/mus_musculus/Mus_musculus.GRCm38.94.chr.gtf.gz
-
參考蛋白序列
wget ftp://ftp.ensembl.org/pub/release-94/fasta/mus_musculus/pep/Mus_musculus.GRCm38.pep.all.fa.gz
-
參考cds序列
wget ftp://ftp.ensembl.org/pub/release-94/fasta/mus_musculus/cds/Mus_musculus.GRCm38.cds.all.fa.gz
-
參考regulatory annotations
wget ftp://ftp.ensembl.org/pub/release-94/regulation/mus_musculus/mus_musculus.GRCm38.Regulatory_Build.regulatory_features.20180516.gff.gz
解壓縮後並更改名稱
gunzip ./* mv Mus_musculus.GRCm38.dna.primary_assembly.fa sequences.fa mv Mus_musculus.GRCm38.93.chr.gtf genes.gtf mv Mus_musculus.GRCm38.pep.all.fa protein.fa mv Mus_musculus.GRCm38.cds.all.fa cds.fa mv mus_musculus.GRCm38.Regulatory_Build.regulatory_features.20180516.gff regulation.gff
最後先切換到snpEff目錄下,然後用 snpEff.jar
build一下
java -jar snpEff.jar build -gtf22 -v Mus_musculus_94
但是如果按照上述步驟來的話,會發現在 build
過程中會出現一點錯誤,snpEff會check protein/cds id是否跟GTF註釋檔案保持一致,但是現在最新的Ensembl版本下載下來的protein/cds序列中的ID都帶有版本號,當在check protein id時會提示:
Protein check:Mus_musculus_94 OK: 0Not found: 65328
也就是說SnpEff會認為65328個蛋白ID都沒有匹配上,但是似乎這個不影響一般的常規VCF註釋(因為其突變位點對氨基酸的影響是基於cds序列來的)
如果為了讓protein序列的check能正常通過,其實只需要將protein序列中的ID後面的版本號去掉即可
HGVS(HumanGenome Variation Society)基因突變命名規則:
g:基因組參考序列;c:cDNA序列;p:蛋白參考序列;n:非編碼DNA參考序列;r:RNA參考序列;m:線粒體DNA參考序列
核苷酸水平:
- c.-352G>C:表示cDNA上發生替換(substitution),即序列中的中某一個鹼基被另外一個鹼基所替代,分為轉換(transition:嘌呤與嘌呤之間的替換,或者嘧啶與嘧啶之間的替換)和顛換(transversions:嘌呤與嘧啶之間的替換)
- c.-3534delT:表示缺失(deletion),即序列中一個或多個鹼基缺失,多個鹼基缺失:c.-352_-348delTACAG
- c.351dupT:表示重複(duplication),即序列中一個或多個鹼基拷貝插入下游序列,多鹼基發生重複:c.328_329dupAA
- c.3_4insC:表示插入(insertion),即序列中一個或多個鹼基發生插入,非上游序列拷貝
- NC_000022.10:g.193-199inv:表示倒置(Inversions),即序列發生與原始序列反向互補的替換
- NC_000022.10:g.42522624_42522669con42536337_42536382:表示轉換(conversion),即特殊型別的缺失-插入,其中替代原始序列的核苷酸序列是來自基因組的另外一個位點的序列
- c.142_144delinsTGG:表示缺失-插入(deletion-insertion),即序列原有的一個或多個核苷被新的一個或多個核苷取代,且不是替換(substitution)、倒置(inversion)和轉換(conversion)
- NC_000014.8:g.101179660TG[14]:表示重複序列(Repeat sequences),即序列出現了一個或多個核苷酸發生重複
- 對於cDNA一些內含子的位置,如:c.377+1014A>G,表示前面一個外顯子的位置是在377,然後下游1014位置的鹼基A替換成G
- 對於cDNA的5’UTR的位置,如:c.-9T>G,表示以第一個外顯子轉錄開始位置(1)上游第9個鹼基T替換成G
- 對於cDNA的3’UTR的位置,如:c.*9T>G,表示以最後一個外顯子轉錄結束位置的下游第9個鹼基T替換成G
蛋白水平(基本上與核苷酸水平類似):
- p.W123*:星號表示終止密碼子,也可以用Ter表示
- p.Ter806Argext*?:ext表示突變對起始和終止密碼子在N端或C端延伸的影響,這例子表示終止密碼子變成了Arg
- p.Met1?:表示翻譯起始密碼子缺失,還例如:p.Met1ValextMet-12表示DNA序列上c.1A>G的變異導致最終蛋白產物在N端延伸了12個氨基酸,Met變異為Val
- p.Val972fs:表示移碼突變,即972位Val是首個發生改變的氨基酸;如p.Arg97ProfsTer23,表示第97位的Arg是首個發生改變的氨基酸,且Arg變為Pro,同時發生移碼突變後,終止密碼的位置變為第23位
突變命名詳細說明可查閱: ofollow,noindex" target="_blank">Sequence Variant Nomenclature
參考資料:
本文出自於 http://www.bioinfo-scrounger.com 轉載請註明出處