# Own variant calling nextflow pipeline - error with Variant Recalibrator. Argument resource is missing

**URL:** <https://community.seqera.io/t/own-variant-calling-nextflow-pipeline-error-with-variant-recalibrator-argument-resource-is-missing/1944>\
**Category:** Ask for help\
**Tags:** nextflow, nf-core\
**Created:** [March 11, 2025, 5:28pm UTC](https://community.seqera.io/t/own-variant-calling-nextflow-pipeline-error-with-variant-recalibrator-argument-resource-is-missing/1944 "2025-03-11T17:28:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Juls](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/juls/32/1643_2.png) [@Juls](https://community.seqera.io/u/Juls)\
**Post date:** [March 11, 2025, 5:28pm UTC](https://community.seqera.io/t/own-variant-calling-nextflow-pipeline-error-with-variant-recalibrator-argument-resource-is-missing/1944/1 "2025-03-11T17:28:19Z")

</div>

Thank you very much for the training materials. It helped a lot in creating my first nextflow pipeline. I built a pipeline for germline SNV variant calling for short read illumina. I run into problem with GATK Variant Recalibrator - error Argument resource is missing. Apparently, the resource files are in the Nextflow work directory. The input files for Variant recalibrator seem to be ok. If I run separately the GATk Variant Recalibrator command it works. Any ideas would be much appreciated. Thanks!

---

<div class="post-metadata">

**Author:** ![Juls](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/juls/32/1643_2.png) [@Juls](https://community.seqera.io/u/Juls)\
**Post date:** [March 11, 2025, 5:34pm UTC](https://community.seqera.io/t/own-variant-calling-nextflow-pipeline-error-with-variant-recalibrator-argument-resource-is-missing/1944/2 "2025-03-11T17:34:16Z")

</div>

script for main.nf

nextflow.enable.dsl=2

//Channel and parameters

//reads

params.r1 = ‘/home/juls/nextflow\_module/na12878\_r1.fq’

params.r2 = ‘/home/juls/nextflow\_module/na12878\_r2.fq’

//reference genome

params.reference = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta’

params.reference\_fai = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.fai’

params.reference\_dict = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.dict’

params.reference\_ann = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.ann’

params.reference\_bwt = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.bwt’

params.reference\_pac = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.pac’

params.reference\_amb = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.amb’

params.reference\_sa = ‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta.sa’

//outdir

params.outdir = ‘/home/juls/nextflow\_module/results’

//picard

params.picard = ‘/home/juls/picard/build/libs/picard.jar’

//intervals list

params.intervals = ‘/home/juls/nextflow\_test/intervals.list’

//resources for variant recalibrator

params.resources\_1000Gomni = ‘/home/juls/resources/1000G\_omni2.5.hg38.vcf.gz’

params.resources\_1000Gomni\_tbi = ‘/home/juls/resources/1000G\_omni2.5.hg38.vcf.gz.tbi’

params.resources\_1000Gphase = ‘/home/juls/resources/1000G\_phase1.snps.high\_confidence.hg38.vcf.gz’

params.resources\_1000Gphase\_tbi = ‘/home/juls/resources/1000G\_phase1.snps.high\_confidence.hg38.vcf.gz.tbi’

params.resources\_hapmap = ‘/home/juls/resources/hapmap\_3.3.hg38.vcf.gz’

params.resources\_hapmap\_tbi = ‘/home/juls/resources/hapmap\_3.3.hg38.vcf.gz.tbi’

params.resources\_dbsnp = ‘/home/juls/resources/Homo\_sapiens\_assembly38.dbsnp138.vcf.gz’

params.resources\_dbsnp\_tbi = ‘/home/juls/resources/Homo\_sapiens\_assembly38.dbsnp138.vcf.gz.tbi’

// Module INCLUDE statements

include { bwamem } from ‘./modules/bwamem.nf’

include { sortsam } from ‘./modules/SortSam\_picard.nf’

include { addReadGroups} from ‘./modules/AddOrReplaceReadGroups.nf’

include { markDuplicates } from ‘./modules/MarkDuplicates\_picard.nf’

include { buildBamIndex } from ‘./modules/BuildBamIndex.nf’

include { haplotypeCaller } from ‘./modules/HaplotypeCaller.nf’

include { indexgVCF } from ‘./modules/tabix.nf’

include { genomicsDBImport } from ‘./modules/genomicsDBImport.nf’

include { genotypeGVCFs } from ‘./modules/genotypeGVCFs.nf’

include { unzipVCF } from ‘./modules/unzipVCF.nf’

include { variantRecalibrator } from ‘./modules/VariantRecalibrator.nf’

workflow{

//Create input channels

reference\_channel = Channel.fromPath(‘/home/juls/reference/Homo\_sapiens.GRCh38.dna.primary\_assembly.fasta’)

ref\_tuple = Channel.value(tuple(params.reference, params.reference\_fai, params.reference\_dict, params.reference\_amb, params.reference\_ann, params.reference\_bwt, params.reference\_pac, params.reference\_sa))

r1\_ch = Channel.value(params.r1)

r2\_ch = Channel.value(params.r2)

hapmap\_tuple = Channel.value(tuple(params.resources\_hapmap, params.resources\_hapmap\_tbi))

omni\_tuple = Channel.value(tuple(params.resources\_1000Gomni, params.resources\_1000Gomni\_tbi))

phase\_tuple = Channel.value(tuple(params.resources\_1000Gphase, params.resources\_1000Gphase\_tbi))

dbsnp\_tuple = Channel.value(tuple(params.resources\_dbsnp, params.resources\_dbsnp\_tbi))

bwamem (ref\_tuple, r1\_ch, r2\_ch)

sortsam (bwamem.out)

addReadGroups (sortsam.out)

markDuplicates (addReadGroups.out)

buildBamIndex (markDuplicates.out)

haplotypeCaller (markDuplicates.out, buildBamIndex.out, ref\_tuple)

indexgVCF(haplotypeCaller.out)

genomicsDBImport (haplotypeCaller.out, indexgVCF.out, params.intervals)

genotypeGVCFs (ref\_tuple, genomicsDBImport.out)

unzipVCF (genotypeGVCFs.out)

variantRecalibrator (unzipVCF.out, ref\_tuple, hapmap\_tuple, omni\_tuple, phase\_tuple, dbsnp\_tuple)

}

---

<div class="post-metadata">

**Author:** ![Juls](https://dub1.discourse-cdn.com/flex013/user_avatar/community.seqera.io/juls/32/1643_2.png) [@Juls](https://community.seqera.io/u/Juls)\
**Post date:** [March 11, 2025, 5:35pm UTC](https://community.seqera.io/t/own-variant-calling-nextflow-pipeline-error-with-variant-recalibrator-argument-resource-is-missing/1944/3 "2025-03-11T17:35:03Z")

</div>

script for module VariantRecalibrator  
process variantRecalibrator{  
container “[community.wave.seqera.io/library/gatk4:4.6.1.0--e3124bcb2431f4a9](http://community.wave.seqera.io/library/gatk4:4.6.1.0--e3124bcb2431f4a9)”  
publishDir ‘results/vcf’, mode: ‘copy’

```
input:
path vcf
tuple path(reference), path(reference_fai), path(reference_dict), path(reference_amb), path(reference_ann), path(reference_bwt), path(reference_pac), path(reference_sa)
tuple path(resources_hapmap), path(resources_hapmap_tbi)
tuple path(resources_1000Gomni), path(resources_1000Gomni_tbi)
tuple path(resources_1000Gphase), path(resources_1000Gphase_tbi)
tuple path(resources_dbsnp), path(resources_dbsnp_tbi)

output:
path "var_recal.recal", emit:recal
path "var_recal.tranches'", emit:tranches

script:
"""
echo "Reference: $reference"
echo "VCF: $vcf"
echo "Hapmap: $resources_hapmap"
echo "Omni: $resources_1000Gomni"
echo "1000G: $resources_1000Gphase"
echo "dbSNP: $resources_dbsnp"

ls -lh 

gatk VariantRecalibrator 
    -R $reference \
    -V $vcf \
    --resource:hapmap,known=false,training=true,truth=true,prior=15.0 ${resources_hapmap}\
    --resource:omni,known=false,training=true,truth=false,prior=12.0 ${resources_1000Gomni}\
    --resource:1000G,known=false,training=true,truth=false,prior=10.0 ${resources_1000Gphase}\
    --resource:dbsnp,known=true,training=false,truth=false,prior=2.0 ${resources_dbsnp}\
    -an QD -an MQ -an MQRankSum -an ReadPosRankSum -an FS -an SOR \
    -mode SNP \
    -O var_recal.recal \
    --tranches-file var_recal.tranches
"""

```

}
