process VEP { tag "$vcf.simpleName" publishDir params.outdir, mode: 'copy' input: path vcf path cache // staged as an input so it is visible inside the container path plugin_data // assets/NO_FILE when plugins are not configured output: path "${vcf.simpleName}.vep.tsv", emit: tsv path "${vcf.simpleName}.vep_summary.html" script: // Plugins run only when --vep_plugin_data names a directory holding the plugin modules // (INSTALL.pl -a p -g CADD,AlphaMissense -r ) and the data files named in params. def plugins = plugin_data.name == 'NO_FILE' ? '' : [ "--dir_plugins ${plugin_data}", "--plugin CADD,snv=${plugin_data}/${params.cadd_snv},indels=${plugin_data}/${params.cadd_indels}", "--plugin AlphaMissense,file=${plugin_data}/${params.alphamissense}", ].join(' ') """ vep -i $vcf -o ${vcf.simpleName}.vep.tsv --tab \\ --assembly ${params.assembly} --cache --offline --dir_cache ${cache} \\ --everything --pick ${plugins} \\ --stats_file ${vcf.simpleName}.vep_summary.html --fork ${task.cpus} """ stub: """ touch ${vcf.simpleName}.vep.tsv ${vcf.simpleName}.vep_summary.html """ }