From 72bb50b69627d3e600653f9f3dd2911dcc7afb83 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 28 Aug 2023 10:43:18 +0000 Subject: [PATCH 001/240] WIP: Implementing Dnascope module and subworkflow in Sarek. --- conf/modules/prepare_genome.config | 6 +- conf/modules/sentieon_dnascope.config | 63 +++++++ modules.json | 5 + modules/nf-core/sentieon/dnascope/main.nf | 100 +++++++++++ modules/nf-core/sentieon/dnascope/meta.yml | 103 ++++++++++++ nextflow.config | 6 +- nextflow_schema.json | 23 ++- .../bam_variant_calling_germline_all/main.nf | 33 ++++ .../main.nf | 157 ++++++++++++++++++ workflows/sarek.nf | 5 +- 10 files changed, 495 insertions(+), 6 deletions(-) create mode 100644 conf/modules/sentieon_dnascope.config create mode 100644 modules/nf-core/sentieon/dnascope/main.nf create mode 100644 modules/nf-core/sentieon/dnascope/meta.yml create mode 100644 subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf diff --git a/conf/modules/prepare_genome.config b/conf/modules/prepare_genome.config index 66eb2041d2..8b1f45c4fb 100644 --- a/conf/modules/prepare_genome.config +++ b/conf/modules/prepare_genome.config @@ -76,7 +76,7 @@ process { } withName: 'TABIX_DBSNP' { - ext.when = { !params.dbsnp_tbi && params.dbsnp && ((params.step == "mapping" || params.step == "markduplicates" || params.step == "prepare_recalibration") || params.tools && (params.tools.split(',').contains('controlfreec') || params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('mutect2'))) } + ext.when = { !params.dbsnp_tbi && params.dbsnp && ((params.step == "mapping" || params.step == "markduplicates" || params.step == "prepare_recalibration") || params.tools && (params.tools.split(',').contains('controlfreec') || params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope') || params.tools.split(',').contains('mutect2'))) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, @@ -96,7 +96,7 @@ process { } withName: 'TABIX_KNOWN_INDELS' { - ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper'))) ) } + ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, @@ -106,7 +106,7 @@ process { } withName: 'TABIX_KNOWN_SNPS' { - ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper'))) ) } + ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, diff --git a/conf/modules/sentieon_dnascope.config b/conf/modules/sentieon_dnascope.config new file mode 100644 index 0000000000..4378a35f5a --- /dev/null +++ b/conf/modules/sentieon_dnascope.config @@ -0,0 +1,63 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Config file for defining DSL2 per module options and publishing paths +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Available keys to override module options: + ext.args = Additional arguments appended to command in module. + ext.args2 = Second set of arguments appended to command in module (multi-tool modules). + ext.args3 = Third set of arguments appended to command in module (multi-tool modules). + ext.prefix = File name prefix for output files. + ext.when = When to run the module. +---------------------------------------------------------------------------------------- +*/ + +// SENTIEON DNASCOPE + +process { + + withName: 'SENTIEON_DNASCOPE' { + ext.prefix = { meta.num_intervals <= 1 ? "${meta.id}.dnascope" : "${meta.id}.dnascope.${intervals.simpleName}" } + ext.when = { params.tools && params.tools.split(',').contains('sentieon_dnascope') } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/"}, + pattern: "*{vcf.gz,vcf.gz.tbi}", + saveAs: { meta.num_intervals > 1 ? null : "sentieon_dnascope/${meta.id}/${it}" } + ] + } + + // TO-DO: Clean up all this stuff below concerning SENTIEON_HAPLOTYPER. + // It is just copied from sentieon_haplotyper.config, but some of it + // may also be needed for Dnascope. + + withName: 'MERGE_SENTIEON_HAPLOTYPER_VCFS' { + ext.prefix = { params.joint_germline ? "${meta.id}.haplotyper.g" : "${meta.id}.haplotyper.unfiltered" } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'MERGE_SENTIEON_HAPLOTYPER_GVCFS' { + ext.prefix = { "${meta.id}.haplotyper.g" } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + if (params.tools && params.tools.contains('sentieon_haplotyper')) { + withName: '.*FILTERVARIANTTRANCHES' { + ext.prefix = {"${meta.id}.haplotyper"} + ext.args = { "--info-key CNN_1D" } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/"}, + pattern: "*{vcf.gz,vcf.gz.tbi}" + ] + } + } + +} diff --git a/modules.json b/modules.json index 6f13ad15dd..7b2142663a 100644 --- a/modules.json +++ b/modules.json @@ -386,6 +386,11 @@ "git_sha": "915a0b16ba3e40ef59e7b44843b3118e17a9c906", "installed_by": ["modules"] }, + "sentieon/dnascope": { + "branch": "master", + "git_sha": "127edadc279e19da093fdd513926c6cdee82c306", + "installed_by": ["modules"] + }, "sentieon/gvcftyper": { "branch": "master", "git_sha": "6c9c11ee96796e53a01b4719286acce6af14bc3a", diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf new file mode 100644 index 0000000000..f94654e034 --- /dev/null +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -0,0 +1,100 @@ +process SENTIEON_DNASCOPE { + tag "$meta.id" + label 'process_high' + label 'sentieon' + + secret 'SENTIEON_LICENSE_BASE64' + + container 'nf-core/sentieon:202112.06' + + input: + tuple val(meta), path(bam), path(bai), path(intervals) + path(fasta) + path(fai) + path(dbsnp) + path(dbsnp_tbi) + path(ml_model) + val(emit_vcf) + val(emit_gvcf) + val(sentieon_dnascope_pcr_based) + + output: + tuple val(meta), path("*.unfiltered.vcf.gz") , optional:true, emit: vcf // added the substring ".unfiltered" in the filename of the vcf-files since without that the g.vcf.gz-files were ending up in the vcf-channel + tuple val(meta), path("*.unfiltered.vcf.gz.tbi"), optional:true, emit: vcf_tbi + tuple val(meta), path("*.g.vcf.gz") , optional:true, emit: gvcf // these output-files have to have the extension ".vcf.gz", otherwise the subsequent GATK-MergeVCFs will fail. + tuple val(meta), path("*.g.vcf.gz.tbi") , optional:true, emit: gvcf_tbi + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "Sentieon modules do not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' // options for the driver + def args2 = task.ext.args2 ?: '' // options for the vcf generation + def args3 = task.ext.args3 ?: '' // options for the gvcf generation + def interval = intervals ? "--interval ${intervals}" : '' + def dbsnp_str = dbsnp ? "-d ${dbsnp}" : '' + def model = ml_model ? " --model ${ml_model}" : '' + def pcr_indel_model = sentieon_dnascope_pcr_based ? '' : " --pcr_indel_model NONE" + def prefix = task.ext.prefix ?: "${meta.id}" + def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' + def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + def vcf_cmd = "" + def gvcf_cmd = "" + def base_cmd = '--algo DNAscope ' + dbsnp_str + + if (emit_vcf) { // emit_vcf can be the empty string, 'variant', 'confident' or 'all' but NOT 'gvcf' + vcf_cmd = base_cmd + args2 + model + pcr_indel_model + ' --emit_mode ' + emit_vcf + ' ' + prefix + '.unfiltered.vcf.gz' + } + + if (emit_gvcf) { // emit_gvcf can be either true or false + gvcf_cmd = base_cmd + args3 + model + pcr_indel_model_str + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' + } + + """ + if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. + export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) + else # Localhost license file + # The license file is stored as a nextflow variable like, for instance, this: + # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) + export SENTIEON_LICENSE=\$(mktemp) + echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE + fi + + if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then + # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. + export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) + export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) + echo "Decoded and exported Sentieon test-license system environment variables" + fi + + sentieon driver $args -r $fasta -t $task.cpus -i $bam $interval $vcf_cmd $gvcf_cmd + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "Sentieon modules do not support Conda. Please use Docker / Singularity / Podman instead." + } + """ + touch ${prefix}.unfiltered.vcf.gz + touch ${prefix}.unfiltered.vcf.gz.tbi + touch ${prefix}.g.vcf.gz + touch ${prefix}.g.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/sentieon/dnascope/meta.yml b/modules/nf-core/sentieon/dnascope/meta.yml new file mode 100644 index 0000000000..3e1abf1a1f --- /dev/null +++ b/modules/nf-core/sentieon/dnascope/meta.yml @@ -0,0 +1,103 @@ +name: sentieon_dnascope +description: TO-DO UPDATE THIS FILE!!! DNAscope algorithm performs an improved version of Haplotype variant calling. +keywords: + - dnascope + - sentieon + - variant_calling +tools: + - sentieon: + description: | + Sentieon® provides complete solutions for secondary DNA/RNA analysis for a variety of sequencing platforms, including short and long reads. + Our software improves upon BWA, STAR, Minimap2, GATK, HaplotypeCaller, Mutect, and Mutect2 based pipelines and is deployable on any generic-CPU-based computing system. + homepage: https://www.sentieon.com/ + documentation: https://www.sentieon.com/ +input: + - meta: + type: map + description: | + Groovy Map containing sample information. + e.g. [ id:'test', single_end:false ] + - meta2: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - meta3: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - meta4: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - meta5: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - meta6: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - meta7: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test' ] + - bam: + type: file + description: BAM file. + pattern: "*.bam" + - bai: + type: file + description: BAI file + pattern: "*.bai" + - fasta: + type: file + description: Genome fasta file + pattern: "*.{fa,fasta}" + - fai: + type: file + description: Index of the genome fasta file + pattern: "*.fai" + - dbsnp: + type: file + description: Single Nucleotide Polymorphism database (dbSNP) file + pattern: "*.vcf.gz" + - dbsnp_tbi: + type: file + description: Index of the Single Nucleotide Polymorphism database (dbSNP) file + pattern: "*.vcf.gz.tbi" + - call_interval: + type: file + description: bed or interval_list file containing interval in the reference that will be used in the analysis + pattern: "*.{bed,interval_list}" + - ml_model: + type: file + description: machine learning model file + pattern: "*.model" + +output: + - meta: + type: map + description: | + Groovy Map containing reference information. + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF file + pattern: "*.{vcf.gz}" + - index: + type: file + description: Index of the VCF file + pattern: "*.vcf.gz.tbi" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@ramprasadn" diff --git a/nextflow.config b/nextflow.config index 1351f768f9..d91d72d34e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -69,8 +69,11 @@ params { ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected - joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling + joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper + sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope + sentieon_dnascope_pcr_based = true + sentieon_dnascope_model = "https://s3.amazonaws.com/sentieon-release/other/SentieonDNAscopeModel1.1.model" // Annotation dbnsfp = null // No dbnsfp processed file @@ -379,6 +382,7 @@ includeConfig 'conf/modules/manta.config' includeConfig 'conf/modules/mpileup.config' includeConfig 'conf/modules/msisensorpro.config' includeConfig 'conf/modules/mutect2.config' +includeConfig 'conf/modules/sentieon_dnascope.config' includeConfig 'conf/modules/sentieon_haplotyper.config' includeConfig 'conf/modules/sentieon_joint_germline.config' includeConfig 'conf/modules/strelka.config' diff --git a/nextflow_schema.json b/nextflow_schema.json index 4db215cae8..12d9c98180 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -107,7 +107,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", - "pattern": "^((ascat|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? [ + meta + [ + num_intervals:num_intervals, + intervals_name:intervals.simpleName, + variantcaller:'SENTIEON_DNASCOPE'], + cram, + crai, + intervals + ] + } + + emit_mode_items = sentieon_dnascope_emit_mode.split(',').each{ it -> it.toLowerCase().trim() } + lst = emit_mode_items - 'gvcf' + emit_vcf = lst.size() > 0 ? lst[0] : '' + + SENTIEON_DNASCOPE( + cram_intervals_for_sentieon, + fasta, + fasta_fai, + dbsnp, + dbsnp_tbi, + sentieon_dnascope_model, + emit_vcf, + emit_mode_items.any{ it.equals('gvcf') }, + sentieon_dnascope_pcr_based) + + if (joint_germline) { + genotype_intervals = SENTIEON_DNASCOPE.out.gvcf + .join(SENTIEON_DNASCOPE.out.gvcf_tbi, failOnMismatch: true) + .join(cram_intervals_for_sentieon, failOnMismatch: true) + .map{ meta, gvcf, tbi, cram, crai, intervals -> [ meta, gvcf, tbi, intervals ] } + } + + // Figure out if using intervals or no_intervals + haplotyper_vcf_branch = SENTIEON_DNASCOPE.out.vcf.map{ + meta, vcf -> [ meta - meta.subMap('interval_name'), vcf] + } + .branch{ + intervals: it[0].num_intervals > 1 + no_intervals: it[0].num_intervals <= 1 + } + + haplotyper_vcf_tbi_branch = SENTIEON_DNASCOPE.out.vcf_tbi.map{ + meta, vcf_tbi -> [ meta - meta.subMap('interval_name'), vcf_tbi] + } + .branch{ + intervals: it[0].num_intervals > 1 + no_intervals: it[0].num_intervals <= 1 + } + + haplotyper_gvcf_branch = SENTIEON_DNASCOPE.out.gvcf.map{ + meta, gvcf -> [ meta - meta.subMap('interval_name'), gvcf] + } + .branch{ + intervals: it[0].num_intervals > 1 + no_intervals: it[0].num_intervals <= 1 + } + + haplotyper_gvcf_tbi_branch = SENTIEON_DNASCOPE.out.gvcf_tbi.map{ + meta, gvcf_tbi -> [ meta - meta.subMap('interval_name'), gvcf_tbi] + } + .branch{ + intervals: it[0].num_intervals > 1 + no_intervals: it[0].num_intervals <= 1 + } + + vcfs_for_merging = haplotyper_vcf_branch.intervals.map{ + meta, vcf -> [ groupKey(meta, meta.num_intervals), vcf ]} + + vcfs_for_merging = vcfs_for_merging.map{ + meta, vcf -> [ + meta - meta.subMap('intervals_name'), + vcf]}.groupTuple() + + // VCFs + // Only when using intervals + MERGE_SENTIEON_DNASCOPE_VCFS(vcfs_for_merging, dict) + + haplotyper_vcf = Channel.empty().mix( + MERGE_SENTIEON_DNASCOPE_VCFS.out.vcf, + haplotyper_vcf_branch.no_intervals) + + haplotyper_tbi = Channel.empty().mix( + MERGE_SENTIEON_DNASCOPE_VCFS.out.tbi, + haplotyper_vcf_tbi_branch.no_intervals) + + // Remove no longer necessary field: num_intervals + vcf = haplotyper_vcf.map{ meta, vcf -> [ meta - meta.subMap('num_intervals'), vcf ] } + vcf_tbi = haplotyper_tbi.map{ meta, tbi -> [ meta - meta.subMap('num_intervals'), tbi ] } + + // GVFs + // Only when using intervals + gvcfs_for_merging = haplotyper_gvcf_branch.intervals.map{ + meta, vcf -> [groupKey(meta, meta.num_intervals), vcf]} + + gvcfs_for_merging = gvcfs_for_merging.map{ + meta, vcf -> [ meta - meta.subMap('intervals_name'), vcf ] + }.groupTuple() + + MERGE_SENTIEON_DNASCOPE_GVCFS(gvcfs_for_merging, dict) + + gvcf = Channel.empty().mix( + MERGE_SENTIEON_DNASCOPE_GVCFS.out.vcf, + haplotyper_gvcf_branch.no_intervals) + + gvcf_tbi = Channel.empty().mix( + MERGE_SENTIEON_DNASCOPE_GVCFS.out.tbi, + haplotyper_gvcf_tbi_branch.no_intervals) + + versions = versions.mix(SENTIEON_DNASCOPE.out.versions) + versions = versions.mix(MERGE_SENTIEON_DNASCOPE_VCFS.out.versions) + versions = versions.mix(MERGE_SENTIEON_DNASCOPE_GVCFS.out.versions) + + emit: + versions + vcf + vcf_tbi + gvcf + gvcf_tbi + genotype_intervals // For joint genotyping + +} diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 8bb11326b3..03386a3b2b 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -1122,7 +1122,10 @@ workflow SAREK { known_snps_vqsr, params.joint_germline, params.skip_tools && params.skip_tools.split(',').contains('haplotypecaller_filter'), // true if filtering should be skipped - params.sentieon_haplotyper_emit_mode) + params.sentieon_haplotyper_emit_mode, + params.sentieon_dnascope_emit_mode, + params.sentieon_dnascope_pcr_based, + params.sentieon_dnascope_model) // TUMOR ONLY VARIANT CALLING BAM_VARIANT_CALLING_TUMOR_ONLY_ALL( From c81aeb55a1e7fc4a6b722d4f94c933268196a7fd Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 28 Aug 2023 12:29:50 +0000 Subject: [PATCH 002/240] WIP: Changing sentieon_dnascope_model from string to file-channel --- modules/nf-core/sentieon/dnascope/main.nf | 10 +++--- .../main.nf | 10 +++--- .../main.nf | 4 +-- workflows/sarek.nf | 32 ++++++++++--------- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index f94654e034..c1aba83d1b 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -14,9 +14,9 @@ process SENTIEON_DNASCOPE { path(dbsnp) path(dbsnp_tbi) path(ml_model) + val(pcr_based) val(emit_vcf) val(emit_gvcf) - val(sentieon_dnascope_pcr_based) output: tuple val(meta), path("*.unfiltered.vcf.gz") , optional:true, emit: vcf // added the substring ".unfiltered" in the filename of the vcf-files since without that the g.vcf.gz-files were ending up in the vcf-channel @@ -38,8 +38,8 @@ process SENTIEON_DNASCOPE { def args3 = task.ext.args3 ?: '' // options for the gvcf generation def interval = intervals ? "--interval ${intervals}" : '' def dbsnp_str = dbsnp ? "-d ${dbsnp}" : '' - def model = ml_model ? " --model ${ml_model}" : '' - def pcr_indel_model = sentieon_dnascope_pcr_based ? '' : " --pcr_indel_model NONE" + def model_cmd = ml_model ? " --model ${ml_model}" : '' + def pcr_indel_model_cmd = pcr_based ? '' : " --pcr_indel_model NONE" def prefix = task.ext.prefix ?: "${meta.id}" def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' @@ -48,11 +48,11 @@ process SENTIEON_DNASCOPE { def base_cmd = '--algo DNAscope ' + dbsnp_str if (emit_vcf) { // emit_vcf can be the empty string, 'variant', 'confident' or 'all' but NOT 'gvcf' - vcf_cmd = base_cmd + args2 + model + pcr_indel_model + ' --emit_mode ' + emit_vcf + ' ' + prefix + '.unfiltered.vcf.gz' + vcf_cmd = base_cmd + args2 + model_cmd + pcr_indel_model_cmd + ' --emit_mode ' + emit_vcf + ' ' + prefix + '.unfiltered.vcf.gz' } if (emit_gvcf) { // emit_gvcf can be either true or false - gvcf_cmd = base_cmd + args3 + model + pcr_indel_model_str + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' + gvcf_cmd = base_cmd + args3 + model_cmd + pcr_indel_model_cmd + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' } """ diff --git a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf index 2eaa41ccac..cef683519c 100644 --- a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf +++ b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf @@ -19,9 +19,9 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { dbsnp_vqsr // channel: [optional] intervals // channel: [mandatory] [ intervals, num_intervals ] or [ [], 0 ] if no intervals joint_germline // boolean: [mandatory] [default: false] joint calling of germline variants - sentieon_dnascope_emit_mode - sentieon_dnascope_pcr_based - sentieon_dnascope_model + sentieon_dnascope_emit_mode // string + sentieon_dnascope_pcr_based // boolean + sentieon_dnascope_model // channel main: versions = Channel.empty() @@ -55,9 +55,9 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { dbsnp, dbsnp_tbi, sentieon_dnascope_model, + sentieon_dnascope_pcr_based, emit_vcf, - emit_mode_items.any{ it.equals('gvcf') }, - sentieon_dnascope_pcr_based) + emit_mode_items.any{ it.equals('gvcf') }) if (joint_germline) { genotype_intervals = SENTIEON_DNASCOPE.out.gvcf diff --git a/subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf b/subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf index 370fc9963a..4b280d271c 100644 --- a/subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf +++ b/subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf @@ -43,7 +43,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_HAPLOTYPER { } - emit_mode_items = sentieon_haplotyper_emit_mode.split(',') + emit_mode_items = sentieon_haplotyper_emit_mode.split(',').each{ it -> it.toLowerCase().trim() } lst = emit_mode_items - 'gvcf' emit_vcf = lst.size() > 0 ? lst[0] : '' @@ -54,7 +54,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_HAPLOTYPER { dbsnp, dbsnp_tbi, emit_vcf, - emit_mode_items.contains('gvcf')) + emit_mode_items.any{ it.equals('gvcf') }) if (joint_germline) { genotype_intervals = SENTIEON_HAPLOTYPER.out.gvcf diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 03386a3b2b..6a3f10c6ea 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -50,6 +50,7 @@ def checkPathParamList = [ params.multiqc_config, params.pon, params.pon_tbi, + params.sentieon_dnascope_model, params.snpeff_cache, params.spliceai_indel, params.spliceai_indel_tbi, @@ -295,20 +296,21 @@ if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { */ // Initialize file channels based on params, defined in the params.genomes[params.genome] scope -ascat_alleles = params.ascat_alleles ? Channel.fromPath(params.ascat_alleles).collect() : Channel.empty() -ascat_loci = params.ascat_loci ? Channel.fromPath(params.ascat_loci).collect() : Channel.empty() -ascat_loci_gc = params.ascat_loci_gc ? Channel.fromPath(params.ascat_loci_gc).collect() : Channel.value([]) -ascat_loci_rt = params.ascat_loci_rt ? Channel.fromPath(params.ascat_loci_rt).collect() : Channel.value([]) -cf_chrom_len = params.cf_chrom_len ? Channel.fromPath(params.cf_chrom_len).collect() : [] -chr_dir = params.chr_dir ? Channel.fromPath(params.chr_dir).collect() : Channel.value([]) -dbsnp = params.dbsnp ? Channel.fromPath(params.dbsnp).collect() : Channel.value([]) -fasta = params.fasta ? Channel.fromPath(params.fasta).first() : Channel.empty() -fasta_fai = params.fasta_fai ? Channel.fromPath(params.fasta_fai).collect() : Channel.empty() -germline_resource = params.germline_resource ? Channel.fromPath(params.germline_resource).collect() : Channel.value([]) // Mutect2 does not require a germline resource, so set to optional input -known_indels = params.known_indels ? Channel.fromPath(params.known_indels).collect() : Channel.value([]) -known_snps = params.known_snps ? Channel.fromPath(params.known_snps).collect() : Channel.value([]) -mappability = params.mappability ? Channel.fromPath(params.mappability).collect() : Channel.value([]) -pon = params.pon ? Channel.fromPath(params.pon).collect() : Channel.value([]) // PON is optional for Mutect2 (but highly recommended) +ascat_alleles = params.ascat_alleles ? Channel.fromPath(params.ascat_alleles).collect() : Channel.empty() +ascat_loci = params.ascat_loci ? Channel.fromPath(params.ascat_loci).collect() : Channel.empty() +ascat_loci_gc = params.ascat_loci_gc ? Channel.fromPath(params.ascat_loci_gc).collect() : Channel.value([]) +ascat_loci_rt = params.ascat_loci_rt ? Channel.fromPath(params.ascat_loci_rt).collect() : Channel.value([]) +cf_chrom_len = params.cf_chrom_len ? Channel.fromPath(params.cf_chrom_len).collect() : [] +chr_dir = params.chr_dir ? Channel.fromPath(params.chr_dir).collect() : Channel.value([]) +dbsnp = params.dbsnp ? Channel.fromPath(params.dbsnp).collect() : Channel.value([]) +fasta = params.fasta ? Channel.fromPath(params.fasta).first() : Channel.empty() +fasta_fai = params.fasta_fai ? Channel.fromPath(params.fasta_fai).collect() : Channel.empty() +germline_resource = params.germline_resource ? Channel.fromPath(params.germline_resource).collect() : Channel.value([]) // Mutect2 does not require a germline resource, so set to optional input +known_indels = params.known_indels ? Channel.fromPath(params.known_indels).collect() : Channel.value([]) +known_snps = params.known_snps ? Channel.fromPath(params.known_snps).collect() : Channel.value([]) +mappability = params.mappability ? Channel.fromPath(params.mappability).collect() : Channel.value([]) +pon = params.pon ? Channel.fromPath(params.pon).collect() : Channel.value([]) // PON is optional for Mutect2 (but highly recommended) +sentieon_dnascope_model = params.sentieon_dnascope_model ? Channel.fromPath(params.sentieon_dnascope_model).collect() : Channel.value([]) // Initialize value channels based on params, defined in the params.genomes[params.genome] scope ascat_genome = params.ascat_genome ?: Channel.empty() @@ -1125,7 +1127,7 @@ workflow SAREK { params.sentieon_haplotyper_emit_mode, params.sentieon_dnascope_emit_mode, params.sentieon_dnascope_pcr_based, - params.sentieon_dnascope_model) + sentieon_dnascope_model) // TUMOR ONLY VARIANT CALLING BAM_VARIANT_CALLING_TUMOR_ONLY_ALL( From 4dcdc9c3c7230632e7628a987c616700c21fff36 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 28 Aug 2023 12:33:01 +0000 Subject: [PATCH 003/240] align --- modules/nf-core/sentieon/dnascope/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index c1aba83d1b..1b830a34a8 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -23,7 +23,7 @@ process SENTIEON_DNASCOPE { tuple val(meta), path("*.unfiltered.vcf.gz.tbi"), optional:true, emit: vcf_tbi tuple val(meta), path("*.g.vcf.gz") , optional:true, emit: gvcf // these output-files have to have the extension ".vcf.gz", otherwise the subsequent GATK-MergeVCFs will fail. tuple val(meta), path("*.g.vcf.gz.tbi") , optional:true, emit: gvcf_tbi - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when From cec591b7b1fadcf8ab5d0c37e946990e75870d70 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 30 Aug 2023 08:38:10 +0000 Subject: [PATCH 004/240] Changing Sarek-option sentieon_dnascope_pcr_based to sentieon_dnascope_pcr_indel_model --- modules/nf-core/sentieon/dnascope/main.nf | 4 +- nextflow.config | 46 +++++++++---------- nextflow_schema.json | 11 +++-- .../bam_variant_calling_germline_all/main.nf | 4 +- .../main.nf | 26 +++++------ workflows/sarek.nf | 2 +- 6 files changed, 47 insertions(+), 46 deletions(-) diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index 1b830a34a8..f7e3a66af4 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -14,7 +14,7 @@ process SENTIEON_DNASCOPE { path(dbsnp) path(dbsnp_tbi) path(ml_model) - val(pcr_based) + val(pcr_indel_model) val(emit_vcf) val(emit_gvcf) @@ -39,7 +39,7 @@ process SENTIEON_DNASCOPE { def interval = intervals ? "--interval ${intervals}" : '' def dbsnp_str = dbsnp ? "-d ${dbsnp}" : '' def model_cmd = ml_model ? " --model ${ml_model}" : '' - def pcr_indel_model_cmd = pcr_based ? '' : " --pcr_indel_model NONE" + def pcr_indel_model_cmd = pcr_indel_model ? " --pcr_indel_model ${pcr_indel_model}" : '' def prefix = task.ext.prefix ?: "${meta.id}" def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' diff --git a/nextflow.config b/nextflow.config index d91d72d34e..34076be9b8 100644 --- a/nextflow.config +++ b/nextflow.config @@ -51,29 +51,29 @@ params { seq_platform = 'ILLUMINA' // Default platform written in read group PL field by aligner // Variant Calling - only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired samples - ascat_ploidy = null // default value for ASCAT - ascat_min_base_qual = 20 // default value for ASCAT - ascat_min_counts = 10 // default value for ASCAT - ascat_min_map_qual = 35 // default value for ASCAT - ascat_purity = null // default value for ASCAT - cf_ploidy = "2" // default value for Control-FREEC - cf_coeff = 0.05 // default value for Control-FREEC - cf_contamination = 0 // default value for Control-FREEC - cf_contamination_adjustment = false // by default we are not using this in Control-FREEC - cf_mincov = 0 // ControlFreec default values - cf_minqual = 0 // ControlFreec default values - cf_window = null // by default we are not using this in Control-FREEC - cnvkit_reference = null // by default the reference is build from the fasta file - concatenate_vcfs = false // by default we don't concatenate the germline-vcf-files - ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 - wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers - joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected - joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling - sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper - sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope - sentieon_dnascope_pcr_based = true - sentieon_dnascope_model = "https://s3.amazonaws.com/sentieon-release/other/SentieonDNAscopeModel1.1.model" + only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired samples + ascat_ploidy = null // default value for ASCAT + ascat_min_base_qual = 20 // default value for ASCAT + ascat_min_counts = 10 // default value for ASCAT + ascat_min_map_qual = 35 // default value for ASCAT + ascat_purity = null // default value for ASCAT + cf_ploidy = "2" // default value for Control-FREEC + cf_coeff = 0.05 // default value for Control-FREEC + cf_contamination = 0 // default value for Control-FREEC + cf_contamination_adjustment = false // by default we are not using this in Control-FREEC + cf_mincov = 0 // ControlFreec default values + cf_minqual = 0 // ControlFreec default values + cf_window = null // by default we are not using this in Control-FREEC + cnvkit_reference = null // by default the reference is build from the fasta file + concatenate_vcfs = false // by default we don't concatenate the germline-vcf-files + ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 + wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers + joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected + joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling + sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper + sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope + sentieon_dnascope_pcr_indel_model = 'CONSERVATIVE' + sentieon_dnascope_model = "https://s3.amazonaws.com/sentieon-release/other/SentieonDNAscopeModel1.1.model" // Annotation dbnsfp = null // No dbnsfp processed file diff --git a/nextflow_schema.json b/nextflow_schema.json index 12d9c98180..0b1a8f50a0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -407,12 +407,13 @@ "help_text": "The option `--sentieon_dnascope_emit_mode` can be set to the same string values as the Dnascope's `--emit_mode`. To output both a vcf and a gvcf, specify both a vcf-option (currently, `all`, `confident` and `variant`) and `gvcf`. For example, to obtain a vcf and gvcf one could set `--sentieon_dnascope_emit_mode` to `variant, gvcf`.", "pattern": "^(all|confident|gvcf|variant|gvcf,all|gvcf,confident|gvcf,variant|all,gvcf|confident,gvcf|variant,gvcf)(? Date: Wed, 30 Aug 2023 14:44:48 +0000 Subject: [PATCH 005/240] Adding meta to some input-channels for Dnascope module --- modules/nf-core/sentieon/dnascope/main.nf | 10 +++++----- .../bam_variant_calling_sentieon_dnascope/main.nf | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index f7e3a66af4..fec38b47b5 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -9,11 +9,11 @@ process SENTIEON_DNASCOPE { input: tuple val(meta), path(bam), path(bai), path(intervals) - path(fasta) - path(fai) - path(dbsnp) - path(dbsnp_tbi) - path(ml_model) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(dbsnp) + tuple val(meta5), path(dbsnp_tbi) + tuple val(meta6), path(ml_model) val(pcr_indel_model) val(emit_vcf) val(emit_gvcf) diff --git a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf index 8eb931a2da..6a395af18f 100644 --- a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf +++ b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf @@ -50,11 +50,11 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { SENTIEON_DNASCOPE( cram_intervals_for_sentieon, - fasta, - fasta_fai, - dbsnp, - dbsnp_tbi, - sentieon_dnascope_model, + fasta.map{it -> [[:], it]}, + fasta_fai.map{it -> [[:], it]}, + dbsnp.map{it -> [[:], it]}, + dbsnp_tbi.map{it -> [[:], it]}, + sentieon_dnascope_model.map{it -> [[:], it]}, sentieon_dnascope_pcr_indel_model, emit_vcf, emit_mode_items.any{ it.equals('gvcf') }) From c12ce59390106e18d8b545d18aac81bfd0eec4d3 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 6 Sep 2023 13:34:11 +0000 Subject: [PATCH 006/240] Updated dnascope --- modules.json | 2 +- modules/nf-core/sentieon/dnascope/main.nf | 8 +- modules/nf-core/sentieon/dnascope/meta.yml | 96 +++++++++++++--------- 3 files changed, 61 insertions(+), 45 deletions(-) diff --git a/modules.json b/modules.json index 7b2142663a..45457529ee 100644 --- a/modules.json +++ b/modules.json @@ -388,7 +388,7 @@ }, "sentieon/dnascope": { "branch": "master", - "git_sha": "127edadc279e19da093fdd513926c6cdee82c306", + "git_sha": "4fb6fdc8046ec09cd30f92a2a252e9a0ba4a6309", "installed_by": ["modules"] }, "sentieon/gvcftyper": { diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index fec38b47b5..6be42a1728 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -37,7 +37,7 @@ process SENTIEON_DNASCOPE { def args2 = task.ext.args2 ?: '' // options for the vcf generation def args3 = task.ext.args3 ?: '' // options for the gvcf generation def interval = intervals ? "--interval ${intervals}" : '' - def dbsnp_str = dbsnp ? "-d ${dbsnp}" : '' + def dbsnp_cmd = dbsnp ? "-d ${dbsnp}" : '' def model_cmd = ml_model ? " --model ${ml_model}" : '' def pcr_indel_model_cmd = pcr_indel_model ? " --pcr_indel_model ${pcr_indel_model}" : '' def prefix = task.ext.prefix ?: "${meta.id}" @@ -45,14 +45,14 @@ process SENTIEON_DNASCOPE { def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' def vcf_cmd = "" def gvcf_cmd = "" - def base_cmd = '--algo DNAscope ' + dbsnp_str + def base_cmd = '--algo DNAscope ' + dbsnp_cmd + ' ' if (emit_vcf) { // emit_vcf can be the empty string, 'variant', 'confident' or 'all' but NOT 'gvcf' - vcf_cmd = base_cmd + args2 + model_cmd + pcr_indel_model_cmd + ' --emit_mode ' + emit_vcf + ' ' + prefix + '.unfiltered.vcf.gz' + vcf_cmd = base_cmd + args2 + ' ' + model_cmd + pcr_indel_model_cmd + ' --emit_mode ' + emit_vcf + ' ' + prefix + '.unfiltered.vcf.gz' } if (emit_gvcf) { // emit_gvcf can be either true or false - gvcf_cmd = base_cmd + args3 + model_cmd + pcr_indel_model_cmd + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' + gvcf_cmd = base_cmd + args3 + ' ' + model_cmd + pcr_indel_model_cmd + ' --emit_mode gvcf ' + prefix + '.g.vcf.gz' } """ diff --git a/modules/nf-core/sentieon/dnascope/meta.yml b/modules/nf-core/sentieon/dnascope/meta.yml index 3e1abf1a1f..34e0b97b4c 100644 --- a/modules/nf-core/sentieon/dnascope/meta.yml +++ b/modules/nf-core/sentieon/dnascope/meta.yml @@ -1,5 +1,5 @@ name: sentieon_dnascope -description: TO-DO UPDATE THIS FILE!!! DNAscope algorithm performs an improved version of Haplotype variant calling. +description: DNAscope algorithm performs an improved version of Haplotype variant calling. keywords: - dnascope - sentieon @@ -17,36 +17,6 @@ input: description: | Groovy Map containing sample information. e.g. [ id:'test', single_end:false ] - - meta2: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - - meta3: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - - meta4: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - - meta5: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - - meta6: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - - meta7: - type: map - description: | - Groovy Map containing reference information. - e.g. [ id:'test' ] - bam: type: file description: BAM file. @@ -55,31 +25,69 @@ input: type: file description: BAI file pattern: "*.bai" + - intervals: + type: file + description: bed or interval_list file containing interval in the reference that will be used in the analysis + pattern: "*.{bed,interval_list}" + - meta2: + type: map + description: | + Groovy Map containing meta information for fasta. - fasta: type: file description: Genome fasta file pattern: "*.{fa,fasta}" + - meta3: + type: map + description: | + Groovy Map containing meta information for fasta index. - fai: type: file description: Index of the genome fasta file pattern: "*.fai" + - meta4: + type: map + description: | + Groovy Map containing meta information for dbsnp. - dbsnp: type: file description: Single Nucleotide Polymorphism database (dbSNP) file pattern: "*.vcf.gz" + - meta5: + type: map + description: | + Groovy Map containing meta information for dbsnp_tbi. - dbsnp_tbi: type: file description: Index of the Single Nucleotide Polymorphism database (dbSNP) file pattern: "*.vcf.gz.tbi" - - call_interval: + - meta6: + type: map + description: | + Groovy Map containing meta information for machine learning model for Dnascope. + - ml_model: type: file - description: bed or interval_list file containing interval in the reference that will be used in the analysis - pattern: "*.{bed,interval_list}" + description: machine learning model file + pattern: "*.model" - ml_model: type: file description: machine learning model file pattern: "*.model" - + - pcr_indel_model: + type: string + description: | + Controls the option pcr_indel_model for Dnascope. + The possible options are "NONE" (used for PCR free samples), and "HOSTILE", "AGGRESSIVE" and "CONSERVATIVE". + See Sentieons documentation for further explanation. + - emit_vcf: + type: string + description: | + Controls the vcf output from Dnascope. + Possible options are "all", "confident" and "variant". + See Sentieons documentation for further explanation. + - emit_gvcf: + type: boolean + description: If true, the haplotyper will output a gvcf output: - meta: type: map @@ -88,12 +96,20 @@ output: e.g. [ id:'test', single_end:false ] - vcf: type: file - description: VCF file - pattern: "*.{vcf.gz}" - - index: + description: Compressed VCF file + pattern: "*.unfiltered.vcf.gz" + - vcf_tbi: type: file - description: Index of the VCF file - pattern: "*.vcf.gz.tbi" + description: Index of VCF file + pattern: "*.unfiltered.vcf.gz.tbi" + - gvcf: + type: file + description: Compressed GVCF file + pattern: "*.g.vcf.gz" + - gvcf_tbi: + type: file + description: Index of GVCF file + pattern: "*.g.vcf.gz.tbi" - versions: type: file description: File containing software versions From 47ec9132ea8b4964d98a3c5ac586f2b21929f37f Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 6 Sep 2023 14:51:57 +0000 Subject: [PATCH 007/240] Adding option dnascope_filter for skip_tools. Will be removed later #1210 --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 0b1a8f50a0..c702afd956 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -114,7 +114,7 @@ "fa_icon": "fas fa-forward", "description": "Disable specified tools.", "help_text": "Multiple tools can be specified, separated by commas.\n\n> **NB** `--skip_tools baserecalibrator_report` is actually just not saving the reports.\n> **NB** `--skip_tools markduplicates_report` does not skip `MarkDuplicates` but prevent the collection of duplicate metrics that slows down performance.", - "pattern": "^((baserecalibrator|baserecalibrator_report|bcftools|documentation|fastqc|haplotypecaller_filter|haplotyper_filter|markduplicates|markduplicates_report|mosdepth|multiqc|samtools|vcftools|versions)?,?)*(? Date: Wed, 6 Sep 2023 14:52:36 +0000 Subject: [PATCH 008/240] Add variant-filter for DNASCOPE --- .../bam_variant_calling_germline_all/main.nf | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index fc18f55b1a..cb22566ff5 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -208,7 +208,29 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { gvcf_sentieon_dnascope = BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.gvcf gvcf_tbi_sentieon_dnascope = BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.gvcf_tbi - // TO-DO: Implement joint_germline and VCF_VARIANT_FILTERING_GATK like, for instance, in the sentieon-haplotyper call below. + if (joint_germline) { + // TO-DO: Implement this like below for sentieon-haplotyper + error("Joint-germline with Sentieon-DNASCOPE has not yet been implemented.") + } else { + + // If single sample track, check if filtering should be done + if (!(skip_tools && skip_tools.split(',').contains('dnascope_filter'))) { + + VCF_VARIANT_FILTERING_GATK( + vcf_sentieon_dnascope.join(vcf_tbi_sentieon_dnascope, failOnDuplicate: true, failOnMismatch: true), + fasta, + fasta_fai, + dict.map{ meta, dict -> [ dict ] }, + intervals_bed_combined_haplotypec, + known_sites_indels.concat(known_sites_snps).flatten().unique().collect(), + known_sites_indels_tbi.concat(known_sites_snps_tbi).flatten().unique().collect()) + + vcf_sentieon_dnascope = VCF_VARIANT_FILTERING_GATK.out.filtered_vcf + + versions = versions.mix(VCF_VARIANT_FILTERING_GATK.out.versions) + } + + } } // SENTIEON HAPLOTYPER From 5aa33fb34288fcbb9e2e9ec78e191e9a819131a9 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 6 Sep 2023 14:59:25 +0000 Subject: [PATCH 009/240] Trying to order stuff alphabetically --- nextflow.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nextflow.config b/nextflow.config index 34076be9b8..849509ea02 100644 --- a/nextflow.config +++ b/nextflow.config @@ -51,7 +51,6 @@ params { seq_platform = 'ILLUMINA' // Default platform written in read group PL field by aligner // Variant Calling - only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired samples ascat_ploidy = null // default value for ASCAT ascat_min_base_qual = 20 // default value for ASCAT ascat_min_counts = 10 // default value for ASCAT @@ -67,13 +66,14 @@ params { cnvkit_reference = null // by default the reference is build from the fasta file concatenate_vcfs = false // by default we don't concatenate the germline-vcf-files ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 - wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling - sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper + only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired samples + wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope - sentieon_dnascope_pcr_indel_model = 'CONSERVATIVE' sentieon_dnascope_model = "https://s3.amazonaws.com/sentieon-release/other/SentieonDNAscopeModel1.1.model" + sentieon_dnascope_pcr_indel_model = "CONSERVATIVE" + sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper // Annotation dbnsfp = null // No dbnsfp processed file From d8a06bd2a0c0a4a8aa3467500c304146760c37e0 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 6 Sep 2023 15:45:37 +0000 Subject: [PATCH 010/240] calling BAM_JOINT_CALLING_GERMLINE_SENTIEON for joint-germline variant-valling with Dnascope --- .../bam_variant_calling_germline_all/main.nf | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index cb22566ff5..8af871c013 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -209,8 +209,23 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { gvcf_tbi_sentieon_dnascope = BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.gvcf_tbi if (joint_germline) { - // TO-DO: Implement this like below for sentieon-haplotyper - error("Joint-germline with Sentieon-DNASCOPE has not yet been implemented.") + BAM_JOINT_CALLING_GERMLINE_SENTIEON( // TO-DO: Check that subworkflow is okay for Dnascope as well. Email sent to Don. + BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.genotype_intervals, + fasta, + fasta_fai, + dict, + dbsnp, + dbsnp_tbi, + dbsnp_vqsr, + known_sites_indels, + known_sites_indels_tbi, + known_indels_vqsr, + known_sites_snps, + known_sites_snps_tbi, + known_snps_vqsr) + + vcf_sentieon_dnascope = BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.genotype_vcf + versions = versions.mix(BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.versions) } else { // If single sample track, check if filtering should be done From 56f65d6151e1174db6022b174feb8bcad13ed5c4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 7 Sep 2023 07:38:26 +0000 Subject: [PATCH 011/240] Skipping Sentieon VarCal and ApplyVarCal for joint-germline variant-calling with Sentieon Dnascope --- .../main.nf | 171 +++++++++--------- .../bam_variant_calling_germline_all/main.nf | 6 +- 2 files changed, 93 insertions(+), 84 deletions(-) diff --git a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf index da8b0e60be..ad22a44ba7 100644 --- a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf +++ b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf @@ -27,6 +27,7 @@ workflow BAM_JOINT_CALLING_GERMLINE_SENTIEON { resource_snps_vcf resource_snps_tbi known_snps_vqsr + variant_caller main: versions = Channel.empty() @@ -39,96 +40,102 @@ workflow BAM_JOINT_CALLING_GERMLINE_SENTIEON { BCFTOOLS_SORT(SENTIEON_GVCFTYPER.out.vcf_gz) - gvcf_to_merge = BCFTOOLS_SORT.out.vcf.map{ meta, vcf -> [ meta.subMap('num_intervals') + [ id:'joint_variant_calling', patient:'all_samples', variantcaller:'sentieon_haplotyper' ], vcf ]}.groupTuple() + gvcf_to_merge = BCFTOOLS_SORT.out.vcf.map{ meta, vcf -> [ meta.subMap('num_intervals') + [ id:'joint_variant_calling', patient:'all_samples', variantcaller:variant_caller ], vcf ]}.groupTuple() // Merge scatter/gather vcfs & index // Rework meta for variantscalled.csv and annotation tools MERGE_GENOTYPEGVCFS(gvcf_to_merge, dict) - vqsr_input = MERGE_GENOTYPEGVCFS.out.vcf.join(MERGE_GENOTYPEGVCFS.out.tbi, failOnDuplicate: true) - indels_resource_label = known_indels_vqsr.mix(dbsnp_vqsr).collect() - snps_resource_label = known_snps_vqsr.mix(dbsnp_vqsr).collect() - - // Recalibrate INDELs and SNPs separately - SENTIEON_VARCAL_INDEL( - vqsr_input, - resource_indels_vcf, - resource_indels_tbi, - indels_resource_label, - fasta, - fai) - - SENTIEON_VARCAL_SNP( - vqsr_input, - resource_snps_vcf, - resource_snps_tbi, - snps_resource_label, - fasta, - fai) - - //Prepare SNPs and INDELs for Sentieon's applyvarcal - // Step 1. : applyvarcal to SNPs - // Step 2. : Use SENTIEON_APPLYVARCAL_SNP output and run ApplyVQSR_INDEL. This avoids duplicate entries in the vcf as described here: https://hpc.nih.gov/training/gatk_tutorial/vqsr.html - - // Join results of variant recalibration into a single channel tuple - // Rework meta for variantscalled.csv and annotation tools - vqsr_input_snp = vqsr_input.join(SENTIEON_VARCAL_SNP.out.recal, failOnDuplicate: true) - .join(SENTIEON_VARCAL_SNP.out.idx, failOnDuplicate: true) - .join(SENTIEON_VARCAL_SNP.out.tranches, failOnDuplicate: true) - .map{ meta, vcf, tbi, recal, index, tranche -> [ meta + [ id:'recalibrated_joint_variant_calling' ], vcf, tbi, recal, index, tranche ] } - - SENTIEON_APPLYVARCAL_SNP( - vqsr_input_snp, - fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, - fai.map{ fai -> [ [ id:fai.baseName ], fai ] }) - - // Join results of SENTIEON_APPLYVARCAL_SNP and use as input for SENTIEON_APPLYVARCAL_INDEL to avoid duplicate entries in the result - // Rework meta for variantscalled.csv and annotation tools - vqsr_input_indel = SENTIEON_APPLYVARCAL_SNP.out.vcf.join(SENTIEON_APPLYVARCAL_SNP.out.tbi).map{ meta, vcf, tbi -> [ meta + [ id:'joint_variant_calling' ], vcf, tbi ]} - .join(SENTIEON_VARCAL_INDEL.out.recal, failOnDuplicate: true) - .join(SENTIEON_VARCAL_INDEL.out.idx, failOnDuplicate: true) - .join(SENTIEON_VARCAL_INDEL.out.tranches, failOnDuplicate: true) - .map{ meta, vcf, tbi, recal, index, tranche -> [ meta + [ id:'recalibrated_joint_variant_calling' ], vcf, tbi, recal, index, tranche ] } - - SENTIEON_APPLYVARCAL_INDEL( - vqsr_input_indel, - fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, - fai.map{ fai -> [ [ id:fai.baseName ], fai ] }) - - // The following is an ugly monster to achieve the following: - // When MERGE_GENOTYPEGVCFS and SENTIEON_APPLYVARCAL are run, then use output from SENTIEON_APPLYVARCAL - // When MERGE_GENOTYPEGVCFS and NOT SENTIEON_APPLYVARCAL, then use the output from MERGE_GENOTYPEGVCFS - - merge_vcf_for_join = MERGE_GENOTYPEGVCFS.out.vcf.map{meta, vcf -> [[id: 'joint_variant_calling'] , vcf]} - merge_tbi_for_join = MERGE_GENOTYPEGVCFS.out.tbi.map{meta, tbi -> [[id: 'joint_variant_calling'] , tbi]} - - // Remap for both to have the same key, if ApplyBQSR is not run, the channel is empty --> populate with empty elements - vqsr_vcf_for_join = SENTIEON_APPLYVARCAL_INDEL.out.vcf.ifEmpty([[:], []]).map{meta, vcf -> [[id: 'joint_variant_calling'] , vcf]} - vqsr_tbi_for_join = SENTIEON_APPLYVARCAL_INDEL.out.tbi.ifEmpty([[:], []]).map{meta, tbi -> [[id: 'joint_variant_calling'] , tbi]} - - // Join on metamap - // If both --> meta, vcf_merged, vcf_bqsr - // If not VQSR --> meta, vcf_merged, [] - // if the second is empty, use the first - genotype_vcf = merge_vcf_for_join.join(vqsr_vcf_for_join, remainder: true).map{ - meta, joint_vcf, recal_vcf -> - - vcf_out = recal_vcf ?: joint_vcf - - [[id:"joint_variant_calling", patient:"all_samples", variantcaller:"sentieon_haplotyper"], vcf_out] - } - - genotype_index = merge_tbi_for_join.join(vqsr_tbi_for_join, remainder: true).map{ - meta, joint_tbi, recal_tbi -> - - tbi_out = recal_tbi ?: joint_tbi - [[id:"joint_variant_calling", patient:"all_samples", variantcaller:"sentieon_haplotyper"], tbi_out] + merged_vcf = MERGE_GENOTYPEGVCFS.out.vcf.map{meta, vcf -> [[id: 'joint_variant_calling'] , vcf]} + merged_tbi = MERGE_GENOTYPEGVCFS.out.tbi.map{meta, tbi -> [[id: 'joint_variant_calling'] , tbi]} + + if (variant_caller == 'sentieon_dnascope') { + genotype_index = merged_vcf + genotype_vcf = merged_tbi + } else { + vqsr_input = MERGE_GENOTYPEGVCFS.out.vcf.join(MERGE_GENOTYPEGVCFS.out.tbi, failOnDuplicate: true) + indels_resource_label = known_indels_vqsr.mix(dbsnp_vqsr).collect() + snps_resource_label = known_snps_vqsr.mix(dbsnp_vqsr).collect() + + // Recalibrate INDELs and SNPs separately + SENTIEON_VARCAL_INDEL( + vqsr_input, + resource_indels_vcf, + resource_indels_tbi, + indels_resource_label, + fasta, + fai) + + SENTIEON_VARCAL_SNP( + vqsr_input, + resource_snps_vcf, + resource_snps_tbi, + snps_resource_label, + fasta, + fai) + + //Prepare SNPs and INDELs for Sentieon's applyvarcal + // Step 1. : applyvarcal to SNPs + // Step 2. : Use SENTIEON_APPLYVARCAL_SNP output and run ApplyVQSR_INDEL. This avoids duplicate entries in the vcf as described here: https://hpc.nih.gov/training/gatk_tutorial/vqsr.html + + // Join results of variant recalibration into a single channel tuple + // Rework meta for variantscalled.csv and annotation tools + vqsr_input_snp = vqsr_input.join(SENTIEON_VARCAL_SNP.out.recal, failOnDuplicate: true) + .join(SENTIEON_VARCAL_SNP.out.idx, failOnDuplicate: true) + .join(SENTIEON_VARCAL_SNP.out.tranches, failOnDuplicate: true) + .map{ meta, vcf, tbi, recal, index, tranche -> [ meta + [ id:'recalibrated_joint_variant_calling' ], vcf, tbi, recal, index, tranche ] } + + SENTIEON_APPLYVARCAL_SNP( + vqsr_input_snp, + fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, + fai.map{ fai -> [ [ id:fai.baseName ], fai ] }) + + // Join results of SENTIEON_APPLYVARCAL_SNP and use as input for SENTIEON_APPLYVARCAL_INDEL to avoid duplicate entries in the result + // Rework meta for variantscalled.csv and annotation tools + vqsr_input_indel = SENTIEON_APPLYVARCAL_SNP.out.vcf.join(SENTIEON_APPLYVARCAL_SNP.out.tbi).map{ meta, vcf, tbi -> [ meta + [ id:'joint_variant_calling' ], vcf, tbi ]} + .join(SENTIEON_VARCAL_INDEL.out.recal, failOnDuplicate: true) + .join(SENTIEON_VARCAL_INDEL.out.idx, failOnDuplicate: true) + .join(SENTIEON_VARCAL_INDEL.out.tranches, failOnDuplicate: true) + .map{ meta, vcf, tbi, recal, index, tranche -> [ meta + [ id:'recalibrated_joint_variant_calling' ], vcf, tbi, recal, index, tranche ] } + + SENTIEON_APPLYVARCAL_INDEL( + vqsr_input_indel, + fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, + fai.map{ fai -> [ [ id:fai.baseName ], fai ] }) + + // The following is an ugly monster to achieve the following: + // When MERGE_GENOTYPEGVCFS and SENTIEON_APPLYVARCAL are run, then use output from SENTIEON_APPLYVARCAL + // When MERGE_GENOTYPEGVCFS and NOT SENTIEON_APPLYVARCAL, then use the output from MERGE_GENOTYPEGVCFS + + // Remap for both to have the same key, if ApplyBQSR is not run, the channel is empty --> populate with empty elements + vqsr_vcf_for_join = SENTIEON_APPLYVARCAL_INDEL.out.vcf.ifEmpty([[:], []]).map{meta, vcf -> [[id: 'joint_variant_calling'] , vcf]} + vqsr_tbi_for_join = SENTIEON_APPLYVARCAL_INDEL.out.tbi.ifEmpty([[:], []]).map{meta, tbi -> [[id: 'joint_variant_calling'] , tbi]} + + // Join on metamap + // If both --> meta, vcf_merged, vcf_bqsr + // If not VQSR --> meta, vcf_merged, [] + // if the second is empty, use the first + genotype_vcf = merged_vcf.join(vqsr_vcf_for_join, remainder: true).map{ + meta, joint_vcf, recal_vcf -> + + vcf_out = recal_vcf ?: joint_vcf + + [[id:"joint_variant_calling", patient:"all_samples", variantcaller:"sentieon_haplotyper"], vcf_out] + } + + genotype_index = merged_tbi.join(vqsr_tbi_for_join, remainder: true).map{ + meta, joint_tbi, recal_tbi -> + + tbi_out = recal_tbi ?: joint_tbi + [[id:"joint_variant_calling", patient:"all_samples", variantcaller:"sentieon_haplotyper"], tbi_out] + } + + versions = versions.mix(SENTIEON_VARCAL_SNP.out.versions) + versions = versions.mix(SENTIEON_VARCAL_INDEL.out.versions) + versions = versions.mix(SENTIEON_APPLYVARCAL_INDEL.out.versions) } versions = versions.mix(SENTIEON_GVCFTYPER.out.versions) - versions = versions.mix(SENTIEON_VARCAL_SNP.out.versions) - versions = versions.mix(SENTIEON_VARCAL_INDEL.out.versions) - versions = versions.mix(SENTIEON_APPLYVARCAL_INDEL.out.versions) emit: genotype_index // channel: [ val(meta), [ tbi ] ] diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index 8af871c013..d288e31fd9 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -222,7 +222,8 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { known_indels_vqsr, known_sites_snps, known_sites_snps_tbi, - known_snps_vqsr) + known_snps_vqsr, + 'sentieon_dnascope') vcf_sentieon_dnascope = BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.genotype_vcf versions = versions.mix(BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.versions) @@ -283,7 +284,8 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { known_indels_vqsr, known_sites_snps, known_sites_snps_tbi, - known_snps_vqsr) + known_snps_vqsr, + 'sentieon_haplotyper') vcf_sentieon_haplotyper = BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.genotype_vcf versions = versions.mix(BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.versions) From 01562e7e79e6d052a25edd1a2fa78dff705d86fb Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 7 Sep 2023 09:39:16 +0000 Subject: [PATCH 012/240] Adding sentieon Dnascope to some error msgs and warnings --- workflows/sarek.nf | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/workflows/sarek.nf b/workflows/sarek.nf index f8bdbf46e7..4e55ad5756 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -254,16 +254,35 @@ if (!params.dbsnp && !params.known_indels) { if (params.step in ['mapping', 'markduplicates', 'prepare_recalibration', 'recalibrate'] && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('baserecalibrator')))) { error("Base quality score recalibration requires at least one resource file. Please provide at least one of `--dbsnp` or `--known_indels`\nYou can skip this step in the workflow by adding `--skip_tools baserecalibrator` to the command.") } - if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper'))) { - log.warn "If GATK's Haplotypecaller or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" + if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) { + log.warn "If GATK's Haplotypecaller, Sentieon's Dnascpe or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" } } -if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper')))) { - error("The GATK's Haplotypecaller or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") +if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope')))) { + error("The GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") } -if (params.joint_germline && (!params.dbsnp || !params.known_indels || !params.known_snps || params.no_intervals)) { - log.warn "If GATK's Haplotypecaller or Sentieon's Haplotyper is specified, without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \nJoint germline variant calling also requires intervals in order to genotype the samples. As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed." +if ( + params.tools && + ( + params.tools.split(',').contains('haplotypecaller') || + params.tools.split(',').contains('sentieon_haplotyper') || + params.tools.split(',').contains('sentieon_dnascope') + ) && + params.joint_germline && + ( + !params.dbsnp || + !params.known_indels || + !params.known_snps || + params.no_intervals + ) + ) { + log.warn("""If GATK's Haplotypecaller, Sentieon's Dnascope and/or Sentieon's Haplotyper is specified, \ +but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ +no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ +see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ +Joint germline variant calling also requires intervals in order to genotype the samples.\ +As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") } // Fails when --joint_mutect2 is used without enabling mutect2 From 0e97157f9ff40335d485990d8eff9be744bb4446 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 11 Sep 2023 14:46:33 +0100 Subject: [PATCH 013/240] adding gene metrics module --- conf/modules/cnvkit.config | 9 ++++ modules.json | 6 +++ modules/nf-core/cnvkit/genemetrics/main.nf | 40 +++++++++++++++++ modules/nf-core/cnvkit/genemetrics/meta.yml | 43 +++++++++++++++++++ .../local/bam_variant_calling_cnvkit/main.nf | 2 + 5 files changed, 100 insertions(+) create mode 100644 modules/nf-core/cnvkit/genemetrics/main.nf create mode 100644 modules/nf-core/cnvkit/genemetrics/meta.yml diff --git a/conf/modules/cnvkit.config b/conf/modules/cnvkit.config index f77c6ef446..e17459369f 100644 --- a/conf/modules/cnvkit.config +++ b/conf/modules/cnvkit.config @@ -47,4 +47,13 @@ process { pattern: "*{bed,cnn,cnr,cns,pdf,png}" ] } + // CNVKIT + withName: 'CNVKIT_GENEMETRICS' { + ext.when = { params.tools && params.tools.split(',').contains('cnvkit') } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/cnvkit/${meta.id}/" }, + pattern: "*{tsv}" + ] + } } diff --git a/modules.json b/modules.json index 6732e1901e..d9eb13ac23 100644 --- a/modules.json +++ b/modules.json @@ -75,6 +75,12 @@ "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", "installed_by": ["modules"] }, + "cnvkit/genemetrics": { + "branch": "master", + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": ["modules"], + "patch": "modules/nf-core/cnvkit/genemetrics/cnvkit-genemetrics.diff" + }, "controlfreec/assesssignificance": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", diff --git a/modules/nf-core/cnvkit/genemetrics/main.nf b/modules/nf-core/cnvkit/genemetrics/main.nf new file mode 100644 index 0000000000..d21c5b6977 --- /dev/null +++ b/modules/nf-core/cnvkit/genemetrics/main.nf @@ -0,0 +1,40 @@ +process CNVKIT_GENEMETRICS { + tag "$meta.id" + label 'process_low' + + conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': + 'quay.io/biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + + input: + tuple val(meta), path(cnr) + tuple val (meta), path(cns) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + //tuple val(meta), path("*.cnn"), emit: cnn + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: cnr.BaseName + def segments = cns ? "--segment ${cns[2]}" : "" + + """ + cnvkit.py \\ + genemetrics \\ + $cnr \\ + $segments \\ + --output ${prefix}.genemetrics.tsv \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvkit: \$(cnvkit.py version | sed -e "s/cnvkit v//g") + END_VERSIONS + """ +} \ No newline at end of file diff --git a/modules/nf-core/cnvkit/genemetrics/meta.yml b/modules/nf-core/cnvkit/genemetrics/meta.yml new file mode 100644 index 0000000000..27e3c8c9e9 --- /dev/null +++ b/modules/nf-core/cnvkit/genemetrics/meta.yml @@ -0,0 +1,43 @@ +name: cnvkit_genemetrics +description: Copy number variant detection from high-throughput sequencing data +keywords: + - cnvkit + - genemetrics +tools: + - cnvkit: + description: | + CNVkit is a Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data. It is designed for use with hybrid capture, including both whole-exome and custom target panels, and short-read sequencing platforms such as Illumina and Ion Torrent. + homepage: https://cnvkit.readthedocs.io/en/stable/index.html + documentation: https://cnvkit.readthedocs.io/en/stable/index.html + licence: ["Apache-2.0"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - cnr: + type: file + description: CNR file + pattern: "*.cnr" + - cns: + type: file + description: CNS file [Optional] + pattern: "*.cns" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - txt: + type: file + description: TXT file + pattern: "*.txt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@marrip" \ No newline at end of file diff --git a/subworkflows/local/bam_variant_calling_cnvkit/main.nf b/subworkflows/local/bam_variant_calling_cnvkit/main.nf index d4b9e297b9..742389e52d 100644 --- a/subworkflows/local/bam_variant_calling_cnvkit/main.nf +++ b/subworkflows/local/bam_variant_calling_cnvkit/main.nf @@ -5,6 +5,7 @@ // A when clause condition is defined in the conf/modules.config to determine if the module should be run include { CNVKIT_BATCH } from '../../../modules/nf-core/cnvkit/batch/main' +include { CNVKIT_GENEMETRICS } from '../../../modules/nf-core/cnvkit/genemetrics/main' workflow BAM_VARIANT_CALLING_CNVKIT { take: @@ -18,6 +19,7 @@ workflow BAM_VARIANT_CALLING_CNVKIT { generate_pon = false CNVKIT_BATCH(cram, fasta, fasta_fai, targets, reference, generate_pon) + CNVKIT_GENEMETRICS(CNVKIT_BATCH.out.cnr, CNVKIT_BATCH.out.cns) versions = CNVKIT_BATCH.out.versions From cd43d532278611f45f36d2d52d87365038da28c4 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Tue, 12 Sep 2023 09:24:29 +0100 Subject: [PATCH 014/240] updating documentation --- CHANGELOG.md | 9 +++++++++ docs/output.md | 5 ++++- modules.json | 10 +++++----- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c963ffbc3..556a0b6135 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.2.4](https://github.com/nf-core/sarek/releases/tag/3.2.4) - Gällivare + +Gällivare is a small lake next to Pierikjaure. + +### Added + +- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding genemetrics module + + ## [3.2.3](https://github.com/nf-core/sarek/releases/tag/3.2.3) - Gällivare Gällivare is a small lake next to Pierikjaure. diff --git a/docs/output.md b/docs/output.md index 1992c32a6d..c0a446f6d8 100644 --- a/docs/output.md +++ b/docs/output.md @@ -574,7 +574,8 @@ The file `.cnvs.txt` contains all segments predicte - file containing copy number segment information - `.call.cns` - file containing copy number segment information - +- `.genemetrics.tsv` + - file containing per gene copy number information (if input files are annotated)
@@ -602,6 +603,8 @@ The file `.cnvs.txt` contains all segments predicte - file containing copy number segment information - `.call.cns` - file containing copy number segment information +- `.genemetrics.tsv` + - file containing per gene copy number information (if input files are annotated)
#### Control-FREEC diff --git a/modules.json b/modules.json index d9eb13ac23..399c503f9a 100644 --- a/modules.json +++ b/modules.json @@ -70,17 +70,17 @@ "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", "installed_by": ["modules"] }, - "cnvkit/reference": { - "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] - }, "cnvkit/genemetrics": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", "installed_by": ["modules"], "patch": "modules/nf-core/cnvkit/genemetrics/cnvkit-genemetrics.diff" }, + "cnvkit/reference": { + "branch": "master", + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": ["modules"] + }, "controlfreec/assesssignificance": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", From e06866a3e82bc8138f49138cfc7b42bcde92ad0d Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Tue, 12 Sep 2023 09:52:44 +0100 Subject: [PATCH 015/240] updating changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 556a0b6135..fe27df6c38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ Gällivare is a small lake next to Pierikjaure. ### Added -- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding genemetrics module +- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module ## [3.2.3](https://github.com/nf-core/sarek/releases/tag/3.2.3) - Gällivare From 5ec2ff30d62ad11174f21c24faa0f43000947f7a Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Tue, 12 Sep 2023 10:47:41 +0100 Subject: [PATCH 016/240] removing extra line from changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b397350c4b..5691b736e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,7 +74,6 @@ Rapaselet is a delta formed by the Rapaätno river between the Bielloriehppe mas | `grep` | 3.4 | 3.11 | | `multiqc` | 1.14 | 1.15 | | `tiddit` | 3.3.2 | 3.6.1 | ->>>>>>> 871acbc8a011c7af1172126a15fa6bd0bae0dd58 ## [3.2.3](https://github.com/nf-core/sarek/releases/tag/3.2.3) - Gällivare From 0f4080cc6ab01deac130cc2534dfed2ff54c90d7 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 13 Sep 2023 12:25:11 +0000 Subject: [PATCH 017/240] params.joint_germline was unintentionally out-commented --- nextflow.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 5c9d6cdf30..fd800c1ed2 100644 --- a/nextflow.config +++ b/nextflow.config @@ -65,7 +65,8 @@ params { cf_window = null // by default we are not using this in Control-FREEC cnvkit_reference = null // by default the reference is build from the fasta file concatenate_vcfs = false // by default we don't concatenate the germline-vcf-files - ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected + ignore_soft_clipped_bases = false // no --dont-use-soft-clipped-bases for GATK Mutect2 + joint_germline = false // g.vcf & joint germline calling are not run by default if HaplotypeCaller is selected joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired sample sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope From cc727860354239b97a6e1ea5c05241b710b614b0 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 07:00:13 +0000 Subject: [PATCH 018/240] Continued implementing Sentieon Dnascope --- conf/modules/sentieon_dnascope.config | 22 ++++++++----------- .../main.nf | 1 + .../bam_variant_calling_germline_all/main.nf | 5 ++--- .../main.nf | 16 +++++++------- workflows/sarek.nf | 1 + 5 files changed, 21 insertions(+), 24 deletions(-) diff --git a/conf/modules/sentieon_dnascope.config b/conf/modules/sentieon_dnascope.config index 4378a35f5a..325a1642a9 100644 --- a/conf/modules/sentieon_dnascope.config +++ b/conf/modules/sentieon_dnascope.config @@ -26,35 +26,31 @@ process { ] } - // TO-DO: Clean up all this stuff below concerning SENTIEON_HAPLOTYPER. - // It is just copied from sentieon_haplotyper.config, but some of it - // may also be needed for Dnascope. - - withName: 'MERGE_SENTIEON_HAPLOTYPER_VCFS' { - ext.prefix = { params.joint_germline ? "${meta.id}.haplotyper.g" : "${meta.id}.haplotyper.unfiltered" } + withName: 'MERGE_SENTIEON_DNASCOPE_VCFS' { + ext.prefix = { params.joint_germline ? "${meta.id}.dnascope.g" : "${meta.id}.dnascope.unfiltered" } publishDir = [ mode: params.publish_dir_mode, - path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/" }, + path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - withName: 'MERGE_SENTIEON_HAPLOTYPER_GVCFS' { - ext.prefix = { "${meta.id}.haplotyper.g" } + withName: 'MERGE_SENTIEON_DNASCOPE_GVCFS' { + ext.prefix = { "${meta.id}.dnascope.g" } publishDir = [ mode: params.publish_dir_mode, - path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/" }, + path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/" }, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - if (params.tools && params.tools.contains('sentieon_haplotyper')) { + if (params.tools && params.tools.contains('sentieon_dnascope')) { withName: '.*FILTERVARIANTTRANCHES' { - ext.prefix = {"${meta.id}.haplotyper"} + ext.prefix = {"${meta.id}.dnascope"} ext.args = { "--info-key CNN_1D" } publishDir = [ mode: params.publish_dir_mode, - path: { "${params.outdir}/variant_calling/sentieon_haplotyper/${meta.id}/"}, + path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/"}, pattern: "*{vcf.gz,vcf.gz.tbi}" ] } diff --git a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf index ad22a44ba7..ae34721ed6 100644 --- a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf +++ b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf @@ -50,6 +50,7 @@ workflow BAM_JOINT_CALLING_GERMLINE_SENTIEON { merged_tbi = MERGE_GENOTYPEGVCFS.out.tbi.map{meta, tbi -> [[id: 'joint_variant_calling'] , tbi]} if (variant_caller == 'sentieon_dnascope') { + // As advised by Don Freed (Sentieon), VQSR is skipped for DnaScope genotype_index = merged_vcf genotype_vcf = merged_tbi } else { diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index d288e31fd9..8c48a157a2 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -209,7 +209,7 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { gvcf_tbi_sentieon_dnascope = BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.gvcf_tbi if (joint_germline) { - BAM_JOINT_CALLING_GERMLINE_SENTIEON( // TO-DO: Check that subworkflow is okay for Dnascope as well. Email sent to Don. + BAM_JOINT_CALLING_GERMLINE_SENTIEON( BAM_VARIANT_CALLING_SENTIEON_DNASCOPE.out.genotype_intervals, fasta, fasta_fai, @@ -228,7 +228,6 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { vcf_sentieon_dnascope = BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.genotype_vcf versions = versions.mix(BAM_JOINT_CALLING_GERMLINE_SENTIEON.out.versions) } else { - // If single sample track, check if filtering should be done if (!(skip_tools && skip_tools.split(',').contains('dnascope_filter'))) { @@ -353,11 +352,11 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { vcf_all vcf_deepvariant vcf_freebayes - vcf_sentieon_dnascope vcf_haplotypecaller vcf_manta vcf_mpileup vcf_strelka + vcf_sentieon_dnascope vcf_sentieon_haplotyper gvcf_sentieon_haplotyper vcf_tiddit diff --git a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf index 6a395af18f..9eea9b2d61 100644 --- a/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf +++ b/subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf @@ -37,7 +37,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { meta + [ num_intervals:num_intervals, intervals_name:intervals.simpleName, - variantcaller:'SENTIEON_DNASCOPE'], + variantcaller:'sentieon_dnascope'], cram, crai, intervals @@ -67,7 +67,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { } // Figure out if using intervals or no_intervals - haplotyper_vcf_branch = SENTIEON_DNASCOPE.out.vcf.map{ + dnascope_vcf_branch = SENTIEON_DNASCOPE.out.vcf.map{ meta, vcf -> [ meta - meta.subMap('interval_name'), vcf] } .branch{ @@ -75,7 +75,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { no_intervals: it[0].num_intervals <= 1 } - haplotyper_vcf_tbi_branch = SENTIEON_DNASCOPE.out.vcf_tbi.map{ + dnascope_vcf_tbi_branch = SENTIEON_DNASCOPE.out.vcf_tbi.map{ meta, vcf_tbi -> [ meta - meta.subMap('interval_name'), vcf_tbi] } .branch{ @@ -99,7 +99,7 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { no_intervals: it[0].num_intervals <= 1 } - vcfs_for_merging = haplotyper_vcf_branch.intervals.map{ + vcfs_for_merging = dnascope_vcf_branch.intervals.map{ meta, vcf -> [ groupKey(meta, meta.num_intervals), vcf ]} vcfs_for_merging = vcfs_for_merging.map{ @@ -111,16 +111,16 @@ workflow BAM_VARIANT_CALLING_SENTIEON_DNASCOPE { // Only when using intervals MERGE_SENTIEON_DNASCOPE_VCFS(vcfs_for_merging, dict) - haplotyper_vcf = Channel.empty().mix( + dnascope_vcf = Channel.empty().mix( MERGE_SENTIEON_DNASCOPE_VCFS.out.vcf, - haplotyper_vcf_branch.no_intervals) + dnascope_vcf_branch.no_intervals) haplotyper_tbi = Channel.empty().mix( MERGE_SENTIEON_DNASCOPE_VCFS.out.tbi, - haplotyper_vcf_tbi_branch.no_intervals) + dnascope_vcf_tbi_branch.no_intervals) // Remove no longer necessary field: num_intervals - vcf = haplotyper_vcf.map{ meta, vcf -> [ meta - meta.subMap('num_intervals'), vcf ] } + vcf = dnascope_vcf.map{ meta, vcf -> [ meta - meta.subMap('num_intervals'), vcf ] } vcf_tbi = haplotyper_tbi.map{ meta, tbi -> [ meta - meta.subMap('num_intervals'), tbi ] } // GVFs diff --git a/workflows/sarek.nf b/workflows/sarek.nf index b5e1c1bece..c38e97871d 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -1227,6 +1227,7 @@ workflow SAREK { vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_freebayes) vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_haplotypecaller) vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_manta) + vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_sentieon_dnascope) vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_sentieon_haplotyper) vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_strelka) vcf_to_annotate = vcf_to_annotate.mix(BAM_VARIANT_CALLING_GERMLINE_ALL.out.vcf_tiddit) From 5cf6520a96d3c7a8d2ead8678df7aadf55e81fbd Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 10:43:46 +0000 Subject: [PATCH 019/240] Fixing name of pytest. Replacing problematic ampersand character --- tests/test_gatk4_spark.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_gatk4_spark.yml b/tests/test_gatk4_spark.yml index 32082446ec..8dbc8fb974 100644 --- a/tests/test_gatk4_spark.yml +++ b/tests/test_gatk4_spark.yml @@ -48,7 +48,7 @@ # conda changes md5sums for test - path: results/preprocessing/mapped/ should_exist: false -- name: Run default pipeline with gatk4_spark & skipping all QC steps +- name: Run default pipeline with gatk4_spark and skipping all QC steps command: nextflow run main.nf -profile test_cache,use_gatk_spark --skip_tools fastqc,markduplicates_report,mosdepth,multiqc,samtools --outdir results tags: - gatk4_spark From ccdf4e5422bdf98a435aabde57d436e98714cc56 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 11:24:46 +0000 Subject: [PATCH 020/240] Bug fix: Sent tbi to vcf-channel and vcf to tbi-channel --- .../local/bam_joint_calling_germline_sentieon/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf index ae34721ed6..4092bd4775 100644 --- a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf +++ b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf @@ -51,8 +51,8 @@ workflow BAM_JOINT_CALLING_GERMLINE_SENTIEON { if (variant_caller == 'sentieon_dnascope') { // As advised by Don Freed (Sentieon), VQSR is skipped for DnaScope - genotype_index = merged_vcf - genotype_vcf = merged_tbi + genotype_index = merged_tbi + genotype_vcf = merged_vcf } else { vqsr_input = MERGE_GENOTYPEGVCFS.out.vcf.join(MERGE_GENOTYPEGVCFS.out.tbi, failOnDuplicate: true) indels_resource_label = known_indels_vqsr.mix(dbsnp_vqsr).collect() From d74ec55ebfd10c677ddeb0fcf421788c7be9dbb3 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 11:43:22 +0000 Subject: [PATCH 021/240] Adding a bit of error-handling for sentieon-based joint-germline variant-calling --- workflows/sarek.nf | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/workflows/sarek.nf b/workflows/sarek.nf index c38e97871d..1f851ac12b 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -281,10 +281,33 @@ if ( but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ -Joint germline variant calling also requires intervals in order to genotype the samples.\ +Joint germline variant calling also requires intervals in order to genotype the samples. \ As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") } +if (params.tools && + params.tools.split(',').contains('sentieon_dnascope') && + params.joint_germline && + ( + !params.sentieon_dnascope_emit_mode || + !params.sentieon_dnascope_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Dnascope for joint-germline variant-calling the option `--sentieon_dnascope_emit_mode` has to include `gvcf`.") +} + +if (params.tools && + params.tools.split(',').contains('sentieon_haplotyper') && + params.joint_germline && + ( + !params.sentieon_haplotyper_emit_mode || + !params.sentieon_haplotyper_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Haplotyper for joint-germline variant-calling the option `--sentieon_haplotyper_emit_mode` has to include `gvcf`.") +} + + // Fails when --joint_mutect2 is used without enabling mutect2 if (params.joint_mutect2 && (!params.tools || !params.tools.split(',').contains('mutect2'))) { error("The mutect2 should be specified as one of the tools when doing joint somatic variant calling with Mutect2. (The mutect2 could be specified by adding `--tools mutect2` to the nextflow command.)") From a367e37c27cff34b0ca11aa69df97b005fc16296 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:27:57 +0000 Subject: [PATCH 022/240] Separate configs for sentieon_dnascope_joint_germline and sentieon_haplotyper_joint_germline --- .../sentieon_dnascope_joint_germline.config | 45 +++++++++++++++++++ ...sentieon_haplotyper_joint_germline.config} | 0 nextflow.config | 3 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 conf/modules/sentieon_dnascope_joint_germline.config rename conf/modules/{sentieon_joint_germline.config => sentieon_haplotyper_joint_germline.config} (100%) diff --git a/conf/modules/sentieon_dnascope_joint_germline.config b/conf/modules/sentieon_dnascope_joint_germline.config new file mode 100644 index 0000000000..72dd6c3144 --- /dev/null +++ b/conf/modules/sentieon_dnascope_joint_germline.config @@ -0,0 +1,45 @@ +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Config file for defining DSL2 per module options and publishing paths +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Available keys to override module options: + ext.args = Additional arguments appended to command in module. + ext.args2 = Second set of arguments appended to command in module (multi-tool modules). + ext.args3 = Third set of arguments appended to command in module (multi-tool modules). + ext.prefix = File name prefix for output files. + ext.when = When to run the module. +---------------------------------------------------------------------------------------- +*/ + +// SENTIEON DNASCOPE JOINT_GERMLINE + +process { + + // TO-DO: duplicate!! + withName: 'SENTIEON_GVCFTYPER' { + ext.args = { "--allow-old-rms-mapping-quality-annotation-data" } + ext.prefix = { meta.intervals_name } + publishDir = [ + enabled: false + ] + } + + if (params.tools && params.tools.contains('sentieon_dnascope') && params.joint_germline) { + withName: 'NFCORE_SAREK:SAREK:BAM_VARIANT_CALLING_GERMLINE_ALL:BAM_JOINT_CALLING_GERMLINE_SENTIEON:BCFTOOLS_SORT' { + ext.prefix = { vcf.baseName - ".vcf" + ".sort" } + publishDir = [ + enabled: false + ] + } + + withName: 'NFCORE_SAREK:SAREK:BAM_VARIANT_CALLING_GERMLINE_ALL:BAM_JOINT_CALLING_GERMLINE_SENTIEON:MERGE_GENOTYPEGVCFS' { + ext.prefix = "joint_germline" + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/sentieon_dnascope/joint_variant_calling/" }, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename }, + pattern: "*{vcf.gz,vcf.gz.tbi}" + ] + } + } +} diff --git a/conf/modules/sentieon_joint_germline.config b/conf/modules/sentieon_haplotyper_joint_germline.config similarity index 100% rename from conf/modules/sentieon_joint_germline.config rename to conf/modules/sentieon_haplotyper_joint_germline.config diff --git a/nextflow.config b/nextflow.config index fd800c1ed2..0dfd0d9331 100644 --- a/nextflow.config +++ b/nextflow.config @@ -376,7 +376,8 @@ includeConfig 'conf/modules/msisensorpro.config' includeConfig 'conf/modules/mutect2.config' includeConfig 'conf/modules/sentieon_dnascope.config' includeConfig 'conf/modules/sentieon_haplotyper.config' -includeConfig 'conf/modules/sentieon_joint_germline.config' +includeConfig 'conf/modules/sentieon_haplotyper_joint_germline.config' +includeConfig 'conf/modules/sentieon_dnascope_joint_germline.config' includeConfig 'conf/modules/strelka.config' includeConfig 'conf/modules/tiddit.config' From f55c22eda8f1fce7bd92342c5007f050c6f9d2c9 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:28:42 +0000 Subject: [PATCH 023/240] Adding tests for dnascope (excel joint-germline) --- tests/test_sentieon_dnascope.yml | 147 +++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 tests/test_sentieon_dnascope.yml diff --git a/tests/test_sentieon_dnascope.yml b/tests/test_sentieon_dnascope.yml new file mode 100644 index 0000000000..94835af4a8 --- /dev/null +++ b/tests/test_sentieon_dnascope.yml @@ -0,0 +1,147 @@ +- name: Run variant calling on germline sample with sentieons dnascope + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results + tags: + - germline + - sentieon/dnascope + - variant_calling + files: + - path: results/csv/variantcalled.csv + md5sum: b2144d21a0ebfd807a8646f1751d0ddc + - path: results/multiqc + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt + md5sum: 912c7d5b31784c50e0a75b4fcfa4997b + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary + md5sum: ce2769af8f853b93d9e16b6493fc7e0d + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count + md5sum: b77c120ee5cc0423267200c67d60c663 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual + # changes md5sum on reruns. This is somewhat unexpected, but might to tiny variation in very small numbers in the qual-files. + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/dnascope + should_exist: false +- name: Run variant calling on germline sample with sentieons dnascope without intervals + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --no_intervals --outdir results + tags: + - germline + - sentieon/dnascope + - no_intervals + - variant_calling + files: + - path: results/csv/variantcalled.csv + md5sum: b2144d21a0ebfd807a8646f1751d0ddc + - path: results/multiqc + - path: results/no_intervals.bed + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/no_intervals.bed.gz + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/no_intervals.bed.gz.tbi + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt + md5sum: 912c7d5b31784c50e0a75b4fcfa4997b + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary + md5sum: ce2769af8f853b93d9e16b6493fc7e0d + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count + md5sum: b77c120ee5cc0423267200c67d60c663 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual + # changes md5sum on reruns. This is somewhat unexpected, but might to tiny variation in very small numbers in the qual-files. + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/sentieon_dnascope + should_exist: false +- name: Run variant calling on germline sample with sentieons dnascope output gvcf + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode gvcf + tags: + - germline + - sentieon/dnascope + - variant_calling + files: + - path: results/csv/variantcalled.csv + should_exist: false + - path: results/multiqc + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.g.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + should_exist: false + - path: results/dnascope + should_exist: false +- name: Run variant calling on germline sample with sentieons dnascope output both gvcf and vcf + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode variant,gvcf + tags: + - germline + - sentieon/dnascope + - variant_calling + files: + - path: results/csv/variantcalled.csv + md5sum: b2144d21a0ebfd807a8646f1751d0ddc + - path: results/multiqc + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.g.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + - path: results/dnascope + should_exist: false From a10ad132caaa74a7a5a1bfca2edd414dc7ec4308 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:30:19 +0000 Subject: [PATCH 024/240] Adding meta tags patient and variantcaller to channels genotype_vcf and genotype_tbi. (Needed for output csv-file.) --- .../local/bam_joint_calling_germline_sentieon/main.nf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf index 4092bd4775..3f19b33d52 100644 --- a/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf +++ b/subworkflows/local/bam_joint_calling_germline_sentieon/main.nf @@ -51,8 +51,12 @@ workflow BAM_JOINT_CALLING_GERMLINE_SENTIEON { if (variant_caller == 'sentieon_dnascope') { // As advised by Don Freed (Sentieon), VQSR is skipped for DnaScope - genotype_index = merged_tbi - genotype_vcf = merged_vcf + genotype_vcf = merged_vcf.map{ + meta, vcf -> [ meta + [ patient:"all_samples", variantcaller:'sentieon_dnascope'], vcf ] + } + genotype_index = merged_tbi.map{ + meta, tbi -> [ meta + [ patient:"all_samples", variantcaller:'sentieon_dnascope'], tbi ] + } } else { vqsr_input = MERGE_GENOTYPEGVCFS.out.vcf.join(MERGE_GENOTYPEGVCFS.out.tbi, failOnDuplicate: true) indels_resource_label = known_indels_vqsr.mix(dbsnp_vqsr).collect() From 6c78764c830fc9876ef47ebec757cf372de92499 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:31:11 +0000 Subject: [PATCH 025/240] joint germline with dnascope --- subworkflows/local/bam_variant_calling_germline_all/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index 8c48a157a2..b35f28d827 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -349,6 +349,8 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { ) emit: + gvcf_sentieon_dnascope + gvcf_sentieon_haplotyper vcf_all vcf_deepvariant vcf_freebayes @@ -358,7 +360,6 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { vcf_strelka vcf_sentieon_dnascope vcf_sentieon_haplotyper - gvcf_sentieon_haplotyper vcf_tiddit versions From c48f68c05ba00a4b369e742906628c7af59d0f37 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:32:02 +0000 Subject: [PATCH 026/240] test_sentieon_joint_germline.yml -> test_sentieon_haplotyper_joint_germline.yml --- tests/config/tags.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 851d80c225..9f98cc6a2b 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -373,7 +373,7 @@ sentieon_joint_germline: - subworkflows/local/bam_variant_calling_germline_all/main.nf - subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf - tests/csv/3.0/mapped_joint_bam.csv - - tests/test_sentieon_joint_germline.yml + - tests/test_sentieon_haplotyper_joint_germline.yml ## manta manta: From af59cd351760e39251e7650f5def500844e209af Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:32:39 +0000 Subject: [PATCH 027/240] Adding test for joint-germline with dnascope --- .../test_sentieon_dnascope_joint_germline.yml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 tests/test_sentieon_dnascope_joint_germline.yml diff --git a/tests/test_sentieon_dnascope_joint_germline.yml b/tests/test_sentieon_dnascope_joint_germline.yml new file mode 100644 index 0000000000..e27865372e --- /dev/null +++ b/tests/test_sentieon_dnascope_joint_germline.yml @@ -0,0 +1,56 @@ +- name: Run joint germline variant calling with sentieon dnascope + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf + tags: + - germline + - sentieon_joint_germline + - variant_calling + - sentieon/dnascope + files: + - path: results/csv/variantcalled.csv + md5sum: 62d70060aad96337254efe2d7a1df170 + - path: results/multiqc + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline.bcftools_stats.txt + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.FILTER.summary + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.TsTv.count + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.TsTv.qual + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi + - path: results/dnascope + should_exist: false +- name: Run joint germline variant calling with sentieon dnascope all intervals at once + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf --nucleotides_per_second 100 + tags: + - germline + - sentieon_joint_germline + - variant_calling + - sentieon/dnascope + files: + - path: results/csv/variantcalled.csv + md5sum: 62d70060aad96337254efe2d7a1df170 + - path: results/multiqc + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline.bcftools_stats.txt + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.FILTER.summary + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.TsTv.count + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.TsTv.qual + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi + - path: results/dnascope + should_exist: false From d0bb50ddb0fd8e60196d16d2d1733d5ff7ff75c4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:33:20 +0000 Subject: [PATCH 028/240] test_sentieon_joint_germline.yml -> test_sentieon_haplotyper_joint_germline.yml --- ...t_germline.yml => test_sentieon_haplotyper_joint_germline.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/{test_sentieon_joint_germline.yml => test_sentieon_haplotyper_joint_germline.yml} (100%) diff --git a/tests/test_sentieon_joint_germline.yml b/tests/test_sentieon_haplotyper_joint_germline.yml similarity index 100% rename from tests/test_sentieon_joint_germline.yml rename to tests/test_sentieon_haplotyper_joint_germline.yml From a063f3f0151d863fd00502f71a26353f19d62716 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 15:48:06 +0000 Subject: [PATCH 029/240] initializing output channel gvcf_sentieon_dnascope --- subworkflows/local/bam_variant_calling_germline_all/main.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index b35f28d827..eea9c2e0b8 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -50,6 +50,9 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { versions = Channel.empty() //TODO: Temporary until the if's can be removed and printing to terminal is prevented with "when" in the modules.config + gvcf_sentieon_dnascope = Channel.empty() + gvcf_sentieon_haplotyper = Channel.empty() + vcf_deepvariant = Channel.empty() vcf_freebayes = Channel.empty() vcf_haplotypecaller = Channel.empty() @@ -57,7 +60,6 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { vcf_mpileup = Channel.empty() vcf_sentieon_dnascope = Channel.empty() vcf_sentieon_haplotyper = Channel.empty() - gvcf_sentieon_haplotyper = Channel.empty() vcf_strelka = Channel.empty() vcf_tiddit = Channel.empty() From 2902b5b0304aef6329ac1a6c4b832ab25862a6b4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Thu, 14 Sep 2023 22:21:03 +0000 Subject: [PATCH 030/240] secrets not secret --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 0f794f54e4..63e338c3c6 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1062,7 +1062,7 @@ In particular, Sentieon contains what may be view as speedup version of some sta Sentieon supply license in the form of a string-value (a url) or a file. It should be base64-encoded and stored in a nextflow secret named `SENTIEON_LICENSE_BASE64`. If a license string (url) is supplied, then the nextflow secret should be set like this: ```bash -nextflow secret set SENTIEON_LICENSE_BASE64 $(echo -n | base64 -w 0) +nextflow secrets set SENTIEON_LICENSE_BASE64 $(echo -n | base64 -w 0) ``` If a license file is supplied, then the nextflow secret should be set like this: From 8d13939d840cc8a90fa8b1944e2eefcb384b63e4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Fri, 15 Sep 2023 06:08:13 +0000 Subject: [PATCH 031/240] include configs in alphabetical order --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 0dfd0d9331..f2d90dd3cf 100644 --- a/nextflow.config +++ b/nextflow.config @@ -375,9 +375,9 @@ includeConfig 'conf/modules/mpileup.config' includeConfig 'conf/modules/msisensorpro.config' includeConfig 'conf/modules/mutect2.config' includeConfig 'conf/modules/sentieon_dnascope.config' +includeConfig 'conf/modules/sentieon_dnascope_joint_germline.config' includeConfig 'conf/modules/sentieon_haplotyper.config' includeConfig 'conf/modules/sentieon_haplotyper_joint_germline.config' -includeConfig 'conf/modules/sentieon_dnascope_joint_germline.config' includeConfig 'conf/modules/strelka.config' includeConfig 'conf/modules/tiddit.config' From c2cd5880a3d646d1bb7182ca686543e647e26dee Mon Sep 17 00:00:00 2001 From: asp8200 Date: Fri, 15 Sep 2023 06:13:45 +0000 Subject: [PATCH 032/240] Adding tag for sentieon/dnascope (excl joint-germline) --- tests/config/tags.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 9f98cc6a2b..2440bf7fad 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -314,6 +314,22 @@ haplotypecaller_skip_filter: - tests/csv/3.0/mapped_single_bam.csv - tests/test_haplotypecaller_skip_filter.yml +## sentieon/dnascope +sentieon/dnascope: + - conf/modules/sentieon_dnascope.config + - modules/nf-core/gatk4/cnnscorevariants/main.nf + - modules/nf-core/gatk4/filtervarianttranches/main.nf + - modules/nf-core/sentieon/dnascope/main.nf + - modules/nf-core/gatk4/mergevcfs/main.nf + - modules/nf-core/samtools/index/main.nf + - modules/nf-core/samtools/merge/main.nf + - subworkflows/local/bam_merge_index_samtools/main.nf + - subworkflows/local/bam_variant_calling_germline_all/main.nf + - subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf + - subworkflows/local/vcf_variant_filtering_gatk/main.nf + - tests/csv/3.0/mapped_single_bam.csv + - tests/test_sentieon_dnascope.yml + ## sentieon/haplotyper sentieon/haplotyper: - conf/modules/sentieon_haplotyper.config @@ -364,11 +380,11 @@ joint_germline: - tests/csv/3.0/mapped_joint_bam.csv - tests/test_joint_germline.yml -## sentieon_joint_germline -sentieon_joint_germline: +## sentieon_haplotyper_joint_germline +sentieon_haplotyper_joint_germline: - conf/modules/prepare_genome.config - conf/modules/sentieon_haplotyper.config - - conf/modules/sentieon_joint_germline.config + - conf/modules/sentieon_haplotyper_joint_germline.config - modules/nf-core/sentieon/haplotyper/main.nf - subworkflows/local/bam_variant_calling_germline_all/main.nf - subworkflows/local/bam_variant_calling_sentieon_haplotyper/main.nf From de09b05908f1e40218c21e550cc40235b634d0ee Mon Sep 17 00:00:00 2001 From: asp8200 Date: Fri, 15 Sep 2023 06:21:31 +0000 Subject: [PATCH 033/240] update tags --- tests/test_sentieon_dnascope_joint_germline.yml | 4 ++-- tests/test_sentieon_haplotyper_joint_germline.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/test_sentieon_dnascope_joint_germline.yml b/tests/test_sentieon_dnascope_joint_germline.yml index e27865372e..a25117b3b9 100644 --- a/tests/test_sentieon_dnascope_joint_germline.yml +++ b/tests/test_sentieon_dnascope_joint_germline.yml @@ -2,7 +2,7 @@ command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf tags: - germline - - sentieon_joint_germline + - sentieon_dnascope_joint_germline - variant_calling - sentieon/dnascope files: @@ -31,7 +31,7 @@ command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf --nucleotides_per_second 100 tags: - germline - - sentieon_joint_germline + - sentieon_dnascope_joint_germline - variant_calling - sentieon/dnascope files: diff --git a/tests/test_sentieon_haplotyper_joint_germline.yml b/tests/test_sentieon_haplotyper_joint_germline.yml index 4b42a505a9..c08b07485e 100644 --- a/tests/test_sentieon_haplotyper_joint_germline.yml +++ b/tests/test_sentieon_haplotyper_joint_germline.yml @@ -2,7 +2,7 @@ command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf tags: - germline - - sentieon_joint_germline + - sentieon_haplotyper_joint_germline - variant_calling - sentieon/haplotyper files: @@ -31,7 +31,7 @@ command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf --nucleotides_per_second 100 tags: - germline - - sentieon_joint_germline + - sentieon_haplotyper_joint_germline - variant_calling - sentieon/haplotyper files: @@ -58,7 +58,7 @@ command: nextflow run main.nf -profile test_cache,tools_germline --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_haplotyper --step variant_calling --joint_germline --outdir results --sentieon_haplotyper_emit_mode gvcf -stub-run tags: - germline - - sentieon_joint_germline + - sentieon_haplotyper_joint_germline - variant_calling - vqsr files: From 704fd8044a6693a6a324ae53da52e03b30e19875 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Sun, 17 Sep 2023 19:50:35 +0000 Subject: [PATCH 034/240] Adding tag sentieon_dnascope_joint_germline --- tests/config/tags.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 2440bf7fad..53e7c23a0f 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -380,6 +380,17 @@ joint_germline: - tests/csv/3.0/mapped_joint_bam.csv - tests/test_joint_germline.yml +## sentieon_dnascope_joint_germline +sentieon_dnascope_joint_germline: + - conf/modules/prepare_genome.config + - conf/modules/sentieon_dnascope.config + - conf/modules/sentieon_dnascope_joint_germline.config + - modules/nf-core/sentieon/dnascope/main.nf + - subworkflows/local/bam_variant_calling_germline_all/main.nf + - subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf + - tests/csv/3.0/mapped_joint_bam.csv + - tests/test_sentieon_dnascop_joint_germline.yml + ## sentieon_haplotyper_joint_germline sentieon_haplotyper_joint_germline: - conf/modules/prepare_genome.config From e46f6d9ba8f81fbe7bd33315627f99631f3209c5 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Sun, 17 Sep 2023 20:17:14 +0000 Subject: [PATCH 035/240] TABIX_KNOWN_INDELS and TABIX_KNOWN_SNPS is probably not needed in the DnaScope subworkflow as VQSR is not applied for DnaScope --- conf/modules/prepare_genome.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/modules/prepare_genome.config b/conf/modules/prepare_genome.config index 8b1f45c4fb..d4bf1853b0 100644 --- a/conf/modules/prepare_genome.config +++ b/conf/modules/prepare_genome.config @@ -96,7 +96,7 @@ process { } withName: 'TABIX_KNOWN_INDELS' { - ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) } + ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') )) ) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, @@ -106,7 +106,7 @@ process { } withName: 'TABIX_KNOWN_SNPS' { - ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) } + ext.when = { !params.known_snps_tbi && params.known_snps && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') )) ) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, From 1e424a642ee770404ec0e960b251e5b1dbee09ac Mon Sep 17 00:00:00 2001 From: asp8200 Date: Sun, 17 Sep 2023 21:09:37 +0000 Subject: [PATCH 036/240] Re-installing config for TABIX_KNOWN_INDELS for dnascope --- conf/modules/prepare_genome.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules/prepare_genome.config b/conf/modules/prepare_genome.config index d4bf1853b0..85367196c2 100644 --- a/conf/modules/prepare_genome.config +++ b/conf/modules/prepare_genome.config @@ -96,7 +96,7 @@ process { } withName: 'TABIX_KNOWN_INDELS' { - ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') )) ) } + ext.when = { !params.known_indels_tbi && params.known_indels && (params.step == 'mapping' || params.step == "markduplicates" || params.step == 'prepare_recalibration' || (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) ) } publishDir = [ enabled: (params.save_reference || params.build_only_index), mode: params.publish_dir_mode, From 2738c8d19da358c95c54ffcc0003150e888d98e2 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 18 Sep 2023 11:41:07 +0000 Subject: [PATCH 037/240] Briefly mentioning DnaScope --- docs/usage.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 63e338c3c6..94ec009d96 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1073,7 +1073,9 @@ nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat ### Available Sentieon functions -Sarek contains the following Sentieon functions [bwa mem](https://support.sentieon.com/manual/usages/general/#bwa-mem-syntax), [LocusCollector](https://support.sentieon.com/manual/usages/general/#locuscollector-algorithm) + [Dedup](https://support.sentieon.com/manual/usages/general/#dedup-algorithm), [Haplotyper](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm), [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) and [VarCal](https://support.sentieon.com/manual/usages/general/#varcal-algorithm) + [ApplyVarCal](https://support.sentieon.com/manual/usages/general/#applyvarcal-algorithm), so the basic processing of alignment of fastq-files to VCF-files can be done using speedup Sentieon functions. +Sarek contains the following Sentieon functions from [DnaSeq](https://support.sentieon.com/manual/DNAseq_usage/dnaseq/) : [bwa mem](https://support.sentieon.com/manual/usages/general/#bwa-mem-syntax), [LocusCollector](https://support.sentieon.com/manual/usages/general/#locuscollector-algorithm) + [Dedup](https://support.sentieon.com/manual/usages/general/#dedup-algorithm), [Haplotyper](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm), [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) and [VarCal](https://support.sentieon.com/manual/usages/general/#varcal-algorithm) + [ApplyVarCal](https://support.sentieon.com/manual/usages/general/#applyvarcal-algorithm), so the basic processing of alignment of fastq-files to VCF-files can be done using speedup Sentieon functions. + +Sarek also contains the Sentieon functions [DnaScope](https://support.sentieon.com/manual/usages/general/?highlight=dnamodelapply#dnascope-algorithm) and [DNAModelApply](https://support.sentieon.com/manual/usages/general/?highlight=dnamodelapply#dnamodelapply-algorithm). ### Basic usage of Sentieon functions From 0479416432fe5a14cc57d99d18d4cea597c5fce3 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 18 Sep 2023 11:41:34 +0000 Subject: [PATCH 038/240] Publishing from SENTIEON_DNAMODELAPPLY --- conf/modules/sentieon_dnascope.config | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/conf/modules/sentieon_dnascope.config b/conf/modules/sentieon_dnascope.config index 325a1642a9..3f9b181217 100644 --- a/conf/modules/sentieon_dnascope.config +++ b/conf/modules/sentieon_dnascope.config @@ -56,4 +56,13 @@ process { } } + withName: 'SENTIEON_DNAMODELAPPLY' { + ext.prefix = {"${meta.id}.dnamodelapply"} + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/"}, + pattern: "*{vcf.gz,vcf.gz.tbi}" + ] + } + } From ba06cac096571d9432996554b9b10e79b349c686 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 18 Sep 2023 11:45:14 +0000 Subject: [PATCH 039/240] Replacing VCF_VARIANT_FILTERING_GATK with SENTIEON_DNAMODELAPPLY in DnaScope-subworkflow --- modules.json | 5 +++ .../bam_variant_calling_germline_all/main.nf | 34 +++++++++++++------ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/modules.json b/modules.json index ffec443b25..d7aca8486e 100644 --- a/modules.json +++ b/modules.json @@ -386,6 +386,11 @@ "git_sha": "915a0b16ba3e40ef59e7b44843b3118e17a9c906", "installed_by": ["modules"] }, + "sentieon/dnamodelapply": { + "branch": "master", + "git_sha": "43ef68091a1188fd8dc4c03f9341b556803c7514", + "installed_by": ["modules"] + }, "sentieon/dnascope": { "branch": "master", "git_sha": "4fb6fdc8046ec09cd30f92a2a252e9a0ba4a6309", diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index eea9c2e0b8..73a6e4c901 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -14,8 +14,11 @@ include { BAM_VARIANT_CALLING_SENTIEON_HAPLOTYPER } from '../bam_variant_calling include { BAM_VARIANT_CALLING_MPILEUP } from '../bam_variant_calling_mpileup/main' include { BAM_VARIANT_CALLING_SINGLE_STRELKA } from '../bam_variant_calling_single_strelka/main' include { BAM_VARIANT_CALLING_SINGLE_TIDDIT } from '../bam_variant_calling_single_tiddit/main' +include { SENTIEON_DNAMODELAPPLY } from '../../../modules/nf-core/sentieon/dnamodelapply/main' include { VCF_VARIANT_FILTERING_GATK } from '../vcf_variant_filtering_gatk/main' + + workflow BAM_VARIANT_CALLING_GERMLINE_ALL { take: tools // Mandatory, list of tools to apply @@ -233,18 +236,27 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { // If single sample track, check if filtering should be done if (!(skip_tools && skip_tools.split(',').contains('dnascope_filter'))) { - VCF_VARIANT_FILTERING_GATK( + SENTIEON_DNAMODELAPPLY( vcf_sentieon_dnascope.join(vcf_tbi_sentieon_dnascope, failOnDuplicate: true, failOnMismatch: true), - fasta, - fasta_fai, - dict.map{ meta, dict -> [ dict ] }, - intervals_bed_combined_haplotypec, - known_sites_indels.concat(known_sites_snps).flatten().unique().collect(), - known_sites_indels_tbi.concat(known_sites_snps_tbi).flatten().unique().collect()) - - vcf_sentieon_dnascope = VCF_VARIANT_FILTERING_GATK.out.filtered_vcf - - versions = versions.mix(VCF_VARIANT_FILTERING_GATK.out.versions) + fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, + fasta_fai.map{ fai -> [ [ id:fai.baseName ], fai ] }, + sentieon_dnascope_model.map{ model -> [ [ id:model.baseName ], model ] }) + + vcf_sentieon_dnascope = SENTIEON_DNAMODELAPPLY.out.vcf + versions = versions.mix(SENTIEON_DNAMODELAPPLY.out.versions) + + // TO-DO: Figure out whether it should be possible to also run VCF_VARIANT_FILTERING_GATK here. + // VCF_VARIANT_FILTERING_GATK( + // vcf_sentieon_dnascope.join(vcf_tbi_sentieon_dnascope, failOnDuplicate: true, failOnMismatch: true), + // fasta, + // fasta_fai, + // dict.map{ meta, dict -> [ dict ] }, + // intervals_bed_combined_haplotypec, + // known_sites_indels.concat(known_sites_snps).flatten().unique().collect(), + // known_sites_indels_tbi.concat(known_sites_snps_tbi).flatten().unique().collect()) + + // vcf_sentieon_dnascope = VCF_VARIANT_FILTERING_GATK.out.filtered_vcf + // versions = versions.mix(VCF_VARIANT_FILTERING_GATK.out.versions) } } From 89591c711fffb81eadaae8842e2e9228d2ae214f Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 18 Sep 2023 11:50:37 +0000 Subject: [PATCH 040/240] New sentieon module dnamodelapply --- .../nf-core/sentieon/dnamodelapply/main.nf | 81 +++++++++++++++++++ .../nf-core/sentieon/dnamodelapply/meta.yml | 78 ++++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 modules/nf-core/sentieon/dnamodelapply/main.nf create mode 100644 modules/nf-core/sentieon/dnamodelapply/meta.yml diff --git a/modules/nf-core/sentieon/dnamodelapply/main.nf b/modules/nf-core/sentieon/dnamodelapply/main.nf new file mode 100644 index 0000000000..3fe9a28f19 --- /dev/null +++ b/modules/nf-core/sentieon/dnamodelapply/main.nf @@ -0,0 +1,81 @@ +process SENTIEON_DNAMODELAPPLY { + tag "$meta.id" + label 'process_high' + label 'sentieon' + + secret 'SENTIEON_LICENSE_BASE64' + + container 'nf-core/sentieon:202112.06' + + input: + tuple val(meta), path(vcf), path(idx) + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + tuple val(meta4), path(ml_model) + + output: + tuple val(meta), path("*.vcf.gz") , emit: vcf + tuple val(meta), path("*.vcf.gz.tbi"), emit: index + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "Sentieon modules do not support Conda. Please use Docker / Singularity / Podman instead." + } + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def sentieon_auth_mech_base64 = task.ext.sentieon_auth_mech_base64 ?: '' + def sentieon_auth_data_base64 = task.ext.sentieon_auth_data_base64 ?: '' + + """ + if [ "\${#SENTIEON_LICENSE_BASE64}" -lt "1500" ]; then # If the string SENTIEON_LICENSE_BASE64 is short, then it is an encrypted url. + export SENTIEON_LICENSE=\$(echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d) + else # Localhost license file + # The license file is stored as a nextflow variable like, for instance, this: + # nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) + export SENTIEON_LICENSE=\$(mktemp) + echo -e "\$SENTIEON_LICENSE_BASE64" | base64 -d > \$SENTIEON_LICENSE + fi + + if [ ${sentieon_auth_mech_base64} ] && [ ${sentieon_auth_data_base64} ]; then + # If sentieon_auth_mech_base64 and sentieon_auth_data_base64 are non-empty strings, then Sentieon is mostly likely being run with some test-license. + export SENTIEON_AUTH_MECH=\$(echo -n "${sentieon_auth_mech_base64}" | base64 -d) + export SENTIEON_AUTH_DATA=\$(echo -n "${sentieon_auth_data_base64}" | base64 -d) + echo "Decoded and exported Sentieon test-license system environment variables" + fi + + sentieon driver \\ + -t $task.cpus \\ + -r $fasta \\ + $args \\ + --algo DNAModelApply \\ + --model $ml_model \\ + -v $vcf \\ + ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + // Exit if running this module with -profile conda / -profile mamba + if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { + error "Sentieon modules do not support Conda. Please use Docker / Singularity / Podman instead." + } + """ + touch ${prefix}.vcf.gz + touch ${prefix}.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g" ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/sentieon/dnamodelapply/meta.yml b/modules/nf-core/sentieon/dnamodelapply/meta.yml new file mode 100644 index 0000000000..ec429bea21 --- /dev/null +++ b/modules/nf-core/sentieon/dnamodelapply/meta.yml @@ -0,0 +1,78 @@ +name: "sentieon_dnamodelapply" +description: modifies the input VCF file by adding the MLrejected FILTER to the variants +keywords: + - dnamodelapply + - vcf + - filter + - sentieon +tools: + - sentieon: + description: | + Sentieon® provides complete solutions for secondary DNA/RNA analysis for a variety of sequencing platforms, including short and long reads. + Our software improves upon BWA, STAR, Minimap2, GATK, HaplotypeCaller, Mutect, and Mutect2 based pipelines and is deployable on any generic-CPU-based computing system. + homepage: https://www.sentieon.com/ + documentation: https://www.sentieon.com/ + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. `[ id:'test' ]` + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. `[ id:'test' ]` + - meta4: + type: map + description: | + Groovy Map containing reference information + e.g. `[ id:'test' ]` + - vcf: + type: file + description: INPUT VCF file + pattern: "*.{vcf,vcf.gz}" + - idx: + type: file + description: Index of the input VCF file + pattern: "*.{tbi}" + - fasta: + type: file + description: Genome fasta file + pattern: "*.{fa,fasta}" + - fai: + type: file + description: Index of the genome fasta file + pattern: "*.fai" + - ml_model: + type: file + description: machine learning model file + pattern: "*.model" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test', single_end:false ]` + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: INPUT VCF file + pattern: "*.{vcf,vcf.gz}" + - index: + type: file + description: Index of the input VCF file + pattern: "*.{tbi}" + +authors: + - "@ramprasadn" From 1f51e30862ce2ae79ce3b81965812a76e9e6db12 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Tue, 19 Sep 2023 19:20:32 +0000 Subject: [PATCH 041/240] Adding tests of dnascope skipping DnaModelApply --- tests/test_sentieon_dnascope_skip_filter.yml | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/test_sentieon_dnascope_skip_filter.yml diff --git a/tests/test_sentieon_dnascope_skip_filter.yml b/tests/test_sentieon_dnascope_skip_filter.yml new file mode 100644 index 0000000000..b07064a663 --- /dev/null +++ b/tests/test_sentieon_dnascope_skip_filter.yml @@ -0,0 +1,81 @@ +- name: Run variant calling on germline sample with sentieon dnascope and skip filter + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --outdir results + tags: + - germline + - sentieon_dnascope_skip_filter + - variant_calling + - sentieon/dnascope + files: + - path: results/csv/variantcalled.csv + md5sum: 10254414c0679ba1fb25e41b9ff548cc + - path: results/multiqc + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.unfiltered.bcftools_stats.txt + md5sum: f915fe1591ababb0da5e7b43dfc35092 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.FILTER.summary + md5sum: 87a84b5f8ac3d3cbeeef7d60afcdbfe7 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.TsTv.count + md5sum: b77c120ee5cc0423267200c67d60c663 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.TsTv.qual + # changes md5sum on reruns. This is somewhat unexpected, but might to tiny variation in very small numbers in the qual-files. + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/sentieon_dnascope + should_exist: false +- name: Run variant calling on germline sample with sentieon dnascope without intervals and skip filter + command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --no_intervals --outdir results + tags: + - germline + - sentieon_dnascope_skip_filter + - no_intervals + - variant_calling + - sentieon/dnascope + files: + - path: results/csv/variantcalled.csv + md5sum: 10254414c0679ba1fb25e41b9ff548cc + - path: results/multiqc + - path: results/no_intervals.bed + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/no_intervals.bed.gz + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/no_intervals.bed.gz.tbi + md5sum: f3dac01ea66b95fe477446fde2d31489 + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.unfiltered.bcftools_stats.txt + md5sum: f915fe1591ababb0da5e7b43dfc35092 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.FILTER.summary + md5sum: 87a84b5f8ac3d3cbeeef7d60afcdbfe7 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.TsTv.count + md5sum: b77c120ee5cc0423267200c67d60c663 + - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.unfiltered.TsTv.qual + # changes md5sum on reruns. This is somewhat unexpected, but might to tiny variation in very small numbers in the qual-files. + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.filtered.vcf.gz.tbi + should_exist: false + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_dnascope/test/test.dnascope.unfiltered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/sentieon_dnascope + should_exist: false From 801b8ebf3d0dc870cd9195c508332ab1aa6768e5 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 06:41:32 +0000 Subject: [PATCH 042/240] Adding sentieon_dnascope_skip_filter --- tests/config/tags.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 53e7c23a0f..66c9a594d6 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -317,8 +317,6 @@ haplotypecaller_skip_filter: ## sentieon/dnascope sentieon/dnascope: - conf/modules/sentieon_dnascope.config - - modules/nf-core/gatk4/cnnscorevariants/main.nf - - modules/nf-core/gatk4/filtervarianttranches/main.nf - modules/nf-core/sentieon/dnascope/main.nf - modules/nf-core/gatk4/mergevcfs/main.nf - modules/nf-core/samtools/index/main.nf @@ -326,10 +324,21 @@ sentieon/dnascope: - subworkflows/local/bam_merge_index_samtools/main.nf - subworkflows/local/bam_variant_calling_germline_all/main.nf - subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf - - subworkflows/local/vcf_variant_filtering_gatk/main.nf - tests/csv/3.0/mapped_single_bam.csv - tests/test_sentieon_dnascope.yml +sentieon_dnascope_skip_filter: + - conf/modules/sentieon_dnascope.config + - modules/nf-core/sentieon/dnascope/main.nf + - modules/nf-core/gatk4/mergevcfs/main.nf + - modules/nf-core/samtools/index/main.nf + - modules/nf-core/samtools/merge/main.nf + - subworkflows/local/bam_merge_index_samtools/main.nf + - subworkflows/local/bam_variant_calling_germline_all/main.nf + - subworkflows/local/bam_variant_calling_sentieon_dnascope/main.nf + - tests/csv/3.0/mapped_single_bam.csv + - tests/test_sentieon_dnascope_skip_filter.yml + ## sentieon/haplotyper sentieon/haplotyper: - conf/modules/sentieon_haplotyper.config From 9ccad29b1bdb8f00fd8898bce6ca8a75820d93c4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 06:49:01 +0000 Subject: [PATCH 043/240] Just triggering tests --- tests/test_sentieon_dnascope_skip_filter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_sentieon_dnascope_skip_filter.yml b/tests/test_sentieon_dnascope_skip_filter.yml index b07064a663..46d6d1de48 100644 --- a/tests/test_sentieon_dnascope_skip_filter.yml +++ b/tests/test_sentieon_dnascope_skip_filter.yml @@ -1,4 +1,4 @@ -- name: Run variant calling on germline sample with sentieon dnascope and skip filter +- name: Run variant calling on germline sample with sentieon dnascope and skip filter foo command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --outdir results tags: - germline From eba764c193d6c966ba02e0abe16f801b64b7f6cf Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 08:40:04 +0000 Subject: [PATCH 044/240] Adding profile software_license and option sentieon_extension to pytests of dnascope --- tests/test_sentieon_dnascope.yml | 8 ++++---- tests/test_sentieon_dnascope_joint_germline.yml | 4 ++-- tests/test_sentieon_dnascope_skip_filter.yml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/test_sentieon_dnascope.yml b/tests/test_sentieon_dnascope.yml index 94835af4a8..e3b4611667 100644 --- a/tests/test_sentieon_dnascope.yml +++ b/tests/test_sentieon_dnascope.yml @@ -1,5 +1,5 @@ - name: Run variant calling on germline sample with sentieons dnascope - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results tags: - germline - sentieon/dnascope @@ -35,7 +35,7 @@ - path: results/dnascope should_exist: false - name: Run variant calling on germline sample with sentieons dnascope without intervals - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --no_intervals --outdir results + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --no_intervals --outdir results tags: - germline - sentieon/dnascope @@ -78,7 +78,7 @@ - path: results/sentieon_dnascope should_exist: false - name: Run variant calling on germline sample with sentieons dnascope output gvcf - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode gvcf + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode gvcf tags: - germline - sentieon/dnascope @@ -116,7 +116,7 @@ - path: results/dnascope should_exist: false - name: Run variant calling on germline sample with sentieons dnascope output both gvcf and vcf - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode variant,gvcf + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --outdir results --sentieon_dnascope_emit_mode variant,gvcf tags: - germline - sentieon/dnascope diff --git a/tests/test_sentieon_dnascope_joint_germline.yml b/tests/test_sentieon_dnascope_joint_germline.yml index a25117b3b9..19f2d41afd 100644 --- a/tests/test_sentieon_dnascope_joint_germline.yml +++ b/tests/test_sentieon_dnascope_joint_germline.yml @@ -1,5 +1,5 @@ - name: Run joint germline variant calling with sentieon dnascope - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf tags: - germline - sentieon_dnascope_joint_germline @@ -28,7 +28,7 @@ - path: results/dnascope should_exist: false - name: Run joint germline variant calling with sentieon dnascope all intervals at once - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf --nucleotides_per_second 100 + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf --nucleotides_per_second 100 tags: - germline - sentieon_dnascope_joint_germline diff --git a/tests/test_sentieon_dnascope_skip_filter.yml b/tests/test_sentieon_dnascope_skip_filter.yml index 46d6d1de48..16bbca9e7c 100644 --- a/tests/test_sentieon_dnascope_skip_filter.yml +++ b/tests/test_sentieon_dnascope_skip_filter.yml @@ -1,5 +1,5 @@ -- name: Run variant calling on germline sample with sentieon dnascope and skip filter foo - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --outdir results +- name: Run variant calling on germline sample with sentieon dnascope and skip filter + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --outdir results tags: - germline - sentieon_dnascope_skip_filter @@ -36,7 +36,7 @@ - path: results/sentieon_dnascope should_exist: false - name: Run variant calling on germline sample with sentieon dnascope without intervals and skip filter - command: nextflow run main.nf -profile test_cache,targeted --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --no_intervals --outdir results + command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools sentieon_dnascope --step variant_calling --skip_tools dnascope_filter --no_intervals --outdir results tags: - germline - sentieon_dnascope_skip_filter From ce1ed239f19f90b0b23cc13e0b247366e33f6301 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Wed, 20 Sep 2023 10:57:55 +0100 Subject: [PATCH 045/240] moving changes to dev part of changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72af6bc8aa..1e5c6a501b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## dev - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev +- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module ### Added @@ -63,7 +64,6 @@ Rapaselet is a delta formed by the Rapaätno river between the Bielloriehppe mas - [#1173](https://github.com/nf-core/sarek/pull/1173) - CI tests for VQSR track with stub runs - [#1122](https://github.com/nf-core/sarek/pull/1122), [#1196](https://github.com/nf-core/sarek/pull/1196) - Add `annotation cache` functionality - [#1184](https://github.com/nf-core/sarek/pull/1184) - Stub-based CI-test of Sentieon joint-germline variant-calling with VQSR -- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module ### Changed From 9b336420505069c4cbfd3c709386e475bd2be631 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Wed, 20 Sep 2023 10:58:19 +0100 Subject: [PATCH 046/240] updating cnvkit and bioconda version --- modules/nf-core/cnvkit/genemetrics/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/cnvkit/genemetrics/main.nf b/modules/nf-core/cnvkit/genemetrics/main.nf index d21c5b6977..99aad4a29e 100644 --- a/modules/nf-core/cnvkit/genemetrics/main.nf +++ b/modules/nf-core/cnvkit/genemetrics/main.nf @@ -2,7 +2,7 @@ process CNVKIT_GENEMETRICS { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.9 bioconda::samtools=1.16.1" + conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': 'quay.io/biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" From e9beaef44b276fa48d3089d6eccf1c0c09aa218a Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Wed, 20 Sep 2023 10:58:33 +0100 Subject: [PATCH 047/240] collecting versions --- subworkflows/local/bam_variant_calling_cnvkit/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_cnvkit/main.nf b/subworkflows/local/bam_variant_calling_cnvkit/main.nf index 94674af960..a1c8ac80a5 100644 --- a/subworkflows/local/bam_variant_calling_cnvkit/main.nf +++ b/subworkflows/local/bam_variant_calling_cnvkit/main.nf @@ -21,7 +21,8 @@ workflow BAM_VARIANT_CALLING_CNVKIT { CNVKIT_BATCH(cram, fasta, fasta_fai, targets, reference, generate_pon) CNVKIT_GENEMETRICS(CNVKIT_BATCH.out.cnr, CNVKIT_BATCH.out.cns) - versions = CNVKIT_BATCH.out.versions + versions = versions.mix(CNVKIT_BATCH.out.versions) + versions = versions.mix(CNVKIT_GENEMETRICS.out.versions) emit: versions // channel: [ versions.yml ] From ef3997d46387b4ab9de77e649cfb8e6d6429850c Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 10:54:55 +0000 Subject: [PATCH 048/240] Fixing prefix for SENTIEON_DNAMODELAPPLY --- conf/modules/sentieon_dnascope.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules/sentieon_dnascope.config b/conf/modules/sentieon_dnascope.config index 3f9b181217..fa431ae417 100644 --- a/conf/modules/sentieon_dnascope.config +++ b/conf/modules/sentieon_dnascope.config @@ -57,7 +57,7 @@ process { } withName: 'SENTIEON_DNAMODELAPPLY' { - ext.prefix = {"${meta.id}.dnamodelapply"} + ext.prefix = {"${meta.id}.dnascope.filtered"} publishDir = [ mode: params.publish_dir_mode, path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/"}, From a4d7dd2adb9c4281da036145f5a96579a077597c Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 10:55:36 +0000 Subject: [PATCH 049/240] Updating md5sums --- tests/test_sentieon_dnascope.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_sentieon_dnascope.yml b/tests/test_sentieon_dnascope.yml index e3b4611667..f51e0bca72 100644 --- a/tests/test_sentieon_dnascope.yml +++ b/tests/test_sentieon_dnascope.yml @@ -19,7 +19,7 @@ - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt md5sum: 912c7d5b31784c50e0a75b4fcfa4997b - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary - md5sum: ce2769af8f853b93d9e16b6493fc7e0d + md5sum: e67b24d296810a075378e5864bcea0fa - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count md5sum: b77c120ee5cc0423267200c67d60c663 - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual @@ -62,7 +62,7 @@ - path: results/reports/bcftools/sentieon_dnascope/test/test.dnascope.filtered.bcftools_stats.txt md5sum: 912c7d5b31784c50e0a75b4fcfa4997b - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.FILTER.summary - md5sum: ce2769af8f853b93d9e16b6493fc7e0d + md5sum: e67b24d296810a075378e5864bcea0fa - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.count md5sum: b77c120ee5cc0423267200c67d60c663 - path: results/reports/vcftools/sentieon_dnascope/test/test.dnascope.filtered.TsTv.qual From a7436c590a53c44a53f53f3222244a6f17ab18a9 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 10:56:09 +0000 Subject: [PATCH 050/240] Removing comment --- .../local/bam_variant_calling_germline_all/main.nf | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index 73a6e4c901..5989023adf 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -245,18 +245,6 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { vcf_sentieon_dnascope = SENTIEON_DNAMODELAPPLY.out.vcf versions = versions.mix(SENTIEON_DNAMODELAPPLY.out.versions) - // TO-DO: Figure out whether it should be possible to also run VCF_VARIANT_FILTERING_GATK here. - // VCF_VARIANT_FILTERING_GATK( - // vcf_sentieon_dnascope.join(vcf_tbi_sentieon_dnascope, failOnDuplicate: true, failOnMismatch: true), - // fasta, - // fasta_fai, - // dict.map{ meta, dict -> [ dict ] }, - // intervals_bed_combined_haplotypec, - // known_sites_indels.concat(known_sites_snps).flatten().unique().collect(), - // known_sites_indels_tbi.concat(known_sites_snps_tbi).flatten().unique().collect()) - - // vcf_sentieon_dnascope = VCF_VARIANT_FILTERING_GATK.out.filtered_vcf - // versions = versions.mix(VCF_VARIANT_FILTERING_GATK.out.versions) } } From 235d7843b5c99b1d2f3269acc5483691e34650d6 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 11:55:53 +0000 Subject: [PATCH 051/240] Updating changelog with PR for Sentieon DnaScope --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 793e005802..8d17ccf405 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev ### Added +- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. ### Changed From 5cb89c17974c21fc2f222bc08797cc7b697b3354 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 13:00:17 +0000 Subject: [PATCH 052/240] Adding test of Sentieon VQSR not running for Sentieon DnaScope --- .../test_sentieon_dnascope_joint_germline.yml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/test_sentieon_dnascope_joint_germline.yml b/tests/test_sentieon_dnascope_joint_germline.yml index 19f2d41afd..910043bafb 100644 --- a/tests/test_sentieon_dnascope_joint_germline.yml +++ b/tests/test_sentieon_dnascope_joint_germline.yml @@ -54,3 +54,37 @@ - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi - path: results/dnascope should_exist: false +- name: Run joint germline variant calling with sentieon dnascope with stub + command: nextflow run main.nf -profile test_cache,software_license,tools_germline --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf -stub-run + tags: + - germline + - sentieon_dnascope_joint_germline + - variant_calling + files: + - path: results/csv/variantcalled.csv + md5sum: 62d70060aad96337254efe2d7a1df170 + - path: results/multiqc + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.bcftools_stats.txt + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.FILTER.summary + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.count + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.qual + should_exist: false + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz.tbi + should_exist: false + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz.tbi + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz + - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi + - path: results/dnascope + should_exist: false From 45e961ae8b4d074aa1c96efbcc720bfc2f6663c2 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 13:23:19 +0000 Subject: [PATCH 053/240] prettier --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d17ccf405..d75378f9a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev ### Added + - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. ### Changed From c1c7c6ee2edb05dd567669be005df004a5b4f767 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 13:31:07 +0000 Subject: [PATCH 054/240] Adding info concerning DNAscope. Also other minor improvements to the docs. --- docs/output.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++---- docs/usage.md | 6 ++++-- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/docs/output.md b/docs/output.md index 9f90bac28c..cb721b5423 100644 --- a/docs/output.md +++ b/docs/output.md @@ -31,6 +31,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [DeepVariant](#deepvariant) - [FreeBayes](#freebayes) - [GATK HaplotypeCaller](#gatk-haplotypecaller) + - [Sentieon DNAscope](#sentieon-dnascope) - [Sentieon Haplotyper](#sentieon-haplotyper) - [GATK Mutect2](#gatk-mutect2) - [bcftools](#bcftools) @@ -437,6 +438,34 @@ Files created: +#### Sentieon DNAscope + +[Sentieon DNAscope](https://support.sentieon.com/appnotes/dnascope_ml/#dnascope-germline-variant-calling-with-a-machine-learning-model) is a variant-caller which aims at outperforming GATK's Haplotypecaller in terms of both speed and accuracy. DNAscope allows you to use a machine learning model to perform variant calling with higher accuracy by improving the candidate detection and filtering. + +
+Unfiltered VCF-files for normal samples + +**Output directory: `{outdir}/variantcalling/sentieon_dnascope//`** + +- `.dnascope.unfiltered.vcf.gz` and `.dnascope.unfiltered.vcf.gz.tbi` + - VCF with tabix index + +
+ +The output from Sentieon's DNAscope can be controlled through the option `--sentieon_dnascope_emit_mode` for Sarek, see [Basic usage of Sentieon functions](#basic-usage-of-sentieon-functions). + +Unless `dnascope_filter` is listed under `--skip_tools` in the nextflow command, Sentieon's [DNAModelApply](https://support.sentieon.com/manual/usages/general/#dnamodelapply-algorithm) is applied to the unfiltered VCF-files in order to obtain filtered VCF-files. + +
+Filtered VCF-files for normal samples + +**Output directory: `{outdir}/variantcalling/sentieon_dnascope//`** + +- `.dnascope.filtered.vcf.gz` and `.dnascope.filtered.vcf.gz.tbi` + - VCF with tabix index + +
+ #### Sentieon Haplotyper [Sentieon Haplotyper](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) is Sention's speedup version of GATK's Haplotypecaller (see above). @@ -451,7 +480,7 @@ Files created: -The output from Sentieon's Haplotyper can be controlled through the option `--sentieon_haplotyper_emit_mode` for Sarek, see [Basic usage of Sentieon functions in Sarek](#basic-usage-of-sentieon-functions-in-sarek). +The output from Sentieon's Haplotyper can be controlled through the option `--sentieon_haplotyper_emit_mode` for Sarek, see [Basic usage of Sentieon functions](#basic-usage-of-sentieon-functions). Unless `haplotyper_filter` is listed under `--skip_tools` in the nextflow command, GATK's CNNScoreVariants and FilterVariantTranches (see above) is applied to the unfiltered VCF-files in order to obtain filtered VCF-files. @@ -465,16 +494,35 @@ Unless `haplotyper_filter` is listed under `--skip_tools` in the nextflow comman -##### Sentieon Joint Germline Variant Calling +##### Joint Germline Variant Calling with Sentieon's DNAscope -In Sentieon's package DNAseq, joint germline variant calling is done by first running Sentieon's Haplotyper in emit-mode `gvcf` for each sample and then running Sentieon's [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) on the set of gVCF-files. See [Basic usage of Sentieon functions in Sarek](#basic-usage-of-sentieon-functions-in-sarek) for information on how joint germline variant calling can be done in Sarek using Sentieon's DNAseq. After joint genotyping, Sentieon's version of VQSR ([VarCal](https://support.sentieon.com/manual/usages/general/#varcal-algorithm) and [ApplyVarCal](https://support.sentieon.com/manual/usages/general/#applyvarcal-algorithm)) is applied for filtering to produce the final multisample callset with the desired balance of precision and sensitivity. +In Sentieon's package DNAscope, joint germline variant calling is done by first running Sentieon's Dnacope in emit-mode `gvcf` for each sample and then running Sentieon's [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) on the set of gVCF-files. See [Basic usage of Sentieon functions](#basic-usage-of-sentieon-functions) for information on how joint germline variant calling can be done in Sarek using Sentieon's DNAscope. + +
+Output files from joint germline variant calling + +**Output directory: `{outdir}/variantcalling/sentieon_dnascope//`** + +- `.dnascope.g.vcf.gz` and `.dnascope.g.vcf.gz.tbi` + - VCF with tabix index + +**Output directory: `{outdir}/variantcalling/sentieon_dnascope/joint_variant_calling/`** + +- `joint_germline.vcf.gz` and `joint_germline.vcf.gz.tbi` + - VCF with tabix index + +
+ +##### Joint Germline Variant Calling with Sentieon's DNAseq + +In Sentieon's package DNAseq, joint germline variant calling is done by first running Sentieon's Haplotyper in emit-mode `gvcf` for each sample and then running Sentieon's [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) on the set of gVCF-files. See [Basic usage of Sentieon functions](#basic-usage-of-sentieon-functions) for information on how joint germline variant calling can be done in Sarek using Sentieon's DNAseq. After joint genotyping, Sentieon's version of VQSR ([VarCal](https://support.sentieon.com/manual/usages/general/#varcal-algorithm) and [ApplyVarCal](https://support.sentieon.com/manual/usages/general/#applyvarcal-algorithm)) is applied for filtering to produce the final multisample callset with the desired balance of precision and sensitivity.
Output files from joint germline variant calling **Output directory: `{outdir}/variantcalling/sentieon_haplotyper//`** -- `.haplotypecaller.g.vcf.gz` and `.haplotypecaller.g.vcf.gz.tbi` +- `.haplotyper.g.vcf.gz` and `.haplotyper.g.vcf.gz.tbi` - VCF with tabix index **Output directory: `{outdir}/variantcalling/sentieon_haplotyper/joint_variant_calling/`** diff --git a/docs/usage.md b/docs/usage.md index 94ec009d96..9c9f4084da 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1083,9 +1083,11 @@ To use Sentieon's aligner `bwa mem`, set the aligner option `sentieon-bwamem`. ( To use Sentieon's function `Dedup`, specify `sentieon_dedup` as one of the tools. (This can, for example, be done by adding `--tools sentieon_dedup` to the nextflow run command.) -To use Sentieon's function `Haplotyper`, specify `sentieon_haplotyper` as one of the tools. This can, for example, be done by adding `--tools sentieon_haplotyper` to the nextflow run command. In order to skip the GATK-based variant-filter, one may add `--skip_tools haplotyper_filter` to the nextflow run command. Sarek also provides the option `sentieon_haplotyper_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) of Sentieon's haplotyper. Sentieon's haplotyper can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_haplotyper_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. +To use Sentieon's function `DNAscope`, specify `sentieon_dnascope` as one of the tools. This can, for example, be done by adding `--tools sentieon_dnascope` to the nextflow run command. In order to skip Sentieon's variant-filter `DNAModelApply`, one may add `--skip_tools dnascope_filter` to the nextflow run command. Sarek also provides the option `sentieon_dnascope_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#dnascope-algorithm) of Sentieon's dnascope. Sentieon's dnascope can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_dnascope_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. -To use Sentieon's function `GVCFtyper` along with Sention's version of VQSR (`VarCal` and `ApplyVarCal`) for joint-germline genotyping, specify `sentieon_haplotyper` as one of the tools, set the option `sentieon_haplotyper_emit_mode` to `gvcf`, and add the option `joint_germline`. This can, for example, be done by adding `--tools sentieon_haplotyper --joint_germline --sentieon_haplotyper_emit_mode gvcf` to the nextflow run command. +Sentieon's function `Haplotyper` is used in much the same way as `DNAscope`. To use Sentieon's function `Haplotyper`, specify `sentieon_haplotyper` as one of the tools. This can, for example, be done by adding `--tools sentieon_haplotyper` to the nextflow run command. In order to skip the GATK-based variant-filter, one may add `--skip_tools haplotyper_filter` to the nextflow run command. Sarek also provides the option `sentieon_haplotyper_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) of Sentieon's haplotyper. Sentieon's haplotyper can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_haplotyper_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. + +To use Sentieon's function `GVCFtyper` along with Sention's version of VQSR (`VarCal` and `ApplyVarCal`) for joint-germline genotyping, specify `sentieon_haplotyper` as one of the tools, set the option `sentieon_haplotyper_emit_mode` to `gvcf`, and add the option `joint_germline`. This can, for example, be done by adding `--tools sentieon_haplotyper --joint_germline --sentieon_haplotyper_emit_mode gvcf` to the nextflow run command. If `sentieon_dnascope` is chosen instead of `sentieon_haplotyper`, then Sention's version of VQSR is skipped, as recommended by Sentieon. ### Joint germline variant calling From cfeb7625402121be0a0fe78eccbabe898a5a06eb Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 20 Sep 2023 18:49:12 +0000 Subject: [PATCH 055/240] Removing redundant test --- .../test_sentieon_dnascope_joint_germline.yml | 54 ++++++------------- 1 file changed, 16 insertions(+), 38 deletions(-) diff --git a/tests/test_sentieon_dnascope_joint_germline.yml b/tests/test_sentieon_dnascope_joint_germline.yml index 910043bafb..e905b9cd53 100644 --- a/tests/test_sentieon_dnascope_joint_germline.yml +++ b/tests/test_sentieon_dnascope_joint_germline.yml @@ -9,10 +9,6 @@ - path: results/csv/variantcalled.csv md5sum: 62d70060aad96337254efe2d7a1df170 - path: results/multiqc - - path: results/preprocessing/recalibrated/test/test.recal.cram - should_exist: false - - path: results/preprocessing/recalibrated/test/test.recal.cram.crai - should_exist: false - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline.bcftools_stats.txt - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.FILTER.summary - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline.TsTv.count @@ -27,6 +23,22 @@ - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi - path: results/dnascope should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.bcftools_stats.txt + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.FILTER.summary + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.count + should_exist: false + - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.qual + should_exist: false + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz + should_exist: false + - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz.tbi + should_exist: false - name: Run joint germline variant calling with sentieon dnascope all intervals at once command: nextflow run main.nf -profile test_cache,targeted,software_license --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf --nucleotides_per_second 100 tags: @@ -54,37 +66,3 @@ - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi - path: results/dnascope should_exist: false -- name: Run joint germline variant calling with sentieon dnascope with stub - command: nextflow run main.nf -profile test_cache,software_license,tools_germline --sentieon_extension --input ./tests/csv/3.0/mapped_joint_bam.csv --tools sentieon_dnascope --step variant_calling --joint_germline --outdir results --sentieon_dnascope_emit_mode gvcf -stub-run - tags: - - germline - - sentieon_dnascope_joint_germline - - variant_calling - files: - - path: results/csv/variantcalled.csv - md5sum: 62d70060aad96337254efe2d7a1df170 - - path: results/multiqc - - path: results/preprocessing/recalibrated/test/test.recal.cram - should_exist: false - - path: results/preprocessing/recalibrated/test/test.recal.cram.crai - should_exist: false - - path: results/reports/bcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.bcftools_stats.txt - should_exist: false - - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.FILTER.summary - should_exist: false - - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.count - should_exist: false - - path: results/reports/vcftools/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.TsTv.qual - should_exist: false - - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz - - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline.vcf.gz.tbi - - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz - should_exist: false - - path: results/variant_calling/sentieon_dnascope/joint_variant_calling/joint_germline_recalibrated.vcf.gz.tbi - should_exist: false - - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz - - path: results/variant_calling/sentieon_dnascope/testN/testN.dnascope.g.vcf.gz.tbi - - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz - - path: results/variant_calling/sentieon_dnascope/testT/testT.dnascope.g.vcf.gz.tbi - - path: results/dnascope - should_exist: false From 94ca07de973bfcdd38bef8996497b1c956405fd0 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sun, 24 Sep 2023 20:21:23 +0000 Subject: [PATCH 056/240] Add NGSCheckMate --- conf/modules/ngscheckmate.config | 12 +++ modules.json | 12 ++- modules/nf-core/ngscheckmate/ncm/main.nf | 64 +++++++++++++++ modules/nf-core/ngscheckmate/ncm/meta.yml | 77 +++++++++++++++++++ nextflow.config | 6 ++ nextflow_schema.json | 6 ++ subworkflows/local/cram_sampleqc/main.nf | 30 ++++++++ subworkflows/nf-core/bam_ngscheckmate/main.nf | 49 ++++++++++++ .../nf-core/bam_ngscheckmate/meta.yml | 67 ++++++++++++++++ workflows/sarek.nf | 7 ++ 10 files changed, 329 insertions(+), 1 deletion(-) create mode 100644 conf/modules/ngscheckmate.config create mode 100644 modules/nf-core/ngscheckmate/ncm/main.nf create mode 100644 modules/nf-core/ngscheckmate/ncm/meta.yml create mode 100644 subworkflows/local/cram_sampleqc/main.nf create mode 100644 subworkflows/nf-core/bam_ngscheckmate/main.nf create mode 100644 subworkflows/nf-core/bam_ngscheckmate/meta.yml diff --git a/conf/modules/ngscheckmate.config b/conf/modules/ngscheckmate.config new file mode 100644 index 0000000000..a8190a3d64 --- /dev/null +++ b/conf/modules/ngscheckmate.config @@ -0,0 +1,12 @@ +process { + withName: ".*BAM_NGSCHECKMATE:BCFTOOLS_MPILEUP" { + ext.when = true + ext.args2 = '--no-version --ploidy 1 -c' + ext.args3 = '--no-version' + } + + withName: ".*BAM_NGSCHECKMATE:NGSCHECKMATE_NCM" { + ext.args = '-V' + } + +} diff --git a/modules.json b/modules.json index 1837c6d402..789d1a4015 100644 --- a/modules.json +++ b/modules.json @@ -18,7 +18,7 @@ "bcftools/mpileup": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": ["bam_ngscheckmate", "modules"] }, "bcftools/sort": { "branch": "master", @@ -322,6 +322,11 @@ "git_sha": "a6e11ac655e744f7ebc724be669dd568ffdc0e80", "installed_by": ["modules"] }, + "ngscheckmate/ncm": { + "branch": "master", + "git_sha": "32d6725f584ebf460de39b7c1c53a29d5384d697", + "installed_by": ["bam_ngscheckmate"] + }, "samblaster": { "branch": "master", "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", @@ -461,6 +466,11 @@ }, "subworkflows": { "nf-core": { + "bam_ngscheckmate": { + "branch": "master", + "git_sha": "32d6725f584ebf460de39b7c1c53a29d5384d697", + "installed_by": ["subworkflows"] + }, "vcf_annotate_ensemblvep": { "branch": "master", "git_sha": "dedc0e31087f3306101c38835d051bf49789445a", diff --git a/modules/nf-core/ngscheckmate/ncm/main.nf b/modules/nf-core/ngscheckmate/ncm/main.nf new file mode 100644 index 0000000000..28fab8f096 --- /dev/null +++ b/modules/nf-core/ngscheckmate/ncm/main.nf @@ -0,0 +1,64 @@ +process NGSCHECKMATE_NCM { + label 'process_low' + + conda "bioconda::ngscheckmate=1.0.1" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ngscheckmate:1.0.1--py27pl5321r40hdfd78af_1': + 'biocontainers/ngscheckmate:1.0.1--py27pl5321r40hdfd78af_1' }" + + input: + tuple val(meta) , path(files) + tuple val(meta2), path(snp_bed) + tuple val(meta3), path(fasta) + + output: + tuple val(meta), path("*_corr_matrix.txt"), emit: corr_matrix + tuple val(meta), path("*_matched.txt") , emit: matched + tuple val(meta), path("*_all.txt") , emit: all + tuple val(meta), path("*.pdf") , emit: pdf, optional: true + tuple val(meta), path("*.vcf") , emit: vcf, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "$meta.id" + def unzip = files.any { it.toString().endsWith(".vcf.gz") } + """ + if $unzip + then + for VCFGZ in *.vcf.gz; do + gunzip -cdf \$VCFGZ > \$( basename \$VCFGZ .gz ); + done + fi + + NCM_REF="./"${fasta} ncm.py -d . -bed ${snp_bed} -O . -N ${prefix} $args + + if $unzip + then + rm -f *.vcf # clean up decompressed vcfs + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ngscheckmate: \$(ncm.py --help | sed "7!d;s/ *Ensuring Sample Identity v//g") + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "$meta.id" + """ + touch ${prefix}_output_corr_matrix.txt + touch ${prefix}_matched.txt + touch ${prefix}_all.txt + touch ${prefix}.pdf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ngscheckmate: \$(ncm.py --help | sed "7!d;s/ *Ensuring Sample Identity v//g") + END_VERSIONS + """ + +} diff --git a/modules/nf-core/ngscheckmate/ncm/meta.yml b/modules/nf-core/ngscheckmate/ncm/meta.yml new file mode 100644 index 0000000000..024f031485 --- /dev/null +++ b/modules/nf-core/ngscheckmate/ncm/meta.yml @@ -0,0 +1,77 @@ +name: ngscheckmate_ncm +description: Determining whether sequencing data comes from the same individual by using SNP matching. Designed for humans on vcf or bam files. +keywords: + - ngscheckmate + - matching + - snp +tools: + - ngscheckmate: + description: NGSCheckMate is a software package for identifying next generation sequencing (NGS) data files from the same individual, including matching between DNA and RNA. + homepage: https://github.com/parklab/NGSCheckMate + documentation: https://github.com/parklab/NGSCheckMate + tool_dev_url: https://github.com/parklab/NGSCheckMate + doi: "10.1093/nar/gkx193" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - files: + type: file + description: VCF or BAM files for each sample, in a merged channel (possibly gzipped). BAM files require an index too. + pattern: "*.{vcf,vcf.gz,bam,bai}" + - meta2: + type: map + description: | + Groovy Map containing SNP information + e.g. [ id:'test' ] + - snp_bed: + type: file + description: BED file containing the SNPs to analyse + pattern: "*.{bed}" + - meta3: + type: map + description: | + Groovy Map containing reference fasta index information + e.g. [ id:'test' ] + - fasta: + type: file + description: fasta file for the genome, only used in the bam mode + pattern: "*.{bed}" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - pdf: + type: file + description: A pdf containing a dendrogram showing how the samples match up + pattern: "*.{pdf}" + + - corr_matrix: + type: file + description: A text file containing the correlation matrix between each sample + pattern: "*corr_matrix.txt" + + - matched: + type: file + description: A txt file containing only the samples that match with each other + pattern: "*matched.txt" + + - all: + type: file + description: A txt file containing all the sample comparisons, whether they match or not + pattern: "*all.txt" + + - vcf: + type: file + description: If ran in bam mode, vcf files for each sample giving the SNP calls used + pattern: "*.vcf" + +authors: + - "@sppearce" diff --git a/nextflow.config b/nextflow.config index b690b6e959..834ba1fec9 100644 --- a/nextflow.config +++ b/nextflow.config @@ -93,6 +93,9 @@ params { vep_spliceai = null // spliceai plugin disabled within VEP vep_spliceregion = null // spliceregion plugin disabled within VEP + // NGSCheckMate + ngscheckmate_bed = null + // MultiQC options multiqc_config = null multiqc_title = null @@ -381,6 +384,9 @@ includeConfig 'conf/modules/post_variant_calling.config' //annotate includeConfig 'conf/modules/annotate.config' +//ngscheckmate +includeConfig 'conf/modules/ngscheckmate.config' + // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/nextflow_schema.json b/nextflow_schema.json index 03ae8c15df..0db8e32c31 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -716,6 +716,12 @@ "hidden": true, "help_text": "If you use AWS iGenomes, this has already been set for you appropriately." }, + "ngscheckmate_bed": { + "type": "string", + "fa_icon": "fas fa-file", + "description": "Path to SNP bed file for sample checking with NGSCheckMate", + "help_text": "If you use AWS iGenomes, this has already been set for you appropriately." + }, "snpeff_db": { "type": "string", "fa_icon": "fas fa-database", diff --git a/subworkflows/local/cram_sampleqc/main.nf b/subworkflows/local/cram_sampleqc/main.nf new file mode 100644 index 0000000000..3e3b06f008 --- /dev/null +++ b/subworkflows/local/cram_sampleqc/main.nf @@ -0,0 +1,30 @@ +include { BAM_NGSCHECKMATE } from '../../../subworkflows/nf-core/bam_ngscheckmate/main' + +workflow CRAM_SAMPLEQC { + + take: + ch_cram // channel: [ val(meta), cram, crai ] + ngscheckmate_bed // channel: [ ngscheckmate_bed ] + fasta // channel: [ fasta ] + + main: + + ch_versions = Channel.empty() + + ch_ngscheckmate_bed = ngscheckmate_bed.map{bed -> [[id: "ngscheckmate"], bed]} + + ch_fasta = fasta.map{fasta -> [[id: "genome"], fasta]} + + BAM_NGSCHECKMATE ( ch_cram.map{meta, cram, crai -> [meta, cram]}, ch_ngscheckmate_bed, ch_fasta) + ch_versions = ch_versions.mix(BAM_NGSCHECKMATE.out.versions.first()) + + emit: + corr_matrix = BAM_NGSCHECKMATE.out.corr_matrix // channel: [ meta, corr_matrix ] + matched = BAM_NGSCHECKMATE.out.matched // channel: [ meta, matched ] + all = BAM_NGSCHECKMATE.out.all // channel: [ meta, all ] + vcf = BAM_NGSCHECKMATE.out.vcf // channel: [ meta, vcf ] + pdf = BAM_NGSCHECKMATE.out.pdf // channel: [ meta, pdf ] + + versions = ch_versions // channel: [ versions.yml ] +} + diff --git a/subworkflows/nf-core/bam_ngscheckmate/main.nf b/subworkflows/nf-core/bam_ngscheckmate/main.nf new file mode 100644 index 0000000000..c471197db2 --- /dev/null +++ b/subworkflows/nf-core/bam_ngscheckmate/main.nf @@ -0,0 +1,49 @@ +include { BCFTOOLS_MPILEUP } from '../../../modules/nf-core/bcftools/mpileup/main' +include { NGSCHECKMATE_NCM } from '../../../modules/nf-core/ngscheckmate/ncm/main' + +workflow BAM_NGSCHECKMATE { + + take: + ch_input // channel: [ val(meta1), bam/cram ] + ch_snp_bed // channel: [ val(meta2), bed ] + ch_fasta // channel: [ val(meta3), fasta ] + + main: + + ch_versions = Channel.empty() + + ch_input_bed = ch_input.combine(ch_snp_bed.collect()) + // do something to combine the metas? + .map{ input_meta, input_file, bed_meta, bed_file -> + [input_meta, input_file, bed_file] + } + + BCFTOOLS_MPILEUP (ch_input_bed, ch_fasta.collect().map{it[1]}, false) + ch_versions = ch_versions.mix(BCFTOOLS_MPILEUP.out.versions) + + BCFTOOLS_MPILEUP + .out + .vcf + .map{meta, vcf -> vcf} // discard individual metas + .collect() // group into one channel + .map{files -> [files]} // make the channel into [vcf1, vcf2, ...] + .set {ch_collected_vcfs} + + ch_snp_bed + .map{meta, bed -> meta} // use the snp_bed file meta as the meta for the merged channel + .combine(ch_collected_vcfs) // add the vcf files after the meta, now looks like [meta, [vcf1, vcf2, ... ] ] + .set {ch_vcfs} + + NGSCHECKMATE_NCM (ch_vcfs, ch_snp_bed, ch_fasta) + ch_versions = ch_versions.mix(NGSCHECKMATE_NCM.out.versions) + + emit: + corr_matrix = NGSCHECKMATE_NCM.out.corr_matrix // channel: [ meta, corr_matrix ] + matched = NGSCHECKMATE_NCM.out.matched // channel: [ meta, matched ] + all = NGSCHECKMATE_NCM.out.all // channel: [ meta, all ] + vcf = BCFTOOLS_MPILEUP.out.vcf // channel: [ meta, vcf ] + pdf = NGSCHECKMATE_NCM.out.pdf // channel: [ meta, pdf ] + versions = ch_versions // channel: [ versions.yml ] + +} + diff --git a/subworkflows/nf-core/bam_ngscheckmate/meta.yml b/subworkflows/nf-core/bam_ngscheckmate/meta.yml new file mode 100644 index 0000000000..a3a1ab6e4a --- /dev/null +++ b/subworkflows/nf-core/bam_ngscheckmate/meta.yml @@ -0,0 +1,67 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "bam_ngscheckmate" +description: Take a set of bam files and run NGSCheckMate to determine whether samples match with each other, using a set of SNPs. +keywords: + - ngscheckmate + - qc + - bam + - snp +components: + - bcftools/mpileup + - ngscheckmate/ncm +input: + - meta1: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - bam: + type: file + description: BAM files for each sample + pattern: "*.{bam}" + - meta2: + type: map + description: | + Groovy Map containing bed file information + e.g. [ id:'sarscov2' ] + - snp_bed: + type: file + description: BED file containing the SNPs to analyse. NGSCheckMate provides some default ones for hg19/hg38. + pattern: "*.{bed}" + - meta3: + type: map + description: | + Groovy Map containing reference genome meta information + e.g. [ id:'sarscov2' ] + - fasta: + type: file + description: fasta file for the genome + pattern: "*.{fasta}" + +output: + - pdf: + type: file + description: A pdf containing a dendrogram showing how the samples match up + pattern: "*.{pdf}" + - corr_matrix: + type: file + description: A text file containing the correlation matrix between each sample + pattern: "*corr_matrix.txt" + - matched: + type: file + description: A txt file containing only the samples that match with each other + pattern: "*matched.txt" + - all: + type: file + description: A txt file containing all the sample comparisons, whether they match or not + pattern: "*all.txt" + - vcf: + type: file + description: vcf files for each sample giving the SNP calls + pattern: "*.vcf" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@SPPearce" diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 13a2d8d73b..0b040db921 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -48,6 +48,7 @@ def checkPathParamList = [ params.known_snps_tbi, params.mappability, params.multiqc_config, + params.ngscheckmate_bed, params.pon, params.pon_tbi, params.spliceai_indel, @@ -317,6 +318,7 @@ ascat_genome = params.ascat_genome ?: Channel.empty() dbsnp_vqsr = params.dbsnp_vqsr ? Channel.value(params.dbsnp_vqsr) : Channel.empty() known_indels_vqsr = params.known_indels_vqsr ? Channel.value(params.known_indels_vqsr) : Channel.empty() known_snps_vqsr = params.known_snps_vqsr ? Channel.value(params.known_snps_vqsr) : Channel.empty() +ngscheckmate_bed = params.ngscheckmate_bed ? Channel.value(params.ngscheckmate_bed) : Channel.empty() snpeff_db = params.snpeff_db ?: Channel.empty() vep_cache_version = params.vep_cache_version ?: Channel.empty() vep_genome = params.vep_genome ?: Channel.empty() @@ -442,6 +444,9 @@ include { POST_VARIANTCALLING } from '../subworkflows/lo // QC on VCF files include { VCF_QC_BCFTOOLS_VCFTOOLS } from '../subworkflows/local/vcf_qc_bcftools_vcftools/main' +// Sample QC on CRAM files +include { CRAM_SAMPLEQC } from '../subworkflows/local/cram_sampleqc/main' + // Annotation include { VCF_ANNOTATE_ALL } from '../subworkflows/local/vcf_annotate_all/main' @@ -1056,6 +1061,8 @@ workflow SAREK { if (params.step == 'annotate') cram_variant_calling = Channel.empty() + CRAM_SAMPLEQC(cram_variant_calling, ngscheckmate_bed, fasta) + // // Logic to separate germline samples, tumor samples with no matched normal, and combine tumor-normal pairs // From 21d38a295b1972c544ceb8d4c04628175133c3ba Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sun, 24 Sep 2023 20:23:59 +0000 Subject: [PATCH 057/240] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 793e005802..43f1ea1d42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [] Added NGSCheckMate tool for checking that samples come from the same individual + ### Changed ### Fixed From 2e72d1cda27e4fa3b235aedc3e5e1c40235e408c Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 25 Sep 2023 06:06:45 +0000 Subject: [PATCH 058/240] Update tools list for sampleqc --- conf/igenomes.config | 4 ++++ conf/modules/ngscheckmate.config | 2 +- nextflow_schema.json | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index 0e68dfee19..633aa87f1e 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -35,6 +35,7 @@ params { known_indels_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.gz.tbi" known_indels_vqsr = '--resource:1000G,known=false,training=true,truth=true,prior=10.0 1000G_phase1.indels.b37.vcf.gz --resource:mills,known=false,training=true,truth=true,prior=10.0 Mills_and_1000G_gold_standard.indels.b37.vcf.gz' mappability = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/Control-FREEC/out100m2_hg19.gem" + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh37_hg19_wChr.bed" snpeff_db = 87 snpeff_genome = 'GRCh37' vep_cache_version = 110 @@ -68,6 +69,7 @@ params { known_indels_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" known_indels_vqsr = '--resource:gatk,known=false,training=true,truth=true,prior=10.0 Homo_sapiens_assembly38.known_indels.vcf.gz --resource:mills,known=false,training=true,truth=true,prior=10.0 Mills_and_1000G_gold_standard.indels.hg38.vcf.gz' mappability = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/Control-FREEC/out100m2_hg38.gem" + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" pon = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz" pon_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz.tbi" snpeff_db = 105 @@ -79,6 +81,7 @@ params { 'Ensembl.GRCh37' { bwa = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BWAIndex/version0.6.0/" fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh37_hg19_woChr.bed" readme = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/README.txt" snpeff_db = 87 snpeff_genome = 'GRCh37' @@ -89,6 +92,7 @@ params { 'NCBI.GRCh38' { bwa = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BWAIndex/version0.6.0/" fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" snpeff_db = 105 snpeff_genome = 'GRCh38' vep_cache_version = 110 diff --git a/conf/modules/ngscheckmate.config b/conf/modules/ngscheckmate.config index a8190a3d64..82730bb159 100644 --- a/conf/modules/ngscheckmate.config +++ b/conf/modules/ngscheckmate.config @@ -1,6 +1,6 @@ process { withName: ".*BAM_NGSCHECKMATE:BCFTOOLS_MPILEUP" { - ext.when = true + ext.when = { params.tools && params.tools.split(',').contains('sampleqc') } ext.args2 = '--no-version --ploidy 1 -c' ext.args3 = '--no-version' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 0db8e32c31..b9c499ee0e 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -100,7 +100,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", - "pattern": "^((ascat|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? Date: Wed, 27 Sep 2023 17:19:46 +0100 Subject: [PATCH 059/240] adding some files for bcftools annotate --- conf/modules/annotate.config | 15 +++- modules.json | 5 ++ modules/nf-core/bcftools/annotate/main.nf | 70 +++++++++++++++++++ modules/nf-core/bcftools/annotate/meta.yml | 56 +++++++++++++++ nextflow.config | 3 + nextflow_schema.json | 17 ++++- subworkflows/local/vcf_annotate_all/main.nf | 13 ++++ .../local/vcf_annotate_bcftools/main.nf | 33 +++++++++ workflows/sarek.nf | 15 +++- 9 files changed, 222 insertions(+), 5 deletions(-) create mode 100644 modules/nf-core/bcftools/annotate/main.nf create mode 100644 modules/nf-core/bcftools/annotate/meta.yml create mode 100644 subworkflows/local/vcf_annotate_bcftools/main.nf diff --git a/conf/modules/annotate.config b/conf/modules/annotate.config index bf92ecf7b8..169acf7ec1 100644 --- a/conf/modules/annotate.config +++ b/conf/modules/annotate.config @@ -60,6 +60,19 @@ process { } } + // 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' + ext.prefix = { "${vcf.baseName.minus(".vcf")}_BCF.ann" } + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" }, + pattern: "*{gz}" + ] + } + } + // SNPEFF THEN VEP if (params.tools && params.tools.split(',').contains('merge')) { withName: "NFCORE_SAREK:SAREK:VCF_ANNOTATE_ALL:VCF_ANNOTATE_MERGE:ENSEMBLVEP_VEP" { @@ -69,7 +82,7 @@ process { } // ALL ANNOTATION TOOLS - if (params.tools && (params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('vep') || params.tools.split(',').contains('merge'))) { + 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 = [ diff --git a/modules.json b/modules.json index 222ad3782d..84c2ff6f9f 100644 --- a/modules.json +++ b/modules.json @@ -10,6 +10,11 @@ "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", "installed_by": ["modules"] }, + "bcftools/annotate": { + "branch": "master", + "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "installed_by": ["modules"] + }, "bcftools/concat": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf new file mode 100644 index 0000000000..0ea7baf5b4 --- /dev/null +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -0,0 +1,70 @@ +process BCFTOOLS_ANNOTATE { + tag "$meta.id" + label 'process_low' + + conda "bioconda::bcftools=1.17" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': + 'quay.io/biocontainers/bcftools:1.17--haef29d1_0' }" + + input: + tuple val(meta), path(vcf) + path annotations + path annotations_index + path header_lines + + output: + tuple val(meta), path("*.vcf.gz"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def header_file = header_lines ? "--header-lines ${header_lines}" : '' + def annotations_file = annotations ? "--annotations ${annotations}" : '' + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + if ("$vcf" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + """ + bcftools \\ + index \\ + $vcf + + bcftools \\ + annotate \\ + $args \\ + $annotations_file \\ + $header_file \\ + --output ${prefix}.${extension} \\ + --threads $task.cpus \\ + $vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + """ + touch ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) + END_VERSIONS + """ +} \ No newline at end of file diff --git a/modules/nf-core/bcftools/annotate/meta.yml b/modules/nf-core/bcftools/annotate/meta.yml new file mode 100644 index 0000000000..201d890aed --- /dev/null +++ b/modules/nf-core/bcftools/annotate/meta.yml @@ -0,0 +1,56 @@ +name: bcftools_annotate +description: Add or remove annotations. +keywords: + - bcftools + - annotate + - vcf + - remove + - add +tools: + - annotate: + description: Add or remove annotations. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: https://samtools.github.io/bcftools/bcftools.html#annotate + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: Query VCF or BCF file, can be either uncompressed or compressed + - index: + type: file + description: Index of the query VCF or BCF file + - annotations: + type: file + description: Bgzip-compressed file with annotations + - annotations_index: + type: file + description: Index of the annotations file + - header_lines: + type: file + description: Contains lines to append to the output VCF header + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: Compressed annotated VCF file + pattern: "*{vcf,vcf.gz,bcf,bcf.gz}" + +authors: + - "@projectoriented" + - "@ramprasadn" \ No newline at end of file diff --git a/nextflow.config b/nextflow.config index 60501734fb..08dc511c15 100644 --- a/nextflow.config +++ b/nextflow.config @@ -92,6 +92,9 @@ params { vep_out_format = "vcf" vep_spliceai = null // spliceai plugin disabled within VEP vep_spliceregion = null // spliceregion plugin disabled within VEP + annotations = null // No extra annotation file + annotations_index = null // No extra annotation file index + header_lines = null // No header lines to be added to the VCF file // MultiQC options multiqc_config = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 03ae8c15df..d0d9e8822b 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -538,6 +538,9 @@ "help_text": "Sets the format of the output-file from VEP. Available formats: json, tab and vcf.", "fa_icon": "fas fa-table", "hidden": true + }, + "annotations": { + "type": "string" } } }, @@ -1009,6 +1012,12 @@ "fa_icon": "fas fa-people-group", "help_text": "Incoming hook URL for messaging service. Currently, MS Teams and Slack are supported.", "hidden": true + }, + "annotations_index": { + "type": "string" + }, + "header_lines": { + "type": "string" } } } @@ -1044,5 +1053,11 @@ { "$ref": "#/definitions/generic_options" } - ] + ], + "properties": { + "validationSchemaIgnoreParams": { + "type": "string", + "default": "cf_ploidy,genomes,igenomes_base" + } + } } diff --git a/subworkflows/local/vcf_annotate_all/main.nf b/subworkflows/local/vcf_annotate_all/main.nf index 5b759d8818..6393caa3dd 100644 --- a/subworkflows/local/vcf_annotate_all/main.nf +++ b/subworkflows/local/vcf_annotate_all/main.nf @@ -5,6 +5,7 @@ include { VCF_ANNOTATE_ENSEMBLVEP } from '../../nf-core/vcf_annotate_ensemblvep/main' include { VCF_ANNOTATE_ENSEMBLVEP as VCF_ANNOTATE_MERGE } from '../../nf-core/vcf_annotate_ensemblvep/main' include { VCF_ANNOTATE_SNPEFF } from '../../nf-core/vcf_annotate_snpeff/main' +include { BCFTOOLS_ANNOTATE } from '../../local/vcf_annotate_bcftools/main.nf' workflow VCF_ANNOTATE_ALL { take: @@ -18,6 +19,9 @@ workflow VCF_ANNOTATE_ALL { vep_cache_version vep_cache vep_extra_files + annotations + annotations_index + header_lines main: reports = Channel.empty() @@ -26,6 +30,15 @@ workflow VCF_ANNOTATE_ALL { json_ann = Channel.empty() versions = Channel.empty() + vcf_ann.view() + if (tools.split(',').contains('bcfann')) { + VCF_ANNOTATE_BCFTOOLS(vcf, annotations, annotations_index, header_lines) + + vcf_ann = vcf_ann.mix(VCF_ANNOTATE_BCFTOOLS.out.vcf_tbi) + versions = versions.mix(VCF_ANNOTATE_BCFTOOLS.out.versions) + } + + if (tools.split(',').contains('merge') || tools.split(',').contains('snpeff')) { VCF_ANNOTATE_SNPEFF(vcf, snpeff_db, snpeff_cache) diff --git a/subworkflows/local/vcf_annotate_bcftools/main.nf b/subworkflows/local/vcf_annotate_bcftools/main.nf new file mode 100644 index 0000000000..e54c52aa7c --- /dev/null +++ b/subworkflows/local/vcf_annotate_bcftools/main.nf @@ -0,0 +1,33 @@ + +// +// Run BCFtools to annotate VCF files +// + +include { BCFTOOLS_ANNOTATE } from '../../../modules/nf-core/bcftools/annotate/main' +include { TABIX_TABIX } from '../../../modules/nf-core/tabix/tabix/main' + +workflow VCF_ANNOTATE_BCFTOOLS { + take: + vcf // channel: [ val(meta), vcf ] + annotations // + annotations_index // + header_lines // + + + main: + ch_versions = Channel.empty() + + BCFTOOLS_ANNOTATE(vcf, annotations, annotations_index, header_lines) + TABIX_TABIX(BCFTOOLS_ANNOTATE.out.vcf) + + ch_vcf_tbi = BCFTOOLS_ANNOTATE.out.vcf.join(TABIX_TABIX.out.tbi, failOnDuplicate: true, failOnMismatch: true) + + + // Gather versions of all tools used + ch_versions = ch_versions.mix(BCFTOOLS_ANNOTATE.out.versions) + ch_versions = ch_versions.mix(TABIX_TABIX.out.versions) + + emit: + vcf_tbi = ch_vcf_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ] + versions = ch_versions // path: versions.yml +} diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 07016897a3..aa10711ba9 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -53,7 +53,10 @@ def checkPathParamList = [ params.spliceai_indel, params.spliceai_indel_tbi, params.spliceai_snv, - params.spliceai_snv_tbi + params.spliceai_snv_tbi, + params.annotations, + params.annotations_index, + params.header_lines ] // only check if we are using the tools @@ -321,6 +324,9 @@ snpeff_db = params.snpeff_db ?: Channel.empty() vep_cache_version = params.vep_cache_version ?: Channel.empty() vep_genome = params.vep_genome ?: Channel.empty() vep_species = params.vep_species ?: Channel.empty() +annotations = params.annotations ?: Channel.empty() +annotations_index = params.annotations_index ?: Channel.empty() +header_lines = params.header_lines ?: Channel.empty() // Initialize files channels based on params, not defined within the params.genomes[params.genome] scope if (params.snpeff_cache && params.tools && params.tools.contains("snpeff")) { @@ -1237,7 +1243,7 @@ workflow SAREK { // ANNOTATE if (params.step == 'annotate') vcf_to_annotate = input_sample - if (params.tools.split(',').contains('merge') || params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('vep')) { + if (params.tools.split(',').contains('merge') || params.tools.split(',').contains('snpeff') || params.tools.split(',').contains('vep')|| params.tools.split(',').contains('bcfann')) { vep_fasta = (params.vep_include_fasta) ? fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] } : [[id: 'null'], []] @@ -1251,7 +1257,10 @@ workflow SAREK { vep_species, vep_cache_version, vep_cache, - vep_extra_files) + vep_extra_files, + annotations, + annotations_index, + header_lines) // Gather used softwares versions versions = versions.mix(VCF_ANNOTATE_ALL.out.versions) From cee861493dca94876c9d973d12cb08a7e57758ee Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 05:25:08 +0100 Subject: [PATCH 060/240] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43f1ea1d42..fe87f6507e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- [] Added NGSCheckMate tool for checking that samples come from the same individual +- [#1252](https://github.com/nf-core/sarek/pull/1252) Added NGSCheckMate tool for checking that samples come from the same individual ### Changed From a2496de916edb9c9e2c1a43ae36c9643e1aa9ee6 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:40:08 +0100 Subject: [PATCH 061/240] Update conf/igenomes.config Co-authored-by: Maxime U Garcia --- conf/igenomes.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index 633aa87f1e..b328b83e81 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -92,7 +92,7 @@ params { 'NCBI.GRCh38' { bwa = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BWAIndex/version0.6.0/" fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" + ngscheckmate_bed ="${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Annotation/NGSCheckMate/SNP_GRCh38_hg38_wChr.bed" snpeff_db = 105 snpeff_genome = 'GRCh38' vep_cache_version = 110 From 05f681ec8eb61033752b49dbd9dea6bf8d578f7b Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:40:19 +0100 Subject: [PATCH 062/240] Update conf/igenomes.config Co-authored-by: Maxime U Garcia --- conf/igenomes.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index b328b83e81..04e0893497 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -81,7 +81,7 @@ params { 'Ensembl.GRCh37' { bwa = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BWAIndex/version0.6.0/" fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh37_hg19_woChr.bed" + ngscheckmate_bed = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/NGSCheckMate/SNP_GRCh37_hg19_woChr.bed" readme = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/README.txt" snpeff_db = 87 snpeff_genome = 'GRCh37' From 9d9105ce83bd34b857598a2a0d84472b0c2fa566 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:40:25 +0100 Subject: [PATCH 063/240] Update CHANGELOG.md Co-authored-by: Maxime U Garcia --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ab65957ae..667b14aee4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev -- [#1252](https://github.com/nf-core/sarek/pull/1252) Added NGSCheckMate tool for checking that samples come from the same individual +- [#1252](https://github.com/nf-core/sarek/pull/1252) - Added NGSCheckMate tool for checking that samples come from the same individual ### Changed From 2ab1e4d638e170a601da8eef46637446c57986aa Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:40:37 +0100 Subject: [PATCH 064/240] Update conf/igenomes.config Co-authored-by: Maxime U Garcia --- conf/igenomes.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index 04e0893497..bb002150c7 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -35,7 +35,7 @@ params { known_indels_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.gz.tbi" known_indels_vqsr = '--resource:1000G,known=false,training=true,truth=true,prior=10.0 1000G_phase1.indels.b37.vcf.gz --resource:mills,known=false,training=true,truth=true,prior=10.0 Mills_and_1000G_gold_standard.indels.b37.vcf.gz' mappability = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/Control-FREEC/out100m2_hg19.gem" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh37_hg19_wChr.bed" + ngscheckmate_bed = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/NGSCheckMate/SNP_GRCh37_hg19_wChr.bed" snpeff_db = 87 snpeff_genome = 'GRCh37' vep_cache_version = 110 From ac649e0782d40c4ef4e5f89dc4396c3c1e09ba79 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 29 Sep 2023 20:40:48 +0100 Subject: [PATCH 065/240] Update conf/igenomes.config Co-authored-by: Maxime U Garcia --- conf/igenomes.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/igenomes.config b/conf/igenomes.config index bb002150c7..b020ddee5f 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -69,7 +69,7 @@ params { known_indels_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" known_indels_vqsr = '--resource:gatk,known=false,training=true,truth=true,prior=10.0 Homo_sapiens_assembly38.known_indels.vcf.gz --resource:mills,known=false,training=true,truth=true,prior=10.0 Mills_and_1000G_gold_standard.indels.hg38.vcf.gz' mappability = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/Control-FREEC/out100m2_hg38.gem" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" + ngscheckmate_bed = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/NGSCheckMate/SNP_GRCh38_hg38_wChr.bed" pon = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz" pon_tbi = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz.tbi" snpeff_db = 105 From a0e5f439393fe261b8475196ece149698a7fea74 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sat, 30 Sep 2023 20:17:57 +0000 Subject: [PATCH 066/240] Add tests, swap to ngscheckmate --- conf/modules/ngscheckmate.config | 9 ++++++++- conf/test/tools.config | 1 + conf/test/tools_germline.config | 1 + nextflow_schema.json | 2 +- tests/config/tags.yml | 11 +++++++++++ tests/test_ngscheckmate.yml | 15 +++++++++++++++ 6 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 tests/test_ngscheckmate.yml diff --git a/conf/modules/ngscheckmate.config b/conf/modules/ngscheckmate.config index 82730bb159..bfffbddccd 100644 --- a/conf/modules/ngscheckmate.config +++ b/conf/modules/ngscheckmate.config @@ -1,6 +1,13 @@ process { withName: ".*BAM_NGSCHECKMATE:BCFTOOLS_MPILEUP" { - ext.when = { params.tools && params.tools.split(',').contains('sampleqc') } + + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/ngscheckmate/vcfs" }, + pattern: "*{vcf.gz}" + ] + ext.prefix = { "${meta.id}.ngscheckmate" } + ext.when = { params.tools && params.tools.split(',').contains('ngscheckmate') } ext.args2 = '--no-version --ploidy 1 -c' ext.args3 = '--no-version' } diff --git a/conf/test/tools.config b/conf/test/tools.config index a91389e27b..5d5bf8fd67 100644 --- a/conf/test/tools.config +++ b/conf/test/tools.config @@ -16,6 +16,7 @@ params { germline_resource = params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'] intervals = params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'] pon = params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'] + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" nucleotides_per_second = 20 step = 'variant_calling' tools = null diff --git a/conf/test/tools_germline.config b/conf/test/tools_germline.config index 31cb79cd93..2e8acb7295 100644 --- a/conf/test/tools_germline.config +++ b/conf/test/tools_germline.config @@ -18,6 +18,7 @@ params { known_indels_vqsr = "--resource:1000G,known=false,training=true,truth=true,prior=10.0 mills_and_1000G.indels.hg38.vcf.gz" known_snps = params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'] known_snps_vqsr = "--resource:hapmap,known=false,training=true,truth=true,prior=10.0 hapmap_3.3.hg38.vcf.gz" + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" nucleotides_per_second = 20 step = 'variant_calling' tools = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 19eef0918f..9f2abb5924 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -100,7 +100,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", - "pattern": "^((ascat|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sampleqc|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? Date: Sun, 1 Oct 2023 05:30:00 +0000 Subject: [PATCH 067/240] Fix NGSCheckMate test name --- tests/test_ngscheckmate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_ngscheckmate.yml b/tests/test_ngscheckmate.yml index 00ded5852f..01c030da7a 100644 --- a/tests/test_ngscheckmate.yml +++ b/tests/test_ngscheckmate.yml @@ -1,4 +1,4 @@ -- name: Skip variant calling on matched normal +- name: Check NGSCheckMate is working command: nextflow run main.nf -profile test_cache,tools_germline --tools ngscheckmate --outdir results --outdir results tags: - ngscheckmate From ad970966a44dcb940e176baacf520453768b62ec Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Sun, 1 Oct 2023 05:59:31 +0000 Subject: [PATCH 068/240] Update test --- tests/config/tags.yml | 2 +- tests/test_ngscheckmate.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 920bd7e773..583d2c0987 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -558,7 +558,7 @@ concatenate_vcfs: ## ngscheckmate ngscheckmate: - - conf/modules/post_variant_calling.config + - conf/modules/ngscheckmate.config - modules/nf-core/bcftools/mpileup/main.nf - modules/nf-core/ngscheckmate/ncm/main.nf - subworkflows/local/cram_samplqc/main.nf diff --git a/tests/test_ngscheckmate.yml b/tests/test_ngscheckmate.yml index 01c030da7a..aa72c4ecae 100644 --- a/tests/test_ngscheckmate.yml +++ b/tests/test_ngscheckmate.yml @@ -1,8 +1,8 @@ -- name: Check NGSCheckMate is working - command: nextflow run main.nf -profile test_cache,tools_germline --tools ngscheckmate --outdir results --outdir results +- name: Check ngscheckmate is working + command: nextflow run main.nf -profile test_cache,tools --tools ngscheckmate --outdir results tags: - ngscheckmate - - germline + - tools files: - path: results/multiqc - path: results/ngscheckmate/ngscheckmate_all.txt From 7378fe9503123388b0d6f619495853aafbbcf133 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 2 Oct 2023 12:50:40 +0000 Subject: [PATCH 069/240] Update output path and docs --- conf/modules/ngscheckmate.config | 2 +- docs/output.md | 19 +++++++++++++++++++ tests/test_ngscheckmate.yml | 16 ++++++++-------- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/conf/modules/ngscheckmate.config b/conf/modules/ngscheckmate.config index bfffbddccd..c6508cfbf5 100644 --- a/conf/modules/ngscheckmate.config +++ b/conf/modules/ngscheckmate.config @@ -3,7 +3,7 @@ process { publishDir = [ mode: params.publish_dir_mode, - path: { "${params.outdir}/ngscheckmate/vcfs" }, + path: { "${params.outdir}/reports/ngscheckmate/vcfs" }, pattern: "*{vcf.gz}" ] ext.prefix = { "${meta.id}.ngscheckmate" } diff --git a/docs/output.md b/docs/output.md index b250ed2817..5762e6415c 100644 --- a/docs/output.md +++ b/docs/output.md @@ -1054,6 +1054,25 @@ The plots will show: - Summary of the VEP run to be visualised with a web browser
+#### NGSCheckMate + +[NGSCheckMate](https://github.com/parklab/NGSCheckMate) is a tool for determining whether samples come from the same genetic individual, using a set of commonly heterozygous SNPs. This enables for the detecting of sample mislabelling events. The output includes a text file indicating whether samples have matched or not according to the algorithm, as well as a dendrogram visualising these results. + +
+Output files for all samples + +**Output directory: `{outdir}/reports/ngscheckmate/`** + +- `ngscheckmate_all.txt` + - Tab delimited text file listing all the comparisons made, whether they were considered as a match, with the correlation and a normalised depth. +- `ngscheckmate_matched.txt` + - Tab delimited text file listing only the comparison that were considered to match, with the correlation and a normalised depth. +- `ngscheckmate_output_corr_matrix.txt` + - Tab delimited text file containing a matrix of all correlations for all comparisons made. +- `vcfs/.vcf.gz` + - Set of vcf files for each sample. Contains calls for the set of SNP positions used to calculate sample relatedness. +
+ ### Reporting #### MultiQC diff --git a/tests/test_ngscheckmate.yml b/tests/test_ngscheckmate.yml index aa72c4ecae..8923ddc9ec 100644 --- a/tests/test_ngscheckmate.yml +++ b/tests/test_ngscheckmate.yml @@ -5,11 +5,11 @@ - tools files: - path: results/multiqc - - path: results/ngscheckmate/ngscheckmate_all.txt - - path: results/ngscheckmate/ngscheckmate_matched.txt - - path: results/ngscheckmate/ngscheckmate_output_corr_matrix.txt - - path: results/ngscheckmate/ngscheckmate.pdf - - path: results/ngscheckmate/vcfs/sample1.ngscheckmate.vcf.gz - - path: results/ngscheckmate/vcfs/sample2.ngscheckmate.vcf.gz - - path: results/ngscheckmate/vcfs/sample3.ngscheckmate.vcf.gz - - path: results/ngscheckmate/vcfs/sample4.ngscheckmate.vcf.gz + - path: results/reports/ngscheckmate/ngscheckmate_all.txt + - path: results/reports/ngscheckmate/ngscheckmate_matched.txt + - path: results/reports/ngscheckmate/ngscheckmate_output_corr_matrix.txt + - path: results/reports/ngscheckmate/ngscheckmate.pdf + - path: results/reports/ngscheckmate/vcfs/sample1.ngscheckmate.vcf.gz + - path: results/reports/ngscheckmate/vcfs/sample2.ngscheckmate.vcf.gz + - path: results/reports/ngscheckmate/vcfs/sample3.ngscheckmate.vcf.gz + - path: results/reports/ngscheckmate/vcfs/sample4.ngscheckmate.vcf.gz From d37c24e3eec8df25136f87ad48c94a4da7aa668c Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 2 Oct 2023 13:28:59 +0000 Subject: [PATCH 070/240] Change ngscheckmate publishdir --- conf/modules/ngscheckmate.config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/conf/modules/ngscheckmate.config b/conf/modules/ngscheckmate.config index c6508cfbf5..89fa045ed4 100644 --- a/conf/modules/ngscheckmate.config +++ b/conf/modules/ngscheckmate.config @@ -14,6 +14,13 @@ process { withName: ".*BAM_NGSCHECKMATE:NGSCHECKMATE_NCM" { ext.args = '-V' + + publishDir = [ + mode: params.publish_dir_mode, + path: { "${params.outdir}/reports/ngscheckmate/" }, + pattern: "*" + ] + } } From 4e73bdb5b9dddf7f3146b2346155f9576d74b9d0 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Mon, 2 Oct 2023 15:11:26 +0100 Subject: [PATCH 071/240] Update tests/config/tags.yml Co-authored-by: Maxime U Garcia --- tests/config/tags.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/tags.yml b/tests/config/tags.yml index 583d2c0987..05cc376900 100644 --- a/tests/config/tags.yml +++ b/tests/config/tags.yml @@ -561,6 +561,6 @@ ngscheckmate: - conf/modules/ngscheckmate.config - modules/nf-core/bcftools/mpileup/main.nf - modules/nf-core/ngscheckmate/ncm/main.nf - - subworkflows/local/cram_samplqc/main.nf + - subworkflows/local/cram_sampleqc/main.nf - subworkflows/nf-core/bam_ngscheckmate/main.nf - tests/test_ngscheckmate.yml From 76beace528d6c88d7cb16dbeb4629a248959a06a Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 2 Oct 2023 17:04:27 +0100 Subject: [PATCH 072/240] bcfannotate working with tests --- conf/test.config | 3 +++ nextflow_schema.json | 19 +++++++++++-------- subworkflows/local/vcf_annotate_all/main.nf | 2 +- .../vcf_annotate_bcftools/main.nf | 0 tests/config/bcfann_test_header.txt | 1 + 5 files changed, 16 insertions(+), 9 deletions(-) rename subworkflows/{local => nf-core}/vcf_annotate_bcftools/main.nf (100%) create mode 100644 tests/config/bcfann_test_header.txt diff --git a/conf/test.config b/conf/test.config index 2403fc63e9..85dc8d77e4 100644 --- a/conf/test.config +++ b/conf/test.config @@ -36,6 +36,9 @@ params { vep_cache_version = 110 vep_genome = 'WBcel235' vep_species = 'caenorhabditis_elegans' + annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" + annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" + header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" // default params split_fastq = 0 // no FASTQ splitting diff --git a/nextflow_schema.json b/nextflow_schema.json index d0d9e8822b..9c0c5b8b43 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -100,7 +100,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", - "pattern": "^((ascat|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? \ No newline at end of file From 58d22f7d93016cb2dedd96566e4401a9bf554493 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 2 Oct 2023 17:30:54 +0100 Subject: [PATCH 073/240] updating documentations --- CHANGELOG.md | 1 + README.md | 2 +- docs/output.md | 13 +++++++++++++ docs/usage.md | 7 +++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fcb4253bc1..6dd9931044 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ A lake near the Rapaselet delta. ### Added - [#1231](https://github.com/nf-core/sarek/pull/1231) - Back to dev +- [#1244](https://github.com/nf-core/sarek/pull/1244) - Add bcf annotate module ### Changed diff --git a/README.md b/README.md index 8c1ef5d130..01b78b7efa 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Depending on the options and samples provided, the pipeline can currently perfor - `Sentieon Haplotyper` - `Strelka2` - `TIDDIT` -- Variant filtering and annotation (`SnpEff`, `Ensembl VEP`) +- Variant filtering and annotation (`SnpEff`, `Ensembl VEP`, `BCFtools annotate`) - Summarise and represent QC (`MultiQC`)

diff --git a/docs/output.md b/docs/output.md index b250ed2817..c987e36bf4 100644 --- a/docs/output.md +++ b/docs/output.md @@ -834,6 +834,19 @@ plus any additional filed selected via the plugins: [dbNSFP](https://sites.googl +### BCFtools annotate + +[BCFtools annotate](https://samtools.github.io/bcftools/bcftools.html#annotate) is used to add annotations to VCF files. The annotations are added to the INFO column of the VCF file. The annotations are added to the VCF header and the VCF header is updated with the new annotations. For further reading and documentation see the [BCFtools annotate manual](https://samtools.github.io/bcftools/bcftools.html#annotate). + +

+Output files for all samples + +- `{sample,tumorsample_vs_normalsample}._bcf.ann.vcf.gz` and `{sample,tumorsample_vs_normalsample}._bcf.ann.vcf.gz.tbi` + - VCF with tabix index + +
+ + ## Quality control and reporting ### Quality control diff --git a/docs/usage.md b/docs/usage.md index 3649cbeb46..2b0f854f37 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1046,6 +1046,13 @@ Enable with `--vep_spliceregion`. For more details, see [here](https://www.ensembl.org/info/docs/tools/vep/script/vep_plugins.html#spliceregion) and [here](https://www.ensembl.info/2018/10/26/cool-stuff-the-vep-can-do-splice-site-variant-annotation/)." +### BCFTOOLS Annotate + +It is possible to annotate a VCF file with a custom annotation file using [BCFTOOLS Annotate](https://samtools.github.io/bcftools/bcftools.html#annotate). This can be done by setting adding bcfann to the tools list and setting the following parameters: +- annotations: path to vcf annotation file +- annotations_index: path to vcf annotation index file +- header_lines: path to header lines file + ## MultiQC related issues ### Plots for SnpEff are missing From 31fc80a32d593eb72975f019fd17dbb48217fc27 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 2 Oct 2023 17:19:31 +0000 Subject: [PATCH 074/240] Trying to sort out section and subsection for Sentieon/haplotyper and Sentieon/haplotyper/joint_germline --- docs/output.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/output.md b/docs/output.md index c7e1e8d0b3..b03f4c11d0 100644 --- a/docs/output.md +++ b/docs/output.md @@ -491,7 +491,7 @@ In Sentieon's package DNAscope, joint germline variant calling is done by first -##### Sentieon Haplotyper joint germline variant calling +#### Sentieon Haplotyper [Sentieon Haplotyper](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) is Sention's speedup version of GATK's Haplotypecaller (see above). @@ -519,7 +519,7 @@ Unless `haplotyper_filter` is listed under `--skip_tools` in the nextflow comman -##### Joint Germline Variant Calling with Sentieon's DNAseq +##### Sentieon Haplotyper joint germline variant calling In Sentieon's package DNAseq, joint germline variant calling is done by first running Sentieon's Haplotyper in emit-mode `gvcf` for each sample and then running Sentieon's [GVCFtyper](https://support.sentieon.com/manual/usages/general/#gvcftyper-algorithm) on the set of gVCF-files. See [Basic usage of Sentieon functions](#basic-usage-of-sentieon-functions) for information on how joint germline variant calling can be done in Sarek using Sentieon's DNAseq. After joint genotyping, Sentieon's version of VQSR ([VarCal](https://support.sentieon.com/manual/usages/general/#varcal-algorithm) and [ApplyVarCal](https://support.sentieon.com/manual/usages/general/#applyvarcal-algorithm)) is applied for filtering to produce the final multisample callset with the desired balance of precision and sensitivity. From c2bb5675d041cce09418b16a2ff4a3b172a7ec7f Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 4 Oct 2023 15:08:33 +0200 Subject: [PATCH 075/240] back to dev --- CHANGELOG.md | 15 +++++++++++++++ assets/multiqc_config.yml | 4 ++-- nextflow.config | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bda739b522..bc90054c88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## dev + +### Added + +- [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev + +### Changed + +### Fixed + +### Dependencies + +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | + ## [3.3.2](https://github.com/nf-core/sarek/releases/tag/3.3.2) - Ráhpajávvre Ráhpajávvre is the Lule Sámi spelling of Rapaselet. diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 862e4dbafd..42adcc9209 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -3,9 +3,9 @@ custom_logo_url: https://github.com/nf-core/sarek/ custom_logo_title: "nf-core/sarek" report_comment: > - This report has been generated by the nf-core/sarek + This report has been generated by the nf-core/sarek analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-sarek-methods-description": order: -1000 diff --git a/nextflow.config b/nextflow.config index 123a58ae90..ccf3f5068c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -341,7 +341,7 @@ manifest { description = """An open-source analysis pipeline to detect germline or somatic variants from whole genome or targeted sequencing""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '3.3.2' + version = '3.4dev' doi = '10.12688/f1000research.16665.2, 10.1101/2023.07.19.549462, 10.5281/zenodo.3476425' } From d6f610c3077ef5b502b277108af204b0716104d8 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Wed, 4 Oct 2023 16:12:11 +0000 Subject: [PATCH 076/240] Moving PR1193 to dev-section since the PR was not merged for Sarek 3.3.2 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 159ff6a2a5..60d93f7426 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev ### Changed @@ -26,7 +27,6 @@ Ráhpajávvre is the Lule Sámi spelling of Rapaselet. ### Added -- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev - [#1259](https://github.com/nf-core/sarek/pull/1259) - nf-prov plugin From 7387c6ae2622eaf7e066a9cf94b691781cb5281e Mon Sep 17 00:00:00 2001 From: Rike Date: Tue, 10 Oct 2023 21:05:44 +0200 Subject: [PATCH 077/240] remove normal id later --- .../bam_variant_calling_somatic_mutect2/main.nf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf index 81881f26aa..0d5f637cf7 100644 --- a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf @@ -44,8 +44,8 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { // Separate normal cram files // Extract tumor cram files ch_cram = input.multiMap{ meta, cram, crai -> - normal: [ meta - meta.subMap('normal_id', 'tumor_id') , cram[0], crai[0] ] - tumor: [ meta - meta.subMap('normal_id', 'tumor_id') , cram[1], crai[1] ] + normal: [ meta - meta.subMap('tumor_id') , cram[0], crai[0] ] + tumor: [ meta - meta.subMap('tumor_id') , cram[1], crai[1] ] } // Remove duplicates from normal channel and merge normal and tumor crams by patient @@ -102,10 +102,10 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { MERGEMUTECTSTATS(stats_to_merge) // Mix intervals and no_intervals channels together and remove no longer necessary field: normal_id, tumor_id, num_intervals - vcf = Channel.empty().mix(MERGE_MUTECT2.out.vcf, vcf_branch.no_intervals).map{ meta, vcf -> [ meta - meta.subMap('num_intervals'), vcf ]} - tbi = Channel.empty().mix(MERGE_MUTECT2.out.tbi, tbi_branch.no_intervals).map{ meta, tbi -> [ meta - meta.subMap('num_intervals'), tbi ]} - stats = Channel.empty().mix(MERGEMUTECTSTATS.out.stats, stats_branch.no_intervals).map{ meta, stats -> [ meta - meta.subMap('num_intervals'), stats ]} - f1r2 = Channel.empty().mix(f1r2_to_merge, f1r2_branch.no_intervals).map{ meta, f1r2 -> [ meta - meta.subMap('num_intervals'), f1r2 ]} + vcf = Channel.empty().mix(MERGE_MUTECT2.out.vcf, vcf_branch.no_intervals).map{ meta, vcf -> [ meta - meta.subMap('normal_id', 'num_intervals'), vcf ]} + tbi = Channel.empty().mix(MERGE_MUTECT2.out.tbi, tbi_branch.no_intervals).map{ meta, tbi -> [ meta - meta.subMap('normal_id', 'num_intervals'), tbi ]} + stats = Channel.empty().mix(MERGEMUTECTSTATS.out.stats, stats_branch.no_intervals).map{ meta, stats -> [ meta - meta.subMap('normal_id', 'num_intervals'), stats ]} + f1r2 = Channel.empty().mix(f1r2_to_merge, f1r2_branch.no_intervals).map{ meta, f1r2 -> [ meta - meta.subMap('normal_id', 'num_intervals'), f1r2 ]} // Generate artifactpriors using learnreadorientationmodel on the f1r2 output of mutect2 LEARNREADORIENTATIONMODEL(f1r2) From 9c8d02d556726cb894d8af2608ea7b43d46724bb Mon Sep 17 00:00:00 2001 From: Rike Date: Tue, 10 Oct 2023 21:18:20 +0200 Subject: [PATCH 078/240] update changelog [skip actions] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60d93f7426..b48440b97f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for joint calling with Mutect2 + ### Dependencies | Dependency | Old version | New version | From de475c48766565d52b81010aa6b71023d49345f8 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Tue, 10 Oct 2023 19:57:59 +0000 Subject: [PATCH 079/240] consistency on hidden parameters --- nextflow_schema.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nextflow_schema.json b/nextflow_schema.json index 68c6b77146..4dc2a8a1b1 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -388,6 +388,7 @@ "type": "string", "default": "variant", "fa_icon": "fas fa-toolbox", + "hidden": true, "description": "Option for selecting output and emit-mode of Sentieon's Haplotyper.", "help_text": "The option `--sentieon_haplotyper_emit_mode` can be set to the same string values as the Haplotyper's `--emit_mode`. To output both a vcf and a gvcf, specify both a vcf-option (currently, `all`, `confident` and `variant`) and `gvcf`. For example, to obtain a vcf and gvcf one could set `--sentieon_haplotyper_emit_mode` to `variant, gvcf`.", "pattern": "^(all|confident|gvcf|variant|gvcf,all|gvcf,confident|gvcf,variant|all,gvcf|confident,gvcf|variant,gvcf)(? Date: Tue, 10 Oct 2023 20:00:34 +0000 Subject: [PATCH 080/240] update CHANGELOG [skip actions] --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60d93f7426..37a11f87e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- [#1278](https://github.com/nf-core/sarek/pull/1278) - Hide sentieon parameters similar to other variant callers + ### Fixed ### Dependencies From 0b81e8163a783c24f6f4e199509eca306b791619 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Tue, 10 Oct 2023 20:26:12 +0000 Subject: [PATCH 081/240] trigger tests --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b48440b97f..1360868b09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for joint calling with Mutect2 +- [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for Mutect2 joint calling ### Dependencies From 09fbd091a9facd7ccff83a1e0868341fbbab7d1a Mon Sep 17 00:00:00 2001 From: Rike Date: Wed, 11 Oct 2023 10:10:36 +0200 Subject: [PATCH 082/240] only remove normal id when joint calling --- .../bam_variant_calling_somatic_mutect2/main.nf | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf index 0d5f637cf7..d9ab08e1ba 100644 --- a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf @@ -102,10 +102,18 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { MERGEMUTECTSTATS(stats_to_merge) // Mix intervals and no_intervals channels together and remove no longer necessary field: normal_id, tumor_id, num_intervals - vcf = Channel.empty().mix(MERGE_MUTECT2.out.vcf, vcf_branch.no_intervals).map{ meta, vcf -> [ meta - meta.subMap('normal_id', 'num_intervals'), vcf ]} - tbi = Channel.empty().mix(MERGE_MUTECT2.out.tbi, tbi_branch.no_intervals).map{ meta, tbi -> [ meta - meta.subMap('normal_id', 'num_intervals'), tbi ]} - stats = Channel.empty().mix(MERGEMUTECTSTATS.out.stats, stats_branch.no_intervals).map{ meta, stats -> [ meta - meta.subMap('normal_id', 'num_intervals'), stats ]} - f1r2 = Channel.empty().mix(f1r2_to_merge, f1r2_branch.no_intervals).map{ meta, f1r2 -> [ meta - meta.subMap('normal_id', 'num_intervals'), f1r2 ]} + vcf = Channel.empty().mix(MERGE_MUTECT2.out.vcf, vcf_branch.no_intervals).map{ meta, vcf -> + [ joint_mutect2 ? meta - meta.subMap('normal_id', 'num_intervals') : meta - meta.subMap('num_intervals') , vcf ] + } + tbi = Channel.empty().mix(MERGE_MUTECT2.out.tbi, tbi_branch.no_intervals).map{ meta, tbi-> + [ joint_mutect2 ? meta - meta.subMap('normal_id', 'num_intervals') : meta - meta.subMap('num_intervals'), tbi ] + } + stats = Channel.empty().mix(MERGEMUTECTSTATS.out.stats, stats_branch.no_intervals).map{ meta, stats -> + [ joint_mutect2 ? meta - meta.subMap('normal_id', 'num_intervals') : meta - meta.subMap('num_intervals'), stats ] + } + f1r2 = Channel.empty().mix(f1r2_to_merge, f1r2_branch.no_intervals).map{ meta, f1r2-> + [ joint_mutect2 ? meta - meta.subMap('normal_id', 'num_intervals') : meta - meta.subMap('num_intervals') , f1r2 ] + } // Generate artifactpriors using learnreadorientationmodel on the f1r2 output of mutect2 LEARNREADORIENTATIONMODEL(f1r2) From 8bd5fdbfd762beb3732c3b01063536d1b93c2a61 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Wed, 11 Oct 2023 08:38:36 +0000 Subject: [PATCH 083/240] trigger tests --- nextflow_schema.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 4dc2a8a1b1..8a1a42095a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -387,10 +387,10 @@ "sentieon_haplotyper_emit_mode": { "type": "string", "default": "variant", - "fa_icon": "fas fa-toolbox", - "hidden": true, "description": "Option for selecting output and emit-mode of Sentieon's Haplotyper.", + "fa_icon": "fas fa-toolbox", "help_text": "The option `--sentieon_haplotyper_emit_mode` can be set to the same string values as the Haplotyper's `--emit_mode`. To output both a vcf and a gvcf, specify both a vcf-option (currently, `all`, `confident` and `variant`) and `gvcf`. For example, to obtain a vcf and gvcf one could set `--sentieon_haplotyper_emit_mode` to `variant, gvcf`.", + "hidden": true, "pattern": "^(all|confident|gvcf|variant|gvcf,all|gvcf,confident|gvcf,variant|all,gvcf|confident,gvcf|variant,gvcf)(? Date: Wed, 11 Oct 2023 11:34:28 +0200 Subject: [PATCH 084/240] Updating link to entieonDNAscopeModel file --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 56cab933a6..ca6e2ed00a 100644 --- a/nextflow.config +++ b/nextflow.config @@ -70,7 +70,7 @@ params { joint_mutect2 = false // if true, enables patient-wise multi-sample somatic variant calling only_paired_variant_calling = false // if true, skips germline variant calling for normal-paired sample sentieon_dnascope_emit_mode = "variant" // default value for Sentieon dnascope - sentieon_dnascope_model = "https://s3.amazonaws.com/sentieon-release/other/SentieonDNAscopeModel1.1.model" + sentieon_dnascope_model = "s3://ngi-igenomes/igenomes/Homo_sapiens/GATK/GRCh38/Annotation/Sentieon/SentieonDNAscopeModel1.1.model" sentieon_dnascope_pcr_indel_model = "CONSERVATIVE" sentieon_haplotyper_emit_mode = "variant" // default value for Sentieon haplotyper wes = false // Set to true, if data is exome/targeted sequencing data. Used to use correct models in various variant callers From c325cd453d091238ac4745112bb6d8a20c031d14 Mon Sep 17 00:00:00 2001 From: Anders Sune Pedersen Date: Wed, 11 Oct 2023 11:41:46 +0200 Subject: [PATCH 085/240] Updating changelog --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60d93f7426..7e9f3a0458 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. +- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev ### Changed +- [#1280](https://github.com/nf-core/sarek/pull/1280) - Replacing link to `SentieonDNAscopeModel1.1.model` in Sentieon's S3 with link to same file in igenomes' S3 + ### Fixed ### Dependencies From 0ed20aa60c0f2315a0b7aa6e650f62557cf27c9c Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Mon, 16 Oct 2023 09:44:09 +0000 Subject: [PATCH 086/240] [automated] Fix linting with Prettier --- docs/output.md | 2 +- modules/nf-core/cnvkit/genemetrics/meta.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/output.md b/docs/output.md index b21539cc4c..e82c3c1735 100644 --- a/docs/output.md +++ b/docs/output.md @@ -719,7 +719,7 @@ The file `.cnvs.txt` contains all segments predicte - file containing copy number segment information - `.genemetrics.tsv` - file containing per gene copy number information (if input files are annotated) - +
Output files for tumor/normal samples diff --git a/modules/nf-core/cnvkit/genemetrics/meta.yml b/modules/nf-core/cnvkit/genemetrics/meta.yml index 27e3c8c9e9..1d8ee9e526 100644 --- a/modules/nf-core/cnvkit/genemetrics/meta.yml +++ b/modules/nf-core/cnvkit/genemetrics/meta.yml @@ -40,4 +40,4 @@ output: pattern: "versions.yml" authors: - - "@marrip" \ No newline at end of file + - "@marrip" From e8380eac80124e1e0c49a14e5f4aa0862bb576a9 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 16 Oct 2023 09:58:31 +0000 Subject: [PATCH 087/240] add version intilization --- CHANGELOG.md | 2 +- subworkflows/local/bam_variant_calling_cnvkit/main.nf | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61aedfdae1..e529700c8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## dev -- [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module +- [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev ### Added diff --git a/subworkflows/local/bam_variant_calling_cnvkit/main.nf b/subworkflows/local/bam_variant_calling_cnvkit/main.nf index a1c8ac80a5..e4f6f3a15c 100644 --- a/subworkflows/local/bam_variant_calling_cnvkit/main.nf +++ b/subworkflows/local/bam_variant_calling_cnvkit/main.nf @@ -16,6 +16,7 @@ workflow BAM_VARIANT_CALLING_CNVKIT { reference // channel: [] cnn main: + versions = Channel.empty() generate_pon = false CNVKIT_BATCH(cram, fasta, fasta_fai, targets, reference, generate_pon) From bf9c85859a72c38673914e1140860457582c12f9 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 16 Oct 2023 12:29:30 +0000 Subject: [PATCH 088/240] unpatch module, bump ressource request --- conf/base.config | 4 ++++ conf/modules/cnvkit.config | 1 + modules.json | 5 ++--- modules/nf-core/cnvkit/genemetrics/main.nf | 15 +++++++-------- modules/nf-core/cnvkit/genemetrics/meta.yml | 6 +++++- .../local/bam_variant_calling_cnvkit/main.nf | 4 +++- 6 files changed, 22 insertions(+), 13 deletions(-) mode change 100644 => 100755 modules/nf-core/cnvkit/genemetrics/main.nf mode change 100644 => 100755 modules/nf-core/cnvkit/genemetrics/meta.yml diff --git a/conf/base.config b/conf/base.config index db1175874f..446e88b99b 100644 --- a/conf/base.config +++ b/conf/base.config @@ -70,6 +70,10 @@ process { cpus = { check_max( 24 * task.attempt, 'cpus' ) } memory = { check_max( 30.GB * task.attempt, 'memory' ) } } + withName:'CNVKIT_BATCH' { + label = "process_high" + memory = { check_max( 36.GB * task.attempt, 'memory' ) } + } withName: 'GATK4_MARKDUPLICATES|GATK4_MARKDUPLICATESSPARK' { cpus = { check_max( 6 * task.attempt, 'cpus' ) } memory = { check_max( 30.GB * task.attempt, 'memory' ) } diff --git a/conf/modules/cnvkit.config b/conf/modules/cnvkit.config index e17459369f..bf5ff6c6c2 100644 --- a/conf/modules/cnvkit.config +++ b/conf/modules/cnvkit.config @@ -49,6 +49,7 @@ process { } // CNVKIT withName: 'CNVKIT_GENEMETRICS' { + ext.prefix = { "${cnr.baseName}.genemetrics" } ext.when = { params.tools && params.tools.split(',').contains('cnvkit') } publishDir = [ mode: params.publish_dir_mode, diff --git a/modules.json b/modules.json index ba38ddebfa..d5022b6f91 100644 --- a/modules.json +++ b/modules.json @@ -72,9 +72,8 @@ }, "cnvkit/genemetrics": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"], - "patch": "modules/nf-core/cnvkit/genemetrics/cnvkit-genemetrics.diff" + "git_sha": "3b63e1df297ef474b0070aa5fabb30d732173671", + "installed_by": ["modules"] }, "cnvkit/reference": { "branch": "master", diff --git a/modules/nf-core/cnvkit/genemetrics/main.nf b/modules/nf-core/cnvkit/genemetrics/main.nf old mode 100644 new mode 100755 index 99aad4a29e..6058994866 --- a/modules/nf-core/cnvkit/genemetrics/main.nf +++ b/modules/nf-core/cnvkit/genemetrics/main.nf @@ -4,12 +4,11 @@ process CNVKIT_GENEMETRICS { conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.9--pyhdfd78af_0': - 'quay.io/biocontainers/cnvkit:0.9.9--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': + 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" input: - tuple val(meta), path(cnr) - tuple val (meta), path(cns) + tuple val(meta), path(cnr), path(cns) output: tuple val(meta), path("*.tsv"), emit: tsv @@ -21,15 +20,15 @@ process CNVKIT_GENEMETRICS { script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: cnr.BaseName - def segments = cns ? "--segment ${cns[2]}" : "" + def prefix = task.ext.prefix ?: "${meta.id}" + def segments = cns ? "--segment ${cns}" : "" """ cnvkit.py \\ genemetrics \\ $cnr \\ $segments \\ - --output ${prefix}.genemetrics.tsv \\ + --output ${prefix}.tsv \\ $args cat <<-END_VERSIONS > versions.yml @@ -37,4 +36,4 @@ process CNVKIT_GENEMETRICS { cnvkit: \$(cnvkit.py version | sed -e "s/cnvkit v//g") END_VERSIONS """ -} \ No newline at end of file +} diff --git a/modules/nf-core/cnvkit/genemetrics/meta.yml b/modules/nf-core/cnvkit/genemetrics/meta.yml old mode 100644 new mode 100755 index 1d8ee9e526..115a4a87bb --- a/modules/nf-core/cnvkit/genemetrics/meta.yml +++ b/modules/nf-core/cnvkit/genemetrics/meta.yml @@ -2,7 +2,9 @@ name: cnvkit_genemetrics description: Copy number variant detection from high-throughput sequencing data keywords: - cnvkit - - genemetrics + - bam + - fasta + - copy number tools: - cnvkit: description: | @@ -40,4 +42,6 @@ output: pattern: "versions.yml" authors: + - "@adamrtalbot" - "@marrip" + - "@priesgo" diff --git a/subworkflows/local/bam_variant_calling_cnvkit/main.nf b/subworkflows/local/bam_variant_calling_cnvkit/main.nf index e4f6f3a15c..c6b93d33c9 100644 --- a/subworkflows/local/bam_variant_calling_cnvkit/main.nf +++ b/subworkflows/local/bam_variant_calling_cnvkit/main.nf @@ -20,7 +20,9 @@ workflow BAM_VARIANT_CALLING_CNVKIT { generate_pon = false CNVKIT_BATCH(cram, fasta, fasta_fai, targets, reference, generate_pon) - CNVKIT_GENEMETRICS(CNVKIT_BATCH.out.cnr, CNVKIT_BATCH.out.cns) + + ch_genemetrics = CNVKIT_BATCH.out.cnr.join(CNVKIT_BATCH.out.cns).map{ meta, cnr, cns -> [meta, cnr, cns[2]]} + CNVKIT_GENEMETRICS(ch_genemetrics) versions = versions.mix(CNVKIT_BATCH.out.versions) versions = versions.mix(CNVKIT_GENEMETRICS.out.versions) From de2d8b2fe812a95bbece4fe3b469fad2377dabb4 Mon Sep 17 00:00:00 2001 From: grantn5 <127763095+grantn5@users.noreply.github.com> Date: Mon, 16 Oct 2023 13:56:59 +0100 Subject: [PATCH 089/240] Update nextflow_schema.json Co-authored-by: Friederike Hanssen --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 9c0c5b8b43..3fb5b0bb2a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -539,7 +539,7 @@ "fa_icon": "fas fa-table", "hidden": true }, - "annotations": { + "bcftools_annotations": { "type": "string", "fa_icon": "fas fa-file" }, From 232936f4df17e90b4f228b6d384ac692e1e579de Mon Sep 17 00:00:00 2001 From: grantn5 <127763095+grantn5@users.noreply.github.com> Date: Mon, 16 Oct 2023 13:57:12 +0100 Subject: [PATCH 090/240] Update subworkflows/local/vcf_annotate_all/main.nf Co-authored-by: Friederike Hanssen --- subworkflows/local/vcf_annotate_all/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/subworkflows/local/vcf_annotate_all/main.nf b/subworkflows/local/vcf_annotate_all/main.nf index 3773f49b13..559719494b 100644 --- a/subworkflows/local/vcf_annotate_all/main.nf +++ b/subworkflows/local/vcf_annotate_all/main.nf @@ -30,7 +30,6 @@ workflow VCF_ANNOTATE_ALL { json_ann = Channel.empty() versions = Channel.empty() - vcf_ann.view() if (tools.split(',').contains('bcfann')) { VCF_ANNOTATE_BCFTOOLS(vcf, annotations, annotations_index, header_lines) From cfe8ca5c3446cdf67fd35d866d5f66195dd5167c Mon Sep 17 00:00:00 2001 From: Raquel Manzano Date: Mon, 16 Oct 2023 14:17:22 +0100 Subject: [PATCH 091/240] Created subworkflow for parsing samplesheet with nf-test --- .gitignore | 1 + nf-test.config | 8 + .../local/samplesheet_to_channel/main.nf | 306 ++++++++++++++++++ .../local/samplesheet_to_channel/main.nf.test | 34 ++ .../samplesheet_to_channel/main.nf.test.snap | 47 +++ workflows/sarek.nf | 305 +---------------- 6 files changed, 408 insertions(+), 293 deletions(-) create mode 100644 nf-test.config create mode 100644 subworkflows/local/samplesheet_to_channel/main.nf create mode 100644 subworkflows/local/samplesheet_to_channel/main.nf.test create mode 100644 subworkflows/local/samplesheet_to_channel/main.nf.test.snap diff --git a/.gitignore b/.gitignore index e90c12ab54..04293583ce 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ testing/ testing* *.pyc test-datasets/ +.nf-test* \ No newline at end of file diff --git a/nf-test.config b/nf-test.config new file mode 100644 index 0000000000..8878cd388a --- /dev/null +++ b/nf-test.config @@ -0,0 +1,8 @@ +config { + + testsDir "." + workDir ".nf-test" + configFile "nextflow.config" + profile "" + +} diff --git a/subworkflows/local/samplesheet_to_channel/main.nf b/subworkflows/local/samplesheet_to_channel/main.nf new file mode 100644 index 0000000000..b4a153b0eb --- /dev/null +++ b/subworkflows/local/samplesheet_to_channel/main.nf @@ -0,0 +1,306 @@ +// TODO nf-core: If in doubt look at other nf-core/subworkflows to see how we are doing things! :) +// https://github.com/nf-core/modules/tree/master/subworkflows +// You can also ask for help via your pull request or on the #subworkflows channel on the nf-core Slack workspace: +// https://nf-co.re/join +// TODO nf-core: A subworkflow SHOULD import at least two modules + + +workflow SAMPLESHEET_TO_CHANNEL{ + + take: + ch_from_samplesheet + + main: + ch_from_samplesheet.dump(tag:"ch_from_samplesheet") + input_sample = ch_from_samplesheet + .map{ meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller -> + // generate patient_sample key to group lanes together + [ meta.patient + meta.sample, [meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller] ] + } + .tap{ ch_with_patient_sample } // save the channel + .groupTuple() //group by patient_sample to get all lanes + .map { patient_sample, ch_items -> + // get number of lanes per sample + [ patient_sample, ch_items.size() ] + } + .combine(ch_with_patient_sample, by: 0) // for each entry add numLanes + .map { patient_sample, num_lanes, ch_items -> + + (meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller) = ch_items + if (meta.lane && fastq_2) { + meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] + def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' + + def flowcell = flowcellLaneFromFastq(fastq_1) + // Don't use a random element for ID, it breaks resuming + def read_group = "\"@RG\\tID:${flowcell}.${meta.sample}.${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" + + meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'fastq', size: 1] + + if (params.step == 'mapping') return [ meta, [ fastq_1, fastq_2 ] ] + else { + error("Samplesheet contains fastq files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // start from BAM + } else if (meta.lane && bam) { + if (params.step != 'mapping' && !bai) { + error("BAM index (bai) should be provided.") + } + meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] + def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' + def read_group = "\"@RG\\tID:${meta.sample}_${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" + + meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'bam', size: 1] + + if (params.step != 'annotate') return [ meta - meta.subMap('lane'), bam, bai ] + else { + error("Samplesheet contains bam files but step is `annotate`. The pipeline is expecting vcf files for the annotation. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // recalibration + } else if (table && cram) { + meta = meta + [id: meta.sample, data_type: 'cram'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai, table ] + else { + error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // recalibration when skipping MarkDuplicates + } else if (table && bam) { + meta = meta + [id: meta.sample, data_type: 'bam'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai, table ] + else { + error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // prepare_recalibration or variant_calling + } else if (cram) { + meta = meta + [id: meta.sample, data_type: 'cram'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai ] + else { + error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // prepare_recalibration when skipping MarkDuplicates or `--step markduplicates` + } else if (bam) { + meta = meta + [id: meta.sample, data_type: 'bam'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai ] + else { + error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // annotation + } else if (vcf) { + meta = meta + [id: meta.sample, data_type: 'vcf', variantcaller: variantcaller ?: ''] + + if (params.step == 'annotate') return [ meta - meta.subMap('lane'), vcf ] + else { + error("Samplesheet contains vcf files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + } else { + error("Missing or unknown field in csv file header. Please check your samplesheet") + } + } + + if (params.step != 'annotate' && params.tools && !params.build_only_index) { + // Two checks for ensuring that the pipeline stops with a meaningful error message if + // 1. the sample-sheet only contains normal-samples, but some of the requested tools require tumor-samples, and + // 2. the sample-sheet only contains tumor-samples, but some of the requested tools require normal-samples. + input_sample.filter{ it[0].status == 1 }.ifEmpty{ // In this case, the sample-sheet contains no tumor-samples + if (!params.build_only_index) { + def tools_tumor = ['ascat', 'controlfreec', 'mutect2', 'msisensorpro'] + def tools_tumor_asked = [] + tools_tumor.each{ tool -> + if (params.tools.split(',').contains(tool)) tools_tumor_asked.add(tool) + } + if (!tools_tumor_asked.isEmpty()) { + error('The sample-sheet only contains normal-samples, but the following tools, which were requested with "--tools", expect at least one tumor-sample : ' + tools_tumor_asked.join(", ")) + } + } + } + input_sample.filter{ it[0].status == 0 }.ifEmpty{ // In this case, the sample-sheet contains no normal/germline-samples + def tools_requiring_normal_samples = ['ascat', 'deepvariant', 'haplotypecaller', 'msisensorpro'] + def requested_tools_requiring_normal_samples = [] + tools_requiring_normal_samples.each{ tool_requiring_normal_samples -> + if (params.tools.split(',').contains(tool_requiring_normal_samples)) requested_tools_requiring_normal_samples.add(tool_requiring_normal_samples) + } + if (!requested_tools_requiring_normal_samples.isEmpty()) { + error('The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : ' + requested_tools_requiring_normal_samples.join(", ")) + } + } + } + + // Fails when wrongfull extension for intervals file + if (params.wes && !params.step == 'annotate') { + if (params.intervals && !params.intervals.endsWith("bed")) error("Target file specified with `--intervals` must be in BED format for targeted data") + else log.warn("Intervals file was provided without parameter `--wes`: Pipeline will assume this is Whole-Genome-Sequencing data.") + } else if (params.intervals && !params.intervals.endsWith("bed") && !params.intervals.endsWith("list")) error("Intervals file must end with .bed, .list, or .interval_list") + + if (params.step == 'mapping' && params.aligner.contains("dragmap") && !(params.skip_tools && params.skip_tools.split(',').contains("baserecalibrator"))) { + log.warn("DragMap was specified as aligner. Base recalibration is not contained in --skip_tools. It is recommended to skip baserecalibration when using DragMap\nhttps://gatk.broadinstitute.org/hc/en-us/articles/4407897446939--How-to-Run-germline-single-sample-short-variant-discovery-in-DRAGEN-mode") + } + + if (params.step == 'mapping' && params.aligner.contains("sentieon-bwamem") && params.umi_read_structure) { + error("Sentieon BWA is currently not compatible with FGBio UMI handeling. Please choose a different aligner.") + } + + if (params.tools && params.tools.split(',').contains("sentieon_haplotyper") && params.joint_germline && (!params.sentieon_haplotyper_emit_mode || !(params.sentieon_haplotyper_emit_mode.contains('gvcf')))) { + error("When setting the option `--joint_germline` and including `sentieon_haplotyper` among the requested tools, please set `--sentieon_haplotyper_emit_mode` to include `gvcf`.") + } + + // Fails or warns when missing files or params for ascat + if (params.tools && params.tools.split(',').contains('ascat')) { + if (!params.ascat_alleles) { + error("No allele files were provided for running ASCAT. Please provide a zip folder with allele files.") + } + if (!params.ascat_loci) { + error("No loci files were provided for running ASCAT. Please provide a zip folder with loci files.") + } + if (!params.ascat_loci_gc && !params.ascat_loci_rt) { + log.warn("No LogRCorrection performed in ASCAT. For LogRCorrection to run, please provide either loci gc files or both loci gc files and loci rt files.") + } + if (params.wes) { + log.warn("Default reference files not suited for running ASCAT on WES data. It's recommended to use the reference files provided here: https://github.com/Wedge-lab/battenberg#required-reference-files") + } + } + + // Warns when missing files or params for mutect2 + if (params.tools && params.tools.split(',').contains('mutect2')) { + if (!params.pon) { + log.warn("No Panel-of-normal was specified for Mutect2.\nIt is highly recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2\nFor more information on how to create one: https://gatk.broadinstitute.org/hc/en-us/articles/5358921041947-CreateSomaticPanelOfNormals-BETA-") + } + if (!params.germline_resource) { + log.warn("If Mutect2 is specified without a germline resource, no filtering will be done.\nIt is recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2") + } + if (params.pon && params.pon.contains("/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz")) { + log.warn("The default Panel-of-Normals provided by GATK is used for Mutect2.\nIt is highly recommended to generate one from normal samples that are technical similar to the tumor ones.\nFor more information: https://gatk.broadinstitute.org/hc/en-us/articles/360035890631-Panel-of-Normals-PON-") + } + } + + // Fails when missing resources for baserecalibrator + // Warns when missing resources for haplotypecaller + if (!params.dbsnp && !params.known_indels) { + if (params.step in ['mapping', 'markduplicates', 'prepare_recalibration', 'recalibrate'] && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('baserecalibrator')))) { + error("Base quality score recalibration requires at least one resource file. Please provide at least one of `--dbsnp` or `--known_indels`\nYou can skip this step in the workflow by adding `--skip_tools baserecalibrator` to the command.") + } + if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) { + log.warn "If GATK's Haplotypecaller, Sentieon's Dnascpe or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" + } + } + if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope')))) { + error("The GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") + } + + if ( + params.tools && + ( + params.tools.split(',').contains('haplotypecaller') || + params.tools.split(',').contains('sentieon_haplotyper') || + params.tools.split(',').contains('sentieon_dnascope') + ) && + params.joint_germline && + ( + !params.dbsnp || + !params.known_indels || + !params.known_snps || + params.no_intervals + ) + ) { + log.warn("""If GATK's Haplotypecaller, Sentieon's Dnascope and/or Sentieon's Haplotyper is specified, \ + but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ + no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ + see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ + Joint germline variant calling also requires intervals in order to genotype the samples. \ + As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") + } + + if (params.tools && + params.tools.split(',').contains('sentieon_dnascope') && + params.joint_germline && + ( + !params.sentieon_dnascope_emit_mode || + !params.sentieon_dnascope_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Dnascope for joint-germline variant-calling the option `--sentieon_dnascope_emit_mode` has to include `gvcf`.") + } + + if (params.tools && + params.tools.split(',').contains('sentieon_haplotyper') && + params.joint_germline && + ( + !params.sentieon_haplotyper_emit_mode || + !params.sentieon_haplotyper_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Haplotyper for joint-germline variant-calling the option `--sentieon_haplotyper_emit_mode` has to include `gvcf`.") + } + + + // Fails when --joint_mutect2 is used without enabling mutect2 + if (params.joint_mutect2 && (!params.tools || !params.tools.split(',').contains('mutect2'))) { + error("The mutect2 should be specified as one of the tools when doing joint somatic variant calling with Mutect2. (The mutect2 could be specified by adding `--tools mutect2` to the nextflow command.)") + } + + // Fails when missing tools for variant_calling or annotate + if ((params.step == 'variant_calling' || params.step == 'annotate') && !params.tools) { + error("Please specify at least one tool when using `--step ${params.step}`.\nhttps://nf-co.re/sarek/parameters#tools") + } + + // Fails when missing sex information for CNV tools + if (params.tools && (params.tools.split(',').contains('ascat') || params.tools.split(',').contains('controlfreec'))) { + input_sample.map{ + if (it[0].sex == 'NA' ) { + error("Please specify sex information for each sample in your samplesheet when using '--tools' with 'ascat' or 'controlfreec'.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + } + } + + if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { + error("Please specify either `--download_cache` or `--snpeff_cache`, `--vep_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") + } + + + emit: + input_sample + } + +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + FUNCTIONS +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +*/ +// Parse first line of a FASTQ file, return the flowcell id and lane number. +def flowcellLaneFromFastq(path) { + // expected format: + // xx:yy:FLOWCELLID:LANE:... (seven fields) + // or + // FLOWCELLID:LANE:xx:... (five fields) + def line + path.withInputStream { + InputStream gzipStream = new java.util.zip.GZIPInputStream(it) + Reader decoder = new InputStreamReader(gzipStream, 'ASCII') + BufferedReader buffered = new BufferedReader(decoder) + line = buffered.readLine() + } + assert line.startsWith('@') + line = line.substring(1) + def fields = line.split(':') + String fcid + + if (fields.size() >= 7) { + // CASAVA 1.8+ format, from https://support.illumina.com/help/BaseSpace_OLH_009008/Content/Source/Informatics/BS/FileFormat_FASTQ-files_swBS.htm + // "@::::::: :::" + fcid = fields[2] + } else if (fields.size() == 5) { + fcid = fields[0] + } + return fcid +} + + diff --git a/subworkflows/local/samplesheet_to_channel/main.nf.test b/subworkflows/local/samplesheet_to_channel/main.nf.test new file mode 100644 index 0000000000..3d0ceff009 --- /dev/null +++ b/subworkflows/local/samplesheet_to_channel/main.nf.test @@ -0,0 +1,34 @@ +nextflow_workflow { + + name "Test Workflow SAMPLESHEET_TO_CHANNEL" + script "subworkflows/local/samplesheet_to_channel/main.nf" + workflow "SAMPLESHEET_TO_CHANNEL" + + test("Should run without failures") { + + when { + params { + // define parameters here. Example: + skip_tools = 'baserecalibrator' + + } + workflow { + """ + // define inputs of the workflow here. Example: + input[0] = Channel.of([['patient':'test', 'sample':'test', + 'sex':'XX', 'status':0, 'lane':'test_L1'], + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz'), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz'), + [], [], [], [], [], [], []]) + """ + } + } + + then { + assert workflow.success + assert snapshot(workflow.out).match() + } + + } + +} diff --git a/subworkflows/local/samplesheet_to_channel/main.nf.test.snap b/subworkflows/local/samplesheet_to_channel/main.nf.test.snap new file mode 100644 index 0000000000..fa440f539b --- /dev/null +++ b/subworkflows/local/samplesheet_to_channel/main.nf.test.snap @@ -0,0 +1,47 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + [ + { + "patient": "test", + "sample": "test", + "sex": "XX", + "status": 0, + "id": "test-test_L1", + "num_lanes": 1, + "read_group": "\"@RG\\tID:null.test.test_L1\\tPU:test_L1\\tSM:test_test\\tLB:test\\tDS:null\\tPL:ILLUMINA\"", + "data_type": "fastq", + "size": 1 + }, + [ + "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", + "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + ] + ] + ], + "input_sample": [ + [ + { + "patient": "test", + "sample": "test", + "sex": "XX", + "status": 0, + "id": "test-test_L1", + "num_lanes": 1, + "read_group": "\"@RG\\tID:null.test.test_L1\\tPU:test_L1\\tSM:test_test\\tLB:test\\tDS:null\\tPL:ILLUMINA\"", + "data_type": "fastq", + "size": 1 + }, + [ + "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz", + "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + ] + ] + ] + } + ], + "timestamp": "2023-10-16T14:12:54.640503" + } +} \ No newline at end of file diff --git a/workflows/sarek.nf b/workflows/sarek.nf index a6ed5b2e50..c65f69a9e9 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -73,267 +73,6 @@ WorkflowSarek.initialise(params, log) for (param in checkPathParamList) if (param) file(param, checkIfExists: true) -// Set input, can either be from --input or from automatic retrieval in WorkflowSarek.groovy - -if (params.input) { - ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input") -} else { - ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input_restart") -} - -input_sample = ch_from_samplesheet - .map{ meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller -> - // generate patient_sample key to group lanes together - [ meta.patient + meta.sample, [meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller] ] - } - .tap{ ch_with_patient_sample } // save the channel - .groupTuple() //group by patient_sample to get all lanes - .map { patient_sample, ch_items -> - // get number of lanes per sample - [ patient_sample, ch_items.size() ] - } - .combine(ch_with_patient_sample, by: 0) // for each entry add numLanes - .map { patient_sample, num_lanes, ch_items -> - - (meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller) = ch_items - if (meta.lane && fastq_2) { - meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] - def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' - - def flowcell = flowcellLaneFromFastq(fastq_1) - // Don't use a random element for ID, it breaks resuming - def read_group = "\"@RG\\tID:${flowcell}.${meta.sample}.${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" - - meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'fastq', size: 1] - - if (params.step == 'mapping') return [ meta, [ fastq_1, fastq_2 ] ] - else { - error("Samplesheet contains fastq files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // start from BAM - } else if (meta.lane && bam) { - if (params.step != 'mapping' && !bai) { - error("BAM index (bai) should be provided.") - } - meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] - def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' - def read_group = "\"@RG\\tID:${meta.sample}_${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" - - meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'bam', size: 1] - - if (params.step != 'annotate') return [ meta - meta.subMap('lane'), bam, bai ] - else { - error("Samplesheet contains bam files but step is `annotate`. The pipeline is expecting vcf files for the annotation. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // recalibration - } else if (table && cram) { - meta = meta + [id: meta.sample, data_type: 'cram'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai, table ] - else { - error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // recalibration when skipping MarkDuplicates - } else if (table && bam) { - meta = meta + [id: meta.sample, data_type: 'bam'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai, table ] - else { - error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // prepare_recalibration or variant_calling - } else if (cram) { - meta = meta + [id: meta.sample, data_type: 'cram'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai ] - else { - error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // prepare_recalibration when skipping MarkDuplicates or `--step markduplicates` - } else if (bam) { - meta = meta + [id: meta.sample, data_type: 'bam'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai ] - else { - error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // annotation - } else if (vcf) { - meta = meta + [id: meta.sample, data_type: 'vcf', variantcaller: variantcaller ?: ''] - - if (params.step == 'annotate') return [ meta - meta.subMap('lane'), vcf ] - else { - error("Samplesheet contains vcf files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - } else { - error("Missing or unknown field in csv file header. Please check your samplesheet") - } - } - -if (params.step != 'annotate' && params.tools && !params.build_only_index) { - // Two checks for ensuring that the pipeline stops with a meaningful error message if - // 1. the sample-sheet only contains normal-samples, but some of the requested tools require tumor-samples, and - // 2. the sample-sheet only contains tumor-samples, but some of the requested tools require normal-samples. - input_sample.filter{ it[0].status == 1 }.ifEmpty{ // In this case, the sample-sheet contains no tumor-samples - if (!params.build_only_index) { - def tools_tumor = ['ascat', 'controlfreec', 'mutect2', 'msisensorpro'] - def tools_tumor_asked = [] - tools_tumor.each{ tool -> - if (params.tools.split(',').contains(tool)) tools_tumor_asked.add(tool) - } - if (!tools_tumor_asked.isEmpty()) { - error('The sample-sheet only contains normal-samples, but the following tools, which were requested with "--tools", expect at least one tumor-sample : ' + tools_tumor_asked.join(", ")) - } - } - } - input_sample.filter{ it[0].status == 0 }.ifEmpty{ // In this case, the sample-sheet contains no normal/germline-samples - def tools_requiring_normal_samples = ['ascat', 'deepvariant', 'haplotypecaller', 'msisensorpro'] - def requested_tools_requiring_normal_samples = [] - tools_requiring_normal_samples.each{ tool_requiring_normal_samples -> - if (params.tools.split(',').contains(tool_requiring_normal_samples)) requested_tools_requiring_normal_samples.add(tool_requiring_normal_samples) - } - if (!requested_tools_requiring_normal_samples.isEmpty()) { - error('The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : ' + requested_tools_requiring_normal_samples.join(", ")) - } - } -} - -// Fails when wrongfull extension for intervals file -if (params.wes && !params.step == 'annotate') { - if (params.intervals && !params.intervals.endsWith("bed")) error("Target file specified with `--intervals` must be in BED format for targeted data") - else log.warn("Intervals file was provided without parameter `--wes`: Pipeline will assume this is Whole-Genome-Sequencing data.") -} else if (params.intervals && !params.intervals.endsWith("bed") && !params.intervals.endsWith("list")) error("Intervals file must end with .bed, .list, or .interval_list") - -if (params.step == 'mapping' && params.aligner.contains("dragmap") && !(params.skip_tools && params.skip_tools.split(',').contains("baserecalibrator"))) { - log.warn("DragMap was specified as aligner. Base recalibration is not contained in --skip_tools. It is recommended to skip baserecalibration when using DragMap\nhttps://gatk.broadinstitute.org/hc/en-us/articles/4407897446939--How-to-Run-germline-single-sample-short-variant-discovery-in-DRAGEN-mode") -} - -if (params.step == 'mapping' && params.aligner.contains("sentieon-bwamem") && params.umi_read_structure) { - error("Sentieon BWA is currently not compatible with FGBio UMI handeling. Please choose a different aligner.") -} - -if (params.tools && params.tools.split(',').contains("sentieon_haplotyper") && params.joint_germline && (!params.sentieon_haplotyper_emit_mode || !(params.sentieon_haplotyper_emit_mode.contains('gvcf')))) { - error("When setting the option `--joint_germline` and including `sentieon_haplotyper` among the requested tools, please set `--sentieon_haplotyper_emit_mode` to include `gvcf`.") -} - -// Fails or warns when missing files or params for ascat -if (params.tools && params.tools.split(',').contains('ascat')) { - if (!params.ascat_alleles) { - error("No allele files were provided for running ASCAT. Please provide a zip folder with allele files.") - } - if (!params.ascat_loci) { - error("No loci files were provided for running ASCAT. Please provide a zip folder with loci files.") - } - if (!params.ascat_loci_gc && !params.ascat_loci_rt) { - log.warn("No LogRCorrection performed in ASCAT. For LogRCorrection to run, please provide either loci gc files or both loci gc files and loci rt files.") - } - if (params.wes) { - log.warn("Default reference files not suited for running ASCAT on WES data. It's recommended to use the reference files provided here: https://github.com/Wedge-lab/battenberg#required-reference-files") - } -} - -// Warns when missing files or params for mutect2 -if (params.tools && params.tools.split(',').contains('mutect2')) { - if (!params.pon) { - log.warn("No Panel-of-normal was specified for Mutect2.\nIt is highly recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2\nFor more information on how to create one: https://gatk.broadinstitute.org/hc/en-us/articles/5358921041947-CreateSomaticPanelOfNormals-BETA-") - } - if (!params.germline_resource) { - log.warn("If Mutect2 is specified without a germline resource, no filtering will be done.\nIt is recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2") - } - if (params.pon && params.pon.contains("/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz")) { - log.warn("The default Panel-of-Normals provided by GATK is used for Mutect2.\nIt is highly recommended to generate one from normal samples that are technical similar to the tumor ones.\nFor more information: https://gatk.broadinstitute.org/hc/en-us/articles/360035890631-Panel-of-Normals-PON-") - } -} - -// Fails when missing resources for baserecalibrator -// Warns when missing resources for haplotypecaller -if (!params.dbsnp && !params.known_indels) { - if (params.step in ['mapping', 'markduplicates', 'prepare_recalibration', 'recalibrate'] && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('baserecalibrator')))) { - error("Base quality score recalibration requires at least one resource file. Please provide at least one of `--dbsnp` or `--known_indels`\nYou can skip this step in the workflow by adding `--skip_tools baserecalibrator` to the command.") - } - if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) { - log.warn "If GATK's Haplotypecaller, Sentieon's Dnascpe or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" - } -} -if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope')))) { - error("The GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") -} - -if ( - params.tools && - ( - params.tools.split(',').contains('haplotypecaller') || - params.tools.split(',').contains('sentieon_haplotyper') || - params.tools.split(',').contains('sentieon_dnascope') - ) && - params.joint_germline && - ( - !params.dbsnp || - !params.known_indels || - !params.known_snps || - params.no_intervals - ) - ) { - log.warn("""If GATK's Haplotypecaller, Sentieon's Dnascope and/or Sentieon's Haplotyper is specified, \ -but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ -no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ -see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ -Joint germline variant calling also requires intervals in order to genotype the samples. \ -As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") -} - -if (params.tools && - params.tools.split(',').contains('sentieon_dnascope') && - params.joint_germline && - ( - !params.sentieon_dnascope_emit_mode || - !params.sentieon_dnascope_emit_mode.split(',').contains('gvcf') - ) - ) { - error("When using Sentieon Dnascope for joint-germline variant-calling the option `--sentieon_dnascope_emit_mode` has to include `gvcf`.") -} - -if (params.tools && - params.tools.split(',').contains('sentieon_haplotyper') && - params.joint_germline && - ( - !params.sentieon_haplotyper_emit_mode || - !params.sentieon_haplotyper_emit_mode.split(',').contains('gvcf') - ) - ) { - error("When using Sentieon Haplotyper for joint-germline variant-calling the option `--sentieon_haplotyper_emit_mode` has to include `gvcf`.") -} - - -// Fails when --joint_mutect2 is used without enabling mutect2 -if (params.joint_mutect2 && (!params.tools || !params.tools.split(',').contains('mutect2'))) { - error("The mutect2 should be specified as one of the tools when doing joint somatic variant calling with Mutect2. (The mutect2 could be specified by adding `--tools mutect2` to the nextflow command.)") -} - -// Fails when missing tools for variant_calling or annotate -if ((params.step == 'variant_calling' || params.step == 'annotate') && !params.tools) { - error("Please specify at least one tool when using `--step ${params.step}`.\nhttps://nf-co.re/sarek/parameters#tools") -} - -// Fails when missing sex information for CNV tools -if (params.tools && (params.tools.split(',').contains('ascat') || params.tools.split(',').contains('controlfreec'))) { - input_sample.map{ - if (it[0].sex == 'NA' ) { - error("Please specify sex information for each sample in your samplesheet when using '--tools' with 'ascat' or 'controlfreec'.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - } -} - -if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { - error("Please specify either `--download_cache` or `--snpeff_cache`, `--vep_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") -} - /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT LOCAL MODULES/SUBWORKFLOWS @@ -432,6 +171,7 @@ if (params.spliceai_snv && params.spliceai_snv_tbi && params.spliceai_indel && p */ // Create samplesheets to restart from different steps +include { SAMPLESHEET_TO_CHANNEL } from '../subworkflows/local/samplesheet_to_channel/main' include { CHANNEL_ALIGN_CREATE_CSV } from '../subworkflows/local/channel_align_create_csv/main' include { CHANNEL_MARKDUPLICATES_CREATE_CSV } from '../subworkflows/local/channel_markduplicates_create_csv/main' include { CHANNEL_BASERECALIBRATOR_CREATE_CSV } from '../subworkflows/local/channel_baserecalibrator_create_csv/main' @@ -526,6 +266,17 @@ include { MULTIQC } from '../modules/nf-core workflow SAREK { + // Parse samplesheet + // Set input, can either be from --input or from automatic retrieval in WorkflowSarek.groovy + if (params.input) { + ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input") + } else { + ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input_restart") + } + SAMPLESHEET_TO_CHANNEL(ch_from_samplesheet) + + input_sample = SAMPLESHEET_TO_CHANNEL.out.input_sample + // MULTIQC ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() @@ -1371,38 +1122,6 @@ workflow.onComplete { if (params.hook_url) NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) } -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - FUNCTIONS -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ -// Parse first line of a FASTQ file, return the flowcell id and lane number. -def flowcellLaneFromFastq(path) { - // expected format: - // xx:yy:FLOWCELLID:LANE:... (seven fields) - // or - // FLOWCELLID:LANE:xx:... (five fields) - def line - path.withInputStream { - InputStream gzipStream = new java.util.zip.GZIPInputStream(it) - Reader decoder = new InputStreamReader(gzipStream, 'ASCII') - BufferedReader buffered = new BufferedReader(decoder) - line = buffered.readLine() - } - assert line.startsWith('@') - line = line.substring(1) - def fields = line.split(':') - String fcid - - if (fields.size() >= 7) { - // CASAVA 1.8+ format, from https://support.illumina.com/help/BaseSpace_OLH_009008/Content/Source/Informatics/BS/FileFormat_FASTQ-files_swBS.htm - // "@::::::: :::" - fcid = fields[2] - } else if (fields.size() == 5) { - fcid = fields[0] - } - return fcid -} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From ea4ecfded1c83f381abd442c20efdbfc46c05481 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 16 Oct 2023 14:20:54 +0000 Subject: [PATCH 092/240] updating params to explicitly state they belong to bcftools --- conf/test.config | 6 +- docs/output.md | 1 - docs/usage.md | 1 + modules.json | 3 +- .../bcftools/annotate/bcftools-annotate.diff | 89 +++++++++++++++++++ modules/nf-core/bcftools/annotate/main.nf | 10 +-- modules/nf-core/bcftools/annotate/meta.yml | 8 +- nextflow.config | 6 +- nextflow_schema.json | 4 +- subworkflows/local/vcf_annotate_all/main.nf | 8 +- workflows/sarek.nf | 18 ++-- 11 files changed, 122 insertions(+), 32 deletions(-) create mode 100644 modules/nf-core/bcftools/annotate/bcftools-annotate.diff diff --git a/conf/test.config b/conf/test.config index 85dc8d77e4..6ca8124443 100644 --- a/conf/test.config +++ b/conf/test.config @@ -36,9 +36,9 @@ params { vep_cache_version = 110 vep_genome = 'WBcel235' vep_species = 'caenorhabditis_elegans' - annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" - annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" - header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" + bcftools_annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" + bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" + bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" // default params split_fastq = 0 // no FASTQ splitting diff --git a/docs/output.md b/docs/output.md index c987e36bf4..6dbe079fec 100644 --- a/docs/output.md +++ b/docs/output.md @@ -846,7 +846,6 @@ plus any additional filed selected via the plugins: [dbNSFP](https://sites.googl
- ## Quality control and reporting ### Quality control diff --git a/docs/usage.md b/docs/usage.md index 2b0f854f37..b3df6a9527 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1049,6 +1049,7 @@ For more details, see [here](https://www.ensembl.org/info/docs/tools/vep/script/ ### BCFTOOLS Annotate It is possible to annotate a VCF file with a custom annotation file using [BCFTOOLS Annotate](https://samtools.github.io/bcftools/bcftools.html#annotate). This can be done by setting adding bcfann to the tools list and setting the following parameters: + - annotations: path to vcf annotation file - annotations_index: path to vcf annotation index file - header_lines: path to header lines file diff --git a/modules.json b/modules.json index 84c2ff6f9f..1d26adde98 100644 --- a/modules.json +++ b/modules.json @@ -13,7 +13,8 @@ "bcftools/annotate": { "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", - "installed_by": ["modules"] + "installed_by": ["modules"], + "patch": "modules/nf-core/bcftools/annotate/bcftools-annotate.diff" }, "bcftools/concat": { "branch": "master", diff --git a/modules/nf-core/bcftools/annotate/bcftools-annotate.diff b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff new file mode 100644 index 0000000000..7025cfaa26 --- /dev/null +++ b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff @@ -0,0 +1,89 @@ +Changes in module 'nf-core/bcftools/annotate' +--- modules/nf-core/bcftools/annotate/main.nf ++++ modules/nf-core/bcftools/annotate/main.nf +@@ -5,14 +5,17 @@ + conda "bioconda::bcftools=1.17" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': +- 'biocontainers/bcftools:1.17--haef29d1_0' }" ++ 'quay.io/biocontainers/bcftools:1.17--haef29d1_0' }" + + input: +- tuple val(meta), path(input), path(index), path(annotations), path(annotations_index), path(header_lines) ++ tuple val(meta), path(vcf) ++ path bcftools_annotations ++ path bcftools_annotations_index ++ path bcftools_header_lines + + output: +- tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf +- path "versions.yml" , emit: versions ++ tuple val(meta), path("*.vcf.gz"), emit: vcf ++ path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when +@@ -20,15 +23,19 @@ + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" +- def header_file = header_lines ? "--header-lines ${header_lines}" : '' +- def annotations_file = annotations ? "--annotations ${annotations}" : '' ++ def header_file = bcftools_header_lines ? "--header-lines ${bcftools_header_lines}" : '' ++ def annotations_file = bcftools_annotations ? "--annotations ${bcftools_annotations}" : '' + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" +- if ("$input" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" ++ if ("$vcf" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + """ ++ bcftools \\ ++ index \\ ++ $vcf ++ + bcftools \\ + annotate \\ + $args \\ +@@ -36,7 +43,7 @@ + $header_file \\ + --output ${prefix}.${extension} \\ + --threads $task.cpus \\ +- $input ++ $vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": +@@ -60,4 +67,4 @@ + bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) + END_VERSIONS + """ +-} ++} +--- modules/nf-core/bcftools/annotate/meta.yml ++++ modules/nf-core/bcftools/annotate/meta.yml +@@ -26,13 +26,13 @@ + - index: + type: file + description: Index of the query VCF or BCF file +- - annotations: ++ - bcftools_annotations: + type: file + description: Bgzip-compressed file with annotations +- - annotations_index: ++ - bcftools_annotations_index: + type: file + description: Index of the annotations file +- - header_lines: ++ - bcftools_header_lines: + type: file + description: Contains lines to append to the output VCF header + +@@ -53,4 +53,4 @@ + + authors: + - "@projectoriented" +- - "@ramprasadn" ++ - "@ramprasadn" +************************************************************ diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf index 0ea7baf5b4..58c189a60f 100644 --- a/modules/nf-core/bcftools/annotate/main.nf +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -9,9 +9,9 @@ process BCFTOOLS_ANNOTATE { input: tuple val(meta), path(vcf) - path annotations - path annotations_index - path header_lines + path bcftools_annotations + path bcftools_annotations_index + path bcftools_header_lines output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -23,8 +23,8 @@ process BCFTOOLS_ANNOTATE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def header_file = header_lines ? "--header-lines ${header_lines}" : '' - def annotations_file = annotations ? "--annotations ${annotations}" : '' + def header_file = bcftools_header_lines ? "--header-lines ${bcftools_header_lines}" : '' + def annotations_file = bcftools_annotations ? "--annotations ${bcftools_annotations}" : '' def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : diff --git a/modules/nf-core/bcftools/annotate/meta.yml b/modules/nf-core/bcftools/annotate/meta.yml index 201d890aed..c8a389697e 100644 --- a/modules/nf-core/bcftools/annotate/meta.yml +++ b/modules/nf-core/bcftools/annotate/meta.yml @@ -26,13 +26,13 @@ input: - index: type: file description: Index of the query VCF or BCF file - - annotations: + - bcftools_annotations: type: file description: Bgzip-compressed file with annotations - - annotations_index: + - bcftools_annotations_index: type: file description: Index of the annotations file - - header_lines: + - bcftools_header_lines: type: file description: Contains lines to append to the output VCF header @@ -53,4 +53,4 @@ output: authors: - "@projectoriented" - - "@ramprasadn" \ No newline at end of file + - "@ramprasadn" diff --git a/nextflow.config b/nextflow.config index 08dc511c15..4851655cd9 100644 --- a/nextflow.config +++ b/nextflow.config @@ -92,9 +92,9 @@ params { vep_out_format = "vcf" vep_spliceai = null // spliceai plugin disabled within VEP vep_spliceregion = null // spliceregion plugin disabled within VEP - annotations = null // No extra annotation file - annotations_index = null // No extra annotation file index - header_lines = null // No header lines to be added to the VCF file + bcftools_annotations = null // No extra annotation file + bcftools_annotations_index = null // No extra annotation file index + bcftools_header_lines = null // No header lines to be added to the VCF file // MultiQC options multiqc_config = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 3fb5b0bb2a..130f42a05c 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -543,11 +543,11 @@ "type": "string", "fa_icon": "fas fa-file" }, - "annotations_index": { + "bcftools_annotations_index": { "type": "string", "fa_icon": "fas fa-file" }, - "header_lines": { + "bcftools_header_lines": { "type": "string", "fa_icon": "fas fa-align-center" } diff --git a/subworkflows/local/vcf_annotate_all/main.nf b/subworkflows/local/vcf_annotate_all/main.nf index 559719494b..199aae3b5f 100644 --- a/subworkflows/local/vcf_annotate_all/main.nf +++ b/subworkflows/local/vcf_annotate_all/main.nf @@ -19,9 +19,9 @@ workflow VCF_ANNOTATE_ALL { vep_cache_version vep_cache vep_extra_files - annotations - annotations_index - header_lines + bcftools_annotations + bcftools_annotations_index + bcftools_header_lines main: reports = Channel.empty() @@ -31,7 +31,7 @@ workflow VCF_ANNOTATE_ALL { versions = Channel.empty() if (tools.split(',').contains('bcfann')) { - VCF_ANNOTATE_BCFTOOLS(vcf, annotations, annotations_index, header_lines) + VCF_ANNOTATE_BCFTOOLS(vcf, bcftools_annotations, bcftools_annotations_index, bcftools_header_lines) vcf_ann = vcf_ann.mix(VCF_ANNOTATE_BCFTOOLS.out.vcf_tbi) versions = versions.mix(VCF_ANNOTATE_BCFTOOLS.out.versions) diff --git a/workflows/sarek.nf b/workflows/sarek.nf index aa10711ba9..f2987529bf 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -54,9 +54,9 @@ def checkPathParamList = [ params.spliceai_indel_tbi, params.spliceai_snv, params.spliceai_snv_tbi, - params.annotations, - params.annotations_index, - params.header_lines + params.bcftools_annotations, + params.bcftools_annotations_index, + params.bcftools_header_lines ] // only check if we are using the tools @@ -324,9 +324,9 @@ snpeff_db = params.snpeff_db ?: Channel.empty() vep_cache_version = params.vep_cache_version ?: Channel.empty() vep_genome = params.vep_genome ?: Channel.empty() vep_species = params.vep_species ?: Channel.empty() -annotations = params.annotations ?: Channel.empty() -annotations_index = params.annotations_index ?: Channel.empty() -header_lines = params.header_lines ?: Channel.empty() +bcftools_annotations = params.bcftools_annotations ?: Channel.empty() +bcftools_annotations_index = params.bcftools_annotations_index ?: Channel.empty() +bcftools_header_lines = params.bcftools_header_lines ?: Channel.empty() // Initialize files channels based on params, not defined within the params.genomes[params.genome] scope if (params.snpeff_cache && params.tools && params.tools.contains("snpeff")) { @@ -1258,9 +1258,9 @@ workflow SAREK { vep_cache_version, vep_cache, vep_extra_files, - annotations, - annotations_index, - header_lines) + bcftools_annotations, + bcftools_annotations_index, + bcftools_header_lines) // Gather used softwares versions versions = versions.mix(VCF_ANNOTATE_ALL.out.versions) From 7b25cf7647c4516da0b1f8a3cc8d67516e623654 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 16 Oct 2023 14:27:13 +0000 Subject: [PATCH 093/240] Adding labels to the local modules --- modules/local/add_info_to_vcf/main.nf | 1 + modules/local/build_intervals/main.nf | 1 + modules/local/create_intervals_bed/main.nf | 1 + 3 files changed, 3 insertions(+) diff --git a/modules/local/add_info_to_vcf/main.nf b/modules/local/add_info_to_vcf/main.nf index 875acdff79..ec0ea4c7b6 100644 --- a/modules/local/add_info_to_vcf/main.nf +++ b/modules/local/add_info_to_vcf/main.nf @@ -1,5 +1,6 @@ process ADD_INFO_TO_VCF { tag "$meta.id" + label 'process_low' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/local/build_intervals/main.nf b/modules/local/build_intervals/main.nf index 29a6b5afad..fabda85dde 100644 --- a/modules/local/build_intervals/main.nf +++ b/modules/local/build_intervals/main.nf @@ -1,5 +1,6 @@ process BUILD_INTERVALS { tag "$meta.id" + label 'process_low' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/local/create_intervals_bed/main.nf b/modules/local/create_intervals_bed/main.nf index 4ade5d8b0c..9e221f7ed5 100644 --- a/modules/local/create_intervals_bed/main.nf +++ b/modules/local/create_intervals_bed/main.nf @@ -1,5 +1,6 @@ process CREATE_INTERVALS_BED { tag "$intervals" + label 'process_low' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From 412a632bdc8851c66eaaf69e12f5c114ed01d216 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 16 Oct 2023 14:45:23 +0000 Subject: [PATCH 094/240] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07f67f2258..570e655d77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for Mutect2 joint calling +- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_low` to local modules. ### Dependencies From 49d5fd1e68becae317bc5439d1e16b353bbd5d64 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 16 Oct 2023 14:59:29 +0000 Subject: [PATCH 095/240] updating schema --- nextflow_schema.json | 1 + 1 file changed, 1 insertion(+) diff --git a/nextflow_schema.json b/nextflow_schema.json index d5dada8bc0..2f41f24864 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -100,6 +100,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", + "pattern": "^((ascat|bcfann|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? Date: Mon, 16 Oct 2023 15:04:18 +0000 Subject: [PATCH 096/240] adding new line to header --- tests/config/bcfann_test_header.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/bcfann_test_header.txt b/tests/config/bcfann_test_header.txt index de8020b3e3..443dd3ea4a 100644 --- a/tests/config/bcfann_test_header.txt +++ b/tests/config/bcfann_test_header.txt @@ -1 +1 @@ -##INFO= \ No newline at end of file +##INFO= From 527ddb12744b6dce4f222c0304a730f0563ea55d Mon Sep 17 00:00:00 2001 From: grantn5 <127763095+grantn5@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:07:56 +0100 Subject: [PATCH 097/240] Update docs/output.md Co-authored-by: Maxime U Garcia --- docs/output.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/output.md b/docs/output.md index e82c3c1735..b21539cc4c 100644 --- a/docs/output.md +++ b/docs/output.md @@ -719,7 +719,7 @@ The file `.cnvs.txt` contains all segments predicte - file containing copy number segment information - `.genemetrics.tsv` - file containing per gene copy number information (if input files are annotated) - +
Output files for tumor/normal samples From fef4d51803772c84ffcf1c71bfca04b41ffaa321 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 16 Oct 2023 15:10:30 +0000 Subject: [PATCH 098/240] updating changelog --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e529700c8b..2244906bbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## dev -- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module -- [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev - ### Added +- [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev From fb7cd94615ad2d7282f715a52366381c8c58a8d1 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Mon, 16 Oct 2023 15:28:42 +0000 Subject: [PATCH 099/240] prettier run --- CHANGELOG.md | 1 - docs/output.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b56ff669a..adf39f64de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev diff --git a/docs/output.md b/docs/output.md index b21539cc4c..e82c3c1735 100644 --- a/docs/output.md +++ b/docs/output.md @@ -719,7 +719,7 @@ The file `.cnvs.txt` contains all segments predicte - file containing copy number segment information - `.genemetrics.tsv` - file containing per gene copy number information (if input files are annotated) -
+
Output files for tumor/normal samples From 34345ce816928c29f7deeddfeafc3c4b3ce55017 Mon Sep 17 00:00:00 2001 From: grantn5 <127763095+grantn5@users.noreply.github.com> Date: Mon, 16 Oct 2023 17:01:54 +0100 Subject: [PATCH 100/240] Update nextflow_schema.json Co-authored-by: Maxime U Garcia --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 2f41f24864..bc8bde5d79 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -100,7 +100,7 @@ "fa_icon": "fas fa-toolbox", "description": "Tools to use for duplicate marking, variant calling and/or for annotation.", "help_text": "Multiple tools separated with commas.\n\n**Variant Calling:**\n\nGermline variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: DeepVariant, FreeBayes, GATK HaplotypeCaller, mpileup, Sentieon Haplotyper, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit\n\nTumor-only somatic variant calling can currently be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, mpileup, Mutect2, Strelka\n- Structural Variants: Manta, TIDDIT\n- Copy-number: CNVKit, ControlFREEC\n\nSomatic variant calling can currently only be performed with the following variant callers:\n- SNPs/Indels: FreeBayes, Mutect2, Strelka2\n- Structural variants: Manta, TIDDIT\n- Copy-Number: ASCAT, CNVKit, Control-FREEC\n- Microsatellite Instability: MSIsensorpro\n\n> **NB** Mutect2 for somatic variant calling cannot be combined with `--no_intervals`\n\n**Annotation:**\n \n- snpEff, VEP, merge (both consecutively).\n\n> **NB** As Sarek will use bgzip and tabix to compress and index VCF files annotated, it expects VCF files to be sorted when starting from `--step annotate`.", - "pattern": "^((ascat|bcfann|cnvkit|controlfreec|deepvariant|freebayes|haplotypecaller|sentieon_haplotyper|manta|merge|mpileup|msisensorpro|mutect2|sentieon_dedup|snpeff|strelka|tiddit|vep)?,?)*(? Date: Mon, 16 Oct 2023 16:03:52 +0000 Subject: [PATCH 101/240] updating schema --- nextflow_schema.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index bc8bde5d79..de94df6b8b 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -1070,11 +1070,5 @@ { "$ref": "#/definitions/generic_options" } - ], - "properties": { - "validationSchemaIgnoreParams": { - "type": "string", - "default": "cf_ploidy,genomes,igenomes_base" - } - } + ] } From 3916aaa810adc9ce672a82cff0fccc6fdb468738 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:12:36 +0200 Subject: [PATCH 102/240] Add an nf-test CI --- .github/workflows/ci.yml | 133 ++++++++++++++++++++++++++++++++++++--- CHANGELOG.md | 1 + 2 files changed, 127 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 361fca04fe..a67388d8f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,34 +11,40 @@ on: - master - dev +env: + NXF_ANSI_LOG: false + NFTEST_VER: "0.8.1" + # Cancel if a newer run is started concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: - changes: - name: Check for changes + pytest-changes: + name: Check for changes (pytest) runs-on: ubuntu-latest outputs: # Expose matched filters as job 'tags' output variable tags: ${{ steps.filter.outputs.changes }} steps: - uses: actions/checkout@v3 - - uses: dorny/paths-filter@v2 + + - uses: frouioui/paths-filter@main id: filter with: - filters: "tests/config/tags.yml" + filters: ".github/tags.yml" + token: "" - test: + pytest: name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} runs-on: ubuntu-latest needs: changes - if: needs.changes.outputs.tags != '[]' + if: needs.pytest-changes.outputs.tags != '[]' strategy: fail-fast: false matrix: - tags: ["${{ fromJson(needs.changes.outputs.tags) }}"] + tags: ["${{ fromJson(needs.pytest-changes.outputs.tags) }}"] profile: ["docker"] # profile: ["docker", "singularity", "conda"] TEST_DATA_BASE: @@ -50,6 +56,7 @@ jobs: NXF_ANSI_LOG: false TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + steps: - name: Check out pipeline code uses: actions/checkout@v3 @@ -154,6 +161,118 @@ jobs: !/home/runner/pytest_workflow_*/*/work/conda !/home/runner/pytest_workflow_*/*/work/singularity + nftest-changes: + name: Check for changes (nf-test) + runs-on: ubuntu-latest + outputs: + tags: ${{ steps.filter.outputs.changes }} + steps: + - name: Combine all tags.yml files + id: get_username + run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml + + - name: debug + run: cat .github/tags.yml + + - uses: frouioui/paths-filter@main + id: filter + with: + filters: ".github/tags.yml" + token: "" + + nftest: + name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} + runs-on: ubuntu-latest + needs: changes + if: needs.nftest-changes.outputs.tags != '[]' + strategy: + fail-fast: false + matrix: + tags: ["${{ fromJson(needs.nftest-changes.outputs.tags) }}"] + profile: ["docker"] + # profile: ["docker", "singularity", "conda"] + TEST_DATA_BASE: + - "test-datasets/data" + NXF_VER: + - "23.04.0" + - "latest-everything" + env: + NXF_ANSI_LOG: false + TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" + SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }} + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + distribution: "temurin" + java-version: "17" + - name: Setup Nextflow + uses: nf-core/setup-nextflow@v1 + + - name: Cache nf-test installation + id: cache-software + uses: actions/cache@v3 + with: + path: | + /usr/local/bin/nf-test + /home/runner/.nf-test/nf-test.jar + key: ${{ runner.os }}-${{ env.NFTEST_VER }}-nftest + + - name: Install nf-test + if: steps.cache-software.outputs.cache-hit != 'true' + run: | + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ + + - name: Setup apptainer + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-apptainer@main + + - name: Set up Singularity + if: matrix.profile == 'singularity' + run: | + mkdir -p $NXF_SINGULARITY_CACHEDIR + mkdir -p $NXF_SINGULARITY_LIBRARYDIR + + - name: Set up miniconda + uses: conda-incubator/setup-miniconda@v2 + with: + miniconda-version: "latest" + auto-update-conda: true + channels: conda-forge,bioconda,defaults + python-version: ${{ matrix.python-version }} + + - name: Conda setup + run: | + conda clean -a + conda install -n base conda-libmamba-solver + conda config --set solver libmamba + echo $(realpath $CONDA)/condabin >> $GITHUB_PATH + echo $(realpath python) >> $GITHUB_PATH + + # Set up secrets + - name: Set up nextflow secrets + if: env.SENTIEON_LICENSE_BASE64 != null + run: | + nextflow secrets set SENTIEON_LICENSE_BASE64 ${{ secrets.SENTIEON_LICENSE_BASE64 }} + nextflow secrets set SENTIEON_AUTH_MECH_BASE64 ${{ secrets.SENTIEON_AUTH_MECH_BASE64 }} + SENTIEON_ENCRYPTION_KEY=$(echo -n "${{ secrets.ENCRYPTION_KEY_BASE64 }}" | base64 -d) + SENTIEON_LICENSE_MESSAGE=$(echo -n "${{ secrets.LICENSE_MESSAGE_BASE64 }}" | base64 -d) + SENTIEON_AUTH_DATA=$(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) + nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 + + # Test the module + - name: Run nf-test + run: | + nf-test test \ + --profile=${{ matrix.profile }} \ + --tag ${{ matrix.tags }} \ + --tap=test.tap \ + --verbose + confirm-pass: runs-on: ubuntu-latest needs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 86db9aae32..77ac51444e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ Rapaselet is a delta formed by the Rapaätno river between the Bielloriehppe mas - [#1173](https://github.com/nf-core/sarek/pull/1173) - CI tests for VQSR track with stub runs - [#1122](https://github.com/nf-core/sarek/pull/1122), [#1196](https://github.com/nf-core/sarek/pull/1196) - Add `annotation cache` functionality - [#1184](https://github.com/nf-core/sarek/pull/1184) - Stub-based CI-test of Sentieon joint-germline variant-calling with VQSR +- NF-TEST CI ### Changed From 703482d846824e1bbf1ea4a1bf9e21aace043986 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:16:17 +0200 Subject: [PATCH 103/240] fix --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a67388d8f2..ca6d1a3b1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: pytest: name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} runs-on: ubuntu-latest - needs: changes + needs: pytest-changes if: needs.pytest-changes.outputs.tags != '[]' strategy: fail-fast: false @@ -183,7 +183,7 @@ jobs: nftest: name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} runs-on: ubuntu-latest - needs: changes + needs: nftest-changes if: needs.nftest-changes.outputs.tags != '[]' strategy: fail-fast: false From 5fb95e74feaf67cbd1978d2d62fe742458612fc1 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:17:24 +0200 Subject: [PATCH 104/240] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ac51444e..60d77c29df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ Rapaselet is a delta formed by the Rapaätno river between the Bielloriehppe mas - [#1173](https://github.com/nf-core/sarek/pull/1173) - CI tests for VQSR track with stub runs - [#1122](https://github.com/nf-core/sarek/pull/1122), [#1196](https://github.com/nf-core/sarek/pull/1196) - Add `annotation cache` functionality - [#1184](https://github.com/nf-core/sarek/pull/1184) - Stub-based CI-test of Sentieon joint-germline variant-calling with VQSR -- NF-TEST CI +- [#1288](https://github.com/nf-core/sarek/pull/1288) - Add nf-test continuous integration. ### Changed From 4680ff70c22ea80537b667482d06008bc1d8b630 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Mon, 16 Oct 2023 18:18:16 +0200 Subject: [PATCH 105/240] fixxx --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca6d1a3b1c..4ed26dee82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -276,7 +276,8 @@ jobs: confirm-pass: runs-on: ubuntu-latest needs: - - test + - pytest + - nftest if: always() steps: - name: All tests ok From 9ea1aad711617869d9472fa02a4172dfd9f3446c Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 16 Oct 2023 16:22:20 +0000 Subject: [PATCH 106/240] fix spelling --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adf39f64de..0944a04b05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module -- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline. +- [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev ### Changed From 59b079371a1a6456cc4487c0a866a9f761e9d855 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Mon, 16 Oct 2023 16:58:14 +0000 Subject: [PATCH 107/240] Setting label on local processes to process_single --- CHANGELOG.md | 2 +- modules/local/add_info_to_vcf/main.nf | 2 +- modules/local/build_intervals/main.nf | 2 +- modules/local/create_intervals_bed/main.nf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 570e655d77..5455b40be7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for Mutect2 joint calling -- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_low` to local modules. +- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules. ### Dependencies diff --git a/modules/local/add_info_to_vcf/main.nf b/modules/local/add_info_to_vcf/main.nf index ec0ea4c7b6..f36eb20062 100644 --- a/modules/local/add_info_to_vcf/main.nf +++ b/modules/local/add_info_to_vcf/main.nf @@ -1,6 +1,6 @@ process ADD_INFO_TO_VCF { tag "$meta.id" - label 'process_low' + label 'process_single' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/local/build_intervals/main.nf b/modules/local/build_intervals/main.nf index fabda85dde..8f8f0df23e 100644 --- a/modules/local/build_intervals/main.nf +++ b/modules/local/build_intervals/main.nf @@ -1,6 +1,6 @@ process BUILD_INTERVALS { tag "$meta.id" - label 'process_low' + label 'process_single' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/local/create_intervals_bed/main.nf b/modules/local/create_intervals_bed/main.nf index 9e221f7ed5..26c2689346 100644 --- a/modules/local/create_intervals_bed/main.nf +++ b/modules/local/create_intervals_bed/main.nf @@ -1,6 +1,6 @@ process CREATE_INTERVALS_BED { tag "$intervals" - label 'process_low' + label 'process_single' conda "anaconda::gawk=5.1.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From 514e18c67ff283c8c2ca826ff59cc0221b6fcdfa Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 09:21:55 +0200 Subject: [PATCH 108/240] Fix pytest tags --- .github/workflows/ci.yml | 2 +- nextflow.config | 18 ++++++++++++++++++ tests/tags.yml | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/tags.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ed26dee82..8d584ee553 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: - uses: frouioui/paths-filter@main id: filter with: - filters: ".github/tags.yml" + filters: "tests/config/tags.yml" token: "" pytest: diff --git a/nextflow.config b/nextflow.config index e9ec2a66da..1cb0d5b768 100644 --- a/nextflow.config +++ b/nextflow.config @@ -134,6 +134,24 @@ params { validate_params = true } +tower { + enabled = true + workspaceId = '70508760960023' +} + +wave { + enabled = true +} + +fusion { + enabled = true +} + +wave.build.repository = 'seqeralabsdev.azurecr.io/wave' +wave.build.cacheRepository = 'seqeralabsdev.azurecr.io/cache' +wave.strategy = 'conda,dockerfile,spack,container' +wave.freeze = true + // Load base.config by default for all pipelines includeConfig 'conf/base.config' diff --git a/tests/tags.yml b/tests/tags.yml new file mode 100644 index 0000000000..0b52c379ca --- /dev/null +++ b/tests/tags.yml @@ -0,0 +1,5 @@ +pipeline_sarek: + - "**.nf" + - "**.config" + - "**.nf.test" + - "**.json" From c180a91eadebc334576fb5bb0921d8fd69b60328 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 09:41:12 +0200 Subject: [PATCH 109/240] Revert config item --- nextflow.config | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/nextflow.config b/nextflow.config index 1cb0d5b768..e9ec2a66da 100644 --- a/nextflow.config +++ b/nextflow.config @@ -134,24 +134,6 @@ params { validate_params = true } -tower { - enabled = true - workspaceId = '70508760960023' -} - -wave { - enabled = true -} - -fusion { - enabled = true -} - -wave.build.repository = 'seqeralabsdev.azurecr.io/wave' -wave.build.cacheRepository = 'seqeralabsdev.azurecr.io/cache' -wave.strategy = 'conda,dockerfile,spack,container' -wave.freeze = true - // Load base.config by default for all pipelines includeConfig 'conf/base.config' From 52e70dc10810ce2e8c45200b5ae3331a860d0715 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 10:48:50 +0200 Subject: [PATCH 110/240] Add empty tags file --- .github/tags.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .github/tags.yml diff --git a/.github/tags.yml b/.github/tags.yml new file mode 100644 index 0000000000..e69de29bb2 From 22bddc963c4676cd1573c5d2f3f379b028e7401c Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:08:37 +0200 Subject: [PATCH 111/240] quote run --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d584ee553..a7ffb35e2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -169,7 +169,7 @@ jobs: steps: - name: Combine all tags.yml files id: get_username - run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml + run: 'find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml' - name: debug run: cat .github/tags.yml From 06d9dda8c017ccdf6894f10c75903492ba361fa5 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:14:10 +0200 Subject: [PATCH 112/240] checkout repo before running --- .github/workflows/ci.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a7ffb35e2f..6139e9a113 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -166,10 +166,13 @@ jobs: runs-on: ubuntu-latest outputs: tags: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@v3 + - name: Combine all tags.yml files - id: get_username - run: 'find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml' + id: get_tags + run: find . -name "tags.yml" -not -path "./.github/*" -exec cat {} + > .github/tags.yml - name: debug run: cat .github/tags.yml From 6848818a5d23d5e0c2795f49721a06dec55e2ae2 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:33:39 +0200 Subject: [PATCH 113/240] Add nf-test --- .gitignore | 12 +++++++----- nf-test.config | 8 ++++++++ tests/main.nf.test | 28 ++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 nf-test.config create mode 100644 tests/main.nf.test diff --git a/.gitignore b/.gitignore index e90c12ab54..936a50d19f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ *.code-workspace +*.pyc .nextflow* -work/ -data/ -results/ .DS_Store -testing/ +.nf-test.log +.nf-test/ +data/ testing* -*.pyc +testing/ test-datasets/ +results/ +work/ \ No newline at end of file diff --git a/nf-test.config b/nf-test.config new file mode 100644 index 0000000000..c1ffc5e16c --- /dev/null +++ b/nf-test.config @@ -0,0 +1,8 @@ +config { + + testsDir "tests" + workDir ".nf-test" + configFile "conf/test.config" + profile "test" + +} diff --git a/tests/main.nf.test b/tests/main.nf.test new file mode 100644 index 0000000000..33d3577928 --- /dev/null +++ b/tests/main.nf.test @@ -0,0 +1,28 @@ +nextflow_pipeline { + + name "Test pipeline" + script "../main.nf" + tag "pipeline" + tag "pipeline_sarek" + + test("Run with profile test") { + + when { + params { + outdir = "results" + max_cpus = 2 + max_memory = '6.GB' + max_time = '6.h' + input = "$projectDir/tests/csv/3.0/fastq_pair.csv" + validationSchemaIgnoreParams = 'test_data_base,test_data' + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } + +} \ No newline at end of file From 78ab498a32666b069ea940d57e461969c16f9fd6 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:50:17 +0200 Subject: [PATCH 114/240] Add .gitignore to files_unchanged --- .nf-core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.nf-core.yml b/.nf-core.yml index ee325600a3..36189e1fcb 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -5,6 +5,7 @@ lint: - .github/workflows/awsfulltest.yml - conf/modules.config files_unchanged: + - .gitignore - assets/nf-core-sarek_logo_light.png - docs/images/nf-core-sarek_logo_dark.png - docs/images/nf-core-sarek_logo_light.png From 2873e2baeedcdcc6b1b24a6445f2b906869df50e Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:50:17 +0200 Subject: [PATCH 115/240] Add .gitignore to files_unchanged --- .nf-core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.nf-core.yml b/.nf-core.yml index a6a655b221..b67cd20f88 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -4,6 +4,7 @@ lint: files_exist: - conf/modules.config files_unchanged: + - .gitignore - assets/nf-core-sarek_logo_light.png - docs/images/nf-core-sarek_logo_dark.png - docs/images/nf-core-sarek_logo_light.png From de668ba066044c99738814f5a3ed2bc7e5751b9d Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:51:35 +0200 Subject: [PATCH 116/240] Remove extra tags.yml --- .github/tags.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/tags.yml diff --git a/.github/tags.yml b/.github/tags.yml deleted file mode 100644 index e69de29bb2..0000000000 From 9f7d6855aa2a39fd2a7a218e4aca3ee53e573888 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:54:46 +0200 Subject: [PATCH 117/240] eclint --- tests/main.nf.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/main.nf.test b/tests/main.nf.test index 33d3577928..1b4e18a2e0 100644 --- a/tests/main.nf.test +++ b/tests/main.nf.test @@ -25,4 +25,4 @@ nextflow_pipeline { } } -} \ No newline at end of file +} From 15ee9390ddc92342ca19b350ac3ed3964442787a Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:53:09 +0200 Subject: [PATCH 118/240] Separate pytest from nf-test tags files --- .github/workflows/ci.yml | 2 +- tests/config/{tags.yml => pytesttags.yml} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename tests/config/{tags.yml => pytesttags.yml} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6139e9a113..625143e93f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: - uses: frouioui/paths-filter@main id: filter with: - filters: "tests/config/tags.yml" + filters: "tests/config/pytesttags.yml" token: "" pytest: diff --git a/tests/config/tags.yml b/tests/config/pytesttags.yml similarity index 100% rename from tests/config/tags.yml rename to tests/config/pytesttags.yml From d9b2293d616cbe47b184177d86e65f2aed77b5b6 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 16:37:01 +0200 Subject: [PATCH 119/240] Minor fixes for nf-test --- CHANGELOG.md | 1 + tests/main.nf.test | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56f7f6249c..7b8c7f3b33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev +- [###]() - Add nf-test for whole pipeline. ### Changed diff --git a/tests/main.nf.test b/tests/main.nf.test index 1b4e18a2e0..ad9209ab88 100644 --- a/tests/main.nf.test +++ b/tests/main.nf.test @@ -9,12 +9,13 @@ nextflow_pipeline { when { params { - outdir = "results" - max_cpus = 2 - max_memory = '6.GB' - max_time = '6.h' - input = "$projectDir/tests/csv/3.0/fastq_pair.csv" - validationSchemaIgnoreParams = 'test_data_base,test_data' + outdir = "results" + max_cpus = 2 + max_memory = '6.GB' + max_time = '6.h' + input = "$projectDir/tests/csv/3.0/fastq_pair.csv" + validationSchemaIgnoreParams = 'test_data_base,test_data,genomes' + use_gatk_spark = false } } From 67901679aeebba7cb1e89ccae639182c7dd89a53 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Tue, 17 Oct 2023 17:48:29 +0200 Subject: [PATCH 120/240] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b8c7f3b33..c00837cf16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev -- [###]() - Add nf-test for whole pipeline. +- [#1290](https://github.com/nf-core/sarek/pull/1290) - Add nf-test for whole pipeline. ### Changed From 8c7d04ed98818d025a7e93296bb0bf6800aa64b8 Mon Sep 17 00:00:00 2001 From: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Date: Wed, 18 Oct 2023 09:50:06 +0200 Subject: [PATCH 121/240] Apply suggestions from code review Co-authored-by: Friederike Hanssen --- nf-test.config | 2 +- subworkflows/local/samplesheet_to_channel/main.nf | 7 ------- subworkflows/local/samplesheet_to_channel/main.nf.test | 4 ++-- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/nf-test.config b/nf-test.config index 257946ae65..c60f901961 100644 --- a/nf-test.config +++ b/nf-test.config @@ -1,6 +1,6 @@ config { testsDir "." workDir ".nf-test" - configFile "nextflow.config" + configFile "conf/test.config" profile "test" } diff --git a/subworkflows/local/samplesheet_to_channel/main.nf b/subworkflows/local/samplesheet_to_channel/main.nf index b4a153b0eb..458651ee3a 100644 --- a/subworkflows/local/samplesheet_to_channel/main.nf +++ b/subworkflows/local/samplesheet_to_channel/main.nf @@ -1,10 +1,3 @@ -// TODO nf-core: If in doubt look at other nf-core/subworkflows to see how we are doing things! :) -// https://github.com/nf-core/modules/tree/master/subworkflows -// You can also ask for help via your pull request or on the #subworkflows channel on the nf-core Slack workspace: -// https://nf-co.re/join -// TODO nf-core: A subworkflow SHOULD import at least two modules - - workflow SAMPLESHEET_TO_CHANNEL{ take: diff --git a/subworkflows/local/samplesheet_to_channel/main.nf.test b/subworkflows/local/samplesheet_to_channel/main.nf.test index 3d0ceff009..49eeb2a132 100644 --- a/subworkflows/local/samplesheet_to_channel/main.nf.test +++ b/subworkflows/local/samplesheet_to_channel/main.nf.test @@ -17,8 +17,8 @@ nextflow_workflow { // define inputs of the workflow here. Example: input[0] = Channel.of([['patient':'test', 'sample':'test', 'sex':'XX', 'status':0, 'lane':'test_L1'], - file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz'), - file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz'), + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), [], [], [], [], [], [], []]) """ } From ed389992a59e14b83218255b43d3a11647673755 Mon Sep 17 00:00:00 2001 From: grantn5 Date: Wed, 18 Oct 2023 10:57:29 +0200 Subject: [PATCH 122/240] adding myself as contributor --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 01b78b7efa..3b23e57806 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,7 @@ We thank the following people for their extensive assistance in the development - [Szilveszter Juhos](https://github.com/szilvajuhos) - [Tobias Koch](https://github.com/KochTobi) - [Winni Kretzschmar](https://github.com/winni2k) +- [Grant Neilson](https://github.com/grantn5) ## Acknowledgements From 8dca8c0211e8093dd4caee0c5a2a87fa5aea41c0 Mon Sep 17 00:00:00 2001 From: grantn5 Date: Wed, 18 Oct 2023 11:20:44 +0200 Subject: [PATCH 123/240] changing position in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b23e57806..c128e04955 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ We thank the following people for their extensive assistance in the development - [Francesco Lescai](https://github.com/lescai) - [Gavin Mackenzie](https://github.com/GCJMackenzie) - [Gisela Gabernet](https://github.com/ggabernet) +- [Grant Neilson](https://github.com/grantn5) - [gulfshores](https://github.com/gulfshores) - [Harshil Patel](https://github.com/drpatelh) - [James A. Fellows Yates](https://github.com/jfy133) @@ -157,7 +158,6 @@ We thank the following people for their extensive assistance in the development - [Szilveszter Juhos](https://github.com/szilvajuhos) - [Tobias Koch](https://github.com/KochTobi) - [Winni Kretzschmar](https://github.com/winni2k) -- [Grant Neilson](https://github.com/grantn5) ## Acknowledgements From 9d707eff0fbf2479a9daa732bcb8810d870e071c Mon Sep 17 00:00:00 2001 From: grantn5 Date: Wed, 18 Oct 2023 12:19:03 +0200 Subject: [PATCH 124/240] adding bcfann test --- tests/test_annotation_bcfann.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/test_annotation_bcfann.yml diff --git a/tests/test_annotation_bcfann.yml b/tests/test_annotation_bcfann.yml new file mode 100644 index 0000000000..ae429d066f --- /dev/null +++ b/tests/test_annotation_bcfann.yml @@ -0,0 +1,10 @@ +- name: Run bcfann + command: nextflow run main.nf -profile test_cache,annotation --tools bcfann --outdir results --download_cache + tags: + - annotation + - bcfann + files: + - path: results/annotation/test/test_BCF.ann.vcf.gz + # binary changes md5sums on reruns + - path: results/annotation/test/test_BCF.ann.vcf.gz.tbi + md5sum: e3d0164d119e0fe6e94c67c5287a082d From 97e4ff8d6d181d0c24470438a5aba4786b220f52 Mon Sep 17 00:00:00 2001 From: Grant Neilson Date: Wed, 18 Oct 2023 10:57:00 +0000 Subject: [PATCH 125/240] update pytests.yml --- tests/config/pytesttags.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/config/pytesttags.yml b/tests/config/pytesttags.yml index 4fabc3a7d5..144c681d79 100644 --- a/tests/config/pytesttags.yml +++ b/tests/config/pytesttags.yml @@ -557,6 +557,15 @@ vep: - tests/csv/3.0/vcf_single.csv - tests/test_annotation_vep.yml +## bcfann +bcfann: + - conf/modules/annotate.config + - modules/nf-core/bcftools/annotate/main.nf + - modules/nf-core/tabix/bgziptabix/main.nf + - subworkflows/nf-core/vcf_annotate_bcftools/main.nf + - tests/csv/3.0/vcf_single.csv + - tests/test_annotation_bcfann.yml + # postprocessing ## concatenate germline vcfs From b70723e8ddc62619735e428afbcb5cdf0374dbbd Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 18 Oct 2023 12:55:57 +0200 Subject: [PATCH 126/240] chore: Make Rike get review requests on everything too --- .github/CODEOWNERS | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1fdc8e3066..6e4c941b46 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1 @@ -* @FriederikeHanssen -* @maxulysse +* @FriederikeHanssen @maxulysse From 5adb3e9c62918ab24b5f10cf3b2e92f919f04e00 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Wed, 18 Oct 2023 12:57:47 +0200 Subject: [PATCH 127/240] chore: Add teams to support stuff --- .github/CODEOWNERS | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6e4c941b46..903e7aa141 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,3 @@ -* @FriederikeHanssen @maxulysse +* @FriederikeHanssen @maxulysse +*.nf.test* @nf-core/nf-test +.github/workflows/ @nf-core/a-team From 0ecc0074089b6a9bcd6139fd8e5fd55b86069e90 Mon Sep 17 00:00:00 2001 From: grantn5 Date: Wed, 18 Oct 2023 14:44:02 +0200 Subject: [PATCH 128/240] updating tests --- tests/test_annotation_bcfann.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_annotation_bcfann.yml b/tests/test_annotation_bcfann.yml index ae429d066f..45bd46bbc0 100644 --- a/tests/test_annotation_bcfann.yml +++ b/tests/test_annotation_bcfann.yml @@ -1,5 +1,5 @@ - name: Run bcfann - command: nextflow run main.nf -profile test_cache,annotation --tools bcfann --outdir results --download_cache + command: nextflow run main.nf -profile test,test_cache,annotation --tools bcfann --outdir results --download_cache tags: - annotation - bcfann From 33464b2c43dcf1b48d4899e5d159c8e661d01159 Mon Sep 17 00:00:00 2001 From: grantn5 Date: Wed, 18 Oct 2023 16:54:40 +0200 Subject: [PATCH 129/240] updating md5sum --- tests/test_annotation_bcfann.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_annotation_bcfann.yml b/tests/test_annotation_bcfann.yml index 45bd46bbc0..78ec274431 100644 --- a/tests/test_annotation_bcfann.yml +++ b/tests/test_annotation_bcfann.yml @@ -7,4 +7,4 @@ - path: results/annotation/test/test_BCF.ann.vcf.gz # binary changes md5sums on reruns - path: results/annotation/test/test_BCF.ann.vcf.gz.tbi - md5sum: e3d0164d119e0fe6e94c67c5287a082d + md5sum: 2b6be791a106e60539892ddfc03eb47f From 2e6b9ee691c4f2ea31cdc1d6f9b8ca6c2f4a326c Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 27 Oct 2023 16:14:22 +0200 Subject: [PATCH 130/240] remove use_annotation_cache_keys params --- nextflow.config | 3 +-- nextflow_schema.json | 6 ------ workflows/sarek.nf | 18 ++++-------------- 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/nextflow.config b/nextflow.config index 56cab933a6..0344331889 100644 --- a/nextflow.config +++ b/nextflow.config @@ -15,7 +15,7 @@ params { // References genome = 'GATK.GRCh38' - igenomes_base = 's3://ngi-igenomes/igenomes' + igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false save_reference = false // Built references not saved build_only_index = false // Only build the reference indexes @@ -86,7 +86,6 @@ params { spliceai_indel_tbi = null // No spliceai_indel file index spliceai_snv = null // No spliceai_snv file spliceai_snv_tbi = null // No spliceai_snv file index - use_annotation_cache_keys = false vep_cache = 's3://annotation-cache/vep_cache/' vep_custom_args = "--everything --filter_common --per_gene --total_length --offline --format vcf" // Default arguments for VEP vep_dbnsfp = null // dbnsfp plugin disabled within VEP diff --git a/nextflow_schema.json b/nextflow_schema.json index 68c6b77146..ee6d2c7ecc 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -536,12 +536,6 @@ "description": "Add an extra custom argument to VEP.", "help_text": "Using this params you can add custom args to VEP." }, - "use_annotation_cache_keys": { - "type": "boolean", - "fa_icon": "fas fa-toolbox", - "description": "Use annotation cache keys for snpeff_cache and vep_cache.\nOnly when using annotation-cache or a similar structure.\nSee [here](https://annotation-cache.github.io/) for more information.", - "hidden": true - }, "outdir_cache": { "type": "string", "format": "directory-path", diff --git a/workflows/sarek.nf b/workflows/sarek.nf index a6ed5b2e50..233a921d8d 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -369,16 +369,11 @@ vep_species = params.vep_species ?: Channel.empty() // Initialize files channels based on params, not defined within the params.genomes[params.genome] scope if (params.snpeff_cache && params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge'))) { - def snpeff_annotation_cache_key = '' - if (params.snpeff_cache == "s3://annotation-cache/snpeff_cache") { - snpeff_annotation_cache_key = "${params.snpeff_genome}.${params.snpeff_db}/" - } else { - snpeff_annotation_cache_key = params.use_annotation_cache_keys ? "${params.snpeff_genome}.${params.snpeff_db}/" : "" - } + def snpeff_annotation_cache_key = (params.snpeff_cache == "s3://annotation-cache/snpeff_cache/") ? "${params.snpeff_genome}.${params.snpeff_db}/" : "" def snpeff_cache_dir = "${snpeff_annotation_cache_key}${params.snpeff_genome}.${params.snpeff_db}" def snpeff_cache_path_full = file("$params.snpeff_cache/$snpeff_cache_dir", type: 'dir') if ( !snpeff_cache_path_full.exists() || !snpeff_cache_path_full.isDirectory() ) { - if (params.snpeff_cache == "s3://annotation-cache/snpeff_cache") { + if (params.snpeff_cache == "s3://annotation-cache/snpeff_cache/") { error("This path is not available within annotation-cache. Please check https://annotation-cache.github.io/ to create a request for it.") } else { error("Files within --snpeff_cache invalid. Make sure there is a directory named ${snpeff_cache_dir} in ${params.snpeff_cache}.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") @@ -391,16 +386,11 @@ if (params.snpeff_cache && params.tools && (params.tools.split(',').contains("sn } else snpeff_cache = [] if (params.vep_cache && params.tools && (params.tools.split(',').contains("vep") || params.tools.split(',').contains('merge'))) { - def vep_annotation_cache_key = '' - if (params.vep_cache == "s3://annotation-cache/vep_cache") { - vep_annotation_cache_key = "${params.vep_cache_version}_${params.vep_genome}/" - } else { - vep_annotation_cache_key = params.use_annotation_cache_keys ? "${params.vep_cache_version}_${params.vep_genome}/" : "" - } + def vep_annotation_cache_key = (params.vep_cache == "s3://annotation-cache/vep_cache/") ? "${params.vep_cache_version}_${params.vep_genome}/" : "" def vep_cache_dir = "${vep_annotation_cache_key}${params.vep_species}/${params.vep_cache_version}_${params.vep_genome}" def vep_cache_path_full = file("$params.vep_cache/$vep_cache_dir", type: 'dir') if ( !vep_cache_path_full.exists() || !vep_cache_path_full.isDirectory() ) { - if (params.vep_cache == "s3://annotation-cache/vep_cache") { + if (params.vep_cache == "s3://annotation-cache/vep_cache/") { error("This path is not available within annotation-cache. Please check https://annotation-cache.github.io/ to create a request for it.") } else { error("Files within --vep_cache invalid. Make sure there is a directory named ${vep_cache_dir} in ${params.vep_cache}.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") From 7f24455d38d4a3ca85a70a8a7310101c381631c6 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 27 Oct 2023 16:20:34 +0200 Subject: [PATCH 131/240] update conf and docs --- conf/test_full.config | 7 +++---- conf/test_full_germline.config | 3 +-- docs/usage.md | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/conf/test_full.config b/conf/test_full.config index 664ce37695..8377d35102 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -19,8 +19,7 @@ params { // Other params tools = 'strelka,mutect2,freebayes,ascat,manta,cnvkit,tiddit,controlfreec,vep' - split_fastq = 20000000 - intervals = 's3://ngi-igenomes/test-data/sarek/S07604624_Padded_Agilent_SureSelectXT_allexons_V6_UTR.bed' - wes = true - use_annotation_cache_keys = true + split_fastq = 20000000 + intervals = 's3://ngi-igenomes/test-data/sarek/S07604624_Padded_Agilent_SureSelectXT_allexons_V6_UTR.bed' + wes = true } diff --git a/conf/test_full_germline.config b/conf/test_full_germline.config index c477f7d6f6..e03541be84 100644 --- a/conf/test_full_germline.config +++ b/conf/test_full_germline.config @@ -19,6 +19,5 @@ params { // Other params tools = 'strelka,freebayes,haplotypecaller,deepvariant,manta,tiddit,cnvkit,vep' - split_fastq = 50000000 - use_annotation_cache_keys = true + split_fastq = 50000000 } diff --git a/docs/usage.md b/docs/usage.md index 3b2767b302..578bb1de97 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -962,7 +962,7 @@ aws s3 --no-sign-request ls s3://annotation-cache/vep_cache/ Since both Snpeff and VEP are internally figuring the path towards the specific cache version / species, `annotation-cache` is using an extra set of keys to specify the species and genome build. -So if you are using this resource, please either set `--use_annotation_cache_keys` to use the AWS annotation cache, or point towards your own cache folder structure matching the expected structure. +Which handled internally by Sarek. Please refer to the [annotation-cache documentation](https://annotation-cache.github.io) for more details. From f5f37ddabb28564266c1fc97178326b914adbb7a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 27 Oct 2023 16:21:24 +0200 Subject: [PATCH 132/240] typo --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 578bb1de97..9efeab942e 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -962,7 +962,7 @@ aws s3 --no-sign-request ls s3://annotation-cache/vep_cache/ Since both Snpeff and VEP are internally figuring the path towards the specific cache version / species, `annotation-cache` is using an extra set of keys to specify the species and genome build. -Which handled internally by Sarek. +Which is handled internally by Sarek. Please refer to the [annotation-cache documentation](https://annotation-cache.github.io) for more details. From 348136d6698f9e415bd25342fc45d8c932d8e0ed Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 11:20:58 +0100 Subject: [PATCH 133/240] move annotation cache logic in its own subworkflow --- .../main.nf | 4 +- .../local/initialize_annotation_cache/main.nf | 61 ++++++++++++++++++ workflows/sarek.nf | 64 +++++++------------ 3 files changed, 87 insertions(+), 42 deletions(-) rename subworkflows/local/{prepare_cache => download_cache_snpeff_vep}/main.nf (94%) create mode 100644 subworkflows/local/initialize_annotation_cache/main.nf diff --git a/subworkflows/local/prepare_cache/main.nf b/subworkflows/local/download_cache_snpeff_vep/main.nf similarity index 94% rename from subworkflows/local/prepare_cache/main.nf rename to subworkflows/local/download_cache_snpeff_vep/main.nf index 601a453720..f9f776db7c 100644 --- a/subworkflows/local/prepare_cache/main.nf +++ b/subworkflows/local/download_cache_snpeff_vep/main.nf @@ -1,5 +1,5 @@ // -// PREPARE CACHE +// DOWNLOAD CACHE SNPEFF VEP // // Initialize channels based on params or indices that were just built @@ -11,7 +11,7 @@ include { ENSEMBLVEP_DOWNLOAD } from '../../../modules/nf-core/ensemblvep/download/main' include { SNPEFF_DOWNLOAD } from '../../../modules/nf-core/snpeff/download/main' -workflow PREPARE_CACHE { +workflow DOWNLOAD_CACHE_SNPEFF_VEP { take: ensemblvep_info snpeff_info diff --git a/subworkflows/local/initialize_annotation_cache/main.nf b/subworkflows/local/initialize_annotation_cache/main.nf new file mode 100644 index 0000000000..ab16b4c8cf --- /dev/null +++ b/subworkflows/local/initialize_annotation_cache/main.nf @@ -0,0 +1,61 @@ +// +// INITIALIZE ANNOTATION CACHE +// + +// Initialize channels based on params or indices that were just built +// For all modules here: +// A when clause condition is defined in the conf/modules.config to determine if the module should be run +// Condition is based on params.step and params.tools +// If and extra condition exists, it's specified in comments + +workflow INITIALIZE_ANNOTATION_CACHE { + take: + snpeff_enabled + snpeff_cache + snpeff_genome + snpeff_db + vep_enabled + vep_cache + vep_species + vep_cache_version + vep_genome + help_message + + main: + if (snpeff_enabled) { + def snpeff_annotation_cache_key = (snpeff_cache == "s3://annotation-cache/snpeff_cache/") ? "${snpeff_genome}.${snpeff_db}/" : "" + def snpeff_cache_dir = "${snpeff_annotation_cache_key}${snpeff_genome}.${snpeff_db}" + def snpeff_cache_path_full = file("$snpeff_cache/$snpeff_cache_dir", type: 'dir') + if ( !snpeff_cache_path_full.exists() || !snpeff_cache_path_full.isDirectory() ) { + if (snpeff_cache == "s3://annotation-cache/snpeff_cache/") { + error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") + } else { + error("Path provided with snpeff cache is invalid.\nMake sure there is a directory named ${snpeff_cache_dir} in ${snpeff_cache}.") + } + } + snpeff_cache = Channel.fromPath(file("${snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() + .map{ cache -> [ [ id:"${snpeff_genome}.${snpeff_db}" ], cache ] } + } else if (tools && (tools.split(',').contains("snpeff") || tools.split(',').contains('merge')) && !download_cache) { + error("No cache for SnpEff has been detected.\n") + } else snpeff_cache = [] + + if (vep_enabled) { + def vep_annotation_cache_key = (vep_cache == "s3://annotation-cache/vep_cache/") ? "${vep_cache_version}_${vep_genome}/" : "" + def vep_cache_dir = "${vep_annotation_cache_key}${vep_species}/${vep_cache_version}_${vep_genome}" + def vep_cache_path_full = file("$vep_cache/$vep_cache_dir", type: 'dir') + if ( !vep_cache_path_full.exists() || !vep_cache_path_full.isDirectory() ) { + if (vep_cache == "s3://annotation-cache/vep_cache/") { + error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") + } else { + error("Path provided with vep cache is invalid.\nMake sure there is a directory named ${vep_cache_dir} in ${vep_cache}.") + } + } + ensemblvep_cache = Channel.fromPath(file("${vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() + } else if (tools && (tools.split(',').contains("vep") || tools.split(',').contains('merge')) && !download_cache) { + error("No cache for VEP has been detected.\n") + } else ensemblvep_cache = [] + + emit: + ensemblvep_cache // channel: [ meta, cache ] + snpeff_cache // channel: [ meta, cache ] +} diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 233a921d8d..66570686bc 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -367,40 +367,6 @@ vep_cache_version = params.vep_cache_version ?: Channel.empty() vep_genome = params.vep_genome ?: Channel.empty() vep_species = params.vep_species ?: Channel.empty() -// Initialize files channels based on params, not defined within the params.genomes[params.genome] scope -if (params.snpeff_cache && params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge'))) { - def snpeff_annotation_cache_key = (params.snpeff_cache == "s3://annotation-cache/snpeff_cache/") ? "${params.snpeff_genome}.${params.snpeff_db}/" : "" - def snpeff_cache_dir = "${snpeff_annotation_cache_key}${params.snpeff_genome}.${params.snpeff_db}" - def snpeff_cache_path_full = file("$params.snpeff_cache/$snpeff_cache_dir", type: 'dir') - if ( !snpeff_cache_path_full.exists() || !snpeff_cache_path_full.isDirectory() ) { - if (params.snpeff_cache == "s3://annotation-cache/snpeff_cache/") { - error("This path is not available within annotation-cache. Please check https://annotation-cache.github.io/ to create a request for it.") - } else { - error("Files within --snpeff_cache invalid. Make sure there is a directory named ${snpeff_cache_dir} in ${params.snpeff_cache}.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") - } - } - snpeff_cache = Channel.fromPath(file("${params.snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() - .map{ cache -> [ [ id:"${params.snpeff_genome}.${params.snpeff_db}" ], cache ] } - } else if (params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge')) && !params.download_cache) { - error("No cache for SnpEff or automatic download of said cache has been detected.\nPlease refer to https://nf-co.re/sarek/docs/usage/#how-to-customise-snpeff-and-vep-annotation for more information.") - } else snpeff_cache = [] - -if (params.vep_cache && params.tools && (params.tools.split(',').contains("vep") || params.tools.split(',').contains('merge'))) { - def vep_annotation_cache_key = (params.vep_cache == "s3://annotation-cache/vep_cache/") ? "${params.vep_cache_version}_${params.vep_genome}/" : "" - def vep_cache_dir = "${vep_annotation_cache_key}${params.vep_species}/${params.vep_cache_version}_${params.vep_genome}" - def vep_cache_path_full = file("$params.vep_cache/$vep_cache_dir", type: 'dir') - if ( !vep_cache_path_full.exists() || !vep_cache_path_full.isDirectory() ) { - if (params.vep_cache == "s3://annotation-cache/vep_cache/") { - error("This path is not available within annotation-cache. Please check https://annotation-cache.github.io/ to create a request for it.") - } else { - error("Files within --vep_cache invalid. Make sure there is a directory named ${vep_cache_dir} in ${params.vep_cache}.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") - } - } - vep_cache = Channel.fromPath(file("${params.vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() - } else if (params.tools && (params.tools.split(',').contains("vep") || params.tools.split(',').contains('merge')) && !params.download_cache) { - error("No cache for VEP or automatic download of said cache has been detected.\nPlease refer to https://nf-co.re/sarek/docs/usage/#how-to-customise-snpeff-and-vep-annotation for more information.") - } else vep_cache = [] - vep_extra_files = [] if (params.dbnsfp && params.dbnsfp_tbi) { @@ -428,8 +394,11 @@ include { CHANNEL_BASERECALIBRATOR_CREATE_CSV } from '../subworkflows/lo include { CHANNEL_APPLYBQSR_CREATE_CSV } from '../subworkflows/local/channel_applybqsr_create_csv/main' include { CHANNEL_VARIANT_CALLING_CREATE_CSV } from '../subworkflows/local/channel_variant_calling_create_csv/main' -// Download annotation cache if needed -include { PREPARE_CACHE } from '../subworkflows/local/prepare_cache/main' +// Download cache for SnpEff/VEP if needed +include { DOWNLOAD_CACHE_SNPEFF_VEP } from '../subworkflows/local/download_cache_snpeff_vep/main' + +// Initialize annotation cache +include { INITIALIZE_ANNOTATION_CACHE } from '../subworkflows/local/initialize_annotation_cache/main' // Build indices if needed include { PREPARE_GENOME } from '../subworkflows/local/prepare_genome/main' @@ -533,11 +502,26 @@ workflow SAREK { snpeff_info = params.snpeff_cache ? [] : Channel.of([ [ id:"${params.snpeff_genome}.${params.snpeff_db}" ], params.snpeff_genome, params.snpeff_db ]) if (params.download_cache) { - PREPARE_CACHE(ensemblvep_info, snpeff_info) - snpeff_cache = PREPARE_CACHE.out.snpeff_cache - vep_cache = PREPARE_CACHE.out.ensemblvep_cache.map{ meta, cache -> [ cache ] } + DOWNLOAD_CACHE_SNPEFF_VEP(ensemblvep_info, snpeff_info) + snpeff_cache = DOWNLOAD_CACHE_SNPEFF_VEP.out.snpeff_cache + vep_cache = DOWNLOAD_CACHE_SNPEFF_VEP.out.ensemblvep_cache.map{ meta, cache -> [ cache ] } - versions = versions.mix(PREPARE_CACHE.out.versions) + versions = versions.mix(DOWNLOAD_CACHE_SNPEFF_VEP.out.versions) + } else { + INITIALIZE_ANNOTATION_CACHE( + (params.snpeff_cache && params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge'))), + params.snpeff_cache, + params.snpeff_genome, + params.snpeff_db, + (params.vep_cache && params.tools && (params.tools.split(',').contains("vep") || params.tools.split(',').contains('merge'))), + params.vep_cache, + params.vep_species, + params.vep_cache_version, + params.vep_genome, + "Please refer to https://nf-co.re/sarek/docs/usage/#how-to-customise-snpeff-and-vep-annotation for more information.") + + snpeff_cache = INITIALIZE_ANNOTATION_CACHE.out.snpeff_cache + vep_cache = INITIALIZE_ANNOTATION_CACHE.out.ensemblvep_cache } // Build indices if needed From a85ad813881e879b1078f58afdea645a88f5a921 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 11:24:33 +0100 Subject: [PATCH 134/240] add help message --- subworkflows/local/initialize_annotation_cache/main.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/subworkflows/local/initialize_annotation_cache/main.nf b/subworkflows/local/initialize_annotation_cache/main.nf index ab16b4c8cf..1614d6e7f8 100644 --- a/subworkflows/local/initialize_annotation_cache/main.nf +++ b/subworkflows/local/initialize_annotation_cache/main.nf @@ -30,13 +30,13 @@ workflow INITIALIZE_ANNOTATION_CACHE { if (snpeff_cache == "s3://annotation-cache/snpeff_cache/") { error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") } else { - error("Path provided with snpeff cache is invalid.\nMake sure there is a directory named ${snpeff_cache_dir} in ${snpeff_cache}.") + error("Path provided with snpeff cache is invalid.\nMake sure there is a directory named ${snpeff_cache_dir} in ${snpeff_cache}./n${help_message}") } } snpeff_cache = Channel.fromPath(file("${snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() .map{ cache -> [ [ id:"${snpeff_genome}.${snpeff_db}" ], cache ] } } else if (tools && (tools.split(',').contains("snpeff") || tools.split(',').contains('merge')) && !download_cache) { - error("No cache for SnpEff has been detected.\n") + error("No cache for SnpEff has been detected./n${help_message}") } else snpeff_cache = [] if (vep_enabled) { @@ -47,12 +47,12 @@ workflow INITIALIZE_ANNOTATION_CACHE { if (vep_cache == "s3://annotation-cache/vep_cache/") { error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") } else { - error("Path provided with vep cache is invalid.\nMake sure there is a directory named ${vep_cache_dir} in ${vep_cache}.") + error("Path provided with vep cache is invalid.\nMake sure there is a directory named ${vep_cache_dir} in ${vep_cache}./n${help_message}") } } ensemblvep_cache = Channel.fromPath(file("${vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() } else if (tools && (tools.split(',').contains("vep") || tools.split(',').contains('merge')) && !download_cache) { - error("No cache for VEP has been detected.\n") + error("No cache for VEP has been detected./n${help_message}") } else ensemblvep_cache = [] emit: From 55bdd3200a911658e577eef8e077201924148f28 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 11:35:46 +0100 Subject: [PATCH 135/240] better error handling and message --- workflows/sarek.nf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 66570686bc..6551b04ba9 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -330,8 +330,13 @@ if (params.tools && (params.tools.split(',').contains('ascat') || params.tools.s } } -if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { - error("Please specify either `--download_cache` or `--snpeff_cache`, `--vep_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") +if (params.download_cache) { + if (params.snpeff_cache && params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge'))) { + error("Please specify either `--download_cache` or `--snpeff_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") + } + if (params.vep_cache && params.tools && (params.tools.split(',').contains("vep") || params.tools.split(',').contains('merge'))) { + error("Please specify either `--download_cache` or `--vep_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") + } } /* From aa0bfa79d0a99ee4420534c199b48bb3b64a1ceb Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 11:50:42 +0100 Subject: [PATCH 136/240] fix nf-prov usage since release --- nextflow.config | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 7caf2593f5..09792cd134 100644 --- a/nextflow.config +++ b/nextflow.config @@ -337,7 +337,11 @@ dag { } prov { enabled = true - file = "${params.outdir}/pipeline_info/manifest_${trace_timestamp}.bco.json" + formats { + bco { + file = "${params.outdir}/pipeline_info/manifest_${trace_timestamp}.bco.json" + } + } } manifest { From 9c938953aab4e86cd7d623618be3a1ef98655ec0 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 12:09:34 +0100 Subject: [PATCH 137/240] fix if statement --- subworkflows/local/initialize_annotation_cache/main.nf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/subworkflows/local/initialize_annotation_cache/main.nf b/subworkflows/local/initialize_annotation_cache/main.nf index 1614d6e7f8..5f5740ba3b 100644 --- a/subworkflows/local/initialize_annotation_cache/main.nf +++ b/subworkflows/local/initialize_annotation_cache/main.nf @@ -35,9 +35,7 @@ workflow INITIALIZE_ANNOTATION_CACHE { } snpeff_cache = Channel.fromPath(file("${snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() .map{ cache -> [ [ id:"${snpeff_genome}.${snpeff_db}" ], cache ] } - } else if (tools && (tools.split(',').contains("snpeff") || tools.split(',').contains('merge')) && !download_cache) { - error("No cache for SnpEff has been detected./n${help_message}") - } else snpeff_cache = [] + } else snpeff_cache = [] if (vep_enabled) { def vep_annotation_cache_key = (vep_cache == "s3://annotation-cache/vep_cache/") ? "${vep_cache_version}_${vep_genome}/" : "" @@ -51,9 +49,7 @@ workflow INITIALIZE_ANNOTATION_CACHE { } } ensemblvep_cache = Channel.fromPath(file("${vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() - } else if (tools && (tools.split(',').contains("vep") || tools.split(',').contains('merge')) && !download_cache) { - error("No cache for VEP has been detected./n${help_message}") - } else ensemblvep_cache = [] + } else ensemblvep_cache = [] emit: ensemblvep_cache // channel: [ meta, cache ] From 48b925783c719a9e87a5192316a00cc82500769c Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 13:09:02 +0100 Subject: [PATCH 138/240] update CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83c976406b..1e35913229 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for Mutect2 joint calling -- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules. +- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules +- [#1301](https://github.com/nf-core/sarek/pull/1301) - Fix nf-prov usage ### Dependencies From 852712c9bbb0994e569bfdbb4aac3b0af36bfa18 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 13:09:09 +0100 Subject: [PATCH 139/240] update docs --- docs/output.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/output.md b/docs/output.md index 1d1a502f75..a474b90883 100644 --- a/docs/output.md +++ b/docs/output.md @@ -55,6 +55,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Variant annotation](#variant-annotation) - [snpEff](#snpeff) - [VEP](#vep) + - [BCFtools annotate](#bcftools-annotate) - [Quality control and reporting](#quality-control-and-reporting) - [Quality control](#quality-control) - [FastQC](#fastqc) @@ -1141,10 +1142,9 @@ Results generated by MultiQC collect pipeline QC from supported tools e.g. FastQ Output files - `pipeline_info/` - - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by Nextflow: `execution_report_.html`, `execution_timeline_.html`, `execution_trace_.txt`, `pipeline_dag_.dot`/`pipeline_dag_.svg` and `manifest_.bco.json`. - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. - - Parameters used by the pipeline run: `params.json`. + - Parameters used by the pipeline run: `params_.json`.
From d65ecf662ef815aa5c9b31d6212637703c33be62 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Mon, 30 Oct 2023 13:10:44 +0100 Subject: [PATCH 140/240] update CHANGELOG --- CHANGELOG.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83c976406b..26656b0ca1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - [#1277](https://github.com/nf-core/sarek/pull/1277) - Fix null value issue for Mutect2 joint calling -- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules. +- [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules +- [#1298](https://github.com/nf-core/sarek/pull/1298) - Fix annotation cache usage + +### Removed + +- [#1298](https://github.com/nf-core/sarek/pull/1298) - Remove `--use_annotation_cache_keys` params ### Dependencies From 882872dff32a8336935d5b6865976f9d41433da0 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 31 Oct 2023 15:06:58 +0100 Subject: [PATCH 141/240] update usage of vep_version --- CHANGELOG.md | 1 + conf/modules/annotate.config | 2 +- nextflow.config | 1 + nextflow_schema.json | 7 +++++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e35913229..fb310e1db8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1278](https://github.com/nf-core/sarek/pull/1278) - Hide sentieon parameters similar to other variant callers - [#1280](https://github.com/nf-core/sarek/pull/1280) - Replacing link to `SentieonDNAscopeModel1.1.model` in Sentieon's S3 with link to same file in igenomes' S3 +- [#1303](https://github.com/nf-core/sarek/pull/1303) - Ressurect vep_version params and changed its scope to pipeline to enable usage for vep loftee plugin ### Fixed diff --git a/conf/modules/annotate.config b/conf/modules/annotate.config index 169acf7ec1..7356645add 100644 --- a/conf/modules/annotate.config +++ b/conf/modules/annotate.config @@ -37,7 +37,7 @@ process { ext.args = { [ (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:/opt/conda/envs/nf-core-vep-${params.vep_version}/share/ensembl-vep-${params.vep_version}-0" : '', + (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', diff --git a/nextflow.config b/nextflow.config index 09792cd134..88dcec4b09 100644 --- a/nextflow.config +++ b/nextflow.config @@ -95,6 +95,7 @@ params { vep_out_format = "vcf" vep_spliceai = null // spliceai plugin disabled within VEP vep_spliceregion = null // spliceregion plugin disabled within VEP + vep_version = "110.0-0" // Should be updated when we update VEP, needs this to get full path to some plugins bcftools_annotations = null // No extra annotation file bcftools_annotations_index = null // No extra annotation file index bcftools_header_lines = null // No header lines to be added to the VCF file diff --git a/nextflow_schema.json b/nextflow_schema.json index 5a84d9756f..4d008245f9 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -540,6 +540,13 @@ "description": "Add an extra custom argument to VEP.", "help_text": "Using this params you can add custom args to VEP." }, + "vep_version": { + "type": "string", + "default": "110.0-0", + "fa_icon": "fas fa-toolbox", + "description": "Should reflect the VEP version used in the container.", + "help_text": "Used by the loftee plugin that need the full path." + }, "use_annotation_cache_keys": { "type": "boolean", "fa_icon": "fas fa-toolbox", From f877e0c8589599eef34229dede08c01fae7baf87 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 31 Oct 2023 15:55:32 +0100 Subject: [PATCH 142/240] code polish --- .../local/samplesheet_to_channel/main.nf | 445 +++++++++--------- 1 file changed, 218 insertions(+), 227 deletions(-) diff --git a/subworkflows/local/samplesheet_to_channel/main.nf b/subworkflows/local/samplesheet_to_channel/main.nf index 458651ee3a..0b82285368 100644 --- a/subworkflows/local/samplesheet_to_channel/main.nf +++ b/subworkflows/local/samplesheet_to_channel/main.nf @@ -1,104 +1,100 @@ workflow SAMPLESHEET_TO_CHANNEL{ - take: - ch_from_samplesheet + take: + ch_from_samplesheet main: ch_from_samplesheet.dump(tag:"ch_from_samplesheet") - input_sample = ch_from_samplesheet - .map{ meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller -> - // generate patient_sample key to group lanes together - [ meta.patient + meta.sample, [meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller] ] - } - .tap{ ch_with_patient_sample } // save the channel - .groupTuple() //group by patient_sample to get all lanes - .map { patient_sample, ch_items -> - // get number of lanes per sample - [ patient_sample, ch_items.size() ] - } - .combine(ch_with_patient_sample, by: 0) // for each entry add numLanes - .map { patient_sample, num_lanes, ch_items -> - - (meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller) = ch_items - if (meta.lane && fastq_2) { - meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] - def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' - - def flowcell = flowcellLaneFromFastq(fastq_1) - // Don't use a random element for ID, it breaks resuming - def read_group = "\"@RG\\tID:${flowcell}.${meta.sample}.${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" - - meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'fastq', size: 1] - - if (params.step == 'mapping') return [ meta, [ fastq_1, fastq_2 ] ] - else { - error("Samplesheet contains fastq files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // start from BAM - } else if (meta.lane && bam) { - if (params.step != 'mapping' && !bai) { - error("BAM index (bai) should be provided.") - } - meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] - def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' - def read_group = "\"@RG\\tID:${meta.sample}_${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" - - meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'bam', size: 1] - - if (params.step != 'annotate') return [ meta - meta.subMap('lane'), bam, bai ] - else { - error("Samplesheet contains bam files but step is `annotate`. The pipeline is expecting vcf files for the annotation. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // recalibration - } else if (table && cram) { - meta = meta + [id: meta.sample, data_type: 'cram'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai, table ] - else { - error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // recalibration when skipping MarkDuplicates - } else if (table && bam) { - meta = meta + [id: meta.sample, data_type: 'bam'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai, table ] - else { - error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // prepare_recalibration or variant_calling - } else if (cram) { - meta = meta + [id: meta.sample, data_type: 'cram'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai ] - else { - error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // prepare_recalibration when skipping MarkDuplicates or `--step markduplicates` - } else if (bam) { - meta = meta + [id: meta.sample, data_type: 'bam'] - - if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai ] - else { - error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - - // annotation - } else if (vcf) { - meta = meta + [id: meta.sample, data_type: 'vcf', variantcaller: variantcaller ?: ''] - - if (params.step == 'annotate') return [ meta - meta.subMap('lane'), vcf ] - else { - error("Samplesheet contains vcf files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - } else { - error("Missing or unknown field in csv file header. Please check your samplesheet") + input_sample = ch_from_samplesheet.map{ meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller -> + // generate patient_sample key to group lanes together + [ meta.patient + meta.sample, [meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller] ] + }.tap{ ch_with_patient_sample } // save the channel + .groupTuple() //group by patient_sample to get all lanes + .map { patient_sample, ch_items -> + // get number of lanes per sample + [ patient_sample, ch_items.size() ] + }.combine(ch_with_patient_sample, by: 0) // for each entry add numLanes + .map { patient_sample, num_lanes, ch_items -> + (meta, fastq_1, fastq_2, table, cram, crai, bam, bai, vcf, variantcaller) = ch_items + if (meta.lane && fastq_2) { + meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] + def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' + + def flowcell = flowcellLaneFromFastq(fastq_1) + // Don't use a random element for ID, it breaks resuming + def read_group = "\"@RG\\tID:${flowcell}.${meta.sample}.${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" + + meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'fastq', size: 1] + + if (params.step == 'mapping') return [ meta, [ fastq_1, fastq_2 ] ] + else { + error("Samplesheet contains fastq files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // start from BAM + } else if (meta.lane && bam) { + if (params.step != 'mapping' && !bai) { + error("BAM index (bai) should be provided.") + } + meta = meta + [id: "${meta.sample}-${meta.lane}".toString()] + def CN = params.seq_center ? "CN:${params.seq_center}\\t" : '' + def read_group = "\"@RG\\tID:${meta.sample}_${meta.lane}\\t${CN}PU:${meta.lane}\\tSM:${meta.patient}_${meta.sample}\\tLB:${meta.sample}\\tDS:${params.fasta}\\tPL:${params.seq_platform}\"" + + meta = meta - meta.subMap('lane') + [num_lanes: num_lanes.toInteger(), read_group: read_group.toString(), data_type: 'bam', size: 1] + + if (params.step != 'annotate') return [ meta - meta.subMap('lane'), bam, bai ] + else { + error("Samplesheet contains bam files but step is `annotate`. The pipeline is expecting vcf files for the annotation. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // recalibration + } else if (table && cram) { + meta = meta + [id: meta.sample, data_type: 'cram'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai, table ] + else { + error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // recalibration when skipping MarkDuplicates + } else if (table && bam) { + meta = meta + [id: meta.sample, data_type: 'bam'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai, table ] + else { + error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // prepare_recalibration or variant_calling + } else if (cram) { + meta = meta + [id: meta.sample, data_type: 'cram'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), cram, crai ] + else { + error("Samplesheet contains cram files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") } + + // prepare_recalibration when skipping MarkDuplicates or `--step markduplicates` + } else if (bam) { + meta = meta + [id: meta.sample, data_type: 'bam'] + + if (!(params.step == 'mapping' || params.step == 'annotate')) return [ meta - meta.subMap('lane'), bam, bai ] + else { + error("Samplesheet contains bam files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + + // annotation + } else if (vcf) { + meta = meta + [id: meta.sample, data_type: 'vcf', variantcaller: variantcaller ?: ''] + + if (params.step == 'annotate') return [ meta - meta.subMap('lane'), vcf ] + else { + error("Samplesheet contains vcf files but step is `$params.step`. Please check your samplesheet or adjust the step parameter.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + } else { + error("Missing or unknown field in csv file header. Please check your samplesheet") } + } if (params.step != 'annotate' && params.tools && !params.build_only_index) { // Two checks for ensuring that the pipeline stops with a meaningful error message if @@ -125,143 +121,138 @@ workflow SAMPLESHEET_TO_CHANNEL{ if (!requested_tools_requiring_normal_samples.isEmpty()) { error('The sample-sheet only contains tumor-samples, but the following tools, which were requested by the option "tools", expect at least one normal-sample : ' + requested_tools_requiring_normal_samples.join(", ")) } - } - } - - // Fails when wrongfull extension for intervals file - if (params.wes && !params.step == 'annotate') { - if (params.intervals && !params.intervals.endsWith("bed")) error("Target file specified with `--intervals` must be in BED format for targeted data") - else log.warn("Intervals file was provided without parameter `--wes`: Pipeline will assume this is Whole-Genome-Sequencing data.") - } else if (params.intervals && !params.intervals.endsWith("bed") && !params.intervals.endsWith("list")) error("Intervals file must end with .bed, .list, or .interval_list") - - if (params.step == 'mapping' && params.aligner.contains("dragmap") && !(params.skip_tools && params.skip_tools.split(',').contains("baserecalibrator"))) { - log.warn("DragMap was specified as aligner. Base recalibration is not contained in --skip_tools. It is recommended to skip baserecalibration when using DragMap\nhttps://gatk.broadinstitute.org/hc/en-us/articles/4407897446939--How-to-Run-germline-single-sample-short-variant-discovery-in-DRAGEN-mode") - } - - if (params.step == 'mapping' && params.aligner.contains("sentieon-bwamem") && params.umi_read_structure) { - error("Sentieon BWA is currently not compatible with FGBio UMI handeling. Please choose a different aligner.") - } - - if (params.tools && params.tools.split(',').contains("sentieon_haplotyper") && params.joint_germline && (!params.sentieon_haplotyper_emit_mode || !(params.sentieon_haplotyper_emit_mode.contains('gvcf')))) { - error("When setting the option `--joint_germline` and including `sentieon_haplotyper` among the requested tools, please set `--sentieon_haplotyper_emit_mode` to include `gvcf`.") - } - - // Fails or warns when missing files or params for ascat - if (params.tools && params.tools.split(',').contains('ascat')) { - if (!params.ascat_alleles) { - error("No allele files were provided for running ASCAT. Please provide a zip folder with allele files.") - } - if (!params.ascat_loci) { - error("No loci files were provided for running ASCAT. Please provide a zip folder with loci files.") - } - if (!params.ascat_loci_gc && !params.ascat_loci_rt) { - log.warn("No LogRCorrection performed in ASCAT. For LogRCorrection to run, please provide either loci gc files or both loci gc files and loci rt files.") - } - if (params.wes) { - log.warn("Default reference files not suited for running ASCAT on WES data. It's recommended to use the reference files provided here: https://github.com/Wedge-lab/battenberg#required-reference-files") - } - } - - // Warns when missing files or params for mutect2 - if (params.tools && params.tools.split(',').contains('mutect2')) { - if (!params.pon) { - log.warn("No Panel-of-normal was specified for Mutect2.\nIt is highly recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2\nFor more information on how to create one: https://gatk.broadinstitute.org/hc/en-us/articles/5358921041947-CreateSomaticPanelOfNormals-BETA-") - } - if (!params.germline_resource) { - log.warn("If Mutect2 is specified without a germline resource, no filtering will be done.\nIt is recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2") - } - if (params.pon && params.pon.contains("/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz")) { - log.warn("The default Panel-of-Normals provided by GATK is used for Mutect2.\nIt is highly recommended to generate one from normal samples that are technical similar to the tumor ones.\nFor more information: https://gatk.broadinstitute.org/hc/en-us/articles/360035890631-Panel-of-Normals-PON-") - } - } - - // Fails when missing resources for baserecalibrator - // Warns when missing resources for haplotypecaller - if (!params.dbsnp && !params.known_indels) { - if (params.step in ['mapping', 'markduplicates', 'prepare_recalibration', 'recalibrate'] && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('baserecalibrator')))) { - error("Base quality score recalibration requires at least one resource file. Please provide at least one of `--dbsnp` or `--known_indels`\nYou can skip this step in the workflow by adding `--skip_tools baserecalibrator` to the command.") - } - if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) { - log.warn "If GATK's Haplotypecaller, Sentieon's Dnascpe or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" - } - } - if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope')))) { - error("The GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") - } - - if ( - params.tools && - ( - params.tools.split(',').contains('haplotypecaller') || - params.tools.split(',').contains('sentieon_haplotyper') || - params.tools.split(',').contains('sentieon_dnascope') - ) && - params.joint_germline && - ( - !params.dbsnp || - !params.known_indels || - !params.known_snps || - params.no_intervals - ) - ) { - log.warn("""If GATK's Haplotypecaller, Sentieon's Dnascope and/or Sentieon's Haplotyper is specified, \ - but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ - no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ - see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ - Joint germline variant calling also requires intervals in order to genotype the samples. \ - As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") - } - - if (params.tools && - params.tools.split(',').contains('sentieon_dnascope') && - params.joint_germline && - ( - !params.sentieon_dnascope_emit_mode || - !params.sentieon_dnascope_emit_mode.split(',').contains('gvcf') - ) - ) { - error("When using Sentieon Dnascope for joint-germline variant-calling the option `--sentieon_dnascope_emit_mode` has to include `gvcf`.") - } - - if (params.tools && - params.tools.split(',').contains('sentieon_haplotyper') && - params.joint_germline && - ( - !params.sentieon_haplotyper_emit_mode || - !params.sentieon_haplotyper_emit_mode.split(',').contains('gvcf') - ) - ) { - error("When using Sentieon Haplotyper for joint-germline variant-calling the option `--sentieon_haplotyper_emit_mode` has to include `gvcf`.") - } - - - // Fails when --joint_mutect2 is used without enabling mutect2 - if (params.joint_mutect2 && (!params.tools || !params.tools.split(',').contains('mutect2'))) { - error("The mutect2 should be specified as one of the tools when doing joint somatic variant calling with Mutect2. (The mutect2 could be specified by adding `--tools mutect2` to the nextflow command.)") - } - - // Fails when missing tools for variant_calling or annotate - if ((params.step == 'variant_calling' || params.step == 'annotate') && !params.tools) { - error("Please specify at least one tool when using `--step ${params.step}`.\nhttps://nf-co.re/sarek/parameters#tools") - } - - // Fails when missing sex information for CNV tools - if (params.tools && (params.tools.split(',').contains('ascat') || params.tools.split(',').contains('controlfreec'))) { - input_sample.map{ - if (it[0].sex == 'NA' ) { - error("Please specify sex information for each sample in your samplesheet when using '--tools' with 'ascat' or 'controlfreec'.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") - } - } - } - - if ((params.download_cache) && (params.snpeff_cache || params.vep_cache)) { - error("Please specify either `--download_cache` or `--snpeff_cache`, `--vep_cache`.\nhttps://nf-co.re/sarek/usage#how-to-customise-snpeff-and-vep-annotation") - } + } + } + + // Fails when wrongfull extension for intervals file + if (params.wes && !params.step == 'annotate') { + if (params.intervals && !params.intervals.endsWith("bed")) error("Target file specified with `--intervals` must be in BED format for targeted data") + else log.warn("Intervals file was provided without parameter `--wes`: Pipeline will assume this is Whole-Genome-Sequencing data.") + } else if (params.intervals && !params.intervals.endsWith("bed") && !params.intervals.endsWith("list")) error("Intervals file must end with .bed, .list, or .interval_list") + + if (params.step == 'mapping' && params.aligner.contains("dragmap") && !(params.skip_tools && params.skip_tools.split(',').contains("baserecalibrator"))) { + log.warn("DragMap was specified as aligner. Base recalibration is not contained in --skip_tools. It is recommended to skip baserecalibration when using DragMap\nhttps://gatk.broadinstitute.org/hc/en-us/articles/4407897446939--How-to-Run-germline-single-sample-short-variant-discovery-in-DRAGEN-mode") + } + if (params.step == 'mapping' && params.aligner.contains("sentieon-bwamem") && params.umi_read_structure) { + error("Sentieon BWA is currently not compatible with FGBio UMI handeling. Please choose a different aligner.") + } + + if (params.tools && params.tools.split(',').contains("sentieon_haplotyper") && params.joint_germline && (!params.sentieon_haplotyper_emit_mode || !(params.sentieon_haplotyper_emit_mode.contains('gvcf')))) { + error("When setting the option `--joint_germline` and including `sentieon_haplotyper` among the requested tools, please set `--sentieon_haplotyper_emit_mode` to include `gvcf`.") + } + + // Fails or warns when missing files or params for ascat + if (params.tools && params.tools.split(',').contains('ascat')) { + if (!params.ascat_alleles) { + error("No allele files were provided for running ASCAT. Please provide a zip folder with allele files.") + } + if (!params.ascat_loci) { + error("No loci files were provided for running ASCAT. Please provide a zip folder with loci files.") + } + if (!params.ascat_loci_gc && !params.ascat_loci_rt) { + log.warn("No LogRCorrection performed in ASCAT. For LogRCorrection to run, please provide either loci gc files or both loci gc files and loci rt files.") + } + if (params.wes) { + log.warn("Default reference files not suited for running ASCAT on WES data. It's recommended to use the reference files provided here: https://github.com/Wedge-lab/battenberg#required-reference-files") + } + } + + // Warns when missing files or params for mutect2 + if (params.tools && params.tools.split(',').contains('mutect2')) { + if (!params.pon) { + log.warn("No Panel-of-normal was specified for Mutect2.\nIt is highly recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2\nFor more information on how to create one: https://gatk.broadinstitute.org/hc/en-us/articles/5358921041947-CreateSomaticPanelOfNormals-BETA-") + } + if (!params.germline_resource) { + log.warn("If Mutect2 is specified without a germline resource, no filtering will be done.\nIt is recommended to use one: https://gatk.broadinstitute.org/hc/en-us/articles/5358911630107-Mutect2") + } + if (params.pon && params.pon.contains("/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/1000g_pon.hg38.vcf.gz")) { + log.warn("The default Panel-of-Normals provided by GATK is used for Mutect2.\nIt is highly recommended to generate one from normal samples that are technical similar to the tumor ones.\nFor more information: https://gatk.broadinstitute.org/hc/en-us/articles/360035890631-Panel-of-Normals-PON-") + } + } + + // Fails when missing resources for baserecalibrator + // Warns when missing resources for haplotypecaller + if (!params.dbsnp && !params.known_indels) { + if (params.step in ['mapping', 'markduplicates', 'prepare_recalibration', 'recalibrate'] && (!params.skip_tools || (params.skip_tools && !params.skip_tools.split(',').contains('baserecalibrator')))) { + error("Base quality score recalibration requires at least one resource file. Please provide at least one of `--dbsnp` or `--known_indels`\nYou can skip this step in the workflow by adding `--skip_tools baserecalibrator` to the command.") + } + if (params.tools && (params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope'))) { + log.warn "If GATK's Haplotypecaller, Sentieon's Dnascpe or Sentieon's Haplotyper is specified, without `--dbsnp` or `--known_indels no filtering will be done. For filtering, please provide at least one of `--dbsnp` or `--known_indels`.\nFor more information see FilterVariantTranches (single-sample, default): https://gatk.broadinstitute.org/hc/en-us/articles/5358928898971-FilterVariantTranches\nFor more information see VariantRecalibration (--joint_germline): https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator\nFor more information on GATK Best practice germline variant calling: https://gatk.broadinstitute.org/hc/en-us/articles/360035535932-Germline-short-variant-discovery-SNPs-Indels-" + } + } + if (params.joint_germline && (!params.tools || !(params.tools.split(',').contains('haplotypecaller') || params.tools.split(',').contains('sentieon_haplotyper') || params.tools.split(',').contains('sentieon_dnascope')))) { + error("The GATK's Haplotypecaller, Sentieon's Dnascope or Sentieon's Haplotyper should be specified as one of the tools when doing joint germline variant calling.) ") + } + + if ( + params.tools && + ( + params.tools.split(',').contains('haplotypecaller') || + params.tools.split(',').contains('sentieon_haplotyper') || + params.tools.split(',').contains('sentieon_dnascope') + ) && + params.joint_germline && + ( + !params.dbsnp || + !params.known_indels || + !params.known_snps || + params.no_intervals + ) + ) { + log.warn("""If GATK's Haplotypecaller, Sentieon's Dnascope and/or Sentieon's Haplotyper is specified, \ + but without `--dbsnp`, `--known_snps`, `--known_indels` or the associated resource labels (ie `known_snps_vqsr`), \ + no variant recalibration will be done. For recalibration you must provide all of these resources.\nFor more information \ + see VariantRecalibration: https://gatk.broadinstitute.org/hc/en-us/articles/5358906115227-VariantRecalibrator \n\ + Joint germline variant calling also requires intervals in order to genotype the samples. \ + As a result, if `--no_intervals` is set to `true` the joint germline variant calling will not be performed.""") + } + + if (params.tools && + params.tools.split(',').contains('sentieon_dnascope') && + params.joint_germline && + ( + !params.sentieon_dnascope_emit_mode || + !params.sentieon_dnascope_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Dnascope for joint-germline variant-calling the option `--sentieon_dnascope_emit_mode` has to include `gvcf`.") + } + + if (params.tools && + params.tools.split(',').contains('sentieon_haplotyper') && + params.joint_germline && + ( + !params.sentieon_haplotyper_emit_mode || + !params.sentieon_haplotyper_emit_mode.split(',').contains('gvcf') + ) + ) { + error("When using Sentieon Haplotyper for joint-germline variant-calling the option `--sentieon_haplotyper_emit_mode` has to include `gvcf`.") + } + + + // Fails when --joint_mutect2 is used without enabling mutect2 + if (params.joint_mutect2 && (!params.tools || !params.tools.split(',').contains('mutect2'))) { + error("The mutect2 should be specified as one of the tools when doing joint somatic variant calling with Mutect2. (The mutect2 could be specified by adding `--tools mutect2` to the nextflow command.)") + } + + // Fails when missing tools for variant_calling or annotate + if ((params.step == 'variant_calling' || params.step == 'annotate') && !params.tools) { + error("Please specify at least one tool when using `--step ${params.step}`.\nhttps://nf-co.re/sarek/parameters#tools") + } + + // Fails when missing sex information for CNV tools + if (params.tools && (params.tools.split(',').contains('ascat') || params.tools.split(',').contains('controlfreec'))) { + input_sample.map{ + if (it[0].sex == 'NA' ) { + error("Please specify sex information for each sample in your samplesheet when using '--tools' with 'ascat' or 'controlfreec'.\nhttps://nf-co.re/sarek/usage#input-samplesheet-configurations") + } + } + } emit: input_sample - } + } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From dac4b79a8ba0f16e99a3e80c2322a90c49e8a089 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Tue, 31 Oct 2023 15:55:43 +0100 Subject: [PATCH 143/240] fix usage --- nextflow_schema.json | 6 +++--- .../local/initialize_annotation_cache/main.nf | 4 ++-- workflows/sarek.nf | 14 +++++++------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 57ef4b226e..8ea14e6d94 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -755,13 +755,13 @@ "type": "string", "fa_icon": "fas fa-microscope", "description": "snpEff genome.", - "help_text": "If you use AWS iGenomes, this has already been set for you appropriately.\nThis is used to specify the genome when using the container with pre-downloaded cache." + "help_text": "If you use AWS iGenomes, this has already been set for you appropriately.\nThis is used to specify the genome when looking for local cache, or cloud based cache." }, "vep_genome": { "type": "string", "fa_icon": "fas fa-microscope", "description": "VEP genome.", - "help_text": "If you use AWS iGenomes, this has already been set for you appropriately.\nThis is used to specify the genome when using the container with pre-downloaded cache." + "help_text": "If you use AWS iGenomes, this has already been set for you appropriately.\nThis is used to specify the genome when looking for local cache, or cloud based cache." }, "vep_species": { "type": "string", @@ -791,7 +791,7 @@ "type": "boolean", "fa_icon": "fas fa-download", "description": "Download annotation cache.", - "help_text": "Set this parameter, if you wish to download annotation cache." + "help_text": "Set this parameter, if you wish to download annotation cache.\nUsing this parameter will download cache even if --snpeff_cache and --vep_cache are provided." }, "igenomes_base": { "type": "string", diff --git a/subworkflows/local/initialize_annotation_cache/main.nf b/subworkflows/local/initialize_annotation_cache/main.nf index 5f5740ba3b..d2c6fcb7d6 100644 --- a/subworkflows/local/initialize_annotation_cache/main.nf +++ b/subworkflows/local/initialize_annotation_cache/main.nf @@ -30,7 +30,7 @@ workflow INITIALIZE_ANNOTATION_CACHE { if (snpeff_cache == "s3://annotation-cache/snpeff_cache/") { error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") } else { - error("Path provided with snpeff cache is invalid.\nMake sure there is a directory named ${snpeff_cache_dir} in ${snpeff_cache}./n${help_message}") + error("Path provided with SnpEff cache is invalid.\nMake sure there is a directory named ${snpeff_cache_dir} in ${snpeff_cache}./n${help_message}") } } snpeff_cache = Channel.fromPath(file("${snpeff_cache}/${snpeff_annotation_cache_key}"), checkIfExists: true).collect() @@ -45,7 +45,7 @@ workflow INITIALIZE_ANNOTATION_CACHE { if (vep_cache == "s3://annotation-cache/vep_cache/") { error("This path is not available within annotation-cache.\nPlease check https://annotation-cache.github.io/ to create a request for it.") } else { - error("Path provided with vep cache is invalid.\nMake sure there is a directory named ${vep_cache_dir} in ${vep_cache}./n${help_message}") + error("Path provided with VEP cache is invalid.\nMake sure there is a directory named ${vep_cache_dir} in ${vep_cache}./n${help_message}") } } ensemblvep_cache = Channel.fromPath(file("${vep_cache}/${vep_annotation_cache_key}"), checkIfExists: true).collect() diff --git a/workflows/sarek.nf b/workflows/sarek.nf index 44c99e8833..3f76eb40b6 100644 --- a/workflows/sarek.nf +++ b/workflows/sarek.nf @@ -234,9 +234,9 @@ workflow SAREK { // Parse samplesheet // Set input, can either be from --input or from automatic retrieval in WorkflowSarek.groovy if (params.input) { - ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input") + ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input") } else { - ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input_restart") + ch_from_samplesheet = params.build_only_index ? Channel.empty() : Channel.fromSamplesheet("input_restart") } SAMPLESHEET_TO_CHANNEL(ch_from_samplesheet) @@ -253,18 +253,18 @@ workflow SAREK { // To gather used softwares versions for MultiQC versions = Channel.empty() - // Download cache if needed - // Assuming that if the cache is provided, the user has already downloaded it - ensemblvep_info = params.vep_cache ? [] : Channel.of([ [ id:"${params.vep_cache_version}_${params.vep_genome}" ], params.vep_genome, params.vep_species, params.vep_cache_version ]) - snpeff_info = params.snpeff_cache ? [] : Channel.of([ [ id:"${params.snpeff_genome}.${params.snpeff_db}" ], params.snpeff_genome, params.snpeff_db ]) - + // Download cache if (params.download_cache) { + // Assuming that even if the cache is provided, if the user specify download_cache, sarek will download the cache + ensemblvep_info = Channel.of([ [ id:"${params.vep_cache_version}_${params.vep_genome}" ], params.vep_genome, params.vep_species, params.vep_cache_version ]) + snpeff_info = Channel.of([ [ id:"${params.snpeff_genome}.${params.snpeff_db}" ], params.snpeff_genome, params.snpeff_db ]) DOWNLOAD_CACHE_SNPEFF_VEP(ensemblvep_info, snpeff_info) snpeff_cache = DOWNLOAD_CACHE_SNPEFF_VEP.out.snpeff_cache vep_cache = DOWNLOAD_CACHE_SNPEFF_VEP.out.ensemblvep_cache.map{ meta, cache -> [ cache ] } versions = versions.mix(DOWNLOAD_CACHE_SNPEFF_VEP.out.versions) } else { + // Looks for cache information either locally or on the cloud INITIALIZE_ANNOTATION_CACHE( (params.snpeff_cache && params.tools && (params.tools.split(',').contains("snpeff") || params.tools.split(',').contains('merge'))), params.snpeff_cache, From 24d7666e00534b502dac45bc626eaa6905148cc6 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 11:05:28 +0100 Subject: [PATCH 144/240] better docs --- docs/output.md | 2 +- docs/usage.md | 49 ++++++++++++++++++++++++++++++++++--------------- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/docs/output.md b/docs/output.md index a474b90883..fd614ee112 100644 --- a/docs/output.md +++ b/docs/output.md @@ -308,7 +308,7 @@ See the [`input`](usage#input-sample-sheet-configurations) section in the usage ## Variant Calling The results regarding variant calling are collected in `{outdir}/variantcalling/`. -If some results from a variant caller do not appear here, please check out the `--tools` section in the parameter [documentation](https://nf-co.re/sarek/3.0.1/parameters). +If some results from a variant caller do not appear here, please check out the `--tools` section in the parameter [documentation](https://nf-co.re/sarek/latest/parameters). (Recalibrated) CRAM files can used as an input to start the variant calling. diff --git a/docs/usage.md b/docs/usage.md index 267d11c3c4..451c69ff9d 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -18,10 +18,16 @@ Sarek is designed to handle single samples, such as single-normal or single-tumo The typical command for running the pipeline is as follows: ```bash -nextflow run nf-core/sarek --input ./samplesheet.csv --outdir ./results --genome GATK.GRCh38 --tools -profile docker +nextflow run nf-core/sarek -r -profile --input ./samplesheet.csv --outdir ./results --genome GATK.GRCh38 --tools ``` -This will launch the pipeline and perform variant calling with the tools specified in `--tools`, see the [parameter section](https://nf-co.re/sarek/3.2.3/parameters#tools) for details on variant calling tools. +`-r ` is optional but strongly recommended for reproducibility and should match the latest version. + +`-profile ` is mandatory and should reflect either your own institutional profile or any pipeline profile specified in the [profile section](##-profile). + +This documentation imply that any `nextflow run nf-core/sarek` command is run with the appropriate `-r` and `-profile` commands. + +This will launch the pipeline and perform variant calling with the tools specified in `--tools`, see the [parameter section](https://nf-co.re/sarek/latest/parameters#tools) for details on variant calling tools. In the above example the pipeline runs with the `docker` configuration profile. See below for more information about profiles. Note that the pipeline will create the following files in your working directory: @@ -44,7 +50,7 @@ Do not use `-c ` to specify parameters as this will result in errors. Cust The above pipeline run specified with a params file in yaml format: ```bash -nextflow run nf-core/sarek -profile docker -params-file params.yaml +nextflow run nf-core/sarek -params-file params.yaml ``` with `params.yaml` containing: @@ -312,7 +318,7 @@ test,sample4_vs_sample3,manta,sample4_vs_sample3.somatic_sv.vcf.gz ## Updating the pipeline -When you launch a pipeline from the command-line with `nextflow run nf-core/sarek -profile docker -params-file params.yaml`, Nextflow will automatically pull the pipeline code from GitHub and store it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: +When you launch a pipeline from the command-line with `nextflow run nf-core/sarek -params-file params.yaml`, Nextflow will automatically pull the pipeline code from GitHub and store it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: ```bash nextflow pull nf-core/sarek @@ -322,8 +328,8 @@ nextflow pull nf-core/sarek It is a good idea to specify a pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. -First, go to the [nf-core/sarek releases page](https://github.com/nf-core/sarek/releases) and find the latest version number - numeric only (eg. `3.1.1`). -Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 3.1.1`. Of course, you can switch to another version by changing the number after the `-r` flag. +First, go to the [nf-core/sarek releases page](https://github.com/nf-core/sarek/releases) and find the latest version number - numeric only (eg. `3.3.2`). +Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 3.3.2`. Of course, you can switch to another version by changing the number after the `-r` flag. This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. For example, at the bottom of the MultiQC reports. @@ -448,7 +454,7 @@ When using default parameters only, sarek runs preprocessing and `Strelka2`. This is reflected in the default test profile: ```bash -nextflow run nf-core/sarek -r 3.2.1 -profile test, --outdir results +nextflow run nf-core/sarek -profile test, --outdir results ``` Expected run output: @@ -525,7 +531,7 @@ For more extensive testing purpose, we have the `test_cache` profile that contai Annotation is generally tested separately from the remaining workflow, since we use references for `C.elegans`, while the remaining tests are run on downsampled human data. ```bash -nextflow run nf-core/sarek -r 3.2.1 -profile test_cache, --outdir results --tools snpeff --step annotation +nextflow run nf-core/sarek -profile test_cache, --outdir results --tools snpeff --step annotation ``` If you are interested in any of the other tests that are run on every code change or would like to run them yourself, you can take a look at `tests/.yml`. @@ -988,13 +994,13 @@ Else, it will be downloaded in `cache/` in the specified `--outdir` location. This command could be used to download the cache for both tools in the specified `--outdir_cache` location: ```bash -nextflow run nf-core/sarek -r 3.3.0 --outdir results --outdir_cache /path_to/my-own-cache --tools vep,snpeff --download_cache --build_only_index --input false +nextflow run nf-core/sarek --outdir results --outdir_cache /path_to/my-own-cache --tools vep,snpeff --download_cache --build_only_index --input false ``` This command could be used to point to the recently downloaded cache and run SnpEff and VEP: ```bash -nextflow run nf-core/sarek -r 3.3.0 --outdir results --vep_cache /path_to/my-own-cache/vep_cache --snpeff_cache /path_to/my-own-cache/snpeff_cache --tools vep,snpeff --input samplesheet_vcf.csv +nextflow run nf-core/sarek --outdir results --vep_cache /path_to/my-own-cache/vep_cache --snpeff_cache /path_to/my-own-cache/snpeff_cache --tools vep,snpeff --input samplesheet_vcf.csv ``` ### Create containers with pre-downloaded cache @@ -1097,15 +1103,28 @@ Sarek also contains the Sentieon functions [DnaScope](https://support.sentieon.c ### Basic usage of Sentieon functions -To use Sentieon's aligner `bwa mem`, set the aligner option `sentieon-bwamem`. (This can, for example, be done by adding `--aligner sentieon-bwamem` to the nextflow run command.) +To use Sentieon's aligner `bwa mem`, set the aligner option `sentieon-bwamem`. +(This can, for example, be done by adding `--aligner sentieon-bwamem` to the `nextflow run` command.) -To use Sentieon's function `Dedup`, specify `sentieon_dedup` as one of the tools. (This can, for example, be done by adding `--tools sentieon_dedup` to the nextflow run command.) +To use Sentieon's function `Dedup`, specify `sentieon_dedup` as one of the tools. +(This can, for example, be done by adding `--tools sentieon_dedup` to the `nextflow run` command.) -To use Sentieon's function `DNAscope`, specify `sentieon_dnascope` as one of the tools. This can, for example, be done by adding `--tools sentieon_dnascope` to the nextflow run command. In order to skip Sentieon's variant-filter `DNAModelApply`, one may add `--skip_tools dnascope_filter` to the nextflow run command. Sarek also provides the option `sentieon_dnascope_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#dnascope-algorithm) of Sentieon's dnascope. Sentieon's dnascope can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_dnascope_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. +To use Sentieon's function `DNAscope`, specify `sentieon_dnascope` as one of the tools. +This can, for example, be done by adding `--tools sentieon_dnascope` to the `nextflow run` command. +In order to skip Sentieon's variant-filter `DNAModelApply`, one may add `--skip_tools dnascope_filter` to the `nextflow run` command. +Sarek also provides the option `sentieon_dnascope_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#dnascope-algorithm) of Sentieon's dnascope. +Sentieon's dnascope can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_dnascope_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. -Sentieon's function `Haplotyper` is used in much the same way as `DNAscope`. To use Sentieon's function `Haplotyper`, specify `sentieon_haplotyper` as one of the tools. This can, for example, be done by adding `--tools sentieon_haplotyper` to the nextflow run command. In order to skip the GATK-based variant-filter, one may add `--skip_tools haplotyper_filter` to the nextflow run command. Sarek also provides the option `sentieon_haplotyper_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) of Sentieon's haplotyper. Sentieon's haplotyper can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_haplotyper_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. +Sentieon's function `Haplotyper` is used in much the same way as `DNAscope`. +To use Sentieon's function `Haplotyper`, specify `sentieon_haplotyper` as one of the tools. +This can, for example, be done by adding `--tools sentieon_haplotyper` to the `nextflow run` command. +In order to skip the GATK-based variant-filter, one may add `--skip_tools haplotyper_filter` to the `nextflow run` command. +Sarek also provides the option `sentieon_haplotyper_emit_mode` which can be used to set the [emit-mode](https://support.sentieon.com/manual/usages/general/#haplotyper-algorithm) of Sentieon's haplotyper. +Sentieon's haplotyper can output both a vcf-file and a gvcf-file in the same run; this is achieved by setting `sentieon_haplotyper_emit_mode` to `,gvcf`, where `` is `variant`, `confident` or `all`. -To use Sentieon's function `GVCFtyper` along with Sention's version of VQSR (`VarCal` and `ApplyVarCal`) for joint-germline genotyping, specify `sentieon_haplotyper` as one of the tools, set the option `sentieon_haplotyper_emit_mode` to `gvcf`, and add the option `joint_germline`. This can, for example, be done by adding `--tools sentieon_haplotyper --joint_germline --sentieon_haplotyper_emit_mode gvcf` to the nextflow run command. If `sentieon_dnascope` is chosen instead of `sentieon_haplotyper`, then Sention's version of VQSR is skipped, as recommended by Sentieon. +To use Sentieon's function `GVCFtyper` along with Sention's version of VQSR (`VarCal` and `ApplyVarCal`) for joint-germline genotyping, specify `sentieon_haplotyper` as one of the tools, set the option `sentieon_haplotyper_emit_mode` to `gvcf`, and add the option `joint_germline`. +This can, for example, be done by adding `--tools sentieon_haplotyper --joint_germline --sentieon_haplotyper_emit_mode gvcf` to the `nextflow run` command. +If `sentieon_dnascope` is chosen instead of `sentieon_haplotyper`, then Sention's version of VQSR is skipped, as recommended by Sentieon. ### Joint germline variant calling From 9d15b23ae4ed3cba6eeb95244df016391965b005 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 15:40:28 +0100 Subject: [PATCH 145/240] update all modules (will probably break things) --- modules.json | 194 +++---- modules/nf-core/ascat/environment.yml | 7 + modules/nf-core/ascat/main.nf | 2 +- modules/nf-core/ascat/meta.yml | 17 +- .../nf-core/bcftools/annotate/environment.yml | 6 + modules/nf-core/bcftools/annotate/main.nf | 27 +- modules/nf-core/bcftools/annotate/meta.yml | 12 +- .../nf-core/bcftools/concat/environment.yml | 6 + modules/nf-core/bcftools/concat/main.nf | 2 +- modules/nf-core/bcftools/concat/meta.yml | 4 +- .../nf-core/bcftools/mpileup/environment.yml | 6 + modules/nf-core/bcftools/mpileup/main.nf | 4 +- modules/nf-core/bcftools/mpileup/meta.yml | 7 + modules/nf-core/bcftools/sort/environment.yml | 6 + modules/nf-core/bcftools/sort/main.nf | 2 +- modules/nf-core/bcftools/sort/meta.yml | 5 +- .../nf-core/bcftools/stats/environment.yml | 6 + modules/nf-core/bcftools/stats/main.nf | 2 +- modules/nf-core/bcftools/stats/meta.yml | 5 + modules/nf-core/bwa/index/environment.yml | 6 + modules/nf-core/bwa/index/main.nf | 2 +- modules/nf-core/bwa/index/meta.yml | 3 + modules/nf-core/bwa/index/tests/main.nf.test | 33 ++ .../nf-core/bwa/index/tests/main.nf.test.snap | 43 ++ modules/nf-core/bwa/index/tests/tags.yml | 2 + modules/nf-core/bwa/mem/environment.yml | 7 + modules/nf-core/bwa/mem/main.nf | 2 +- modules/nf-core/bwa/mem/meta.yml | 3 + modules/nf-core/bwa/mem/tests/main.nf.test | 172 +++++++ .../nf-core/bwa/mem/tests/main.nf.test.snap | 126 +++++ modules/nf-core/bwa/mem/tests/tags.yml | 3 + modules/nf-core/bwamem2/index/environment.yml | 6 + modules/nf-core/bwamem2/index/main.nf | 2 +- modules/nf-core/bwamem2/index/meta.yml | 2 + modules/nf-core/bwamem2/mem/environment.yml | 7 + modules/nf-core/bwamem2/mem/main.nf | 2 +- modules/nf-core/bwamem2/mem/meta.yml | 2 + modules/nf-core/cat/cat/environment.yml | 6 + modules/nf-core/cat/cat/main.nf | 2 +- modules/nf-core/cat/cat/meta.yml | 7 +- modules/nf-core/cat/cat/tests/main.nf.test | 153 ++++++ .../nf-core/cat/cat/tests/main.nf.test.snap | 121 +++++ .../cat/tests/nextflow_unzipped_zipped.config | 6 + .../cat/tests/nextflow_zipped_unzipped.config | 8 + modules/nf-core/cat/cat/tests/tags.yml | 2 + modules/nf-core/cat/fastq/environment.yml | 6 + modules/nf-core/cat/fastq/main.nf | 2 +- modules/nf-core/cat/fastq/meta.yml | 4 +- modules/nf-core/cat/fastq/tests/main.nf.test | 143 ++++++ .../nf-core/cat/fastq/tests/main.nf.test.snap | 78 +++ modules/nf-core/cat/fastq/tests/tags.yml | 2 + .../nf-core/cnvkit/antitarget/environment.yml | 7 + modules/nf-core/cnvkit/antitarget/main.nf | 2 +- modules/nf-core/cnvkit/antitarget/meta.yml | 7 +- modules/nf-core/cnvkit/batch/environment.yml | 7 + modules/nf-core/cnvkit/batch/main.nf | 10 +- modules/nf-core/cnvkit/batch/meta.yml | 30 ++ .../cnvkit/genemetrics/environment.yml | 7 + modules/nf-core/cnvkit/genemetrics/main.nf | 2 +- modules/nf-core/cnvkit/genemetrics/meta.yml | 5 +- .../nf-core/cnvkit/reference/environment.yml | 7 + modules/nf-core/cnvkit/reference/main.nf | 2 +- modules/nf-core/cnvkit/reference/meta.yml | 7 +- .../assesssignificance/environment.yml | 6 + .../controlfreec/assesssignificance/main.nf | 6 +- .../controlfreec/assesssignificance/meta.yml | 5 +- .../controlfreec/freec/environment.yml | 6 + modules/nf-core/controlfreec/freec/main.nf | 2 +- modules/nf-core/controlfreec/freec/meta.yml | 6 +- .../controlfreec/freec2bed/environment.yml | 6 + .../nf-core/controlfreec/freec2bed/main.nf | 2 +- .../nf-core/controlfreec/freec2bed/meta.yml | 5 +- .../controlfreec/freec2circos/environment.yml | 6 + .../nf-core/controlfreec/freec2circos/main.nf | 2 +- .../controlfreec/freec2circos/meta.yml | 5 +- .../controlfreec/makegraph/environment.yml | 6 + .../nf-core/controlfreec/makegraph/main.nf | 2 +- .../nf-core/controlfreec/makegraph/meta.yml | 5 +- .../dumpsoftwareversions/environment.yml | 6 + .../custom/dumpsoftwareversions/main.nf | 2 +- .../custom/dumpsoftwareversions/meta.yml | 5 +- .../dumpsoftwareversions/tests/main.nf.test | 38 ++ .../tests/main.nf.test.snap | 27 + .../dumpsoftwareversions/tests/tags.yml | 2 + modules/nf-core/deepvariant/environment.yml | 4 + modules/nf-core/deepvariant/meta.yml | 6 +- modules/nf-core/dragmap/align/environment.yml | 8 + modules/nf-core/dragmap/align/main.nf | 2 +- modules/nf-core/dragmap/align/meta.yml | 3 +- .../nf-core/dragmap/hashtable/environment.yml | 6 + modules/nf-core/dragmap/hashtable/main.nf | 6 +- modules/nf-core/dragmap/hashtable/meta.yml | 3 +- .../ensemblvep/download/environment.yml | 6 + modules/nf-core/ensemblvep/download/main.nf | 2 +- modules/nf-core/ensemblvep/download/meta.yml | 2 + .../nf-core/ensemblvep/vep/environment.yml | 6 + modules/nf-core/ensemblvep/vep/main.nf | 2 +- modules/nf-core/ensemblvep/vep/meta.yml | 4 + modules/nf-core/fastp/environment.yml | 6 + modules/nf-core/fastp/main.nf | 2 +- modules/nf-core/fastp/meta.yml | 4 +- modules/nf-core/fastp/tests/main.nf.test | 485 ++++++++++++++++++ modules/nf-core/fastp/tests/main.nf.test.snap | 52 ++ modules/nf-core/fastp/tests/nextflow.config | 6 + modules/nf-core/fastp/tests/tags.yml | 2 + modules/nf-core/fastqc/environment.yml | 6 + modules/nf-core/fastqc/main.nf | 6 +- modules/nf-core/fastqc/meta.yml | 5 + modules/nf-core/fastqc/tests/main.nf.test | 41 ++ .../nf-core/fastqc/tests/main.nf.test.snap | 10 + modules/nf-core/fastqc/tests/tags.yml | 2 + .../environment.yml | 6 + .../fgbio/callmolecularconsensusreads/main.nf | 2 +- .../callmolecularconsensusreads/meta.yml | 6 +- .../nf-core/fgbio/fastqtobam/environment.yml | 6 + modules/nf-core/fgbio/fastqtobam/main.nf | 2 +- modules/nf-core/fgbio/fastqtobam/meta.yml | 7 +- .../fgbio/groupreadsbyumi/environment.yml | 6 + modules/nf-core/fgbio/groupreadsbyumi/main.nf | 2 +- .../nf-core/fgbio/groupreadsbyumi/meta.yml | 6 +- modules/nf-core/freebayes/environment.yml | 6 + modules/nf-core/freebayes/main.nf | 2 +- modules/nf-core/freebayes/meta.yml | 8 +- .../nf-core/gatk4/applybqsr/environment.yml | 6 + modules/nf-core/gatk4/applybqsr/main.nf | 2 +- modules/nf-core/gatk4/applybqsr/meta.yml | 6 +- .../gatk4/applybqsrspark/environment.yml | 7 + modules/nf-core/gatk4/applybqsrspark/main.nf | 2 +- modules/nf-core/gatk4/applybqsrspark/meta.yml | 7 +- .../nf-core/gatk4/applyvqsr/environment.yml | 6 + modules/nf-core/gatk4/applyvqsr/main.nf | 2 +- modules/nf-core/gatk4/applyvqsr/meta.yml | 5 +- .../gatk4/baserecalibrator/environment.yml | 6 + .../nf-core/gatk4/baserecalibrator/main.nf | 2 +- .../nf-core/gatk4/baserecalibrator/meta.yml | 7 +- .../baserecalibratorspark/environment.yml | 7 + .../gatk4/baserecalibratorspark/main.nf | 2 +- .../gatk4/baserecalibratorspark/meta.yml | 7 +- .../calculatecontamination/environment.yml | 6 + .../gatk4/calculatecontamination/main.nf | 2 +- .../gatk4/calculatecontamination/meta.yml | 6 +- .../gatk4/cnnscorevariants/environment.yml | 4 + .../nf-core/gatk4/cnnscorevariants/meta.yml | 5 +- .../createsequencedictionary/environment.yml | 6 + .../gatk4/createsequencedictionary/main.nf | 2 +- .../gatk4/createsequencedictionary/meta.yml | 4 +- .../estimatelibrarycomplexity/environment.yml | 6 + .../gatk4/estimatelibrarycomplexity/main.nf | 2 +- .../gatk4/estimatelibrarycomplexity/meta.yml | 6 +- .../gatk4/filtermutectcalls/environment.yml | 6 + .../nf-core/gatk4/filtermutectcalls/main.nf | 2 +- .../nf-core/gatk4/filtermutectcalls/meta.yml | 7 +- .../filtervarianttranches/environment.yml | 6 + .../gatk4/filtervarianttranches/main.nf | 2 +- .../gatk4/filtervarianttranches/meta.yml | 5 +- .../gatk4/gatherbqsrreports/environment.yml | 6 + .../nf-core/gatk4/gatherbqsrreports/main.nf | 2 +- .../nf-core/gatk4/gatherbqsrreports/meta.yml | 5 +- .../gatherpileupsummaries/environment.yml | 6 + .../gatk4/gatherpileupsummaries/main.nf | 2 +- .../gatk4/gatherpileupsummaries/meta.yml | 6 +- .../gatk4/genomicsdbimport/environment.yml | 6 + .../nf-core/gatk4/genomicsdbimport/main.nf | 2 +- .../nf-core/gatk4/genomicsdbimport/meta.yml | 12 +- .../gatk4/genotypegvcfs/environment.yml | 6 + modules/nf-core/gatk4/genotypegvcfs/main.nf | 2 +- modules/nf-core/gatk4/genotypegvcfs/meta.yml | 6 +- .../gatk4/getpileupsummaries/environment.yml | 6 + .../nf-core/gatk4/getpileupsummaries/main.nf | 2 +- .../nf-core/gatk4/getpileupsummaries/meta.yml | 5 +- .../gatk4/haplotypecaller/environment.yml | 6 + modules/nf-core/gatk4/haplotypecaller/main.nf | 2 +- .../nf-core/gatk4/haplotypecaller/meta.yml | 6 +- .../gatk4/intervallisttobed/environment.yml | 6 + .../nf-core/gatk4/intervallisttobed/main.nf | 2 +- .../nf-core/gatk4/intervallisttobed/meta.yml | 5 +- .../learnreadorientationmodel/environment.yml | 6 + .../gatk4/learnreadorientationmodel/main.nf | 2 +- .../gatk4/learnreadorientationmodel/meta.yml | 5 +- .../gatk4/markduplicates/environment.yml | 7 + modules/nf-core/gatk4/markduplicates/main.nf | 19 +- modules/nf-core/gatk4/markduplicates/meta.yml | 12 +- .../gatk4/markduplicatesspark/environment.yml | 7 + .../nf-core/gatk4/markduplicatesspark/main.nf | 2 +- .../gatk4/markduplicatesspark/meta.yml | 13 +- .../gatk4/mergemutectstats/environment.yml | 6 + .../nf-core/gatk4/mergemutectstats/main.nf | 2 +- .../nf-core/gatk4/mergemutectstats/meta.yml | 5 +- .../nf-core/gatk4/mergevcfs/environment.yml | 6 + modules/nf-core/gatk4/mergevcfs/main.nf | 2 +- modules/nf-core/gatk4/mergevcfs/meta.yml | 4 +- modules/nf-core/gatk4/mutect2/environment.yml | 6 + modules/nf-core/gatk4/mutect2/main.nf | 2 +- modules/nf-core/gatk4/mutect2/meta.yml | 6 +- .../gatk4/variantrecalibrator/environment.yml | 6 + .../nf-core/gatk4/variantrecalibrator/main.nf | 2 +- .../gatk4/variantrecalibrator/meta.yml | 4 +- .../nf-core/manta/germline/environment.yml | 6 + modules/nf-core/manta/germline/main.nf | 27 +- modules/nf-core/manta/germline/meta.yml | 12 +- modules/nf-core/manta/somatic/environment.yml | 6 + modules/nf-core/manta/somatic/main.nf | 64 ++- modules/nf-core/manta/somatic/meta.yml | 21 +- .../nf-core/manta/tumoronly/environment.yml | 6 + modules/nf-core/manta/tumoronly/main.nf | 47 +- modules/nf-core/manta/tumoronly/meta.yml | 21 +- modules/nf-core/mosdepth/environment.yml | 6 + modules/nf-core/mosdepth/main.nf | 2 +- modules/nf-core/mosdepth/meta.yml | 5 + .../msisensorpro/msisomatic/environment.yml | 6 + .../nf-core/msisensorpro/msisomatic/main.nf | 2 +- .../nf-core/msisensorpro/msisomatic/meta.yml | 5 +- .../nf-core/msisensorpro/scan/environment.yml | 6 + modules/nf-core/msisensorpro/scan/main.nf | 2 +- modules/nf-core/msisensorpro/scan/meta.yml | 5 +- modules/nf-core/multiqc/environment.yml | 6 + modules/nf-core/multiqc/main.nf | 6 +- modules/nf-core/multiqc/meta.yml | 7 +- modules/nf-core/samblaster/environment.yml | 7 + modules/nf-core/samblaster/main.nf | 2 +- modules/nf-core/samblaster/meta.yml | 6 +- .../nf-core/samtools/bam2fq/environment.yml | 6 + modules/nf-core/samtools/bam2fq/main.nf | 2 +- modules/nf-core/samtools/bam2fq/meta.yml | 7 +- .../samtools/collatefastq/environment.yml | 6 + modules/nf-core/samtools/collatefastq/main.nf | 2 +- .../nf-core/samtools/collatefastq/meta.yml | 8 +- .../nf-core/samtools/convert/environment.yml | 6 + modules/nf-core/samtools/convert/main.nf | 2 +- modules/nf-core/samtools/convert/meta.yml | 3 + .../nf-core/samtools/faidx/environment.yml | 6 + modules/nf-core/samtools/faidx/main.nf | 2 +- modules/nf-core/samtools/faidx/meta.yml | 4 + .../nf-core/samtools/index/environment.yml | 6 + modules/nf-core/samtools/index/main.nf | 2 +- modules/nf-core/samtools/index/meta.yml | 4 + .../nf-core/samtools/merge/environment.yml | 6 + modules/nf-core/samtools/merge/main.nf | 3 +- modules/nf-core/samtools/merge/meta.yml | 10 + .../nf-core/samtools/mpileup/environment.yml | 6 + modules/nf-core/samtools/mpileup/main.nf | 2 +- modules/nf-core/samtools/mpileup/meta.yml | 3 + .../nf-core/samtools/stats/environment.yml | 6 + modules/nf-core/samtools/stats/main.nf | 2 +- modules/nf-core/samtools/stats/meta.yml | 4 + .../nf-core/samtools/stats/tests/main.nf.test | 78 +++ .../samtools/stats/tests/main.nf.test.snap | 64 +++ modules/nf-core/samtools/stats/tests/tags.yml | 2 + modules/nf-core/samtools/view/environment.yml | 6 + modules/nf-core/samtools/view/main.nf | 2 +- modules/nf-core/samtools/view/meta.yml | 5 + .../sentieon/applyvarcal/environment.yml | 4 + modules/nf-core/sentieon/applyvarcal/meta.yml | 3 +- .../nf-core/sentieon/bwamem/environment.yml | 4 + modules/nf-core/sentieon/bwamem/meta.yml | 2 + .../nf-core/sentieon/dedup/environment.yml | 4 + modules/nf-core/sentieon/dedup/meta.yml | 2 + .../sentieon/dnamodelapply/environment.yml | 4 + .../nf-core/sentieon/dnamodelapply/meta.yml | 5 +- .../nf-core/sentieon/dnascope/environment.yml | 4 + modules/nf-core/sentieon/dnascope/meta.yml | 3 +- .../sentieon/gvcftyper/environment.yml | 4 + modules/nf-core/sentieon/gvcftyper/meta.yml | 3 +- .../sentieon/haplotyper/environment.yml | 4 + modules/nf-core/sentieon/haplotyper/meta.yml | 2 + .../nf-core/sentieon/varcal/environment.yml | 4 + modules/nf-core/sentieon/varcal/meta.yml | 2 + .../nf-core/snpeff/download/environment.yml | 6 + modules/nf-core/snpeff/download/main.nf | 2 +- modules/nf-core/snpeff/download/meta.yml | 2 + modules/nf-core/snpeff/snpeff/environment.yml | 6 + modules/nf-core/snpeff/snpeff/main.nf | 2 +- modules/nf-core/snpeff/snpeff/meta.yml | 2 + .../nf-core/strelka/germline/environment.yml | 6 + modules/nf-core/strelka/germline/main.nf | 2 +- modules/nf-core/strelka/germline/meta.yml | 3 +- .../nf-core/strelka/somatic/environment.yml | 6 + modules/nf-core/strelka/somatic/main.nf | 2 +- modules/nf-core/strelka/somatic/meta.yml | 5 +- modules/nf-core/svdb/merge/environment.yml | 7 + modules/nf-core/svdb/merge/main.nf | 2 +- modules/nf-core/svdb/merge/meta.yml | 2 + .../nf-core/tabix/bgziptabix/environment.yml | 6 + modules/nf-core/tabix/bgziptabix/main.nf | 2 +- modules/nf-core/tabix/bgziptabix/meta.yml | 3 + modules/nf-core/tabix/tabix/environment.yml | 6 + modules/nf-core/tabix/tabix/main.nf | 2 +- modules/nf-core/tabix/tabix/meta.yml | 4 + modules/nf-core/tiddit/sv/environment.yml | 6 + modules/nf-core/tiddit/sv/main.nf | 2 +- modules/nf-core/tiddit/sv/meta.yml | 2 + modules/nf-core/untar/environment.yml | 8 + modules/nf-core/untar/main.nf | 2 +- modules/nf-core/untar/meta.yml | 5 + modules/nf-core/unzip/environment.yml | 6 + modules/nf-core/unzip/main.nf | 2 +- modules/nf-core/unzip/meta.yml | 5 +- modules/nf-core/vcftools/environment.yml | 6 + modules/nf-core/vcftools/main.nf | 2 +- modules/nf-core/vcftools/meta.yml | 5 +- .../nf-core/vcf_annotate_ensemblvep/meta.yml | 4 + .../nf-core/vcf_annotate_snpeff/main.nf | 1 + .../nf-core/vcf_annotate_snpeff/meta.yml | 2 + 303 files changed, 2933 insertions(+), 453 deletions(-) create mode 100644 modules/nf-core/ascat/environment.yml create mode 100644 modules/nf-core/bcftools/annotate/environment.yml create mode 100644 modules/nf-core/bcftools/concat/environment.yml create mode 100644 modules/nf-core/bcftools/mpileup/environment.yml create mode 100644 modules/nf-core/bcftools/sort/environment.yml create mode 100644 modules/nf-core/bcftools/stats/environment.yml create mode 100644 modules/nf-core/bwa/index/environment.yml create mode 100644 modules/nf-core/bwa/index/tests/main.nf.test create mode 100644 modules/nf-core/bwa/index/tests/main.nf.test.snap create mode 100644 modules/nf-core/bwa/index/tests/tags.yml create mode 100644 modules/nf-core/bwa/mem/environment.yml create mode 100644 modules/nf-core/bwa/mem/tests/main.nf.test create mode 100644 modules/nf-core/bwa/mem/tests/main.nf.test.snap create mode 100644 modules/nf-core/bwa/mem/tests/tags.yml create mode 100644 modules/nf-core/bwamem2/index/environment.yml create mode 100644 modules/nf-core/bwamem2/mem/environment.yml create mode 100644 modules/nf-core/cat/cat/environment.yml create mode 100644 modules/nf-core/cat/cat/tests/main.nf.test create mode 100644 modules/nf-core/cat/cat/tests/main.nf.test.snap create mode 100644 modules/nf-core/cat/cat/tests/nextflow_unzipped_zipped.config create mode 100644 modules/nf-core/cat/cat/tests/nextflow_zipped_unzipped.config create mode 100644 modules/nf-core/cat/cat/tests/tags.yml create mode 100644 modules/nf-core/cat/fastq/environment.yml create mode 100644 modules/nf-core/cat/fastq/tests/main.nf.test create mode 100644 modules/nf-core/cat/fastq/tests/main.nf.test.snap create mode 100644 modules/nf-core/cat/fastq/tests/tags.yml create mode 100644 modules/nf-core/cnvkit/antitarget/environment.yml create mode 100644 modules/nf-core/cnvkit/batch/environment.yml create mode 100644 modules/nf-core/cnvkit/genemetrics/environment.yml create mode 100644 modules/nf-core/cnvkit/reference/environment.yml create mode 100644 modules/nf-core/controlfreec/assesssignificance/environment.yml create mode 100644 modules/nf-core/controlfreec/freec/environment.yml create mode 100644 modules/nf-core/controlfreec/freec2bed/environment.yml create mode 100644 modules/nf-core/controlfreec/freec2circos/environment.yml create mode 100644 modules/nf-core/controlfreec/makegraph/environment.yml create mode 100644 modules/nf-core/custom/dumpsoftwareversions/environment.yml create mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test create mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap create mode 100644 modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml create mode 100644 modules/nf-core/deepvariant/environment.yml create mode 100644 modules/nf-core/dragmap/align/environment.yml create mode 100644 modules/nf-core/dragmap/hashtable/environment.yml create mode 100644 modules/nf-core/ensemblvep/download/environment.yml create mode 100644 modules/nf-core/ensemblvep/vep/environment.yml create mode 100644 modules/nf-core/fastp/environment.yml create mode 100644 modules/nf-core/fastp/tests/main.nf.test create mode 100644 modules/nf-core/fastp/tests/main.nf.test.snap create mode 100644 modules/nf-core/fastp/tests/nextflow.config create mode 100644 modules/nf-core/fastp/tests/tags.yml create mode 100644 modules/nf-core/fastqc/environment.yml create mode 100644 modules/nf-core/fastqc/tests/main.nf.test create mode 100644 modules/nf-core/fastqc/tests/main.nf.test.snap create mode 100644 modules/nf-core/fastqc/tests/tags.yml create mode 100644 modules/nf-core/fgbio/callmolecularconsensusreads/environment.yml create mode 100644 modules/nf-core/fgbio/fastqtobam/environment.yml create mode 100644 modules/nf-core/fgbio/groupreadsbyumi/environment.yml create mode 100644 modules/nf-core/freebayes/environment.yml create mode 100644 modules/nf-core/gatk4/applybqsr/environment.yml create mode 100644 modules/nf-core/gatk4/applybqsrspark/environment.yml create mode 100644 modules/nf-core/gatk4/applyvqsr/environment.yml create mode 100644 modules/nf-core/gatk4/baserecalibrator/environment.yml create mode 100644 modules/nf-core/gatk4/baserecalibratorspark/environment.yml create mode 100644 modules/nf-core/gatk4/calculatecontamination/environment.yml create mode 100644 modules/nf-core/gatk4/cnnscorevariants/environment.yml create mode 100644 modules/nf-core/gatk4/createsequencedictionary/environment.yml create mode 100644 modules/nf-core/gatk4/estimatelibrarycomplexity/environment.yml create mode 100644 modules/nf-core/gatk4/filtermutectcalls/environment.yml create mode 100644 modules/nf-core/gatk4/filtervarianttranches/environment.yml create mode 100644 modules/nf-core/gatk4/gatherbqsrreports/environment.yml create mode 100644 modules/nf-core/gatk4/gatherpileupsummaries/environment.yml create mode 100644 modules/nf-core/gatk4/genomicsdbimport/environment.yml create mode 100644 modules/nf-core/gatk4/genotypegvcfs/environment.yml create mode 100644 modules/nf-core/gatk4/getpileupsummaries/environment.yml create mode 100644 modules/nf-core/gatk4/haplotypecaller/environment.yml create mode 100644 modules/nf-core/gatk4/intervallisttobed/environment.yml create mode 100644 modules/nf-core/gatk4/learnreadorientationmodel/environment.yml create mode 100644 modules/nf-core/gatk4/markduplicates/environment.yml create mode 100644 modules/nf-core/gatk4/markduplicatesspark/environment.yml create mode 100644 modules/nf-core/gatk4/mergemutectstats/environment.yml create mode 100644 modules/nf-core/gatk4/mergevcfs/environment.yml create mode 100644 modules/nf-core/gatk4/mutect2/environment.yml create mode 100644 modules/nf-core/gatk4/variantrecalibrator/environment.yml create mode 100644 modules/nf-core/manta/germline/environment.yml create mode 100644 modules/nf-core/manta/somatic/environment.yml create mode 100644 modules/nf-core/manta/tumoronly/environment.yml create mode 100644 modules/nf-core/mosdepth/environment.yml create mode 100644 modules/nf-core/msisensorpro/msisomatic/environment.yml create mode 100644 modules/nf-core/msisensorpro/scan/environment.yml create mode 100644 modules/nf-core/multiqc/environment.yml create mode 100644 modules/nf-core/samblaster/environment.yml create mode 100644 modules/nf-core/samtools/bam2fq/environment.yml create mode 100644 modules/nf-core/samtools/collatefastq/environment.yml create mode 100644 modules/nf-core/samtools/convert/environment.yml create mode 100644 modules/nf-core/samtools/faidx/environment.yml create mode 100644 modules/nf-core/samtools/index/environment.yml create mode 100644 modules/nf-core/samtools/merge/environment.yml create mode 100644 modules/nf-core/samtools/mpileup/environment.yml create mode 100644 modules/nf-core/samtools/stats/environment.yml create mode 100644 modules/nf-core/samtools/stats/tests/main.nf.test create mode 100644 modules/nf-core/samtools/stats/tests/main.nf.test.snap create mode 100644 modules/nf-core/samtools/stats/tests/tags.yml create mode 100644 modules/nf-core/samtools/view/environment.yml create mode 100644 modules/nf-core/sentieon/applyvarcal/environment.yml create mode 100644 modules/nf-core/sentieon/bwamem/environment.yml create mode 100644 modules/nf-core/sentieon/dedup/environment.yml create mode 100644 modules/nf-core/sentieon/dnamodelapply/environment.yml create mode 100644 modules/nf-core/sentieon/dnascope/environment.yml create mode 100644 modules/nf-core/sentieon/gvcftyper/environment.yml create mode 100644 modules/nf-core/sentieon/haplotyper/environment.yml create mode 100644 modules/nf-core/sentieon/varcal/environment.yml create mode 100644 modules/nf-core/snpeff/download/environment.yml create mode 100644 modules/nf-core/snpeff/snpeff/environment.yml create mode 100644 modules/nf-core/strelka/germline/environment.yml create mode 100644 modules/nf-core/strelka/somatic/environment.yml create mode 100644 modules/nf-core/svdb/merge/environment.yml create mode 100644 modules/nf-core/tabix/bgziptabix/environment.yml create mode 100644 modules/nf-core/tabix/tabix/environment.yml create mode 100644 modules/nf-core/tiddit/sv/environment.yml create mode 100644 modules/nf-core/untar/environment.yml create mode 100644 modules/nf-core/unzip/environment.yml create mode 100644 modules/nf-core/vcftools/environment.yml diff --git a/modules.json b/modules.json index 4cd099c32d..b8ee4e5685 100644 --- a/modules.json +++ b/modules.json @@ -7,476 +7,476 @@ "nf-core": { "ascat": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bcftools/annotate": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"], "patch": "modules/nf-core/bcftools/annotate/bcftools-annotate.diff" }, "bcftools/concat": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bcftools/mpileup": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bcftools/sort": { "branch": "master", - "git_sha": "d6d112a1af2ee8c97fc1932df008183341e7d8fe", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bcftools/stats": { "branch": "master", - "git_sha": "e2693a7e2d773b92e0649b25880ee22fe82bb79d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bwa/index": { "branch": "master", - "git_sha": "bfed129da5134b4439b1821c917972570d44d39c", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bwa/mem": { "branch": "master", - "git_sha": "3dc300ddcaa563c1e3503477557c0e0def6df2ce", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bwamem2/index": { "branch": "master", - "git_sha": "bfed129da5134b4439b1821c917972570d44d39c", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "bwamem2/mem": { "branch": "master", - "git_sha": "0460d316170f75f323111b4a2c0a2989f0c32013", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cat/cat": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cat/fastq": { "branch": "master", - "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cnvkit/antitarget": { "branch": "master", - "git_sha": "3b63e1df297ef474b0070aa5fabb30d732173671", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cnvkit/batch": { "branch": "master", - "git_sha": "3b63e1df297ef474b0070aa5fabb30d732173671", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cnvkit/genemetrics": { "branch": "master", - "git_sha": "3b63e1df297ef474b0070aa5fabb30d732173671", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "cnvkit/reference": { "branch": "master", - "git_sha": "3b63e1df297ef474b0070aa5fabb30d732173671", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "controlfreec/assesssignificance": { "branch": "master", - "git_sha": "3fbcafe2543dabcc7b2be0f3b24507002b3e4b0d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"], "patch": "modules/nf-core/controlfreec/assesssignificance/controlfreec-assesssignificance.diff" }, "controlfreec/freec": { "branch": "master", - "git_sha": "3fbcafe2543dabcc7b2be0f3b24507002b3e4b0d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "controlfreec/freec2bed": { "branch": "master", - "git_sha": "3fbcafe2543dabcc7b2be0f3b24507002b3e4b0d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "controlfreec/freec2circos": { "branch": "master", - "git_sha": "3fbcafe2543dabcc7b2be0f3b24507002b3e4b0d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "controlfreec/makegraph": { "branch": "master", - "git_sha": "3fbcafe2543dabcc7b2be0f3b24507002b3e4b0d", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"], "patch": "modules/nf-core/controlfreec/makegraph/controlfreec-makegraph.diff" }, "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "05c280924b6c768d484c7c443dad5e605c4ff4b4", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "deepvariant": { "branch": "master", - "git_sha": "ed67f2fadd6d2a155b296f728e6b1f8c92ddc1a6", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "dragmap/align": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "dragmap/hashtable": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"], "patch": "modules/nf-core/dragmap/hashtable/dragmap-hashtable.diff" }, "ensemblvep/download": { "branch": "master", - "git_sha": "9f9e1fc31cb35876922070c0e601ae05abae5cae", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "ensemblvep/vep": { "branch": "master", - "git_sha": "9f9e1fc31cb35876922070c0e601ae05abae5cae", - "installed_by": ["modules", "vcf_annotate_ensemblvep"] + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", + "installed_by": ["vcf_annotate_ensemblvep", "modules"] }, "fastp": { "branch": "master", - "git_sha": "d497a4868ace3302016ea8ed4b395072d5e833cd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "bd8092b67b5103bdd52e300f75889442275c3117", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "fgbio/callmolecularconsensusreads": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "fgbio/fastqtobam": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "fgbio/groupreadsbyumi": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "freebayes": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/applybqsr": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/applybqsrspark": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/applyvqsr": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/baserecalibrator": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/baserecalibratorspark": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/calculatecontamination": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/cnnscorevariants": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "gatk4/createsequencedictionary": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/estimatelibrarycomplexity": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/filtermutectcalls": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/filtervarianttranches": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/gatherbqsrreports": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/gatherpileupsummaries": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/genomicsdbimport": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/genotypegvcfs": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/getpileupsummaries": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/haplotypecaller": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/intervallisttobed": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/learnreadorientationmodel": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/markduplicates": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/markduplicatesspark": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/mergemutectstats": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/mergevcfs": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/mutect2": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "gatk4/variantrecalibrator": { "branch": "master", - "git_sha": "cf8f9ace77aac01caa5c7cb92af5bbda7adb77bd", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "manta/germline": { "branch": "master", - "git_sha": "80dbd95c558a0ebb2123d95f50c093a7f714a0d7", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "manta/somatic": { "branch": "master", - "git_sha": "b178a8cc4b8d38b9dc2d0a1e6a9b63e6786ce263", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "manta/tumoronly": { "branch": "master", - "git_sha": "b178a8cc4b8d38b9dc2d0a1e6a9b63e6786ce263", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "mosdepth": { "branch": "master", - "git_sha": "ebb27711cd5f4de921244bfa81c676504072d31c", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "msisensorpro/msisomatic": { "branch": "master", - "git_sha": "5b5d7fba9e08624def34f40e3f4b9268f2eeabbc", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "msisensorpro/scan": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "a6e11ac655e744f7ebc724be669dd568ffdc0e80", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samblaster": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/bam2fq": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/collatefastq": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/convert": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/faidx": { "branch": "master", - "git_sha": "fd742419940e01ba1c5ecb172c3e32ec840662fe", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/index": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/merge": { "branch": "master", - "git_sha": "0460d316170f75f323111b4a2c0a2989f0c32013", + "git_sha": "e7ce60acc8a33fa17429e966364657a63016e870", "installed_by": ["modules"] }, "samtools/mpileup": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/stats": { "branch": "master", - "git_sha": "735e1e04e7e01751d2d6e97055bbdb6f70683cc1", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "samtools/view": { "branch": "master", - "git_sha": "3ffae3598260a99e8db3207dead9f73f87f90d1f", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "sentieon/applyvarcal": { "branch": "master", - "git_sha": "6c9c11ee96796e53a01b4719286acce6af14bc3a", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/bwamem": { "branch": "master", - "git_sha": "149b4746c6e16ef84f64db5bb245d5b9495fdc3f", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/dedup": { "branch": "master", - "git_sha": "915a0b16ba3e40ef59e7b44843b3118e17a9c906", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/dnamodelapply": { "branch": "master", - "git_sha": "43ef68091a1188fd8dc4c03f9341b556803c7514", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/dnascope": { "branch": "master", - "git_sha": "4fb6fdc8046ec09cd30f92a2a252e9a0ba4a6309", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/gvcftyper": { "branch": "master", - "git_sha": "6c9c11ee96796e53a01b4719286acce6af14bc3a", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/haplotyper": { "branch": "master", - "git_sha": "b9172e8c26a3db5009f7872654c44587e254f094", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "sentieon/varcal": { "branch": "master", - "git_sha": "6c9c11ee96796e53a01b4719286acce6af14bc3a", + "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc", "installed_by": ["modules"] }, "snpeff/download": { "branch": "master", - "git_sha": "4d584d5cf6ed5f7363a51cdb4b3eb25398e9e537", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "snpeff/snpeff": { "branch": "master", - "git_sha": "4d584d5cf6ed5f7363a51cdb4b3eb25398e9e537", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["vcf_annotate_snpeff", "modules"] }, "strelka/germline": { "branch": "master", - "git_sha": "80dbd95c558a0ebb2123d95f50c093a7f714a0d7", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "strelka/somatic": { "branch": "master", - "git_sha": "80dbd95c558a0ebb2123d95f50c093a7f714a0d7", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "svdb/merge": { "branch": "master", - "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "tabix/bgziptabix": { "branch": "master", - "git_sha": "591b71642820933dcb3c954c934b397bd00d8e5e", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["vcf_annotate_snpeff", "modules"] }, "tabix/tabix": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["vcf_annotate_ensemblvep", "modules"] }, "tiddit/sv": { "branch": "master", - "git_sha": "1c90a501d102b800c27697f5ef39a6e217ab1915", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "untar": { "branch": "master", - "git_sha": "d0b4fc03af52a1cc8c6fb4493b921b57352b1dd8", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "unzip": { "branch": "master", - "git_sha": "cf67a6d7d043e2bd6a3099be84c72046fc71508f", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, "vcftools": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] } } @@ -485,12 +485,12 @@ "nf-core": { "vcf_annotate_ensemblvep": { "branch": "master", - "git_sha": "dedc0e31087f3306101c38835d051bf49789445a", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", "installed_by": ["subworkflows"] }, "vcf_annotate_snpeff": { "branch": "master", - "git_sha": "dedc0e31087f3306101c38835d051bf49789445a", + "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/ascat/environment.yml b/modules/nf-core/ascat/environment.yml new file mode 100644 index 0000000000..6708ce86a8 --- /dev/null +++ b/modules/nf-core/ascat/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::ascat=3.1.1 + - bioconda::cancerit-allelecount=4.3.0 diff --git a/modules/nf-core/ascat/main.nf b/modules/nf-core/ascat/main.nf index 922f8b3cac..8aeb9847b5 100644 --- a/modules/nf-core/ascat/main.nf +++ b/modules/nf-core/ascat/main.nf @@ -2,7 +2,7 @@ process ASCAT { tag "$meta.id" label 'process_medium' - conda "bioconda::ascat=3.1.1 bioconda::cancerit-allelecount=4.3.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:ba3e6d2157eac2d38d22e62ec87675e12adb1010-0': 'biocontainers/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:ba3e6d2157eac2d38d22e62ec87675e12adb1010-0' }" diff --git a/modules/nf-core/ascat/meta.yml b/modules/nf-core/ascat/meta.yml index 104ef0fb33..34ea2e51d9 100644 --- a/modules/nf-core/ascat/meta.yml +++ b/modules/nf-core/ascat/meta.yml @@ -7,12 +7,10 @@ keywords: tools: - ascat: description: ASCAT is a method to derive copy number profiles of tumour cells, accounting for normal cell admixture and tumour aneuploidy. ASCAT infers tumour purity (the fraction of tumour cells) and ploidy (the amount of DNA per tumour cell), expressed as multiples of haploid genomes from SNP array or massively parallel sequencing data, and calculates whole-genome allele-specific copy number profiles (the number of copies of both parental alleles for all SNP loci across the genome). - documentation: https://github.com/VanLoo-lab/ascat/tree/master/man tool_dev_url: https://github.com/VanLoo-lab/ascat doi: "10.1093/bioinformatics/btaa538" licence: ["GPL v3"] - input: - args: type: map @@ -38,7 +36,6 @@ input: ] } ``` - - meta: type: map description: | @@ -46,8 +43,7 @@ input: e.g. [ id:'test', single_end:false ] - input_normal: type: file - description: BAM/CRAM file, must adhere to chr1, chr2, ...chrX notation - For modifying chromosome notation in bam files please follow https://josephcckuo.wordpress.com/2016/11/17/modify-chromosome-notation-in-bam-file/. + description: BAM/CRAM file, must adhere to chr1, chr2, ...chrX notation For modifying chromosome notation in bam files please follow https://josephcckuo.wordpress.com/2016/11/17/modify-chromosome-notation-in-bam-file/. pattern: "*.{bam,cram}" - index_normal: type: file @@ -66,10 +62,7 @@ input: description: allele files for ASCAT WGS. Can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS - loci_files: type: file - description: - loci files for ASCAT WGS. Loci files without chromosome notation can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS - Make sure the chromosome notation matches the bam/cram input files. To add the chromosome notation to loci files (hg19/hg38) if necessary, you can run this command - `if [[ $(samtools view | head -n1 | cut -f3)\" == *\"chr\"* ]]; then for i in {1..22} X; do sed -i 's/^/chr/' G1000_loci_hg19_chr_${i}.txt; done; fi` + description: loci files for ASCAT WGS. Loci files without chromosome notation can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS Make sure the chromosome notation matches the bam/cram input files. To add the chromosome notation to loci files (hg19/hg38) if necessary, you can run this command `if [[ $(samtools view | head -n1 | cut -f3)\" == *\"chr\"* ]]; then for i in {1..22} X; do sed -i 's/^/chr/' G1000_loci_hg19_chr_${i}.txt; done; fi` - bed_file: type: file description: Bed file for ASCAT WES (optional, but recommended for WES) @@ -118,3 +111,9 @@ authors: - "@FriederikeHanssen" - "@maxulysse" - "@SusiJo" +maintainers: + - "@aasNGC" + - "@lassefolkersen" + - "@FriederikeHanssen" + - "@maxulysse" + - "@SusiJo" diff --git a/modules/nf-core/bcftools/annotate/environment.yml b/modules/nf-core/bcftools/annotate/environment.yml new file mode 100644 index 0000000000..57631f42ea --- /dev/null +++ b/modules/nf-core/bcftools/annotate/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bcftools=1.17 diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf index 58c189a60f..1a9db2cb4b 100644 --- a/modules/nf-core/bcftools/annotate/main.nf +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -2,20 +2,17 @@ process BCFTOOLS_ANNOTATE { tag "$meta.id" label 'process_low' - conda "bioconda::bcftools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': - 'quay.io/biocontainers/bcftools:1.17--haef29d1_0' }" + 'biocontainers/bcftools:1.17--haef29d1_0' }" input: - tuple val(meta), path(vcf) - path bcftools_annotations - path bcftools_annotations_index - path bcftools_header_lines + tuple val(meta), path(input), path(index), path(annotations), path(annotations_index), path(header_lines) output: - tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -23,19 +20,15 @@ process BCFTOOLS_ANNOTATE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def header_file = bcftools_header_lines ? "--header-lines ${bcftools_header_lines}" : '' - def annotations_file = bcftools_annotations ? "--annotations ${bcftools_annotations}" : '' + def header_file = header_lines ? "--header-lines ${header_lines}" : '' + def annotations_file = annotations ? "--annotations ${annotations}" : '' def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : "vcf" - if ("$vcf" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + if ("$input" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" """ - bcftools \\ - index \\ - $vcf - bcftools \\ annotate \\ $args \\ @@ -43,7 +36,7 @@ process BCFTOOLS_ANNOTATE { $header_file \\ --output ${prefix}.${extension} \\ --threads $task.cpus \\ - $vcf + $input cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -67,4 +60,4 @@ process BCFTOOLS_ANNOTATE { bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) END_VERSIONS """ -} \ No newline at end of file +} diff --git a/modules/nf-core/bcftools/annotate/meta.yml b/modules/nf-core/bcftools/annotate/meta.yml index c8a389697e..f3aa463bf5 100644 --- a/modules/nf-core/bcftools/annotate/meta.yml +++ b/modules/nf-core/bcftools/annotate/meta.yml @@ -13,7 +13,6 @@ tools: documentation: https://samtools.github.io/bcftools/bcftools.html#annotate doi: 10.1093/bioinformatics/btp352 licence: ["MIT"] - input: - meta: type: map @@ -26,16 +25,15 @@ input: - index: type: file description: Index of the query VCF or BCF file - - bcftools_annotations: + - annotations: type: file description: Bgzip-compressed file with annotations - - bcftools_annotations_index: + - annotations_index: type: file description: Index of the annotations file - - bcftools_header_lines: + - header_lines: type: file description: Contains lines to append to the output VCF header - output: - meta: type: map @@ -50,7 +48,9 @@ output: type: file description: Compressed annotated VCF file pattern: "*{vcf,vcf.gz,bcf,bcf.gz}" - authors: - "@projectoriented" - "@ramprasadn" +maintainers: + - "@projectoriented" + - "@ramprasadn" diff --git a/modules/nf-core/bcftools/concat/environment.yml b/modules/nf-core/bcftools/concat/environment.yml new file mode 100644 index 0000000000..57631f42ea --- /dev/null +++ b/modules/nf-core/bcftools/concat/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bcftools=1.17 diff --git a/modules/nf-core/bcftools/concat/main.nf b/modules/nf-core/bcftools/concat/main.nf index 244a42ccf0..2ff690b1be 100644 --- a/modules/nf-core/bcftools/concat/main.nf +++ b/modules/nf-core/bcftools/concat/main.nf @@ -2,7 +2,7 @@ process BCFTOOLS_CONCAT { tag "$meta.id" label 'process_medium' - conda "bioconda::bcftools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': 'biocontainers/bcftools:1.17--haef29d1_0' }" diff --git a/modules/nf-core/bcftools/concat/meta.yml b/modules/nf-core/bcftools/concat/meta.yml index e8c83cd685..8731b17bc8 100644 --- a/modules/nf-core/bcftools/concat/meta.yml +++ b/modules/nf-core/bcftools/concat/meta.yml @@ -5,7 +5,6 @@ keywords: - concat - bcftools - VCF - tools: - concat: description: | @@ -47,3 +46,6 @@ output: authors: - "@abhi18av" - "@nvnieuwk" +maintainers: + - "@abhi18av" + - "@nvnieuwk" diff --git a/modules/nf-core/bcftools/mpileup/environment.yml b/modules/nf-core/bcftools/mpileup/environment.yml new file mode 100644 index 0000000000..57631f42ea --- /dev/null +++ b/modules/nf-core/bcftools/mpileup/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bcftools=1.17 diff --git a/modules/nf-core/bcftools/mpileup/main.nf b/modules/nf-core/bcftools/mpileup/main.nf index aa9e811fa1..83bec8ef5f 100644 --- a/modules/nf-core/bcftools/mpileup/main.nf +++ b/modules/nf-core/bcftools/mpileup/main.nf @@ -2,14 +2,14 @@ process BCFTOOLS_MPILEUP { tag "$meta.id" label 'process_medium' - conda "bioconda::bcftools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': 'biocontainers/bcftools:1.17--haef29d1_0' }" input: tuple val(meta), path(bam), path(intervals) - path fasta + tuple val(meta2), path(fasta) val save_mpileup output: diff --git a/modules/nf-core/bcftools/mpileup/meta.yml b/modules/nf-core/bcftools/mpileup/meta.yml index 5619a6f511..65410ddd66 100644 --- a/modules/nf-core/bcftools/mpileup/meta.yml +++ b/modules/nf-core/bcftools/mpileup/meta.yml @@ -25,6 +25,10 @@ input: - intervals: type: file description: Input intervals file. A file (commonly '.bed') containing regions to subset + - meta: + type: map + description: | + Groovy Map containing information about the genome fasta, e.g. [ id: 'sarscov2' ] - fasta: type: file description: FASTA reference file @@ -61,3 +65,6 @@ output: authors: - "@joseespinosa" - "@drpatelh" +maintainers: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/bcftools/sort/environment.yml b/modules/nf-core/bcftools/sort/environment.yml new file mode 100644 index 0000000000..57631f42ea --- /dev/null +++ b/modules/nf-core/bcftools/sort/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bcftools=1.17 diff --git a/modules/nf-core/bcftools/sort/main.nf b/modules/nf-core/bcftools/sort/main.nf index 702d510f37..c842daf232 100644 --- a/modules/nf-core/bcftools/sort/main.nf +++ b/modules/nf-core/bcftools/sort/main.nf @@ -2,7 +2,7 @@ process BCFTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda "bioconda::bcftools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': 'biocontainers/bcftools:1.17--haef29d1_0' }" diff --git a/modules/nf-core/bcftools/sort/meta.yml b/modules/nf-core/bcftools/sort/meta.yml index 0c244a486e..84747c6d89 100644 --- a/modules/nf-core/bcftools/sort/meta.yml +++ b/modules/nf-core/bcftools/sort/meta.yml @@ -12,7 +12,6 @@ tools: tool_dev_url: https://github.com/samtools/bcftools doi: "10.1093/bioinformatics/btp352" licence: ["MIT"] - input: - meta: type: map @@ -23,7 +22,6 @@ input: type: file description: The VCF/BCF file to be sorted pattern: "*.{vcf.gz,vcf,bcf}" - output: - meta: type: map @@ -38,6 +36,7 @@ output: type: file description: Sorted VCF file pattern: "*.{vcf.gz}" - authors: - "@Gwennid" +maintainers: + - "@Gwennid" diff --git a/modules/nf-core/bcftools/stats/environment.yml b/modules/nf-core/bcftools/stats/environment.yml new file mode 100644 index 0000000000..57631f42ea --- /dev/null +++ b/modules/nf-core/bcftools/stats/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bcftools=1.17 diff --git a/modules/nf-core/bcftools/stats/main.nf b/modules/nf-core/bcftools/stats/main.nf index 7ccb9bf6cb..b3a5f23ba6 100644 --- a/modules/nf-core/bcftools/stats/main.nf +++ b/modules/nf-core/bcftools/stats/main.nf @@ -2,7 +2,7 @@ process BCFTOOLS_STATS { tag "$meta.id" label 'process_single' - conda "bioconda::bcftools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': 'biocontainers/bcftools:1.17--haef29d1_0' }" diff --git a/modules/nf-core/bcftools/stats/meta.yml b/modules/nf-core/bcftools/stats/meta.yml index 5850d25f71..7ea2103e3b 100644 --- a/modules/nf-core/bcftools/stats/meta.yml +++ b/modules/nf-core/bcftools/stats/meta.yml @@ -70,3 +70,8 @@ authors: - "@drpatelh" - "@SusiJo" - "@TCLamnidis" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@SusiJo" + - "@TCLamnidis" diff --git a/modules/nf-core/bwa/index/environment.yml b/modules/nf-core/bwa/index/environment.yml new file mode 100644 index 0000000000..c5b0826008 --- /dev/null +++ b/modules/nf-core/bwa/index/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bwa=0.7.17 diff --git a/modules/nf-core/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf index c30d194d05..24b5a2ea99 100644 --- a/modules/nf-core/bwa/index/main.nf +++ b/modules/nf-core/bwa/index/main.nf @@ -2,7 +2,7 @@ process BWA_INDEX { tag "$fasta" label 'process_single' - conda "bioconda::bwa=0.7.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' : 'biocontainers/bwa:0.7.17--hed695b0_7' }" diff --git a/modules/nf-core/bwa/index/meta.yml b/modules/nf-core/bwa/index/meta.yml index 2c6cfcd795..730628d005 100644 --- a/modules/nf-core/bwa/index/meta.yml +++ b/modules/nf-core/bwa/index/meta.yml @@ -40,3 +40,6 @@ output: authors: - "@drpatelh" - "@maxulysse" +maintainers: + - "@drpatelh" + - "@maxulysse" diff --git a/modules/nf-core/bwa/index/tests/main.nf.test b/modules/nf-core/bwa/index/tests/main.nf.test new file mode 100644 index 0000000000..5fc8d49662 --- /dev/null +++ b/modules/nf-core/bwa/index/tests/main.nf.test @@ -0,0 +1,33 @@ +nextflow_process { + + name "Test Process BWA_INDEX" + tag "modules_nfcore" + tag "modules" + tag "bwa" + tag "bwa/index" + script "../main.nf" + process "BWA_INDEX" + + test("BWA index") { + + when { + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/bwa/index/tests/main.nf.test.snap b/modules/nf-core/bwa/index/tests/main.nf.test.snap new file mode 100644 index 0000000000..e51ad5bf2b --- /dev/null +++ b/modules/nf-core/bwa/index/tests/main.nf.test.snap @@ -0,0 +1,43 @@ +{ + "BWA index": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "genome.amb:md5,3a68b8b2287e07dd3f5f95f4344ba76e", + "genome.ann:md5,c32e11f6c859f166c7525a9c1d583567", + "genome.bwt:md5,0469c30a1e239dd08f68afe66fde99da", + "genome.pac:md5,983e3d2cd6f36e2546e6d25a0da78d66", + "genome.sa:md5,ab3952cabf026b48cd3eb5bccbb636d1" + ] + ] + ], + "1": [ + "versions.yml:md5,0f20525da90e7489a7ebb02adca3265f" + ], + "index": [ + [ + { + "id": "test" + }, + [ + "genome.amb:md5,3a68b8b2287e07dd3f5f95f4344ba76e", + "genome.ann:md5,c32e11f6c859f166c7525a9c1d583567", + "genome.bwt:md5,0469c30a1e239dd08f68afe66fde99da", + "genome.pac:md5,983e3d2cd6f36e2546e6d25a0da78d66", + "genome.sa:md5,ab3952cabf026b48cd3eb5bccbb636d1" + ] + ] + ], + "versions": [ + "versions.yml:md5,0f20525da90e7489a7ebb02adca3265f" + ] + } + ], + "timestamp": "2023-10-17T17:20:20.180927714" + } +} \ No newline at end of file diff --git a/modules/nf-core/bwa/index/tests/tags.yml b/modules/nf-core/bwa/index/tests/tags.yml new file mode 100644 index 0000000000..28bb483c4e --- /dev/null +++ b/modules/nf-core/bwa/index/tests/tags.yml @@ -0,0 +1,2 @@ +bwa/index: + - modules/nf-core/bwa/index/** diff --git a/modules/nf-core/bwa/mem/environment.yml b/modules/nf-core/bwa/mem/environment.yml new file mode 100644 index 0000000000..34f50c48b4 --- /dev/null +++ b/modules/nf-core/bwa/mem/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bwa=0.7.17 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf index 8ba99dfdb7..17e6fbd06c 100644 --- a/modules/nf-core/bwa/mem/main.nf +++ b/modules/nf-core/bwa/mem/main.nf @@ -2,7 +2,7 @@ process BWA_MEM { tag "$meta.id" label 'process_high' - conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' : 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }" diff --git a/modules/nf-core/bwa/mem/meta.yml b/modules/nf-core/bwa/mem/meta.yml index 62357bf8d5..440fb1f9cf 100644 --- a/modules/nf-core/bwa/mem/meta.yml +++ b/modules/nf-core/bwa/mem/meta.yml @@ -53,3 +53,6 @@ output: authors: - "@drpatelh" - "@jeremy1805" +maintainers: + - "@drpatelh" + - "@jeremy1805" diff --git a/modules/nf-core/bwa/mem/tests/main.nf.test b/modules/nf-core/bwa/mem/tests/main.nf.test new file mode 100644 index 0000000000..b199bb70f6 --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/main.nf.test @@ -0,0 +1,172 @@ +nextflow_process { + + name "Test Process BWA_MEM" + tag "modules_nfcore" + tag "modules" + tag "bwa" + tag "bwa/mem" + script "../main.nf" + process "BWA_MEM" + + test("Single-End") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Single-End Sort") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Paired-End") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Paired-End Sort") { + + setup { + run("BWA_INDEX") { + script "../../index/main.nf" + process { + """ + input[0] = [ + [id: 'test'], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = BWA_INDEX.out.index + input[2] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } +} diff --git a/modules/nf-core/bwa/mem/tests/main.nf.test.snap b/modules/nf-core/bwa/mem/tests/main.nf.test.snap new file mode 100644 index 0000000000..ea3bfed4fd --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/main.nf.test.snap @@ -0,0 +1,126 @@ +{ + "Single-End": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,3d43027d4163ada97911b814001511e5" + ] + ], + "1": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,3d43027d4163ada97911b814001511e5" + ] + ], + "versions": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ] + } + ], + "timestamp": "2023-10-18T11:02:55.420631681" + }, + "Single-End Sort": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,61eac1213d2bf5e88e225e545010e9b8" + ] + ], + "1": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,61eac1213d2bf5e88e225e545010e9b8" + ] + ], + "versions": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ] + } + ], + "timestamp": "2023-10-18T11:03:02.646869498" + }, + "Paired-End": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,809ccfe4300fa5005a9d0d4dc09b1a36" + ] + ], + "1": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,809ccfe4300fa5005a9d0d4dc09b1a36" + ] + ], + "versions": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ] + } + ], + "timestamp": "2023-10-18T11:03:09.793041294" + }, + "Paired-End Sort": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,2622f4380f992c505af7dab8c256313f" + ] + ], + "1": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,2622f4380f992c505af7dab8c256313f" + ] + ], + "versions": [ + "versions.yml:md5,809f4a8c7f0c8497a9099dab9d6cc71e" + ] + } + ], + "timestamp": "2023-10-18T11:04:43.662093286" + } +} \ No newline at end of file diff --git a/modules/nf-core/bwa/mem/tests/tags.yml b/modules/nf-core/bwa/mem/tests/tags.yml new file mode 100644 index 0000000000..82992d1f0b --- /dev/null +++ b/modules/nf-core/bwa/mem/tests/tags.yml @@ -0,0 +1,3 @@ +bwa/mem: + - modules/nf-core/bwa/index/** + - modules/nf-core/bwa/mem/** diff --git a/modules/nf-core/bwamem2/index/environment.yml b/modules/nf-core/bwamem2/index/environment.yml new file mode 100644 index 0000000000..cef9ec4e78 --- /dev/null +++ b/modules/nf-core/bwamem2/index/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bwa-mem2=2.2.1 diff --git a/modules/nf-core/bwamem2/index/main.nf b/modules/nf-core/bwamem2/index/main.nf index 244e1005a1..b7688285d7 100644 --- a/modules/nf-core/bwamem2/index/main.nf +++ b/modules/nf-core/bwamem2/index/main.nf @@ -2,7 +2,7 @@ process BWAMEM2_INDEX { tag "$fasta" label 'process_single' - conda "bioconda::bwa-mem2=2.2.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bwa-mem2:2.2.1--he513fc3_0' : 'biocontainers/bwa-mem2:2.2.1--he513fc3_0' }" diff --git a/modules/nf-core/bwamem2/index/meta.yml b/modules/nf-core/bwamem2/index/meta.yml index 40c26c3873..c14a109252 100644 --- a/modules/nf-core/bwamem2/index/meta.yml +++ b/modules/nf-core/bwamem2/index/meta.yml @@ -38,3 +38,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/bwamem2/mem/environment.yml b/modules/nf-core/bwamem2/mem/environment.yml new file mode 100644 index 0000000000..2d75270b2b --- /dev/null +++ b/modules/nf-core/bwamem2/mem/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::bwa-mem2=2.2.1 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/bwamem2/mem/main.nf b/modules/nf-core/bwamem2/mem/main.nf index d427dea3c4..cbec7eef50 100644 --- a/modules/nf-core/bwamem2/mem/main.nf +++ b/modules/nf-core/bwamem2/mem/main.nf @@ -2,7 +2,7 @@ process BWAMEM2_MEM { tag "$meta.id" label 'process_high' - conda "bioconda::bwa-mem2=2.2.1 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:2cdf6bf1e92acbeb9b2834b1c58754167173a410-0' : 'biocontainers/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:2cdf6bf1e92acbeb9b2834b1c58754167173a410-0' }" diff --git a/modules/nf-core/bwamem2/mem/meta.yml b/modules/nf-core/bwamem2/mem/meta.yml index bc3dfcdd0e..04891b26a9 100644 --- a/modules/nf-core/bwamem2/mem/meta.yml +++ b/modules/nf-core/bwamem2/mem/meta.yml @@ -57,3 +57,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/cat/cat/environment.yml b/modules/nf-core/cat/cat/environment.yml new file mode 100644 index 0000000000..cdad6baafc --- /dev/null +++ b/modules/nf-core/cat/cat/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - conda-forge::pigz=2.3.4 diff --git a/modules/nf-core/cat/cat/main.nf b/modules/nf-core/cat/cat/main.nf index 9f062219bb..4264a92ccc 100644 --- a/modules/nf-core/cat/cat/main.nf +++ b/modules/nf-core/cat/cat/main.nf @@ -2,7 +2,7 @@ process CAT_CAT { tag "$meta.id" label 'process_low' - conda "conda-forge::pigz=2.3.4" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/pigz:2.3.4' : 'biocontainers/pigz:2.3.4' }" diff --git a/modules/nf-core/cat/cat/meta.yml b/modules/nf-core/cat/cat/meta.yml index 8acc0bfac5..00a8db0bca 100644 --- a/modules/nf-core/cat/cat/meta.yml +++ b/modules/nf-core/cat/cat/meta.yml @@ -7,9 +7,7 @@ keywords: tools: - cat: description: Just concatenation - documentation: https://man7.org/linux/man-pages/man1/cat.1.html - licence: ["GPL-3.0-or-later"] input: - meta: @@ -21,7 +19,6 @@ input: type: file description: List of compressed / uncompressed files pattern: "*" - output: - versions: type: file @@ -31,7 +28,9 @@ output: type: file description: Concatenated file. Will be gzipped if file_out ends with ".gz" pattern: "${file_out}" - authors: - "@erikrikarddaniel" - "@FriederikeHanssen" +maintainers: + - "@erikrikarddaniel" + - "@FriederikeHanssen" diff --git a/modules/nf-core/cat/cat/tests/main.nf.test b/modules/nf-core/cat/cat/tests/main.nf.test new file mode 100644 index 0000000000..5766daafbe --- /dev/null +++ b/modules/nf-core/cat/cat/tests/main.nf.test @@ -0,0 +1,153 @@ +nextflow_process { + + name "Test Process CAT_CAT" + script "../main.nf" + process "CAT_CAT" + tag "modules" + tag "modules_nfcore" + tag "cat" + tag "cat/cat" + + test("test_cat_unzipped_unzipped") { + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'test', single_end:true ], + [ + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true) + ] + ] + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + + test("test_cat_zipped_zipped") { + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'test', single_end:true ], + [ + file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true) + ] + ] + """ + } + } + then { + def lines = path(process.out.file_out.get(0).get(1)).linesGzip + assertAll( + { assert process.success }, + { assert snapshot(lines[0..5]).match("test_cat_zipped_zipped_lines") }, + { assert snapshot(lines.size()).match("test_cat_zipped_zipped_size")} + ) + } + } + + test("test_cat_zipped_unzipped") { + config './nextflow_zipped_unzipped.config' + + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'test', single_end:true ], + [ + file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_cat_unzipped_zipped") { + config './nextflow_unzipped_zipped.config' + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'test', single_end:true ], + [ + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true) + ] + ] + """ + } + } + then { + def lines = path(process.out.file_out.get(0).get(1)).linesGzip + assertAll( + { assert process.success }, + { assert snapshot(lines[0..5]).match("test_cat_unzipped_zipped_lines") }, + { assert snapshot(lines.size()).match("test_cat_unzipped_zipped_size")} + ) + } + } + + test("test_cat_one_file_unzipped_zipped") { + config './nextflow_unzipped_zipped.config' + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'test', single_end:true ], + [ + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + ] + """ + } + } + then { + def lines = path(process.out.file_out.get(0).get(1)).linesGzip + assertAll( + { assert process.success }, + { assert snapshot(lines[0..5]).match("test_cat_one_file_unzipped_zipped_lines") }, + { assert snapshot(lines.size()).match("test_cat_one_file_unzipped_zipped_size")} + ) + } + } +} + diff --git a/modules/nf-core/cat/cat/tests/main.nf.test.snap b/modules/nf-core/cat/cat/tests/main.nf.test.snap new file mode 100644 index 0000000000..423571ba27 --- /dev/null +++ b/modules/nf-core/cat/cat/tests/main.nf.test.snap @@ -0,0 +1,121 @@ +{ + "test_cat_unzipped_zipped_size": { + "content": [ + 375 + ], + "timestamp": "2023-10-16T14:33:08.049445686" + }, + "test_cat_unzipped_unzipped": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fasta:md5,f44b33a0e441ad58b2d3700270e2dbe2" + ] + ], + "1": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ], + "file_out": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fasta:md5,f44b33a0e441ad58b2d3700270e2dbe2" + ] + ], + "versions": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ] + } + ], + "timestamp": "2023-10-16T14:32:18.500464399" + }, + "test_cat_zipped_unzipped": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "cat.txt:md5,c439d3b60e7bc03e8802a451a0d9a5d9" + ] + ], + "1": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ], + "file_out": [ + [ + { + "id": "test", + "single_end": true + }, + "cat.txt:md5,c439d3b60e7bc03e8802a451a0d9a5d9" + ] + ], + "versions": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ] + } + ], + "timestamp": "2023-10-16T14:32:49.642741302" + }, + "test_cat_zipped_zipped_lines": { + "content": [ + [ + "MT192765.1\tGenbank\ttranscript\t259\t29667\t.\t+\t.\tID=unknown_transcript_1;geneID=orf1ab;gene_name=orf1ab", + "MT192765.1\tGenbank\tgene\t259\t21548\t.\t+\t.\tParent=unknown_transcript_1", + "MT192765.1\tGenbank\tCDS\t259\t13461\t.\t+\t0\tParent=unknown_transcript_1;exception=\"ribosomal slippage\";gbkey=CDS;gene=orf1ab;note=\"pp1ab;translated=by -1 ribosomal frameshift\";product=\"orf1ab polyprotein\";protein_id=QIK50426.1", + "MT192765.1\tGenbank\tCDS\t13461\t21548\t.\t+\t0\tParent=unknown_transcript_1;exception=\"ribosomal slippage\";gbkey=CDS;gene=orf1ab;note=\"pp1ab;translated=by -1 ribosomal frameshift\";product=\"orf1ab polyprotein\";protein_id=QIK50426.1", + "MT192765.1\tGenbank\tCDS\t21556\t25377\t.\t+\t0\tParent=unknown_transcript_1;gbkey=CDS;gene=S;note=\"structural protein\";product=\"surface glycoprotein\";protein_id=QIK50427.1", + "MT192765.1\tGenbank\tgene\t21556\t25377\t.\t+\t.\tParent=unknown_transcript_1" + ] + ], + "timestamp": "2023-10-16T14:32:33.629048645" + }, + "test_cat_unzipped_zipped_lines": { + "content": [ + [ + ">MT192765.1 Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/USA/PC00101P/2020, complete genome", + "GTTTATACCTTCCCAGGTAACAAACCAACCAACTTTCGATCTCTTGTAGATCTGTTCTCTAAACGAACTTTAAAATCTGT", + "GTGGCTGTCACTCGGCTGCATGCTTAGTGCACTCACGCAGTATAATTAATAACTAATTACTGTCGTTGACAGGACACGAG", + "TAACTCGTCTATCTTCTGCAGGCTGCTTACGGTTTCGTCCGTGTTGCAGCCGATCATCAGCACATCTAGGTTTTGTCCGG", + "GTGTGACCGAAAGGTAAGATGGAGAGCCTTGTCCCTGGTTTCAACGAGAAAACACACGTCCAACTCAGTTTGCCTGTTTT", + "ACAGGTTCGCGACGTGCTCGTACGTGGCTTTGGAGACTCCGTGGAGGAGGTCTTATCAGAGGCACGTCAACATCTTAAAG" + ] + ], + "timestamp": "2023-10-16T14:33:08.038830506" + }, + "test_cat_one_file_unzipped_zipped_lines": { + "content": [ + [ + ">MT192765.1 Severe acute respiratory syndrome coronavirus 2 isolate SARS-CoV-2/human/USA/PC00101P/2020, complete genome", + "GTTTATACCTTCCCAGGTAACAAACCAACCAACTTTCGATCTCTTGTAGATCTGTTCTCTAAACGAACTTTAAAATCTGT", + "GTGGCTGTCACTCGGCTGCATGCTTAGTGCACTCACGCAGTATAATTAATAACTAATTACTGTCGTTGACAGGACACGAG", + "TAACTCGTCTATCTTCTGCAGGCTGCTTACGGTTTCGTCCGTGTTGCAGCCGATCATCAGCACATCTAGGTTTTGTCCGG", + "GTGTGACCGAAAGGTAAGATGGAGAGCCTTGTCCCTGGTTTCAACGAGAAAACACACGTCCAACTCAGTTTGCCTGTTTT", + "ACAGGTTCGCGACGTGCTCGTACGTGGCTTTGGAGACTCCGTGGAGGAGGTCTTATCAGAGGCACGTCAACATCTTAAAG" + ] + ], + "timestamp": "2023-10-16T14:33:21.39642399" + }, + "test_cat_zipped_zipped_size": { + "content": [ + 78 + ], + "timestamp": "2023-10-16T14:32:33.641869244" + }, + "test_cat_one_file_unzipped_zipped_size": { + "content": [ + 374 + ], + "timestamp": "2023-10-16T14:33:21.4094373" + } +} \ No newline at end of file diff --git a/modules/nf-core/cat/cat/tests/nextflow_unzipped_zipped.config b/modules/nf-core/cat/cat/tests/nextflow_unzipped_zipped.config new file mode 100644 index 0000000000..ec26b0fdc6 --- /dev/null +++ b/modules/nf-core/cat/cat/tests/nextflow_unzipped_zipped.config @@ -0,0 +1,6 @@ + +process { + withName: CAT_CAT { + ext.prefix = 'cat.txt.gz' + } +} diff --git a/modules/nf-core/cat/cat/tests/nextflow_zipped_unzipped.config b/modules/nf-core/cat/cat/tests/nextflow_zipped_unzipped.config new file mode 100644 index 0000000000..fbc79783d5 --- /dev/null +++ b/modules/nf-core/cat/cat/tests/nextflow_zipped_unzipped.config @@ -0,0 +1,8 @@ + +process { + + withName: CAT_CAT { + ext.prefix = 'cat.txt' + } + +} diff --git a/modules/nf-core/cat/cat/tests/tags.yml b/modules/nf-core/cat/cat/tests/tags.yml new file mode 100644 index 0000000000..37b578f523 --- /dev/null +++ b/modules/nf-core/cat/cat/tests/tags.yml @@ -0,0 +1,2 @@ +cat/cat: + - modules/nf-core/cat/cat/** diff --git a/modules/nf-core/cat/fastq/environment.yml b/modules/nf-core/cat/fastq/environment.yml new file mode 100644 index 0000000000..222b301f38 --- /dev/null +++ b/modules/nf-core/cat/fastq/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - conda-forge::sed=4.7 diff --git a/modules/nf-core/cat/fastq/main.nf b/modules/nf-core/cat/fastq/main.nf index 5021e6fcbb..3d963784cb 100644 --- a/modules/nf-core/cat/fastq/main.nf +++ b/modules/nf-core/cat/fastq/main.nf @@ -2,7 +2,7 @@ process CAT_FASTQ { tag "$meta.id" label 'process_single' - conda "conda-forge::sed=4.7" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'nf-core/ubuntu:20.04' }" diff --git a/modules/nf-core/cat/fastq/meta.yml b/modules/nf-core/cat/fastq/meta.yml index 8a39e309fb..db4ac3c79a 100644 --- a/modules/nf-core/cat/fastq/meta.yml +++ b/modules/nf-core/cat/fastq/meta.yml @@ -34,7 +34,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@joseespinosa" - "@drpatelh" +maintainers: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test b/modules/nf-core/cat/fastq/tests/main.nf.test new file mode 100644 index 0000000000..f5f941825c --- /dev/null +++ b/modules/nf-core/cat/fastq/tests/main.nf.test @@ -0,0 +1,143 @@ +nextflow_process { + + name "Test Process CAT_FASTQ" + script "../main.nf" + process "CAT_FASTQ" + tag "modules" + tag "modules_nfcore" + tag "cat" + tag "cat/fastq" + + test("test_cat_fastq_single_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.reads).match() }, + { assert path(process.out.versions.get(0)).getText().contains("cat") } + ) + } + } + + test("test_cat_fastq_paired_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.reads).match() }, + { assert path(process.out.versions.get(0)).getText().contains("cat") } + ) + } + } + + test("test_cat_fastq_single_end_same_name") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.reads).match() }, + { assert path(process.out.versions.get(0)).getText().contains("cat") } + ) + } + } + + test("test_cat_fastq_paired_end_same_name") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.reads).match() }, + { assert path(process.out.versions.get(0)).getText().contains("cat") } + ) + } + } + + test("test_cat_fastq_single_end_single_file") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.reads).match() }, + { assert path(process.out.versions.get(0)).getText().contains("cat") } + ) + } + } +} diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test.snap b/modules/nf-core/cat/fastq/tests/main.nf.test.snap new file mode 100644 index 0000000000..ec2342e549 --- /dev/null +++ b/modules/nf-core/cat/fastq/tests/main.nf.test.snap @@ -0,0 +1,78 @@ +{ + "test_cat_fastq_single_end": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d" + ] + ] + ], + "timestamp": "2023-10-17T23:19:12.990284837" + }, + "test_cat_fastq_single_end_same_name": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66" + ] + ] + ], + "timestamp": "2023-10-17T23:19:31.554568147" + }, + "test_cat_fastq_single_end_single_file": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.merged.fastq.gz:md5,e325ef7deb4023447a1f074e285761af" + ] + ] + ], + "timestamp": "2023-10-17T23:19:49.629360033" + }, + "test_cat_fastq_paired_end_same_name": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66", + "test_2.merged.fastq.gz:md5,fe9f266f43a6fc3dcab690a18419a56e" + ] + ] + ] + ], + "timestamp": "2023-10-17T23:19:40.711617539" + }, + "test_cat_fastq_paired_end": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d", + "test_2.merged.fastq.gz:md5,77c8e966e130d8c6b6ec9be52fcb2bda" + ] + ] + ] + ], + "timestamp": "2023-10-18T07:53:20.923560211" + } +} \ No newline at end of file diff --git a/modules/nf-core/cat/fastq/tests/tags.yml b/modules/nf-core/cat/fastq/tests/tags.yml new file mode 100644 index 0000000000..6ac4361405 --- /dev/null +++ b/modules/nf-core/cat/fastq/tests/tags.yml @@ -0,0 +1,2 @@ +cat/fastq: + - modules/nf-core/cat/fastq/** diff --git a/modules/nf-core/cnvkit/antitarget/environment.yml b/modules/nf-core/cnvkit/antitarget/environment.yml new file mode 100644 index 0000000000..ef6bec487e --- /dev/null +++ b/modules/nf-core/cnvkit/antitarget/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::cnvkit=0.9.10 + - bioconda::samtools=1.17 diff --git a/modules/nf-core/cnvkit/antitarget/main.nf b/modules/nf-core/cnvkit/antitarget/main.nf index cda05c635b..795145451b 100644 --- a/modules/nf-core/cnvkit/antitarget/main.nf +++ b/modules/nf-core/cnvkit/antitarget/main.nf @@ -2,7 +2,7 @@ process CNVKIT_ANTITARGET { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" diff --git a/modules/nf-core/cnvkit/antitarget/meta.yml b/modules/nf-core/cnvkit/antitarget/meta.yml index f22c07b13e..d879092d33 100644 --- a/modules/nf-core/cnvkit/antitarget/meta.yml +++ b/modules/nf-core/cnvkit/antitarget/meta.yml @@ -15,7 +15,6 @@ tools: tool_dev_url: "https://github.com/etal/cnvkit" doi: 10.1371/journal.pcbi.1004873 licence: ["Apache-2.0"] - input: - meta: type: map @@ -26,7 +25,6 @@ input: type: file description: File containing genomic regions pattern: "*.{bed}" - output: - meta: type: map @@ -41,8 +39,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@adamrtalbot" - "@priesgo" - "@SusiJo" +maintainers: + - "@adamrtalbot" + - "@priesgo" + - "@SusiJo" diff --git a/modules/nf-core/cnvkit/batch/environment.yml b/modules/nf-core/cnvkit/batch/environment.yml new file mode 100644 index 0000000000..ef6bec487e --- /dev/null +++ b/modules/nf-core/cnvkit/batch/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::cnvkit=0.9.10 + - bioconda::samtools=1.17 diff --git a/modules/nf-core/cnvkit/batch/main.nf b/modules/nf-core/cnvkit/batch/main.nf index b253d6ab11..3ccc9faa44 100644 --- a/modules/nf-core/cnvkit/batch/main.nf +++ b/modules/nf-core/cnvkit/batch/main.nf @@ -2,17 +2,17 @@ process CNVKIT_BATCH { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:c94363856059151a2974dc501fb07a0360cc60a3-0' : 'biocontainers/mulled-v2-780d630a9bb6a0ff2e7b6f730906fd703e40e98f:c94363856059151a2974dc501fb07a0360cc60a3-0' }" input: tuple val(meta), path(tumor), path(normal) - path fasta - path fasta_fai - path targets - path reference + tuple val(meta2), path(fasta) + tuple val(meta3), path(fasta_fai) + tuple val(meta4), path(targets) + tuple val(meta5), path(reference) val panel_of_normals output: diff --git a/modules/nf-core/cnvkit/batch/meta.yml b/modules/nf-core/cnvkit/batch/meta.yml index 950b0c9589..4f88ba3f9b 100644 --- a/modules/nf-core/cnvkit/batch/meta.yml +++ b/modules/nf-core/cnvkit/batch/meta.yml @@ -26,18 +26,38 @@ input: type: file description: | Input normal sample bam file (or cram) + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] - fasta: type: file description: | Input reference genome fasta file (only needed for cram_input and/or when normal_samples are provided) + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] - fasta_fai: type: file description: | Input reference genome fasta index (optional, but recommended for cram_input) + - meta4: + type: map + description: | + Groovy Map containing information about target file + e.g. [ id:'test' ] - targetfile: type: file description: | Input target bed file + - meta5: + type: map + description: | + Groovy Map containing information about reference file + e.g. [ id:'test' ] - reference: type: file description: | @@ -86,3 +106,13 @@ authors: - "@MaxUlysse" - "@priesgo" - "@SusiJo" +maintainers: + - "@adamrtalbot" + - "@drpatelh" + - "@fbdtemme" + - "@kaurravneet4123" + - "@KevinMenden" + - "@lassefolkersen" + - "@MaxUlysse" + - "@priesgo" + - "@SusiJo" diff --git a/modules/nf-core/cnvkit/genemetrics/environment.yml b/modules/nf-core/cnvkit/genemetrics/environment.yml new file mode 100644 index 0000000000..ef6bec487e --- /dev/null +++ b/modules/nf-core/cnvkit/genemetrics/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::cnvkit=0.9.10 + - bioconda::samtools=1.17 diff --git a/modules/nf-core/cnvkit/genemetrics/main.nf b/modules/nf-core/cnvkit/genemetrics/main.nf index 6058994866..825b12bdac 100755 --- a/modules/nf-core/cnvkit/genemetrics/main.nf +++ b/modules/nf-core/cnvkit/genemetrics/main.nf @@ -2,7 +2,7 @@ process CNVKIT_GENEMETRICS { tag "$meta.id" label 'process_low' - conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" diff --git a/modules/nf-core/cnvkit/genemetrics/meta.yml b/modules/nf-core/cnvkit/genemetrics/meta.yml index 115a4a87bb..4bef28c7d5 100755 --- a/modules/nf-core/cnvkit/genemetrics/meta.yml +++ b/modules/nf-core/cnvkit/genemetrics/meta.yml @@ -40,8 +40,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@adamrtalbot" - "@marrip" - "@priesgo" +maintainers: + - "@adamrtalbot" + - "@marrip" + - "@priesgo" diff --git a/modules/nf-core/cnvkit/reference/environment.yml b/modules/nf-core/cnvkit/reference/environment.yml new file mode 100644 index 0000000000..ef6bec487e --- /dev/null +++ b/modules/nf-core/cnvkit/reference/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::cnvkit=0.9.10 + - bioconda::samtools=1.17 diff --git a/modules/nf-core/cnvkit/reference/main.nf b/modules/nf-core/cnvkit/reference/main.nf index 57e1aed4f0..0e0b20a01e 100644 --- a/modules/nf-core/cnvkit/reference/main.nf +++ b/modules/nf-core/cnvkit/reference/main.nf @@ -2,7 +2,7 @@ process CNVKIT_REFERENCE { tag "$fasta" label 'process_low' - conda "bioconda::cnvkit=0.9.10 bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/cnvkit:0.9.10--pyhdfd78af_0': 'biocontainers/cnvkit:0.9.10--pyhdfd78af_0' }" diff --git a/modules/nf-core/cnvkit/reference/meta.yml b/modules/nf-core/cnvkit/reference/meta.yml index eae82c75e7..8c561c9953 100644 --- a/modules/nf-core/cnvkit/reference/meta.yml +++ b/modules/nf-core/cnvkit/reference/meta.yml @@ -15,7 +15,6 @@ tools: tool_dev_url: https://github.com/etal/cnvkit doi: 10.1371/journal.pcbi.1004873 licence: ["Apache-2.0"] - input: - fasta: type: file @@ -29,7 +28,6 @@ input: type: file description: File containing off-target genomic regions pattern: "*.{bed}" - output: - meta: type: map @@ -44,8 +42,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@adamrtalbot" - "@priesgo" - "@SusiJo" +maintainers: + - "@adamrtalbot" + - "@priesgo" + - "@SusiJo" diff --git a/modules/nf-core/controlfreec/assesssignificance/environment.yml b/modules/nf-core/controlfreec/assesssignificance/environment.yml new file mode 100644 index 0000000000..83094f46ca --- /dev/null +++ b/modules/nf-core/controlfreec/assesssignificance/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::control-freec=11.6b diff --git a/modules/nf-core/controlfreec/assesssignificance/main.nf b/modules/nf-core/controlfreec/assesssignificance/main.nf index 8c5cd42b41..c842168fde 100644 --- a/modules/nf-core/controlfreec/assesssignificance/main.nf +++ b/modules/nf-core/controlfreec/assesssignificance/main.nf @@ -2,10 +2,10 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1' : - 'biocontainers/control-freec:11.6--h1b792b2_1' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : + 'biocontainers/control-freec:11.6b--hdbdd923_0' }" input: tuple val(meta), path(cnvs), path(ratio) diff --git a/modules/nf-core/controlfreec/assesssignificance/meta.yml b/modules/nf-core/controlfreec/assesssignificance/meta.yml index 0451cca349..b8cda6dd50 100644 --- a/modules/nf-core/controlfreec/assesssignificance/meta.yml +++ b/modules/nf-core/controlfreec/assesssignificance/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" licence: ["GPL >=2"] - input: # Only when we have meta - meta: @@ -30,7 +29,6 @@ input: type: file description: ratio file generated by FREEC pattern: "*.ratio.txt" - output: - meta: type: map @@ -45,6 +43,7 @@ output: type: file description: CNV file containing p_values for each call pattern: "*.p.value.txt" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/controlfreec/freec/environment.yml b/modules/nf-core/controlfreec/freec/environment.yml new file mode 100644 index 0000000000..83094f46ca --- /dev/null +++ b/modules/nf-core/controlfreec/freec/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::control-freec=11.6b diff --git a/modules/nf-core/controlfreec/freec/main.nf b/modules/nf-core/controlfreec/freec/main.nf index 213ef92927..65cae5cba8 100644 --- a/modules/nf-core/controlfreec/freec/main.nf +++ b/modules/nf-core/controlfreec/freec/main.nf @@ -2,7 +2,7 @@ process CONTROLFREEC_FREEC { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6b" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : 'biocontainers/control-freec:11.6b--hdbdd923_0' }" diff --git a/modules/nf-core/controlfreec/freec/meta.yml b/modules/nf-core/controlfreec/freec/meta.yml index bbb152d432..1442bbe44a 100644 --- a/modules/nf-core/controlfreec/freec/meta.yml +++ b/modules/nf-core/controlfreec/freec/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" licence: ["GPL >=2"] - input: - args: type: map @@ -68,7 +67,6 @@ input: ] } ``` - - meta: type: map description: | @@ -130,7 +128,6 @@ input: type: file description: Sorted bed file containing capture regions (optional) pattern: "*.bed" - output: - meta: type: map @@ -177,6 +174,7 @@ output: type: file description: Config file used to run Control-FREEC pattern: "config.txt" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/controlfreec/freec2bed/environment.yml b/modules/nf-core/controlfreec/freec2bed/environment.yml new file mode 100644 index 0000000000..83094f46ca --- /dev/null +++ b/modules/nf-core/controlfreec/freec2bed/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::control-freec=11.6b diff --git a/modules/nf-core/controlfreec/freec2bed/main.nf b/modules/nf-core/controlfreec/freec2bed/main.nf index 0d5332a2d7..d2649cf95b 100644 --- a/modules/nf-core/controlfreec/freec2bed/main.nf +++ b/modules/nf-core/controlfreec/freec2bed/main.nf @@ -2,7 +2,7 @@ process CONTROLFREEC_FREEC2BED { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6b" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : 'biocontainers/control-freec:11.6b--hdbdd923_0' }" diff --git a/modules/nf-core/controlfreec/freec2bed/meta.yml b/modules/nf-core/controlfreec/freec2bed/meta.yml index 47fff8ab80..b10c8ab377 100644 --- a/modules/nf-core/controlfreec/freec2bed/meta.yml +++ b/modules/nf-core/controlfreec/freec2bed/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" licence: ["GPL >=2"] - input: - meta: type: map @@ -25,7 +24,6 @@ input: type: file description: ratio file generated by FREEC pattern: "*.ratio.txt" - output: - meta: type: map @@ -40,6 +38,7 @@ output: type: file description: Bed file pattern: "*.bed" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/controlfreec/freec2circos/environment.yml b/modules/nf-core/controlfreec/freec2circos/environment.yml new file mode 100644 index 0000000000..83094f46ca --- /dev/null +++ b/modules/nf-core/controlfreec/freec2circos/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::control-freec=11.6b diff --git a/modules/nf-core/controlfreec/freec2circos/main.nf b/modules/nf-core/controlfreec/freec2circos/main.nf index c748af8be7..f80116799c 100644 --- a/modules/nf-core/controlfreec/freec2circos/main.nf +++ b/modules/nf-core/controlfreec/freec2circos/main.nf @@ -2,7 +2,7 @@ process CONTROLFREEC_FREEC2CIRCOS { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6b" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : 'biocontainers/control-freec:11.6b--hdbdd923_0' }" diff --git a/modules/nf-core/controlfreec/freec2circos/meta.yml b/modules/nf-core/controlfreec/freec2circos/meta.yml index ff845a826c..2c6b77d611 100644 --- a/modules/nf-core/controlfreec/freec2circos/meta.yml +++ b/modules/nf-core/controlfreec/freec2circos/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" licence: ["GPL >=2"] - input: - meta: type: map @@ -25,7 +24,6 @@ input: type: file description: ratio file generated by FREEC pattern: "*.ratio.txt" - output: - meta: type: map @@ -40,6 +38,7 @@ output: type: file description: Txt file pattern: "*.circos.txt" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/controlfreec/makegraph/environment.yml b/modules/nf-core/controlfreec/makegraph/environment.yml new file mode 100644 index 0000000000..83094f46ca --- /dev/null +++ b/modules/nf-core/controlfreec/makegraph/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::control-freec=11.6b diff --git a/modules/nf-core/controlfreec/makegraph/main.nf b/modules/nf-core/controlfreec/makegraph/main.nf index 533065c6e4..8d489f71f7 100644 --- a/modules/nf-core/controlfreec/makegraph/main.nf +++ b/modules/nf-core/controlfreec/makegraph/main.nf @@ -2,7 +2,7 @@ process CONTROLFREEC_MAKEGRAPH { tag "$meta.id" label 'process_low' - conda "bioconda::control-freec=11.6b" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : 'biocontainers/control-freec:11.6b--hdbdd923_0' }" diff --git a/modules/nf-core/controlfreec/makegraph/meta.yml b/modules/nf-core/controlfreec/makegraph/meta.yml index 7b97dcf9bc..6f91db38aa 100644 --- a/modules/nf-core/controlfreec/makegraph/meta.yml +++ b/modules/nf-core/controlfreec/makegraph/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" licence: ["GPL >=2"] - input: # Only when we have meta - meta: @@ -33,7 +32,6 @@ input: - ploidy: type: integer description: Ploidy value for which graph should be created - output: - meta: type: map @@ -56,6 +54,7 @@ output: type: file description: Image of ratio plot pattern: "*_ratio.png" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml new file mode 100644 index 0000000000..7ca221616b --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.15 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index c9d014b113..e562259e7d 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,7 +2,7 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "bioconda::multiqc=1.15" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/multiqc:1.15--pyhdfd78af_0' : 'biocontainers/multiqc:1.15--pyhdfd78af_0' }" diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml index c32657de7a..9414c32d71 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml @@ -16,7 +16,6 @@ input: type: file description: YML file containing software versions pattern: "*.yml" - output: - yml: type: file @@ -30,7 +29,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@drpatelh" - "@grst" +maintainers: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test new file mode 100644 index 0000000000..eec1db10a2 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test @@ -0,0 +1,38 @@ +nextflow_process { + + name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" + script "../main.nf" + process "CUSTOM_DUMPSOFTWAREVERSIONS" + tag "modules" + tag "modules_nfcore" + tag "custom" + tag "dumpsoftwareversions" + tag "custom/dumpsoftwareversions" + + test("Should run without failures") { + when { + process { + """ + def tool1_version = ''' + TOOL1: + tool1: 0.11.9 + '''.stripIndent() + + def tool2_version = ''' + TOOL2: + tool2: 1.9 + '''.stripIndent() + + input[0] = Channel.of(tool1_version, tool2_version).collectFile() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap new file mode 100644 index 0000000000..8713b92164 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap @@ -0,0 +1,27 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + "software_versions.yml:md5,a027f820f30b8191a20ca16465daaf37" + ], + "1": [ + "software_versions_mqc.yml:md5,ee4a1d028ad29987f9ac511f4668f17c" + ], + "2": [ + "versions.yml:md5,f47ebd22aba1dd987b7e5d5247b766c3" + ], + "mqc_yml": [ + "software_versions_mqc.yml:md5,ee4a1d028ad29987f9ac511f4668f17c" + ], + "versions": [ + "versions.yml:md5,f47ebd22aba1dd987b7e5d5247b766c3" + ], + "yml": [ + "software_versions.yml:md5,a027f820f30b8191a20ca16465daaf37" + ] + } + ], + "timestamp": "2023-10-11T17:10:02.930699" + } +} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml new file mode 100644 index 0000000000..405aa24ae3 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml @@ -0,0 +1,2 @@ +custom/dumpsoftwareversions: + - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/deepvariant/environment.yml b/modules/nf-core/deepvariant/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/deepvariant/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/deepvariant/meta.yml b/modules/nf-core/deepvariant/meta.yml index c7d11ae3b1..a50dc57d9a 100644 --- a/modules/nf-core/deepvariant/meta.yml +++ b/modules/nf-core/deepvariant/meta.yml @@ -12,7 +12,6 @@ tools: tool_dev_url: https://github.com/google/deepvariant doi: "10.1038/nbt.4235" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -58,7 +57,6 @@ input: type: file description: GZI index of reference fasta file pattern: "*.gzi" - output: - meta: type: map @@ -77,7 +75,9 @@ output: type: file description: File containing software version pattern: "*.{version.txt}" - authors: - "@abhi18av" - "@ramprasadn" +maintainers: + - "@abhi18av" + - "@ramprasadn" diff --git a/modules/nf-core/dragmap/align/environment.yml b/modules/nf-core/dragmap/align/environment.yml new file mode 100644 index 0000000000..66482a4f9f --- /dev/null +++ b/modules/nf-core/dragmap/align/environment.yml @@ -0,0 +1,8 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::dragmap=1.2.1 + - bioconda::samtools=1.15.1 + - conda-forge::pigz=2.3.4 diff --git a/modules/nf-core/dragmap/align/main.nf b/modules/nf-core/dragmap/align/main.nf index 6221fde67f..6eddb2d6c0 100644 --- a/modules/nf-core/dragmap/align/main.nf +++ b/modules/nf-core/dragmap/align/main.nf @@ -2,7 +2,7 @@ process DRAGMAP_ALIGN { tag "$meta.id" label 'process_high' - conda "bioconda::dragmap=1.2.1 bioconda::samtools=1.15.1 conda-forge::pigz=2.3.4" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:5ebebbc128cd624282eaa37d2c7fe01505a91a69-0': 'biocontainers/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:5ebebbc128cd624282eaa37d2c7fe01505a91a69-0' }" diff --git a/modules/nf-core/dragmap/align/meta.yml b/modules/nf-core/dragmap/align/meta.yml index 763e00525c..f0def75567 100644 --- a/modules/nf-core/dragmap/align/meta.yml +++ b/modules/nf-core/dragmap/align/meta.yml @@ -12,7 +12,6 @@ tools: homepage: https://github.com/Illumina/dragmap documentation: https://github.com/Illumina/dragmap tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage - licence: ["GPL v3"] input: - meta: @@ -45,3 +44,5 @@ output: pattern: "versions.yml" authors: - "@Emiller88" +maintainers: + - "@Emiller88" diff --git a/modules/nf-core/dragmap/hashtable/environment.yml b/modules/nf-core/dragmap/hashtable/environment.yml new file mode 100644 index 0000000000..5f6c5f1bdb --- /dev/null +++ b/modules/nf-core/dragmap/hashtable/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::dragmap=1.3.0 diff --git a/modules/nf-core/dragmap/hashtable/main.nf b/modules/nf-core/dragmap/hashtable/main.nf index 73f6c2785a..8261af1cd0 100644 --- a/modules/nf-core/dragmap/hashtable/main.nf +++ b/modules/nf-core/dragmap/hashtable/main.nf @@ -2,10 +2,10 @@ process DRAGMAP_HASHTABLE { tag "$fasta" label 'process_high' - conda "bioconda::dragmap=1.2.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dragmap:1.2.1--h72d16da_1': - 'biocontainers/dragmap:1.2.1--h72d16da_1' }" + 'https://depot.galaxyproject.org/singularity/dragmap:1.3.0--h72d16da_1': + 'biocontainers/dragmap:1.3.0--h72d16da_1' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/dragmap/hashtable/meta.yml b/modules/nf-core/dragmap/hashtable/meta.yml index 133cc9fc67..8daca83273 100644 --- a/modules/nf-core/dragmap/hashtable/meta.yml +++ b/modules/nf-core/dragmap/hashtable/meta.yml @@ -11,7 +11,6 @@ tools: homepage: https://github.com/Illumina/dragmap documentation: https://github.com/Illumina/dragmap tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage - licence: ["GPL v3"] input: - meta: @@ -38,3 +37,5 @@ output: pattern: "versions.yml" authors: - "@Emiller88" +maintainers: + - "@Emiller88" diff --git a/modules/nf-core/ensemblvep/download/environment.yml b/modules/nf-core/ensemblvep/download/environment.yml new file mode 100644 index 0000000000..d3805c0c05 --- /dev/null +++ b/modules/nf-core/ensemblvep/download/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::ensembl-vep=110.0 diff --git a/modules/nf-core/ensemblvep/download/main.nf b/modules/nf-core/ensemblvep/download/main.nf index 4873b91d57..a770cbfc6f 100644 --- a/modules/nf-core/ensemblvep/download/main.nf +++ b/modules/nf-core/ensemblvep/download/main.nf @@ -2,7 +2,7 @@ process ENSEMBLVEP_DOWNLOAD { tag "$meta.id" label 'process_medium' - conda "bioconda::ensembl-vep=110.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' : 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }" diff --git a/modules/nf-core/ensemblvep/download/meta.yml b/modules/nf-core/ensemblvep/download/meta.yml index acb337c399..0183a435b8 100644 --- a/modules/nf-core/ensemblvep/download/meta.yml +++ b/modules/nf-core/ensemblvep/download/meta.yml @@ -41,3 +41,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/ensemblvep/vep/environment.yml b/modules/nf-core/ensemblvep/vep/environment.yml new file mode 100644 index 0000000000..d3805c0c05 --- /dev/null +++ b/modules/nf-core/ensemblvep/vep/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::ensembl-vep=110.0 diff --git a/modules/nf-core/ensemblvep/vep/main.nf b/modules/nf-core/ensemblvep/vep/main.nf index da0e36460a..3a2b742348 100644 --- a/modules/nf-core/ensemblvep/vep/main.nf +++ b/modules/nf-core/ensemblvep/vep/main.nf @@ -2,7 +2,7 @@ process ENSEMBLVEP_VEP { tag "$meta.id" label 'process_medium' - conda "bioconda::ensembl-vep=110.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' : 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }" diff --git a/modules/nf-core/ensemblvep/vep/meta.yml b/modules/nf-core/ensemblvep/vep/meta.yml index 7783847dc4..61d29d3fb1 100644 --- a/modules/nf-core/ensemblvep/vep/meta.yml +++ b/modules/nf-core/ensemblvep/vep/meta.yml @@ -86,3 +86,7 @@ authors: - "@maxulysse" - "@matthdsm" - "@nvnieuwk" +maintainers: + - "@maxulysse" + - "@matthdsm" + - "@nvnieuwk" diff --git a/modules/nf-core/fastp/environment.yml b/modules/nf-core/fastp/environment.yml new file mode 100644 index 0000000000..19ccec2564 --- /dev/null +++ b/modules/nf-core/fastp/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fastp=0.23.4 diff --git a/modules/nf-core/fastp/main.nf b/modules/nf-core/fastp/main.nf index 831b7f128e..c8e815aead 100644 --- a/modules/nf-core/fastp/main.nf +++ b/modules/nf-core/fastp/main.nf @@ -2,7 +2,7 @@ process FASTP { tag "$meta.id" label 'process_medium' - conda "bioconda::fastp=0.23.4" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fastp:0.23.4--h5f740d0_0' : 'biocontainers/fastp:0.23.4--h5f740d0_0' }" diff --git a/modules/nf-core/fastp/meta.yml b/modules/nf-core/fastp/meta.yml index 197ea7ca65..c22a16abd9 100644 --- a/modules/nf-core/fastp/meta.yml +++ b/modules/nf-core/fastp/meta.yml @@ -33,7 +33,6 @@ input: - save_merged: type: boolean description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz` - output: - meta: type: map @@ -71,3 +70,6 @@ output: authors: - "@drpatelh" - "@kevinmenden" +maintainers: + - "@drpatelh" + - "@kevinmenden" diff --git a/modules/nf-core/fastp/tests/main.nf.test b/modules/nf-core/fastp/tests/main.nf.test new file mode 100644 index 0000000000..f610b735e2 --- /dev/null +++ b/modules/nf-core/fastp/tests/main.nf.test @@ -0,0 +1,485 @@ +nextflow_process { + + name "Test Process FASTP" + script "../main.nf" + process "FASTP" + tag "modules" + tag "modules_nfcore" + tag "fastp" + + test("test_fastp_single_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = false + save_merged = false + + input[0] = [ + [ id:'test', single_end:true ], + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "Q20 bases:12.922000 K (92.984097%)", + "single end (151 cycles)" ] + def log_text = [ "Q20 bases: 12922(92.9841%)", + "reads passed filter: 99" ] + def read_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { assert snapshot(process.out.json).match("test_fastp_single_end_json") }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("test_fastp_paired_end") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = false + save_merged = false + + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "Q20 bases:25.719000 K (93.033098%)", + "The input has little adapter percentage (~0.000000%), probably it's trimmed before."] + def log_text = [ "No adapter detected for read1", + "Q30 bases: 12281(88.3716%)"] + def json_text = ['"passed_filter_reads": 198'] + def read1_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) } + } + }, + { read2_lines.each { read2_line -> + { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { json_text.each { json_part -> + { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) } + } + }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("fastp test_fastp_interleaved") { + config './nextflow.config' + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = false + save_merged = false + + input[0] = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) ] + ] + + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "Q20 bases:25.719000 K (93.033098%)", + "paired end (151 cycles + 151 cycles)"] + def log_text = [ "Q20 bases: 12922(92.9841%)", + "reads passed filter: 198"] + def read_lines = [ "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { assert snapshot(process.out.json).match("fastp test_fastp_interleaved_json") }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("test_fastp_single_end_trim_fail") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = true + save_merged = false + + input[0] = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "Q20 bases:12.922000 K (92.984097%)", + "single end (151 cycles)"] + def log_text = [ "Q20 bases: 12922(92.9841%)", + "reads passed filter: 99" ] + def read_lines = [ "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) } + } + }, + { failed_read_lines.each { failed_read_line -> + { assert path(process.out.reads_fail.get(0).get(1)).linesGzip.contains(failed_read_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { assert snapshot(process.out.json).match("test_fastp_single_end_trim_fail_json") }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("test_fastp_paired_end_trim_fail") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = true + save_merged = false + + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "Q20 bases:25.719000 K (93.033098%)", + "The input has little adapter percentage (~0.000000%), probably it's trimmed before."] + def log_text = [ "No adapter detected for read1", + "Q30 bases: 12281(88.3716%)"] + def json_text = ['"passed_filter_reads": 198'] + def read1_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1", + "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT", + "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE + { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) } + } + }, + { read2_lines.each { read2_line -> + { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) } + } + }, + { failed_read2_lines.each { failed_read2_line -> + { assert path(process.out.reads_fail.get(0).get(1).get(1)).linesGzip.contains(failed_read2_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { json_text.each { json_part -> + { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) } + } + }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("test_fastp_paired_end_merged") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = [] + save_trimmed_fail = false + save_merged = true + + input[0] = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "
"] + def log_text = [ "Merged and filtered:", + "total reads: 75", + "total bases: 13683"] + def json_text = ['"merged_and_filtered": {', '"total_reads": 75', '"total_bases": 13683'] + def read1_lines = [ "@ERR5069949.1066259 NS500628:121:HK3MMAFX2:1:11312:18369:8333/1", + "CCTTATGACAGCAAGAACTGTGTATGATGATGGTGCTAGGAGAGTGTGGACACTTATGAATGTCTTGACACTCGTTTATAAAGTTTATTATGGTAATGCTTTAGATCAAGCCATTTCCATGTGGGCTCTTATAATCTCTGTTACTTC", + "AAAAAEAEEAEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEAEEEEEEEEEEEEEEEEE/EAEEEEEE/6EEEEEEEEEEAEEAEEE/EE/AEEAEEEEEAEEEA/EEAAEAE + { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) } + } + }, + { read2_lines.each { read2_line -> + { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) } + } + }, + { read_merged_lines.each { read_merged_line -> + { assert path(process.out.reads_merged.get(0).get(1)).linesGzip.contains(read_merged_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { json_text.each { json_part -> + { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) } + } + }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("test_fastp_paired_end_merged_adapterlist") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + adapter_fasta = file("https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/fastp/adapters.fasta", checkIfExists: true) + save_trimmed_fail = false + save_merged = true + + input[0] = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + input[1] = adapter_fasta + input[2] = save_trimmed_fail + input[3] = save_merged + """ + } + } + + then { + def html_text = [ "
"] + def log_text = [ "Merged and filtered:", + "total reads: 75", + "total bases: 13683"] + def json_text = ['"merged_and_filtered": {', '"total_reads": 75', '"total_bases": 13683',"--adapter_fasta"] + def read1_lines = ["@ERR5069949.1066259 NS500628:121:HK3MMAFX2:1:11312:18369:8333/1", + "CCTTATGACAGCAAGAACTGTGTATGATGATGGTGCTAGGAGAGTGTGGACACTTATGAATGTCTTGACACTCGTTTATAAAGTTTATTATGGTAATGCTTTAGATCAAGCCATTTCCATGTGGGCTCTTATAATCTCTGTTACTTC", + "AAAAAEAEEAEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEAEEEEEEEEEEEEEEEEE/EAEEEEEE/6EEEEEEEEEEAEEAEEE/EE/AEEAEEEEEAEEEA/EEAAEAE + { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) } + } + }, + { read2_lines.each { read2_line -> + { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) } + } + }, + { read_merged_lines.each { read_merged_line -> + { assert path(process.out.reads_merged.get(0).get(1)).linesGzip.contains(read_merged_line) } + } + }, + { html_text.each { html_part -> + { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) } + } + }, + { json_text.each { json_part -> + { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) } + } + }, + { log_text.each { log_part -> + { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) } + } + }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } +} diff --git a/modules/nf-core/fastp/tests/main.nf.test.snap b/modules/nf-core/fastp/tests/main.nf.test.snap new file mode 100644 index 0000000000..0fa68c7d71 --- /dev/null +++ b/modules/nf-core/fastp/tests/main.nf.test.snap @@ -0,0 +1,52 @@ +{ + "fastp test_fastp_interleaved_json": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,168f516f7bd4b7b6c32da7cba87299a4" + ] + ] + ], + "timestamp": "2023-10-17T11:04:45.794175881" + }, + "test_fastp_single_end_json": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,c852d7a6dba5819e4ac8d9673bedcacc" + ] + ] + ], + "timestamp": "2023-10-17T11:04:10.566343705" + }, + "versions": { + "content": [ + [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + ], + "timestamp": "2023-10-17T11:04:10.582076024" + }, + "test_fastp_single_end_trim_fail_json": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,9a7ee180f000e8d00c7fb67f06293eb5" + ] + ] + ], + "timestamp": "2023-10-17T11:05:00.379878948" + } +} \ No newline at end of file diff --git a/modules/nf-core/fastp/tests/nextflow.config b/modules/nf-core/fastp/tests/nextflow.config new file mode 100644 index 0000000000..0f7849ad96 --- /dev/null +++ b/modules/nf-core/fastp/tests/nextflow.config @@ -0,0 +1,6 @@ +process { + + withName: FASTP { + ext.args = "--interleaved_in" + } +} diff --git a/modules/nf-core/fastp/tests/tags.yml b/modules/nf-core/fastp/tests/tags.yml new file mode 100644 index 0000000000..c1afcce75f --- /dev/null +++ b/modules/nf-core/fastp/tests/tags.yml @@ -0,0 +1,2 @@ +fastp: + - modules/nf-core/fastp/** diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml new file mode 100644 index 0000000000..f52a53a0fa --- /dev/null +++ b/modules/nf-core/fastqc/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fastqc=0.12.1 diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f90644d..50e59f2b8c 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -2,10 +2,10 @@ process FASTQC { tag "$meta.id" label 'process_medium' - conda "bioconda::fastqc=0.11.9" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : - 'biocontainers/fastqc:0.11.9--0' }" + 'https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0' : + 'biocontainers/fastqc:0.12.1--hdfd78af_0' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 4da5bb5a06..ee5507e06b 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -50,3 +50,8 @@ authors: - "@grst" - "@ewels" - "@FelixKrueger" +maintainers: + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test new file mode 100644 index 0000000000..6437a144d9 --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -0,0 +1,41 @@ +nextflow_process { + + name "Test Process FASTQC" + script "../main.nf" + process "FASTQC" + tag "modules" + tag "modules_nfcore" + tag "fastqc" + + test("Single-Read") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id: 'test', single_end:true ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. + // looks like this:
Mon 2 Oct 2023
test.gz
+ // https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 + { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" }, + { assert path(process.out.html.get(0).get(1)).getText().contains("File typeConventional base calls") }, + { assert snapshot(process.out.versions).match("versions") }, + { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" } + ) + } + } +} diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap new file mode 100644 index 0000000000..636a32cead --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -0,0 +1,10 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "timestamp": "2023-10-09T23:40:54+0000" + } +} \ No newline at end of file diff --git a/modules/nf-core/fastqc/tests/tags.yml b/modules/nf-core/fastqc/tests/tags.yml new file mode 100644 index 0000000000..7834294ba0 --- /dev/null +++ b/modules/nf-core/fastqc/tests/tags.yml @@ -0,0 +1,2 @@ +fastqc: + - modules/nf-core/fastqc/** diff --git a/modules/nf-core/fgbio/callmolecularconsensusreads/environment.yml b/modules/nf-core/fgbio/callmolecularconsensusreads/environment.yml new file mode 100644 index 0000000000..d64c6844b3 --- /dev/null +++ b/modules/nf-core/fgbio/callmolecularconsensusreads/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fgbio=2.0.2 diff --git a/modules/nf-core/fgbio/callmolecularconsensusreads/main.nf b/modules/nf-core/fgbio/callmolecularconsensusreads/main.nf index 4515040cc9..e9f209ef16 100644 --- a/modules/nf-core/fgbio/callmolecularconsensusreads/main.nf +++ b/modules/nf-core/fgbio/callmolecularconsensusreads/main.nf @@ -2,7 +2,7 @@ process FGBIO_CALLMOLECULARCONSENSUSREADS { tag "$meta.id" label 'process_medium' - conda "bioconda::fgbio=2.0.2" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fgbio:2.0.2--hdfd78af_0' : 'biocontainers/fgbio:2.0.2--hdfd78af_0' }" diff --git a/modules/nf-core/fgbio/callmolecularconsensusreads/meta.yml b/modules/nf-core/fgbio/callmolecularconsensusreads/meta.yml index 371825123a..f4a6ab1bb8 100644 --- a/modules/nf-core/fgbio/callmolecularconsensusreads/meta.yml +++ b/modules/nf-core/fgbio/callmolecularconsensusreads/meta.yml @@ -1,6 +1,5 @@ name: fgbio_callmolecularconsensusreads description: Calls consensus sequences from reads with the same unique molecular tag. - keywords: - UMIs - consensus sequence @@ -12,7 +11,6 @@ tools: homepage: https://github.com/fulcrumgenomics/fgbio documentation: http://fulcrumgenomics.github.io/fgbio/ licence: ["MIT"] - input: - meta: type: map @@ -24,7 +22,6 @@ input: description: | The input SAM or BAM file. pattern: "*.{bam,sam}" - output: - meta: type: map @@ -40,6 +37,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@sruthipsuresh" +maintainers: + - "@sruthipsuresh" diff --git a/modules/nf-core/fgbio/fastqtobam/environment.yml b/modules/nf-core/fgbio/fastqtobam/environment.yml new file mode 100644 index 0000000000..d64c6844b3 --- /dev/null +++ b/modules/nf-core/fgbio/fastqtobam/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fgbio=2.0.2 diff --git a/modules/nf-core/fgbio/fastqtobam/main.nf b/modules/nf-core/fgbio/fastqtobam/main.nf index 74016d3c45..f7302171b8 100644 --- a/modules/nf-core/fgbio/fastqtobam/main.nf +++ b/modules/nf-core/fgbio/fastqtobam/main.nf @@ -2,7 +2,7 @@ process FGBIO_FASTQTOBAM { tag "$meta.id" label 'process_low' - conda "bioconda::fgbio=2.0.2" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fgbio:2.0.2--hdfd78af_0' : 'biocontainers/fgbio:2.0.2--hdfd78af_0' }" diff --git a/modules/nf-core/fgbio/fastqtobam/meta.yml b/modules/nf-core/fgbio/fastqtobam/meta.yml index f85485cab8..4b37cd530f 100644 --- a/modules/nf-core/fgbio/fastqtobam/meta.yml +++ b/modules/nf-core/fgbio/fastqtobam/meta.yml @@ -10,15 +10,12 @@ tools: homepage: http://fulcrumgenomics.github.io/fgbio/ documentation: http://fulcrumgenomics.github.io/fgbio/tools/latest/ tool_dev_url: https://github.com/fulcrumgenomics/fgbio - licence: ["MIT"] - input: - reads: type: file description: pair of reads to be converted into BAM file pattern: "*.{fastq.gz}" - output: - meta: type: map @@ -37,7 +34,9 @@ output: type: file description: Unaligned, unsorted CRAM file pattern: "*.{cram}" - authors: - "@lescai" - "@matthdsm" +maintainers: + - "@lescai" + - "@matthdsm" diff --git a/modules/nf-core/fgbio/groupreadsbyumi/environment.yml b/modules/nf-core/fgbio/groupreadsbyumi/environment.yml new file mode 100644 index 0000000000..d64c6844b3 --- /dev/null +++ b/modules/nf-core/fgbio/groupreadsbyumi/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fgbio=2.0.2 diff --git a/modules/nf-core/fgbio/groupreadsbyumi/main.nf b/modules/nf-core/fgbio/groupreadsbyumi/main.nf index 879e453452..7179290c91 100644 --- a/modules/nf-core/fgbio/groupreadsbyumi/main.nf +++ b/modules/nf-core/fgbio/groupreadsbyumi/main.nf @@ -2,7 +2,7 @@ process FGBIO_GROUPREADSBYUMI { tag "$meta.id" label 'process_low' - conda "bioconda::fgbio=2.0.2" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/fgbio:2.0.2--hdfd78af_0' : 'biocontainers/fgbio:2.0.2--hdfd78af_0' }" diff --git a/modules/nf-core/fgbio/groupreadsbyumi/meta.yml b/modules/nf-core/fgbio/groupreadsbyumi/meta.yml index f40a5ac7fc..02ca91f19f 100644 --- a/modules/nf-core/fgbio/groupreadsbyumi/meta.yml +++ b/modules/nf-core/fgbio/groupreadsbyumi/meta.yml @@ -16,9 +16,7 @@ tools: homepage: http://fulcrumgenomics.github.io/fgbio/ documentation: http://fulcrumgenomics.github.io/fgbio/tools/latest/ tool_dev_url: https://github.com/fulcrumgenomics/fgbio - licence: ["MIT"] - input: - meta: type: map @@ -35,7 +33,6 @@ input: description: | Reguired argument: defines the UMI assignment strategy. Must be chosen among: Identity, Edit, Adjacency, Paired. - output: - meta: type: map @@ -54,6 +51,7 @@ output: type: file description: A text file containing the tag family size counts pattern: "*.txt" - authors: - "@lescai" +maintainers: + - "@lescai" diff --git a/modules/nf-core/freebayes/environment.yml b/modules/nf-core/freebayes/environment.yml new file mode 100644 index 0000000000..b074f213f4 --- /dev/null +++ b/modules/nf-core/freebayes/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::freebayes=1.3.6 diff --git a/modules/nf-core/freebayes/main.nf b/modules/nf-core/freebayes/main.nf index 1466f085e8..8a1c641ded 100644 --- a/modules/nf-core/freebayes/main.nf +++ b/modules/nf-core/freebayes/main.nf @@ -2,7 +2,7 @@ process FREEBAYES { tag "$meta.id" label 'process_single' - conda "bioconda::freebayes=1.3.6" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/freebayes:1.3.6--hbfe0e7f_2' : 'biocontainers/freebayes:1.3.6--hbfe0e7f_2' }" diff --git a/modules/nf-core/freebayes/meta.yml b/modules/nf-core/freebayes/meta.yml index 17d83cba2b..e2cf1a175c 100644 --- a/modules/nf-core/freebayes/meta.yml +++ b/modules/nf-core/freebayes/meta.yml @@ -8,7 +8,6 @@ keywords: - germline variant calling - bacterial variant calling - bayesian - tools: - freebayes: description: Bayesian haplotype-based polymorphism discovery and genotyping @@ -17,7 +16,6 @@ tools: tool_dev_url: https://github.com/freebayes/freebayes doi: "10.48550/arXiv.1207.3907" licence: ["MIT"] - input: - meta: type: map @@ -60,7 +58,6 @@ input: or a region-specific format: seq_name start end sample_name copy_number pattern: "*.bed" - output: - meta: type: map @@ -75,8 +72,11 @@ output: type: file description: Compressed VCF file pattern: "*.vcf.gz" - authors: - "@maxibor" - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@maxibor" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/applybqsr/environment.yml b/modules/nf-core/gatk4/applybqsr/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/applybqsr/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/applybqsr/main.nf b/modules/nf-core/gatk4/applybqsr/main.nf index e5e6bf99c7..7e49563739 100644 --- a/modules/nf-core/gatk4/applybqsr/main.nf +++ b/modules/nf-core/gatk4/applybqsr/main.nf @@ -2,7 +2,7 @@ process GATK4_APPLYBQSR { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/applybqsr/meta.yml b/modules/nf-core/gatk4/applybqsr/meta.yml index 2085fa97b2..ab9efea3f4 100644 --- a/modules/nf-core/gatk4/applybqsr/meta.yml +++ b/modules/nf-core/gatk4/applybqsr/meta.yml @@ -16,7 +16,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -49,7 +48,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - meta: type: map @@ -68,7 +66,9 @@ output: type: file description: Recalibrated CRAM file pattern: "*.{cram}" - authors: - "@yocra3" - "@FriederikeHanssen" +maintainers: + - "@yocra3" + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/applybqsrspark/environment.yml b/modules/nf-core/gatk4/applybqsrspark/environment.yml new file mode 100644 index 0000000000..916a9bb52b --- /dev/null +++ b/modules/nf-core/gatk4/applybqsrspark/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.3.0.0 + - conda-forge::openjdk=8.0.312 diff --git a/modules/nf-core/gatk4/applybqsrspark/main.nf b/modules/nf-core/gatk4/applybqsrspark/main.nf index 7a4c29bbca..b4420b2c17 100644 --- a/modules/nf-core/gatk4/applybqsrspark/main.nf +++ b/modules/nf-core/gatk4/applybqsrspark/main.nf @@ -2,7 +2,7 @@ process GATK4_APPLYBQSR_SPARK { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.3.0.0 conda-forge::openjdk=8.0.312" + conda "${moduleDir}/environment.yml" container "nf-core/gatk:4.4.0.0" input: diff --git a/modules/nf-core/gatk4/applybqsrspark/meta.yml b/modules/nf-core/gatk4/applybqsrspark/meta.yml index b253fc78ce..b034a0f165 100644 --- a/modules/nf-core/gatk4/applybqsrspark/meta.yml +++ b/modules/nf-core/gatk4/applybqsrspark/meta.yml @@ -17,7 +17,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -50,7 +49,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - meta: type: map @@ -69,8 +67,11 @@ output: type: file description: Recalibrated CRAM file pattern: "*.{cram}" - authors: - "@yocra3" - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@yocra3" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/applyvqsr/environment.yml b/modules/nf-core/gatk4/applyvqsr/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/applyvqsr/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/applyvqsr/main.nf b/modules/nf-core/gatk4/applyvqsr/main.nf index 8413f2bb3b..21afe9a528 100644 --- a/modules/nf-core/gatk4/applyvqsr/main.nf +++ b/modules/nf-core/gatk4/applyvqsr/main.nf @@ -2,7 +2,7 @@ process GATK4_APPLYVQSR { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/applyvqsr/meta.yml b/modules/nf-core/gatk4/applyvqsr/meta.yml index e1e121a661..de5d6d067a 100644 --- a/modules/nf-core/gatk4/applyvqsr/meta.yml +++ b/modules/nf-core/gatk4/applyvqsr/meta.yml @@ -19,7 +19,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -58,7 +57,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - vcf: type: file @@ -72,6 +70,7 @@ output: type: file description: File containing software versions. pattern: "versions.yml" - authors: - "@GCJMackenzie" +maintainers: + - "@GCJMackenzie" diff --git a/modules/nf-core/gatk4/baserecalibrator/environment.yml b/modules/nf-core/gatk4/baserecalibrator/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/baserecalibrator/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/baserecalibrator/main.nf b/modules/nf-core/gatk4/baserecalibrator/main.nf index 5375289a16..e893b65036 100644 --- a/modules/nf-core/gatk4/baserecalibrator/main.nf +++ b/modules/nf-core/gatk4/baserecalibrator/main.nf @@ -2,7 +2,7 @@ process GATK4_BASERECALIBRATOR { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/baserecalibrator/meta.yml b/modules/nf-core/gatk4/baserecalibrator/meta.yml index db4fecfc92..8252b8c290 100644 --- a/modules/nf-core/gatk4/baserecalibrator/meta.yml +++ b/modules/nf-core/gatk4/baserecalibrator/meta.yml @@ -16,7 +16,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -54,7 +53,6 @@ input: type: file description: Tabix index of the known_sites (optional) pattern: "*.vcf.gz.tbi" - output: - meta: type: map @@ -69,8 +67,11 @@ output: type: file description: Recalibration table from BaseRecalibrator pattern: "*.{table}" - authors: - "@yocra3" - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@yocra3" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/baserecalibratorspark/environment.yml b/modules/nf-core/gatk4/baserecalibratorspark/environment.yml new file mode 100644 index 0000000000..9d00c0e3e7 --- /dev/null +++ b/modules/nf-core/gatk4/baserecalibratorspark/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 + - conda-forge::openjdk=8.0.312 diff --git a/modules/nf-core/gatk4/baserecalibratorspark/main.nf b/modules/nf-core/gatk4/baserecalibratorspark/main.nf index 6db088bb75..5dbc6528b6 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/main.nf +++ b/modules/nf-core/gatk4/baserecalibratorspark/main.nf @@ -2,7 +2,7 @@ process GATK4_BASERECALIBRATOR_SPARK { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0 conda-forge::openjdk=8.0.312" + conda "${moduleDir}/environment.yml" container "nf-core/gatk:4.4.0.0" input: diff --git a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml b/modules/nf-core/gatk4/baserecalibratorspark/meta.yml index d175ca13a1..c96faeb6df 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml +++ b/modules/nf-core/gatk4/baserecalibratorspark/meta.yml @@ -17,7 +17,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -55,7 +54,6 @@ input: type: file description: Tabix index of the known_sites (optional) pattern: "*.vcf.gz.tbi" - output: - meta: type: map @@ -70,8 +68,11 @@ output: type: file description: Recalibration table from BaseRecalibrator pattern: "*.{table}" - authors: - "@yocra3" - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@yocra3" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/calculatecontamination/environment.yml b/modules/nf-core/gatk4/calculatecontamination/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/calculatecontamination/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/calculatecontamination/main.nf b/modules/nf-core/gatk4/calculatecontamination/main.nf index 9dd961bec0..8d43c4ee6b 100644 --- a/modules/nf-core/gatk4/calculatecontamination/main.nf +++ b/modules/nf-core/gatk4/calculatecontamination/main.nf @@ -2,7 +2,7 @@ process GATK4_CALCULATECONTAMINATION { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/calculatecontamination/meta.yml b/modules/nf-core/gatk4/calculatecontamination/meta.yml index 7767bd0807..b0ffe814c5 100644 --- a/modules/nf-core/gatk4/calculatecontamination/meta.yml +++ b/modules/nf-core/gatk4/calculatecontamination/meta.yml @@ -17,7 +17,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -32,7 +31,6 @@ input: type: file description: File containing the pileups summary table of a normal sample that matches with the tumor sample specified in pileup argument. This is an optional input. pattern: "*.pileups.table" - output: - contamination: type: file @@ -46,7 +44,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" - "@maxulysse" +maintainers: + - "@GCJMackenzie" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/cnnscorevariants/environment.yml b/modules/nf-core/gatk4/cnnscorevariants/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/gatk4/cnnscorevariants/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/gatk4/cnnscorevariants/meta.yml b/modules/nf-core/gatk4/cnnscorevariants/meta.yml index a2fe3d47c6..8a9d0f51c2 100644 --- a/modules/nf-core/gatk4/cnnscorevariants/meta.yml +++ b/modules/nf-core/gatk4/cnnscorevariants/meta.yml @@ -14,7 +14,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -56,7 +55,6 @@ input: type: file description: Keras model HD5 file with neural net weights. (optional) pattern: "*.hd5" - output: - meta: type: map @@ -75,6 +73,7 @@ output: type: file description: VCF index file pattern: "*.vcf.gz.tbi" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/createsequencedictionary/environment.yml b/modules/nf-core/gatk4/createsequencedictionary/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/createsequencedictionary/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/createsequencedictionary/main.nf b/modules/nf-core/gatk4/createsequencedictionary/main.nf index 3e4efdd983..b47ad16221 100644 --- a/modules/nf-core/gatk4/createsequencedictionary/main.nf +++ b/modules/nf-core/gatk4/createsequencedictionary/main.nf @@ -2,7 +2,7 @@ process GATK4_CREATESEQUENCEDICTIONARY { tag "$fasta" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/createsequencedictionary/meta.yml b/modules/nf-core/gatk4/createsequencedictionary/meta.yml index 9b8b8c8917..f9d70be098 100644 --- a/modules/nf-core/gatk4/createsequencedictionary/meta.yml +++ b/modules/nf-core/gatk4/createsequencedictionary/meta.yml @@ -15,7 +15,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -38,3 +37,6 @@ output: authors: - "@maxulysse" - "@ramprasadn" +maintainers: + - "@maxulysse" + - "@ramprasadn" diff --git a/modules/nf-core/gatk4/estimatelibrarycomplexity/environment.yml b/modules/nf-core/gatk4/estimatelibrarycomplexity/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/estimatelibrarycomplexity/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf b/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf index 81fc83513d..c0eef7b327 100644 --- a/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf +++ b/modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf @@ -2,7 +2,7 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml b/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml index 2783152a59..2d5bddf6c9 100644 --- a/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml +++ b/modules/nf-core/gatk4/estimatelibrarycomplexity/meta.yml @@ -13,7 +13,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["Apache-2.0"] - input: - meta: type: map @@ -36,7 +35,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - meta: type: map @@ -51,7 +49,9 @@ output: type: file description: File containing metrics on the input files pattern: "*.{metrics}" - authors: - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/filtermutectcalls/environment.yml b/modules/nf-core/gatk4/filtermutectcalls/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/filtermutectcalls/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/filtermutectcalls/main.nf b/modules/nf-core/gatk4/filtermutectcalls/main.nf index 623b91aece..fa6b46ab3c 100644 --- a/modules/nf-core/gatk4/filtermutectcalls/main.nf +++ b/modules/nf-core/gatk4/filtermutectcalls/main.nf @@ -2,7 +2,7 @@ process GATK4_FILTERMUTECTCALLS { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/filtermutectcalls/meta.yml b/modules/nf-core/gatk4/filtermutectcalls/meta.yml index 095a28e321..736c838625 100644 --- a/modules/nf-core/gatk4/filtermutectcalls/meta.yml +++ b/modules/nf-core/gatk4/filtermutectcalls/meta.yml @@ -16,7 +16,6 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - input: - meta: type: map @@ -77,7 +76,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - vcf: type: file @@ -95,8 +93,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" - "@maxulysse" - "@ramprasadn" +maintainers: + - "@GCJMackenzie" + - "@maxulysse" + - "@ramprasadn" diff --git a/modules/nf-core/gatk4/filtervarianttranches/environment.yml b/modules/nf-core/gatk4/filtervarianttranches/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/filtervarianttranches/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/filtervarianttranches/main.nf b/modules/nf-core/gatk4/filtervarianttranches/main.nf index 90cbf5f0a6..9da47ab739 100644 --- a/modules/nf-core/gatk4/filtervarianttranches/main.nf +++ b/modules/nf-core/gatk4/filtervarianttranches/main.nf @@ -2,7 +2,7 @@ process GATK4_FILTERVARIANTTRANCHES { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/filtervarianttranches/meta.yml b/modules/nf-core/gatk4/filtervarianttranches/meta.yml index c5325b4891..9346d2b4a4 100644 --- a/modules/nf-core/gatk4/filtervarianttranches/meta.yml +++ b/modules/nf-core/gatk4/filtervarianttranches/meta.yml @@ -14,7 +14,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360051308071-FilterVariantTranches doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -49,7 +48,6 @@ input: type: file description: GATK sequence dictionary pattern: ".dict" - output: - meta: type: map @@ -68,6 +66,7 @@ output: type: file description: VCF index file pattern: "*.vcf.gz.tbi" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/gatherbqsrreports/environment.yml b/modules/nf-core/gatk4/gatherbqsrreports/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/gatherbqsrreports/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/gatherbqsrreports/main.nf b/modules/nf-core/gatk4/gatherbqsrreports/main.nf index 3eeca5ad90..e783701017 100644 --- a/modules/nf-core/gatk4/gatherbqsrreports/main.nf +++ b/modules/nf-core/gatk4/gatherbqsrreports/main.nf @@ -2,7 +2,7 @@ process GATK4_GATHERBQSRREPORTS { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/gatherbqsrreports/meta.yml b/modules/nf-core/gatk4/gatherbqsrreports/meta.yml index d9faf09d45..b9f5bf5f8b 100644 --- a/modules/nf-core/gatk4/gatherbqsrreports/meta.yml +++ b/modules/nf-core/gatk4/gatherbqsrreports/meta.yml @@ -13,7 +13,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -24,7 +23,6 @@ input: type: file description: File(s) containing BQSR table(s) pattern: "*.table" - output: - meta: type: map @@ -39,6 +37,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/environment.yml b/modules/nf-core/gatk4/gatherpileupsummaries/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/gatherpileupsummaries/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf index f315e1af3b..1863133d2c 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/main.nf +++ b/modules/nf-core/gatk4/gatherpileupsummaries/main.nf @@ -2,7 +2,7 @@ process GATK4_GATHERPILEUPSUMMARIES { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml b/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml index 6b8569dd5b..35381a3b51 100644 --- a/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml +++ b/modules/nf-core/gatk4/gatherpileupsummaries/meta.yml @@ -12,7 +12,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -23,7 +22,6 @@ input: type: file description: Pileup files from gatk4/getpileupsummaries pattern: "*.pileups.table" - output: - meta: type: map @@ -38,7 +36,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/genomicsdbimport/environment.yml b/modules/nf-core/gatk4/genomicsdbimport/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/genomicsdbimport/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/genomicsdbimport/main.nf b/modules/nf-core/gatk4/genomicsdbimport/main.nf index a8725d3f9a..916037ebef 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/main.nf +++ b/modules/nf-core/gatk4/genomicsdbimport/main.nf @@ -2,7 +2,7 @@ process GATK4_GENOMICSDBIMPORT { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/genomicsdbimport/meta.yml b/modules/nf-core/gatk4/genomicsdbimport/meta.yml index ff114d7d20..ca8fe3d076 100644 --- a/modules/nf-core/gatk4/genomicsdbimport/meta.yml +++ b/modules/nf-core/gatk4/genomicsdbimport/meta.yml @@ -15,7 +15,6 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - input: - meta: type: map @@ -26,42 +25,34 @@ input: type: list description: either a list of vcf files to be used to create or update a genomicsdb, or a file that contains a map to vcf files to be used. pattern: "*.vcf.gz" - - tbi: type: list description: list of tbi files that match with the input vcf files pattern: "*.vcf.gz_tbi" - - wspace: type: file description: path to an existing genomicsdb to be used in update db mode or get intervals mode. This WILL NOT specify name of a new genomicsdb in create db mode. pattern: "/path/to/existing/gendb" - - intervalfile: type: file description: file containing the intervals to be used when creating the genomicsdb pattern: "*.interval_list" - - intervalval: type: string description: if an intervals file has not been spcified, the value enetered here will be used as an interval via the "-L" argument pattern: "example: chr1:1000-10000" - - run_intlist: type: boolean description: Specify whether to run get interval list mode, this option cannot be specified at the same time as run_updatewspace. pattern: "true/false" - - run_updatewspace: type: boolean description: Specify whether to run update genomicsdb mode, this option takes priority over run_intlist. pattern: "true/false" - - input_map: type: boolean description: Specify whether the vcf input is providing a list of vcf file(s) or a single file containing a map of paths to vcf files to be used to create or update a genomicsdb. pattern: "*.sample_map" - output: - genomicsdb: type: directory @@ -79,6 +70,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" +maintainers: + - "@GCJMackenzie" diff --git a/modules/nf-core/gatk4/genotypegvcfs/environment.yml b/modules/nf-core/gatk4/genotypegvcfs/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/genotypegvcfs/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/genotypegvcfs/main.nf b/modules/nf-core/gatk4/genotypegvcfs/main.nf index a3e3129fcf..c6c0ba501d 100644 --- a/modules/nf-core/gatk4/genotypegvcfs/main.nf +++ b/modules/nf-core/gatk4/genotypegvcfs/main.nf @@ -2,7 +2,7 @@ process GATK4_GENOTYPEGVCFS { tag "$meta.id" label 'process_high' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/genotypegvcfs/meta.yml b/modules/nf-core/gatk4/genotypegvcfs/meta.yml index d759270d6a..8f1e377eb9 100644 --- a/modules/nf-core/gatk4/genotypegvcfs/meta.yml +++ b/modules/nf-core/gatk4/genotypegvcfs/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -57,7 +56,6 @@ input: type: file description: dbSNP VCF index file pattern: "*.tbi" - output: - meta: type: map @@ -76,7 +74,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@santiagorevale" - "@maxulysse" +maintainers: + - "@santiagorevale" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/getpileupsummaries/environment.yml b/modules/nf-core/gatk4/getpileupsummaries/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/getpileupsummaries/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/getpileupsummaries/main.nf b/modules/nf-core/gatk4/getpileupsummaries/main.nf index f7d0f2942c..d509cdf3bb 100644 --- a/modules/nf-core/gatk4/getpileupsummaries/main.nf +++ b/modules/nf-core/gatk4/getpileupsummaries/main.nf @@ -2,7 +2,7 @@ process GATK4_GETPILEUPSUMMARIES { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/getpileupsummaries/meta.yml b/modules/nf-core/gatk4/getpileupsummaries/meta.yml index 6aaa4b9e7c..fab3c1435e 100644 --- a/modules/nf-core/gatk4/getpileupsummaries/meta.yml +++ b/modules/nf-core/gatk4/getpileupsummaries/meta.yml @@ -16,7 +16,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -70,7 +69,6 @@ input: type: file description: Index file for the germline resource. pattern: "*.vcf.gz.tbi" - output: - pileup: type: file @@ -80,6 +78,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" +maintainers: + - "@GCJMackenzie" diff --git a/modules/nf-core/gatk4/haplotypecaller/environment.yml b/modules/nf-core/gatk4/haplotypecaller/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/haplotypecaller/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf index 9ac87518e9..fdecf5f830 100644 --- a/modules/nf-core/gatk4/haplotypecaller/main.nf +++ b/modules/nf-core/gatk4/haplotypecaller/main.nf @@ -2,7 +2,7 @@ process GATK4_HAPLOTYPECALLER { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/haplotypecaller/meta.yml b/modules/nf-core/gatk4/haplotypecaller/meta.yml index 03afe29427..f38dc37dd0 100644 --- a/modules/nf-core/gatk4/haplotypecaller/meta.yml +++ b/modules/nf-core/gatk4/haplotypecaller/meta.yml @@ -14,7 +14,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -54,7 +53,6 @@ input: - dbsnp_tbi: type: file description: VCF index of dbsnp (optional) - output: - meta: type: map @@ -77,7 +75,9 @@ output: type: file description: Assembled haplotypes and locally realigned reads pattern: "*.realigned.bam" - authors: - "@suzannejin" - "@FriederikeHanssen" +maintainers: + - "@suzannejin" + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/intervallisttobed/environment.yml b/modules/nf-core/gatk4/intervallisttobed/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/intervallisttobed/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/intervallisttobed/main.nf b/modules/nf-core/gatk4/intervallisttobed/main.nf index 2537f0aa68..89772081e0 100644 --- a/modules/nf-core/gatk4/intervallisttobed/main.nf +++ b/modules/nf-core/gatk4/intervallisttobed/main.nf @@ -2,7 +2,7 @@ process GATK4_INTERVALLISTTOBED { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/intervallisttobed/meta.yml b/modules/nf-core/gatk4/intervallisttobed/meta.yml index df3705aa15..28d264dfef 100644 --- a/modules/nf-core/gatk4/intervallisttobed/meta.yml +++ b/modules/nf-core/gatk4/intervallisttobed/meta.yml @@ -13,7 +13,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -24,7 +23,6 @@ input: type: file description: Interval list pattern: "*.{interval,interval_list}" - output: - meta: type: map @@ -39,6 +37,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/learnreadorientationmodel/environment.yml b/modules/nf-core/gatk4/learnreadorientationmodel/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/learnreadorientationmodel/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/learnreadorientationmodel/main.nf b/modules/nf-core/gatk4/learnreadorientationmodel/main.nf index 89a6ae77b6..c4e39db74a 100644 --- a/modules/nf-core/gatk4/learnreadorientationmodel/main.nf +++ b/modules/nf-core/gatk4/learnreadorientationmodel/main.nf @@ -2,7 +2,7 @@ process GATK4_LEARNREADORIENTATIONMODEL { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml b/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml index e29fee2251..4b73a51adb 100644 --- a/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml +++ b/modules/nf-core/gatk4/learnreadorientationmodel/meta.yml @@ -16,7 +16,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -27,7 +26,6 @@ input: type: list description: list of f1r2 files to be used as input. pattern: "*.f1r2.tar.gz" - output: - artifactprior: type: file @@ -37,6 +35,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" +maintainers: + - "@GCJMackenzie" diff --git a/modules/nf-core/gatk4/markduplicates/environment.yml b/modules/nf-core/gatk4/markduplicates/environment.yml new file mode 100644 index 0000000000..8c0c6bb279 --- /dev/null +++ b/modules/nf-core/gatk4/markduplicates/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 + - bioconda::samtools=1.17 diff --git a/modules/nf-core/gatk4/markduplicates/main.nf b/modules/nf-core/gatk4/markduplicates/main.nf index e4c01f9a2e..564b86d3dd 100644 --- a/modules/nf-core/gatk4/markduplicates/main.nf +++ b/modules/nf-core/gatk4/markduplicates/main.nf @@ -2,7 +2,7 @@ process GATK4_MARKDUPLICATES { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0 bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-d9e7bad0f7fbc8f4458d5c3ab7ffaaf0235b59fb:f857e2d6cc88d35580d01cf39e0959a68b83c1d9-0': 'biocontainers/mulled-v2-d9e7bad0f7fbc8f4458d5c3ab7ffaaf0235b59fb:f857e2d6cc88d35580d01cf39e0959a68b83c1d9-0' }" @@ -65,4 +65,21 @@ process GATK4_MARKDUPLICATES { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}.bam" + prefix_no_suffix = task.ext.prefix ? prefix.tokenize('.')[0] : "${meta.id}" + """ + touch ${prefix_no_suffix}.bam + touch ${prefix_no_suffix}.cram + touch ${prefix_no_suffix}.cram.crai + touch ${prefix_no_suffix}.bai + touch ${prefix}.metrics + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/gatk4/markduplicates/meta.yml b/modules/nf-core/gatk4/markduplicates/meta.yml index d3e755054a..b0f09d4b84 100644 --- a/modules/nf-core/gatk4/markduplicates/meta.yml +++ b/modules/nf-core/gatk4/markduplicates/meta.yml @@ -7,16 +7,12 @@ keywords: - sort tools: - gatk4: - description: - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. + description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard- tool_dev_url: https://github.com/broadinstitute/gatk doi: 10.1158/1538-7445.AM2017-3590 licence: ["MIT"] - input: - meta: type: map @@ -35,7 +31,6 @@ input: type: file description: Fasta index file pattern: "*.{fai}" - output: - meta: type: map @@ -66,8 +61,11 @@ output: type: file description: Duplicate metrics file generated by GATK pattern: "*.{metrics.txt}" - authors: - "@ajodeh-juma" - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@ajodeh-juma" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/gatk4/markduplicatesspark/environment.yml b/modules/nf-core/gatk4/markduplicatesspark/environment.yml new file mode 100644 index 0000000000..9d00c0e3e7 --- /dev/null +++ b/modules/nf-core/gatk4/markduplicatesspark/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 + - conda-forge::openjdk=8.0.312 diff --git a/modules/nf-core/gatk4/markduplicatesspark/main.nf b/modules/nf-core/gatk4/markduplicatesspark/main.nf index f318ed50a6..c3c9ba5609 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/main.nf +++ b/modules/nf-core/gatk4/markduplicatesspark/main.nf @@ -2,7 +2,7 @@ process GATK4_MARKDUPLICATES_SPARK { tag "$meta.id" label 'process_high' - conda "bioconda::gatk4=4.4.0.0 conda-forge::openjdk=8.0.312" + conda "${moduleDir}/environment.yml" container "nf-core/gatk:4.4.0.0" input: diff --git a/modules/nf-core/gatk4/markduplicatesspark/meta.yml b/modules/nf-core/gatk4/markduplicatesspark/meta.yml index c9bb263a96..1e783ed7fd 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/meta.yml +++ b/modules/nf-core/gatk4/markduplicatesspark/meta.yml @@ -8,16 +8,12 @@ keywords: - spark tools: - gatk4: - description: - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. + description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard- tool_dev_url: https://github.com/broadinstitute/gatk doi: 10.1158/1538-7445.AM2017-3590 licence: ["MIT"] - input: - meta: type: map @@ -40,7 +36,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - output: - meta: type: map @@ -59,9 +54,13 @@ output: type: file description: Optional BAM index file pattern: "*.bai" - authors: - "@ajodeh-juma" - "@FriederikeHanssen" - "@maxulysse" - "@SusiJo" +maintainers: + - "@ajodeh-juma" + - "@FriederikeHanssen" + - "@maxulysse" + - "@SusiJo" diff --git a/modules/nf-core/gatk4/mergemutectstats/environment.yml b/modules/nf-core/gatk4/mergemutectstats/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/mergemutectstats/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/mergemutectstats/main.nf b/modules/nf-core/gatk4/mergemutectstats/main.nf index 269721cbf9..3a4913220c 100644 --- a/modules/nf-core/gatk4/mergemutectstats/main.nf +++ b/modules/nf-core/gatk4/mergemutectstats/main.nf @@ -2,7 +2,7 @@ process GATK4_MERGEMUTECTSTATS { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/mergemutectstats/meta.yml b/modules/nf-core/gatk4/mergemutectstats/meta.yml index f75833c9bc..1269525657 100644 --- a/modules/nf-core/gatk4/mergemutectstats/meta.yml +++ b/modules/nf-core/gatk4/mergemutectstats/meta.yml @@ -13,7 +13,6 @@ tools: tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" licence: ["BSD-3-clause"] - input: - meta: type: map @@ -24,7 +23,6 @@ input: type: file description: Stats file pattern: "*.{stats}" - output: - meta: type: map @@ -39,6 +37,7 @@ output: type: file description: Stats file pattern: "*.vcf.gz.stats" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/gatk4/mergevcfs/environment.yml b/modules/nf-core/gatk4/mergevcfs/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/mergevcfs/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/mergevcfs/main.nf b/modules/nf-core/gatk4/mergevcfs/main.nf index 29c08e169c..3362c2bdad 100644 --- a/modules/nf-core/gatk4/mergevcfs/main.nf +++ b/modules/nf-core/gatk4/mergevcfs/main.nf @@ -2,7 +2,7 @@ process GATK4_MERGEVCFS { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/mergevcfs/meta.yml b/modules/nf-core/gatk4/mergevcfs/meta.yml index 4e11311c17..30290a854f 100644 --- a/modules/nf-core/gatk4/mergevcfs/meta.yml +++ b/modules/nf-core/gatk4/mergevcfs/meta.yml @@ -33,7 +33,6 @@ input: type: file description: Optional Sequence Dictionary as input pattern: "*.dict" - output: - vcf: type: file @@ -43,10 +42,11 @@ output: type: file description: index files for the merged vcf files pattern: "*.tbi" - - versions: type: file description: File containing software versions pattern: "versions.yml" authors: - "@kevinmenden" +maintainers: + - "@kevinmenden" diff --git a/modules/nf-core/gatk4/mutect2/environment.yml b/modules/nf-core/gatk4/mutect2/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/mutect2/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/mutect2/main.nf b/modules/nf-core/gatk4/mutect2/main.nf index 4e353979db..721e94f3e4 100644 --- a/modules/nf-core/gatk4/mutect2/main.nf +++ b/modules/nf-core/gatk4/mutect2/main.nf @@ -2,7 +2,7 @@ process GATK4_MUTECT2 { tag "$meta.id" label 'process_medium' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/mutect2/meta.yml b/modules/nf-core/gatk4/mutect2/meta.yml index 693aeb296a..21c928ed96 100644 --- a/modules/nf-core/gatk4/mutect2/meta.yml +++ b/modules/nf-core/gatk4/mutect2/meta.yml @@ -17,7 +17,6 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 licence: ["Apache-2.0"] - input: - meta: type: map @@ -79,7 +78,6 @@ input: type: file description: Index for the panel of normals. pattern: "*.vcf.gz.tbi" - output: - vcf: type: file @@ -101,7 +99,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@GCJMackenzie" - "@ramprasadn" +maintainers: + - "@GCJMackenzie" + - "@ramprasadn" diff --git a/modules/nf-core/gatk4/variantrecalibrator/environment.yml b/modules/nf-core/gatk4/variantrecalibrator/environment.yml new file mode 100644 index 0000000000..16241b6d94 --- /dev/null +++ b/modules/nf-core/gatk4/variantrecalibrator/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::gatk4=4.4.0.0 diff --git a/modules/nf-core/gatk4/variantrecalibrator/main.nf b/modules/nf-core/gatk4/variantrecalibrator/main.nf index fa262e4a95..f9cd45ac94 100644 --- a/modules/nf-core/gatk4/variantrecalibrator/main.nf +++ b/modules/nf-core/gatk4/variantrecalibrator/main.nf @@ -2,7 +2,7 @@ process GATK4_VARIANTRECALIBRATOR { tag "$meta.id" label 'process_low' - conda "bioconda::gatk4=4.4.0.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0': 'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }" diff --git a/modules/nf-core/gatk4/variantrecalibrator/meta.yml b/modules/nf-core/gatk4/variantrecalibrator/meta.yml index 5ade4d89b1..39a415b61c 100644 --- a/modules/nf-core/gatk4/variantrecalibrator/meta.yml +++ b/modules/nf-core/gatk4/variantrecalibrator/meta.yml @@ -18,7 +18,6 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - input: - meta: type: map @@ -80,3 +79,6 @@ output: authors: - "@GCJMackenzie" - "@nickhsmith" +maintainers: + - "@GCJMackenzie" + - "@nickhsmith" diff --git a/modules/nf-core/manta/germline/environment.yml b/modules/nf-core/manta/germline/environment.yml new file mode 100644 index 0000000000..235b1ba75d --- /dev/null +++ b/modules/nf-core/manta/germline/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::manta=1.6.0 diff --git a/modules/nf-core/manta/germline/main.nf b/modules/nf-core/manta/germline/main.nf index e052b7c9f0..5d5666c6e5 100644 --- a/modules/nf-core/manta/germline/main.nf +++ b/modules/nf-core/manta/germline/main.nf @@ -3,7 +3,7 @@ process MANTA_GERMLINE { label 'process_medium' label 'error_retry' - conda "bioconda::manta=1.6.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/manta:1.6.0--h9ee0642_1' : 'biocontainers/manta:1.6.0--h9ee0642_1' }" @@ -13,6 +13,7 @@ process MANTA_GERMLINE { tuple val(meta), path(input), path(index), path(target_bed), path(target_bed_tbi) tuple val(meta2), path(fasta) tuple val(meta3), path(fai) + path(config) output: tuple val(meta), path("*candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf @@ -31,27 +32,29 @@ process MANTA_GERMLINE { def prefix = task.ext.prefix ?: "${meta.id}" def input_files = input.collect{"--bam ${it}"}.join(' ') def options_manta = target_bed ? "--callRegions $target_bed" : "" + def config_option = config ? "--config ${config}" : "" """ - configManta.py \ - ${input_files} \ - --reference $fasta \ - --runDir manta \ - $options_manta \ + configManta.py \\ + ${input_files} \\ + ${config_option} \\ + --reference $fasta \\ + --runDir manta \\ + $options_manta \\ $args python manta/runWorkflow.py -m local -j $task.cpus - mv manta/results/variants/candidateSmallIndels.vcf.gz \ + mv manta/results/variants/candidateSmallIndels.vcf.gz \\ ${prefix}.candidate_small_indels.vcf.gz - mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi \ + mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi \\ ${prefix}.candidate_small_indels.vcf.gz.tbi - mv manta/results/variants/candidateSV.vcf.gz \ + mv manta/results/variants/candidateSV.vcf.gz \\ ${prefix}.candidate_sv.vcf.gz - mv manta/results/variants/candidateSV.vcf.gz.tbi \ + mv manta/results/variants/candidateSV.vcf.gz.tbi \\ ${prefix}.candidate_sv.vcf.gz.tbi - mv manta/results/variants/diploidSV.vcf.gz \ + mv manta/results/variants/diploidSV.vcf.gz \\ ${prefix}.diploid_sv.vcf.gz - mv manta/results/variants/diploidSV.vcf.gz.tbi \ + mv manta/results/variants/diploidSV.vcf.gz.tbi \\ ${prefix}.diploid_sv.vcf.gz.tbi cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/manta/germline/meta.yml b/modules/nf-core/manta/germline/meta.yml index 2eb16ada53..72ed15f8bc 100644 --- a/modules/nf-core/manta/germline/meta.yml +++ b/modules/nf-core/manta/germline/meta.yml @@ -16,7 +16,6 @@ tools: tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" licence: ["GPL v3"] - input: - meta: type: map @@ -57,7 +56,10 @@ input: type: file description: Genome reference FASTA index file pattern: "*.{fa.fai,fasta.fai}" - + - config: + type: file + description: Manta configuration file + pattern: "*.{ini,conf,config}" output: - meta: type: map @@ -92,7 +94,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@maxulysse" - "@ramprasadn" + - "@nvnieuwk" +maintainers: + - "@maxulysse" + - "@ramprasadn" + - "@nvnieuwk" diff --git a/modules/nf-core/manta/somatic/environment.yml b/modules/nf-core/manta/somatic/environment.yml new file mode 100644 index 0000000000..235b1ba75d --- /dev/null +++ b/modules/nf-core/manta/somatic/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::manta=1.6.0 diff --git a/modules/nf-core/manta/somatic/main.nf b/modules/nf-core/manta/somatic/main.nf index 8ff8d90a11..07511b2f0b 100644 --- a/modules/nf-core/manta/somatic/main.nf +++ b/modules/nf-core/manta/somatic/main.nf @@ -3,15 +3,16 @@ process MANTA_SOMATIC { label 'process_medium' label 'error_retry' - conda "bioconda::manta=1.6.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/manta:1.6.0--h9ee0642_1' : 'biocontainers/manta:1.6.0--h9ee0642_1' }" input: tuple val(meta), path(input_normal), path(input_index_normal), path(input_tumor), path(input_index_tumor), path(target_bed), path(target_bed_tbi) - path fasta - path fai + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + path(config) output: tuple val(meta), path("*.candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf @@ -31,26 +32,53 @@ process MANTA_SOMATIC { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def options_manta = target_bed ? "--callRegions $target_bed" : "" - + def config_option = config ? "--config ${config}" : "" """ - configManta.py \ - --tumorBam $input_tumor \ - --normalBam $input_normal \ - --reference $fasta \ - --runDir manta \ - $options_manta \ + configManta.py \\ + --tumorBam $input_tumor \\ + --normalBam $input_normal \\ + --reference $fasta \\ + ${config_option} \\ + --runDir manta \\ + $options_manta \\ $args python manta/runWorkflow.py -m local -j $task.cpus - mv manta/results/variants/candidateSmallIndels.vcf.gz ${prefix}.candidate_small_indels.vcf.gz - mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi ${prefix}.candidate_small_indels.vcf.gz.tbi - mv manta/results/variants/candidateSV.vcf.gz ${prefix}.candidate_sv.vcf.gz - mv manta/results/variants/candidateSV.vcf.gz.tbi ${prefix}.candidate_sv.vcf.gz.tbi - mv manta/results/variants/diploidSV.vcf.gz ${prefix}.diploid_sv.vcf.gz - mv manta/results/variants/diploidSV.vcf.gz.tbi ${prefix}.diploid_sv.vcf.gz.tbi - mv manta/results/variants/somaticSV.vcf.gz ${prefix}.somatic_sv.vcf.gz - mv manta/results/variants/somaticSV.vcf.gz.tbi ${prefix}.somatic_sv.vcf.gz.tbi + mv manta/results/variants/candidateSmallIndels.vcf.gz \\ + ${prefix}.candidate_small_indels.vcf.gz + mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi \\ + ${prefix}.candidate_small_indels.vcf.gz.tbi + mv manta/results/variants/candidateSV.vcf.gz \\ + ${prefix}.candidate_sv.vcf.gz + mv manta/results/variants/candidateSV.vcf.gz.tbi \\ + ${prefix}.candidate_sv.vcf.gz.tbi + mv manta/results/variants/diploidSV.vcf.gz \\ + ${prefix}.diploid_sv.vcf.gz + mv manta/results/variants/diploidSV.vcf.gz.tbi \\ + ${prefix}.diploid_sv.vcf.gz.tbi + mv manta/results/variants/somaticSV.vcf.gz \\ + ${prefix}.somatic_sv.vcf.gz + mv manta/results/variants/somaticSV.vcf.gz.tbi \\ + ${prefix}.somatic_sv.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + manta: \$( configManta.py --version ) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.candidate_small_indels.vcf.gz + touch ${prefix}.candidate_small_indels.vcf.gz.tbi + touch ${prefix}.candidate_sv.vcf.gz + touch ${prefix}.candidate_sv.vcf.gz.tbi + touch ${prefix}.diploid_sv.vcf.gz + touch ${prefix}.diploid_sv.vcf.gz.tbi + touch ${prefix}.somatic_sv.vcf.gz + touch ${prefix}.somatic_sv.vcf.gz.tbi cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/manta/somatic/meta.yml b/modules/nf-core/manta/somatic/meta.yml index 457d66a5fd..e658edaaa4 100644 --- a/modules/nf-core/manta/somatic/meta.yml +++ b/modules/nf-core/manta/somatic/meta.yml @@ -16,7 +16,6 @@ tools: tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" licence: ["GPL v3"] - input: - meta: type: map @@ -47,15 +46,28 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fasta: type: file description: Genome reference FASTA file pattern: "*.{fa,fasta}" + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fai: type: file description: Genome reference FASTA index file pattern: "*.{fa.fai,fasta.fai}" - + - config: + type: file + description: Manta configuration file + pattern: "*.{ini,conf,config}" output: - meta: type: map @@ -98,6 +110,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@FriederikeHanssen" + - "@nvnieuwk" +maintainers: + - "@FriederikeHanssen" + - "@nvnieuwk" diff --git a/modules/nf-core/manta/tumoronly/environment.yml b/modules/nf-core/manta/tumoronly/environment.yml new file mode 100644 index 0000000000..235b1ba75d --- /dev/null +++ b/modules/nf-core/manta/tumoronly/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::manta=1.6.0 diff --git a/modules/nf-core/manta/tumoronly/main.nf b/modules/nf-core/manta/tumoronly/main.nf index e3d6ca1b14..b047299571 100644 --- a/modules/nf-core/manta/tumoronly/main.nf +++ b/modules/nf-core/manta/tumoronly/main.nf @@ -3,15 +3,16 @@ process MANTA_TUMORONLY { label 'process_medium' label 'error_retry' - conda "bioconda::manta=1.6.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/manta:1.6.0--h9ee0642_1' : 'biocontainers/manta:1.6.0--h9ee0642_1' }" input: tuple val(meta), path(input), path(input_index), path(target_bed), path(target_bed_tbi) - path fasta - path fai + tuple val(meta2), path(fasta) + tuple val(meta3), path(fai) + path(config) output: tuple val(meta), path("*candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf @@ -29,27 +30,29 @@ process MANTA_TUMORONLY { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def options_manta = target_bed ? "--callRegions $target_bed" : "" + def config_option = config ? "--config ${config}" : "" """ - configManta.py \ - --tumorBam $input \ - --reference $fasta \ - --runDir manta \ - $options_manta \ + configManta.py \\ + --tumorBam $input \\ + --reference $fasta \\ + ${config_option} \\ + --runDir manta \\ + $options_manta \\ $args python manta/runWorkflow.py -m local -j $task.cpus - mv manta/results/variants/candidateSmallIndels.vcf.gz \ + mv manta/results/variants/candidateSmallIndels.vcf.gz \\ ${prefix}.candidate_small_indels.vcf.gz - mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi \ + mv manta/results/variants/candidateSmallIndels.vcf.gz.tbi \\ ${prefix}.candidate_small_indels.vcf.gz.tbi - mv manta/results/variants/candidateSV.vcf.gz \ + mv manta/results/variants/candidateSV.vcf.gz \\ ${prefix}.candidate_sv.vcf.gz - mv manta/results/variants/candidateSV.vcf.gz.tbi \ + mv manta/results/variants/candidateSV.vcf.gz.tbi \\ ${prefix}.candidate_sv.vcf.gz.tbi - mv manta/results/variants/tumorSV.vcf.gz \ + mv manta/results/variants/tumorSV.vcf.gz \\ ${prefix}.tumor_sv.vcf.gz - mv manta/results/variants/tumorSV.vcf.gz.tbi \ + mv manta/results/variants/tumorSV.vcf.gz.tbi \\ ${prefix}.tumor_sv.vcf.gz.tbi cat <<-END_VERSIONS > versions.yml @@ -57,4 +60,20 @@ process MANTA_TUMORONLY { manta: \$( configManta.py --version ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.candidate_small_indels.vcf.gz + touch ${prefix}.candidate_small_indels.vcf.gz.tbi + touch ${prefix}.candidate_sv.vcf.gz + touch ${prefix}.candidate_sv.vcf.gz.tbi + touch ${prefix}.tumor_sv.vcf.gz + touch ${prefix}.tumor_sv.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + manta: \$( configManta.py --version ) + END_VERSIONS + """ } diff --git a/modules/nf-core/manta/tumoronly/meta.yml b/modules/nf-core/manta/tumoronly/meta.yml index 398d684365..63556c59b4 100644 --- a/modules/nf-core/manta/tumoronly/meta.yml +++ b/modules/nf-core/manta/tumoronly/meta.yml @@ -16,7 +16,6 @@ tools: tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" licence: ["GPL v3"] - input: - meta: type: map @@ -39,15 +38,28 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fasta: type: file description: Genome reference FASTA file pattern: "*.{fa,fasta}" + - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'genome' ] - fai: type: file description: Genome reference FASTA index file pattern: "*.{fa.fai,fasta.fai}" - + - config: + type: file + description: Manta configuration file + pattern: "*.{ini,conf,config}" output: - meta: type: map @@ -82,6 +94,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@maxulysse" + - "@nvnieuwk" +maintainers: + - "@maxulysse" + - "@nvnieuwk" diff --git a/modules/nf-core/mosdepth/environment.yml b/modules/nf-core/mosdepth/environment.yml new file mode 100644 index 0000000000..f1521e08a2 --- /dev/null +++ b/modules/nf-core/mosdepth/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::mosdepth=0.3.3 diff --git a/modules/nf-core/mosdepth/main.nf b/modules/nf-core/mosdepth/main.nf index 74db3a274b..7dd13ffb51 100644 --- a/modules/nf-core/mosdepth/main.nf +++ b/modules/nf-core/mosdepth/main.nf @@ -2,7 +2,7 @@ process MOSDEPTH { tag "$meta.id" label 'process_medium' - conda "bioconda::mosdepth=0.3.3" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mosdepth:0.3.3--hdfd78af_1' : 'biocontainers/mosdepth:0.3.3--hdfd78af_1'}" diff --git a/modules/nf-core/mosdepth/meta.yml b/modules/nf-core/mosdepth/meta.yml index adf3893f3e..76263b5af9 100644 --- a/modules/nf-core/mosdepth/meta.yml +++ b/modules/nf-core/mosdepth/meta.yml @@ -107,3 +107,8 @@ authors: - "@drpatelh" - "@ramprasadn" - "@matthdsm" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@ramprasadn" + - "@matthdsm" diff --git a/modules/nf-core/msisensorpro/msisomatic/environment.yml b/modules/nf-core/msisensorpro/msisomatic/environment.yml new file mode 100644 index 0000000000..6d85f22481 --- /dev/null +++ b/modules/nf-core/msisensorpro/msisomatic/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::msisensor-pro=1.2.0 diff --git a/modules/nf-core/msisensorpro/msisomatic/main.nf b/modules/nf-core/msisensorpro/msisomatic/main.nf index 50287cb3cd..9b0084d949 100644 --- a/modules/nf-core/msisensorpro/msisomatic/main.nf +++ b/modules/nf-core/msisensorpro/msisomatic/main.nf @@ -2,7 +2,7 @@ process MSISENSORPRO_MSISOMATIC { tag "$meta.id" label 'process_low' - conda "bioconda::msisensor-pro=1.2.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : 'biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" diff --git a/modules/nf-core/msisensorpro/msisomatic/meta.yml b/modules/nf-core/msisensorpro/msisomatic/meta.yml index bcd95dc72b..a6dda66ff2 100644 --- a/modules/nf-core/msisensorpro/msisomatic/meta.yml +++ b/modules/nf-core/msisensorpro/msisomatic/meta.yml @@ -13,7 +13,6 @@ tools: tool_dev_url: https://github.com/xjtu-omics/msisensor-pro doi: "10.1016/j.gpb.2020.02.001" licence: ["Custom Licence"] - input: - meta: type: map @@ -48,7 +47,6 @@ input: type: file description: Output from msisensor-pro/scan, conaining list of msi regions pattern: "*.list" - output: - meta: type: map @@ -75,6 +73,7 @@ output: type: file description: File containing microsatellite list pattern: "*.{list}" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/msisensorpro/scan/environment.yml b/modules/nf-core/msisensorpro/scan/environment.yml new file mode 100644 index 0000000000..6d85f22481 --- /dev/null +++ b/modules/nf-core/msisensorpro/scan/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::msisensor-pro=1.2.0 diff --git a/modules/nf-core/msisensorpro/scan/main.nf b/modules/nf-core/msisensorpro/scan/main.nf index 760d51aa22..9c7dce2596 100644 --- a/modules/nf-core/msisensorpro/scan/main.nf +++ b/modules/nf-core/msisensorpro/scan/main.nf @@ -2,7 +2,7 @@ process MSISENSORPRO_SCAN { tag "$meta.id" label 'process_low' - conda "bioconda::msisensor-pro=1.2.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : 'biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" diff --git a/modules/nf-core/msisensorpro/scan/meta.yml b/modules/nf-core/msisensorpro/scan/meta.yml index 47f4d3529f..aec743ede5 100644 --- a/modules/nf-core/msisensorpro/scan/meta.yml +++ b/modules/nf-core/msisensorpro/scan/meta.yml @@ -12,7 +12,6 @@ tools: tool_dev_url: https://github.com/xjtu-omics/msisensor-pro doi: "10.1016/j.gpb.2020.02.001" licence: ["Custom Licence"] - input: - meta: type: map @@ -23,7 +22,6 @@ input: type: file description: Reference genome pattern: "*.{fasta}" - output: - meta: type: map @@ -38,6 +36,7 @@ output: type: file description: File containing microsatellite list pattern: "*.{list}" - authors: - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml new file mode 100644 index 0000000000..9d0e6b2090 --- /dev/null +++ b/modules/nf-core/multiqc/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.17 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 65d7dd0de1..2bbc3983fa 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_single' - conda "bioconda::multiqc=1.15" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.15--pyhdfd78af_0' : - 'biocontainers/multiqc:1.15--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' : + 'biocontainers/multiqc:1.17--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index f93b5ee519..a61223ed7a 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -13,7 +13,6 @@ tools: homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ licence: ["GPL-3.0-or-later"] - input: - multiqc_files: type: file @@ -31,7 +30,6 @@ input: type: file description: Optional logo file for MultiQC pattern: "*.{png}" - output: - report: type: file @@ -54,3 +52,8 @@ authors: - "@bunop" - "@drpatelh" - "@jfy133" +maintainers: + - "@abhi18av" + - "@bunop" + - "@drpatelh" + - "@jfy133" diff --git a/modules/nf-core/samblaster/environment.yml b/modules/nf-core/samblaster/environment.yml new file mode 100644 index 0000000000..3a79aaf8ea --- /dev/null +++ b/modules/nf-core/samblaster/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samblaster=0.1.26 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/samblaster/main.nf b/modules/nf-core/samblaster/main.nf index af1f71d6e5..4622d3691d 100644 --- a/modules/nf-core/samblaster/main.nf +++ b/modules/nf-core/samblaster/main.nf @@ -2,7 +2,7 @@ process SAMBLASTER { tag "$meta.id" label 'process_low' - conda "bioconda::samblaster=0.1.26 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:cee56b506ceb753d4bbef7e05b81e1bfc25d937f-0' : 'biocontainers/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:cee56b506ceb753d4bbef7e05b81e1bfc25d937f-0' }" diff --git a/modules/nf-core/samblaster/meta.yml b/modules/nf-core/samblaster/meta.yml index f090c89816..ccb48320c1 100644 --- a/modules/nf-core/samblaster/meta.yml +++ b/modules/nf-core/samblaster/meta.yml @@ -19,12 +19,10 @@ tools: It can also optionally output discordant read pairs and/or split read mappings to separate SAM files, and/or unmapped/clipped reads to a separate FASTQ file. By default, samblaster reads SAM input from stdin and writes SAM to stdout. - documentation: https://github.com/GregoryFaust/samblaster tool_dev_url: https://github.com/GregoryFaust/samblaster doi: "10.1093/bioinformatics/btu314" licence: ["MIT"] - input: - meta: type: map @@ -35,7 +33,6 @@ input: type: file description: BAM file pattern: "*.bam" - output: - meta: type: map @@ -50,6 +47,7 @@ output: type: file description: Tagged or filtered BAM file pattern: "*.bam" - authors: - "@lescai" +maintainers: + - "@lescai" diff --git a/modules/nf-core/samtools/bam2fq/environment.yml b/modules/nf-core/samtools/bam2fq/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/bam2fq/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/bam2fq/main.nf b/modules/nf-core/samtools/bam2fq/main.nf index 858f2ae3d7..016d91d992 100644 --- a/modules/nf-core/samtools/bam2fq/main.nf +++ b/modules/nf-core/samtools/bam2fq/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_BAM2FQ { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/bam2fq/meta.yml b/modules/nf-core/samtools/bam2fq/meta.yml index c7ad3ba834..7769046b54 100644 --- a/modules/nf-core/samtools/bam2fq/meta.yml +++ b/modules/nf-core/samtools/bam2fq/meta.yml @@ -9,11 +9,8 @@ keywords: tools: - samtools: description: Tools for dealing with SAM, BAM and CRAM files - documentation: http://www.htslib.org/doc/1.1/samtools.html - licence: ["MIT"] - input: - meta: type: map @@ -32,7 +29,6 @@ input: Note: choosing TRUE will generate 4 different files. Choosing FALSE will produce a single file, which will be interleaved in case the input contains paired reads. - output: - meta: type: map @@ -49,6 +45,7 @@ output: FASTQ files, which will be either a group of 4 files (read_1, read_2, other and singleton) or a single interleaved .fq.gz file if the user chooses not to split the reads. pattern: "*.fq.gz" - authors: - "@lescai" +maintainers: + - "@lescai" diff --git a/modules/nf-core/samtools/collatefastq/environment.yml b/modules/nf-core/samtools/collatefastq/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/collatefastq/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/collatefastq/main.nf b/modules/nf-core/samtools/collatefastq/main.nf index 4469fafcca..537b88cca4 100644 --- a/modules/nf-core/samtools/collatefastq/main.nf +++ b/modules/nf-core/samtools/collatefastq/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_COLLATEFASTQ { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/collatefastq/meta.yml b/modules/nf-core/samtools/collatefastq/meta.yml index b647cba454..898cdbdad7 100644 --- a/modules/nf-core/samtools/collatefastq/meta.yml +++ b/modules/nf-core/samtools/collatefastq/meta.yml @@ -9,11 +9,8 @@ keywords: tools: - samtools: description: Tools for dealing with SAM, BAM and CRAM files - documentation: http://www.htslib.org/doc/1.1/samtools.html - licence: ["MIT"] - input: - meta: type: map @@ -69,8 +66,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@lescai" - "@maxulysse" - "@matthdsm" +maintainers: + - "@lescai" + - "@maxulysse" + - "@matthdsm" diff --git a/modules/nf-core/samtools/convert/environment.yml b/modules/nf-core/samtools/convert/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/convert/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/convert/main.nf b/modules/nf-core/samtools/convert/main.nf index 29722ba787..ddf17d2dee 100644 --- a/modules/nf-core/samtools/convert/main.nf +++ b/modules/nf-core/samtools/convert/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_CONVERT { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/convert/meta.yml b/modules/nf-core/samtools/convert/meta.yml index 866c228fef..f8a1612fc2 100644 --- a/modules/nf-core/samtools/convert/meta.yml +++ b/modules/nf-core/samtools/convert/meta.yml @@ -50,3 +50,6 @@ output: authors: - "@FriederikeHanssen" - "@maxulysse" +maintainers: + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/nf-core/samtools/faidx/environment.yml b/modules/nf-core/samtools/faidx/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/faidx/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/faidx/main.nf b/modules/nf-core/samtools/faidx/main.nf index 59ed308876..3aa988224e 100644 --- a/modules/nf-core/samtools/faidx/main.nf +++ b/modules/nf-core/samtools/faidx/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_FAIDX { tag "$fasta" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml index 957b25e52b..e189af28fd 100644 --- a/modules/nf-core/samtools/faidx/meta.yml +++ b/modules/nf-core/samtools/faidx/meta.yml @@ -55,3 +55,7 @@ authors: - "@drpatelh" - "@ewels" - "@phue" +maintainers: + - "@drpatelh" + - "@ewels" + - "@phue" diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/index/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index 0b20aa4bb8..256bd7c469 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml index 8bd2fa6fb4..01a4ee03eb 100644 --- a/modules/nf-core/samtools/index/meta.yml +++ b/modules/nf-core/samtools/index/meta.yml @@ -51,3 +51,7 @@ authors: - "@drpatelh" - "@ewels" - "@maxulysse" +maintainers: + - "@drpatelh" + - "@ewels" + - "@maxulysse" diff --git a/modules/nf-core/samtools/merge/environment.yml b/modules/nf-core/samtools/merge/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/merge/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/merge/main.nf b/modules/nf-core/samtools/merge/main.nf index b73b7cb2a9..21f785cfdc 100644 --- a/modules/nf-core/samtools/merge/main.nf +++ b/modules/nf-core/samtools/merge/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_MERGE { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" @@ -16,6 +16,7 @@ process SAMTOOLS_MERGE { tuple val(meta), path("${prefix}.bam") , optional:true, emit: bam tuple val(meta), path("${prefix}.cram"), optional:true, emit: cram tuple val(meta), path("*.csi") , optional:true, emit: csi + tuple val(meta), path("*.crai") , optional:true, emit: crai path "versions.yml" , emit: versions diff --git a/modules/nf-core/samtools/merge/meta.yml b/modules/nf-core/samtools/merge/meta.yml index 3a815f74b9..2e8f3dbbb5 100644 --- a/modules/nf-core/samtools/merge/meta.yml +++ b/modules/nf-core/samtools/merge/meta.yml @@ -65,9 +65,19 @@ output: type: file description: BAM index file (optional) pattern: "*.csi" + - crai: + type: file + description: CRAM index file (optional) + pattern: "*.crai" authors: - "@drpatelh" - "@yuukiiwa " - "@maxulysse" - "@FriederikeHanssen" - "@ramprasadn" +maintainers: + - "@drpatelh" + - "@yuukiiwa " + - "@maxulysse" + - "@FriederikeHanssen" + - "@ramprasadn" diff --git a/modules/nf-core/samtools/mpileup/environment.yml b/modules/nf-core/samtools/mpileup/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/mpileup/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/mpileup/main.nf b/modules/nf-core/samtools/mpileup/main.nf index d772498415..ed102582c4 100644 --- a/modules/nf-core/samtools/mpileup/main.nf +++ b/modules/nf-core/samtools/mpileup/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_MPILEUP { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/mpileup/meta.yml b/modules/nf-core/samtools/mpileup/meta.yml index 7597ef41ab..13038fbc9b 100644 --- a/modules/nf-core/samtools/mpileup/meta.yml +++ b/modules/nf-core/samtools/mpileup/meta.yml @@ -50,3 +50,6 @@ output: authors: - "@drpatelh" - "@joseespinosa" +maintainers: + - "@drpatelh" + - "@joseespinosa" diff --git a/modules/nf-core/samtools/stats/environment.yml b/modules/nf-core/samtools/stats/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/stats/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 4a2607ded0..07286ef410 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_single' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/stats/meta.yml b/modules/nf-core/samtools/stats/meta.yml index 90e6345f53..735ff8122a 100644 --- a/modules/nf-core/samtools/stats/meta.yml +++ b/modules/nf-core/samtools/stats/meta.yml @@ -57,3 +57,7 @@ authors: - "@drpatelh" - "@FriederikeHanssen" - "@ramprasadn" +maintainers: + - "@drpatelh" + - "@FriederikeHanssen" + - "@ramprasadn" diff --git a/modules/nf-core/samtools/stats/tests/main.nf.test b/modules/nf-core/samtools/stats/tests/main.nf.test new file mode 100644 index 0000000000..e037132ca2 --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/main.nf.test @@ -0,0 +1,78 @@ +nextflow_process { + + name "Test Process SAMTOOLS_STATS" + script "../main.nf" + process "SAMTOOLS_STATS" + tag "modules" + tag "modules/nf-core" + tag "samtools" + tag "samtools/stats" + + test("SAMTOOLS STATS Should run without failures") { + + when { + params { + + outdir = "$outputDir" + } + process { + """ + // define inputs of the process here. + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + + ] + input[1] = [[],[]] + """ + + } + } + + then { + assertAll( + {assert process.success}, + {assert snapshot(process.out).match()} + ) + } + + } + + test("SAMTOOLS CRAM Should run without failures") { + + when { + params { + + outdir = "$outputDir" + } + process { + """ + // define inputs of the process here + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + + ] + input[1] = [ + [ id:'genome' ], + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + + + } + + then { + assertAll( + {assert process.success}, + {assert snapshot(process.out).match()} + ) + } + + } + + +} diff --git a/modules/nf-core/samtools/stats/tests/main.nf.test.snap b/modules/nf-core/samtools/stats/tests/main.nf.test.snap new file mode 100644 index 0000000000..516b2b0192 --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/main.nf.test.snap @@ -0,0 +1,64 @@ +{ + "SAMTOOLS STATS Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,6e768486d5df0257351c5419a79f9c9b" + ] + ], + "1": [ + "versions.yml:md5,08035f3409d934d47a416150884bb0df" + ], + "stats": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,6e768486d5df0257351c5419a79f9c9b" + ] + ], + "versions": [ + "versions.yml:md5,08035f3409d934d47a416150884bb0df" + ] + } + ], + "timestamp": "2023-10-18T12:12:42.998746" + }, + "SAMTOOLS CRAM Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,7c9ee5747793cceb9d6f4d733345641a" + ] + ], + "1": [ + "versions.yml:md5,08035f3409d934d47a416150884bb0df" + ], + "stats": [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,7c9ee5747793cceb9d6f4d733345641a" + ] + ], + "versions": [ + "versions.yml:md5,08035f3409d934d47a416150884bb0df" + ] + } + ], + "timestamp": "2023-10-18T12:13:30.747222" + } +} \ No newline at end of file diff --git a/modules/nf-core/samtools/stats/tests/tags.yml b/modules/nf-core/samtools/stats/tests/tags.yml new file mode 100644 index 0000000000..7c28e30f3f --- /dev/null +++ b/modules/nf-core/samtools/stats/tests/tags.yml @@ -0,0 +1,2 @@ +samtools/stats: + - modules/nf-core/samtools/stats/** diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml new file mode 100644 index 0000000000..04c82f1423 --- /dev/null +++ b/modules/nf-core/samtools/view/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::samtools=1.17 diff --git a/modules/nf-core/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf index cb91facf8c..ddf3f88ae5 100644 --- a/modules/nf-core/samtools/view/main.nf +++ b/modules/nf-core/samtools/view/main.nf @@ -2,7 +2,7 @@ process SAMTOOLS_VIEW { tag "$meta.id" label 'process_low' - conda "bioconda::samtools=1.17" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' : 'biocontainers/samtools:1.17--h00cdaf9_0' }" diff --git a/modules/nf-core/samtools/view/meta.yml b/modules/nf-core/samtools/view/meta.yml index 3b05450b2e..3dadafae75 100644 --- a/modules/nf-core/samtools/view/meta.yml +++ b/modules/nf-core/samtools/view/meta.yml @@ -82,3 +82,8 @@ authors: - "@joseespinosa" - "@FriederikeHanssen" - "@priyanka-surana" +maintainers: + - "@drpatelh" + - "@joseespinosa" + - "@FriederikeHanssen" + - "@priyanka-surana" diff --git a/modules/nf-core/sentieon/applyvarcal/environment.yml b/modules/nf-core/sentieon/applyvarcal/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/applyvarcal/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/applyvarcal/meta.yml b/modules/nf-core/sentieon/applyvarcal/meta.yml index bbe23ea375..da92ce3436 100644 --- a/modules/nf-core/sentieon/applyvarcal/meta.yml +++ b/modules/nf-core/sentieon/applyvarcal/meta.yml @@ -17,7 +17,6 @@ tools: Our software improves upon BWA, STAR, Minimap2, GATK, HaplotypeCaller, Mutect, and Mutect2 based pipelines and is deployable on any generic-CPU-based computing system. homepage: https://www.sentieon.com/ documentation: https://www.sentieon.com/ - input: - meta: type: map @@ -82,3 +81,5 @@ output: pattern: "versions.yml" authors: - "@assp8200" +maintainers: + - "@assp8200" diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/bwamem/meta.yml b/modules/nf-core/sentieon/bwamem/meta.yml index 9987e8c900..0859a923ca 100644 --- a/modules/nf-core/sentieon/bwamem/meta.yml +++ b/modules/nf-core/sentieon/bwamem/meta.yml @@ -71,3 +71,5 @@ output: pattern: "versions.yml" authors: - "@asp8200" +maintainers: + - "@asp8200" diff --git a/modules/nf-core/sentieon/dedup/environment.yml b/modules/nf-core/sentieon/dedup/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/dedup/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/dedup/meta.yml b/modules/nf-core/sentieon/dedup/meta.yml index ec0565d923..0efbb96c22 100644 --- a/modules/nf-core/sentieon/dedup/meta.yml +++ b/modules/nf-core/sentieon/dedup/meta.yml @@ -86,3 +86,5 @@ output: pattern: "versions.yml" authors: - "@asp8200" +maintainers: + - "@asp8200" diff --git a/modules/nf-core/sentieon/dnamodelapply/environment.yml b/modules/nf-core/sentieon/dnamodelapply/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/dnamodelapply/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/dnamodelapply/meta.yml b/modules/nf-core/sentieon/dnamodelapply/meta.yml index ec429bea21..bc7d323ed5 100644 --- a/modules/nf-core/sentieon/dnamodelapply/meta.yml +++ b/modules/nf-core/sentieon/dnamodelapply/meta.yml @@ -12,7 +12,6 @@ tools: Our software improves upon BWA, STAR, Minimap2, GATK, HaplotypeCaller, Mutect, and Mutect2 based pipelines and is deployable on any generic-CPU-based computing system. homepage: https://www.sentieon.com/ documentation: https://www.sentieon.com/ - input: - meta: type: map @@ -54,7 +53,6 @@ input: type: file description: machine learning model file pattern: "*.model" - output: - meta: type: map @@ -73,6 +71,7 @@ output: type: file description: Index of the input VCF file pattern: "*.{tbi}" - authors: - "@ramprasadn" +maintainers: + - "@ramprasadn" diff --git a/modules/nf-core/sentieon/dnascope/environment.yml b/modules/nf-core/sentieon/dnascope/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/dnascope/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/dnascope/meta.yml b/modules/nf-core/sentieon/dnascope/meta.yml index 34e0b97b4c..6b61cee828 100644 --- a/modules/nf-core/sentieon/dnascope/meta.yml +++ b/modules/nf-core/sentieon/dnascope/meta.yml @@ -114,6 +114,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@ramprasadn" +maintainers: + - "@ramprasadn" diff --git a/modules/nf-core/sentieon/gvcftyper/environment.yml b/modules/nf-core/sentieon/gvcftyper/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/gvcftyper/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/gvcftyper/meta.yml b/modules/nf-core/sentieon/gvcftyper/meta.yml index c373b2c5cc..ceef173e3e 100644 --- a/modules/nf-core/sentieon/gvcftyper/meta.yml +++ b/modules/nf-core/sentieon/gvcftyper/meta.yml @@ -47,7 +47,6 @@ input: type: file description: dbSNP VCF index file pattern: "*.tbi" - output: - meta: type: map @@ -68,3 +67,5 @@ output: pattern: "versions.yml" authors: - "@asp8200" +maintainers: + - "@asp8200" diff --git a/modules/nf-core/sentieon/haplotyper/environment.yml b/modules/nf-core/sentieon/haplotyper/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/haplotyper/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/haplotyper/meta.yml b/modules/nf-core/sentieon/haplotyper/meta.yml index 33217808f8..c248db3fca 100644 --- a/modules/nf-core/sentieon/haplotyper/meta.yml +++ b/modules/nf-core/sentieon/haplotyper/meta.yml @@ -80,3 +80,5 @@ output: pattern: "versions.yml" authors: - "@asp8200" +maintainers: + - "@asp8200" diff --git a/modules/nf-core/sentieon/varcal/environment.yml b/modules/nf-core/sentieon/varcal/environment.yml new file mode 100644 index 0000000000..bcd3a8b1c6 --- /dev/null +++ b/modules/nf-core/sentieon/varcal/environment.yml @@ -0,0 +1,4 @@ +channels: + - conda-forge + - bioconda + - defaults diff --git a/modules/nf-core/sentieon/varcal/meta.yml b/modules/nf-core/sentieon/varcal/meta.yml index 5de37f6ad1..cad7ee106f 100644 --- a/modules/nf-core/sentieon/varcal/meta.yml +++ b/modules/nf-core/sentieon/varcal/meta.yml @@ -70,3 +70,5 @@ output: pattern: "*.versions.yml" authors: - "@asp8200" +maintainers: + - "@asp8200" diff --git a/modules/nf-core/snpeff/download/environment.yml b/modules/nf-core/snpeff/download/environment.yml new file mode 100644 index 0000000000..7d54aa5bdb --- /dev/null +++ b/modules/nf-core/snpeff/download/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::snpeff=5.1 diff --git a/modules/nf-core/snpeff/download/main.nf b/modules/nf-core/snpeff/download/main.nf index 9a3a0d3167..f1fc4cc395 100644 --- a/modules/nf-core/snpeff/download/main.nf +++ b/modules/nf-core/snpeff/download/main.nf @@ -2,7 +2,7 @@ process SNPEFF_DOWNLOAD { tag "$meta.id" label 'process_medium' - conda "bioconda::snpeff=5.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/snpeff:5.1--hdfd78af_2' : 'biocontainers/snpeff:5.1--hdfd78af_2' }" diff --git a/modules/nf-core/snpeff/download/meta.yml b/modules/nf-core/snpeff/download/meta.yml index 3c03c2f602..26e728f71a 100644 --- a/modules/nf-core/snpeff/download/meta.yml +++ b/modules/nf-core/snpeff/download/meta.yml @@ -39,3 +39,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/snpeff/snpeff/environment.yml b/modules/nf-core/snpeff/snpeff/environment.yml new file mode 100644 index 0000000000..7d54aa5bdb --- /dev/null +++ b/modules/nf-core/snpeff/snpeff/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::snpeff=5.1 diff --git a/modules/nf-core/snpeff/snpeff/main.nf b/modules/nf-core/snpeff/snpeff/main.nf index e92c1597e7..cc4f2ccb36 100644 --- a/modules/nf-core/snpeff/snpeff/main.nf +++ b/modules/nf-core/snpeff/snpeff/main.nf @@ -2,7 +2,7 @@ process SNPEFF_SNPEFF { tag "$meta.id" label 'process_medium' - conda "bioconda::snpeff=5.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/snpeff:5.1--hdfd78af_2' : 'biocontainers/snpeff:5.1--hdfd78af_2' }" diff --git a/modules/nf-core/snpeff/snpeff/meta.yml b/modules/nf-core/snpeff/snpeff/meta.yml index 44bada2303..0b771447ff 100644 --- a/modules/nf-core/snpeff/snpeff/meta.yml +++ b/modules/nf-core/snpeff/snpeff/meta.yml @@ -56,3 +56,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/strelka/germline/environment.yml b/modules/nf-core/strelka/germline/environment.yml new file mode 100644 index 0000000000..5c9c1cf81a --- /dev/null +++ b/modules/nf-core/strelka/germline/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::strelka=2.9.10 diff --git a/modules/nf-core/strelka/germline/main.nf b/modules/nf-core/strelka/germline/main.nf index 74712df16b..8f93356160 100644 --- a/modules/nf-core/strelka/germline/main.nf +++ b/modules/nf-core/strelka/germline/main.nf @@ -3,7 +3,7 @@ process STRELKA_GERMLINE { label 'process_medium' label 'error_retry' - conda "bioconda::strelka=2.9.10" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/strelka:2.9.10--h9ee0642_1' : 'biocontainers/strelka:2.9.10--h9ee0642_1' }" diff --git a/modules/nf-core/strelka/germline/meta.yml b/modules/nf-core/strelka/germline/meta.yml index c119532d16..6ee656683e 100644 --- a/modules/nf-core/strelka/germline/meta.yml +++ b/modules/nf-core/strelka/germline/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/Illumina/strelka doi: 10.1038/s41592-018-0051-x licence: ["GPL v3"] - input: - meta: type: map @@ -61,3 +60,5 @@ output: pattern: "versions.yml" authors: - "@arontommi" +maintainers: + - "@arontommi" diff --git a/modules/nf-core/strelka/somatic/environment.yml b/modules/nf-core/strelka/somatic/environment.yml new file mode 100644 index 0000000000..5c9c1cf81a --- /dev/null +++ b/modules/nf-core/strelka/somatic/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::strelka=2.9.10 diff --git a/modules/nf-core/strelka/somatic/main.nf b/modules/nf-core/strelka/somatic/main.nf index 17d700c136..dd975bd563 100644 --- a/modules/nf-core/strelka/somatic/main.nf +++ b/modules/nf-core/strelka/somatic/main.nf @@ -3,7 +3,7 @@ process STRELKA_SOMATIC { label 'process_medium' label 'error_retry' - conda "bioconda::strelka=2.9.10" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/strelka:2.9.10--h9ee0642_1' : 'biocontainers/strelka:2.9.10--h9ee0642_1' }" diff --git a/modules/nf-core/strelka/somatic/meta.yml b/modules/nf-core/strelka/somatic/meta.yml index b2a2550462..6032cd6d5f 100644 --- a/modules/nf-core/strelka/somatic/meta.yml +++ b/modules/nf-core/strelka/somatic/meta.yml @@ -14,7 +14,6 @@ tools: tool_dev_url: https://github.com/Illumina/strelka doi: 10.1038/s41592-018-0051-x licence: ["GPL v3"] - input: - meta: type: map @@ -61,7 +60,6 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" - output: - meta: type: map @@ -88,6 +86,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@drpatelh" +maintainers: + - "@drpatelh" diff --git a/modules/nf-core/svdb/merge/environment.yml b/modules/nf-core/svdb/merge/environment.yml new file mode 100644 index 0000000000..e31e204e3d --- /dev/null +++ b/modules/nf-core/svdb/merge/environment.yml @@ -0,0 +1,7 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::svdb=2.8.1 + - bioconda::samtools=1.16.1 diff --git a/modules/nf-core/svdb/merge/main.nf b/modules/nf-core/svdb/merge/main.nf index 0bd94499ab..0d9967dda9 100644 --- a/modules/nf-core/svdb/merge/main.nf +++ b/modules/nf-core/svdb/merge/main.nf @@ -1,7 +1,7 @@ process SVDB_MERGE { tag "$meta.id" label 'process_medium' - conda "bioconda::svdb=2.8.1 bioconda::samtools=1.16.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/mulled-v2-c8daa8f9d69d3c5a1a4ff08283a166c18edb0000:af6f8534cd538a85ff43a2eae1b52b143e7abd05-0': 'biocontainers/mulled-v2-c8daa8f9d69d3c5a1a4ff08283a166c18edb0000:af6f8534cd538a85ff43a2eae1b52b143e7abd05-0' }" diff --git a/modules/nf-core/svdb/merge/meta.yml b/modules/nf-core/svdb/merge/meta.yml index 92a5a128ea..84265acb84 100644 --- a/modules/nf-core/svdb/merge/meta.yml +++ b/modules/nf-core/svdb/merge/meta.yml @@ -39,3 +39,5 @@ output: pattern: "*_sv_merge.vcf.gz" authors: - "@ramprasadn" +maintainers: + - "@ramprasadn" diff --git a/modules/nf-core/tabix/bgziptabix/environment.yml b/modules/nf-core/tabix/bgziptabix/environment.yml new file mode 100644 index 0000000000..fdd84057b8 --- /dev/null +++ b/modules/nf-core/tabix/bgziptabix/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::tabix=1.11 diff --git a/modules/nf-core/tabix/bgziptabix/main.nf b/modules/nf-core/tabix/bgziptabix/main.nf index d6c5a760f3..f9482690ba 100644 --- a/modules/nf-core/tabix/bgziptabix/main.nf +++ b/modules/nf-core/tabix/bgziptabix/main.nf @@ -2,7 +2,7 @@ process TABIX_BGZIPTABIX { tag "$meta.id" label 'process_single' - conda "bioconda::tabix=1.11" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/tabix:1.11--hdfd78af_0' : 'biocontainers/tabix:1.11--hdfd78af_0' }" diff --git a/modules/nf-core/tabix/bgziptabix/meta.yml b/modules/nf-core/tabix/bgziptabix/meta.yml index 2761e27183..438aba4d18 100644 --- a/modules/nf-core/tabix/bgziptabix/meta.yml +++ b/modules/nf-core/tabix/bgziptabix/meta.yml @@ -48,3 +48,6 @@ output: authors: - "@maxulysse" - "@DLBPointon" +maintainers: + - "@maxulysse" + - "@DLBPointon" diff --git a/modules/nf-core/tabix/tabix/environment.yml b/modules/nf-core/tabix/tabix/environment.yml new file mode 100644 index 0000000000..fdd84057b8 --- /dev/null +++ b/modules/nf-core/tabix/tabix/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::tabix=1.11 diff --git a/modules/nf-core/tabix/tabix/main.nf b/modules/nf-core/tabix/tabix/main.nf index 5bf332ef84..c304a8a34b 100644 --- a/modules/nf-core/tabix/tabix/main.nf +++ b/modules/nf-core/tabix/tabix/main.nf @@ -2,7 +2,7 @@ process TABIX_TABIX { tag "$meta.id" label 'process_single' - conda "bioconda::tabix=1.11" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/tabix:1.11--hdfd78af_0' : 'biocontainers/tabix:1.11--hdfd78af_0' }" diff --git a/modules/nf-core/tabix/tabix/meta.yml b/modules/nf-core/tabix/tabix/meta.yml index fcc6e52463..ae5b4f439f 100644 --- a/modules/nf-core/tabix/tabix/meta.yml +++ b/modules/nf-core/tabix/tabix/meta.yml @@ -43,3 +43,7 @@ authors: - "@joseespinosa" - "@drpatelh" - "@maxulysse" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@maxulysse" diff --git a/modules/nf-core/tiddit/sv/environment.yml b/modules/nf-core/tiddit/sv/environment.yml new file mode 100644 index 0000000000..69963f7c4b --- /dev/null +++ b/modules/nf-core/tiddit/sv/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::tiddit=3.6.1 diff --git a/modules/nf-core/tiddit/sv/main.nf b/modules/nf-core/tiddit/sv/main.nf index 67a0670dbc..0f4bc7cb52 100644 --- a/modules/nf-core/tiddit/sv/main.nf +++ b/modules/nf-core/tiddit/sv/main.nf @@ -2,7 +2,7 @@ process TIDDIT_SV { tag "$meta.id" label 'process_medium' - conda "bioconda::tiddit=3.6.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/tiddit:3.6.1--py38h24c8ff8_0' : 'biocontainers/tiddit:3.6.1--py38h24c8ff8_0' }" diff --git a/modules/nf-core/tiddit/sv/meta.yml b/modules/nf-core/tiddit/sv/meta.yml index 8b41c69cf5..b13ae5cdcb 100644 --- a/modules/nf-core/tiddit/sv/meta.yml +++ b/modules/nf-core/tiddit/sv/meta.yml @@ -53,3 +53,5 @@ output: pattern: "versions.yml" authors: - "@maxulysse" +maintainers: + - "@maxulysse" diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml new file mode 100644 index 0000000000..2d52ce64ac --- /dev/null +++ b/modules/nf-core/untar/environment.yml @@ -0,0 +1,8 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - conda-forge::sed=4.7 + - conda-forge::grep=3.11 + - conda-forge::tar=1.34 diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf index 61461c3917..8a75bb957d 100644 --- a/modules/nf-core/untar/main.nf +++ b/modules/nf-core/untar/main.nf @@ -2,7 +2,7 @@ process UNTAR { tag "$archive" label 'process_single' - conda "conda-forge::sed=4.7 conda-forge::grep=3.11 conda-forge::tar=1.34" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : 'nf-core/ubuntu:20.04' }" diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index db241a6e5e..a9a2110f55 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -39,3 +39,8 @@ authors: - "@drpatelh" - "@matthdsm" - "@jfy133" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@matthdsm" + - "@jfy133" diff --git a/modules/nf-core/unzip/environment.yml b/modules/nf-core/unzip/environment.yml new file mode 100644 index 0000000000..157fe95c01 --- /dev/null +++ b/modules/nf-core/unzip/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - conda-forge::p7zip=16.02 diff --git a/modules/nf-core/unzip/main.nf b/modules/nf-core/unzip/main.nf index cf977f1dcb..08cfc3c406 100644 --- a/modules/nf-core/unzip/main.nf +++ b/modules/nf-core/unzip/main.nf @@ -2,7 +2,7 @@ process UNZIP { tag "$archive" label 'process_single' - conda "conda-forge::p7zip=16.02" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/p7zip:16.02' : 'biocontainers/p7zip:16.02' }" diff --git a/modules/nf-core/unzip/meta.yml b/modules/nf-core/unzip/meta.yml index 2910e0fd3f..e8e377e2af 100644 --- a/modules/nf-core/unzip/meta.yml +++ b/modules/nf-core/unzip/meta.yml @@ -12,7 +12,6 @@ tools: documentation: https://sourceforge.net/projects/p7zip/ tool_dev_url: https://sourceforge.net/projects/p7zip" licence: ["LGPL-2.1-or-later"] - input: - meta: type: map @@ -23,7 +22,6 @@ input: type: file description: ZIP file pattern: "*.zip" - output: - meta: type: map @@ -38,6 +36,7 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@jfy133" +maintainers: + - "@jfy133" diff --git a/modules/nf-core/vcftools/environment.yml b/modules/nf-core/vcftools/environment.yml new file mode 100644 index 0000000000..875817e21d --- /dev/null +++ b/modules/nf-core/vcftools/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::vcftools=0.1.16 diff --git a/modules/nf-core/vcftools/main.nf b/modules/nf-core/vcftools/main.nf index cf6d296281..0153a60891 100644 --- a/modules/nf-core/vcftools/main.nf +++ b/modules/nf-core/vcftools/main.nf @@ -2,7 +2,7 @@ process VCFTOOLS { tag "$meta.id" label 'process_single' - conda "bioconda::vcftools=0.1.16" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/vcftools:0.1.16--he513fc3_4' : 'biocontainers/vcftools:0.1.16--he513fc3_4' }" diff --git a/modules/nf-core/vcftools/meta.yml b/modules/nf-core/vcftools/meta.yml index 04b786f0e6..f361db4a8f 100644 --- a/modules/nf-core/vcftools/meta.yml +++ b/modules/nf-core/vcftools/meta.yml @@ -9,7 +9,6 @@ tools: homepage: http://vcftools.sourceforge.net/ documentation: http://vcftools.sourceforge.net/man_latest.html licence: ["LGPL"] - input: - meta: type: map @@ -25,7 +24,6 @@ input: - diff_variant_file: type: file description: secondary variant file which can be used with the 'diff' suite of tools (optional) - output: - meta: type: map @@ -288,6 +286,7 @@ output: type: file description: Switch errors found between sites (optional) pattern: "*.diff.switch" - authors: - "@Mark-S-Hill" +maintainers: + - "@Mark-S-Hill" diff --git a/subworkflows/nf-core/vcf_annotate_ensemblvep/meta.yml b/subworkflows/nf-core/vcf_annotate_ensemblvep/meta.yml index 7a9fd10c4e..15d42da23f 100644 --- a/subworkflows/nf-core/vcf_annotate_ensemblvep/meta.yml +++ b/subworkflows/nf-core/vcf_annotate_ensemblvep/meta.yml @@ -59,3 +59,7 @@ authors: - "@maxulysse" - "@matthdsm" - "@nvnieuwk" +maintainers: + - "@maxulysse" + - "@matthdsm" + - "@nvnieuwk" diff --git a/subworkflows/nf-core/vcf_annotate_snpeff/main.nf b/subworkflows/nf-core/vcf_annotate_snpeff/main.nf index 2a875939de..3570a5b7c0 100644 --- a/subworkflows/nf-core/vcf_annotate_snpeff/main.nf +++ b/subworkflows/nf-core/vcf_annotate_snpeff/main.nf @@ -13,6 +13,7 @@ workflow VCF_ANNOTATE_SNPEFF { main: ch_versions = Channel.empty() + SNPEFF_SNPEFF(ch_vcf, val_snpeff_db, ch_snpeff_cache) TABIX_BGZIPTABIX(SNPEFF_SNPEFF.out.vcf) diff --git a/subworkflows/nf-core/vcf_annotate_snpeff/meta.yml b/subworkflows/nf-core/vcf_annotate_snpeff/meta.yml index b3f10cae12..c8d5a635ee 100644 --- a/subworkflows/nf-core/vcf_annotate_snpeff/meta.yml +++ b/subworkflows/nf-core/vcf_annotate_snpeff/meta.yml @@ -36,3 +36,5 @@ output: Structure: [ path(versions.yml) ] authors: - "@maxulysse" +maintainers: + - "@maxulysse" From bc1b3bd9043e03e34c762862fcd10950d1f40c20 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 15:46:23 +0100 Subject: [PATCH 146/240] simpler patch for bcftools-annotate --- .../bcftools/annotate/bcftools-annotate.diff | 88 ++----------------- modules/nf-core/bcftools/annotate/main.nf | 5 +- 2 files changed, 12 insertions(+), 81 deletions(-) diff --git a/modules/nf-core/bcftools/annotate/bcftools-annotate.diff b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff index 7025cfaa26..f6bfc71856 100644 --- a/modules/nf-core/bcftools/annotate/bcftools-annotate.diff +++ b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff @@ -1,89 +1,17 @@ Changes in module 'nf-core/bcftools/annotate' --- modules/nf-core/bcftools/annotate/main.nf +++ modules/nf-core/bcftools/annotate/main.nf -@@ -5,14 +5,17 @@ - conda "bioconda::bcftools=1.17" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0': -- 'biocontainers/bcftools:1.17--haef29d1_0' }" -+ 'quay.io/biocontainers/bcftools:1.17--haef29d1_0' }" +@@ -8,7 +8,10 @@ + 'biocontainers/bcftools:1.17--haef29d1_0' }" input: - tuple val(meta), path(input), path(index), path(annotations), path(annotations_index), path(header_lines) -+ tuple val(meta), path(vcf) -+ path bcftools_annotations -+ path bcftools_annotations_index -+ path bcftools_header_lines ++ tuple val(meta), path(input) ++ path annotations ++ path annotations_index ++ path header_lines output: -- tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf -- path "versions.yml" , emit: versions -+ tuple val(meta), path("*.vcf.gz"), emit: vcf -+ path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when -@@ -20,15 +23,19 @@ - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" -- def header_file = header_lines ? "--header-lines ${header_lines}" : '' -- def annotations_file = annotations ? "--annotations ${annotations}" : '' -+ def header_file = bcftools_header_lines ? "--header-lines ${bcftools_header_lines}" : '' -+ def annotations_file = bcftools_annotations ? "--annotations ${bcftools_annotations}" : '' - def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : - args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : - args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : - args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : - "vcf" -- if ("$input" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" -+ if ("$vcf" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" - """ -+ bcftools \\ -+ index \\ -+ $vcf -+ - bcftools \\ - annotate \\ - $args \\ -@@ -36,7 +43,7 @@ - $header_file \\ - --output ${prefix}.${extension} \\ - --threads $task.cpus \\ -- $input -+ $vcf - - cat <<-END_VERSIONS > versions.yml - "${task.process}": -@@ -60,4 +67,4 @@ - bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) - END_VERSIONS - """ --} -+} ---- modules/nf-core/bcftools/annotate/meta.yml -+++ modules/nf-core/bcftools/annotate/meta.yml -@@ -26,13 +26,13 @@ - - index: - type: file - description: Index of the query VCF or BCF file -- - annotations: -+ - bcftools_annotations: - type: file - description: Bgzip-compressed file with annotations -- - annotations_index: -+ - bcftools_annotations_index: - type: file - description: Index of the annotations file -- - header_lines: -+ - bcftools_header_lines: - type: file - description: Contains lines to append to the output VCF header - -@@ -53,4 +53,4 @@ - - authors: - - "@projectoriented" -- - "@ramprasadn" -+ - "@ramprasadn" + tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf + ************************************************************ diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf index 1a9db2cb4b..66e52f205e 100644 --- a/modules/nf-core/bcftools/annotate/main.nf +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -8,7 +8,10 @@ process BCFTOOLS_ANNOTATE { 'biocontainers/bcftools:1.17--haef29d1_0' }" input: - tuple val(meta), path(input), path(index), path(annotations), path(annotations_index), path(header_lines) + tuple val(meta), path(input) + path annotations + path annotations_index + path header_lines output: tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf From 795c2a5094091a05283b07c6f24e1b9065039302 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 15:55:08 +0100 Subject: [PATCH 147/240] finish proper patching of bcftools/annotate --- .../nf-core/bcftools/annotate/bcftools-annotate.diff | 11 +++++++++++ modules/nf-core/bcftools/annotate/main.nf | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/modules/nf-core/bcftools/annotate/bcftools-annotate.diff b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff index f6bfc71856..4376af5172 100644 --- a/modules/nf-core/bcftools/annotate/bcftools-annotate.diff +++ b/modules/nf-core/bcftools/annotate/bcftools-annotate.diff @@ -13,5 +13,16 @@ Changes in module 'nf-core/bcftools/annotate' output: tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf +@@ -29,6 +32,10 @@ + "vcf" + if ("$input" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + """ ++ bcftools \\ ++ index \\ ++ $input ++ + bcftools \\ + annotate \\ + $args \\ ************************************************************ diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf index 66e52f205e..f00c5fe2d7 100644 --- a/modules/nf-core/bcftools/annotate/main.nf +++ b/modules/nf-core/bcftools/annotate/main.nf @@ -32,6 +32,10 @@ process BCFTOOLS_ANNOTATE { "vcf" if ("$input" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!" """ + bcftools \\ + index \\ + $input + bcftools \\ annotate \\ $args \\ From 49b55bd86b8c9815a8cd948b58ba4b865d76c1a8 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 16:01:51 +0100 Subject: [PATCH 148/240] restore patch for controlfreec/assesssignificance --- .../controlfreec-assesssignificance.diff | 16 +++++++++++----- .../assesssignificance/environment.yml | 2 +- .../controlfreec/assesssignificance/main.nf | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/controlfreec/assesssignificance/controlfreec-assesssignificance.diff b/modules/nf-core/controlfreec/assesssignificance/controlfreec-assesssignificance.diff index a80891d309..c8ace426e4 100644 --- a/modules/nf-core/controlfreec/assesssignificance/controlfreec-assesssignificance.diff +++ b/modules/nf-core/controlfreec/assesssignificance/controlfreec-assesssignificance.diff @@ -1,12 +1,9 @@ Changes in module 'nf-core/controlfreec/assesssignificance' --- modules/nf-core/controlfreec/assesssignificance/main.nf +++ modules/nf-core/controlfreec/assesssignificance/main.nf -@@ -2,10 +2,10 @@ - tag "$meta.id" - label 'process_low' +@@ -4,8 +4,8 @@ -- conda "bioconda::control-freec=11.6b" -+ conda "bioconda::control-freec=11.6" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : - 'biocontainers/control-freec:11.6b--hdbdd923_0' }" @@ -16,4 +13,13 @@ Changes in module 'nf-core/controlfreec/assesssignificance' input: tuple val(meta), path(cnvs), path(ratio) +--- modules/nf-core/controlfreec/assesssignificance/environment.yml ++++ modules/nf-core/controlfreec/assesssignificance/environment.yml +@@ -3,4 +3,4 @@ + - bioconda + - defaults + dependencies: +- - bioconda::control-freec=11.6b ++ - bioconda::control-freec=11.6 + ************************************************************ diff --git a/modules/nf-core/controlfreec/assesssignificance/environment.yml b/modules/nf-core/controlfreec/assesssignificance/environment.yml index 83094f46ca..f1047dbbbb 100644 --- a/modules/nf-core/controlfreec/assesssignificance/environment.yml +++ b/modules/nf-core/controlfreec/assesssignificance/environment.yml @@ -3,4 +3,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::control-freec=11.6b + - bioconda::control-freec=11.6 diff --git a/modules/nf-core/controlfreec/assesssignificance/main.nf b/modules/nf-core/controlfreec/assesssignificance/main.nf index c842168fde..4be70b176d 100644 --- a/modules/nf-core/controlfreec/assesssignificance/main.nf +++ b/modules/nf-core/controlfreec/assesssignificance/main.nf @@ -4,8 +4,8 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/control-freec:11.6b--hdbdd923_0' : - 'biocontainers/control-freec:11.6b--hdbdd923_0' }" + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1' : + 'biocontainers/control-freec:11.6--h1b792b2_1' }" input: tuple val(meta), path(cnvs), path(ratio) From b7b07200cd9a40177054aab342f654adc6e33c5e Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 16:10:44 +0100 Subject: [PATCH 149/240] restore patch for dragmap/hashtable --- .../dragmap/hashtable/dragmap-hashtable.diff | 16 +++++++++++----- .../nf-core/dragmap/hashtable/environment.yml | 2 +- modules/nf-core/dragmap/hashtable/main.nf | 4 ++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/nf-core/dragmap/hashtable/dragmap-hashtable.diff b/modules/nf-core/dragmap/hashtable/dragmap-hashtable.diff index 069f133e61..aeb9694244 100644 --- a/modules/nf-core/dragmap/hashtable/dragmap-hashtable.diff +++ b/modules/nf-core/dragmap/hashtable/dragmap-hashtable.diff @@ -1,12 +1,9 @@ Changes in module 'nf-core/dragmap/hashtable' --- modules/nf-core/dragmap/hashtable/main.nf +++ modules/nf-core/dragmap/hashtable/main.nf -@@ -2,10 +2,10 @@ - tag "$fasta" - label 'process_high' +@@ -4,8 +4,8 @@ -- conda "bioconda::dragmap=1.3.0" -+ conda "bioconda::dragmap=1.2.1" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dragmap:1.3.0--h72d16da_1': - 'biocontainers/dragmap:1.3.0--h72d16da_1' }" @@ -16,4 +13,13 @@ Changes in module 'nf-core/dragmap/hashtable' input: tuple val(meta), path(fasta) +--- modules/nf-core/dragmap/hashtable/environment.yml ++++ modules/nf-core/dragmap/hashtable/environment.yml +@@ -3,4 +3,4 @@ + - bioconda + - defaults + dependencies: +- - bioconda::dragmap=1.3.0 ++ - bioconda::dragmap=1.2.1 + ************************************************************ diff --git a/modules/nf-core/dragmap/hashtable/environment.yml b/modules/nf-core/dragmap/hashtable/environment.yml index 5f6c5f1bdb..c8e351255f 100644 --- a/modules/nf-core/dragmap/hashtable/environment.yml +++ b/modules/nf-core/dragmap/hashtable/environment.yml @@ -3,4 +3,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::dragmap=1.3.0 + - bioconda::dragmap=1.2.1 diff --git a/modules/nf-core/dragmap/hashtable/main.nf b/modules/nf-core/dragmap/hashtable/main.nf index 8261af1cd0..604052f33f 100644 --- a/modules/nf-core/dragmap/hashtable/main.nf +++ b/modules/nf-core/dragmap/hashtable/main.nf @@ -4,8 +4,8 @@ process DRAGMAP_HASHTABLE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dragmap:1.3.0--h72d16da_1': - 'biocontainers/dragmap:1.3.0--h72d16da_1' }" + 'https://depot.galaxyproject.org/singularity/dragmap:1.2.1--h72d16da_1': + 'biocontainers/dragmap:1.2.1--h72d16da_1' }" input: tuple val(meta), path(fasta) From 7bae363992979cf1c289ec76675df20d8c29e283 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 16:13:51 +0100 Subject: [PATCH 150/240] update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6007bc48c9..f169f5d61d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1278](https://github.com/nf-core/sarek/pull/1278) - Hide sentieon parameters similar to other variant callers - [#1280](https://github.com/nf-core/sarek/pull/1280) - Replacing link to `SentieonDNAscopeModel1.1.model` in Sentieon's S3 with link to same file in igenomes' S3 - [#1303](https://github.com/nf-core/sarek/pull/1303) - Ressurect vep_version params and changed its scope to pipeline to enable usage for vep loftee plugin +- [#1304](https://github.com/nf-core/sarek/pull/1304) - Update modules ### Fixed @@ -35,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | Dependency | Old version | New version | | ---------- | ----------- | ----------- | +| fastqc | 0.11.9 | 0.12.1 | ## [3.3.2](https://github.com/nf-core/sarek/releases/tag/3.3.2) - Ráhpajávvre From 994a84a7f6dcb6da951479799961ab3f9064ed99 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 18:20:34 +0100 Subject: [PATCH 151/240] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f169f5d61d..dc344f90e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | Dependency | Old version | New version | | ---------- | ----------- | ----------- | | fastqc | 0.11.9 | 0.12.1 | +| multiqc | 1.15 | 1.17 | ## [3.3.2](https://github.com/nf-core/sarek/releases/tag/3.3.2) - Ráhpajávvre From 102144544070eb6ca8cbfdcc2554269e0e351012 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 18:36:31 +0100 Subject: [PATCH 152/240] fix bcfann tests --- conf/modules/annotate.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules/annotate.config b/conf/modules/annotate.config index 7356645add..87ca891277 100644 --- a/conf/modules/annotate.config +++ b/conf/modules/annotate.config @@ -64,7 +64,7 @@ process { 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' - ext.prefix = { "${vcf.baseName.minus(".vcf")}_BCF.ann" } + ext.prefix = { input.baseName - ".vcf" + "_BCF.ann" } publishDir = [ mode: params.publish_dir_mode, path: { "${params.outdir}/annotation/${meta.variantcaller}/${meta.id}/" }, From c00d6305ee19925b81267acfb741f1b66e374180 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 19:02:40 +0100 Subject: [PATCH 153/240] fix channels for bcftools/mpileup --- subworkflows/local/bam_variant_calling_mpileup/main.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_mpileup/main.nf b/subworkflows/local/bam_variant_calling_mpileup/main.nf index 412ba38619..663ed6a0bc 100644 --- a/subworkflows/local/bam_variant_calling_mpileup/main.nf +++ b/subworkflows/local/bam_variant_calling_mpileup/main.nf @@ -4,10 +4,10 @@ // For all modules here: // A when clause condition is defined in the conf/modules.config to determine if the module should be run -include { CAT_CAT as CAT_MPILEUP } from '../../../modules/nf-core/cat/cat/main' -include { BCFTOOLS_MPILEUP } from '../../../modules/nf-core/bcftools/mpileup/main' -include { SAMTOOLS_MPILEUP } from '../../../modules/nf-core/samtools/mpileup/main' -include { GATK4_MERGEVCFS as MERGE_BCFTOOLS_MPILEUP } from '../../../modules/nf-core/gatk4/mergevcfs/main' +include { BCFTOOLS_MPILEUP } from '../../../modules/nf-core/bcftools/mpileup/main' +include { CAT_CAT as CAT_MPILEUP } from '../../../modules/nf-core/cat/cat/main' +include { GATK4_MERGEVCFS as MERGE_BCFTOOLS_MPILEUP } from '../../../modules/nf-core/gatk4/mergevcfs/main' +include { SAMTOOLS_MPILEUP } from '../../../modules/nf-core/samtools/mpileup/main' workflow BAM_VARIANT_CALLING_MPILEUP { take: @@ -26,7 +26,7 @@ workflow BAM_VARIANT_CALLING_MPILEUP { // Run, if --tools mpileup keep_bcftools_mpileup = false - BCFTOOLS_MPILEUP(cram_intervals, fasta, keep_bcftools_mpileup) + BCFTOOLS_MPILEUP(cram_intervals, fasta.map{ it -> [[id:it[0].baseName], it] }, keep_bcftools_mpileup) //Only run, if --tools ControlFreec SAMTOOLS_MPILEUP(cram_intervals, fasta) From 78f311a43fcd2904d6ddd2c18f8f4f439ea442e0 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 19:42:32 +0100 Subject: [PATCH 154/240] fix channels for cnvkit/batch --- subworkflows/local/bam_variant_calling_cnvkit/main.nf | 10 +++++----- .../local/bam_variant_calling_germline_all/main.nf | 8 ++++---- .../local/bam_variant_calling_somatic_all/main.nf | 8 ++++---- .../local/bam_variant_calling_tumor_only_all/main.nf | 8 ++++---- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_cnvkit/main.nf b/subworkflows/local/bam_variant_calling_cnvkit/main.nf index c6b93d33c9..161c2dc21a 100644 --- a/subworkflows/local/bam_variant_calling_cnvkit/main.nf +++ b/subworkflows/local/bam_variant_calling_cnvkit/main.nf @@ -9,11 +9,11 @@ include { CNVKIT_GENEMETRICS } from '../../../modules/nf-core/cnvkit/genemetrics workflow BAM_VARIANT_CALLING_CNVKIT { take: - cram // channel: [mandatory] cram - fasta // channel: [mandatory] fasta - fasta_fai // channel: [optional] fasta_fai - targets // channel: [mandatory] bed - reference // channel: [] cnn + cram // channel: [mandatory] meta, cram + fasta // channel: [mandatory] meta, fasta + fasta_fai // channel: [optional] meta, fasta_fai + targets // channel: [mandatory] meta, bed + reference // channel: [optional] meta, cnn main: versions = Channel.empty() diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index 5989023adf..d78a2d1c1d 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -83,10 +83,10 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { BAM_VARIANT_CALLING_CNVKIT( // Remap channel to match module/subworkflow cram.map{ meta, cram, crai -> [ meta, [], cram ] }, - fasta, - fasta_fai, - intervals_bed_combined, - [] + fasta.map{ it -> [[id:it[0].baseName], it] }, + fasta_fai.map{ it -> [[id:it[0].baseName], it] }, + intervals_bed_combined.map{ it -> [[id:it[0].baseName], it] }, + [[id:"null"], []] ) versions = versions.mix(BAM_VARIANT_CALLING_CNVKIT.out.versions) } diff --git a/subworkflows/local/bam_variant_calling_somatic_all/main.nf b/subworkflows/local/bam_variant_calling_somatic_all/main.nf index af2b8c1e2f..024f13f53f 100644 --- a/subworkflows/local/bam_variant_calling_somatic_all/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_all/main.nf @@ -118,10 +118,10 @@ workflow BAM_VARIANT_CALLING_SOMATIC_ALL { BAM_VARIANT_CALLING_CNVKIT( // Remap channel to match module/subworkflow cram.map{ meta, normal_cram, normal_crai, tumor_cram, tumor_crai -> [ meta, tumor_cram, normal_cram ] }, - fasta, - fasta_fai, - intervals_bed_combined, - [] + fasta.map{ it -> [[id:it[0].baseName], it] }, + fasta_fai.map{ it -> [[id:it[0].baseName], it] }, + intervals_bed_combined.map{ it -> [[id:it[0].baseName], it] }, + [[id:"null"], []] ) versions = versions.mix(BAM_VARIANT_CALLING_CNVKIT.out.versions) diff --git a/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf b/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf index d92b263b8a..8bd1ccfbba 100644 --- a/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf +++ b/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf @@ -85,10 +85,10 @@ workflow BAM_VARIANT_CALLING_TUMOR_ONLY_ALL { BAM_VARIANT_CALLING_CNVKIT ( // Remap channel to match module/subworkflow cram.map{ meta, cram, crai -> [ meta, cram, [] ] }, - fasta, - fasta_fai, - [], - cnvkit_reference + fasta.map{ it -> [[id:it[0].baseName], it] }, + fasta_fai.map{ it -> [[id:it[0].baseName], it] }, + [[id:"null"], []], + cnvkit_reference.map{ it -> [[id:it[0].baseName], it] } ) versions = versions.mix(BAM_VARIANT_CALLING_CNVKIT.out.versions) From 2f0747a9c1535303080ca3e67970adee13659d3b Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 20:08:36 +0100 Subject: [PATCH 155/240] fix channels for manta --- .../local/bam_variant_calling_germline_all/main.nf | 4 ++-- .../local/bam_variant_calling_germline_manta/main.nf | 6 +++--- subworkflows/local/bam_variant_calling_somatic_all/main.nf | 4 ++-- .../local/bam_variant_calling_somatic_manta/main.nf | 6 +++--- .../local/bam_variant_calling_tumor_only_all/main.nf | 5 ++--- .../local/bam_variant_calling_tumor_only_manta/main.nf | 7 +++---- 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index d78a2d1c1d..243b4d96c2 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -181,8 +181,8 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { if (tools.split(',').contains('manta')) { BAM_VARIANT_CALLING_GERMLINE_MANTA ( cram, - fasta, - fasta_fai, + fasta.map{ it -> [ [ id:'fasta' ], it ] }, + fasta_fai.map{ it -> [ [ id:'fasta_fai' ], it ] }, intervals_bed_gz_tbi_combined ) diff --git a/subworkflows/local/bam_variant_calling_germline_manta/main.nf b/subworkflows/local/bam_variant_calling_germline_manta/main.nf index 36cb957d6f..d27a999a68 100644 --- a/subworkflows/local/bam_variant_calling_germline_manta/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_manta/main.nf @@ -10,8 +10,8 @@ include { MANTA_GERMLINE } from '../../../modules/nf-core/manta/germline/main' workflow BAM_VARIANT_CALLING_GERMLINE_MANTA { take: cram // channel: [mandatory] [ meta, cram, crai ] - fasta // channel: [mandatory] [ fasta ] - fasta_fai // channel: [mandatory] [ fasta_fai ] + fasta // channel: [mandatory] [ meta, fasta ] + fasta_fai // channel: [mandatory] [ meta, fasta_fai ] intervals // channel: [mandatory] [ interval.bed.gz, interval.bed.gz.tbi] or [ [], []] if no intervals; intervals file contains all intervals main: @@ -25,7 +25,7 @@ workflow BAM_VARIANT_CALLING_GERMLINE_MANTA { [it[0], it[1], it[2], bed_gz, bed_tbi] } - MANTA_GERMLINE(cram_intervals, fasta.map{ fasta -> [ [ id:fasta.baseName ], fasta ] }, fasta_fai.map{ fasta_fai -> [ [ id:fasta_fai.baseName ], fasta_fai ] }) + MANTA_GERMLINE(cram_intervals, fasta, fasta_fai, []) small_indels_vcf = MANTA_GERMLINE.out.candidate_small_indels_vcf sv_vcf = MANTA_GERMLINE.out.candidate_sv_vcf diff --git a/subworkflows/local/bam_variant_calling_somatic_all/main.nf b/subworkflows/local/bam_variant_calling_somatic_all/main.nf index 024f13f53f..f561ea420c 100644 --- a/subworkflows/local/bam_variant_calling_somatic_all/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_all/main.nf @@ -145,8 +145,8 @@ workflow BAM_VARIANT_CALLING_SOMATIC_ALL { if (tools.split(',').contains('manta')) { BAM_VARIANT_CALLING_SOMATIC_MANTA( cram, - fasta, - fasta_fai, + fasta.map{ it -> [ [ id:'fasta' ], it ] }, + fasta_fai.map{ it -> [ [ id:'fasta_fai' ], it ] }, intervals_bed_gz_tbi_combined ) diff --git a/subworkflows/local/bam_variant_calling_somatic_manta/main.nf b/subworkflows/local/bam_variant_calling_somatic_manta/main.nf index 7eb5e6687d..f6720c5406 100644 --- a/subworkflows/local/bam_variant_calling_somatic_manta/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_manta/main.nf @@ -9,8 +9,8 @@ include { MANTA_SOMATIC } from '../../../modules/nf-core/manta/somatic/main' workflow BAM_VARIANT_CALLING_SOMATIC_MANTA { take: cram // channel: [mandatory] [ meta, cram1, crai1, cram2, crai2 ] - fasta // channel: [mandatory] [ fasta ] - fasta_fai // channel: [mandatory] [ fasta_fai ] + fasta // channel: [mandatory] [ meta, fasta ] + fasta_fai // channel: [mandatory] [ meta, fasta_fai ] intervals // channel: [mandatory] [ interval.bed.gz, interval.bed.gz.tbi ] or [ [], [] ] if no intervals main: @@ -24,7 +24,7 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MANTA { [it[0], it[1], it[2], it[3], it[4], bed_gz, bed_tbi] } - MANTA_SOMATIC(cram_intervals, fasta, fasta_fai) + MANTA_SOMATIC(cram_intervals, fasta, fasta_fai, []) candidate_small_indels_vcf = MANTA_SOMATIC.out.candidate_small_indels_vcf candidate_small_indels_vcf_tbi = MANTA_SOMATIC.out.candidate_small_indels_vcf_tbi diff --git a/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf b/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf index 8bd1ccfbba..31d968a245 100644 --- a/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf +++ b/subworkflows/local/bam_variant_calling_tumor_only_all/main.nf @@ -141,9 +141,8 @@ workflow BAM_VARIANT_CALLING_TUMOR_ONLY_ALL { BAM_VARIANT_CALLING_TUMOR_ONLY_MANTA( cram, // Remap channel to match module/subworkflow - dict.map{ it -> [ [ id:'dict' ], it ] }, - fasta, - fasta_fai, + fasta.map{ it -> [ [ id:'fasta' ], it ] }, + fasta_fai.map{ it -> [ [ id:'fasta_fai' ], it ] }, intervals_bed_gz_tbi_combined ) diff --git a/subworkflows/local/bam_variant_calling_tumor_only_manta/main.nf b/subworkflows/local/bam_variant_calling_tumor_only_manta/main.nf index 10045c7356..38f5d4366c 100644 --- a/subworkflows/local/bam_variant_calling_tumor_only_manta/main.nf +++ b/subworkflows/local/bam_variant_calling_tumor_only_manta/main.nf @@ -10,9 +10,8 @@ include { MANTA_TUMORONLY } from '../../../modules/nf-core/manta/tumoronly/main' workflow BAM_VARIANT_CALLING_TUMOR_ONLY_MANTA { take: cram // channel: [mandatory] [ meta, cram, crai ] - dict // channel: [optional] [ meta, dict ] - fasta // channel: [mandatory] [ fasta ] - fasta_fai // channel: [mandatory] [ fasta_fai ] + fasta // channel: [mandatory] [ meta, fasta ] + fasta_fai // channel: [mandatory] [ meta, fasta_fai ] intervals // channel: [mandatory] [ interval.bed.gz, interval.bed.gz.tbi ] or [ [], [] ] if no intervals main: @@ -26,7 +25,7 @@ workflow BAM_VARIANT_CALLING_TUMOR_ONLY_MANTA { [it[0], it[1], it[2], bed_gz, bed_tbi] } - MANTA_TUMORONLY(cram_intervals, fasta, fasta_fai) + MANTA_TUMORONLY(cram_intervals, fasta, fasta_fai, []) small_indels_vcf = MANTA_TUMORONLY.out.candidate_small_indels_vcf candidate_sv_vcf = MANTA_TUMORONLY.out.candidate_sv_vcf From cccc364f0a22551f2c0706522106263f90a72645 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 20:20:27 +0100 Subject: [PATCH 156/240] if the vcf.gz changes on rerun, pretty sure the vcf.gz.tbi does the same --- tests/test_annotation_bcfann.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_annotation_bcfann.yml b/tests/test_annotation_bcfann.yml index 78ec274431..593430b15f 100644 --- a/tests/test_annotation_bcfann.yml +++ b/tests/test_annotation_bcfann.yml @@ -7,4 +7,4 @@ - path: results/annotation/test/test_BCF.ann.vcf.gz # binary changes md5sums on reruns - path: results/annotation/test/test_BCF.ann.vcf.gz.tbi - md5sum: 2b6be791a106e60539892ddfc03eb47f + # binary changes md5sums on reruns From 6cf72f4af885e297018c4ad40a1a0c52da7b3aac Mon Sep 17 00:00:00 2001 From: maxulysse Date: Wed, 1 Nov 2023 20:21:55 +0100 Subject: [PATCH 157/240] no need for --download_cache here --- tests/test_annotation_bcfann.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_annotation_bcfann.yml b/tests/test_annotation_bcfann.yml index 593430b15f..93fa668c3d 100644 --- a/tests/test_annotation_bcfann.yml +++ b/tests/test_annotation_bcfann.yml @@ -1,5 +1,5 @@ - name: Run bcfann - command: nextflow run main.nf -profile test,test_cache,annotation --tools bcfann --outdir results --download_cache + command: nextflow run main.nf -profile test,test_cache,annotation --tools bcfann --outdir results tags: - annotation - bcfann From a60b74489d30f512fb461f9d005292eb9c02546f Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 2 Nov 2023 16:24:53 +0100 Subject: [PATCH 158/240] update gatk4spark modules and subworkflows --- conf/modules/prepare_recalibration.config | 2 +- conf/modules/recalibrate.config | 2 +- modules.json | 30 +++++++++---------- .../applybqsr}/environment.yml | 3 +- .../applybqsr}/main.nf | 6 ++-- .../applybqsr}/meta.yml | 5 ++-- .../baserecalibrator}/environment.yml | 3 +- .../baserecalibrator}/main.nf | 6 ++-- .../baserecalibrator}/meta.yml | 5 ++-- .../markduplicates}/environment.yml | 3 +- .../markduplicates}/main.nf | 6 ++-- .../markduplicates}/meta.yml | 5 ++-- .../local/bam_applybqsr_spark/main.nf | 8 ++--- .../local/bam_baserecalibrator_spark/main.nf | 10 +++---- .../local/bam_markduplicates_spark/main.nf | 16 +++++----- 15 files changed, 55 insertions(+), 55 deletions(-) rename modules/nf-core/{gatk4/applybqsrspark => gatk4spark/applybqsr}/environment.yml (51%) rename modules/nf-core/{gatk4/applybqsrspark => gatk4spark/applybqsr}/main.nf (83%) rename modules/nf-core/{gatk4/applybqsrspark => gatk4spark/applybqsr}/meta.yml (97%) rename modules/nf-core/{gatk4/markduplicatesspark => gatk4spark/baserecalibrator}/environment.yml (51%) rename modules/nf-core/{gatk4/baserecalibratorspark => gatk4spark/baserecalibrator}/main.nf (83%) rename modules/nf-core/{gatk4/baserecalibratorspark => gatk4spark/baserecalibrator}/meta.yml (97%) rename modules/nf-core/{gatk4/baserecalibratorspark => gatk4spark/markduplicates}/environment.yml (51%) rename modules/nf-core/{gatk4/markduplicatesspark => gatk4spark/markduplicates}/main.nf (83%) rename modules/nf-core/{gatk4/markduplicatesspark => gatk4spark/markduplicates}/meta.yml (97%) diff --git a/conf/modules/prepare_recalibration.config b/conf/modules/prepare_recalibration.config index cb394f0a2f..915075d5b4 100644 --- a/conf/modules/prepare_recalibration.config +++ b/conf/modules/prepare_recalibration.config @@ -15,7 +15,7 @@ process { - withName: 'GATK4_BASERECALIBRATOR|GATK4_BASERECALIBRATOR_SPARK' { + withName: 'GATK4_BASERECALIBRATOR|GATK4SPARK_BASERECALIBRATOR' { ext.prefix = { meta.num_intervals <= 1 ? "${meta.id}.recal" : "${meta.id}_${intervals.simpleName}.recal" } publishDir = [ mode: params.publish_dir_mode, diff --git a/conf/modules/recalibrate.config b/conf/modules/recalibrate.config index 9602e33caf..c46a1bb82b 100644 --- a/conf/modules/recalibrate.config +++ b/conf/modules/recalibrate.config @@ -15,7 +15,7 @@ process { - withName: 'GATK4_APPLYBQSR|GATK4_APPLYBQSR_SPARK' { + withName: 'GATK4_APPLYBQSR|GATK4SPARK_APPLYBQSR' { ext.prefix = { meta.num_intervals <= 1 ? "${meta.id}.recal" : "${meta.id}_${intervals.simpleName}.recal" } publishDir = [ enabled: !params.save_output_as_bam, diff --git a/modules.json b/modules.json index b8ee4e5685..1b5a25a36b 100644 --- a/modules.json +++ b/modules.json @@ -179,11 +179,6 @@ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, - "gatk4/applybqsrspark": { - "branch": "master", - "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", - "installed_by": ["modules"] - }, "gatk4/applyvqsr": { "branch": "master", "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", @@ -194,11 +189,6 @@ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, - "gatk4/baserecalibratorspark": { - "branch": "master", - "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", - "installed_by": ["modules"] - }, "gatk4/calculatecontamination": { "branch": "master", "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", @@ -274,11 +264,6 @@ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, - "gatk4/markduplicatesspark": { - "branch": "master", - "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", - "installed_by": ["modules"] - }, "gatk4/mergemutectstats": { "branch": "master", "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", @@ -299,6 +284,21 @@ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", "installed_by": ["modules"] }, + "gatk4spark/applybqsr": { + "branch": "master", + "git_sha": "c3aaaa6696c4baed36e13210f4ba772bda2e7c1a", + "installed_by": ["modules"] + }, + "gatk4spark/baserecalibrator": { + "branch": "master", + "git_sha": "c3aaaa6696c4baed36e13210f4ba772bda2e7c1a", + "installed_by": ["modules"] + }, + "gatk4spark/markduplicates": { + "branch": "master", + "git_sha": "c3aaaa6696c4baed36e13210f4ba772bda2e7c1a", + "installed_by": ["modules"] + }, "manta/germline": { "branch": "master", "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", diff --git a/modules/nf-core/gatk4/applybqsrspark/environment.yml b/modules/nf-core/gatk4spark/applybqsr/environment.yml similarity index 51% rename from modules/nf-core/gatk4/applybqsrspark/environment.yml rename to modules/nf-core/gatk4spark/applybqsr/environment.yml index 916a9bb52b..821728a662 100644 --- a/modules/nf-core/gatk4/applybqsrspark/environment.yml +++ b/modules/nf-core/gatk4spark/applybqsr/environment.yml @@ -3,5 +3,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::gatk4=4.3.0.0 - - conda-forge::openjdk=8.0.312 + - bioconda::gatk4-spark=4.4.0.0 diff --git a/modules/nf-core/gatk4/applybqsrspark/main.nf b/modules/nf-core/gatk4spark/applybqsr/main.nf similarity index 83% rename from modules/nf-core/gatk4/applybqsrspark/main.nf rename to modules/nf-core/gatk4spark/applybqsr/main.nf index b4420b2c17..170dbeeafd 100644 --- a/modules/nf-core/gatk4/applybqsrspark/main.nf +++ b/modules/nf-core/gatk4spark/applybqsr/main.nf @@ -1,9 +1,11 @@ -process GATK4_APPLYBQSR_SPARK { +process GATK4SPARK_APPLYBQSR { tag "$meta.id" label 'process_low' conda "${moduleDir}/environment.yml" - container "nf-core/gatk:4.4.0.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4-spark:4.4.0.0--hdfd78af_0': + 'biocontainers/gatk4-spark:4.4.0.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(bqsr_table), path(intervals) diff --git a/modules/nf-core/gatk4/applybqsrspark/meta.yml b/modules/nf-core/gatk4spark/applybqsr/meta.yml similarity index 97% rename from modules/nf-core/gatk4/applybqsrspark/meta.yml rename to modules/nf-core/gatk4spark/applybqsr/meta.yml index b034a0f165..4904568d2e 100644 --- a/modules/nf-core/gatk4/applybqsrspark/meta.yml +++ b/modules/nf-core/gatk4spark/applybqsr/meta.yml @@ -1,12 +1,11 @@ -name: gatk4_applybqsr_spark +name: gatk4spark_applybqsr description: Apply base quality score recalibration (BQSR) to a bam file keywords: - bam - base quality score recalibration - bqsr - cram - - gatk4 - - spark + - gatk4spark tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/markduplicatesspark/environment.yml b/modules/nf-core/gatk4spark/baserecalibrator/environment.yml similarity index 51% rename from modules/nf-core/gatk4/markduplicatesspark/environment.yml rename to modules/nf-core/gatk4spark/baserecalibrator/environment.yml index 9d00c0e3e7..821728a662 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/environment.yml +++ b/modules/nf-core/gatk4spark/baserecalibrator/environment.yml @@ -3,5 +3,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::gatk4=4.4.0.0 - - conda-forge::openjdk=8.0.312 + - bioconda::gatk4-spark=4.4.0.0 diff --git a/modules/nf-core/gatk4/baserecalibratorspark/main.nf b/modules/nf-core/gatk4spark/baserecalibrator/main.nf similarity index 83% rename from modules/nf-core/gatk4/baserecalibratorspark/main.nf rename to modules/nf-core/gatk4spark/baserecalibrator/main.nf index 5dbc6528b6..ee44bf7d66 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/main.nf +++ b/modules/nf-core/gatk4spark/baserecalibrator/main.nf @@ -1,9 +1,11 @@ -process GATK4_BASERECALIBRATOR_SPARK { +process GATK4SPARK_BASERECALIBRATOR { tag "$meta.id" label 'process_low' conda "${moduleDir}/environment.yml" - container "nf-core/gatk:4.4.0.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4-spark:4.4.0.0--hdfd78af_0': + 'biocontainers/gatk4-spark:4.4.0.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml b/modules/nf-core/gatk4spark/baserecalibrator/meta.yml similarity index 97% rename from modules/nf-core/gatk4/baserecalibratorspark/meta.yml rename to modules/nf-core/gatk4spark/baserecalibrator/meta.yml index c96faeb6df..dd334a225f 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/meta.yml +++ b/modules/nf-core/gatk4spark/baserecalibrator/meta.yml @@ -1,12 +1,11 @@ -name: gatk4_baserecalibrator_spark +name: gatk4spark_baserecalibrator description: Generate recalibration table for Base Quality Score Recalibration (BQSR) keywords: - base quality score recalibration - table - bqsr - - gatk4 + - gatk4spark - sort - - spark tools: - gatk4: description: | diff --git a/modules/nf-core/gatk4/baserecalibratorspark/environment.yml b/modules/nf-core/gatk4spark/markduplicates/environment.yml similarity index 51% rename from modules/nf-core/gatk4/baserecalibratorspark/environment.yml rename to modules/nf-core/gatk4spark/markduplicates/environment.yml index 9d00c0e3e7..821728a662 100644 --- a/modules/nf-core/gatk4/baserecalibratorspark/environment.yml +++ b/modules/nf-core/gatk4spark/markduplicates/environment.yml @@ -3,5 +3,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::gatk4=4.4.0.0 - - conda-forge::openjdk=8.0.312 + - bioconda::gatk4-spark=4.4.0.0 diff --git a/modules/nf-core/gatk4/markduplicatesspark/main.nf b/modules/nf-core/gatk4spark/markduplicates/main.nf similarity index 83% rename from modules/nf-core/gatk4/markduplicatesspark/main.nf rename to modules/nf-core/gatk4spark/markduplicates/main.nf index c3c9ba5609..61e295c839 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/main.nf +++ b/modules/nf-core/gatk4spark/markduplicates/main.nf @@ -1,9 +1,11 @@ -process GATK4_MARKDUPLICATES_SPARK { +process GATK4SPARK_MARKDUPLICATES { tag "$meta.id" label 'process_high' conda "${moduleDir}/environment.yml" - container "nf-core/gatk:4.4.0.0" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4-spark:4.4.0.0--hdfd78af_0': + 'biocontainers/gatk4-spark:4.4.0.0--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/nf-core/gatk4/markduplicatesspark/meta.yml b/modules/nf-core/gatk4spark/markduplicates/meta.yml similarity index 97% rename from modules/nf-core/gatk4/markduplicatesspark/meta.yml rename to modules/nf-core/gatk4spark/markduplicates/meta.yml index 1e783ed7fd..016a215b25 100644 --- a/modules/nf-core/gatk4/markduplicatesspark/meta.yml +++ b/modules/nf-core/gatk4spark/markduplicates/meta.yml @@ -1,11 +1,10 @@ -name: gatk4_markduplicates_spark +name: gatk4spark_markduplicates description: This tool locates and tags duplicate reads in a BAM or SAM file, where duplicate reads are defined as originating from a single fragment of DNA. keywords: - bam - - gatk4 + - gatk4spark - markduplicates - sort - - spark tools: - gatk4: description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. diff --git a/subworkflows/local/bam_applybqsr_spark/main.nf b/subworkflows/local/bam_applybqsr_spark/main.nf index 99a63e0976..ae805141f3 100644 --- a/subworkflows/local/bam_applybqsr_spark/main.nf +++ b/subworkflows/local/bam_applybqsr_spark/main.nf @@ -4,7 +4,7 @@ // For all modules here: // A when clause condition is defined in the conf/modules.config to determine if the module should be run -include { GATK4_APPLYBQSR_SPARK } from '../../../modules/nf-core/gatk4/applybqsrspark/main' +include { GATK4SPARK_APPLYBQSR } from '../../../modules/nf-core/gatk4spark/applybqsrs/main' include { CRAM_MERGE_INDEX_SAMTOOLS } from '../cram_merge_index_samtools/main' workflow BAM_APPLYBQSR_SPARK { @@ -24,10 +24,10 @@ workflow BAM_APPLYBQSR_SPARK { .map{ meta, cram, crai, recal, intervals, num_intervals -> [ meta + [ num_intervals:num_intervals ], cram, crai, recal, intervals ] } // RUN APPLYBQSR SPARK - GATK4_APPLYBQSR_SPARK(cram_intervals, fasta, fasta_fai, dict.map{ meta, it -> [ it ] }) + GATK4SPARK_APPLYBQSR(cram_intervals, fasta, fasta_fai, dict.map{ meta, it -> [ it ] }) // Gather the recalibrated cram files - cram_to_merge = GATK4_APPLYBQSR_SPARK.out.cram.map{ meta, cram -> [ groupKey(meta, meta.num_intervals), cram ] }.groupTuple() + cram_to_merge = GATK4SPARK_APPLYBQSR.out.cram.map{ meta, cram -> [ groupKey(meta, meta.num_intervals), cram ] }.groupTuple() // Merge and index the recalibrated cram files CRAM_MERGE_INDEX_SAMTOOLS(cram_to_merge, fasta, fasta_fai) @@ -37,7 +37,7 @@ workflow BAM_APPLYBQSR_SPARK { .map{ meta, cram, crai -> [ meta - meta.subMap('num_intervals'), cram, crai ] } // Gather versions of all tools used - versions = versions.mix(GATK4_APPLYBQSR_SPARK.out.versions) + versions = versions.mix(GATK4SPARK_APPLYBQSR.out.versions) versions = versions.mix(CRAM_MERGE_INDEX_SAMTOOLS.out.versions) emit: diff --git a/subworkflows/local/bam_baserecalibrator_spark/main.nf b/subworkflows/local/bam_baserecalibrator_spark/main.nf index 04bb491b4c..d6e12c39e0 100644 --- a/subworkflows/local/bam_baserecalibrator_spark/main.nf +++ b/subworkflows/local/bam_baserecalibrator_spark/main.nf @@ -4,8 +4,8 @@ // For all modules here: // A when clause condition is defined in the conf/modules.config to determine if the module should be run -include { GATK4_BASERECALIBRATOR_SPARK } from '../../../modules/nf-core/gatk4/baserecalibratorspark/main' -include { GATK4_GATHERBQSRREPORTS } from '../../../modules/nf-core/gatk4/gatherbqsrreports/main' +include { GATK4SPARK_BASERECALIBRATOR } from '../../../modules/nf-core/gatk4spark/baserecalibrator/main' +include { GATK4_GATHERBQSRREPORTS } from '../../../modules/nf-core/gatk4/gatherbqsrreports/main' workflow BAM_BASERECALIBRATOR_SPARK { take: @@ -26,10 +26,10 @@ workflow BAM_BASERECALIBRATOR_SPARK { .map{ meta, cram, crai, intervals, num_intervals -> [ meta + [ num_intervals:num_intervals ], cram, crai, intervals ] } // RUN BASERECALIBRATOR SPARK - GATK4_BASERECALIBRATOR_SPARK(cram_intervals, fasta, fasta_fai, dict.map{ meta, it -> [ it ] }, known_sites, known_sites_tbi) + GATK4SPARK_BASERECALIBRATOR(cram_intervals, fasta, fasta_fai, dict.map{ meta, it -> [ it ] }, known_sites, known_sites_tbi) // Figuring out if there is one or more table(s) from the same sample - table_to_merge = GATK4_BASERECALIBRATOR_SPARK.out.table.map{ meta, table -> [ groupKey(meta, meta.num_intervals), table ] }.groupTuple().branch{ + table_to_merge = GATK4SPARK_BASERECALIBRATOR.out.table.map{ meta, table -> [ groupKey(meta, meta.num_intervals), table ] }.groupTuple().branch{ // Use meta.num_intervals to asses number of intervals single: it[0].num_intervals <= 1 multiple: it[0].num_intervals > 1 @@ -44,7 +44,7 @@ workflow BAM_BASERECALIBRATOR_SPARK { .map{ meta, table -> [ meta - meta.subMap('num_intervals'), table ] } // Gather versions of all tools used - versions = versions.mix(GATK4_BASERECALIBRATOR_SPARK.out.versions) + versions = versions.mix(GATK4SPARK_BASERECALIBRATOR.out.versions) versions = versions.mix(GATK4_GATHERBQSRREPORTS.out.versions) emit: diff --git a/subworkflows/local/bam_markduplicates_spark/main.nf b/subworkflows/local/bam_markduplicates_spark/main.nf index e978bf5a38..8e7d0ee023 100644 --- a/subworkflows/local/bam_markduplicates_spark/main.nf +++ b/subworkflows/local/bam_markduplicates_spark/main.nf @@ -4,10 +4,10 @@ // For all modules here: // A when clause condition is defined in the conf/modules.config to determine if the module should be run -include { CRAM_QC_MOSDEPTH_SAMTOOLS } from '../cram_qc_mosdepth_samtools/main' -include { GATK4_ESTIMATELIBRARYCOMPLEXITY } from '../../../modules/nf-core/gatk4/estimatelibrarycomplexity/main' -include { GATK4_MARKDUPLICATES_SPARK } from '../../../modules/nf-core/gatk4/markduplicatesspark/main' -include { SAMTOOLS_INDEX as INDEX_MARKDUPLICATES } from '../../../modules/nf-core/samtools/index/main' +include { CRAM_QC_MOSDEPTH_SAMTOOLS } from '../cram_qc_mosdepth_samtools/main' +include { GATK4_ESTIMATELIBRARYCOMPLEXITY } from '../../../modules/nf-core/gatk4/estimatelibrarycomplexity/main' +include { GATK4SPARK_MARKDUPLICATES } from '../../../modules/nf-core/gatk4spark/markduplicates/main' +include { SAMTOOLS_INDEX as INDEX_MARKDUPLICATES } from '../../../modules/nf-core/samtools/index/main' workflow BAM_MARKDUPLICATES_SPARK { take: @@ -22,13 +22,13 @@ workflow BAM_MARKDUPLICATES_SPARK { reports = Channel.empty() // RUN MARKUPDUPLICATES SPARK - GATK4_MARKDUPLICATES_SPARK(bam, fasta, fasta_fai, dict) + GATK4SPARK_MARKDUPLICATES(bam, fasta, fasta_fai, dict) // Index cram - INDEX_MARKDUPLICATES(GATK4_MARKDUPLICATES_SPARK.out.output) + INDEX_MARKDUPLICATES(GATK4SPARK_MARKDUPLICATES.out.output) // Join with the crai file - cram = GATK4_MARKDUPLICATES_SPARK.out.output.join(INDEX_MARKDUPLICATES.out.crai, failOnDuplicate: true, failOnMismatch: true) + cram = GATK4SPARK_MARKDUPLICATES.out.output.join(INDEX_MARKDUPLICATES.out.crai, failOnDuplicate: true, failOnMismatch: true) // QC on CRAM CRAM_QC_MOSDEPTH_SAMTOOLS(cram, fasta, intervals_bed_combined) @@ -42,7 +42,7 @@ workflow BAM_MARKDUPLICATES_SPARK { // Gather versions of all tools used versions = versions.mix(GATK4_ESTIMATELIBRARYCOMPLEXITY.out.versions) - versions = versions.mix(GATK4_MARKDUPLICATES_SPARK.out.versions) + versions = versions.mix(GATK4SPARK_MARKDUPLICATES.out.versions) versions = versions.mix(INDEX_MARKDUPLICATES.out.versions) versions = versions.mix(CRAM_QC_MOSDEPTH_SAMTOOLS.out.versions) From 72a45b983ea0255977210a38e03f7b6499b8763a Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Thu, 2 Nov 2023 16:26:53 +0100 Subject: [PATCH 159/240] Update subworkflows/local/bam_applybqsr_spark/main.nf --- subworkflows/local/bam_applybqsr_spark/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/bam_applybqsr_spark/main.nf b/subworkflows/local/bam_applybqsr_spark/main.nf index ae805141f3..cfb86ef6a4 100644 --- a/subworkflows/local/bam_applybqsr_spark/main.nf +++ b/subworkflows/local/bam_applybqsr_spark/main.nf @@ -4,7 +4,7 @@ // For all modules here: // A when clause condition is defined in the conf/modules.config to determine if the module should be run -include { GATK4SPARK_APPLYBQSR } from '../../../modules/nf-core/gatk4spark/applybqsrs/main' +include { GATK4SPARK_APPLYBQSR } from '../../../modules/nf-core/gatk4spark/applybqsr/main' include { CRAM_MERGE_INDEX_SAMTOOLS } from '../cram_merge_index_samtools/main' workflow BAM_APPLYBQSR_SPARK { From 1501fa453e104ef3d74d0e7fbc92f68e99501451 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 2 Nov 2023 16:30:38 +0100 Subject: [PATCH 160/240] update base.config --- conf/base.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/base.config b/conf/base.config index 446e88b99b..a132f3cb6b 100644 --- a/conf/base.config +++ b/conf/base.config @@ -74,11 +74,11 @@ process { label = "process_high" memory = { check_max( 36.GB * task.attempt, 'memory' ) } } - withName: 'GATK4_MARKDUPLICATES|GATK4_MARKDUPLICATESSPARK' { + withName: 'GATK4_MARKDUPLICATES|GATK4SPARK_MARKDUPLICATES' { cpus = { check_max( 6 * task.attempt, 'cpus' ) } memory = { check_max( 30.GB * task.attempt, 'memory' ) } } - withName:'GATK4_APPLYBQSR|GATK4_APPLYBQSR_SPARK|GATK4_BASERECALIBRATOR|GATK4_BASERECALIBRATOR_SPARK|GATK4_GATHERBQSRREPORTS'{ + withName:'GATK4_APPLYBQSR|GATK4SPARK_APPLYBQSR|GATK4_BASERECALIBRATOR|GATK4SPARK_BASERECALIBRATOR|GATK4_GATHERBQSRREPORTS'{ cpus = { check_max( 2 * task.attempt, 'cpus' ) } memory = { check_max( 4.GB * task.attempt, 'memory' ) } } From f8ecd4ec61b4a970ce23840b588bb46ee7b1d48a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 2 Nov 2023 16:42:18 +0100 Subject: [PATCH 161/240] add info about changed names --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc344f90e5..9d8620b77c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | fastqc | 0.11.9 | 0.12.1 | | multiqc | 1.15 | 1.17 | +### Modules / Subworkflows + +| script | Old name | New name | +| ----------------------------- | ----------------------------- | ----------------------------- | +| `gatk4spark/applybqsr` | `GATK4_APPLYBQSRSPARK` | 'GATK4SPARK_APPLYBQSR' | +| `gatk4spark/baserecalibrator` | `GATK4_BASERECALIBRATORSPARK` | 'GATK4SPARK_BASERECALIBRATOR' | +| `gatk4spark/markduplicates` | `GATK4_MARKDUPLICATESSPARK` | 'GATK4SPARK_MARKDUPLICATES' | + ## [3.3.2](https://github.com/nf-core/sarek/releases/tag/3.3.2) - Ráhpajávvre Ráhpajávvre is the Lule Sámi spelling of Rapaselet. From 745e415995dce750b710510db425249d0b86770f Mon Sep 17 00:00:00 2001 From: maxulysse Date: Thu, 2 Nov 2023 16:50:12 +0100 Subject: [PATCH 162/240] rename tag to gatk4spark --- tests/config/pytesttags.yml | 12 ++++++------ tests/{test_gatk4_spark.yml => test_gatk4spark.yml} | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) rename tests/{test_gatk4_spark.yml => test_gatk4spark.yml} (97%) diff --git a/tests/config/pytesttags.yml b/tests/config/pytesttags.yml index 144c681d79..2c93fed587 100644 --- a/tests/config/pytesttags.yml +++ b/tests/config/pytesttags.yml @@ -206,20 +206,20 @@ intervals: - tests/csv/3.0/fastq_single.csv - tests/test_intervals.yml -## gatk4_spark -gatk4_spark: +## gatk4spark +gatk4spark: - conf/modules/markduplicates.config - conf/modules/prepare_recalibration.config - conf/modules/recalibrate.config - - modules/nf-core/gatk4/applybqsrspark/main.nf - - modules/nf-core/gatk4/baserecalibratorspark/main.nf + - modules/nf-core/gatk4spark/applybqsr/main.nf + - modules/nf-core/gatk4spark/baserecalibrator/main.nf - modules/nf-core/gatk4/estimatelibrarycomplexity/main.nf - - modules/nf-core/gatk4/markduplicatesspark/main.nf + - modules/nf-core/gatk4spark/markduplicates/main.nf - subworkflows/local/bam_applybqsr_spark/main.nf - subworkflows/local/bam_baserecalibrator_spark/main.nf - subworkflows/local/bam_markduplicates_spark/main.nf - tests/csv/3.0/fastq_single.csv - - tests/test_gatk4_spark.yml + - tests/test_gatk4spark.yml # variant calling diff --git a/tests/test_gatk4_spark.yml b/tests/test_gatk4spark.yml similarity index 97% rename from tests/test_gatk4_spark.yml rename to tests/test_gatk4spark.yml index 8dbc8fb974..7b6b42a3a5 100644 --- a/tests/test_gatk4_spark.yml +++ b/tests/test_gatk4spark.yml @@ -1,7 +1,7 @@ -- name: Run default pipeline with gatk4_spark +- name: Run default pipeline with gatk4spark command: nextflow run main.nf -profile test_cache,use_gatk_spark --outdir results tags: - - gatk4_spark + - gatk4spark - preprocessing files: - path: results/csv/markduplicates.csv @@ -48,10 +48,10 @@ # conda changes md5sums for test - path: results/preprocessing/mapped/ should_exist: false -- name: Run default pipeline with gatk4_spark and skipping all QC steps +- name: Run default pipeline with gatk4spark and skipping all QC steps command: nextflow run main.nf -profile test_cache,use_gatk_spark --skip_tools fastqc,markduplicates_report,mosdepth,multiqc,samtools --outdir results tags: - - gatk4_spark + - gatk4spark - preprocessing - skip_qc files: @@ -84,7 +84,7 @@ - name: Run save_output_as_bam with gatk4 spark command: nextflow run main.nf -profile test_cache,use_gatk_spark --save_output_as_bam --outdir results tags: - - gatk4_spark + - gatk4spark - preprocessing - save_output_as_bam files: From 202ebd9a9ba614c15363e3dc41dc0766b661ea3f Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 10:27:09 +0100 Subject: [PATCH 163/240] fix config --- conf/modules/markduplicates.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/modules/markduplicates.config b/conf/modules/markduplicates.config index 702b9b721b..ef106423ef 100644 --- a/conf/modules/markduplicates.config +++ b/conf/modules/markduplicates.config @@ -90,7 +90,7 @@ process { ] } - withName: 'GATK4_MARKDUPLICATES_SPARK' { + withName: 'GATK4SPARK_MARKDUPLICATES' { ext.args = '--remove-sequencing-duplicates false -VS LENIENT' ext.prefix = { "${meta.id}.md.cram" } publishDir = [ From 63348f7555f1cb3202ace9d9c6d83f370b78436e Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 10:28:29 +0100 Subject: [PATCH 164/240] '' -> --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d8620b77c..2b11cbe4e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,9 +43,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | script | Old name | New name | | ----------------------------- | ----------------------------- | ----------------------------- | -| `gatk4spark/applybqsr` | `GATK4_APPLYBQSRSPARK` | 'GATK4SPARK_APPLYBQSR' | -| `gatk4spark/baserecalibrator` | `GATK4_BASERECALIBRATORSPARK` | 'GATK4SPARK_BASERECALIBRATOR' | -| `gatk4spark/markduplicates` | `GATK4_MARKDUPLICATESSPARK` | 'GATK4SPARK_MARKDUPLICATES' | +| `gatk4spark/applybqsr` | `GATK4_APPLYBQSRSPARK` | `GATK4SPARK_APPLYBQSR` | +| `gatk4spark/baserecalibrator` | `GATK4_BASERECALIBRATORSPARK` | `GATK4SPARK_BASERECALIBRATOR` | +| `gatk4spark/markduplicates` | `GATK4_MARKDUPLICATESSPARK` | `GATK4SPARK_MARKDUPLICATES` | ## [3.3.2](https://github.com/nf-core/sarek/releases/tag/3.3.2) - Ráhpajávvre From 8b1b2e96d0db53620d252e46b3154854d293f2ce Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 11:01:15 +0100 Subject: [PATCH 165/240] exclude failing nf-tests due to missing data from modules --- .github/workflows/ci.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 625143e93f..7aa34767d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -199,6 +199,15 @@ jobs: NXF_VER: - "23.04.0" - "latest-everything" + exclude: + - tags: "bwa/index" + - tags: "bwa/mem" + - tags: "cat/cat" + - tags: "cat/fastq" + - tags: "custom/dumpsoftwareversions" + - tags: "fastp" + - tags: "fastqc" + - tags: "samtools/stats" env: NXF_ANSI_LOG: false TEST_DATA_BASE: "${{ github.workspace }}/test-datasets" From 7d718c176b67634b41092b363817934bfb4b637a Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 11:20:05 +0100 Subject: [PATCH 166/240] try better empty channel management --- subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf index d9ab08e1ba..8429cc7e35 100644 --- a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf @@ -31,7 +31,7 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { versions = Channel.empty() //If no germline resource is provided, then create an empty channel to avoid GetPileupsummaries from being run - germline_resource_pileup = germline_resource_tbi ? germline_resource : Channel.empty() + germline_resource_pileup = germline_resource_tbi ? germline_resource ?: Channel.empty() germline_resource_pileup_tbi = germline_resource_tbi ?: Channel.empty() // Combine input and intervals for spread and gather strategy From c9d4429984298f1e9d4d06e7bfe836b3f5821545 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 11:41:12 +0100 Subject: [PATCH 167/240] fix typo --- subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf index 8429cc7e35..2184e1b187 100644 --- a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf @@ -31,7 +31,7 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { versions = Channel.empty() //If no germline resource is provided, then create an empty channel to avoid GetPileupsummaries from being run - germline_resource_pileup = germline_resource_tbi ? germline_resource ?: Channel.empty() + germline_resource_pileup = germline_resource_tbi ? germline_resource ?: Channel.empty() : Channel.empty() germline_resource_pileup_tbi = germline_resource_tbi ?: Channel.empty() // Combine input and intervals for spread and gather strategy From bbc71e10f0552a17689d80717805af186dd63ed1 Mon Sep 17 00:00:00 2001 From: Maxime U Garcia Date: Fri, 3 Nov 2023 12:27:07 +0100 Subject: [PATCH 168/240] Update subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf Co-authored-by: Anders Sune Pedersen <37172585+asp8200@users.noreply.github.com> --- subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf index 2184e1b187..3f5b7d53ca 100644 --- a/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf +++ b/subworkflows/local/bam_variant_calling_somatic_mutect2/main.nf @@ -31,7 +31,7 @@ workflow BAM_VARIANT_CALLING_SOMATIC_MUTECT2 { versions = Channel.empty() //If no germline resource is provided, then create an empty channel to avoid GetPileupsummaries from being run - germline_resource_pileup = germline_resource_tbi ? germline_resource ?: Channel.empty() : Channel.empty() + germline_resource_pileup = (germline_resource && germline_resource_tbi) ? germline_resource : Channel.empty() germline_resource_pileup_tbi = germline_resource_tbi ?: Channel.empty() // Combine input and intervals for spread and gather strategy From 736fbe8758c59668b3a766643d6d4a2c39f56292 Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 13:22:28 +0100 Subject: [PATCH 169/240] update local moduels --- modules/local/add_info_to_vcf/environment.yml | 6 ++++++ modules/local/add_info_to_vcf/main.nf | 2 +- modules/local/build_intervals/environment.yml | 6 ++++++ modules/local/build_intervals/main.nf | 2 +- modules/local/create_intervals_bed/environment.yml | 6 ++++++ modules/local/create_intervals_bed/main.nf | 2 +- 6 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 modules/local/add_info_to_vcf/environment.yml create mode 100644 modules/local/build_intervals/environment.yml create mode 100644 modules/local/create_intervals_bed/environment.yml diff --git a/modules/local/add_info_to_vcf/environment.yml b/modules/local/add_info_to_vcf/environment.yml new file mode 100644 index 0000000000..710fbfd120 --- /dev/null +++ b/modules/local/add_info_to_vcf/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - anaconda::gawk=5.1.0 diff --git a/modules/local/add_info_to_vcf/main.nf b/modules/local/add_info_to_vcf/main.nf index f36eb20062..a55cf14b56 100644 --- a/modules/local/add_info_to_vcf/main.nf +++ b/modules/local/add_info_to_vcf/main.nf @@ -2,7 +2,7 @@ process ADD_INFO_TO_VCF { tag "$meta.id" label 'process_single' - conda "anaconda::gawk=5.1.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gawk:5.1.0' : 'biocontainers/gawk:5.1.0' }" diff --git a/modules/local/build_intervals/environment.yml b/modules/local/build_intervals/environment.yml new file mode 100644 index 0000000000..710fbfd120 --- /dev/null +++ b/modules/local/build_intervals/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - anaconda::gawk=5.1.0 diff --git a/modules/local/build_intervals/main.nf b/modules/local/build_intervals/main.nf index 8f8f0df23e..9c562f5c17 100644 --- a/modules/local/build_intervals/main.nf +++ b/modules/local/build_intervals/main.nf @@ -2,7 +2,7 @@ process BUILD_INTERVALS { tag "$meta.id" label 'process_single' - conda "anaconda::gawk=5.1.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gawk:5.1.0' : 'biocontainers/gawk:5.1.0' }" diff --git a/modules/local/create_intervals_bed/environment.yml b/modules/local/create_intervals_bed/environment.yml new file mode 100644 index 0000000000..710fbfd120 --- /dev/null +++ b/modules/local/create_intervals_bed/environment.yml @@ -0,0 +1,6 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - anaconda::gawk=5.1.0 diff --git a/modules/local/create_intervals_bed/main.nf b/modules/local/create_intervals_bed/main.nf index 26c2689346..88160ccbf4 100644 --- a/modules/local/create_intervals_bed/main.nf +++ b/modules/local/create_intervals_bed/main.nf @@ -2,7 +2,7 @@ process CREATE_INTERVALS_BED { tag "$intervals" label 'process_single' - conda "anaconda::gawk=5.1.0" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/gawk:5.1.0' : 'biocontainers/gawk:5.1.0' }" From 9d6bd9b04ba93a380e396d51ce67068ff253c2ca Mon Sep 17 00:00:00 2001 From: maxulysse Date: Fri, 3 Nov 2023 13:24:11 +0100 Subject: [PATCH 170/240] update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b11cbe4e8..3133b0d2df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1280](https://github.com/nf-core/sarek/pull/1280) - Replacing link to `SentieonDNAscopeModel1.1.model` in Sentieon's S3 with link to same file in igenomes' S3 - [#1303](https://github.com/nf-core/sarek/pull/1303) - Ressurect vep_version params and changed its scope to pipeline to enable usage for vep loftee plugin - [#1304](https://github.com/nf-core/sarek/pull/1304) - Update modules +- [#1311](https://github.com/nf-core/sarek/pull/1311) - Update local modules with an `environment.yml` file ### Fixed From e1706a3899b1f92a2a015d91a765e60836ccb0bc Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:38:43 +0000 Subject: [PATCH 171/240] Apply code review suggestions, fix channel to mpileup --- CHANGELOG.md | 2 +- docs/output.md | 39 ++++++++++--------- nextflow.config | 7 ++-- subworkflows/nf-core/bam_ngscheckmate/main.nf | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac43d60b80..98c7be7123 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1113](https://github.com/nf-core/sarek/pull/1113) - Adding CNVkit genemetrics module - [#1193](https://github.com/nf-core/sarek/pull/1193) - Adding support for Sentieon's DnaScope for germline variant-calling including joint-germline +- [#1252](https://github.com/nf-core/sarek/pull/1252) - Added NGSCheckMate tool for checking that samples come from the same individual - [#1271](https://github.com/nf-core/sarek/pull/1271) - Back to dev - [#1290](https://github.com/nf-core/sarek/pull/1290) - Add nf-test for whole pipeline. @@ -56,7 +57,6 @@ Ráhpajávvre is the Lule Sámi spelling of Rapaselet. - [#1246](https://github.com/nf-core/sarek/pull/1246) - Back to dev - [#1259](https://github.com/nf-core/sarek/pull/1259) - nf-prov plugin -- [#1252](https://github.com/nf-core/sarek/pull/1252) - Added NGSCheckMate tool for checking that samples come from the same individual ### Changed diff --git a/docs/output.md b/docs/output.md index 259db4461a..769ee71fbd 100644 --- a/docs/output.md +++ b/docs/output.md @@ -61,6 +61,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [FastQC](#fastqc) - [FastP](#fastp) - [Mosdepth](#mosdepth) + - [NGSCheckMate](#ngscheckmate) - [GATK MarkDuplicates reports](#gatk-markduplicates-reports) - [Sentieon Dedup reports](#sentieon-dedup-reports) - [samtools stats](#samtools-stats) @@ -985,6 +986,25 @@ Plots will show: - CSI index for per-base depth for targeted data, per-window (500bp) depth of WGS +#### NGSCheckMate + +[NGSCheckMate](https://github.com/parklab/NGSCheckMate) is a tool for determining whether samples come from the same genetic individual, using a set of commonly heterozygous SNPs. This enables for the detecting of sample mislabelling events. The output includes a text file indicating whether samples have matched or not according to the algorithm, as well as a dendrogram visualising these results. + +
+Output files for all samples + +**Output directory: `{outdir}/reports/ngscheckmate/`** + +- `ngscheckmate_all.txt` + - Tab delimited text file listing all the comparisons made, whether they were considered as a match, with the correlation and a normalised depth. +- `ngscheckmate_matched.txt` + - Tab delimited text file listing only the comparison that were considered to match, with the correlation and a normalised depth. +- `ngscheckmate_output_corr_matrix.txt` + - Tab delimited text file containing a matrix of all correlations for all comparisons made. +- `vcfs/.vcf.gz` + - Set of vcf files for each sample. Contains calls for the set of SNP positions used to calculate sample relatedness. +
+ #### GATK MarkDuplicates reports More information in the [GATK MarkDuplicates section](#gatk-markduplicates) @@ -1119,25 +1139,6 @@ The plots will show: - Summary of the VEP run to be visualised with a web browser -#### NGSCheckMate - -[NGSCheckMate](https://github.com/parklab/NGSCheckMate) is a tool for determining whether samples come from the same genetic individual, using a set of commonly heterozygous SNPs. This enables for the detecting of sample mislabelling events. The output includes a text file indicating whether samples have matched or not according to the algorithm, as well as a dendrogram visualising these results. - -
-Output files for all samples - -**Output directory: `{outdir}/reports/ngscheckmate/`** - -- `ngscheckmate_all.txt` - - Tab delimited text file listing all the comparisons made, whether they were considered as a match, with the correlation and a normalised depth. -- `ngscheckmate_matched.txt` - - Tab delimited text file listing only the comparison that were considered to match, with the correlation and a normalised depth. -- `ngscheckmate_output_corr_matrix.txt` - - Tab delimited text file containing a matrix of all correlations for all comparisons made. -- `vcfs/.vcf.gz` - - Set of vcf files for each sample. Contains calls for the set of SNP positions used to calculate sample relatedness. -
- ### Reporting #### MultiQC diff --git a/nextflow.config b/nextflow.config index 29b4f678d8..4ea1d288c7 100644 --- a/nextflow.config +++ b/nextflow.config @@ -378,6 +378,9 @@ includeConfig 'conf/modules/recalibrate.config' includeConfig 'conf/modules/trimming.config' includeConfig 'conf/modules/umi.config' +//ngscheckmate +includeConfig 'conf/modules/ngscheckmate.config' + // variant calling includeConfig 'conf/modules/ascat.config' includeConfig 'conf/modules/cnvkit.config' @@ -396,15 +399,11 @@ includeConfig 'conf/modules/sentieon_haplotyper.config' includeConfig 'conf/modules/sentieon_haplotyper_joint_germline.config' includeConfig 'conf/modules/strelka.config' includeConfig 'conf/modules/tiddit.config' - includeConfig 'conf/modules/post_variant_calling.config' //annotate includeConfig 'conf/modules/annotate.config' -//ngscheckmate -includeConfig 'conf/modules/ngscheckmate.config' - // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/subworkflows/nf-core/bam_ngscheckmate/main.nf b/subworkflows/nf-core/bam_ngscheckmate/main.nf index c471197db2..2da41fede3 100644 --- a/subworkflows/nf-core/bam_ngscheckmate/main.nf +++ b/subworkflows/nf-core/bam_ngscheckmate/main.nf @@ -18,7 +18,7 @@ workflow BAM_NGSCHECKMATE { [input_meta, input_file, bed_file] } - BCFTOOLS_MPILEUP (ch_input_bed, ch_fasta.collect().map{it[1]}, false) + BCFTOOLS_MPILEUP (ch_input_bed, ch_fasta, false) ch_versions = ch_versions.mix(BCFTOOLS_MPILEUP.out.versions) BCFTOOLS_MPILEUP From 01ae11250fb40f0189a1d188a586221c4d2ceb13 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:53:41 +0000 Subject: [PATCH 172/240] Swap around bed location in confs --- conf/test.config | 3 ++- conf/test/cache.config | 1 + conf/test/tools.config | 1 - conf/test/tools_germline.config | 1 - 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/test.config b/conf/test.config index 6ca8124443..12cb919f53 100644 --- a/conf/test.config +++ b/conf/test.config @@ -39,7 +39,8 @@ params { bcftools_annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" - + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" + // default params split_fastq = 0 // no FASTQ splitting tools = 'strelka' // Variant calling with Strelka diff --git a/conf/test/cache.config b/conf/test/cache.config index 9f51f72354..cb7bed7a85 100644 --- a/conf/test/cache.config +++ b/conf/test/cache.config @@ -48,6 +48,7 @@ params { vep_cache_version = 110 vep_genome = 'WBcel235' vep_species = 'caenorhabditis_elegans' + ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" // default params split_fastq = 0 // no FASTQ splitting diff --git a/conf/test/tools.config b/conf/test/tools.config index 5d5bf8fd67..a91389e27b 100644 --- a/conf/test/tools.config +++ b/conf/test/tools.config @@ -16,7 +16,6 @@ params { germline_resource = params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'] intervals = params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'] pon = params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'] - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" nucleotides_per_second = 20 step = 'variant_calling' tools = null diff --git a/conf/test/tools_germline.config b/conf/test/tools_germline.config index 2e8acb7295..31cb79cd93 100644 --- a/conf/test/tools_germline.config +++ b/conf/test/tools_germline.config @@ -18,7 +18,6 @@ params { known_indels_vqsr = "--resource:1000G,known=false,training=true,truth=true,prior=10.0 mills_and_1000G.indels.hg38.vcf.gz" known_snps = params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'] known_snps_vqsr = "--resource:hapmap,known=false,training=true,truth=true,prior=10.0 hapmap_3.3.hg38.vcf.gz" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" nucleotides_per_second = 20 step = 'variant_calling' tools = null From 13df981b2e5636215de849eb59fa65ae72dfb80c Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:53:47 +0000 Subject: [PATCH 173/240] Swap to modules test-data --- conf/test.config | 4 ++-- conf/test/cache.config | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/test.config b/conf/test.config index 12cb919f53..12d4fe1c66 100644 --- a/conf/test.config +++ b/conf/test.config @@ -39,8 +39,8 @@ params { bcftools_annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" - + + // default params split_fastq = 0 // no FASTQ splitting tools = 'strelka' // Variant calling with Strelka diff --git a/conf/test/cache.config b/conf/test/cache.config index cb7bed7a85..95e6fb40f7 100644 --- a/conf/test/cache.config +++ b/conf/test/cache.config @@ -48,7 +48,7 @@ params { vep_cache_version = 110 vep_genome = 'WBcel235' vep_species = 'caenorhabditis_elegans' - ngscheckmate_bed = "https://raw.githubusercontent.com/parklab/NGSCheckMate/master/SNP/SNP_GRCh38_hg38_wChr.bed" + ngscheckmate_bed = params.test_data['homo_sapiens']['genome']['ngscheckmate_bed'] // default params split_fastq = 0 // no FASTQ splitting From ede0693d003545c6701a7a0acee5de9e5b25cd63 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Tue, 7 Nov 2023 13:28:53 +0000 Subject: [PATCH 174/240] Avoiding classes of config of FILTERVARIANTTRANCHES for GATK-haplotyper-subworkflow and SENTIEON-haplotypecaller subworkflow #1314 --- conf/modules/haplotypecaller.config | 2 +- conf/modules/sentieon_haplotyper.config | 2 +- .../bam_variant_calling_germline_all/main.nf | 35 ++++++++------- tests/test_sentieon_haplotyper.yml | 44 +++++++++++++++++++ 4 files changed, 64 insertions(+), 19 deletions(-) diff --git a/conf/modules/haplotypecaller.config b/conf/modules/haplotypecaller.config index be159c4152..7f7dfa1027 100644 --- a/conf/modules/haplotypecaller.config +++ b/conf/modules/haplotypecaller.config @@ -43,7 +43,7 @@ process { ] } - withName: 'FILTERVARIANTTRANCHES' { + withName: '.*:VCF_VARIANT_FILTERING_GATK:FILTERVARIANTTRANCHES' { ext.prefix = {"${meta.id}.haplotypecaller"} ext.args = { "--info-key CNN_1D" } publishDir = [ diff --git a/conf/modules/sentieon_haplotyper.config b/conf/modules/sentieon_haplotyper.config index bbcdba8c22..62734c2b07 100644 --- a/conf/modules/sentieon_haplotyper.config +++ b/conf/modules/sentieon_haplotyper.config @@ -45,7 +45,7 @@ process { } if (params.tools && params.tools.contains('sentieon_haplotyper')) { - withName: '.*FILTERVARIANTTRANCHES' { + withName: '.*:SENTIEON_HAPLOTYPER_VCF_VARIANT_FILTERING_GATK:FILTERVARIANTTRANCHES' { ext.prefix = {"${meta.id}.haplotyper"} ext.args = { "--info-key CNN_1D" } publishDir = [ diff --git a/subworkflows/local/bam_variant_calling_germline_all/main.nf b/subworkflows/local/bam_variant_calling_germline_all/main.nf index 243b4d96c2..1f751c2263 100644 --- a/subworkflows/local/bam_variant_calling_germline_all/main.nf +++ b/subworkflows/local/bam_variant_calling_germline_all/main.nf @@ -2,20 +2,21 @@ // GERMLINE VARIANT CALLING // -include { BAM_JOINT_CALLING_GERMLINE_GATK } from '../bam_joint_calling_germline_gatk/main' -include { BAM_JOINT_CALLING_GERMLINE_SENTIEON } from '../bam_joint_calling_germline_sentieon/main' -include { BAM_VARIANT_CALLING_CNVKIT } from '../bam_variant_calling_cnvkit/main' -include { BAM_VARIANT_CALLING_DEEPVARIANT } from '../bam_variant_calling_deepvariant/main' -include { BAM_VARIANT_CALLING_FREEBAYES } from '../bam_variant_calling_freebayes/main' -include { BAM_VARIANT_CALLING_GERMLINE_MANTA } from '../bam_variant_calling_germline_manta/main' -include { BAM_VARIANT_CALLING_HAPLOTYPECALLER } from '../bam_variant_calling_haplotypecaller/main' -include { BAM_VARIANT_CALLING_SENTIEON_DNASCOPE } from '../bam_variant_calling_sentieon_dnascope/main' -include { BAM_VARIANT_CALLING_SENTIEON_HAPLOTYPER } from '../bam_variant_calling_sentieon_haplotyper/main' -include { BAM_VARIANT_CALLING_MPILEUP } from '../bam_variant_calling_mpileup/main' -include { BAM_VARIANT_CALLING_SINGLE_STRELKA } from '../bam_variant_calling_single_strelka/main' -include { BAM_VARIANT_CALLING_SINGLE_TIDDIT } from '../bam_variant_calling_single_tiddit/main' -include { SENTIEON_DNAMODELAPPLY } from '../../../modules/nf-core/sentieon/dnamodelapply/main' -include { VCF_VARIANT_FILTERING_GATK } from '../vcf_variant_filtering_gatk/main' +include { BAM_JOINT_CALLING_GERMLINE_GATK } from '../bam_joint_calling_germline_gatk/main' +include { BAM_JOINT_CALLING_GERMLINE_SENTIEON } from '../bam_joint_calling_germline_sentieon/main' +include { BAM_VARIANT_CALLING_CNVKIT } from '../bam_variant_calling_cnvkit/main' +include { BAM_VARIANT_CALLING_DEEPVARIANT } from '../bam_variant_calling_deepvariant/main' +include { BAM_VARIANT_CALLING_FREEBAYES } from '../bam_variant_calling_freebayes/main' +include { BAM_VARIANT_CALLING_GERMLINE_MANTA } from '../bam_variant_calling_germline_manta/main' +include { BAM_VARIANT_CALLING_HAPLOTYPECALLER } from '../bam_variant_calling_haplotypecaller/main' +include { BAM_VARIANT_CALLING_SENTIEON_DNASCOPE } from '../bam_variant_calling_sentieon_dnascope/main' +include { BAM_VARIANT_CALLING_SENTIEON_HAPLOTYPER } from '../bam_variant_calling_sentieon_haplotyper/main' +include { BAM_VARIANT_CALLING_MPILEUP } from '../bam_variant_calling_mpileup/main' +include { BAM_VARIANT_CALLING_SINGLE_STRELKA } from '../bam_variant_calling_single_strelka/main' +include { BAM_VARIANT_CALLING_SINGLE_TIDDIT } from '../bam_variant_calling_single_tiddit/main' +include { SENTIEON_DNAMODELAPPLY } from '../../../modules/nf-core/sentieon/dnamodelapply/main' +include { VCF_VARIANT_FILTERING_GATK } from '../vcf_variant_filtering_gatk/main' +include { VCF_VARIANT_FILTERING_GATK as SENTIEON_HAPLOTYPER_VCF_VARIANT_FILTERING_GATK } from '../vcf_variant_filtering_gatk/main' @@ -295,7 +296,7 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { // If single sample track, check if filtering should be done if (!(skip_tools && skip_tools.split(',').contains('haplotyper_filter'))) { - VCF_VARIANT_FILTERING_GATK( + SENTIEON_HAPLOTYPER_VCF_VARIANT_FILTERING_GATK( vcf_sentieon_haplotyper.join(vcf_tbi_sentieon_haplotyper, failOnDuplicate: true, failOnMismatch: true), fasta, fasta_fai, @@ -304,9 +305,9 @@ workflow BAM_VARIANT_CALLING_GERMLINE_ALL { known_sites_indels.concat(known_sites_snps).flatten().unique().collect(), known_sites_indels_tbi.concat(known_sites_snps_tbi).flatten().unique().collect()) - vcf_sentieon_haplotyper = VCF_VARIANT_FILTERING_GATK.out.filtered_vcf + vcf_sentieon_haplotyper = SENTIEON_HAPLOTYPER_VCF_VARIANT_FILTERING_GATK.out.filtered_vcf - versions = versions.mix(VCF_VARIANT_FILTERING_GATK.out.versions) + versions = versions.mix(SENTIEON_HAPLOTYPER_VCF_VARIANT_FILTERING_GATK.out.versions) } } } diff --git a/tests/test_sentieon_haplotyper.yml b/tests/test_sentieon_haplotyper.yml index b90e538e70..7cac6f34c7 100644 --- a/tests/test_sentieon_haplotyper.yml +++ b/tests/test_sentieon_haplotyper.yml @@ -145,3 +145,47 @@ - path: results/variant_calling/sentieon_haplotyper/test/test.haplotyper.unfiltered.vcf.gz.tbi - path: results/haplotyper should_exist: false +- name: Run variant calling on germline sample with sentieons haplotyper and gatk haplotypecaller + command: nextflow run main.nf -profile test_cache,software_license,targeted --sentieon_extension --input ./tests/csv/3.0/mapped_single_bam.csv --tools haplotypecaller,sentieon_haplotyper --step variant_calling --outdir results + tags: + - germline + - sentieon/haplotyper + - variant_calling + files: + - path: results/csv/variantcalled.csv + md5sum: caa9932235cf993fca208943d2e58041 + - path: results/multiqc + - path: results/preprocessing/converted/test/test.converted.cram + # binary changes md5sums on reruns + - path: results/preprocessing/converted/test/test.converted.cram.crai + # binary changes md5sums on reruns + - path: results/preprocessing/recalibrated/test/test.recal.cram + should_exist: false + - path: results/preprocessing/recalibrated/test/test.recal.cram.crai + should_exist: false + - path: results/reports/bcftools/sentieon_haplotyper/test/test.haplotyper.filtered.bcftools_stats.txt + md5sum: 66be03d4e6535175514f54a1a031d49f + - path: results/reports/vcftools/sentieon_haplotyper/test/test.haplotyper.filtered.FILTER.summary + md5sum: d501a93356f3c91c743f51104e24514a + - path: results/reports/vcftools/sentieon_haplotyper/test/test.haplotyper.filtered.TsTv.count + md5sum: 89562fef808b5c3db629682d36fd86fc + - path: results/reports/vcftools/sentieon_haplotyper/test/test.haplotyper.filtered.TsTv.qual + # changes md5sum on reruns. This is somewhat unexpected, but might to tiny variation in very small numbers in the qual-files. + - path: results/variant_calling/sentieon_haplotyper/test/test.haplotyper.filtered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_haplotyper/test/test.haplotyper.filtered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_haplotyper/test/test.haplotyper.unfiltered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/sentieon_haplotyper/test/test.haplotyper.unfiltered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/haplotypecaller/test/test.haplotypecaller.filtered.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/haplotypecaller/test/test.haplotypecaller.filtered.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/variant_calling/haplotypecaller/test/test.haplotypecaller.vcf.gz + # binary changes md5sums on reruns + - path: results/variant_calling/haplotypecaller/test/test.haplotypecaller.vcf.gz.tbi + # binary changes md5sums on reruns + - path: results/haplotyper + should_exist: false From 1ef5b8821992134f87b243d4e484df4da6a45dfc Mon Sep 17 00:00:00 2001 From: asp8200 Date: Tue, 7 Nov 2023 13:32:50 +0000 Subject: [PATCH 175/240] Removing config of FILTERVARIANTTRANCHES in sentieon_dnascope config as it seems redundant --- conf/modules/sentieon_dnascope.config | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/conf/modules/sentieon_dnascope.config b/conf/modules/sentieon_dnascope.config index fa431ae417..0419107ca6 100644 --- a/conf/modules/sentieon_dnascope.config +++ b/conf/modules/sentieon_dnascope.config @@ -44,18 +44,6 @@ process { ] } - if (params.tools && params.tools.contains('sentieon_dnascope')) { - withName: '.*FILTERVARIANTTRANCHES' { - ext.prefix = {"${meta.id}.dnascope"} - ext.args = { "--info-key CNN_1D" } - publishDir = [ - mode: params.publish_dir_mode, - path: { "${params.outdir}/variant_calling/sentieon_dnascope/${meta.id}/"}, - pattern: "*{vcf.gz,vcf.gz.tbi}" - ] - } - } - withName: 'SENTIEON_DNAMODELAPPLY' { ext.prefix = {"${meta.id}.dnascope.filtered"} publishDir = [ From 5a55c7a3fb06c99599e5f7bb8e4dc4dbfac82cfe Mon Sep 17 00:00:00 2001 From: asp8200 Date: Tue, 7 Nov 2023 13:49:17 +0000 Subject: [PATCH 176/240] license_message.py was moved to the bin-folder --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7aa34767d1..0535814391 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -272,7 +272,7 @@ jobs: nextflow secrets set SENTIEON_AUTH_MECH_BASE64 ${{ secrets.SENTIEON_AUTH_MECH_BASE64 }} SENTIEON_ENCRYPTION_KEY=$(echo -n "${{ secrets.ENCRYPTION_KEY_BASE64 }}" | base64 -d) SENTIEON_LICENSE_MESSAGE=$(echo -n "${{ secrets.LICENSE_MESSAGE_BASE64 }}" | base64 -d) - SENTIEON_AUTH_DATA=$(python3 tests/modules/nf-core/sentieon/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + SENTIEON_AUTH_DATA=$(python3 bin/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") SENTIEON_AUTH_DATA_BASE64=$(echo -n "$SENTIEON_AUTH_DATA" | base64 -w 0) nextflow secrets set SENTIEON_AUTH_DATA_BASE64 $SENTIEON_AUTH_DATA_BASE64 From a68a92fb14c0306eb26b73af637f110cd92b0da4 Mon Sep 17 00:00:00 2001 From: asp8200 Date: Tue, 7 Nov 2023 15:06:17 +0000 Subject: [PATCH 177/240] Update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3133b0d2df..12dccac45d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#1287](https://github.com/nf-core/sarek/pull/1287) - Adding label `process_single` to local modules - [#1298](https://github.com/nf-core/sarek/pull/1298) - Fix annotation cache usage - [#1301](https://github.com/nf-core/sarek/pull/1301) - Fix nf-prov usage +- [#1315](https://github.com/nf-core/sarek/pull/1315) - Avoid clash of configs of `FILTERVARIANTTRANCHES` in the Sentieon-Haplotyper and GATK-Haplotypecaller subworkflows ### Removed From 32227d339fc2d206630cf2e3c8dc4bab32ae3555 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:14:26 +0000 Subject: [PATCH 178/240] Apply suggestions from code review Co-authored-by: Maxime U Garcia --- conf/test.config | 2 +- nextflow.config | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/conf/test.config b/conf/test.config index 12d4fe1c66..95552b263d 100644 --- a/conf/test.config +++ b/conf/test.config @@ -40,7 +40,7 @@ params { bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" - +ngscheckmate_bed = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/germlineresources/SNP_GRCh38_hg38_wChr.bed" // default params split_fastq = 0 // no FASTQ splitting tools = 'strelka' // Variant calling with Strelka diff --git a/nextflow.config b/nextflow.config index 4ea1d288c7..6cfe5993b7 100644 --- a/nextflow.config +++ b/nextflow.config @@ -99,9 +99,6 @@ params { bcftools_annotations_index = null // No extra annotation file index bcftools_header_lines = null // No header lines to be added to the VCF file - // NGSCheckMate - ngscheckmate_bed = null - // MultiQC options multiqc_config = null multiqc_title = null From 10185fa8bc67e4bb583d8c50c676944f5647e3e8 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:24:11 +0000 Subject: [PATCH 179/240] Add getGenomeAttribute check --- main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/main.nf b/main.nf index 99ea7db553..bc69e55d1b 100644 --- a/main.nf +++ b/main.nf @@ -52,6 +52,7 @@ params.known_indels = WorkflowMain.getGenomeAttribute(params, 'known_in params.known_indels_tbi = WorkflowMain.getGenomeAttribute(params, 'known_indels_tbi') params.known_indels_vqsr = WorkflowMain.getGenomeAttribute(params, 'known_indels_vqsr') params.mappability = WorkflowMain.getGenomeAttribute(params, 'mappability') +params.ngscheckmate_bed = WorkflowMain.getGenomeAttribute(params, 'ngscheckmate_bed') params.pon = WorkflowMain.getGenomeAttribute(params, 'pon') params.pon_tbi = WorkflowMain.getGenomeAttribute(params, 'pon_tbi') params.snpeff_db = WorkflowMain.getGenomeAttribute(params, 'snpeff_db') From ac871020f7f52eeeac32ff708bc9cc644d26a72f Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:32:11 +0000 Subject: [PATCH 180/240] Update conf/test.config Co-authored-by: Friederike Hanssen --- conf/test.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test.config b/conf/test.config index 95552b263d..fec8dcd55e 100644 --- a/conf/test.config +++ b/conf/test.config @@ -40,7 +40,7 @@ params { bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" -ngscheckmate_bed = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/germlineresources/SNP_GRCh38_hg38_wChr.bed" + ngscheckmate_bed = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/germlineresources/SNP_GRCh38_hg38_wChr.bed" // default params split_fastq = 0 // no FASTQ splitting tools = 'strelka' // Variant calling with Strelka From cf1e1166545ab393b33b7aa1bec18592a7e1ef63 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Tue, 7 Nov 2023 16:33:07 +0000 Subject: [PATCH 181/240] Move blank line --- conf/test.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test.config b/conf/test.config index fec8dcd55e..4b9c3c73af 100644 --- a/conf/test.config +++ b/conf/test.config @@ -39,8 +39,8 @@ params { bcftools_annotations = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" bcftools_annotations_index = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" bcftools_header_lines = "${projectDir}/tests/config/bcfann_test_header.txt" - ngscheckmate_bed = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/homo_sapiens/genome/chr21/germlineresources/SNP_GRCh38_hg38_wChr.bed" + // default params split_fastq = 0 // no FASTQ splitting tools = 'strelka' // Variant calling with Strelka From 524eefbfb133e37d1c58d31e49ffde5b650d8a6e Mon Sep 17 00:00:00 2001 From: Rike Date: Tue, 7 Nov 2023 22:37:25 +0100 Subject: [PATCH 182/240] update subway map --- docs/images/sarek_subway.png | Bin 1413957 -> 1395702 bytes docs/images/sarek_subway.svg | 512 +++++++++++++++++++-------------- docs/images/sarek_workflow.png | Bin 164106 -> 1342538 bytes docs/images/sarek_workflow.svg | 165 +++-------- 4 files changed, 333 insertions(+), 344 deletions(-) diff --git a/docs/images/sarek_subway.png b/docs/images/sarek_subway.png index e2a689b1ca29f075ddeed4ceb6319242f4ef4112..b9f68d5562fdfa29a807433d9d2689b95d180a05 100644 GIT binary patch literal 1395702 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 SYY=-ZzHVQFty?FvK0Py?pfV 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⪻hdNWqTI0)Cw|8UxY>gi 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

9k;|`<425L-JEh_;r3G_Zc+Py)w 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 nTW8t#XRayoZrL5i{#MQ)&gJb(pf?pz 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νCye;;mP3^7AF!n+7u2EU)zo3NUw;Dzh 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

|BE+=v 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

4^>mgtsmU$JX;&enfF<&G2crJoV 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

S5DTB=q2u@Hx5KqZ$7uG645)23($&d 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�#C2K6@GiZR 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

D;Y4mpIU{9<-h0t^ATj_lh+>QWFsJSkZ>^oZ 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%0ALM=mBe1;x#dzKiA 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

II8lFIYf4>Ik7MT^2bQfY3)<=L=jujuA- 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 @1gYZt3 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 x%t?mYGm|pI`(U{*Y+&OLpg>_Kkt5N|hCpsO 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 z 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 literal 1413957 zcmeFa2{e}L`!;-+VmDDc6;YZaG8dVfOO!~Ip`ws6Q)GOq-DIvvWQt@eDUl&V0~!rw zNSQK36v;e)$MrlE`}f=b@BO~D-nHI$t$nYx+dR*GU&DEw!*L$xb=@wh?A|_W`oifH zMa|l|V~Z+9aT!t6+#`Q5D*nKx|#D|mNCBOwhv0@J6f5LW){K?cB0)pMB7`%GXx4n)A;Wtz9~4GMBc0 zkL$Asv%a`oc6j&oMSg2^bZq_`rW;Ai*t@gOy4FtG{=6^t2*-K!@lV%|FhSXW`VODh zIL-_rS48oy;hQU6NgUule&!1$m4)s26pFl!#*Pj7jU9~vhyHThI4SIw zQ0Vfk;WrKDs=Ev=Zi{%ANbS($I4{Y~dcV4@&PM87+}TMr znfT)R?kJHPZ=Zie+vYR{E}82cecX9}x|y4~ zSucEO>#>wsysKc+xPBloE_L-B8!69n(=S&HD7oN*MslAdcdbLlH8QB|k>lbE$qn%> z;bxy8nv^-ugrA>G_k3$GH=c!=mRFc;CNO_S^&B+YduhtYB>_h`^d5c6F-W|W+4diu z2|*MgAt8EF!5FN6--y8Z@MGBOI^s(d&qdMPR@io-h(zyDyG^=x)r z$(rr~=dXNJwkK>yS65e0G{BeM`ZctEf5?TWrAw+mQ%H7V>olIjGK=%9Qax@TSKKqH zMmj}Xu)V!~=^GGS*{+=4dF_LP0>#Weg~Bu2ySwM-)!px8r)qNdsn2`eAet7>Pg+~D z^7Q(Y%}~eEmZSyz6UI)l>B)uWb#z$oQ&)GGPK_u)i7L(Y(<{%%$>GLcv8yjv%y-`^ zuB?V{t2b8nkWQlB$B<6WubuCHy`VAD5I5dhUdU{Bl;eDFZ|}wLC$(_%giF5MNZc() zZ_fL#5Ao!1ICLYi{EtNF%8y4FYGSzn(bd>k=vD89{!H((vNFlg0wPH}gF=_Go_cgba*^)(&z#`nc zch6EP7=ol)U%YZL)t4dv(~v(_XfT}^*6(ZfoT6m2$B!Rxc`r_y@PrN|9nATB zf|tmZw&M2t;{yJ#qg&GGvwHMM!tgIDTmEOuy{z1$qI|NjnSc;&dS-PaTdVwqfVy366a;9jbRCoXo4%fRH$hAAx#f{l0QiY-SwiHSd+d&yd+uOH#{C=ey@D zi;Z0)JC!za1g2`7v<4$iv4-bx85!zf%nDtsLKjWwg2#1mPFYJ5>396qs!(Rz{`04* zLvGfG^z{9y`DxyDBa7^I+&P%8?xU)r;>6OmFXl|xAIU7?9Lp}2E}K4U+ru*~%lK+H zw%?Lf**JaUmW6!hVz;<27FU_`aP^wrLSDDDxUV6N2gDK=#}9<{D8C6_U%Atu&E!j9 zLE}89J>7bD4>;<`(>#ll%{m=2U`uvH+qm=`9i>m6JW2kC4@M%72d3D3Rh4XAKxv+@ z%k$35&)?ljd`6N%*sT3TvX34u&?#%!J<$&y_T-j6DL~pWG2yqHo}CK~FKX)vo`Wv3 zZ+`mt(JeSQSn}jI%~t4fS>!JN@c5PrPD){;?nr-G-r7eMSERA(hs`*R&dw7JEr=*< zIVZnsytoi)o)<-IubX9IznOc3)e5`m3hhv%napR=3`Loylx21&wWpP32--1c=W?-L z5D8GSf{C3gN8b_|UzP7?WCTk?`wp+|yXT-eC$apEwh&}Yqe@~M-2QxVT>$?jwxaOu*I!ew6hWmJ&7DSsqFIz>_y_r3?+yTM$!)2 z9qvQDVcbRAEXFZ2{CFVxH8G?I-nYR-QOoYe#xf@6wr;Wa@SQoig2hnDV&mM6{|Rlz0*Q^b?DK;M(njh>}v~AM9n;%dnoHAeY!!qGVjJq?ORl zkXRuz5n)r8gPb<$_V-m&SYo>f9s<_zYKHM3_iGsz$P-4gl9=Pklyx#=}&ro)l8Itwy%3nsnB$LtZ+ZQILiv3zcY zwmQH+bn$a}=RwyfsucPvxuT=5B5w_84=*t=ga)=^ zSyUD2D$y7M*&lYD`S8io9eg>5gv%e-eOe3BQ(U&aaZ=5*cPeSSUjEZCw$MF#t!-vPSiA~ zdA&Re4|e$bEnmI$HyW^bDQ89o@My|#1O~oUkq?d`d)~|!h^^W;uy_i?lei|dLQ^jl_k5N{^ORWZy$C4@mA!2z-v)lR z8mUvEm{54K*{=z`#)Nzj*5yKpyBL4bOcv5LSrp>|Cq$q}dy9tVObi1?Ic&;3KoL-^onU1lr?V?ld6RQI+s{Yr5W@vFtL29+Rm!EU8i8D!P|cgqLJF3}xC) z`ucs*oRMWP3~4hg+QaBmnJxRCRNvSc|czW#)raW!Jv($-7RYfFMa4Xy?zE_A# zrE0Rq+T(xuVH%ad3deK%IB`7G9d0JGge^K{Ib@a-T@EGj{P3KFY4p^|pYFK!Z&T#M zuW&YG@Ra6)RxLCUPX=N%rf(AlQ{mI+Wd86E-VhN*e4g^rM(S-am0O zoH^yn<+;@1;9I^GS-5Xdp84b9olZs*l~G|DwC?Z%m0P~5Xq2uW2@hb~zN$oIpPeCk zbNb`jFBP~1cIuSVYDS_c$cH|fv zE-|}_GNJ_hHmB3BJT&712&8*0KYvxL%*6_SRnMJ7ORE3XrP!CR$H(>pOna>Gx9-I= zZ%$QIEwd%2L}_w`L`%^p7G#r(&! zRaEvzD<0VEi2(WoJ`=5gSNXj-mg!pVI^xT_3#`RyiQ6X8x*Ft&Y((MEu0oy33Qz1v zGd8{jeo4S{^B-vN@QBQICi^|`sX{#>xX~YLd87Wq#7R+#_0k8!R>Wi4RDvs}L~oJz zG%}f;Sh&C0d4dgD_u4?x#z5nSh1sVfsOWS5n=!O>_2``5SjUK;>u09 zB}cgMZ^9n`HTyGSCI57(%>1|G@v`|>)Z?XrpZ`^^i30i8oF>ZSUk5T#9{)O!iSqc@ zf&5J#|Cc(DWNVgj6G`ab7P0qRYwI?3^;9)Ywe8-EJwI7w$(pBsPX;|W;ZpcK0lb{> z1D~-+rhQA0ysKQusV@P9khseGT)L{=tG75xZrA_o~nT8{(Nx(lW-S$q#BG z#C5n2L@K)1&-3Q-ew5jD*Yewk`=t8>tH9fr5)BJ-C9?Y762`WbdwOS-{19JeXQWV0 zf$MOGef{O_wb!)FUj|R%G6Nmc+G>s}TLs^p`w`o{a~IiF%z0GhU;;jt<{Yp)s@>al za5>@f*h@cjcb|ORu-4)dC|kx%1rB6Yd!xxv)PBef?R9x|W)_ZGkNZpRpa9JAi-v1OejslnN#P(vf zJq^2$FcG224Sn5{7vU|p@Y5$b3)-{JZ;1uDb>8xe8w*0cvqpy6QmuKPUtYewR;SHD z!wKW^mTr42X2(iptGjgEsD9p)*^^;kduerTYGcUj;LS^ulap&R+MF$%8u$-gvdbE% zOtmIMP1(p7*^7yDH|7VsuMTw*71T-dmAWpV{&>vieKx2R>DYkb&Y_pTA#` zufdCEyI)f!E3scO6*xTOHv=_XR?^Ol&f8aoSSqggY@CbB5 zWZB~{>nvODK4K7%(;BkAkL7=*yA}BspQ^vy+q7NYILMQ!=jjZg=a=TLu7yB#phnb- z+wmZdU84gr%yA?HI90h)e%hXn!`d*bbF2F0$hb>@0)MZVp^Qpb2_vu59O9cqzu?zgeg z@kiq*p*#J&8tPF!GTcMdViw&nR?D?dW8t@Mg6O=R>X)~_J~S-KVCu_$G(~vlLOpz? z&(7+^8c0{cG;)X~j}30lZ_mYFSDWK*`Q=SO1*d5O5sGD7M$a~|9BN433Y|sdY3UkP;W$%_tVpFpw{wXiSm1*A#@V#$Y$lJ z_bH7bjAgAUVWOKCR(y}{M?K(JPYU##LNoskjxymzSzJ6pW5kJ1Q#C%`Ork7Ul zpOi8?S*fvHxc^tK!U?184|d*I^QYeGDYui2TK+8FXiiCIi|>%wF**4_lS*0c?r%QS z-Maec)5P<4nmS1~4)WNaj8mhWF zdrz>;DN*y3&*vqr>UT7=U;lHxc?HM4tYL@dnF}k3w>r;dF8s#~s`yRyP-S&art^TR zVPTEeV%dda25&A(RM{`LrPqH)o>kgan{l|;r=_Rs4-fY374%md)puWTbqsM(FaElD z^QL|O*C;hZg)LibY;CtXIyyFk#kg*BZqrgYz_!SI+Q^p|mzUo^@%bsyp=S1IN7sQz zt~aD6EnB8{`0$eXLb}{JdLrnxkSe`*D3tzrb*6LscGu4B?WI~4k@PBGjl744$Ma`w z@mRW~lT1-k5!=hS_^;ZET(s#Ur<^D#7f-wFRT{ zX`yt>H_z<*VvlmHT9iWN$88bi~{v~|ReiSAyNA_cs# z&-l@rd{=?0vt`aajpsodtX0PrQGeVbe*XNqc-jv!RQVr1e7MEX(9o%NZs?9+NKIWr zM8tA`qXiVI7vVu>=Q^c%aON?u6tuQHf0Q-!J>}bj*R@!syRSOJE~i*5kCT#;s(rUh z$WzFr-8}~Gfe&Ks-`hOJetVq8J+ECt8RFLjbpjb9yqUUrg}Y*;YQ>3Xv)YA5ehOK> zT~~IC0Z3?kbk>nBNS|rTmoGQ89jQ|?JHURaanFfMMZX99-D5??)dW7Ju1Xu zjbLj1l{J1qGe0`gVB&foA0BUC?fP?dj9OTH(0AugcOO+P^gra%x1vN?UFPSDVPSX-UMw(oUTp=IJhjoo7J+bxy16x)CEdp9f{~m<+VoMfB2wD#|9xGi+f7xlTq1< zVnnmTeN7MSZ?XRx>91#RFX_c2zt|$9Yk#vqb8%l|D38Ck)lR1`VxgBf#SEU~gHS03 zbGKxf%g>At<(ipJeJlKg{hV5~svXLh%;wA?$dJq8u?SJi-fR{*m2;x#%|+Kwapg6k zLyOAP~?eZ$e}%7 zy3NBne}mx_% zWv%XVWXYfg@yK;Vi&%J^gyp(o_C$`NRN5OZZf=h+U%uG)e!ft5W`-bLOAA$otzSgN z#qrAxw|htBPYRnp{oJN{t5o~un5bF_mpTd6Mt~n>4^PjWZ{>**QBkYoGy9v1Ni~2{ z$mN!?7dChsIIlpqM_U`U_ZT`ZqrzH)Z%9!zyY3JA-Z|^awCA$P^@drlU-h=IP(|CW z(zYFQ@RHm;1jyWigqeofj1q z{WH$B0Z``e|dGv;qe)!sddWo;356mp@Ry&uam=L06kE%1oBg#AM)SR=iW z;UQQT{R$Ht=Xh!7Z91EZG*eC-36gV`B0Y-=3(tQ0_U&GQ`NV-My!}?4B`-J9SCH4+ zYu`+dfJ@FUcJ3^K5$qbR-Y~kB`H{`kp3TH|D?jXshnH8br$iOUvuDr7bqn`;Tlt2n zA(`+kp1~Rx%Z|4ac}P%#rKZx>eEs_MQfX;v^u9IZkuU?2NN6S;-steB6eU?hwwR)7qX+-6RZCoVlAUQKBpeHKPNv}T8+`I zVW{)^{dY7kOEJ;b5clZi z-)JDCnm654xu`9;-~t;DT@MO<_TST8glLDQQScjeRXXV>Nl>H(8k?DU#>dB#&WSWV z8TvgGzllEb-l@d8F6QUw!?~+@%lzDNN9&OwV{Al@PI5fT%E}^AQgm+|_8G0iubh$@ z8SKDDf8wo;Z|_@^LsUR0vsZ6SZ;0C>xB-!j5vE}YsCg}60(6{* z?HY)VSqIWjni1#uyW=NMo*0>%dtJJ8iLM8;qBI3^l_e_K2fDxS3ZAUs$3Fesiv}yp z-XEXI_bOug`uZZU5Bml`jnVMMY4fAz$@O(6`w`JrjcP{mEPw#cAI)+1w%yl+Y)6zM zRWCKX_RnjrOdo|V(6FWnN=Yruk5P*XkBQ;);@)tDDDBI}j?1qb^lWUzNwdXoUcA_$ z6e=gXZQHi7t{)l}gj|=lGl%9d)RpEWX-+SIwc8I60u8v`3w3!Y+U#^b0 zdv{ED#pgOyS*Y2TKkHv6N{!T=lSZYhrd_X2Aag5Dl6Dv+q~~hsJ#4e zJI{!S%TSqX#`I%!g`k9!?m`0uGka@^9Wt~z(V{vtrQw>E9zuj=)hXQo>iTrVx$vZ< zb;DmQhF9fpXbd8rQe|#|{D>22cfCawH{z>#GuiD)Ezu_tAEDG6W-z7%N*&1}3d~R_ zjPfR%GjG29$l%V{BeA_TEb^L3hO^k%@@7d?%+}G-X+O>86lPpN01Ip@rkP~sy985L z$n~Ta&|5Q-B!2mh=KW=WSy)Gvm3YdsL|r3?B=2<1G=P1y-}iPFfUUsukd|JA5t>9W z{o8|-*0h$r)mpAYQH)nbto6}%F4?7dO2X>yQu(zRYZNHOxy*ZxA@mFafS$S_5qJOSOu zlKuVtWDE*#p~orhxmbTDapcYzU^2zTXKRh_Li^zdo z(KF7TJxe_1+_`hg;&4fnhWmX-kWWH>VF1*y(u z3*GuJwwvHQ(5(pSvvU+%(QXk{ zP%o;iT*SZs&W^GDCAK$Jc%MH$)uCr(#7ktNusN-#%2B_i^e%=Q9X<{tC@3c-CvP(} z^qXN?Gqx9CbV-(+&CSi#>;6_QA}M*DAxP>9VRQDq{qpukL`1~$-$9F^R=Y!F0?3W@ zXqnQHFRkCxS_!?PM@#TxUYVJhL@iasFpt2%z;NsuMnbrLeIJzvC_LsT{v<{f zYiwcRy;dvv)-MwlmXzcGWD^k)p*y&+&+P6wM#qm|8Xg`-N z>Zs5}n+k7k7P0>FM$-C=(x{F{Z-9;~sH-#5oly)yGy>rD(V(^q3mQ!Zs*tc`bUovY>Ufhqfkbt>O`B0<|F-;%o{&+ zaxdIqvPJb`td_+un<|2mo_C^d`%HueDq<{bi#=N6(*<+$@MW)64V%VTIQ8Mwk*04i#gvRtV5?c29G7A;a9iypQ|8eaKfUFp!1niZ3t zE=Cr+hveoj8X?-tB9^&H72yk+Jo#2T7>jW9o0p~g&oVe zRT+*9w|?vG4T-!o+ZKB0ASm>gMG?tXxQ+~s+U?9W{;vUP!jbhb7K>7nBHr#+OKYpw zZ+uRAS<>+z0V>I)EVuNo7Ts>+_TP2;6`%$aYA^kmo;Slm2FO* zgfHIyJ7DxV$w9S(KvR($6`sZHTVvT6Y?sS`X(}r*Yr+Wui4%VvW`Om;!fv&&pt}+b z^6c&)$vI%}y~m->orKPa4uJ3aUy4pmZEf(<|A;gtPt+)k=>Y2@DRwc#d=GRu3g~D% zkI*|qTs1Q@yANPD8Y7|E4vvocGhkgT!$GEk|9<(2n5Yn6Q)_Fh=6$`bP@q^NWC-_xKzCZr`N{FRi8AaH< z^9d70zm{|$=nEWpu%f%Q@&?_JFEy)rya5oFZbt|o?#egT6EH;!JV+9k4+%>rMkX6O z0;5P{v{+}^XAR;o)@Zu7d0(^uo7*l+kmLgv&-xVW=!Kz z<7*8aX-1fc~D##Kbf@=o*q1Q!C2K%Q<1^qpkv&ff3tDEJS-2?Wy?lDRNIWt$r|Q!becdFUY^{O)TeD{HPls(NF|O5ur7ve4Dl6`D+7-uP%- z{06+&n-E!PR&Gh3F@&=D0&5O|d59ciGh0BY{(2EZ(1st!=8oho|r+Xql1WJb1jcH2!%;+FEz_>TVF zj@;+*?;nL9qQ-qc8`{Bnjb;?IL?raoi(98ppB|sIqi3H}k*a)jnA+FCC=Q6{3wl`};lD+4(>4&Q+- z{g0?r_u;-iLz`$b`$-*nqAd+;kR?k~5ty%!LgN@uL`Ks5bnYIRIbg$fGvd+&{P^GP z36}RC_Jj;#%$~C7Q}YDdkNC#QBR87%kgmYQ)wYccw~g|F&{NHaMtgynA*y{l0UHFg zk_FcIDKY}CtYi1{GgD`fLJ-4?i#FY;9yGAAu^H8WnjOijqxk_-fZxZ6ATlck^C(sz zGwLG#W>BP1$;jOuI*YddCT)E7lI;5ekBj7JGBHS!O@&HM29Z7HQArPkgs3eT{#H+8MJ^&;cppF@~xYHWN)X z5$8JW#>YOLIC*+mg`T4W_dH*a`Qscf`}8rjma_kGxWeYW@~CkxSw;Z3T6U~@oE~;J z{5Dw<8~~r_&g}YAIwv+QV4t9W-H*@D$c!G8={l~(QV}IoP|g_cZ@F(-mpkh1w#l|X zpWBYTAB0LG7Xc^DhbHpMjIe$rDn2gom%pY>=7WJ;=&O!>iR-P?L*S3_g5w)S})snYEScDNfBY(TLT!<&qPtiy^&iOz-8zl(u;6ZMjJA<>={= zX{e2IGAyJPrS`Fq^WtJ$eA*h@O{+3MD8t{b+q9ZGGVn@{7WJBBa~C6B9!6&CzUdq$m@Un1<3Q z|CfBQdLaMPzXY17u0E<7sk$>5VR1$OcW|P`(*o+Pg~?-s^y=qooRHc=ex)8{leDn` z1Q)w}^v2pQk1*p#v1qr(i zWtj_EWGLE+s7UGqd|gN(Mie=_u*Po zFaZLf^D#9eUc#`_w+d-lWUK>4F&AilFE6{Qp?V4OvARfqU1*7lSYwd&ZkfLNtCk?g zbIDE}I#(-3iXWsW!02nE`0F~@3L)etbyq_NkCGY;NL^gnt|Xhe{s4_GSa8V6Qb03d z$!G>gO&iK@8{GY^GF^hy$1bogQY1Cu!V~lj9ES1(<-OQBb3-b!d5s@%W7ub>rp-KV z8i$(II>zF$Zm%qOI-V<>?h9$Y2j?1q=Bm4;;0mO_K^?*t@@f@|R*EpHsbT zB(U&({|_!0-z~XWJ@~fTgVg0wD-X}glBX-wPW2?$kzum4gOLFgE|Kef!j=nXJ(pBQ z$<7~3)Wt|GDlygo5PP_D&xklNM^0<_y=`z_kD;^eLv60|=Pz7{DsHSnga^eoS}n3| zapRA_2>zw_Gn*^N(9n=2!hP{h^)524SAP8T;6uO|!F@`{0gSE*9Qe~)e%PMul~H0$ zm{Qn8R#n@%tHiRaL?dc6#wFtihitgFj!Z8SbmZit95Ppo)X7)gV8m-eM0-{`yn04WYNpb*Rj~&9R!E zWB%8>DLUDc&EBJx)uly<_THAP;TE!;f)uO&;Zh=;N+Ct}-=QOYp?Pesz0aW3YOMut zC8~q^Lvd*8zh5u@z>^A<={09&5C{Jc7bo!r|9D*&C3^6Wm)d!ThW_^(4!`;zPtPcE zVy*x2qVfHYhiin7kznzU*X{rD>`k`s|FM&+457!fL;H)PVlPiq+q7p-!GYj5F#4|8a^#wqMb^GH++EO(C{25j zw~KguT63&@fn$}Lr_w~>8A*;`4cbUvmGk-S2X43V$iJVqRAKg?iqVQf?;Ni_SR$}w z)fOqY9YXGvw)fY%om=(C9~a#o7S7pwOK=kV7LOfgW;@I{KKmWh@ebGaftL7Je+3*h z2=Q%el(fIE-D6$3+Wy;*`hb9eO-ublLgE284k9{~VV{<7V4$(TGqT5MFisyMB~-ZY z=%km{CZYCYT%DQ0Jd-1AJCF0e#ful8RANA?iQ~sH^tCf5sKm)5q5(GTwOheo?gp=} zxO3-ATW1G{H1(lJW}jBAUL7^KWr~}}A=jaj*e+~QEk#A+O=)mYP<>t9a&R0aceONt zR{J~&IFU}ZZuG(~rdU*$`Q_xQnj|Sx-VGa2=>GmLUMGFu%}rA=?A@rKT~1F=FDg15 z1`xb;%NAZyQPpYFrilh98I#ef@PE$L383(&s$_gyD zgzb2dpPy{(tf=UQ%~BcKWxj$s2l2rEq5dv)@L6(=42AkuTajul<=p?!ydvc$>9efr z-mu{z=Po}P8JVAR*?2|sL**?>`Y&F*s2#dgYQu&Y?NqB+-Hfz_>rJB(?;0hRjY-_~ z^U+t|Z(OHZ`DJBwFuiSg3QHeZ)@=ii_BOT)>DWo7DeQvS4pV|!^;+F5i)y({aYmpA z<_pHQ^hGlEDkx)?o@QdP>G+}?v3yd(>5oY!$RBm5PoMq{JNS;;kXrMgYqfJvFi`LY zoeYPPCSHpB7H~}?hq^SJhx-~oW;&-YTegflQ=aH*M4LJg-H~RT=5$XL5!^ zdLluycsC)DkMfr5-=ULcQ>3;>HfQN|JUcZT>M4%Y<$U6#lbyBhLa&aB1`MsUsFJy0 zm}c|!%H+wDJ72C2m2|R@tU?`lo#_W*+qNnlq+G`&xm5nbdh<$3YEGIosktQ1AHd7d zW(D5f;epNIv4^r;h{DPB)-YB1Pj>UUex2j4cB-nZL#GNh2qc+(T94%+OOyM@m(zm=k9XDnTAYmKBz+(1FagryLG9*`+FR~J;x$Oa)P{NO3K1TgYQP&zP)Do@@K6Zo<4mlj>Yb3t<=KU_orGle9OdAPu+`$QT}l~UiJ9Yt5>f? zrC3!~tTV6Bba8PpXo=b#th#TX@8$<6W2gd)?!$)FB-pFAHDf_{sA_8mp@1Io{nI0^ zMN?_P0ZOZ!u{R1@?T>8XHY(r^{lnxfP4p}EGg*LNmye;f6qghC9fQl|!wVCN;#dzWAMJ_GN_na#x&H;IY4si`Pp+ja;N+ghduMn1+PO-eo&o9NuZJP?0npJ03e(O*k zo4nOC8Xe}2{_eAS>C&YOWgQ;Ad;i|kYcl%*b93`R35$@5ii*|)1!x6ivTaYR4$JBR zd05YThygfyRbPMq!Yk-IOtL)7H48kgKD0*jy67>*_%7_SljPmmTIDie2E$N6Kv*v| z-LwXkiRm+E7GvWX>E{%T!{9>V&UdhmMN&cEC5Z3+;}2r%#c8%C7uwh;+MH#}mv><= zSQBPKMDh^4aHE5LJD3dHp?+JIRsHwi_le;ls%bnjublakF{|nEpu%IY??!R=ZuCu^ z9qg_1ZZ5oe7G@BJ9u_VdbB`)7geL$p&F_t&uBGqy$iF?YK0BXz*1}smudWKXYw_{n z%Y@ISSsPr3AA=6N4eB*^UySN`1Bih4)s-t(#K96m1tTIfZ^2cPsIt{WNcXYP3yM8E zXq9qcG>TZzYQ#Nk2r4!c=F?@M za)MY6f|5SoW~B4jes6|D*E_pv=hZwsJP~zc$}oM7VZ?Y`M|-+bL}V|j&l(301{Uq5 zEo*aO*(#)+Qn+!al^r6XEViy~%fr*W?+gk;?xv(jM(Aq_2n(x#Si0X-hHdDcUNZ(y zuiSj~*&%QljK2}!IQ?D1^XO<^XY43N?2L3*;Zv{Gc!)6zbOJS(s!## zR(~@;PAcW)U!qM^Q0;YskPrKnPW5Beja0xXgB-37Ovv}wd^7oje53)l&skv>I^Z|4^1s%+Wv7a}9O zu=L4qg&-ns?v2<6KQ$@?l^uUGgl};F=bC+F!h{FFB3w3cesX3itD;_N*&$aQ1S_8l z7cLa-#lvpC2;(9jm{0hCkBb4LY|s+w^z)Lcn%bi4FGOQvVm>AuIh*UrWoW~$$;ZdH z6Z>*SrOuaN(`nd+#SSmRli=X$t3}v3=B?RRSo7rU+fvx=U2NNu6yDn^H!^5Fi$_iy zU95v0Q|tW#17k7vq9%_0r?7Lc1RI*&OTo`Y%{1D4dT*-Lv8l|=fp_z;EI2O!5oD0Q3z}c$D~n@<0=P}O#_HDRIuAJ9N~Ol>^{DTh*4os(#?kQkPlMG(~BmfnQ9dY`-f(Pec+IHd93Kmdn7p%^~}lZE{aJ@ zYw@`B-Xy3dA(bFvDXEW5918b^5q45jQv>b_9e8jndsa#Q%a=tc#&~+sV*)j^6Z^z@ zSFg@%;-IESgOFZ(;K6hJ%(!Tq&P<~7BBQ@&FDr}Jd5<$gJh13DIXPRCj7uIgX+Z0U zML+p#+T8ljpGU`Jx1-8}tW3mmJj@Ow6Ty2=g{7EP1ZHwes;o0E7S@7^q~n}jeTu^V z=`&`iIXOKp5;;8e>dRYj|6H)I^@uOxcu`zp*SBw`&V%iFtV%}%5LtNz1@p-mKkVB$ zD6xRo4Pd$Rjab3;yM_h^q;7`WQtxHM7Fqu6_k`blFciPZDvwaD-d9hi3WI# z$^edPinb@H!3146G{_yoVduaO#C1}?*pr;6(2d^Og*6mH9}ekwlsoL-zyGw{L(yf+ zHo;>PWX~}76@xgGv~4@(=EN zD*Ep9B>{f`hMJng89$!RAor4sbv`%uojZ2~;0SqZ1P^82!3ob;g1AS&$6A~qIT_dM zH*bn@Qt%%31o8_ADB+NWs;Vl2)D_c{nhnu=BgBo1d2e)1c8kD{kQ;ZQLd0x;c6F(P z?Ijjv+g!X8KUyE&MDG{>OuvmSgbNo<;+>D<57UVAF?9x7O>-GagR-~5Z0X5h!eww> z9OSmZ^=7d^);I3LP4KT+@%;3qpI?xj%rxTPVqe89x&O%G=cj;8m_c{Ad0^ut7am%V zIO%KR{Q2oQR>dn4I3#oo1TwjD3PWTaJ-nzepAU(KY)rpsjGi1onS{$g(AeCi#I@eE z5OLYVi)o3ssF;`^!U)QLBppq+Yb(X+hd3k*M#a&47s@%M;H{M&USqJC_6(_B6PyC^ z%+uP+0oOe?CFDpGbMN9e2lfM z?{_pHWz*yXfm|p9pxbNp?SlwRBxe(FQwg?oCU#-L=J$@sFP3#EZX$Uu_)JQE@W6hlya)c(850x2?8rWin_xzb99ew#Ha*?gYu>Y$heC{Xv^-IeM&a2OiLu-=%o(aRbh<$Cj2B!?iuTDj|* zr0^U!cT9?af-yJm$Gi8bsq@!&k>_ehyb(pQcyJ$xu~1U>Q&(3hU%7GPMtT30mAiZ| zU;a$S??_(U1CJmiBR}P^C*Tl4r}~U>!JZ{yc?yezfNeHz-00@*ErICD6fEzm3s~-U z>5>Quwv6i}JdwW5l&}|Eh)Wffm2XS^1rDh4vbtTfe@pIAv7a(!%8TmiYEx%y?nyiO zJ&dB)cENA0)k!OcAMi3Xr)c44T;EdzKY#ovye^{urWAxg z9Co*F5Z*idBarUx6xyFA;%$aC9TKDCpmx!7+vzueBt1DqHUU|{@u^VS84l`uWV?I; z)~>Z22^hPZQZUD0*U>}Fn>R{p4`o)IzJxDnXKp(6{RDWw0`Ke>5D14U+fC^DZ zLV6?>foUIb1Sp-|k&1p-9zA;WI3uIs%a_}z`0&Ze>B67CgPWdF5q1pc`1<<#UKSMW zk&~0NvbFVtvjfQ#@$jMe)~#Fla0=;=YZeSv1A(idt}X(4_7yJo$}I$Aasy)Be%BzU z8wAOBotv>higy~7z4*+TGy5VH=OuQ5q4W7c9BO+YenEf5tMNWd0dC!R`p8;VonhqEaX8!#~SOMk9xO%>$l--V5L z#OuLs?jY&n1Ku!CCEnk>GL6td#vdQXfbUqUQ8wVpEsy(24g>=7As`X((@4*eW8GhB zYr_d01psMWk#e6fU_Eij?((^WpY|u)|JV^z=d!q9lIS^i0iYJbLMa@| zJ@lw$;|X^_8fDciw>%d~ z?t z4h_p3%b#(+o67wOW)CJ)-_|CCTnO%KJ3LjIQ{MwY-N#J{r?0t^bv7=EB?beYd5u=` z9Yue^wb(!s85#K%Nj>&lU4z<0Vz8XoI&`(Qwd)%jSA!h(6FLNHPxohMXECsXAD|I2 zMv%S4YH=zgq?=dmwg(h}4;}aQ_C_N&SKPCQ&{JR*ZNGn92Xo^TweKiEavq6e0N3yG z$h&CcoUP?y(5xy!C3g;}A;(b9ahs=}WUNk%A0Sa3m=PfM7SgO{1b5b~EP=h@e>E4! z5Gp4QY?Ny%OD1AhZEdYf7Ms__i-kg2gW<6L3tt{DfZ(t~d$3Pl9b1A6Xn>YJTo=hg`KF&UYcHFsoPslzis|V_igiD5Tm2AdIm;u=Y_#Ut_#7P0-=)lk6 zV3aztxX(RLf~9N;Gx(-7YoJwnk-Q7TxlNC+uRn?)x(A!K#0MT1!+ylY_kl%F#c9TM zuES0wjy&1PfRhZ>_2D7NZN{;qM~%QL0syHfz^_3c4je?bI^Hw9cxX|r3ocz$OWvyf zB8=)w_7=23)6c+hQ!6{W0u7=tO~}?ufPvS62!oyo7Gz9jV(P-_rACMAwz@>HD6hEP z-W?nZqD2=<^|tIuB{sDY-6FIs7_b+3!TI^)Bd?!5+e|D2e(#~{hzn>Q+3JzE!y4e8 zlZ=X%kpch!u7;-O^|uZ;)KC(D=lWnOD=4@dc6hR268mZ}i3_D{2r|D(e1%egs6m;5 zfx#Ncgg`==8@w4`dPA(r%`^R-Un4N5ScpGX>rs5pJs)K|w)Q-$Q+T!oaqeAYCHKeSV1SjYfGx7bU_2NS(!7C26uC zieg|8c)dzgG4}kb$7}axmK{BMvoHdmx3Vop(*Ml;^Zk=(TS zr|Yp}$G(D4{Fr7NhqM3ppl~-D2NS_N#zEa(Q%3IUq$g|Ztd$pBx_b3?xN^eOpE-NB zt|A%1pu@7L1{*VEUZw_rh(hsVr_ zx-qR(G1?IDv%}1sA{M-9)0rZX8VW1w04@dDTNv$Ay4}5n;zox@VJ7-EC1;!8hiyFT z;dNvl@+fz<0!a{c#%1wC10&sd`#J!0NxY7<`aNA8g2j;3sw3TBxq3A}xEjl&zT1BS5e{&oQG zQrJU+#-DTNwxwUdA4OOwVSWci7ZPk@wNoEpsR(5U!zGAEan~+2lsn?JQ^OMygpn^R z9XWEOZ{bCsL*T7Se3ov0Q;Ikpi-8d+MIKrpq$|!KA%5T}`TSQ)_kygyLkQa!RbUed z<%-uY+|4Y-ahRL(644OZKxb5 zz7xAPQcBM9xWKP2COf&-JDNpn-VfjA!EqB~i34h|vb4Ovvl`K8)R`5-m6*Qkkbv=( zRgVnY*?xUT3XRuLDthZc*dFYU43xHufA{WPanv53SqsH?xZpM>{cy zM@HX4gm;08sBdvJASDnK|DyUj8b8%%G~q1n@ro2n5;DQ`{j6-0;N;{4`%{W)vf2A5 zj{(e@%M+uBZ6cfuejakt0zSqeId2k85t_b!jSAhbqT&-Meq8VBFakN)L2q!Q0yjoX z5ATM$+M=+UxVa_%P*yxlN~%6_RxwpA|5YgW&QpE~n z3G~6?5>fn#2o+OMR4=h4M+Sz#gpju9d)5kQsws^ykQ`^YBumypt7Q}rbs=>YvkZR{1Z_8W_KtPH` zOw2P2@p7nGpyq~D4LA$DPK1jj`X~t|=)91(w6<0Q&x*r-t5KNKCXN{6ezSOrojk<< z5oHO&Q9+^mdYI}^P(+Lu1MJzA;n=euh2)OTH(`vUX9aP&mrO8K*w z7AV>Rx}hrc{$}b=cREv+{EU|Tcqa@H$qK2f#Kl{8($?=Jr5Hf=J85mM*rg5LQb78) z=ze5+Sj=$5?etDNYwPzo0Rm9(=U6HxCZ>)u($;O;J|1&*)Kk#jO!*g`CF?xnPXKQA>%&p%R>OjQMjVUORhr0}iMbU7WMr20Ig+x?=X<4LlEPN8$B= z%*++?@wyrP1DV}FaL&{So2L|&m6LXjjCA$4+-vMlZN)nv5(}MMZ;-hx7YTctHpwiR zq_O2FUB{>LXx>8E&;PP!Ag*X!a zvy#Al62M+vTWfOmC{k5ZAQ4ln=)r~3C+}c$8$Vo7+&ynEujH>{1K~9KBJ|`ks#m@D z9tS&2rE=b&{?{>-V?^aVLy9oHazU5-8Eh&43b%Q(lANV1gJN|!kr&6)udu`XTFIuF ztX*pkWjf`sZ~WzpsmkVCTS|2~wX2bkg%5CeN0CHofxjRL7T18&KVjHnsiZ z8c+$+sarVk77c10$^N6X?FtGs!Z}=(NsZCC7XpGPoLFV3>u_pGSx-~ZX2OcYR$B|7 zv3_57{ksI-W48||fH+r#%}-`Lc6L45BhrR|jbJ5Ce!?4)vai84-NxTRA*H5Q?|Zbh zuxFqLqX8=ugPI`8)g16vFJJHpC0#&0W%46^doHj&$p4;kP%9e4*tBU=apbNA>8!^) zfb_AoP(K;2GahmGlbI_?-37sBl97P$Enl}%(N_hGLql8JJ)A-yTO7b@84Qqe0UTNb zjgTFh&r3?wVNO9+4lQd@mgf3Z_@n9NSXLJ@(KdZU(Q3ad=M;r@n}%2OKm}AbaU`6D zpE1I@A8y(h53+S1lK2jppzp4!DJkTu>9c0316lv9Xhh5}*&{!63wBs;D)}iC=yVf` zst$PdQHRruL}X!Py8t$vuUWH3G1R#`09s@5{gbP-T6p(b7W z8WsRNWZ%wc%K-!i))dpqa_kXg*-CVxPX$PqY#0El+_pXSUN!UHx-3E&fDBCU43V-m zrWas896LlM4(G;XC`kVejjxH?lzB~z{v}&hSt7t+9ZIUtkefj z7K=z+-jDLdJWzRb-Ya=uy!HlX%qA9VRJ6C%1p7P>J~(=*q)a(Tvgq@(a_$^tbOdxe zwjH`cd<1C48+Y&Nr0++deE4Y?!=74>og9oA9Q-D9GhV*O3AwYVUEdE(rzh zuD0r|9nL!+D*CM>#cHa{A5kz(ygbPK(dnz_O0dx# zctj|@%W(E;1ar5=_BE5t${%b+*btR^7--#q0pCiS(bP!|#|0=^gckWBy;-T<7L zgFklxC*-40I(o5d(Q`uW^pkHvQ%}E)eL|puPvX5Ci#-?19<*z%_{|T7(cn<;WDa#} z0bN%%@%D7#^e`cH_v_RFULfBt=eyj#W?ys|T*}k<3r^K-J~FIshz1Il@B|Uyu9^Xp zO5g_JwG0TP1^zkJxUl-BTJTwQfVQfs8qCS|Gm#J-|zE0uitb3V~o1* z&;9va*SQ?WaUK^bb;E`Yr72bn>4?f_Pg3r11X0(mvcvQmLHYp^aw8L^I_&OK-48%w z#w-AsnR|PfZroirif#{7l2H8hLA>l)RYZr{Ys=>q!4)1Jztq#wDrX})I(>TX!i8x(J6krYQz~Vq zpk9~AZEKvui4@?0txeguQ@#ArkWrwF{z_YMukUsf*ywxs>!$Vl@!#~bRy6A1U&orD z-ES0?;;V;8M+DNDrssN$)AO8YdzqrceBVcvt#1Xbo46az%q zgj})0D|C?8rauJFT-0k%IA>HSCwEzaQAY zf5pZhCfp+8jzu9x{=B@X$A@oy?#KlUfR2O9r{YL_uNbkx&Mp=9GUe=yp9QOb)1eEh zg*51P%d(q24z%Pm>e6UKPeXr?N*hNpkEdQB>KWgohK|Cj2bt|-{?C-^RLkV&pMOr~ zy+R!;%+CAxyuG13Y}kAunznq-X&H^>ij)jEwhs2IG=F~ej1<;>HhFos{%Th6^qf1@ zeu<764KxbHK$5R{l8=TiTqia3u;Lh?7^?GHFYoK~>CX|JkhROX`{sNb33hj*8U3qx zqTVi_%Dj`&K~JXk^Co^Q!q_!$jH~OZ7vbyGQFkQ~>x9fFRronp6iD|aJ-J`4;Eyy@ zCsdun=G$EG^&LugO&U2wsFYnmbGE#q=CcXVPa0Ud<+0M2w9XxS_Z~sd4fMBs=2KyZ>EkeV1o zY?uLd>Gm%C;FA)Spp3qN7=tvVqy%&D=j%L( zj~}+sdF$VQhrru;=0+U_@t39w^56hznCjFQeD^XJr<~urefu+l;13uugG60gRi(YP zMVr#iy|YLL+qZ3d-ruu7AmV)5p^?y@*v!+vesb4A|FV+w{ zuM%A-G5NE{*suTEM>{aO^2C(tx4%&UcJDbro345(NV~K`Qiw`BPM#JOL$DW*@+l8| zUDy_|SIZYSQkrhDLURKU)w||s3I)lt89;rq=syBz97K*89@OUy?dCQt+ucpx!y%q>frwU-?nQu7eB8Q zx>-8eInZ!gJ=ZE};1zo{#bLvkEp?lkRFz0Q?woaj8B-`NB#t{W5*Y$hu3w@?f96Z= z;zxCyD+m6jeLy12M> ziY9S71^h(#;{8JHigZ2Ow2@jNr~J-u3zyf|aW?6f*YlQ5Isn(raujKY4jp_DOMosX zAQk`ea@~A`&0<%ab%{_>2zZ0M#cX1#?fS_TC24`)FIt2Ut)*@;>A2|Q z)8E0t;S%(Kgu^c!%D%}}l<)x(UP@vb4SDQO*e_C7i|!pxBMr#k*mmLg@#EP~(|BBx z={!fS_#>d@CUk_)^V~Z~H83N7ch@oHKsbIpuulGg0N28nef;=QKaIC8_rD4A zSbC}qTkK>&V$C39ja{iu4i33aiFGv;0b?yQ#vUHL^xoMD0%1_NJ>nb@^Rd*Pyf(j* z@9l~85_vk^!Wj(}cP;FJp+dt&c0^SVvyU-?4B(e(&bpVK0}*GozEN%{u;E0C56uXW zQN%+-1Xeja%|jGm*R8xIQL#MDrJH?n`mejSprSMAtrr9AXsVRF`)80Bhva4!>x?-* z57=EBL{`uz@afco?>a(K*HCel=*(TPAe9pPoYl?hne4S>0ClB?D)pL}zxs#0ru=64 z9QV(L(IOiKr*GkwMc}`%8(`fj+ZOahB7*>Hel4B~jV%}xt-zIs9XoZpKyol8sC8;* zKX>-*Cp1VQYvQ~4FTeJO0HT}JgwVOTSRHfn>qFkvM=>5QiivbbxE%Jlz;Req&0vCQ zuVy`zrBx-02w}6huZu*RLbejpV3$+crKR^TD@6KWVealj?o$~BLVogwt;reqqAHU)x~qJq6;YG;7QQ-uTq)r(Zgj>_GiXq}z@lVBzm z3|F60FO~1}Gi8-P9;$q_UYz|eW)UzYs(>#rg9C5AL^*=H*P0`9ro zQ6r^hZ>jYc%@RAn(NQ|9TX6;aTJk9#}R>$|L*|zNmZYbS+`9aOC zKSK(w`s5mhejvKBq1F+-DHxIQr(TVP^qfMs+>VXa#5!eHpdTe+Aa>WFmYowl2<6L7E8y^6CYiQ)fh`6tE$?rl(gyP5*8s@_Jf_On{|@#~gJrBcYgU3-6Q z-YJw$uS3B)_i8BFQ&&V*+(h}Nsa7>XMTMveWO<4Gv!)P2`6)fYu@Yy6=QGh!iR?9H z9GfC^EgojR&nWHdF`s@|W*wHDb;EWplk-P3(>4*B%@gaOyVBs`ty0EO26hT$G9ei6 z71K|Sb6XlM|9jd=?)p_vfWzXK(dM6OAQF~`6w{?Hl4@}r0(y3@46=w z1a-?4&VE?huWw%wPwYz5vvF}&qsJMgN0ikKw>}eJDJfY=+2Xl%VpY4yjrnH@lo=Mi zzgCc};x*r@$2qfSUroQs?NRI@BA<7OlQBYH0wJ^?3;{jOS-$Kea3K1>R4{$ZliySi zuCM=Uf^J>+V9P%Z;QzUEyQAMkYaQAM9V~#VUqC*SIWr28?o}{Ntj7ai&y0(5~hH0_-UI`y$A&(^%*5BoXJw*&^UL(3L^QlmwF&Bp~GJKoo>B0 zc%Y3TkLyuDedF#ks#9}pUfueR3gP){k?0%_E~}3j7)s<}?jv_lMsJM58F3pve7JJv zq(F?=0#LZ_N;?Ykez}398LVezBdQG6{R#ixU+N6ybUEkH5CH!&Wz4QLWDPIQR@p7| zo?@Bo9ovqf1uT1)N4@N{HLa{r@X9uKt?livUv4B7uKJ`))!^soSq2bwQE-Ps$X5)2 zd@X{&C#J3_r9gUFR#j3J5gjFa8#>OWXHq8;9)0cKP2KF>d8FmCjRvF?wn!kQNdei) z<>Ge4n~3|Rxtt+ff75Gc$1gcWc_Xzwdm83`?*9O7&vnR$hMRJl^E?^2m{B-z-m%k+ z4aHyHTJ%`P`UGnG# zr!fr`BUm5{NZx5wt|Em1jGTJFRz0oNL)S3Y*dH$%T{N#OACxYxy@8rEeXE znj_=vU$?;_rHBf*nik#?h&L6hwNyw;Tgz z3Rs}9^8{>v8wA;;m?q?Qz5HK!*=>9q*S;P>R7BesHAb`>L2C_w*0!vy7khk*jKubA ziYvNS4_5pY!vWi^e)?%Kb~QiCz}cV#meDoG`W3wRBF<9mZ&J2MwzJJCa)HV zXdD$LTVp<*i6&V6-Ly{I)F16S!Qy;?W2=QTKng0Djc9L<2v4V3=(p_B%8Ea?!E#;X z_X?h0J0~g|z{3aJdcq;oq>H)j2yHf^uaIR)$21~VQA9K}96BLJ(;QC4IM;@utXOmX zW^kyC12QMP-XjnFW&U(yasSPTLm&#r0YDNu{PXyEZo1f-3niL zFV~)onha4?oXx|O`WdXcnALl8LV(PBDG*%pAv2$jhN3Cg2aKa5LH*TE^A zTlf^17sz1%Y-3&SjoTAi%S@JCQE%38T7!!g!Y7u?6N`E<8PS0>`%QM-j972?w{I_? z*{Cv*5VMvT2K>5_)e->hrR5)!mbfu)66gzZftMEbaMChc!7pFE$5uOh@}v@I;jUCY zn~RogqH+wm*J3=aWneP;cn5+I?QcFOF)U@BXeK7NdKf(3sln;Zd$l(ZV#qGngxzFR z0vU@+liu;=fB^&Yxjs?Q%qaAaIO@##N97RB7ny%$4UdjYV8y_g%Z4rI{Dk=;cM#z{ z1EdI0mk~%qHZ8pLDyv!NLp{PqN`o36e$0P_ZpaRkd2FlYR25mOF4;-7g?0Zwm5^t2 zXVl}af8Pg(JDYf^KAj@;g9n}Jm)GnsNXmyiVYiW35Xqh)tpA_Es}FBc<#Y= zh6|V$5Rj*KIT&3O>a9s~s}vTE_3`!9i>lnxvZpdaB^i;UIWO%#G_lpgMB^DV&>IZV zy0Z3*p7icrxxeO&W(oGy6cVBbv^+^okx%+arRx-JwJmepgGBWt$r;;}^U}6lo)VRi zc?9XJfMVYWyQWK++JI;+<@I;J9?5D(|7ps$?>1`XbgwZHH*UxrYythVuw95~bv6&H zx)mm^D%8zA3sus#Ozt!-!45rO1gh$sXGK@NLqSLqVH%gnH@`~%w{G1ob5}&;pm6%f zp`;E%`IVc)nfq#M`t4!3_E+iNG!?7(P?{a=P((2IUm2<}>7N}tu9`W6i44=#hDLMd ztPoLti6oQf_ip0J`3DeA($<(qmp&X?!_@WH%3*@?PQ$DK-?j9%%e92{Kx5z9({f}Pt|E}Y!b?h1AKrP=%YY89eI(tk@bYjuS#RjK#FdGj{vwg^tY zBICg%<*PUH5@vOAeh(? z!>I6-8b(l1u@v2rV&+zTY}}$A=0``*S(50bs>y?&HT_{n?%_$1Uy-Y{3dJme<#qDd zkFKggwdwT>xdrK|CXbKpFFGHda4XT_KETJaFx#fo?<5&2-rRZf<{$|tv)LmLEPeEI zRIa``Ht&Lk`%^uoPF~HLDY$+gpP}&Pf4ZYhOT-W|zCx9SH(u83>w(7U%)s4`4$WP;>8kkfLI&cRJu5Di4^TI?ef4=;MS zH?RLK=AcRf-D;4(%?cH3D{C8@V22{2nSUyb^;kAy(;ZKklps1E$$$P@XkbZr0TP6P0^Bq`$=s^8b)4qrr2T9hAGeS;$D)$XlhwX-6 z-30i!|Eauu87+TNhUfnMXQ%)tPI%g=jZK5#UmvH;%7qscsHlR@(+^Zb26x#St#d^` zD2hNzVIX}2T+B|RE!&W#$GIO(EnJWm&&G31ohCtzbK^66q`kQ5tjB`6UdRsk@@h5Y zOQpQv06}TXh^W*5ELB^y%g(>&%k0c}^x0aWs1 zqc;|_-YfoX+1t2w^GoB=Lb^F(jhYf_uI*W~!8Bskp}|XM%Er`<+4SiwM07D5`CK10?5DzVN*EyV2}vct(9h}w(K>2-N}Bh-*yYMosd9R670Va zM+yxMzDKDqB*^OO&(ylMOs1=s44wGBI&)jD{j#`AqJf~~T9wv-E=3CXwhJoU1sA2- z9v@`|3m?(#i59BK=<=kwNIgBEDopKr6G>oyF2cyWYzbrOYIrJJEb1zIx&a-8dE211LE*ot9^!3&%D8_x=6^k8pPYm3>+2H)l>qm^r9y-|VO@Di# zZ}FBPIUP@rHk`5SX=M12jzccBbe?l5%6`4ub*Y1Rxi$l1MU|BqHHG11vtj-FPcJSG zsGrcX^IMfvfH#)8MlXKOV-jdUs6!F_XAszG{0W5XArXl(f`;7aZFs`UYceJXe>b98 z#!00K6DDLfUI1|k=0dLzmROUdbwDp;C`jw$mb z*$`5It{!G)>R~4$E+oPx@Nh1I2q{gbS;jEsl~gpZ z=UA(gn)0x<3ygml3Wq<-Y7h{wson&vZc*GGI|sZ2(xYA~ZW;7Ql_7sw&02*}TEcDq zMt!V};86&1&osU6ce-}yVEjIdWM=;O*r*!v^x-2%*4Un6fQsVr0uT1`+NWogEArk& zt!hn^TU?wP(`h^%FUtKd4|&xOEm|PCHB%0Z*<8Kh$UZeZ5#1705w8Ff8&`xLjA6tx z1;|#&+4N_g?{4iK#rTH=8c{Sf_WYE};<0m}5?@vqu4&R_3 z+w?R~A?A9|+6pOj_=7c6;ez`S@SpwK3yjJ<4=n+z6r?l9S)>I}Oy~Q~*!kQxK$W++ z5Pk2g{x>baWzDj@b^nP@Ug=BC{C4e~9qpwqj4zzD@%?EUmb?{xdE~~r8!c<>R$uTL z{PB|R0@aDXtIlv*wZPQs@!btvp|b&!HLI( zG=RA1OnFJ*i#4%A;w-4JD2f0A72%f;FtZW}*mRi)DczOOT|jHkFL>!^O(+RV<5$G+)Z478%x8R5q0=OmA+E-FL57YI*ct?KE zNmNCdzw0*|TTa#E2P}%$Ls6q#%`yv&p&NdN!0(WU$1PXoL5Sm1|3CE}o7lPSW>yTF zm<=DVx}~w+p8KnlgEO4JmKh& z3u5EKN=vL9g(#{EXs-H zs>{Hf0MH%LWIwj8FUW>i-}U~4VMniTu=SJ>bO1Ed@{ zpIbrm5p+fK;-Y`^rU)u#I>9sgvx>J9Fz8|?;&|ZL8h}1GeT?-<9%)9DGMQ@s{{1?s zR40};-rOZm_u%xc?`}oN*{T-_o?3-muO>7cK|w*`tr0?=C&1vxRu@6v!7~M(JYj-9 z&&@C}3&{u2_}#L#Je#9L)kyDtU8;8<9>$4Ri>VY}e!L0&D1wqaA@`C1qvNba>DBb| zF#pn)>Obf^BR>6{-rTm46aVQyIR3zyQ%?t#S6;eXu>SKZXNUD$1G4wp+A4kht++H% z8rF|C zRap&rV=d~*(Vp?jCDl~s%&6|?UN=u=`5u8Zh%emp+CC@?swtuYLm(Z0tMs6|1*fMd zRL_;_ii2)E(`0^6%O#<w#&8)4Iy)wZVS&52j8C{nB@=pCqavKrv?6T-( z*d1=2@3y8^rO(%!sGy)Xs>x_3uI0Mzy`RN5uQllT#%g8KuN}9nc6V$nJwDLO@XEPQ zoelo;awI>p9S zk;nR@oEyI6!o05Ph3GT@0$aB^%#jbfQci@P>8LZRbWCP1`bCF~#w}HNnCHu&k#08O zo;yOHL~J)_#AbBJO9W%6r$QODw|E)6rQXpmR0`YL4nwsb=Y>|j3f-G!%FF@tHLF8! z!n2;5;+*lNq=*4}EtWCl^g+ynNd!o=;p7mb7!JrW*jEKXCyFt;Hvi&NV@(gR z&5j(U%DbhiICku_;%H=&8)vrwkwVV)A|Tpm^QZ0e3m>l$sioH&lL!Aj5)1JU;EKI> z7&`XPZex1Tr~Gki%V>vrvHjMVF26HR{sP~(=M~|k3_Zd+|;yVZZsp}tT6l2ITZ)%|xCKwT$&j?$P!WmyzP|6JkR_yIu zzJK6?lNSkEMskff$)ACO$Y<+&FmiL|CGvM{i@e@{a{4t}UelCp-bLPx>7~Gl?E*aIDb=n&wEsjh` ztXB3Exv#Es?@^5EQT1=}$_2ZwxpMMb9yThrn#C9JkC$&7Zoj(Ea2 zIfLlleM|H=Zb_lfq_3K#{qN7u+PErjU2a;nNz6T?q&vyG#+5%mINK6nW-JqUFWNA`IJ$RAbLoZ=zPrvwG$Gy1|79O^L24nI@u)bQovdpEM+Lp~>6+~aZW}(4C*89 zO07>BL6Q(HdOY8P$ZIj&nt!VBixf9aNiW=fEFNw^;@5T67z?MVKQgGKCs>0yg`G}Y z*Y50GZ*R?Up7AwAbWoRirCKF2NpY1vjwtnmQS?e;HMiniH*tP>J5imhEXwHIt(#f$ z4Jz5UpLIt3w}a1R88jh#x3cdBs1Bd&HepZq1iH-LZ4p z<=0CyQucrSy*}Cq$^@(z-5JXh|1trnC?C%9oh6v;ZMPO4`2QfM?2Oy_aDIl5lfh*eX#xoe2)mf z)uZ8-uh6<=b{{quJ<9sEF@N8t?GlNJE=Alkn0MYMym7VdwJYPuRTQ5=hK~6IL~u+V z6|o`CCW=fsa{Dz1@{6bpiXN77A#3y+!D=mvbJ1PHgNeckHqU5pA(*#?qCJ>dy!j`4 zdBdz1{w^Jd_wT>W#fa|AcY|Z^YH#}N)1(MI`_$1jVmWvnELDm02P^jUiAS(Y4YH$P z|K1a^w2($IEvbPO{Gvbn^$oVW5`s#I*XWmz62>ZBl_NOo{xG^9^=S?aVN zh?~wR6>#7)iV_m{ z@G5?4F2f^70i1K9h1(Mjv??8vs30TMFUJ`~C=E!>Bsl}vQ7N-(dr`;Vemh4^2FiSC z)2G+N8|Qs-m0>Yh5C1BUS(N4WTab^>rMDN4j6Uw~vOgiE?Y&b^U#&W0rWq3EcGxN~ z$#DDsq~-?W^0R_9h&h4eI0@X+Nig1V0AcAxP>S~=w6;l9^(Db|P5ABCUk_NSV(gRm zoh58u63<@@T|85T=)GY3YqN|E=5QkEZHs^Y>8G4*5o9*MEh0Qv`&jkF9{Ff_rJ|p2 z&KZ2;&;p87)=GVKKXwZ@b7OjSRS;{_5AI5d_dm9`%4f_hL>I+p8ievG$^0FrOI=~^oo=B8grkXxhWp#+_%XtCA1OK^gF$F& z>21O;`SS3{NlWF74PC6Ss2wnlsd#7eiu&m?3&9aqXBm-M-JvAvUE5Wl8$mtqv`2O* z-h$GEO?}A`pqM;tcs{l5!i5Xty;SwU6|dJsZG`*52PX-sREJ-F@hBXlR{LQLgkg3? z_yc2v%m;(&B2_sogi#ZdBZ0OhFCveMI^mU-%+#{}VM-0%s$@7oG_1nvOpGL7+o_sJ z*N%44Mj!pwAlRjcUTa-Al<^!GmpNe&EkUAzixC!AJS;y}hl~#62IkM#fyGSD8zYt* za+vNT83PclLTto%i|41gkayw30hFw*zQwgx6Thy@Wp$Nff{b;S6{KiYJI>a-aQCeL z_(MMezUeI+oS1hX&;p7J3$abO#qg)u7VU_P)|Z z#+uBe1hejSi8rTz8Cwmj{`DiK14u>9*_p#146R?^Rd`1I4VBUBu-wx!@3d1|1af=dN7``*$2+*fdrO<0(T0 z1dw#+nd0{;^9?k=1!cZK9Kt-xL>>gPd728}7K@Lt8n0#hdZ|8RP{*&ba(p}@s;bC7H8P_QK>mydfeY=Q3 zXi`#;K`_vgx+)~T`0^K^z)9vSRB%*lp{Lc&CSf%Cp8`P=nA{hi0P*YElLqj?MFQE|4q%#exVz=8M9cV$TE67$Y?FNBJG6E?PV!s1H8)&{H8BJAlSqWRn^zwl z9WndsN^;%hZxr(~rF}Vz_xae(MNE!}mMW)#L1D=;R6`deAyIVHz%7I2WF=B>u%>AFBqo71| zS=p=KWj~_eKMy&f;~&VIee2L#U51tvD}v#ZT)qyU#1~S$7bZnvl2E;JQEBvh{GOKq zeq2d)VTgu4>k9(j;|&z1$ne4MCQ0ATGE^!4hqMT1j^J;XzH_f~>{*lX`yEVUGL7Z?5ROsB*sNMhJN3Ms63Z?@X~*L^zN6N33v zN<|tl%^YFjVLW1ToLQAuO<%xQTZLEkl(tePkUhuuv{6e2rk1sIiP?7fG4=m@U&=dk z>Nw@V-b97@NB6!xj6jw&5%HnUDV-iL0I*fhKTs!lrWCkMyQNR#kGMb*Gf`gEO|Cs< z!WMPJ^|2z$CUNko}WMblFcXnZR?ILrU14nnX1!Cfg1kL!6i?)S~MU*9Bj1XSF}Os8V_M78hM%CCHNV zw!KkD&LdOq6?}JEF*Q@+LMM^?$aY55256a6c3K;z+~DoQ_2T#t9cadnWWPFVMb z@R-G*)l8$fOVZ!F>ntFq>j%-1ket(yZOT(a<};rMnegfRJ0CC()MB3Q3A=-1=BKs1 zaF_z{8Ldh*_>N<7#5x9(F54U*xFgl(%6~wv;xly(A3C~gv_*I~TloM7{&jRGouI!{Ns( zNLR*DaWgGw(kMjOqka?*Q24b6n!U;Y1UV60GJP(JfSg_osy`zQH#vvXR-^|+BhD3b zT`J`+Q|{AR0?^AK%KSnctzgF~Ye#Jc_EPKu4m1`aBxZWIKfaW4MyQe$tC;#V$u%Ox zBhb1fR^xqdd~Nv#eQkgR849s(1c;JeURjRN`toX}EamFS05oDl^uw<*QUiPD!%dVm zz)*g`-pcXxXF_Z4>^vgC)l~t0Va@>zn}ywzfk0}u;R{S7C%Lqv;iM-VOsb`t1wxWJ z!Jc+|(HK)YoMpv4gd1dH_N$!j(6M9huiCiQp7Px1+iO#yhC`ZSZh>ONkrT%+v`ZMC z9Qf1GaC@LDKKg>}y)}wyY=~rOG5^sQgjUmESCeh5jbulrdt}57 zO~er%mE0B55U0_pHR|8otkb@Id(l1)H@bQ9ox?&(U?wBXuxCELgnM?XAheQ#Lmq-Eb&*BspJ7s7D6`DZvzefjw_H|-{d_ZDN3=?t@ z#fwQSVo`0TI%SF>ltX-libBv)6eZMf=8SAhJ@PDk{VI3w_8mK(hZA&0j)v|#PLpxB zA5?2U1WWCJZ$u!}@C3!&Y>GHh=-_nHguxCn>F|SO>&I9?PijLa8${fE^((R3>4yuKl=5$j*L}!H zVoeLVav_vpH11jLUK+*%G!}M6-}LMX&3|Stt(I`}OJ5Cv!yaMolxb z%i?G-@%|3hKhY&$Jlm07vtq{4S-c1x&YA~$OX6dj#ELw_OIDj1*U;o6g@zVv4~@!v zrluaOHzF!Z5CoPI_aeE$xC0e$yQ5QvkuU0xWr2pOOcTx`@QMLl(-1cU(gio^mBe(; zy{&c5v5qsCQj3(C}$wO3lSXCa3=sZ7KdKIZ_n%6uok7q;v7q<9w=Q z5LufP6Y6}K9g~T#!?0M>@`LDS#))?U@oaIKFQd3J4FLNe<&lf2m?5ZBa)Uu;PFqt6s8`4xRV}k8P zy-WgeDyCbLPw!?Wnb#Ao8&mt zA`K9dM(2-|O3f6+yM|LPt`y_>yUTD*Kt3pp$trc=q))sR;^LkVMrEwiUnh9r!p7*6`LeZe z*44+|z!dMnrS22+2H5=hyXr?fkEkK(mD_JSEnd;iX#SPbE8Ut;d0(LTHIug%ybd@a zzo1J*9^;f^$Ht9i7ifm5hgz(@ww!6>b<&*FWH&bWGAY}#fBjaHvvk7T4S^xr7JA}X zNjprCorg!|5-P@=UR1T?H&)xgN4AcRkq$?_vz5d)>|kMQ;nXV7=4XW1QCtCOm>(I( zT(<#fk|miCBu)=dL+=XyD0bRU$HO>hVS%8eRoi9pGnMS^w@RTp0ff1UQ4q|DM-XM= z)~K>XCO$b1Ui-dl8|GqL8$59w0TV4EC#DIdFT(y|!w~#KkykPl-G_%pw!>i;Y+xo; zyNsGumShJ~B2H4Z0{)RWER&#ACfabQjJ#o|p_sof%>m>9(EJLhnFtcZ zn4nr#{{hVOvE7qQ@R0zSiTURreJjdDt;QHmJBiYQbak&NEiK*f{NvWTI0SogVVDZw zkmU!uK9w4Z;mw0Aa&;jl((S@K)2m~JT4E_p^f`KWgla<2)55dj2KtkB1FagB`RKUl%Ak3>i3V@u~$0X>qL<<{w`&U;mr4)zt3}Qf3MYLb)T=qhQeD zW+P=OpG;^`!6(BwvmdqO*CN1{E<=t9dUASnKN+c^$qMaySbm{ytE)}&dfCr+SpjvKixWw8Z!wxhHVUz55lp%h(c zEXwVZ$LMTt*|E>%L+TpN`=J>$=Z;BD?RT!j+JOfLXFfU#+BOc2ToW^SHJkXI5@@96 z=k3Wu@to4|d6k2clU@;5cLtfkMOrbQZdlD`TUKvDc8p7aTZjZ={$12Yxavr;Z||ImxZ*wP>pJXw*j$g{l`3^VL-Y zSl|ITm*^<12y7F*r2c^_NKP5kub`8jQ}gEUFxtpC8m$>SJM71)lb_+(!OKwOVw%bz zPhu(lE`_x24oP}7Z(iSy`rz^|#$+8sDB`AJrrNLH*11ii-+kIODN}qm7q?gNu$P_9 z4o)<4W;u)VV3USN!J&};c?oygKlSJ^J-fu#^?Or3{Fo2%OS<}rz*gQ>+Yvcjg!;P7?6cSAQVpv3 z2N>T6l!>)21D9)b=!PPYfUK&@rXlFigP!Gtip_C5Z%E5YYpdA-6pn##%#^`}U|J{08et|2)V_Tdo`rZ};& zgN}$BIueFhRgP-*BWGvUeV6QXoTihb+s*=wn$iFT>}@t-&nyi!)sNY}Zx`SAv$aXB z-^Zbo4jnswIcR(1mIx&Y?B{xJ)DB|0Li09>e+jq$nvwy_*5k|`%P6;(OM^qK zYIIc8SkBlK{)kMd6R`f7hq8u*Ey&}tcO#hz-#B34z&QtKpWo)>?DuOpu#sT(h3v@< z&^`0VcFuzDom+$Gev!3|!3#G`L2|}fTvrj2iuOgRP;xalp-n{;5B6qbgOg_(QnCjY z%H1cbf5AcJdnk;&*CbfHdicLHU2+N(-2@B5c)+g65`5sVE(vyIVE5a%Z!bgBp*`!n zledE{PCvYveTfhjx$17H^9kz$mpQ@4;s0}pg4^zHg z5G%bmb$dq2sN$b!f>MG1^m{gov+>GpRrnW?Ci+;Q-?{Lt%J)A;_fj#^=o;p7>zl=* zg0|QM2StC#g@BXH(!?rruiVg4Ut;}hHEzbHGhpwJ3US++b9!i@tS2J}dj!)}2oK~Q z&sn!FHPHDO4r#w7^Z%Z|xG=>S!q6Zk+#d za4FiD+G)VM2DMTeascYsN4g?e@L}a&A?-S<` zt{i}p<}Og(4>vMuF)IBv$A~Y%{KkNLFvhT5r={r{J#!78-A`Fux@YS(lM0tXw+|iL zPd@+hZm2&+0G)1lpbGhr&0?9mQF!|oP2-GNv-IlW2XhK`a6YOeaHnc(VjJM_`>)Fc zf3!uAj6kaYDmBtktK%eMXFHE7#{%tgfw;LXS(0QBdcT*`Jp5BG#3tN0>K;PNFq2j| zXyQqK@`P;6FZbatb%)FeH!X&@0r$mchK8zpLGXs$IY8l0pLhZLs~491*t&IyIU^Knf9y)RqW?y3}_Eqe)U$$Vg>h~ujtO)qqb>* z*LT}{WQ8sXr=_zE7X zVq*5L`B!$MxEV5g$&|DOycS4FL^uy`a>5Q!!ebY0-HpOeB*{XsYmambyY~)EWBnI~ zBF6X(qkY-lN~LmA{mk>6PXMu@1p}hgY3>nonH7eu7Fz#7K6OZae}E$~OwMtZaZ^Li zACGBs0K2H`2JgBbKDIVnRfBny(EojxglUVDjU`9O$c&7nSpHi2>C<9zn3xsIq{#~> z9whAV^_uVQWbMG+kyLW=!dad9x<=uwU@o!eOaCX3ndXBO?Cuj#025%)q4_Wa?MJAQB1vi%{U}N{~Mi z#NrK1{bRs=%4iA2le?c>AK2P-5(Sl^OTDd3Viuf$E*yd&5{2LbIc>Oj7PWj5kY=0g zdO0@*#-mOpE8ci?*IrLLb?tfyJgj?0zX!!729v+qssnwkOWX48gBM+u36WRUwA$iR zDrh))T*tXt7Bve>gEW!vkvF@EE_k9S90|4uGUFz$f4xl{Qejj@8i$PJ;f5E@+D$%< z=Dg|LR;Ww^6Uwe-z`IMBHeT1)q!6Df85Sk0+rn8PbZgX+={;I2Gz|7~PzT2l*m>Kq zm1LNo+!$5Z>6RYZ2>4LTBcwHgWr8-h)#0QCiygg^8a=9Wnt%>u0F=~I!#}A{UbY<=c+9|IND23_vwq2e)!nl6L zCWW}UXz^qq5ly*DWTl?c5hd^5-!kg|JQe;cs~x>+Lyy;=wDCE9g1938P-_B|9F3)w zmen;$&X0KKpwwxXh*oIX3lQ!m*iC?Ne-XmzGMp8rpx_>4zepD@9kHFd#u8R^o1*zh z40&p8ydB)5?VUm_(vynEeEa;V|K28*xyFL(ch_YA$_MeI7-G34iq#R4$up`P0KxeL zCjo7Jq5BG0`)-Mc#e%AkB1{v2DkqxWC!}zmp7^EYg$nLT2l=7K^)|?$g<&mE^gX_0 zW9t5G0~yZGK3+SvPqt}Vz$yC8ehAUEXYKFr5aFPBaZ|JS%VXvR7qnhl`?}qu7x5no zmh03M7c6X5Yw1Z;SDZ?FdrlyFzK)1s#4BfQ4CSi84pOn9R&qG>>;L1Xe*H@yCn0UX zFH3!@*xHProsaC*o9~4+OzGRlSKj*mZYd|?$mDADzE}t+fduI~nSnp<>mW(r1{WZx zmAe5VL6k$tuVse*0}z+VKM$ z_HN;#9V)Bg7F{MF)nJTlQ{mRoQ;tdkA81`th7zD6eebW7r}g#h}z z54fN8;zbGz&E5O(!Mf2t{)pxrIgr^u6%VD0^3CX&9geWp`k>JdaHiSTq>>d`wC_p# z`w$B#tT`V9x?-4ill!@Roa^6zq0V#N{D#;lzF%!hcrM517b0>(Io+}e2kM%x1A&Jv zU7Ml@R$EVq6)`EWOU4@x%ldqhK-&E!!#}Gwwev8VT=sYj`0{?rcfWIQFYeZEKY!Cj z-@KIWXV%QP962$;V9Mmkd4qm)vA1olP<73Pay~ZocT1O^33jv4p&D-fG~@qvM z<|>iMW1Sze@@^}kg%T4;h8{jlo(SdZR)uU$#Ncj~AD~ji`6ws2!3^o4T?xou5EZ_S z?UZj1DO}EFQ1A$(YMn(MbgM+4l6k?l)2_Q-vsK8qT6>#KI(hi6AyleBCTCPhK_68r zH~(@wevj|a@bRh)+{oxLPt~C3U5|&`=a_8>eOIx#V#|<1gJ&u08xBFS{^Q$u=#<#! zBQ+GRrZ8b{R`K&VR9TAx4Wl>0ohuar&v3rjy==GO7wc;)E$eHu8?_in@Au|wna0IV z{p(dx(J*Qm?fahv*(AE2C%pJ!C_pK+zMz^WM~mShF(v?F^YuEV$6a!$DbWnK&T%Tv z{whdfS&cZ!@pYuK`piXp#l9Vop5sz%;=0oCFj<=z)Cp1(@FSm|psmWI9gX*2M&Hlf z+}PO6MPGZ+;W;h)U$$M;_USamyv+}F24oly?cd$a@?MYoBUilH`upg2u`@06wzjv4 zt6sjjuZc#!{<4W_CHtJKEtfjPLw9!^$w@L4igj#=4WJ`ml+*Vows&ETZIJ9b=5ojY&d9nkii;^N_( z=2J+$4YDU+{%LCZle)V4+O=y>U%Ap6*Afnd`xo)dkm!ifg9rZv_wZ}f(aX(4zH_Pn z(6NYJqd0V^-;(g|i|4;CDcL8~&U=@%7u}x!tCQVI&+F8kmp;LYntx^M{Z!rcn2XDZ zBbhEgjQc6J`#-a9f=2C1N?O9aPE1xI%d3mBMHe(uEhkNi9PeVNrR4@Txr(iy8<70; z>A&)g>laP=_BERRJbS{2y5oJaZ#(qs`v6}5y?y(2Z})mm&iQ@l(4Se(;r1oH04n#O zMR)`M%5iOnYgHX|b#-~@&E%Kh>u#l_bcEg+K3-|~h!O2@b(uDAUTgmUHVL6|@$vpi zH<6zr_Uwn11m}(qMb_Da(Fy zz#;!k|K8l(9Qj#`wr$&5TU)zEM5s`>x$%9}=guwcUBR)cn`+7jV_9Skcmm@u>u^&= zf#&(z<+{3O=|!=ZaSIL}V_|8z!r1r+b@kZsRc43ziaZX6667nwG5rlZkVE<2sDt{ra`pb^< z#*a@;>U`qFiB_5YR8+b`T8^$li106Qdn7RA5dW&OGWD4=Tfo-uYNfvI?xLkjV@aPQ z?ThvC&Hn|hjYq_wZx_#>gF83N*s)`Fu2{k?n+jp1bGVW-bVfm@JjM4oJTfx&&K;lI z87!p94y8X}FgRgL-2_@vHz4bq5r#UO^c>Kz=DTkH=KXZ>Si zO!fxd_xO3(r4|F1m(MVX?X28tE)J2(Fahtn)OV^m< z6?Ld}uTeT+y#CWIe6x@+%Rhk~{b^!SmGJV{e}2HaWEz44BwZ~zIOsct;_R4xe0ab9 z{eQqASo5>qZ~G^s>zT$KYSE$vi@GC@+cUEF4YQ&YbU$7(B6Sw{CwJ81!U6ZmKRF0DItZ{P^JO z4Xn43W5;ega-EQk*H zu>PuQP6yrhV`mIfcUrygkLjTv$2`JVc%x79ssHOWyMND~J?D8(=_wG&#YKTTu^#$` z^Bg~xmj1D3%|MjTJKHVXxa*r1fV4Qx{QQ!^)KlB#`(a)BBq`~DLobZ^erVo2ddz8m z81-W+HUnF-LAMR<8UT((Mh(gS)h_pTN%EkOD_ng@%N1ct|^#-JHC<7MGR{ zaW`#L<6>a_Zl|SnM$&R0z0W94BjJ)34X>y66;01dnh`+6A%w(%M{iCqU&kuPV|glY z!4uf`<$8MOxGW z7+=nK-HpBlHn=%&_XpGJ@1s`(>9uItvL#caqh;IUoL-lAuwNd_+PZ2R)LU)% zinmcAy1^4Yt<^rvf`w5j+n08$va<5;DdT}+Z&49j=RNL9*y^XO9F{c^3q(420%5r; zv6RbWO&jE!Ob554G`K52{`upI9zxh|n@Ad6Tp`lF{U=W7u2Vej=GFpgFZb7kN?pqz zO*vh##51NPDQdB05GUL}?lEO^7ep~vHnfAumaI;Umz|3-z%Ly; zZYSNhN|W`$9+Krvjo;i`1IgfjuW<;(B=hZXo}kMvv}TB9)inm7i66Uq77l|Fz}oXZ zLv8&gTJK>8h9)xWxt-WC#Hsc6OM_DG%rjp&AwR~wq<8P>(@gg#tr5PWBK3M1^y1nT(H*mxVFDFp=z{q0OQ^yRG)l7`zAbpuc7P-;IwD$L8Kj8bj`{~7$@ z;|%ilu@fh51}|8;^f%t&Htm6!Pi%j@l9OPJk;xmny0cDe z&CDc-ury-PFN{d*6Y)^gi7TSJk6r7^_1wODx48)3YMhpz&6vYYW6>WQx#D}YGJW1F zjN!&C*U|a+;lox^FO_rW!o!@9BF|hK(KOikDfeNk$1^pVOrKi^& zYgwv>f6>gaUE3HLWw+YesUbRy{<_O(;~!hJ>$Mva^Pdxu+=8pbzw_q@NQ4D|&f(Gt zrp+Y3FypzSV34F%seTb?gMu{2o^&MX@kJ~}jIy%w`|KDs7{y(1%NChoZGhUgltsC2 z-P(-Ls2g}|p@G5kRqF;095`~+sJ|#=IZ%5sC$4XpPRh7s?VFJco?`iTQ~> zii$t-zGqXrb?^R$GUPt@Z668ddj$f?R$$jZ>1H=oemMT#fk-A3G%G0R&l;LXU$}6= zjc9z9XZ9HuRJtdcmzy@H{QZXs0xh8l=+Cdzn?uB+zOdQnd-zuM~vvJIV2o zbLxkzva$kr+DA4A3cH+DXxqgQfzVY(XDCI#W6j>Dk!>|>*sx7bPOIWPewQwUYG!)H zkvZqrrd;lb6l6OpnJzdZ;)?JyaPhylRkjSJ%Ip$qJfP?9}3iAEv6S zH>32uIMOHn(W9Rc?``FXhpei=$B}yiD0;}g6DM}tyLaz~5@$s5 z$Qd4mzN5Dp_2(^x<0Xqh0Diu)G5>o7I+q#x`aQ5o-hcS;cBrdqED0dYzxV9f^S&e& zFT-!Ii)&yu+qb`Tl0s{71+|pNobx4>iu`_0!FMxwLF2BS5PFT)RxL?t^afhrnTU3~Y>Fx_14C@B5m_ z7x(Z$eelxm-MdR!%#oW|#5w&|H()v?9oT9+nd>UgspYQ7(q^h<55kyfR8Sw@BRz@* z{=15|dJj%tSoZ$^&~+wYIj>vTe+`+Zkg?dpMrEFdWJt&uWvpaOB~l?JrH#x(Bx6Wu zP#G$r63LV_kd!EMDwUz4r0=)FIs1Iq_r2G3?6bFe-~apnKhJvZb+3EfYqn9VR;^+< zLRlkYum;P{&UPht97*^yJdSg%s?K^<@)m;i==JM=>ICQI<(=a8t!T7;ISzwew zZYQ*x0lKNQwCK;hlT$#@!7>^+rjFaK4sF{Sj1XKB+rAQZ*fBLcjX9w1R6o8JJa0?u zam%n0lByiYG`GK}2U84cK($^3<|G>dt9XEJaGobP8*M)@=VW@#nl;e}D@boRk6T1O z$;?!RHyblzghES8>rJ2Cr%rWbFwsS)2C*zA_tkUOs#Pj za^!pKR$L7aA3*S{iPx0mZ)Ig=wueh9`}XdAgPB1a1jtb><_^pJoi{0S!N1%s4xFkT zRalsqn9alU%NWB>`d;6M+Da-(zc(7MBNCl5)=Don+ zfRDg_ClZpAm3gY0FJB($JI&v?#Cej2=gmitno);GRoIe)rPG(v&v1n?sFCVG^^!U1 zPu>@uz(pXj8MLNAHUHzsw`D(1z&jrtwzd!PM37uZYHQ1*Sl52<%GY#F&$9{V@4GFV z0%xRPXR%cqqA$}>NqP7Fy*n<3hiZ(FHE5U)gVF?5erYt>yQfnkdt2Tr`2C;{xw#r& z`;K7O{&@woe&giMPTZ@CWt{%k!)vs)q(OJn#!E(wcHd%Id#kP+0W|fHO?X@UVXbv4fAsa%aoGhbYz>d4qP_djq1J$?MC(V83HfCVckj_w*aZXBuJ4MxM;4{EE(`S9TekB;>_%EsPqOrtuWB;4T{m%@03O4Al8!&c$v!1E zU15d{UB99E^je&_Y}p2oGcCdl{Pp-V$X*< z6lHI?Y5x6kn$B+YJT(+lCR#nzypdMRS{7xKZQxoRCwysYvmpm7M5A|gqusBT?|mH zX2^$(FwOPl9|zuwi<{43vo!tUY2zh(O5*`}8kQbF4w?1H*_ zb>=knDQ5Wd4Qj@&B=bO?P?>WcTM10_0ktUUVHoYZ3c|B->Re_|2Q?(vyZ#a=x#rkBc~YTQ1lnEPdCWU-u@Ps+8axyP3{+s z29iqtAd^_iKxG2Fy1LJtbA*WqhfnI#f%$kaJmSi)IR^R9ueIb1(?53l>a1C_ve7~4 zBAOf%bm_tcVbGel=o++44qxdJ(ym3c@IRP#auKFtYt26rw%%SeA2DLY=?>N~Zmou| zi~y{qVe z$$arKsqf#uH7Z+NL6_=@z(CEsS++)V<^<#`Zy8rBH#b*8jf~^YH`uQ~+Gn#;I1__U zZckala)>*8cI^Ie9p%)90N;NC1FcT?hqhTt*KGeue?G~m^WJg2V5u-OsYTYNe=Lp| z&wjf@H+pZ*v(u_A$kmo!skPh4mm@d=&5`H&ci>t%1X$mjsleVqT~e*tfhl`++BR(1 z5Q`X9F-d#cuIe)aPVf`oXb=eK@3&c_ghzXmIz{?Izx@a~V;~LF7dA;BpqciZmvMDVv zxsu<7tEdI7X;u9Glw5n|--#o_prV##MVs`9(y)ab=Ct+k_0>ID-h?;#{W5rd; z6I-=yyFDQB-aY@K!yNCR#(-fH$f!wnH$s#MsKK-64s6HD%Ad~7Teh5erKfVLaho=6 z>eQ{f0j>PSu?BT5n|50=tMNaV{g0$9*)neX?JMVIo&GpQH*D_g*{zupvJ+%KV~*F+ zqYVhgnS95?f3q2@UKgk}NVBKbtn(v2xPNwZa_ZQp&&A1V+p@3(`N8Sz)3_U5-GTb5 z1wmb93Cp_A?_Cvxn!n?qZ{j@VuWnDco1WTk`g_N9Y6VGk@y=fX7ue5D+O^w7F4EO$ z|Byo3>qZcbJ=viv;l-(z@l&#)^nkZggii)8E#5utJ#vW_l2w(o(ujNdv=ubvw31fb zSHoE2NC#yC>D~MHZxXZLv=Bfr(_-9Qs14azO;aR(8m47NIkm(qaL)vpb3u!IOWO}d zhd6rX6U~Rc|2K2>W|T>KjV8*;I!5+(C!5?KK5m*ROJz)Imrk7w9fDXyNt770V}-@3 z{PA8#)*5>;K8TUZ?ND9s1R%~w&nGJ=`zKt4kGZ<~+eeQd-@;Ql2^6(>x6iard(5`I z9r1XdrP<5{zSEY>YP+VUTEoMmO?=Mmuh{Ch+EMLcIK{e=#cX}N3~wO2Pr|t?uF)S# z!H3FCJ#4A(x2vHrqhq9h*wxatX8;ZZmS^5gOs~|_@LYhNhzdpa8kvx*YnUhG`kgyx z^{voqx&d8<2qs77zPahDZ`iuEE>f>8Q0+d@;G{gB6H85^IFhplajW@OxyDei_Eo4~#BImy>uTo^YJcE5r#kSh^@ z9v!r@I#^)T^5p_bAqzGWHWrX;z}W81i3Zfp5|`)q>H+bxz^UPAIyETMp**{h@x7zg z-$^qhgBgom;qPVEY0#in@Mz$VpSZi)od;vqJ6@riJ1z<%&JMQG90(~~=6 zTd2m@lT?smJcB=c)OWPkX~*EGW^^@luyX;P;%PG<&CJ{N%MTqmuo)1x0D=1XurSZH zIg%*A(uRtD+A-V=y&#T&mzy1htZk42`>ua{4{c;A9 z1b#LJ-@92EeLrb+Vcshpnm=z^K_2>)9>=HVMD3~YhAZiz6Gn~29Y@_jsqo}|9T#Lh$57j4i0x7B1JAqpm;iNrG5JMAH(+FgB@1h(@LJ0BlWJ@6dT@}(nQ@AVazr@Y#~hO z`3o16Q)xt~36>bUdiClnX$;LYU&m~AdZcPmU8@Z>9I=LCscyn3U6%`CVR7gqJhf|8 zOky5Ark~~%$!4UV^4q~e8a-u7$j!?2605hq%*ojzO?2;u3tM*Y-bj>`CrH}d?^*6* z6sPZ*Gp~ruNsk|I^!M);8Wt9qnHUqJApMKujouDg{GF%tDK}MfQ-xhTT$_P`G94d( z<=X9Zu}bz)qB8g?`$mnylV!8tp9Z%w`_hv6&sQQ*R8-FgT1?dup24L@U)F&5g4BhD?a(s`e6 z07U&Ls!(Hsu8@~+O1stW@Jc$AN4{Kk5iq)U9TszKKyLM(<6~7rq*^)c!ftfh{`0QZ z{To}q-fz5Z+Q#mQKXrAQb;QVp6`lw{LU4NIn<`bI_Kv7x08ZI1o;v5tdOL4$jp zMvYoz&OPwY*)6#j3!}>$!Or-ksWfk%jiiby^DTZ8VtGSmrZK!QrO=uH_Z(m~csDr7 zX$AH~7pU(_WbNHs8NG#LpdQ6Is$MXxGBC)@%BnuvW{s>%hrPVqe**=EcUH1nw!peF zpkc&>3H71XI2q*NrK_NBjT$wQoxb9UH@})S5x7p{#&=L(6n*_L{mt9ALNiHSkbWCl z66#aU*C-|GXo>Jns51^I6bze**FuqTPGM`;mXoJhDg;b3Dh_ucsy_Z-DYAGH#}1asy+k$96soxMMGo4X8xddXkdjM*Om0 zwQ4@ZGsMx;jEq-obDvU;?%l`O+xO!c+aRaa9Xpmor?`FM4E;_`;aN{2X0KDHjw{vN z9A`01+T$9|-BlfAqkt4bOH!TG`{%pEu+zfQFc~@qZkHSCQ;wZ>Q!?ROQj`FLR=hs$ z9u=i6WE6d=EEYZc6=d+WLfKKN)tOZDjTm@={$PcJU8BvBqcS+xpsME-gvlAvcHrdY z9jpnXimCJeK$BKg$i#O9`a(e44Mb!CnG2z6Y>$p(g!rJZxvBM~K+h=127UWpvP>UH z`~Li_>m-tYUIxXI>+N-mTK9dLVbrBdc2v`!U+oVcSu-s#w^}EPZAs8GVee3ItC(8R z-tA`!=i-waxQ+e%SqwQfoNAWoOxs%XQc%?1xzk*?&n^vERhaLwE?k^s;|NG^{pR{-x;^wVID?#mWlXbG3OOIvuzZf~?fIFADj!pw$M^Lt8 zL~d3y&&}EZ%fkY#7l0jXboL9~uPs@zR9d&rnGX1Yb0I;kh1gZ)3I4ZjIPR1bQqY6X z`o^GEvxN&g#@}7hO+zD~=tcXrEbusj(S`Z3wFLeEJ5-*qfnQPae0s^ev82?v-Yg^& z^C_{jwe?u_<}wK6Bw_E zEY^?`1U?Q;dD^2mJ;x+uQ4gtF-+Ld(=7y2jK4+hYhnw)597ln@zP;jpQ)(NtY?&51 z$rJwmTM=#Z6^6$U(BAeg)1mlQhXv!72fFI$xEma~>_ud2w1F|4$(ljkH8o=)^o2cN zmJwQ){UPZKfHJ!RB;DOnufv0c1kDEKR48t94^~pn6W)S0j^-+gd9!B88Xy{aIaP45 zMmUxB;HJ0}ycU4Je3q;bg4dDfJ59T?k-5_(?+(@yp81)VQ1Aus5Bx$n0nQWxQCCE2 zXxn-0-*0IB{*vce%4j^7IH>I27%vK0P!u(C0fUWHkhRyKF?cuIdQ<*L32eV#soSd# z$rkW0SDb0~$^P(RD@)-dmAiV!k5naSTeiG-LNc)f-`B5K$s!j* z44_w8v8nd$@tv9u8Z_tx$+=W9MXlBJNAU^-sd}*EN@;=q{x{&NspY7&dpBb*HEh0m zHeh%JN+g6?CKgeU3UtD|fe}Wk@7@sm|>m-HK9tyBZut#ax!PDZvsYKe1IEpxAr zwE5V4G?V1C%Bb5z=EGYzUMr<+>`V^ zZdX7*zKxXEq}n7RfUjkAvkH@rnhy3nIC~XldOoF&IIeiqgFXxn4Q-AY9g2|{IQE*Q zJ%KR;p*#8OUKD+RoFxg`#-k1%I#f4U%9a6lNu$R&cX1^6e9cR1Od#_q>87Q1ivpny zBP`e9oBR!jp<7%EG93YllDZ3MF`Wl^1Y`dNS&o3JMPx8Y(x0Obbx56;6yZ83m_d zrm+${d;xbN%{rCOMFR zZc0O@p<6utaqOTLH}l{p7buAZWdQ*se=Je5a;$rT0Gqx>#=*4S;%3 zQQbd#>Qqsd>4%_ao1q<34SmB}Uv4irUaaGqQtq%)CTRiIFx*Q5rZdvJ=y3 zHLS-%RCzIFfXmNy>@YJrL;DmK2k!}YbF2QXyqro?bD531_Bs+lsr;bZe!JeB@mb1v__}$mEVY7gGamW%kvAMOCtEo{QL%U=gx&C5zGXlAexIt7`{>X z|3&8JuVMd*M}M<_MYsd3zml+;Z23y$>VM^I>fe=1_xB-LU5$Jt*@~{72Ix*kh9N$b ziY*EtB?&#Tq#R=sJ3q#q1-VjO*H@#8q8c+10jj8Nfdlz$q2%$076D!)k20cFpNZ z9(jf)w(UP1|5_@gjvwDHWG?xA!9HsqB_+imx2u`P2)KpxLLOw!)zH}V`};^-08CQ& zq!-sGO>;CXDBGlX$&%jGYu3Y{OzSR-{?11lJKr8GP*nxHIbmUDyg|Jd z={-1E7+~9YA^l%F^CuamF+VbfOv0uD+GtTd^T4g#VJ$D40ofsm-AnV+J4TptA9|GE zx8&q>6I~m(q)Wt4?lV#riiPzys1XtjFQF)?+h|N}SMr?r;$B&Y|DqDrgD4AXsvE4* zX3m+V3zpRSE4P0UfN3SNu3z%+)J2GPDDCJcD$l;SsP2*%m0|xdZ@v}|MDU<9dz4ECVeoMcR5dhieFS=)v23r!y@v$9dG~G| z`lbXbBlO9B^~#Nu>?Mtmw-J%;CfcW6NwoV{#VJ=^Kw`J22&{F$;9EsqDCaEg3e9j_ z>RMV&+1c4y_Rh>;;~VU{F~!&I-Z!FkV@!~8ELu#MqE;x_PP;d6)2fvj&Fui!+nA;F zaHL(iDS+`x%3(I_mfUnKnAv69z2iu24Wj~7mygo*U8>f$-<^YJv;$Wqrd;fkKjrGw zAg87V31M7;sKdyoSD47^g1lde!Xo18)fpLGx_0$T*~1Fxgx;gC?{D_kuMLT7{VG=D zIyUiA;^|WekGzdE@NVYWAvE{YrJgr>^5k6)qHzE2kb9{yrJzHl`%{6?%FUW}jEMGW zvT+*_m2`{(coq0mS2tR0Wu+NW0*i$a`KIb;4V!SMSp0>_BHBE(-lMN_)-d{Fh1B-a3udo1W#IbF+d1+)R?y z)#mWk4w#bL1O@!qb)60szp`zO76fmJtX?D`eIrtUX2#{D_td9mZg}*#;et`#MsNEg z+q2(UAj0ne_YT(oA^(VbzhB>{&MZ;r>V}!H18IYoA*u#>661Ha*#zF}Fmz~J&K3Bi zTA`t#WLVYb&V6S4&$Eq9oX#&YYP6_d|Ne0>;6*H?SKKa!z{gVLs`g`*%}HdBkX|Q) zO^Yj=tC5=XHs?a$ald@Zmy;HtHJEjMy*6zfS+gsNO(HV%DQS}8wZ$*I)$`D{KfRjm z-ah+g`(67}+xr`|N;}umKJ~s!9oH>>KrPnx+avB-FhdJP%|u_u_p!&Q%>V+FiW}6c zS6#vVK9QLh!X(CbLgO>bNyxwt3^~=c=-lsb?>f}Mp|UJVV~asBKtYhs5Zo@ zmSK}MJf-%%lvE*_LpRy$5N!l*VZHhWcRfr*!hCKoRJhg;}F z#*p;niQbGEEr>=!)G%JJt+YBUUtXZ|gj#al7h{bIrcaqPDJZ!@cIwZEadBg8KB5IN zeAoX_pAR`Xq5%OJZrr)EA$dwImho>TvowgH=MdolK;so_veKb&&)&Tq9C{jkKiUxo z?~@gAKPCz`C~;6rd50v6(ts_(qS@6I2eAZvP#)FDg4VUM$Zh7P&2tZB1e^~lwLVO^ zeqUPw^{RIzB#&4HK`^Dr&Rg!%|GcWumye~?^1&!Ir}>BK=M{hbn*HWYC$HHo0wGxp ztl(`--&U}wXtS>$3Ou>5eV>U=8&MQQUn+nL#h1V7s)Hx5UL8Vo+)hTG|01d_`Pi6s z>xRLQkgV24-O#FaYt#>QxfN18)pdXSX?`p9fCHPg$ z$Nu$RoLQcFvAuHYFsxqJHKS2W((%oqTa}wPuZi*r$nWK(O(%z_UoNj`e|X>u)3?sD z>v-in&&=HDG8~*Y1L(jmJv@Hy-112gPszz&eD6y>ekl7zfbF;!Xp>c*4As$TPs#{~ zZSbf1c^5UNjWrH{)w>v&!1jqIK*)Hz5LjDvI;kI*YZ?y7&Mj$CEcoC&(nE+v~(r;2Kz67=K;azWT!s-@b$7yX=BKO0rqu%UT2c#%#J?%|*ND3#pPu0>|p~)>b+5Jr-A5KDTp8 zQQ9AHck}^W-#H+Ne~_O<7r$q>w;Sg0*YwJmn3#HE-3V5sDfo@msNca($%_8)>wkN_M8*h6^3v3MDp{S zN?g8wK0WGJH;=zM`|U>9TeaL-&zLP!8!FPau6g;;4kvX&{O>#UQ4cuuD{45EOeAXb zK!!vi?v;pvqSp;(E|=!F($F(!{ua6v<%xQa9*xkIkEOF*sW2hylkBF?=A_&a0|pPC zEpNa=UzQo641pJmy+tRDqYV{wJntrhe1*_84hp7-PTsnv@o6#qu3^i_Mizbh_YXS1 z1O=E-TgD|$YAI-QqHII1H?r8iWy_v;fYEyB?BF81$7vm`7bNPVgZST9bs;kht(j`G z0V(3?htiC}1Ke)91{Y&uMprYRfGZqqWSX5L){~A&w@9|`tIWu?%_t?#l=^OJu*>L{ z_Pv+Qwl447d{Op-CsCHqc5kuVOjK8bJ?UP07&Rgd-VooKUxt(9d2S9RAHRVC?wLIU zde`>;&6cM2N6SwgvWanf+5uxM43D6FmTDNDZ^B67Nvh0KGe8u2*%Eck%j|3gU`Zq= z$eSEKzo{!ZF`3Ag3@`ULf}WI9O-X{?tl}cq1U8&FapHNr7Lf*PtZEe9rK9?6>i6}7 z6Yk!fn%yaYZQizaBh?rR4axNM9CGvz42*>)XLgfvM84yKo-#PK`q`%DSVP@!w_(dTi!-wuj&d&kyyDi(jpyHN zPYrLW>>rJE{FO|IDy_B*`Lf&;MyBn3wx0Vv3oD6DX|RGqG_eS`7nl%)p$g+azN`{m z6G$@7Ks&fuO`yNW(^GDK8i#<$B*1br9k$%RMzUkZkTu!bB(vQe)EeKDqK$e$6vTj1 z+Wj`h(;q!JI=C5ocScF8bwoI$zxR&Qb>7wKop)iz2x{F_SVdxxvLw6EL4Nc5qbE;h zl+@8+Tu6P!2#f^udk&~EuLjG(z~tth0h@)k|DV@h2dNYV=#enQB4F487_iJjV3hup zgV-~zQZ&W5SEzPrTFAG{c@Z^~#)&Z@#|Bupp`z;R>VHd;%+-Z2s&o+hZ|jb3zkZ2H zp!IdDp6%6xau$bu9IG3kNlPL(jjm9qyu*MHiJm~Gd(K&$PtrPhGf%`m7_*}4(+Vi0 z{Pn5mVqd>u%NeVrlrLlA1q(b zz(nedH^PwP5X8flT3B@G)$9EIyhkZ1MLEeGnGKLlHtF#FVs7cJBJI}7MxL8D>usw2 z`oJA7Xu~5vZ{#oY89ShVY{Q>*N-VLlHgRe=45d#fgDCy`7WMDNN2T_sScOzZN4inw zCopR9Jkz02!gTVrrdMeYj;K}nNGyd8jfNIOnNVt6^6UHj_fMazbbhn#^C2@t&b{a8 zQRD9AbhmTaO|T-{>ref!?r&Nt-lES+3|NzSKxod4ES!nN@J5WsP#Qet?@TK1l&qvF z^>o4rUEg|}2d;MapYe}ndSECy_oK?0-JO*8S{|WB4S8Jpgnk%1?EZ0Meu3d?x$&hM44)TEi-3M?67#v5+G zaG|%@lIHjR*5)8rVY!2QA=w2`aqkr`iX<#@9>o#J;;>Dj)FI8FSZ(WD)UQ)VB(_MD zNjkmahyM>elLKO)beN5+%X8yeT_K+|`<=@Jb4hcEbk(H5c2o%ispb@YemmjH*L7a# z`skBT#m&;EQR8k?INqsh%KUMI#$)bjXlttxQ*NMF*t>7vbnEh_%KjRY{D<5gkY{9F zt~TYmk+nRmGL#Y*z;L!9_)|6G#?AcJfYHUmc5h0XPQUAdTXk;TzD7Z>2 z*g=#cy&JYie$$11XPSLcJ4!tf9N2u&PRr!9v^zXbzx>_~#{cL79^A|((SYzUf@O;nV2ELe=+(Z z4j#Xh43uq@Ctri7L@7vb)E*CyX{Swps7a#G$z_3eT@sWauw8d-CPiZug*S8!Bnw^S zprRD03>O*)1QFJk1;4f6&adOT86DE|!8TGwWZ@x!YSFG;qv_Kh)w6n+czn0Ck4Lur zOUoB$Ul9P>Tr_)DF zL~cR)1zI0CapDA8JCA+)C|}QhSz{b%K{#VHl_gI&y!#^sFkF7AsXR&IlKq0~PRs^z z93En*#A2as#h|3skAfZYP5oM2Ta|afuZ*_nu1lMyE-*Lm5>dj3%o0uIl9xa+k1=>< zWM|MpE?Bw`?Ii}q^dr&m+>>NciRQ#Xg9o1^1k=CePLmALuK~Icspa{zDf{@(mdy46_I6es)-N;6~G9z zHicXkEfk+a&GKz z=%AO+#{`5nR`ws@uUoxxiFU7Y@1m@sMn;?a7(ck`eq*PxN;D|OyZ!oaCo^lm0t#%0 zQkhvkjFVX5N?mlnQw9H_sI>GB(-r`L&#uyA7cymZd?8Vg=-XF_qUom4% zX}bsc5Aw~IXrmfjmHNKoXJl4SCzG9r(hrs9)x|R_Yvpo$K?baNLE&e~?9c&)c36X$ zA2@O(kafVre$_bbi+%=d?`hb{jL@+*Hs=X*Oq@PHD$5SR;6*aOR94`T5|8ygE%G?5 zHY65aym+x6)Uz{EX|ZunD3?JA7-ukcJfWL;jXzE)VnT9ZDt2s>MgAm4`ZI!!yM4I) z&mggR<5&_8SOW3o>qosYcg9lD9?`niJbjBAS#oxjugADMk8 z8qJ=?nKN(=@d8cl)A$8C3Fa(K-gpX~hy{;0g9hi1R@hz{lExdJ9HoRc>`3Nthyf)| zx70-Zd4BjMcg6jkcaag0qrbQyG-x!p{5quSIGAhOZ^PM9p0TBh>^AMXXN^dWH+=m4 zYha@+s}-Mn*UNCdmIU8}E7Z+(X%KB8?CE<<0&q24)5D_gkpxJqV^p2GxVX4b1L}tD zM^dr4O_Gn^Q8uV1x5;KUpmPRUETBs3FfK>+gG{bHx#7R#J@cJYM}Dl)~u=NzG~+aIBLc3XZyQaN=p8eve}F6m5UQS!Wq;ymLlMo1EC}slRfl(eY-Q1fxK_ErbYdR4a3$l`}x1G z%&4wRtnVV;sBo1dNbGtI*_H|shxyH5Dq#o1xg~2gIsDt^`Z9 zPBM$K%tfs0ehx)uQJ?Q?iaYl77NO50*FJi6g(`uKS<`L<2d16Oi=7qx?O?UEiwqnL zd?yB@GLVP+sk;BJ1488)30%~*e>{q!Wtu?8b$CS0NNA6>v((wou5-C*ipKq1S%Y%Y z*X;8qw}*fFqXp0!R=XCKg84mNzHf(1IGK}^Q{6>pVWCGjz(&mGaVJxH*cu-%T7COb z&?XvaX-YKMP2v9>f%j?Tf2`-^7EU!jaQtf3U~ zw_@rLd9IXdXGiC`lt0Tl`YwJL4T6v1mbRM&w_wOOlQLyI>cd|%rMs$eG%Wm-Nwo2Y zuWdB(wW?TRf6C;Hq(x*^qxhR0a1Z;jI%y8t<*&ype~hJ|z@UyO@ofxzLOJe;m`pKh zbBv76nmSFP2QKS7#4T0aE!BoOBn3EGrUeJlgl{U65k|A9)jv~FQ6Y1*ET~yXcn~*e zSiZRnhCYUc?C#wb$3$F}W`{-hKW!ZOx8`%>PrYjdcgC(g;9?lvi!*t)QLkTL?OZkH zz0EGOgyY=@4xEWa5ZAkK7!RqUf>FIg*8hlz`%>}ahqzPGU!D;fLW!T!BMyxV9}U@M zX8rwI$M{=o8{x!z)WpFd0@veXqq4?6(6kuJXpaOZrP{SMfdCBF=x+ZIWK|4-|18q$ ztJCHMOEA8jd`C#J9e3QLiEn+ z@4_j4aub%_%ZBgOpnPr;SlNk#i2`c4(nR#m+LdH?qi0Vh~`*f^dh;<_5{XaFs7SjH#B` zGK2k{_+~nuFd*>At1eX_FOPoL3 zVMovB#xDmm^Y4JoqS;;@4<;-DuRREGg8V;2X4Zeji_F{#CW4n_!6?J#USd|&&E^mN7KNSU ztnFoZM8EU&q>}iZk2+s$taz=)JTXo!qv$-Lkm#tZwsqSRl-6>xy!yvWhOW@n>QBM8 z(PXwgQN2A#thL$=jmomL>-!HKviS4^YC=Y~;m56ap|szjiQ;R_y`7fdUzI`9&tF{u z*fpBSrdv~Erqct3tA{;xQ*ky^YIlyfAA%|P(4SFJj7f?D#=AH~6M9=0Gap6<**Yyz z+`f3mA^s4UG+MHFJ(T zuqLN?Y8YwQpr&4hyyXlKTa3P2gjid&?rQvq-fJuSnzKNM35)0HT&EdsM%E)-CYcwx zls?flKdvQkWHG%<#w+n2ry>2_TMT(B<1uD#up9kt$31MFm9I9EFdT=ix;bY_1U@IiD zkJtsFW;d!6TH5T#MIY2LkXq>BWaV?VJT)1#_G^*KaRkoob7*3VEG9)Z+{qDxa6+aO zY#TN!aU3YAMPks*5O3O8a?We1ddw_KpSHS=;xwx4w}zr=yaVmwPa&@PoRn~$J%`sg zlBe&t@i398?a#VvD&7~#<&m7^w3-1%5_BV$qV~P8w#w1#{t zw?}v^qmuZxVvov}s+s`%M0-uaQKK&}hv1>fe_LYTVAe^$*p z@5^^go!`#o$I8HqC+tB0Gg*H-cHwGm67i~VudtI8#aiT54SORjJpvZmfB(E#wjwF2 z0dwxiZhblPb7kYxt?Iq@U2Csyrz^QD-MydDfhBIyG+=}-UC*hdWjd4-|J428j;s?{re>6 z9*c~p>n%SJ`MkT1VQbgC@e?O%ea$Y0X`z+MwCv5kDGXD)(sc4_a}+%|C>kzWAfT~DdwZ>llEp7bk7>yop8?@5 zfl>~)tB%D1)X@HhtupeTHU`9+Hm|a5Cb;6^;`>e4qfguZ-qFEfDfK296a>D|x{7q* z?yKU#okG4|WAEAz3YECl_1(KHD(_?TAUov$V@RLMk^cXJK$F!;is1 zY94J}SJLOM(zK~hVYFSoxu$BB;RuoqW(pKG4LPD}jXp?Rj8jV)nkTcdR}Y@}4k!J~ zJxn8)ei>pjnFUlCYgc>Fb)AY2Q--Y0KbYKm+hTNx;#yl@ds*pZjhVscc&<+ed#;p8 z17*|)dy63!EE(5G_^LP@u;dpzC59f7*g1;3?%95#;hDs?v< z+NH}K*=`&PvZ>B4>2v7ojoR(~5D#p6NC!)0?8(Kv+jRIO4#?TrKWJmfVHA|zI8()K zxVOGTMqPlytAZyurtRFdAOZx7ZZSTo0hluSWO?ibZqE{qrF*F_R+O(GLw&?(=AFA< z_LJnUSQ{cDLZ)4y2#~>dGILN|lBsLTpcbB{5htS2aW(mi)WO+p9IiK1Og$_0 zY|*9_7d)rybhh5umGzM1P1V!eY*fm^0dN?Q3%koX2U^YnVrS5Z3O6o8k!KsRWuSsC zTMjplU$|SF3&ieB3f(fVIrDk_;bq-Id_N*JA5iEyGi3(%d(?ZR+Ud)$k7iP)5%Cj= zZhh56O$!+oXi~z7b$VZ5w0oTsZ$7nCm#4-nrs;2(Y5dxD)!V-Zx)<7Me7s0jZKg$P zFLMykfvr1fhn=4v64yb__v&ZBi z3w98Mim$AdGqs z52uNohqrpfAv$a6;Aa%>VKVfufXw`v%%pdxYq+$d0XXQY@JKdj;0c8S8!9HroAWDS z46SI$-<;p@4yp4+FxE28B7Z!0^~RpR2hNcddTQaIO)z95(Xe)X5`{oX#!m zA=Oo7#EvZ7m_H{)^I+}`|0TORE<_HEm8XI14sodnG}`10%4H39LZ{))pDymn5n9ICIvY_w z3o!dlJLj(k&+QVmWi|eKMJVbq`-7o{n;fHe>G<{UmbY2hC)KJnfalwrGcEO!`IJ)& zXIaCx$)u!31CB_%A;l0Vm(&2l@(~NEL4x9rpsQqMMa*d?|1cZ*{9TXmoAic`3W+K? zTw_`_8$C(6;Kz3Cn!gWfFOXFvfRWv}EG-PmKLqG=O?P|}|0o8weE?Zc$FF&GsXlJ! z$P782hBEYbsC~~?XTi6*BuvS@r%ptBHE@XABm$udom2C)E-A z{(;Mj2H#6TM5Ir-Ty8;3uyKWR0!S+Nkh!-^N#lF@K?`b^X4=Wr<*kLzr1LVp8eK@| z=z;pTDP|dkFPnX8p@OLdR3Z*DQc$8+t^3}ctx4M-0qKP|9Q9uM!z2$}r-Kz6~xK8LW$9mf2TR%&re2zEwv;6A>(%8HS*kx%31W8;4KBVb z&@y+GYQ-fP#T3U-nX_}lRzpF?S+!lcB~qJQP@c0`MkgCgok+w>fuvu-hNQJ|Dbi8F zX#n~iyB7MPj0sqg72SDGQ=Wc9SYS(Jv7N)a=uc*jgK_j-WreF7lFspRtll|)4;ENv zFvi`!J!IK#6pRa^&h#8lV|UdUI2uFuKlR2yDP{T;?bGBU2cCL&oei%AOsT?0o&WxI zEKT0JU&e_*d4#i`sjWW?^6kzorLoebtA&hzMgc5zo|m>DlYZ;I*~nNhh{B_fM>p0M zz|l%gGAnsys}I}RsOtZD7$#hcj4h4uc8-_l+5=eR!AREJ>hIrph6bTGWz%+UO?uDE z%McTBnQDJ{&`O_VgL8s~1nY~NJ&CNfy=v@H#B+ktAYF_uEQo9Ry!_Pe;VHrj`8fH! zVL!?YRy`KI7w0Mmzm7FlCwH$vc%MDmFk*sCY^QxS7|paV+vU{jr=7?o@heKBCG#!p z>)3W{b!F~DyLCk)Q-kKtWVg&@%mO&f?pjwZ)&+&sB-mYh1i8#hnMqH}jF07yr%xH2 zGsSQifza{w&VgTVw_PD)PzBM-99uu6F=bFX=fIHbuE$5yl7og=cvyD16pCbIql^qk z&Xh}6`Nat%ubgt3L3Mh~(+or)-9Dv7>J@$c`WRz&!|UsvPo0XXg=2sW3X;LzUM|Zj zDe8UYlf*=v2Rnl?k0wtr4N7LCLLzHjJNJGmB7|hFydQ4Kr29AKyEl0M?wuvOS#0lR zqKkWewbwga_tkqFKlEqcaD`%jzu%*hSZAx(HniGLqAq!fCH^=<+6h7V_WL}F1gyZb zaCbzJ_mw>!2>A^vk3v)?sQkHU{U0)nGLIp!jET8qkF1}Mdf&?;#aDd-A*Sn2xbDv5 z5mPH2`1+1jF(*u)zNk=(kVubkdZC!7)nbtO=QsB}e9?VngjP{-WK_g1{lP$*^Wzwx zA;UjNR@$m5x$e7H{-Ak?X4R77j{`m!%M*mA`@J!G_|j?7o2vz0tE)9{-`TqAC!S^z z?ZWKdPX-ILR*SQwO!tJH8A4%oDV+nt%jK037<+uOO9$a05(tA(N~ftJNdz)J|DP&Mi|BI*j0Tf74u|j ze*I8gpE~t4p9gT5AyU$s!3~qT5lt#y9QsCiAUkL1a^dZO#HjHmKmX)Sqt`K*L!V+M z0tMY)7$ozA1%xp$2(QF*Y=%Jg=zx$T`}UpU*vY$;IQ$WUTF*Uurk-1M?)z*CJhP(K z&zNx_E^mTHQOpM)dbkd?@0_Wu)9#df>_KDp-{^T!~lU$Dj77UW$J=y z-i)A+%lKR~FLg$;8XG|UlFRk8eRH?Ej=4GPJbPZ2`BkFN20Lkv!26@PFe~d!ly8=P z29gFJ;*D2RhiQSmYA*5dP^bTd~(%%PFY|*ZY4bMpXoY@5f#i@1-}k@ zn)S2f^3ZmUH5F@3oj&##Vl1bXYy4oxFOg*xeX>qEJuVG8<1(Plt0Zm3pb)~8gv2rH zyItWl_w{M`ZS^M9VZta~b1P^8|?hOf9QMXf# z>>ZNPdzm_p=X~uuq@HWj7Oh(O(Z401pf`4d8Y2_f`VRtXRG4gHN-;TRFu+s7HgJQC z!BaBgbLX_4|C&A}jLA>TcJjD1nZQ=~ZTJz*m3DTI=;ZaoS)xBK$-JK-#S8&7o{YE0 z)a?-zgy-J9C&55e5I=C1NQR3}58tE#T!hZue_VKGuMAw=WF{z$IA#`l@={#yvf?jw>dLHMd5mF7QEVn3g;-b147EFU6ec0L8IHxx>Fmb`50k!23>Iq|Vz#K^V^D+$LBl;TvrM)NCK&d`al4M(TcxUkwvC4Q++iVJFBka{qfiSHc~U0|+LTw}4|0D;r%3 z29)Vna%iG2GGN6$LfRCFDewYw+pmcMJRiww#@He7Y~Hr5RcaY&O<2T_Le!v7$U)A{ z$(n6n_`*bt{;MDvXnywehX>p}1}GrYQMa7>wxgp>%MVP>e&Lwc9hNOFr>l)COD~F% z<7N4m5@o-SpicON20;G0^QlwZtRtuDWpwH`bm&}~>5};iwQ%lC8k~!;NsXK%Ps*S# z{i?L%;msVk0pn$x;gUXOd|Ml@ycbc|VCG@#1LudY_$NOcD9*$}UKPG8g9`N^_(oXfAgbyA4s=P;WK7_^IP;H2z z6yB2!@^3R)47P9vx7+Z-f-z8a8kDmH4f9`xV?8$9IV0y_BO$D1_u(`*9ig+#n!d}GgjcfogXgy6V#ZB_ zwM9!41QczqOCMM=Eb@0cAj`jBu zhxZ{BI(zwrV_;JCdWzF&eG`YBB7_Y7F|?}oX53It_n6j$MvpwwNhnv^I7By)Y@pcR z3o}W+wm!(X-w1t5%e)omt+n@M~lrhAPZ+1AxV_s>dSJm5$%UT&7O7wAu# z)PG1L*QP~hbt=Yl$ckuV=dS9C9)&3X(g;sX$}r02#E&iJKjd*{XxZ<)!(>C2?*-D1 z*M0{T#<$1_!zgw*gUDorFTCxJT{TY}mwLjIRB5z(XOOIjTj(TH9)!n{*`=hoi zB2RMbS$$orsc0C==q-Q#x;4@T*Xo0>p6H&4P(BD~l*fMTOrdh2XU}=2LZ@=lYw>v8 z3&*mtV^pemiXHE?l&n)$gnVq-eU9(I7Y?K0v#Y+>RB$I@a|(921GH)=$=x+#O-h8g ze(FTS^U6xrYurhLq!a}H&Q_qgnwjU?)ao%bMwHPCyr;N47ePdK(>mP7Z z{b>H&o~A~rpKi#7AqQRK+v=>3lzFz>-|q(6^4v9S9O6YhIx>ONiOn`$RUbOXN{S$9+#zh}H zvJG~J^y}&`n^!L*-#{_yj}}0o2;L?)z^s$G#?p8@21Uc@Okj`Y+|FbBO`xe9gw^gg*TA#9I5~dfUw$`88fC#}X{o0gVlu(I0zQS)3X!cgIAdFz-zR26+jqlq;m4j?tOqQ$mF;=C|R z&pF}CKE&vD-3b#EW}ev28RAL+vQ#%vBehnmKccq`IOY*r(rL-|4&o$lyZ#^p(GPUJ z=N3MUkv17u?9K}ROU_7YG#Wgp^+{E+>^=2mlu|;3qe)64dUR~x{&>^Gk+Ks!f9-@< zJCv-~lBb2?@nQWUayFGXIa@i{7ustn;(SY)-K*jz~jI>?Oif0+BsFl>)>tj z0MQbuDOtPj?7H;YP{yZ87D%`p2$JZMh8rR8nGWuoKzb5!O(41~J_uyXt5RJ%i zaArG+6e2xz;O}H*kSPQ-WZlscXVA^ zK93$N$l9a4-Tu9M4RRvc#FiqX3Sm5GZ&-$B9o4fx^IU@*qv@QT^`=mZxm_GCCqM^- z#`Nwj@nz;%3A4T2`nC+M2*J|)Sz(73MvtZBeoV*Z#j91ME@bQ$a%ohqjzSqO{Pg3j zx1&DMx4S)~GxJKEwmd9*t|HW*Yv8XeP_h2b3P(jub;R73XqE>odunFiTrs%-W~}!R zrhN72Om&oER}v{u(AA!J)WR2~;M3OMEJnfjI9&oq_ZhYL;tAdrb4MIeS4&p%?X>$EO^{S_1NT{a>#j@tfOim3;IdI*uG1Ix-{ivcP! zwh;B+5wXi+nW#8izqcqwhO3|kt2!%eCa+r;N&DGXKyDzmpsOqUvc6&*5Kzc;Zz)H- z8D^E$6U(S44VutYzF>?6ZO3^Gx4f{_yFdPHZ{EF|kvVIG z|ALQ)G&y{-wRL6L^KyNeDFje3rYTfX6i1J8SJ3QNF}(5kVWc*jGHm{;!OvVo#Vl}u z?ykpYM!hBD_xag_x(A-2-Aev59WJ{-1(?{y+hG(IKIf<;9$Y~mTdoXmuixD~9+nT~ zt2$Pjgfl5)G6Z=))U@65UsqH0XSOOdL-E6*g?FDvWiLGSSw91{>9Q}TFjD`Q#;4`K zeoK+vmFViaiD2YUlGU2f+l=YlUKATYyU@X6k{MkM|0xge&Y)YhS^uYi%Nb3Qvt3@5^CefUW5{Q!W!OwRN@{1 zBTpo0-j2E5c*N9zpRcSSNs_7@iO43RqNis}FOl0WsqK)ndq5?naxTtItV?3Dk}3 zAfC}7>0_eDZj4|ysDSO6@A={~4-~e_@Z8bg`LkT0(_j!*8E#M*fvj67iVTW))^oBT zTF4%!l2X(^)~rf&(-p<0fCG&n2-F2>(2dkdXF^A)S#Op*PXcv}(%j%aa3=U+ERk=>x`p~*11JCV=)d5!S*q9Dgvp9g#LghT4AkTo2p zqDy(qA*PM*R~!1*Xes*`ZZ0Iiq$4xbe-#Okj!2EL7=u27s1L21|9VZ{%@KK?@#87* zN~ts#0$^>bQ`&t*H$hdHcvMdHsUJFz>URYHf-x*#-P-!OwDj`QsQ2DZlMydDQirU6 zY#(3-*|jq|rnvhP|NG^;22)>)D$5OoCD7mSn(|8|64He*@#%}N6KFW%REC(7R8s)( zqVl!4xQtS+A%=nW$g1Wp;5hj6nySGP^C!GGzTDK3d@>Nyew|&9dC})kP02HJe0RuP zIN@vgCMlh*=dJss^mf^wUzUH`v?hv-=)E84%}=L79W3MAsg;|2%3VC+>C=+*G5awm zrZDU9?C;uYQlenj1fhkP6&1`eE}&DRQzze~!4mdSd8JytKPdv1U$5qOFvku>EL;5! zCk1zI*`bMlUn{WqU3BN_tBUS3na2dI>26xeI>O6*uTVvTBzX8GTk8LLH)41^K{y%I zB$Y8>(%n}ab;MFyvNTz0xj5SsUOxWb<_7V$_WA2O1ZBt>ww0r5)4R8nz%e>-u$W zZm03Irc;co(*69oVw<#b1VhEhb}U(daaVPy381V?X2U@f&A0RR&=R@ee_zH*J4Y$Z zYH)o}aux*j0iOB_n}(2>+?ahraj})#suA40unP1$c<^BLI~*R1AAQNe-gGIsiPEn0 zz@yz0kLhPn=!d21buGV2*ejo5Jd;j&(gAAWM^@ycf06n|7ltgYw||u45l*mu-osS$ z0g+JpCv=P_psD7-%U4$U?-eS%=y2=-jGTmx`Q^1i65q*z!JqugpSYa(_rDG&e%JL{ zLx7iAZ9?fI(rXwu4UzWpZ1l!fHyaCDnMUoOQ+5DV&#C-%pCQaE?y-8GHKgTZs|0*CK{hf9G{^ZO_RduP;<3Vw$m;^GEOymrbYs;C8t%?wfEElC0Yd)lO#&GG@ zD`z<iNw1J5I`HpQv5xM>oh-j6U8LOb+Rew3I!v zZRgH}HBnOFCa2#X6|DSr*;=4SCsMDH)r04~J`DI8O~pD@`t5;`M{KbnALl{mYPU=2M^_9B z@wJ8wvV3~}Hp8Rmkwb<#R6uw7!>GsYti68-hfR3E z3C=Eyb>mtoAWUH7M1=4?7#>a&dz)ESZDv0_&?Uq-fub=tRrSA-bc9F0^*_EMqgST139ImALJtI$49fYQ6xC(1DlQ8YdNzSYxC{5Q19yPWS?I&{jfZ+!j*PosY13s%K~p!W@U zq(E$X_xjyW|Gm%@uAOjFG~w8eUlYY4O(2?buXb5az$S4x%tDQGouxm49U3;J*PmbF zpT;t;L1_FOXcDDe+!HIJt}N1MwvuQibUgUEJD%JJ6<=$3)ZvZ5j- z{P-BFRR8H?anGCz5~z1<^nVX&`82ck9FFpT6z&lm)zMaP^!x5Dx@dW9sOP2brjfIF zPWBi2{O3G=YRN4T3DQp+hVht4{|OZONdM0whGBNm=Em)pr#hp4kPZ|T6_vNYrSw%F zK}m&RxRj4j+BFHKFZzNo#{^eb1#Me5Kj>%Ry=C^r^w*F6`qQOPs=7Bur))bJ4JQCpkBW?jVhy7o;|B!Tn$xD^FZUeKz z$SN7Eo#InI!RM$oL*gkTT(bBNJg_O13JFY#_qw#}SUy5sKXlbSAhYao1BfB1Uy zfSS{|{r_N$SsDAz3`HWw-Xb;jiX_=1QFGASKStT-D0Gl;_Tj`DwIy0P|&&u=x7r20L!LiyW=A$`Ky&OuX zop+qO&xXM1qgI(&U1?<$f5I4wz6Cpg#AYNp0C5%$&~qL7)&3TLZaOExDjvCIk!h?& zfdAv?Z@m(Hi-CXi-QCCqt#n)nq1aTVQ08h#@cVGPJRput3)1^PM)1ON7cW=6y_qh= z?3#wNs*y^1T|B0C?LtM%3N@ z(7yLS7V*zszaA%qcHPV8Zs!4?3>%734F#ePshk$ZKtkQ!c%f6|%~8PI9c|Q*T_<8&p;DJ8bknRf&D<1m@Ob3IvPdD2a>@b-~-E^?#nG!y0gZFukWIq~q^!Bt0uyDGyf3}QZ5gvd|zawz?x<>7y& zIb(exDp6EQ1ytWC`Lt&JYd>fq!VDUX$$vZ}X1Duwwucb+G`%gf6R0x##C#kkibC!G z7^9kHky0Nr>d-1frkn>-w8WiY+^O}749Ykk5uc&~8k||eI$y}KOU@Z} z-BbGB8fl^GqT|jm`!pS|o^4RW>PAum=Bq3J@c80xBF%gE?%fTSHMCl-I=0IP-9g}SV@|(mr-KgMcqnCI<+IM! z8V;{E4}PL?e1l4o#oGjH|If=qy)7XX7`Kz#$KSn*P{0O?S$ft^o~(>IGCw}`;;bk7 zvP~R@&>@|&y?t^;U0jxH%UV3FCc0>t!#OaFvCB10be{BSGfrP^&}2xkOq96<|&q?Dj_`Znv(WyIU)NL4#|15UP8Egfm>pS9x{bd5h8#tg4>cB>ho*>0SEW zeZw2EKf??k7OJBv!w29#sz3YtQ160d?i%YlqVB>wZ28ZR0#WNrQ09#sIx?vE8_eYM`K-3BTCyKQxO>@kbT0vG(KOq=;MUo{rqxRgQSZR z;l!>z=<@SgL5x-!9)GXwY=KMt^B>nziXoH);_H5LH)hr_fuo%mjA%% zH1Y+(e9sp?JUxHA=+Y4ex6;h(DDy|6ZKQ^{TKI`a2^BT@pkCc|y!-1vx6d*SK1*aGrv&#NL)!olpOEuF5+8`FG__rU;rLuWSCW3pWZ|yF78PUXud?R2~3_ zB$y_%J6sm(Fe3Uf;EI--1*8QLl}bHUxC+r0qhfy!+p9`*yqD#_;8~|Bc13U}WD28z z$EbybkX-fZL<0V^29-H|+>?Qorv(SCdw$3<=Z0vw1gk0t{30#$X2I__Y~09EwmWVM zC@w;<;YGTR&o|sY%DVxWxxDz#HudNkT$68~dm#~n2Db0dSrQk?rZa<2$&{F&1#qS3 z3(qrWBsD#p#7hXJGTp(@{xU2ogH|(RTptz&3Lq$w%3HR}{^(ctFw^jv>?_}m%$kC~ z4kInykQ7XZTl6`I`m7RHDq$+0ta$b#jINdZ7z1&>@LC6>k6485r!mSnb#M_vq>+eA zKEEouAg-X1xP!9ME2jeKCVqG0oYMl`t5(9D>b;7TT2fRFw=V)mG>)#jBzX@9^_ot@ z!?iu9Yje)}qFgY9hC^lUO9rfDA~P=rfHRcVTJ)P7rhS;+t*4$|d0Gi8PFfF7HA*_y+}9{ZU-IZ9P(C7M~p;@50wV6z%rJp$`+ZLi5R#1v;x2;A!g; zCjgQPc)7A_({od!J*f+{-hcVLqWT|64d-?U{3s(CQX6r*ZagiOfgNt>pk?4{xbEt_ z3gl?7Y4l&`%4XIFQe;r@+V7>G?;ZaZdFAE{)&B^7|B=NWOtJ9-`Z9W93=&A>sM3KO z<}uW`09Z>tjyZwiA*G#k97ljnY*Ry^C6u3x@^ips+D!L~XPt$c0gZ2|(Y5xoG%8I4 zv}L}(fX;rTZXTS2a1b1yd<@No37v1xdpf+&eV(GQ-j!5K&ZYRXjg<;2U|3!q7zPyH zQEIgm6ca}YlU2H>rboz(uNu~(zc-F9pn^Z8w}gR)8#}ZLj<1#~h1&SxtsqwDy0vSy zUnytoYA-C#Z|A0(ENCqJ#GYwv8$i~Xp~W|_nh@xKqWB~Wqqt;Kymd10Zt={-`)3!; zU;y<66X1O;M%BKT*($2#8CW2W>}^+m3F}dr>BoHGzkdR0w)1FL9bWYgobC%9X=T#zW?$O>U5z|wDci~V$ zODgO^#dNEJ*?QKB-}vPPh!iGtt-3*>?Ov7V z{+_RNlfLcuywB@a9Fy+@`#RB?SeCA!LZfdK0gNCcOlXBtvC<~qEPh4qfzub=gLLEH z`TaLhb?Ax*i1-iiy?T4a`xFdiA+v~I;*jio?b75UsfFoGtp1YMT}|!zr_~L3Y?DBv zh8NaVrE-HTxB1rqS%xpOpFZ73GrbVuh0ATRZW2|MAddTz5YU|`g&(3r^kZRdf$Cg$|&-dKKxS=&VgLv)QGvO zlAv#d6NLlFnRa@|9-=Q39(U1s&UQ(Hy;Cy+g6Q$)%Q7wM05fUCOLNYB)f*W;QrkZ7I@VsN{OQrNf7_b>;X72uN&q@; z59!@I@|xZ1l`H2X5EP~CKuq0Hs}IghV(2rJbwhmd<3PPJpS#J$GDC>ab8KXe{rDko z*9w=APX}{uMq;;0^Q`-^?(RGq@$%Rf8|xlfiW5K>fblxF^N(1H7r%QVavk8!miew< zT%Tns`6-OslRGU@2tM(y5f*Ov&4+3)ne;oYS6vugv>fgBuporhvrs1Aus-qND5bOo zJ7wKaRc5VuM~Bw6(Ybyxhu|_5XrBv}vJSrY#a2Cv?8D@t`4EyK1Hsl(CdI-*;6-vN zyO)8lP}*u?g$ClI_ty!hY33t(v!?`Lq*6bvQaXCHOt zci((-eAkSK$)cK?eB?}=-C_>qM&xv&Jh};k)UiAISoL1Aq-a>q7qO0691^jmgg^{qK9ar_PeIO3{9Orz8^5%7<&|a{k_WKfDVis|L;L0)UG+u1c~ie8lqoekNm;%vh`(YCuPe?DZz&eRo{O#QL2EYwnY#FEio< zP|xLcZ3MR_B$ZN2>{Z12rEnDzciNfl)_v@vZGa*W(!1^emy3Rk`;n}y@OBN+FLDuIy9vj^D+ya#~n*G=kKAMzzF5}*61(ZU1OYx(if*|^R5qO zE=i9%!G0F;thUxfdMk>65X&?hYio&1%(zTy<&~4Rl9pg-<@<@E^Q5~@VU;Z@T?rtM zNL#>1#}&?Bd;&tJm36UYmJB3GgT{4c4BX=7HIZ%hqjBBROiy;ND();JqPDZJ`MC7< zYWsD)$1ii{8@L!hBE265;CY%>##0j6!ult5zsa!B{1XI0af2zGju5*n`_9x< zT@>t(F0DSt2|Ej2DkVT69>bRepviC7t}up1GK(#N0~pE_z{}gaE{4nZh#IoJE;G!9 zM(=yo5Kiq+;-)8LzkHEOB@g$@YfNM7&TBo)d1s6WKc3LH?xD-) zo~vzydtY8~W&tic2-yP@gA9sJuZD*?Du~9MX>bj9KO>Z{GNRLLa~U-MW%%DM@`oI_ z`LHl*VoIx)El2+6`Xa<*fpL^U%eXH@`YXP=oqkns^|%w&R8^m8)lizX4XKF#~lJuO0m?E+U`wT+=!5^%I2 zqwbwtI>3zCqRku)!`JHLQ6KX}XW<7WVjWKZ^4S|L=b#JnZARfE2Aw1m>*;J;!sUVf^9|v{;wozpZo?ifhXWRY*~ccbEl#5bB$L2^+e%dlN9?8b zZ&20y?t32c#%HLNt)rXQUTc;&_Lb7A*v{J7+RyK_qe_OV`s<%1emUn65``SfdOlz! zwY+i&=J1;q&t={3|v!9|ql-MtL6A;`l zM^f|ebl`hga90=QzJ2?)@uj+ECN2;tsV5WiwzGhy>hB%?<#Sf3<1@O0|8MQG2$-N@ zRi(lXpT9KBkfrUwnf}I{lhxtfF#+OAUqa-hajk-bbnpJf?WcV5ugfP-T#6@;!1>$UyK8%9WZmXqN*Tfg{TTP#Z!9=mi1TG9e@BT9hrk$rmKKGr?R)trLLg=Y5% zjd^94y>)nmLmvi=&&>#MMpEjk?+&~z=*9URrx5ZTyq05631((tVX-f$?wPRUW_C1i zOE0`g4FIZYYC2JyHy4j0#HtdGMFU86{a*xI5wDbybC-73QEz%Q3@^uV-pqNmM!CBf(&rxLW58O{48Z+8l?000i0)LX$w>PkU)5v zWnMq1ZmpU9Bx6svWfJWZz5TK^-4If;vMw;}m{CH}-cwii0{49Kkx49jf3?bzW9}he z609Ee@wxjuVZ@^byUajH$x@a0owI>W8{`$cvDPH{1sMEF5Q`qj`XIUI1^`oR- zOe-#OsCOmybQ4tGzxOAf-7KxFdrueaYRAFO-b{M}fAV;50=i_X(p!7Qwn3l+v;dU_ z)rbCbc@^}X&Ur`!OigQBCFL6i4|v+3+$c@~$%EfV2Z_ zWGOOW_GEyYe&c!BSlTM_wTrgJf;>(9bx?gCzvJGj_F}VUiKhgo#?bH$XP_r0uZpTy zQ&;yPKETCdc;CK_0iRepp^6dhWC3B zolABcIdWu=E?q7kM<1`y=tLdjOA(*k*Q41}zN)-|>J=PU!z;y&Lq7&`H45Hif}`U} zrqf0G2BDTyP)12S58cnF$C*`!cxv+Of!kmsQe+ed`6d$FPXDW)+`VR&n0>8_^y zfGk_O)49rTFYLM=5XIt zzDs60^Yz11qe)2OsX@SW!uv~bH`^tw&jSbQl3QzYCaJJnO|^}|!VB{mbt}6OBS&7p zdGluB?*2C)(&L7*4<&~&N7c2@y{~Y;#Jp%3&^!_US1UW9YAdvN*Gl)sPe^nw z|FDR)Yff}MH4WxA0Wd!Ic(fuol$svTsi>A!iM1)tOdGtz|N5Nr3xWus9;3m4CjfC5s%@_fwx1aWy>Huzv5zAEFp=1neR?=*sqd+25tHRofPc?S!%3}i zY!ihiHc@7nvX4qoqz{8?n}h=4fKA-yH!Is`4RL+)wZicFKe0DGiqoN8WFJNCVug#N zrgK^q1L4}0(OyCvGh=%DBK41GrzT3s___My4^1694IN$^kbS?Z=_t)E2Krz%142pD1F78cj$ZQATC=!A}$v6z&nbLZpac8~G}Fo8*a zqVu-lMGZXmvwB4ML+CyC=1TMN*XCp|?7(+e(jcJwvFd8dZtW?!9m}enaAv_IS+(hR zaR1Su4UJw%5=bR92KYQ)GxnkUyD{j#tXucxxU%L;=t7k|0cr5v# zOt)sk0(6~>k6nD{S@ki&Kn(RDcXx;(haixMKt<|FCOIfx9n^|_)ocil0|3UvbeMF~ z>)!VxIByw2V~F(_i5e7Z(X`#H2Z#2w3mprzVZ?XMVK}gI8gcJ+q)dU3U39t56Sh%ql^1xgo?h|Rr-Ty4+3~>CBCgdi z`OU7cS!%YmxQ52JwK00O$V|}v-h)uY0faM`wbCvTbn zM`Qc{X=|@{Ytsq6a5@I($!cHwmvD9`n!RMW9XtySP6pv}lTe zcWX@H@rC||4Tvrv{p{{<=Pe);V>-j~Zr{3fk6s=ljwKIg9>a|32?Ml9iduYXtk5u( z(gZAp#1(a#qRlsHXx4JThZ`la>*{GwCT_?bQdEs6-%mO;wk=Zti{&hI<-Q6-lGc-n zmBL39_5)YEnJw;Q@s2LGwujIshVhgi9OaTwr*6#@s!ii*?GwQT!EJ}EFnMV-t-X7O zQtb(8hay6QBbhUkz@P9J9m{EJ$@su|_I-Lu|J}8&;_9)SGo0CmN?0?xh;dfp@7@3v z%;4LK9GOfHZnyl0xE!a~k0x>d2I7B^ewT9%>}@G@DDi*$Bk?5)1v%B15ns#FqhNc2 z#WK+KeLyixiHMY`NbOuMS;u>d77;w!BI{JWxM>LXZ82KgzR{{rBhSCUDVdqM{r$A3 z%VBwCkcsEyU%K9);x}SfU-4b|Xh6Uc0hjzuYYgE~yED9^$T}oqdTyV1Q9Gvr@kXF! z?5VCEzppeGCmO6LgqO=GfxHnux$!0Gq`gb2>5mZA2!WQf(7%cGH;<;~C6nRu8U;9) z>`||Q=X>=a%t8wA8B1YCuEWlw4n$x92b4p6$AABeS)k{yUu$iw>BhGjATn0EzHqg< zOxBUnlChTA+J_7^g);uOD^Sgi>(_hS0X8W~f%Fl7?&lZsXi;V7U)|FA7_>x2@h!|A zcuHX?Sm|RuGW1>CMw#RNSRa_RD>nc6!g|Q!J2=H^%_Ind{<>eMV^?xlBkL>AhlmQE zGgBthCU5irsHtc0EXqounpHpbPzHWH+RJJ5vp53SGA)+e2>3Ijnq$N|Itnf%%N|2N z06W4Z))B9in4Z~1_@sg8@wsEYZ_nxXwzL+7RUpoE!(Iv-lX(>0K{ z!>*8utH5Kqx11FxN=RhUDU4Nz13T4dO$}pyAoz2vcCb9@5*a^MMzgOK&%GYnPsZKi z_K+SujH-#6-?`3WR|$&T@T;$$U+CVw`)D!m#dstY6j7AHT~#b5qIw@Kgtw z-OH!y7gIXHfdg}1zm9NuvT`(4tCquL#jiI&z8Nv$rp1MD-p?$h(Z|>6Q|UisXimQK z5u@$h@{#m&g^D=$Fss-YNM##-VXkbhb`1B*-`o)vAN@-11&*#cD3g3xlxw8u6U}H# z(+C!GT=W@jqWtosN8Khokw-B{vsiA?|A336!hayA84R4Ca)p&s^BUuGv4-#S(8Fjo znM@SQ?a4Wx#1Jrb8t36`#V9pWM5~`1ll1apPys{WsprpKDa|+Gc%iHYUS^&I5l~cP zIe%CVs%EaecL?4U!bbAx!G_XDqt?4=eIi{6q0&Ws?>dX7;tYBx89CWLg@^%Vv2CLvW%&%K z*8#eXv&_Z*VsNJG-Ou;E!gGncvd+sIK^bxDRDc#h6CoiD8sfB=?a*!UT|`MDWjR42 zcV!g^(#p*J=mb@{=@3pn7oo05+?m|>PsU0HK4gDfpEmUs2jHl~sj&tX(`k^@P1fn2 zqPQZxnVj$o!K8d9DuLjD9}U9>QS3=KPCbwv`^z8oMJ)&U59n;7)86<8$a8rH7}Q{~ zX*r4oK|hPBmkj7Awtf%H%Ht8^T;*RAi$q8UZ;jOu6BD-(aWj)>A6Wo2pmbznE6MzR znQnjhe~@G|_S`ZpyX^;=QR1B<;&yRkW?uwYTfiNtxYfiVSbPA4afHHND4(i&x#j$R zW_rY^^$O!t)JFhD?K(CHNk{JV9(nll)$TM0V0KeCZS+Wits4m_T=pcEVvyoCxJ~nV z8k@dvJ7wU<7klDYjXu-Q@ARjq8{=0s+UgHnD&`8#Y0Pg9V0@hsv_VP!k5Mv+qK`|u zS)3UQw2JEQP0WUG z`SKN+RB0u{(8RXH^IajIczdBRhbK1h@ZoUxaR?U9%TN&rp~w@P#{Sv3;wp#(>^a9P zm{Wl;lK3<7rUN$hoEgIthqmdlZkLiLc$i1u@p9i`G}y+breb^+yc3W>xH){W&gVVhB6@;uF?b|q=7rNa^DTvj zg15P`x~lg-;{Tpv(x+vQ!Bk^Lt=qKGK%l;SleN>^?2)2hq0|CtFbfyz#l5;bb7o|K zmX6M@AY_Xk=GW8G{EMRGPR3OuFzjk=aHCcWpwZ>KM_J!A)SB18Yyh>tdh>>h9GnQs zX@ve)RhRwnz`-mi_9av1*GgA1qzHEu1r_02AP1a@3V+=V72auPjv`5e@_)(2w|}cV z41(`r5@5zX6j21uW>;QlE6nCdX+sTOxSQcm@y((5?v?Top_s4$xHjNRRx)fa2MVqc zT!Ku{+gv)yxVDrjLNtq+^a~BcFmu{35zvDo`!c2={s<1?DVBGf6DTMkcn6@4*wZ?! zenYc!i)Tuo#{SbRsqQ$IVj*gMY~|}ELW)3Z7M)MCA9Td6@)Iteb7CA!uphJ#B4rZC&+V&Pq`NG46R~!Cp8s&W+q*+JCbNE! zO0{LyOc_@JQ?Tao_3^o!wBV1-x9{Iu5TV3z7oXxW+}jBRkmM6sh7SFh)j+&r1{EW8 z2`6baKL3p3P8Or2Rhj=K11D87um%n!IPg74%yTR12~=x&Q}ki*$)c`BLvWIYqdL7f z_OE&_j`$hBM7A-7su|#>yIZ4U-@;{Sb1Wgfr9=~pP2yU{i-|pgpy+Novi9*iSO2^ zIybJ(BN+l;eC7mbid+ek)S`9kyf@`s-F|7$K5>hjsw!4Wi{PV11i^c5qI5Fo6JDD4 zQLlkCJksAx(@;#23O350_H;fRA%7hvVPJswXS&(+fnw(;5f_+7?|lry2hPE~wa>2Zr}_GMD*z;Yw{8s<$&zFlj#k>2 zL>(Z~hFNZ9bFsYC{#Biytb2K6+X_-`_+8`1nA>Iz`fT&$vF8CG9e~in{)2ao#ja}t zd$ogO63P!wEVC?SgnBg3#_8Icx;Gou1`2|*wrDqrV;*(%*Xmzho;n8trJxve%8IKe zl?DA(uQ!sZQxWM5K%DV;QcB*^!(0dyje5g|4MUh5aF9HyZ1^@Zt~HMtBIh(22tg9B z{XV8*$7!wUr?2fRt@}J}6UGu`E9@!bj?FzW^@lOFh>EDilbOOscdRzrInG^5i#pX?rU9Gan)xeuLp`Wn7CKRw|L@`ii)57pa<+ z8duJkSU@5pP4kCmd#>d-C9=0;ooqbWXRpI>nk zhCqv@zWB*-{*J)FNRDO#w`wRzip+4sFiKe^a29!QydYeo>vbq(y@|E8a4fjYiA5#< zN9j$UZ1xq0L&+Q{5D!(^ex^Z0mM9&l;3Uh3Jb%i9Uw{@1J=V&!Ayn%k#OCpMmQ+y) zKA)D-&4|6+^Xz`@+N;bO$|W*C7qH5Tos4&2SadG$nF#zK`vV_pr zvHQl*lZ{IF;~yT@0gQ-4!SUa{dGo7ofW`PZHZb@o%u4qF`m=4n^$=v_N!2hWc4aP>P~8H3b=%rjAZII_M5hAy6&|GgrT{WD8VlpN^s%{RXaY{GwjQ*ruxh4EH!Qt3S^>T71r=GzGL*Te2F6S#uEgw^iYkx?x* zBhrpJ0x94OL~ce0o*AZKZnh!;l{V?7;)wAdygQE`TolNO=YC|5DkTdv~MZaErt#IQwf#V zZ()Q+06JqJlm`)jS$1_Z+_r$zLijnnlwTu;d??JRXqZh+x5xUN)mfIyY4#&c$JUX; z#ywZ(*jH=OoKR#>pb-{8K!|W=dm7*Fi-?Qpl|HbX;^H(+|N18lYQLbUhCTpxhto)$ zkIb8tBGejD^ZE44f{Y@{y88Q(NYBMMoS$N#u2c#4y9kt92o2TdbiML&x>ngMC{vAjKJ&5 zG-~D%R(md%n1lpS`87%_68%iK@(AIR=o2bFW!!^hk=6#(?qvBbAm#XlUfgC&uCQ}a zpL$vMKaOq6vY(745~G$%@KAOE)!RrGil>YShzB3OvLgHjI}ll9@(GV-AXzU@ByNfO zI^kv#&yLfQbMD!f^_c${O&G~c{Nuj7fq$u7?Dx~%n8*o3>WGSu*)azlNe?3SZ5*^z zrBs(7c^J8B{(452fGSp`^#TARBv0nPez&G~%^J&E%vW@1d2wu8k7&(#Ml-CfyC^5k zx61Z-v#Sg7F+znCdt|PlS3HvZi$_W?ef^o-f>8+`d&Z0#H%V0ucd1Gm{H8qwhn&SC ztppt;%SwAJ%0FZyQpR%^d}YD?-MHg|h^lGvUXFI z|0jnIC5QecITU{mr2W^O#)DT0?}``RgPD1D@A$Psb(pVi+ph!c%-%_l{-m7p)>s|Y z5eQ<9-M8^q9NE}KSq``Ghxny}V4p=JDDGBqZeH6!3 zMvpgMciR@^a~A4TQoxsA_mo61PBLR^ZbD?A`8PN7^jY8gNewbiVVJ}cp9-E3y>K!P zmcsIYAve^mjdim-Q>RZH!?z4wGc9u#>y%j%@uAB<{T+;tL zUX+*~&E~;I_@3H#jc`Er9=`8*J&0M(IniVuTPIClDjVb*=yqOTnG=g6^8~^tFC^vo z%+fx%IBM43db8a`(y8=k%F|_#6#(<~$xM0@vt|a9cK4}Yus|G4o-KgUD_iA^%4g6> zdp`fJm?Z~S)V>dYM*T%OE42u)-n>5o5B%3x$8i30ojsYZ^*z-v|0DP-%bVV649y?` zxyPqsO4(WxIn1@l8DD5DP5|SBmANAZs*Jik&RE7Fkkp4`rL%`>m{=_56A5g927Eb^ z39CHV4cfjV?_mY>2G){NIH2$Z79dpx&O0P-gQNy2BarO9D{(b8_7rCnf`}&DkzW`4 zGsg@oY+sacvs?M=nZ+_;lNI;J$WOwLDqn6-#ftVTg~NtS_w^7eyI2O2hS<-VIyz;6 z<;n?X2P>*qWeM`NqRrn)EjZn2K0vh=;2!NJFT;&l|6eqXo4J*nkRRXL3bSg<4ZOAJ z;;3qI0@sq^PbSu=g-1uO28Ifz_8IQBVI`%P!p~c(#M@z$F@NQA~(Za$UavJ37cpB-4_RvP{GR{x|CK-NAxp*(KvM|bbm`m4tCDSv<5^17iS zeE+|V^?HfcTP**B&EG7hkh17P{jm|Rn!%}kLv4Xq+j9p@oHh-ojX9HzkO1}gbl)gD z@+IWbmIn;RH`~7EDJ1eHFv$cUuF#sb9QqT8sQvq*Oap$k<;s;SlWEjKr=7~J2lkz2 zwI!(P{o$oo+uB_j@BZoTM-YsUer0e??Szu}Z~>(2;H`%>*)sToh&P`xp`TF{$m~&1 zjzMXLWYXxfw%N=r1zDD-dB^(UC!w1XShe!CLc4J^Uo&#EiPI0^!faCd4W9$msC(m= zg=n~vdD<&L8jaJJy$tccinINGuGVPmhjnmI9q;{Rrn-U~)?mII#+P;QB@- zkHEFBG;D486YJiaVqpkKM)u&?vT;AO`8BI&Ik(k@kDWlmey1WY9Inl0A%=HV_)Y_H zwa>UPFtx8jb2GbnG~I#?VWQFLSi)uB-!HF~qy8FpZ=eVkUCX}AdVdUm1nTs!&FXp{ z;V+K=+qn3Z5wWd0$b}de+-xPY5)(WAu^>D+_-9(CZTW51pQe9E7~Vv`1$Dm0(j=;- z11Nh=z`?3@EB~{Gu={zJw_ah?i_BQ}i--fZ`TOG+dwK(hPc&Gy2wl#_HFpREsA#cg26?2gVj*W0b+h*kW$*0b8sEj4=o zh-IPf8Vfmm2KD?BUl)s-4-R$2n7=LYbt3^+Eg*Bnv&|={1GS%R>Tf*c3#$|}KPg8% zjICkT!n_R!GH=+K^Q26}ZGNhmyY;wXgKYl){>kx zcGV&7-$(>ZT_{-sIgs)No(L@L9iJ}B*6DD!X6qQH-ea0J6eobo)2K_V(MD|BwW}>) z(*`ENd{=mXd3(li(vzmK(>I|v7$fb-Smt=A9~8muU^_OOC}%s z(h$j*)A@8&7x`1ux1fCqz*II!Z!u)D%8o&~k^rCD5zXxe%0czMPp1G#>oL^T4q5C* z*x!=iS$cD>ZEe$U&X|Vk$^{o%WnNbLyT?0o3yT(nx^YfFc=)a+d>o)ilhfuaZ6YAd z`;rxoy~2=s3zgbb!0nB8_~P_s82cvx(9lp8)IniCD`OgUNI|{XuG8c16&54ccXXbr z3?HY9;&Al#vphZvpS+N(Dh#P<4Bz<7jIJECOt zJDF2J=CPEe5Fv2fSbnbNIsCi}%ETJ9tS_!q56ElvVk1Eh`Xc9+je3s=Rlm90CA30U zVA`xv@10-+R2Fs|FwZRA`SBtnV`T$urr%>;gYX8_Mb+<*sV~}i<6+D}QNlJ{6t~Y* zu6PoEkHDaN!$oGJ*qk2kQh=nUURvc8Zew~xQc&D_PQx3fwpbnDC%dlSsYT(W77f1ab+r+e7m#)-VoJBp?zb$-lqAPld z4oJ-$?5QjsSgKU=hGn5YxHtb=qbHYXRf6#07dKd!1VHo;(S6vT2zy${^4hpsFb@lY zh{y1~K#alR=Hi+2X8e=aU_i#%+s6+za{8)qy(+!(!(@+<#Oh~}(S@3mbY@&>-K6iO zXWn|*qYXYy7{U~6NTSR>t$49-J(EGL)C;Gf%9A}trkjz!TKP>phNm&j*Mb(g*F>Ee zBd&lVWye+(#5QZSUwsBK{Q#>Y0h*{i$eLk~)tafUf4ksh8guX6Rufbt+|)s#|aTo0u$F606@b?dgA04sq~e zKgJV5ZsuHkCr6;}WPs_YRqW7Ct6uz4XUb(}D)|buuOLQ0F9+EbuC*yoGe$Q*tLHpOmv6Uab(~CVx zK=Fj9x(ZsP`O3R!P0?!E_SX^$I{ zq7A3doN#!0xw3E}2j5z9ZrjpF^AE=_P3YK~0&-;q$#4r8PP}_{se1zTQOt)(*31gd zN_fWU+FFzDQz4I{hR8;^)^ll6i2tm11Yb{LzhAye2^IWl2GFlOb0Mu9o^V7+8;%0C zM12__V?Sx?)HbM-Mx;~Gy#?^_Um=Gh@bbtX4~f>1WTYWS94|$%e3dP4k}jr-!Jin} z>5xxrt(fE|Je-I7J1Gtosk10u(kb%Gwd@vRPSndX>Q`|HiDHZGXX`D!Kg}+lOKs1s z^JdEU3RCG47dNw^mdBRX+;@547Asjd9l>g5bF|mREBcIyZ4s1|urWDYPp*(le2wGD z22hb5QxoAeqNPyV56tjw?7T@l)+kgS&+vTS2v9!)=H&7+T9c*-*-o(J9dFlmG!{d7 za(&&aDwMf6eLH0inP4+$pLxbo3VqZeddBTRPgJigm5-U(>v4fYbXd@P9CmEm*3>0^ z>F8e5PO1?LKAf@J>vVrwUpoC2DCxWE=|x{zBSkY8dX-Q#E&Nt(CQlLXvIE5DZ#z%k zv13Oo21hr_h~>9l536Rv{8>{F_FbBNg{s*0vVPs(%eqsWqLE>rx*`Li8z`zeEH`>w zU6E9M1s=OAvY*fXYi72DaD^iDzEm^Fc*kh#RlNDvhGSzG%c>qTe!M~GvOZB+f3Cpb zG#iM$&r+F&-tS&r^_IzoPWK*K)mB~|j?(+Spn-H{3C7!^Jlq6IAtAYome%XwM0^Ep z#s&?YS@+pL)!tkvI+NO)tDog_mW6v2P^n87Ya&D4S5tWOn<%l{@Qi?FSHL-&yRGcr zzkh#Dj!2H8;51p|1}*c9GGQarDx+ySniclY(AYp4N}wY(c1rkT$LWmacgKb3s!Gq$ zS*(h{6`Y&n6>&HuBpxATdkM;6NsEaCWS~*JE|>9;_fuS-pzAcxtf`F@9ipI268>!X zz1)hW(g3iW+P1cI_>Du?2g&=mIEW7yO(ZcGfwY4Nq#aFq56yXtlZLVIC10d`GRCc_z?oS{gg~nXf!KLr)EFF6J4#)*$AXu5 zQ=2@`$x#o;ph{TEfWLpin$|OyPvHNJB!xCl%w)gAz5m_&zKT2ET2fx)M}3$ZoW9`>EDjgVkO&`lUbUXJgV96b*n2l01p2O`n_k8 z?)j{E_GHY5fryBd3us`PWpiv!7N57%-Rg5Tv$D`-X?)8m(hkI)tdjMJlEQ|t_N`SK z`uWVDIs(#o95oZ+F9ngVH4tt5eW67phpbD-$>y#EY)MGp=HYc|c`Hyq`d(i3YNI`l z%2=z&GGSA0ASSk&VSv2G1_Q<%H#q=9^%@gNtuX>B(FWmWBa2%fie`~0=0Qab;iq!~ zU-JwY1u1t==DB{nKHjYv+{s3yItdJQbq0wxjf$l=X!&ke9kHHuM`?oPu|TYm--7V8 zp23`t7hKdRBIUY_H5{iA4^3urQ7%T-fO$~$T%*S=r&#W*>EAbO*brNh)8}p0Urk!g zIEEiT`(7W&ec~^SJJ+;!9?z#nJ1-IuF`SlPzrEXeWNdtI;+fyXlkRetH*A3KQb$+Z zlpQ2xN%!>afq|Xan_dh8`K~stxd|+unoG{(TWt|n&j+8>{Vkg@8|b($6F-Ln$!nJ% zf~B=XqwlgS@fb}}I_s#0hW6O7;UjK4ZE5G??=PVM`IzVuGjX5GIc#e?-G z$w(oj(p{HZ^U)spq6_yTL|kPeXlm~~>?Y%hUDiB~9LFcIx_5le9_vr*LfZ_Cs1mL~-=aQk46D)59KmNM?`p3I6v z4?ao6p=BIv{CDjxCKgG#V=YYkNMHe}%aU1S2j|rHn6m;qz-PM`MjAP7@|}8d#nJ%! zRApJhWu!iV7~fBIN+n>H9Y`S&^+JL=MFqI=wLxUNv>@W# zj)l2>Odes=))8Bv%fDS3gaF;`)7_v^AS5>j)^S!2^TM~)d|yB&UkCkNO)BU|Y&rB; zhvIaS{Rf_00v3V=2W1k6SNJh7;a016vgW35>ZGr`;NF-gqrc)z_vU!w!>4a^h#@Gy zAgLUkbxC*rF6A$Q6lktycI5zQh5C-89m&0tBn7#VE|e28R*fLYS>sqDrPWl*pXEdc z3~-Gv+E9)4U7Q}}m=s9NCSYxbKY3MJ0g5;Q}W0X!yQzuP{PjdTkY96=zye;4O#&|$L8@@%D_cqb_d%{f|Rxzy#GhMG>}SpKssk5aczNic9b=2*sFb==pSG6Goy*+Z2HCCH!bq7sZdL6W z6QQrFka0^~c4f%y+dNpaEkwqV)2BbGx3}~_=Sq!EIL=(VetjdN!S3l3C#WxK+B7d< znduP9mlHJZQvtFoimI!Y(6D!ZyLpLgSL~BI2rR~Ka*VA_rwWx=KGhU-wOM2}tHn#! zK-e^I?d%P5M$M2naSh^aXeIuXc{_M9t^+$`9us9wV9=oDdhK@Z*$G-7GU9V12f`?&DLxO#{XbdakDYQ9~!k zgpMvFCQqKcu^50ifq1`t=Zhec;{Up3uV1hEfZ%r*fJJS9g}=2E=qwDxfoFC=ViX5s z`bXKx&Ljz#LwFFw|2@;2)=Ob z#tlze_SfeQF5)Kk;OGiM4*rk_uK1jlNJ*meqhV2fixJ=qeG4xXM6NycM}tOJ=_97* z>NP%ia1k7k#D{*Fb^P|$1vLv;I?J^MqG=QW&d9X+Hu98IL0%E=o2UiS`)NLXHl#UI+><$)ZJ#UrG3O z{G6r|uNXb^i?U-Zu&-18J+(uh4imA(_!z~SS^!3~B}*@V+g(kkHkVm+5O)WXlOrXAvmPDzx%c zsk$1ELr#4HIYA|6v)rS(>Wir7J(>A#(Q`ifSSw`zL)7bne!pv=aTNWnXB-3mmZT!P z>AUk&>Y5FOS;ormyNC8eut-K6_?24~UdY}MW( z*Y5M%DnG$v_;9v~RJ1gs#_9d3Mz7tzJ-qrr6*`+M&aT6R1X-CCZTpxHg=CxH~y&$j?YI zyyPUE2dfb4_&BOgCUKaD37Izz7RoKWdeoLq9Vy+E7ey3J>C~mRMD%-zM5hx5BTG+| zNLfg=vVF%hLz74BknN|(D!-xpV{V8NpE9-sJn6gQO_nriHjL^e)0vq2ou29ZaISPt z-2&FIN0gKhnCG--ZV@>Bt}URjJ^ChExhp+}Pvmy>;;@QX^+ja;antIa>rZd5b=}fp zhF*T?f$Ri>s--EXI*c)TEVVYE$@TB+wyN3Jsyj45+OH_$jX+_-TaXo+Hhl|E;dkL6 zhtDoe2J>Ef3iwP*l6cUX57Txz7L8{_667o9!73br1d_X4sCwtm&%iHDSg92pmE##f zqDa`beS33`)t#TxzatlfM8}$d^W_EAB)=B&$dq^lM-veaoLlViKYK8O)YF&G8DnB% zqU{cyv0peCiW2jjCqV+2Gw-&`0oShTW;K=(zO8G}RCbw;_*_WPaS$ij7qoM)NDkM- z8Xv8TV$avr$tN{b_Phtvab7N$)&X#9acnsZWoM4xx&K>GCU|EQ<9sFo$EKd>5_vv% z_eZu(lTWXF1li-DuMWUK@wVOfE;px|+LvAlT9MFC@(88^ zidHbKyGi+O2zu0ib6z?q>K@p>D3@Z}cD@N}s!Xd|#@d?SAkS*#@1N&tD`vTHq zS5ZxOqxjHAUtj-_>E3otn@YQUSs(0jBjGMV3J>nyc-xEazNbZQ0a_d2ki?1w@8En$ zqp@Hds+YrTWzgIzeC1Md_f=#I041arAr6WBTHZt6UF(dM&a!A}F> z^7SI4vOU`jvY#rqo}}OSQy>LWJh7-VBLbr?uY>|SKndQcMiFDC@A~1PoouHoT%!%& zSiNvHs85${uTm4%=EWBz^or-*4K_0JQhg$pY~emcJK~_vS+?%z5p{;b9%`UQTLcck zIb{e|Ti=#a>35UTL{NMYxrdcCK7H_Yz_P@RFv4mBr9W1_;?lxYT|$Rdg1G{K3Rp-o zVe4xY694-7pIXy{W=zSf!P;A92MSn(4VpAI8(9(^@0C##y3$vkyyAHFRHAOr!i&X; zf9a|^k4aO*BwR&;k-gumwEXJYQ(uO1>W^Pt`bov=hXv1s-Pvfjl_Tl$-?A^Q9;R*dq6#D<|?L}y!d}S$= zRm;yWg)5?`RZpC8dR|k(FPA0i98NEyM|TDR&|^m6Qsx>;K=ad>{m7jYB2!EXuUukF zPELm+OlDHHY=s~nWLbtaqB8-9cZK3S%S%akUB{lVxIbZFzfU;4Dz)b?05SUOG`1tmM zf_}@q#tshWe(KLe4tzJS(ug_h58 zb7lh(7rG(m&yfeyVd<5ojn<5+d1jH=iAY1o7t&v~yanjhxWO3~_pjAFytp*kh9Iz` z|9`e&OfMxYneJMA`?Db5!#HA8xWqAsc@R#U1cIRaXqHISxO&jRI7NP5YiSZ3PM7Z8?P7yWLN#cq zJh|NeaHZs++18g;zH@L(``Y>r;4yt9r+lh16f( z5Kn3Wm067pHV_G5xWg*DF95FwrO*&P0ZVQRiNEvvwt~b1Fvc_G(^_c3h6h!9Rx_HS zUHY3g)Ii_nkvpAmm>tqP`qfFwj`Byvi4cS<5N&kflwfb&{Lp5l;vgnLPdZ6szZq0v z9WDwgOg9eWYvdvv4r1QGeANK1+3SvDl}F5NM@Cfh3SOY}bTeE>2q^DjU=aI&7_&-9 zrV!2HN0g5+y6{3zc6965kMVu>(^*rR$7H5;psGqn5U>JBSezTBiBSttm0_CO$$cY8 zXwrUtn|ChV(L^u+N*MP$c2?kvCm4~?rt&jM7e^k+WOzWm4o=!41ze*eXygT~6bye? zzJ}3V!DXLs8@(S|DU3s$<+Xlo1FiX7S%DDBHLr?2DhSB1^=%$mIVmNTO{R0%NqnGoXr6Scd>lte5E(biIa&;_sF z7c@j(^8h3{{D9gdbW_>*aG{~_aQ|pfomYJYkzn&g1_C6t>0u z&@_t2^JF6p{uTUO_VeW$tx51#MKP*sHD#oiWg39^qtTk73X8$Qe}c@6X1+X|3Sqoc zz;`7Oj0Uh+?EyAdgdb2?LVXFzkG~^vihddeh&o06uA6NMSM#szALH zwvr-2IiHTO^UX2dsTJ?w1qEj@+Gsb(N}C}o9Kvl>4`lAv$@sbX=Ko~oCt434imXJ# zfezQz{jV?s(DV5#S*>h~p3m)Xq_IP@!MBecFJ{oZ4JFg+b$f%ZA;{_=q2=r>Vf(4) zhYV3Bi5u6^EO&&F^5SnpbdAj|mnV;WduMo)k^H}j9UK1KrHkY$QRse*`$HNsYmiq~v(g17I z*_iY0^93f4f+4a2tqAirfBFTEbC5HI&5RJAXrwkBB!vk|( zh!9YaO=78e$B@gylnT|QVb?&@kDH{J4O^ zTM{6|1>w58GP$uy19=XG)GCt`zmEG&^ayZpza|<~SF|y3bKRI@Z&iqq(_GOeDVrjM zh*NXR`}gZ-%>-#Otb?jHjN}w$QT*@ zxVODrf>(j|b;NogfS*JHAdI;b{1&6beq|?ZrVdhrfAY`QP*fl127Ls4EV3>jeQcDp zzqwt@;t7`!)%>#fe9n$$dFX#PL4KUOmuE-zS>jf_hXw@ktVgA&-K;rm!@5+NalO@D9%nt^N_TQ>nuvFO*em4@Q=V>b@p5Y5~UHHm!6Os7d3SHoen6b7Cqw_heu!<(Y7 ze`xa)_=K_3rtc;~Elxc>Z-OPIP;Er^ZJ;c{EJ6j4wXA+p8sne-v)nF+4IlZB)&k*k zzRD23Q3lp{l?%#G)tfYfPX2O`61VyUOL+Ri_ zUX7>w?ZT-yyv-}3#TIE0P@h+KpTumSUko@)vRY4uH1x zMJ=KI>iEBGu5__7!$7jl=nhLq@R(bi;((;J1z4*X->8&;fmU$f(^uTJH5akQnyYJo zISv^5ltcX$S!Rylej#cMT%Nc7mRgk;bHs~3z03NvScQ7BA`4wqGF;1 z96D2P{SOZ;M(fPOp=7xrtZyThtYNt*H2rwY3Fw#hkJ=nw?Q|6ONpgZPFdmv&;YT8c z44L9}GF$$_x5qzWGso9z0VeW89-6i=`^hBqV_MobuU*?9dsg;nvB!;ZXjvjel^5Dd zplU&9CU!h)iv_rKxLz(1WIz>FvhLiaF<0`>>^;Kc zf*LYFbJ_w$hjvvJc?N8&f10>$z1Kkq?`PEQrrN6kqojy2y4^rA!nI&VX1L?ryR}LV zx_$OVu=$1D-3x^R-G+1}UnAr`6>1xr6v@+O>rT@z6vkFpY0jLSPVkPR4h(-^^iH9c zNo6h^q-c%T7QcW0UWVC~H?&5qWes*D+Sw~8J)f=4EPvvbG(~j37Omy*I8|6OrVQ7@ z@SqdGfT@$pOe46yMaKBwXlcyU1D2;4eVc|~Uc6fO9)++3-lVz^6(MC2N?j!?(gUDo zVcw2+M35zmn*er5_dCOlIDhy!RBq_%J;u>zgG5$S?Wb$ko!|$eR@b7~YB&5FMu5>@ zE~A3(B%pv*W&RXpMy3O=>U#wIRtdkrV(SVxOY~HKqCChpv~l>Vf2K|9Q{$!kA?ff2 zYSd6O5mH_*L3Vo;AYgky?h)bA+2o$`79l#aK7#kpB&4D**`zrs#W{Ux!sl?O_;3VO z_|sLOAwJtjNQf6sZS5(Xc{H!jS9tW?=}lQp?Oav*~HHH`*g0IL<8~L{yww=T5>uVtxz(venRHmI4L*Cu%BQs z(4$uBo#I??^-Z{f=!ZjS^w{7rlL;Zsm0W_bPY}-u+eUYqX1@jwPJQT*#)?q!_WUAI zi*7tP7~w7^8d>MRnFBzo?h!WMsp9n|ZT3g;75nLRH9(@?-p>2!n;5^^3|w z3h0S+`2lFVswSBtZ6~5Mp&!E!bl6%KSp@}PAJc0`MomQ8RBN5dMZYR6eiT4WxRs~&APdq;n(rNA?E2P3Fm)v|gzRfaeucXq4avkqV>c2RA;ZXJa0OFxqqzxHGwD}{01ZinXEFNW zF{})As1y8Z*I6?aHFXn|6QC(6eG{X(ua4g5hNzKU1LrpnLVYp6MSjiy9+IuK`lroNKNZ7Lxn~wje z9tMOo#j{bcblZj_3rN_TI_UIE?HeOqx%6Esq(MW`C-ii{WpC|{-dY?mPgZmLJ+gmd)80L+KFg4?5=CH5mmbIM-j@(u&I2 z*f`mn>S}EP5zYt;Yv1Q0Ot%I|p_zMUkYYvgtJHnaW*Wt|55B)kE_IJnwL_>EQ>T;N(SIx`CW- z9>i)YR5Ea^%49;s3MvYeb}c8R91_NJ%pqhe@k`vxAB%TX_<;)dR~hqN{c`pWep7Aa zc+%R?SL?)|J+mjfjGXY>R}VE?9GyPsw=2IdjlYmxe?d?4tCPR7oc+_o{K@kdjc90} z;pb^`_)}D>XIIbZP8MIyF$rwl|ADT~Z_RuH)LdhWq9O}ostks9w)$yVVkKvIu#VyZ zTvOidQX(;mpVw5_%7UGq%-kxezPWj!%m_(eVui)ZW?Sif)>#?rf-FgeJy0bq&EGAp zTO!ZkwC$K~+eLAxO;EnOyTR-kQl#X3A{kmEYB&?n%^C!!M_O@l@j@)xkE;u3RZ$*W zy*eW1tAX3bT#@3Dynkj;^VzGnjZu@wCF$vO?gLu6XUMWP18W=}NW1iS{fI72S;Ahz zc|_>IwY3K~@}#6X#9x=B3C>3x&bgnkxxEZ)g{JJ~Kb5qSJRM2H7g_Iqt70ygJR;F| z6NSHF1m}TmV4P7>e9G@1Z>bUgAMg0?vFy$Tx8=V&y@^~y^7S0g>KylA$isjOg(hzB#!b=Nsw5wE8r*Ab1?M+toLKfaT z=ZP>;B)>De^Zsfwbj*3=Y{k=W*HgI03Rl3O#)av-{KlwdV;#1Vh;@8&Zaw=gc%Q;3@w)srUaQ>`TCE zT-&ynZDX4v<8BgVQz284LLrrqW+XC16j4ePm2IOWNiwG-G)SgW<|&cgsFI3Qh@>Pb zn*Q@#t=0DK_j`|j9pCZsZfkg+`?>FHIIr_MuZ#}f><}cE%K0O?{rHhsLpRi&ZgA1b zcw&jH|4A+iEWSme7dWb<&qg0CvH2tDi3X@Z!YSHo7zu8MyM1;SsPi`HM#aYW z5ZukvVh==Nr;hep(`TKY7XW^EPJ^uXr^Vxr?nUCpM$82<8{JSr5ueg{O%x~;TFUG1 z2z&WJaEjM-LwMzn$X6ekIeuBt^C_N9`1$jdS`NIXH1+4^A8wOO07RCLu>VPA6cf6u zCJtVL1D}XnJALuu#rs#FPQR^9m?YvEE?Jf!A{#?2%c1J`2i#?EfC9n`z@~}RYNL_F zuqK9yX3KUq629l5qKdx#(R%of6t;qru94bI-Za1q>rq#@<-%?o4(-FXL|riY?CqB5 zDG)`n@|q-n_Yg^2>}1e`^#@kmKiIP+^7Otva5ZO&7NOAx#mY%0R#w+z$KH8PI1}}p z#YuH2j;r<|Ikw4*OIc4)W&^&a*B$Zq_5Z2Y)5 z3v@vMiHA^zpA|{BQA2~CFa-)nFvWj%ifMQj+R_hHk_*9G1QG1NB)|H?rN+Y}7n(Z8 zA~zxeZ&(b8wX5u1+lsJLxqc%GkSKKev3kuQN*BOMY1j^lJ%rgkaH3JkH>Au=i8jxMSVLkrnmS(Pxi+i1a(2Vh0zaRb@AiG&VLaN3TU()+9khF;<&AnHoF-HO^R)KAMFhowEagh1joC zSdd^7L;&(^+%{H@ovcpy_Ta{~_wo*1odWJ&a5^$?qV>lM<3rKn34_{G4}rW);gP3VOW5a`4Nn_imMl5{33*C!fU#X zZrg))q|`Au-P=Q3noE9n6^>lihdmukHt6=eHFC6M*4l=wtPckVsc+QQ`Gb0IPGF>@ z(CFbu8aFkg8Wv|dYmtdb)_~dh_>}>ym;~2)hT=4-5wASxq5b{IJo~k(0^@C)q&F|9 z%rE!0zY#Ypu6cR+5PkE)Z31&6AV61doppOt`Qp4@RmR#A180_9PgcFr5~f$x1+^+B z&K=_#XTACK{4)N1?pRLr8Z+

#c>l(7(?mHC@9>VvOB>m?acD9aYb74TUCSCg7v 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

#h2&2Y6chqJho?U{Kg_^j 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℞*(;! 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

    ie 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ଯ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 z zqJP#eFMbl;+uQD!U8AsciV|DO{Is)U2+__j`cc^>VO0@UqgLIf-I^#S{a^QRR`oqJ z7@4kk9SOY{wf=+mD@Je~xS5ho)*iXyTIur8Uw8+Lk+uCE?@`27}|4 zdyFx0AkKAAj58Wx8o6Qp`X$V5+YDTJln4I4u+earC>A+<`~H1q_<7hwv@y}WP2Mca zxM;?Xf=9GR{hlMVJw@-j1ZH#Dv#g2({bFkjAE0%#@$eDDCHh>*1*>ZVwFxizd8tLD zswx@=oyPN1xp+$Ur)k4cc5tjSzIl!$)nr Od^h_r1VfTC{H;0g7Nl254P(bBpd% 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

    HDW@1 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

1B1=KqBlfp;#*@#*GO=>P!ZR2b0rj( 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