Skip to content

Refactor to adhere to language server #1912

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 46 additions & 47 deletions conf/modules/aligner.config
Original file line number Diff line number Diff line change
Expand Up @@ -15,61 +15,60 @@

process {

if (params.step == 'mapping') {
withName: 'BWAMEM1_MEM' {
ext.when = { params.aligner == 'bwa-mem' }
}
withName: "BWAMEM1_MEM" {
ext.when = { params.aligner == 'bwa-mem' }
}

withName: 'BWAMEM2_MEM' {
ext.when = { params.aligner == 'bwa-mem2' }
}
withName: 'BWAMEM2_MEM' {
ext.when = { params.aligner == 'bwa-mem2' }
}

withName: 'DRAGMAP_ALIGN' {
ext.args = { "--RGSM ${meta.patient}_${meta.sample} --RGID ${meta.read_group}" }
ext.when = { params.aligner == 'dragmap' }
}
withName: 'DRAGMAP_ALIGN' {
ext.args = { "--RGSM ${meta.patient}_${meta.sample} --RGID ${meta.read_group}" }
ext.when = { params.aligner == 'dragmap' }
}

withName: 'SENTIEON_BWAMEM' {
ext.prefix = { params.split_fastq > 1 ? "${meta.id}".concat('.').concat(reads.get(0).name.tokenize('.')[0]).concat('.bam') : "${meta.id}.sorted.bam" }
ext.when = { params.aligner == 'sentieon-bwamem' }
}
withName: 'SENTIEON_BWAMEM' {
ext.prefix = { params.split_fastq > 1 ? "${meta.id}".concat('.').concat(reads.get(0).name.tokenize('.')[0]).concat('.bam') : "${meta.id}.sorted.bam" }
ext.when = { params.aligner == 'sentieon-bwamem' }
}

withName: 'BWAMEM.*_MEM|DRAGMAP_ALIGN|SENTIEON_BWAMEM' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/preprocessing/" },
pattern: "*bam",
// Only save if save_output_as_bam AND
// (save_mapped OR no_markduplicates OR sentieon_dedup) AND
// only a single BAM file per sample
saveAs: {
if (params.save_output_as_bam &&
(
params.save_mapped ||
(params.skip_tools && params.skip_tools.split(',').contains('markduplicates')) &&
!(params.tools && params.tools.split(',').contains('sentieon_dedup'))
) && (meta.size * meta.num_lanes == 1)
) { "mapped/${meta.id}/${it}" }
else { null }
}
]
}
withName: 'BWAMEM.*_MEM|DRAGMAP_ALIGN|SENTIEON_BWAMEM' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/preprocessing/" },
pattern: "*bam",
// Only save if save_output_as_bam AND
// (save_mapped OR no_markduplicates OR sentieon_dedup) AND
// only a single BAM file per sample
saveAs: {
if (params.save_output_as_bam &&
(
params.save_mapped ||
(params.skip_tools && params.skip_tools.split(',').contains('markduplicates')) &&
!(params.tools && params.tools.split(',').contains('sentieon_dedup'))
) && (meta.size * meta.num_lanes == 1)
) { "mapped/${meta.id}/${it}" }
else { null }
}
]
}

withName: 'BWAMEM.*_MEM|DRAGMAP_ALIGN' {
ext.prefix = { params.split_fastq > 1 ? "${meta.id}".concat('.').concat(reads.get(0).name.tokenize('.')[0]) : "${meta.id}.sorted" }
// Markduplicates Spark NEEDS name-sorted reads or runtime goes through the roof
// However if it's skipped, reads need to be coordinate-sorted
// Only name sort if Spark for Markduplicates + duplicate marking is not skipped
// Currently SENTIEON_BWAMEM only supports coordinate sorting the reads.
ext.args2 = { params.use_gatk_spark && params.use_gatk_spark.contains('markduplicates') && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('markduplicates'))) ? '-n' : '' }
}
withName: 'BWAMEM.*_MEM|DRAGMAP_ALIGN' {
ext.prefix = { params.split_fastq > 1 ? "${meta.id}".concat('.').concat(reads.get(0).name.tokenize('.')[0]) : "${meta.id}.sorted" }
// Markduplicates Spark NEEDS name-sorted reads or runtime goes through the roof
// However if it's skipped, reads need to be coordinate-sorted
// Only name sort if Spark for Markduplicates + duplicate marking is not skipped
// Currently SENTIEON_BWAMEM only supports coordinate sorting the reads.
ext.args2 = { params.use_gatk_spark && params.use_gatk_spark.contains('markduplicates') && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('markduplicates'))) ? '-n' : '' }
}

