Slackbot
05/06/2026, 7:51 PMThomas Danhorn
05/06/2026, 8:47 PMext.when is deprecated, so I'm not sure about that. I also doubt that this will have the desired effect, because disabling one process would not magically produce files that are not normally published in a given workflow.
Sorry, I use sarek in specific ways and am not familiar with all the options, so I can't give any good advice on your situtation. I am pretty sure, though, the per-sample VCFs are always being produced (since they would be the input for any later joining process, unless you don't run the variant caller at all), but they may not be published with joint calling. So they might be recoverable from the work directory, but you would have to find them there.
Maybe @Maxime Garcia or @Rike Hanssen know of a way to do what you want. Either way, for testing it might be good to prepare some small input files (FASTQ, or even mapped BAMs to use with --step varinat_calling) that allow you to run through the pipeline quickly and see what gets produced. 🤞Assem Kadry Elsherif
05/07/2026, 1:40 PM--joint_germline=true gives per-sample gVCF + cohort joint VCF (no per-sample VCFs).
@Rike Hanssen, I tried your recipe withName:GATK4_GENOMICSDBIMPORT { ext.when = false } together with --joint_germline=true. In 3.8.1 the workflow aborts before MERGE_HAPLOTYPECALLER publishes:
Hjava.lang.NullPointerException: Cannot invoke method getName() on null object
at nextflow.extension.CollectFileOp.processItem(CollectFileOp.groovy:140)
at Script_57ee94b0d1ea8856$_runScript_closure1$_closure2$_closure3.doCall(Script_57ee94b0d1ea8856:16)
The 21 per-interval .g.vcf.gz files for the test sample DO exist in work/ — they just never get merged/published because the session aborts. HC declares an optional output (fileoutparam<2:1>) which is missing in this config, and a downstream collectFile { ... it.getName() ... } doesn't null-check it. Cascading ext.when = false to VCF_QC_BCFTOOLS_VCFTOOLS:.*, GATK4_GENOTYPEGVCFS, GATK4_VARIANTRECALIBRATOR, GATK4_APPLYVQSR, GATK4_VARIANTFILTRATION doesn't help — the NPE is in a workflow-level Channel operator, not a process, so ext.when can't gate it.
Two questions:
1. Is there a supported config to get per-sample gVCF + per-sample VCF both published in 3.8.1?
2. Is the`CollectFileOp`NPE a known bug?