diff --git a/.bumpversion.cfg b/.bumpversion.cfg index ed583aa7..eb4c5b1c 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.3.1 +current_version = 1.0.0 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P[a-z0-9+]+) diff --git a/.nf-core.yml b/.nf-core.yml index 2a7a7413..12d00da0 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -3,7 +3,6 @@ lint: actions_ci: False multiqc_config: False files_exist: - - lib/NfcoreTemplate.groovy - lib/Utils.groovy - lib/WorkflowMain.groovy - lib/WorkflowOncoanalyser.groovy diff --git a/README.md b/README.md index 73510f08..cbce0809 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Launch oncoanalyser: ```bash nextflow run nf-core/oncoanalyser \ -profile docker \ - -revision 0.4.5 \ + -revision 1.0.0 \ --mode wgts \ --genome GRCh38_hmf \ --input samplesheet.csv \ diff --git a/conf/test_stub.config b/conf/test_stub.config index 55b2460b..34906f4c 100644 --- a/conf/test_stub.config +++ b/conf/test_stub.config @@ -5,7 +5,7 @@ Defines input files and everything required to run a fast and simple pipeline test. Use as follows: - nextflow run nf-core/oncoanalyser -profile test, --outdir + nextflow run nf-core/oncoanalyser -profile test_stub -stub --outdir ---------------------------------------------------------------------------------------- */ diff --git a/docs/output.md b/docs/output.md index a93c665c..e2a75b72 100644 --- a/docs/output.md +++ b/docs/output.md @@ -145,7 +145,7 @@ _Picard MarkDuplicates is only run on RNA alignments_ - `/sage/append/` - `.sage.append.vcf.gz`: Tumor DNA sample small variant VCF with RNA data appended. - - `.sage.append.vcf.gz`: Normal DNA sample small variant VCF with RNA data appended.. + - `.sage.append.vcf.gz`: Normal DNA sample small variant VCF with RNA data appended. - `/sage/somatic/` diff --git a/docs/usage.md b/docs/usage.md index 08952c6d..57d0de04 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -55,7 +55,7 @@ details and columns are [described below](#column-descriptions). Several different input filetypes beyond FASTQ and BAM are recognised, including intermediate output files generated during execution such as the PURPLE output directory. The full list of recognised input filetypes is available -[here](https://github.com/nf-core/oncoanalyser/blob/0.4.5/lib/Constants.groovy#L58-L90). +[here](https://github.com/nf-core/oncoanalyser/blob/1.0.0/lib/Constants.groovy#L58-L90). ### Simple example @@ -80,7 +80,7 @@ P1__wgts,P1,SC,tumor,rna,fastq,library_id:SC_library;lane:001,/path/to/P1.SC.tum Inputs with the `bam` filetype will be processed by MarkDups as required by hmftools. Where an input BAM has already been processed specifically by [HMF -MarkDups](https://github.com/hartwigmedical/hmftools/blob/master/mark-dups/README.md), you can avoid needless +MarkDups](https://github.com/hartwigmedical/hmftools/blob/mark-dups-v1.1.5/mark-dups/README.md), you can avoid needless reprocessing by setting `bam_markdups` as the filetype instead. It is important to understand that duplicate marking by other tools (e.g. GATK) cannot be used as a substitute since HMF MarkDups performs key operations beyond just duplicate marking. @@ -146,7 +146,7 @@ The typical command for running the pipeline is as follows: ```bash nextflow run nf-core/oncoanalyser \ -profile docker \ - -revision 0.4.5 \ + -revision 1.0.0 \ --mode \ --genome \ --input samplesheet.csv \ @@ -229,7 +229,7 @@ If you wish to share such profile (such as upload as supplementary material for ### Selecting processes Most of the major components in oncoanalyser can be skipped using `--processes_exclude` (the full list of available -processes can be view [here](https://github.com/nf-core/oncoanalyser/blob/0.4.5/lib/Constants.groovy#L36-L56)). +processes can be view [here](https://github.com/nf-core/oncoanalyser/blob/1.0.0/lib/Constants.groovy#L36-L56)). Multiple processes can be given as a comma-separated list. While there are some use-cases for this feature (e.g. skipping resource intensive processes such as VIRUSBreakend), it becomes more powerful when combined with existing inputs as described in the following section. @@ -271,7 +271,7 @@ And now run and skip variant calling: ```bash nextflow run nf-core/oncoanalyser \ -profile docker \ - -revision 0.4.5 \ + -revision 1.0.0 \ --mode wgts \ --processes_exclude markdups,amber,cobalt,gridss,gripss,sage,pave \ --genome GRCh38_hmf \ @@ -341,7 +341,7 @@ P1__wgts,P1,SC,tumor,rna,bam,/path/to/P1.SC.tumor.rna.wts.bam ```bash nextflow run nf-core/oncoanalyser \ -profile docker \ - -revision 0.4.5 \ + -revision 1.0.0 \ --mode wgts \ --genome GRCh38_hmf \ --prepare_reference_only \ @@ -350,7 +350,7 @@ nextflow run nf-core/oncoanalyser \ ``` Executing the above command will download and unpack default reference data without running any analysis, and once -complete the prepared reference files can found in `./prepare_reference/reference_data/0.4.5//`. It is +complete the prepared reference files can found in `./prepare_reference/reference_data/1.0.0//`. It is recommended to remove the Nextflow work directory after staging data to free disk space. For oncoanalyser to use locally staged reference data a custom config can be used: @@ -442,7 +442,7 @@ config file. This avoids having to regenerate indexes for each new analysis. ```bash nextflow run nf-core/oncoanalyser \ -profile docker \ - -revision 0.4.5 \ + -revision 1.0.0 \ -config genome.custom.config \ --mode wgts \ \ diff --git a/lib/Processes.groovy b/lib/Processes.groovy index f91fc606..480e10bb 100644 --- a/lib/Processes.groovy +++ b/lib/Processes.groovy @@ -1,3 +1,5 @@ +import nextflow.Nextflow + import Constants import Utils @@ -29,8 +31,8 @@ class Processes { return Constants.Process.valueOf(name.toUpperCase()) } catch(java.lang.IllegalArgumentException e) { def processes_str = Processes.getProcessNames().join('\n - ') - log.error "\nERROR: recieved invalid process: '${name}'. Valid options are:\n - ${processes_str}" - System.exit(1) + log.error "recieved invalid process: '${name}'. Valid options are:\n - ${processes_str}" + Nextflow.exit(1) } } .unique() @@ -45,8 +47,8 @@ class Processes { if (processes_shared) { def processes_shared_str = processes_shared.join('\n - ') def message_base = 'the following processes was found in the include and the exclude list' - log.error "\nERROR: ${message_base}:\n - ${processes_shared_str}" - System.exit(1) + log.error "${message_base}:\n - ${processes_shared_str}" + Nextflow.exit(1) } } diff --git a/lib/Utils.groovy b/lib/Utils.groovy index 0601ed8f..38fae00c 100644 --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -26,7 +26,7 @@ class Utils { // Add subject id if absent or check if current matches existing if (meta.containsKey('subject_id') && meta.subject_id != it.subject_id) { log.error "got unexpected subject name for ${group_id} ${meta.subject_id}: ${it.subject_id}" - System.exit(1) + Nextflow.exit(1) } else { meta.subject_id = it.subject_id } @@ -36,7 +36,7 @@ class Utils { if (!sample_type_enum) { def sample_type_str = Utils.getEnumNames(Constants.SampleType).join('\n - ') log.error "received invalid sample type: '${it.sample_type}'. Valid options are:\n - ${sample_type_str}" - System.exit(1) + Nextflow.exit(1) } // Sequence type @@ -44,7 +44,7 @@ class Utils { if (!sequence_type_enum) { def sequence_type_str = Utils.getEnumNames(Constants.SequenceType).join('\n - ') log.error "received invalid sequence type: '${it.sequence_type}'. Valid options are:\n - ${sequence_type_str}" - System.exit(1) + Nextflow.exit(1) } // Filetype @@ -52,7 +52,7 @@ class Utils { if (!filetype_enum) { def filetype_str = Utils.getEnumNames(Constants.FileType).join('\n - ') log.error "received invalid file type: '${it.filetype}'. Valid options are:\n - ${filetype_str}" - System.exit(1) + Nextflow.exit(1) } def sample_key = [sample_type_enum, sequence_type_enum] @@ -60,12 +60,12 @@ class Utils { if (meta_sample.sample_id != it.sample_id) { log.error "got unexpected sample name for ${group_id} ${sample_type_enum}/${sequence_type_enum}: ${it.sample_id}" - System.exit(1) + Nextflow.exit(1) } if (meta_sample.containsKey(filetype_enum) & filetype_enum != Constants.FileType.FASTQ) { log.error "got duplicate file for ${group_id} ${sample_type_enum}/${sequence_type_enum}: ${filetype_enum}" - System.exit(1) + Nextflow.exit(1) } // Info data @@ -81,12 +81,12 @@ class Utils { if (!info_field_enum) { def info_field_str = Utils.getEnumNames(Constants.InfoField).join('\n - ') log.error "received invalid info field: '${k}'. Valid options are:\n - ${info_field_str}" - System.exit(1) + Nextflow.exit(1) } if (info_data.containsKey(info_field_enum)) { log.error "got duplicate info field for ${group_id} ${sample_type_enum}/${sequence_type_enum}: ${info_field_enum}" - System.exit(1) + Nextflow.exit(1) } info_data[info_field_enum] = v @@ -105,12 +105,12 @@ class Utils { if (!info_data.containsKey(Constants.InfoField.LIBRARY_ID)) { log.error "missing 'library_id' info field for ${group_id} ${sample_type_enum}/${sequence_type_enum}" - System.exit(1) + Nextflow.exit(1) } if (!info_data.containsKey(Constants.InfoField.LANE)) { log.error "missing 'lane' info field for ${group_id} ${sample_type_enum}/${sequence_type_enum}" - System.exit(1) + Nextflow.exit(1) } def (fwd, rev) = it.filepath.tokenize(';') @@ -118,7 +118,7 @@ class Utils { if (meta_sample.containsKey(fastq_key)) { log.error "got duplicate lane + library_id data for ${group_id} ${sample_type_enum}/${sequence_type_enum}: ${fastq_key}" - System.exit(1) + Nextflow.exit(1) } if (!meta_sample.containsKey(filetype_enum)) { @@ -179,7 +179,7 @@ class Utils { if (!index_fp.exists() && !stub_run) { def (sample_type, sequence_type) = sample_key log.error "no index provided or found for ${meta.group_id} ${sample_type}/${sequence_type}: ${key}: ${fp}" - System.exit(1) + Nextflow.exit(1) } meta[sample_key][index_enum] = index_fp @@ -262,7 +262,7 @@ class Utils { log.error "no BAMs nor BAM_MARKDUPs nor FASTQs provided for ${meta.group_id} ${sample_type}/${sequence_type}\n\n" + "NB: BAMs or BAM_MARKDUPs or FASTQs are always required as they are the basis to determine input sample type." - System.exit(1) + Nextflow.exit(1) } } @@ -274,7 +274,7 @@ class Utils { if (Utils.hasNormalDna(meta)) { log.error "targeted mode is not compatible with the normal DNA BAM provided for ${meta.group_id}\n\n" + "The targeted workflow supports only tumor DNA BAMs (and tumor RNA BAMs for TSO500)" - System.exit(1) + Nextflow.exit(1) } // Do not allow only tumor RNA @@ -282,22 +282,22 @@ class Utils { log.error "targeted mode is not compatible with only tumor RNA provided for ${meta.group_id}\n\n" + "The targeted workflow requires tumor DNA and can optionally take tumor RNA, depending on " + "the configured panel." - System.exit(1) + Nextflow.exit(1) } // Restrict tumor RNA inputs to the TSO500 panel if (Utils.hasTumorRnaBam(meta) && run_config.panel != 'tso500') { def panel = run_config.panel.toUpperCase() - "Only the TSO500 panel supports tumor RNA analysis" - System.exit(1) + log.error "only the TSO500 panel supports tumor RNA analysis but got: ${panel}" + Nextflow.exit(1) } } // Do not allow normal DNA only if (Utils.hasNormalDna(meta) && !Utils.hasTumorDna(meta)) { - log.error "germline only mode not supported, found only a normal DNA BAM for ${meta.group_id}\n" - System.exit(1) + log.error "germline only mode not supported, found only a normal DNA BAM for ${meta.group_id}" + Nextflow.exit(1) } // Enforce unique samples names within groups @@ -310,9 +310,8 @@ class Utils { def key_strs = keys.collect { sample_type, sequence_type -> "${sample_type}/${sequence_type}" } return " * ${sample_id}: ${key_strs.join(", ")}" } - log.error "duplicate sample names found for ${meta.group_id}:\n\n" + - "${duplicate_message_strs.join("\n")}" - System.exit(1) + log.error "duplicate sample names found for ${meta.group_id}:\n\n${duplicate_message_strs.join("\n")}" + Nextflow.exit(1) } } @@ -333,7 +332,7 @@ class Utils { " The genome .alt file is required when building bwa-mem2 or GRIDSS indexes\n" + " for reference genomes containing ALT contigs\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } // Refuse to create STAR index for reference genome containing ALTs, refer to Slack channel @@ -344,7 +343,7 @@ class Utils { " Refusing to create the STAR index for a reference genome with ALT contigs.\n" + " Please review https://github.com/alexdobin/STAR docs or contact us on Slack.\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } // Require that an input GTF file is provided when creating STAR index @@ -353,7 +352,7 @@ class Utils { " Creating a STAR index requires the appropriate genome transcript annotations\n" + " as a GTF file. Please contact us on Slack for further information." "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } } @@ -383,7 +382,7 @@ class Utils { if (!run_mode_enum) { def run_modes_str = Utils.getEnumNames(Constants.RunMode).join('\n - ') log.error "recieved an invalid run mode: '${run_mode}'. Valid options are:\n - ${run_modes_str}" - System.exit(1) + Nextflow.exit(1) } return run_mode_enum } diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index ae3ad687..56047a62 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -115,21 +115,21 @@ class WorkflowMain { " Currently, the available genome are:\n" + " ${params.genomes.keySet().join(", ")}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } else if (!params.genomes.containsKey(params.genome)) { log.error "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + " Currently, the available genome are:\n" + " ${params.genomes.keySet().join(", ")}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } if (!Constants.GENOMES_SUPPORTED.contains(params.genome)) { if (!params.force_genome) { - log.error "ERROR: currently only the GRCh37_hmf and GRCh38_hmf genomes are supported but got ${params.genome}" + + log.error "currently only the GRCh37_hmf and GRCh38_hmf genomes are supported but got ${params.genome}" + ", please adjust the --genome argument accordingly or override with --force_genome." - System.exit(1) + Nextflow.exit(1) } else { log.warn "currently only the GRCh37_hmf and GRCh38_hmf genomes are supported but forcing to " + "proceed with \"${params.genome}\"" @@ -143,7 +143,7 @@ class WorkflowMain { " Currently, the list of genomes in the version list include:\n" + " ${Constants.GENOMES_DEFINED.join(", ")}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } if (!params.genome_type) { @@ -153,12 +153,12 @@ class WorkflowMain { " Currently, the list of genomes in the type list include:\n" + " ${Constants.GENOMES_DEFINED.join(", ")}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } if (!params.ref_data_hmf_data_path) { - log.error "ERROR: HMF data path wasn't provided" - System.exit(1) + log.error "HMF data path wasn't provided" + Nextflow.exit(1) } // Run configuration specific parameters @@ -171,7 +171,7 @@ class WorkflowMain { " Currently, the available run modes are:\n" + " - ${run_modes}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } def run_mode = Utils.getRunMode(params.mode, log) @@ -187,7 +187,7 @@ class WorkflowMain { " Currently, the available panels are:\n" + " - ${panels}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } else if (!Constants.PANELS_DEFINED.contains(params.panel)) { @@ -196,7 +196,7 @@ class WorkflowMain { " The ${params.panel} is not defined. Currently, the available panels are:\n" + " - ${panels}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } @@ -207,7 +207,7 @@ class WorkflowMain { log.error "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Using a reference genome without ALT contigs but found an .alt file\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } def ref_data_genome_alt_fn = nextflow.Nextflow.file(params.ref_data_genome_alt).name @@ -217,7 +217,7 @@ class WorkflowMain { " Found .alt file with filename of ${ref_data_genome_alt_fn} but it is required to match\n" + " reference genome FASTA filename stem: ${ref_data_genome_fasta_fn}.alt\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - System.exit(1) + Nextflow.exit(1) } } diff --git a/lib/WorkflowOncoanalyser.groovy b/lib/WorkflowOncoanalyser.groovy index 97f0a030..b4701e1f 100755 --- a/lib/WorkflowOncoanalyser.groovy +++ b/lib/WorkflowOncoanalyser.groovy @@ -59,7 +59,7 @@ class WorkflowOncoanalyser { } } else { System.err.println "ERROR: got bad flatten_mode: ${flatten_mode}" - System.exit(1) + Nextflow.exit(1) } } diff --git a/modules/local/amber/main.nf b/modules/local/amber/main.nf index 368a461e..df181414 100644 --- a/modules/local/amber/main.nf +++ b/modules/local/amber/main.nf @@ -9,7 +9,7 @@ process AMBER { input: tuple val(meta), path(tumor_bam), path(normal_bam), path(tumor_bai), path(normal_bai) - val ref_genome_ver + val genome_ver path heterozygous_sites path target_region_bed @@ -37,7 +37,7 @@ process AMBER { ${reference_arg} \\ ${reference_bam_arg} \\ ${target_regions_bed_arg} \\ - -ref_genome_version ${ref_genome_ver} \\ + -ref_genome_version ${genome_ver} \\ -loci ${heterozygous_sites} \\ -threads ${task.cpus} \\ -output_dir amber/ diff --git a/modules/local/cuppa/main.nf b/modules/local/cuppa/main.nf index f7ba8e08..8a4971f6 100644 --- a/modules/local/cuppa/main.nf +++ b/modules/local/cuppa/main.nf @@ -9,7 +9,7 @@ process CUPPA { input: tuple val(meta), path(isofox_dir), path(purple_dir), path(linx_dir), path(virusinterpreter_dir) - val ref_genome_ver + val genome_ver path cuppa_resources, stageAs: 'cuppa_reference_data' val classifier @@ -51,7 +51,7 @@ process CUPPA { -sample_data_dir sample_data/ \\ -categories ${classifier} \\ -ref_data_dir ${cuppa_resources} \\ - -ref_genome_version ${ref_genome_ver} \\ + -ref_genome_version ${genome_ver} \\ -create_pdf \\ -output_dir cuppa/ diff --git a/modules/local/custom/extract_tarball/main.nf b/modules/local/custom/extract_tarball/main.nf index c0b178fa..9e7a9129 100644 --- a/modules/local/custom/extract_tarball/main.nf +++ b/modules/local/custom/extract_tarball/main.nf @@ -10,7 +10,7 @@ process CUSTOM_EXTRACTTARBALL { tuple val(meta), path(tarball) output: - path "${meta.id}/", emit: dir + path "${meta.id}/", emit: extracted_dir when: task.ext.when == null || task.ext.when diff --git a/modules/local/pave/germline/main.nf b/modules/local/pave/germline/main.nf index b5cf7bdf..738a9c34 100644 --- a/modules/local/pave/germline/main.nf +++ b/modules/local/pave/germline/main.nf @@ -2,6 +2,8 @@ // - https://github.com/hartwigmedical/pipeline5/blob/v5.33/cluster/src/main/java/com/hartwig/pipeline/tertiary/pave/PaveGermline.java#L36-L41 // - https://github.com/hartwigmedical/pipeline5/blob/v5.33/cluster/src/main/java/com/hartwig/pipeline/tertiary/pave/PaveArguments.java#L31-L43 +import nextflow.Nextflow + process PAVE_GERMLINE { tag "${meta.id}" label 'process_medium' @@ -42,7 +44,7 @@ process PAVE_GERMLINE { gnomad_args = "-gnomad_freq_dir ${gnomad_resource}" } else { log.error "got bad genome version: ${genome_ver}" - System.exit(1) + Nextflow.exit(1) } """ diff --git a/modules/local/pave/somatic/main.nf b/modules/local/pave/somatic/main.nf index 147f4dce..2079364e 100644 --- a/modules/local/pave/somatic/main.nf +++ b/modules/local/pave/somatic/main.nf @@ -1,3 +1,5 @@ +import nextflow.Nextflow + process PAVE_SOMATIC { tag "${meta.id}" label 'process_medium' @@ -43,7 +45,7 @@ process PAVE_SOMATIC { gnomad_args = "-gnomad_freq_dir ${gnomad_resource}" } else { log.error "got bad genome version: ${genome_ver}" - System.exit(1) + Nextflow.exit(1) } // Targeted mode diff --git a/nextflow.config b/nextflow.config index 656b89bb..dd58e5d8 100644 --- a/nextflow.config +++ b/nextflow.config @@ -292,7 +292,7 @@ manifest { description = """A comprehensive cancer DNA/RNA analysis and reporting pipeline""" mainScript = 'main.nf' nextflowVersion = '!>=22.10.5' - version = '0.3.1' + version = '1.0.0' doi = '' } diff --git a/subworkflows/local/prepare_reference/main.nf b/subworkflows/local/prepare_reference/main.nf index 7b086827..29479dd2 100644 --- a/subworkflows/local/prepare_reference/main.nf +++ b/subworkflows/local/prepare_reference/main.nf @@ -72,7 +72,7 @@ workflow PREPARE_REFERENCE { .map { [[id: "bwa-mem2_index_${it.name.replaceAll('\\.tar\\.gz$', '')}"], it] } DECOMP_BWAMEM2_INDEX(ch_genome_bwamem2_index_inputs) - ch_genome_bwamem2_index = DECOMP_BWAMEM2_INDEX.out.dir + ch_genome_bwamem2_index = DECOMP_BWAMEM2_INDEX.out.extracted_dir } else { @@ -109,7 +109,7 @@ workflow PREPARE_REFERENCE { .map { [[id: "gridss_index_${it.name.replaceAll('\\.tar\\.gz$', '')}"], it] } DECOMP_GRIDSS_INDEX(ch_genome_gridss_index_inputs) - ch_genome_gridss_index = DECOMP_GRIDSS_INDEX.out.dir + ch_genome_gridss_index = DECOMP_GRIDSS_INDEX.out.extracted_dir } else { @@ -138,7 +138,7 @@ workflow PREPARE_REFERENCE { .map { [[id: "star_index_${it.name.replaceAll('\\.tar\\.gz$', '')}"], it] } DECOMP_STAR_INDEX(ch_genome_star_index_inputs) - ch_genome_star_index = DECOMP_STAR_INDEX.out.dir + ch_genome_star_index = DECOMP_STAR_INDEX.out.extracted_dir } else { @@ -158,7 +158,7 @@ workflow PREPARE_REFERENCE { .map { [[id: it.name.replaceAll('\\.tar\\.gz$', '')], it] } DECOMP_VIRUSBREAKEND_DB(ch_virusbreakenddb_inputs) - ch_virusbreakenddb = DECOMP_VIRUSBREAKEND_DB.out.dir + ch_virusbreakenddb = DECOMP_VIRUSBREAKEND_DB.out.extracted_dir } else { @@ -179,7 +179,7 @@ workflow PREPARE_REFERENCE { DECOMP_HMF_DATA(ch_hmf_data_inputs) - ch_hmf_data = DECOMP_HMF_DATA.out.dir + ch_hmf_data = DECOMP_HMF_DATA.out.extracted_dir .collect() .map { dir_list -> assert dir_list.size() == 1 @@ -209,7 +209,7 @@ workflow PREPARE_REFERENCE { DECOMP_PANEL_DATA(ch_panel_data_inputs) - ch_panel_data = DECOMP_PANEL_DATA.out.dir + ch_panel_data = DECOMP_PANEL_DATA.out.extracted_dir .collect() .map { dir_list -> assert dir_list.size() == 1