withName: 'BWAMEM.*_MEM|SENTIEON_BWAMEM' {
// Using -B 3 for tumor samples
ext.args = { meta.status == 1 ? "-K 100000000 -Y -B 3 -R ${meta.read_group}" : "-K 100000000 -Y -R ${meta.read_group}" }
}
withName: 'BWAMEM.*_MEM|SENTIEON_BWAMEM' {
// Using -B 3 for tumor samples
ext.args = { meta.status == 1 ? "-K 100000000 -Y -B 3 -R ${meta.read_group}" : "-K 100000000 -Y -R ${meta.read_group}" }
}


withName: 'MERGE_BAM|INDEX_MERGE_BAM' {
publishDir = [
mode: params.publish_dir_mode,
Expand Down
151 changes: 70 additions & 81 deletions conf/modules/annotate.config
Original file line number Diff line number Diff line change
Expand Up @@ -16,102 +16,91 @@
process {

// SNPEFF
if (params.tools && (params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('merge'))) {
withName: 'SNPEFF_SNPEFF' {
ext.args = { '-nodownload -canon -v' }
ext.prefix = { vcf.baseName - '.vcf' + '_snpEff' }
publishDir = [
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/reports/snpeff/${meta.variantcaller}/${meta.id}/" },
pattern: "*{csv,html,genes.txt}",
saveAs: { params.tools.split(',').contains('snpeff') ? it : null }
]
withName: 'SNPEFF_SNPEFF' {
ext.args = { '-nodownload -canon -v' }
ext.prefix = { vcf.baseName - '.vcf' + '_snpEff' }
publishDir = [
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/reports/snpeff/${meta.variantcaller}/${meta.id}/" },
pattern: "*{csv,html,genes.txt}",
saveAs: { params.tools.split(',').contains('snpeff') ? it : null }
]
}
]
}


// VEP
if (params.tools && (params.tools.split(',').contains('vep') || params.tools.split(',').contains('merge'))) {
withName: 'ENSEMBLVEP_VEP' {
ext.args = { [
"--stats_file ${vcf.baseName - '.vcf' + '_VEP.ann'}.summary.html",
(params.vep_dbnsfp && params.dbnsfp && !params.dbnsfp_consequence) ? "--plugin dbNSFP,${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_dbnsfp && params.dbnsfp && params.dbnsfp_consequence) ? "--plugin dbNSFP,'consequence=${params.dbnsfp_consequence}',${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_loftee) ? "--plugin LoF,loftee_path:/usr/local/share/ensembl-vep-${params.vep_version}" : '',
(params.vep_spliceai && params.spliceai_snv && params.spliceai_indel) ? "--plugin SpliceAI,snv=${params.spliceai_snv.split("/")[-1]},indel=${params.spliceai_indel.split("/")[-1]}" : '',
(params.vep_spliceregion) ? '--plugin SpliceRegion' : '',
(params.vep_out_format) ? "--${params.vep_out_format}" : '--vcf',
(params.vep_custom_args) ?: ''
].join(' ').trim() }
// If just VEP: <vcf prefix>_VEP.ann.vcf
ext.prefix = { vcf.baseName - '.vcf' + '_VEP.ann' }
publishDir = [
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/reports/EnsemblVEP/${meta.variantcaller}/${meta.id}/" },
pattern: "*html"
],
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz}"
]
withName: 'ENSEMBLVEP_VEP' {
ext.args = { [
"--stats_file ${vcf.baseName - '.vcf' + '_VEP.ann'}.summary.html",
(params.vep_dbnsfp && params.dbnsfp && !params.dbnsfp_consequence) ? "--plugin dbNSFP,${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_dbnsfp && params.dbnsfp && params.dbnsfp_consequence) ? "--plugin dbNSFP,'consequence=${params.dbnsfp_consequence}',${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_loftee) ? "--plugin LoF,loftee_path:/usr/local/share/ensembl-vep-${params.vep_version}" : '',
(params.vep_spliceai && params.spliceai_snv && params.spliceai_indel) ? "--plugin SpliceAI,snv=${params.spliceai_snv.split("/")[-1]},indel=${params.spliceai_indel.split("/")[-1]}" : '',
(params.vep_spliceregion) ? '--plugin SpliceRegion' : '',
(params.vep_out_format) ? "--${params.vep_out_format}" : '--vcf',
(params.vep_custom_args) ?: ''
].join(' ').trim() }
// If just VEP: <vcf prefix>_VEP.ann.vcf
ext.prefix = { vcf.baseName - '.vcf' + '_VEP.ann' }
publishDir = [
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/reports/EnsemblVEP/${meta.variantcaller}/${meta.id}/" },
pattern: "*html"
],
[
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz}"
]
}
]
}

