0.關(guān)于snpEff,建議大家去官網(wǎng)看一下作者。逝者已去,深切緬懷。同時(shí)看下官方文檔
官方文檔有幾處語(yǔ)言或者程序命令錯(cuò)誤
-
教程地址
下載snpEff地址
解壓unzip snpEff_latest_core.zip
我的路徑是/home/chaim/bsa/snpEff/ - 配置玉米zm437版本的數(shù)據(jù)庫(kù)
在路徑/home/chaim/bsa/snpEff/snpEff/目錄下創(chuàng)建文件夾data,
cd /home/chaim/bsa/snpEff/snpEff/
mkdir data
cd data
mkdir genomes
mkdir zm437
#在zm437目錄存放基因組注釋文件genes.gff, 蛋白庫(kù),protein.fa
#在genomes目錄放置基因組參考序列 zm437.fa
注意上述的基因組注釋文件是gff3格式。
修改snpEff.config的參數(shù)
添加如下內(nèi)容
#maize genome,version zm437
zm437.genome:maize
回到snpEFF目錄,運(yùn)行命令
java -jar snpEff.jar build -gff3 -v zm437
- 對(duì)vcf格式文件進(jìn)行注釋:
bwa目錄存放著GATK4處理之后的文件common_filtration.vcf
在/home/chaim/bsa/bwa目錄執(zhí)行下面命令
java -Xmx8g -jar /home/chaim/bsa/snpEff/
snpEff/snpEff.jar zm437 common_filtration.vcf > common.eff
會(huì)輸出三個(gè)文件,
snpEff_genes.txt
snpEff_summary.html
common.eff.vcf
如果不是在安裝目錄運(yùn)行snpEff,需要加上-c參數(shù)。
參數(shù)說(shuō)明:
-c 安裝snpEff的目錄config文件的位置
-verbose 詳細(xì)模式,方便查看出錯(cuò)信息
zm442 我自己生成的基因組注釋信息
命令如下:
java -Xmx8g -jar /public/home/soft/snpEff/snpEff/snpEff.jar -c /public/home/soft/snpEff/snpEff/snpEff.config zm442 F8.Filter.vcf -verbose -stats F8.summary.html -csvStats F8.csv >F8.ann.vcf
- 如果想更改使用其他注釋文件,
刪除/home/chaim/bsa/snpEff/snpEff//data/zm437/snpEffectPredictor.bin該文件刪除即可。
重新從步驟1開(kāi)始即可。
5.產(chǎn)出結(jié)果分析
#默認(rèn)是ann
java -Xmx8g -jar /home/chaim/bsa/snpEff/
snpEff/snpEff.jar ann zm442 common_filtration.vcf > common.eff
*.ann.vcf 是一個(gè)注釋結(jié)果文件,其就在vcf的info信息新添加了anno一列信息,其具體每個(gè)值含義如下:
Allele
突變之后的堿基,第一個(gè)突變位點(diǎn)由T堿基突變成了C堿基,對(duì)應(yīng)Allel的值為C
Annotation
由sequence ontology定義的突變類(lèi)型
Annotation_Impact
對(duì)變異位點(diǎn)有害程度的簡(jiǎn)單評(píng)估,取值有HIGH, MODERATE, LOW, MODIFIER 4種,含義如下
| Impact | Meaning | Example |
|---|---|---|
| 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. | stop_gained, frameshift_variant |
| MODERATE | A non-disruptive variant that might change protein effectiveness. | missense_variant, inframe_deletion |
| LOW | Assumed to be mostly harmless or unlikely to change protein behavior. | synonymous_variant |
| MODIFIER | Usually non-coding variants or variants affecting non-coding genes, where predictions are difficult or there is no evidence of impact. | exon_variant, downstream_gene_variant |
Snp下游的分析
可以使用snpEff注釋的vcf進(jìn)行4DTv位點(diǎn)分析,然后用其構(gòu)建進(jìn)化樹(shù)。
或者是直接使用vcf構(gòu)建進(jìn)化樹(shù)。
兩種方法構(gòu)建進(jìn)化樹(shù)均已經(jīng)實(shí)現(xiàn)流程自動(dòng)化。Vcf2Tree github
注釋之后,可以計(jì)算位點(diǎn)的Ka,Ks值
根據(jù)https://www.biostars.org/p/304091/的方法,提取snpeff輸出的結(jié)果,從中獲取Ka,Ks
sample="樣本名稱"
grep '^#\|missense_variant\|synonymous_variant' ${sample}.ann.vcf >${sample}.mis_syn.txt
python3 KaKs.py ${sample}.mis_syn.txt >${sample}.KaKs.txt
kaks.py從https://github.com/MerrimanLab/selectionTools/blob/master/extrascripts/kaks.py下載,我把它修改為支持python3的模式存放在https://github.com/chaimol/bio_code/blob/master/pipline/Vcf2Tree/KaKs.py下載。
關(guān)于KaKs的值,建議是過(guò)濾掉>3的Ks的值。
更多的關(guān)于過(guò)濾Ks和Ka/Ks的標(biāo)準(zhǔn)的討論,參考文獻(xiàn)https://onlinelibrary.wiley.com/doi/full/10.1111/mec.15275