snpEff構(gòu)建物種數(shù)據(jù)庫及完成vcf變異文件注釋

1. 如果在沒有jdk12的conda下安裝snpeff,會(huì)報(bào)錯(cuò)

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/snpeff/SnpEff has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
 at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
 at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
 at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
 at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

解決方法(針對(duì)非root用戶)

conda create -n java12
conda activate java12
conda install -c r r-rjava
java -version
openjdk version "11.0.9.1-internal" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1-internal+0-adhoc..src)
OpenJDK 64-Bit Server VM (build 11.0.9.1-internal+0-adhoc..src, mixed mode)
##足夠能帶動(dòng)snpEff就行
conda install -y snpeff   ##下載后啟動(dòng)snpEff 

參考:http://www.itdecent.cn/p/3e3ebd397293
https://zhuanlan.zhihu.com/p/476561285

2.構(gòu)建自有物種數(shù)據(jù)庫

因?yàn)槲沂且獜念^構(gòu)建注釋基因集,所以它自帶的數(shù)據(jù)庫對(duì)我就沒有什么用
而第一步便是要找到snpEff.config這個(gè)文件進(jìn)行添加
這個(gè)文件在哪呢?
我的是在下面這個(gè)這個(gè)文件,如果你使用conda安裝的,基本就是在minicondas下面pkgs里面的snpeff開頭的文件夾里面,然后依次往下找就是了

cd /home/wangshuangyi/miniconda2/pkgs/snpeff-5.1-hdfd78af_2/share/snpeff-5.1-2
#該目錄下存在:
scripts  snpEff  snpEff.config  snpEff.jar

假設(shè)我要構(gòu)建的基因組叫Amur_ide

(1) 追加一行文件內(nèi)容到snpEff.config

 echo "Amur_ide.genome: Amur_ide" >> snpEff.config  

(2) 在含有snpEff.config那個(gè)地方,創(chuàng)建個(gè)文件夾data, 然后在data里面又創(chuàng)建兩個(gè)文件夾Amur_ide,genomes

    Amur_ide/   genomes/
 Amur_ide/中包括了genes.gff3   cds.fa protein.fa   ##無論原名是啥都改為這個(gè)
genomes/中包括了基因組文件 Amur_ide.fa ##無論原名是啥都改為這個(gè)。

(3) 在含有snpEff.config那個(gè)地方,執(zhí)行命令構(gòu)建數(shù)據(jù)庫

./snpEff build -gff3 -v Amur_ide
# -c , -config   : Specify config file
#  -v , -verbose : Verbose mode (詳細(xì)模式)

(4) 注釋

在注釋之前,檢查vcf變異文件,應(yīng)去除##注釋信息,開頭應(yīng)為:

#CHROM  POS     ID      REF     ALT     QUAL    FILTER  INFO    FORMAT
java -Xmx4g -jar ../snpEff.jar ann Amur_ide  -o vcf -v ./alk_fw_pass_merged_filter.vcf -csvStats 1.csv -stats 1.html > selected.ann.vcf

##-Xmx:堆內(nèi)存的最?值,默認(rèn)值是物理內(nèi)存的1/4(且?于1G),如默認(rèn)情況下當(dāng)堆中可?內(nèi)存?于70%時(shí),堆內(nèi)存會(huì)開始減少,?直減?到-Xms的??
# -csvStats <file> : Create CSV summary file.
#-s , -stats, -htmlStats: Create HTML summary file.  Default is 'snpEff_summary.html'
#-o <format> : Ouput format [ vcf, gatk, bed, bedAnn ]. Default: VCF.
#-formatEff: Use 'EFF' field compatible with older versions (instead of 'ANN'). (使用與舊版本兼容的'EFF'字段(而不是'ANN')。)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容