// BCFTOOLS ANNOTATE
if (params.tools && params.tools.split(',').contains('bcfann')) {
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_BCFTOOLS:BCFTOOLS_ANNOTATE' {
ext.args = { '--output-type z --write-index=tbi' }
ext.prefix = { input.baseName - '.vcf' + '_BCF.ann' }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz,gz.tbi}"
]
}
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_BCFTOOLS:BCFTOOLS_ANNOTATE' {
ext.args = { '--output-type z --write-index=tbi' }
ext.prefix = { input.baseName - '.vcf' + '_BCF.ann' }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz,gz.tbi}"
]
}

// SNPEFF THEN VEP
if (params.tools && params.tools.split(',').contains('merge')) {
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_MERGE:ENSEMBLVEP_VEP' {
ext.args = { [
"--stats_file ${vcf.baseName - '.ann.vcf' + '_VEP.ann'}.summary.html",
(params.vep_dbnsfp && params.dbnsfp && !params.dbnsfp_consequence) ? "--plugin dbNSFP,${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_dbnsfp && params.dbnsfp && params.dbnsfp_consequence) ? "--plugin dbNSFP,'consequence=${params.dbnsfp_consequence}',${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_loftee) ? "--plugin LoF,loftee_path:/usr/local/share/ensembl-vep-${params.vep_version}" : '',
(params.vep_spliceai && params.spliceai_snv && params.spliceai_indel) ? "--plugin SpliceAI,snv=${params.spliceai_snv.split("/")[-1]},indel=${params.spliceai_indel.split("/")[-1]}" : '',
(params.vep_spliceregion) ? '--plugin SpliceRegion' : '',
(params.vep_out_format) ? "--${params.vep_out_format}" : '--vcf',
(params.vep_custom_args) ?: ''
].join(' ').trim() }
// If merge: Output file will have format *_snpEff_VEP.ann.vcf, *_snpEff_VEP.ann.json or *_snpEff_VEP.ann.tab
ext.prefix = { vcf.baseName - '.ann.vcf' + '_VEP.ann' }
}
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_MERGE:ENSEMBLVEP_VEP' {
ext.args = { [
"--stats_file ${vcf.baseName - '.ann.vcf' + '_VEP.ann'}.summary.html",
(params.vep_dbnsfp && params.dbnsfp && !params.dbnsfp_consequence) ? "--plugin dbNSFP,${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_dbnsfp && params.dbnsfp && params.dbnsfp_consequence) ? "--plugin dbNSFP,'consequence=${params.dbnsfp_consequence}',${params.dbnsfp.split("/")[-1]},${params.dbnsfp_fields}" : '',
(params.vep_loftee) ? "--plugin LoF,loftee_path:/usr/local/share/ensembl-vep-${params.vep_version}" : '',
(params.vep_spliceai && params.spliceai_snv && params.spliceai_indel) ? "--plugin SpliceAI,snv=${params.spliceai_snv.split("/")[-1]},indel=${params.spliceai_indel.split("/")[-1]}" : '',
(params.vep_spliceregion) ? '--plugin SpliceRegion' : '',
(params.vep_out_format) ? "--${params.vep_out_format}" : '--vcf',
(params.vep_custom_args) ?: ''
].join(' ').trim() }
// If merge: Output file will have format *_snpEff_VEP.ann.vcf, *_snpEff_VEP.ann.json or *_snpEff_VEP.ann.tab
ext.prefix = { vcf.baseName - '.ann.vcf' + '_VEP.ann' }
}

