Can you please clarify? You link to SNPeff webpage but no documentation. I am running into the same issue. Except I am using a genome described in snpEff database.
Hello,
I am trying to follow the example code at this site (http://snpeff.sourceforge.net/protocol.html) where snpEFF and GATK are linked together:
java -Xmx4g -jar snpEff.jar \ -v \ -o gatk \ GRCh37.71 \ protocols/ex1.vcf \ > protocols/ex1.eff.gatk.vcf
I have a data.vcf, data.fasta, data.fasta.fai, and data.gff3 file. I created a data.genome file by taking the first two columns of the data.fasta.fai file. The resulting data.genome file looks like:
scaffold_0 5745343
scaffold_1 4980556
scaffold_10 3237655
scaffold_100 1257028
scaffold_1000 96926
scaffold_1001 104432
scaffold_1002 91331
scaffold_1003 92118
scaffold_1004 88640
scaffold_1005 92758
So, I then tried to run the command on my files:
java -Xmx4g -jar snpEff.jar \ -v \ -o gatk \ data \ data.vcf \ > data.eff.gatk.vcf
But this led to an error: java.lang.RuntimeException: Property: '/data.genome' not found
My question is: Why can it not find the data.genome file? I checked my pathways. Is my data.genome file in the correct format? Additionally, I also read that I may need a code name for my data.genome file, but I cannot figure out how to do this?
1 answer
You don't have to create a .genome file like that. Read this section. You need to edit your config file.
I second this, I've gone through the documentation and cannot find anything on this.
I'm using a container which came with it's own config file and I was able to over-ride it in order to download with SnpEff like so:
rule snpeff_download:
output:
directory('resources/snpeff/WBcel235.86')
log:
'logs/snpeff/download/WBcel235.86.log'
params:
reference='WBcel235.86'
resources:
mem=1000,
time=30
container:
'docker://resolwebio/snpeff:2.0.0'
shell: """
java -jar /opt/snpeff/snpeff/snpEff.jar download {params.reference} -dataDir /scratch/moldach/COOVAR/resources/snpeff
"""
However, got this error from the following:
if (config['ANNOT_TOOL']=='snpeff'):
rule snpeff:
input:
calls=lambda wildcards: getVCFs(wildcards.sample),
ref = os.path.join(dirs_dict['REF_DIR'],config['REF_GENOME']),
db='resources/snpeff/WBcel235.86'
output:
calls=os.path.join(dirs_dict['ANNOT_DIR'],config['ANNOT_TOOL'],config['CALLING_TOOL'],config['ALIGN_TOOL'],config['SORT_TOOL'],config['MARKDUP_TOOL'],'{sample}.annotated.vcf'),
stats=os.path.join(dirs_dict['ANNOT_DIR'],config['ANNOT_TOOL'],config['CALLING_TOOL'],config['ALIGN_TOOL'],config['SORT_TOOL'],config['MARKDUP_TOOL'],'{sample}.html'),
csvstats=os.path.join(dirs_dict['ANNOT_DIR'],config['ANNOT_TOOL'],config['CALLING_TOOL'],config['ALIGN_TOOL'],config['SORT_TOOL'],config['MARKDUP_TOOL'],'{sample}.csv')
log:
os.path.join(dirs_dict['LOG_DIR'],config['ANNOT_TOOL'],config['CALLING_TOOL'],config['ALIGN_TOOL'],config['SORT_TOOL'],config['MARKDUP_TOOL'],'{sample}.log')
params:
sample='{sample}',
resources:
mem=3000,
time=60
container:
'docker://resolwebio/snpeff:2.0.0'
shell: """
java -Xmx4g -jar /opt/snpeff/snpeff/snpEff.jar -dataDir {input.db} {input.calls} > {output.calls}
"""
Log in to answer this question.
Hi,
If you are working from command line, try to use "/" instead of \