// ALL ANNOTATION TOOLS
if (params.tools && (params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('vep') || params.tools.split(',').contains('merge') || params.tools.split(',').contains('bcfann'))) {
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:.*:(TABIX_BGZIPTABIX|TABIX_TABIX)' {
ext.prefix = { input.name - '.vcf' }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz.tbi}"
]
}
}

if (params.tools && (params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('merge'))) {
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_SNPEFF:TABIX_BGZIPTABIX' {
publishDir = [
withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:.*:(TABIX_BGZIPTABIX|TABIX_TABIX)' {
ext.prefix = { input.name - '.vcf' }
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz,gz.tbi}",
saveAs: { params.tools.split(',').contains('snpeff') ? it : null }
]
}
pattern: "*{gz.tbi}"
]
}

withName: 'NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_SNPEFF:TABIX_BGZIPTABIX' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" },
pattern: "*{gz,gz.tbi}",
saveAs: { params.tools.split(',').contains('snpeff') ? it : null }
]
}
}
20 changes: 9 additions & 11 deletions conf/modules/freebayes.config
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,14 @@ process {
}

// PAIR_VARIANT_CALLING
if (params.tools && params.tools.split(',').contains('freebayes')) {
withName: '.*:BAM_VARIANT_CALLING_SOMATIC_ALL:BAM_VARIANT_CALLING_FREEBAYES:FREEBAYES' {
ext.args = { "--pooled-continuous \
--pooled-discrete \
--genotype-qualities \
--report-genotype-likelihood-max \
--allele-balance-priors-off \
--min-alternate-fraction 0.03 \
--min-repeat-entropy 1 \
--min-alternate-count 2 " }
}
withName: '.*:BAM_VARIANT_CALLING_SOMATIC_ALL:BAM_VARIANT_CALLING_FREEBAYES:FREEBAYES' {
ext.args = { "--pooled-continuous \
--pooled-discrete \
--genotype-qualities \
--report-genotype-likelihood-max \
--allele-balance-priors-off \
--min-alternate-fraction 0.03 \
--min-repeat-entropy 1 \
--min-alternate-count 2 " }
}
}
18 changes: 8 additions & 10 deletions conf/modules/haplotypecaller.config
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,13 @@ process {
]
}

if (params.tools && params.tools.split(',').contains('haplotypecaller')) {
withName: 'NFCORE_SAREK:SAREK:BAM_VARIANT_CALLING_GERMLINE_ALL:BAM_VARIANT_CALLING_HAPLOTYPECALLER:BAM_MERGE_INDEX_SAMTOOLS:(MERGE_BAM|INDEX_MERGE_BAM)' {
ext.prefix = { "${meta.id}.realigned" }
publishDir = [
enabled: true,
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/haplotypecaller/${meta.id}/" },
pattern: "*{bam,bai}"
]
}
withName: 'NFCORE_SAREK:SAREK:BAM_VARIANT_CALLING_GERMLINE_ALL:BAM_VARIANT_CALLING_HAPLOTYPECALLER:BAM_MERGE_INDEX_SAMTOOLS:(MERGE_BAM|INDEX_MERGE_BAM)' {
ext.prefix = { "${meta.id}.realigned" }
publishDir = [
enabled: true,
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/haplotypecaller/${meta.id}/" },
pattern: "*{bam,bai}"
]
}
}
19 changes: 8 additions & 11 deletions conf/modules/indexcov.config
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,16 @@
// INDEXCOV

process {
if (params.tools && params.tools.split(',').contains('indexcov')) {

withName: 'SAMTOOLS_REINDEX_BAM' {
ext.args = { ' -F 3844 -q 30 ' } // high mapq , primary read paired properly mapped
}

withName: 'GOLEFT_INDEXCOV' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/indexcov/" }
]
withName: 'SAMTOOLS_REINDEX_BAM' {
ext.args = { ' -F 3844 -q 30 ' } // high mapq , primary read paired properly mapped
}

}
withName: 'GOLEFT_INDEXCOV' {
publishDir = [
mode: params.publish_dir_mode,
path: { "${params.outdir}/variant_calling/indexcov/" }
]

}

Expand Down
Loading