diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f46f3946..18e9251c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,112 +1,124 @@ -name: nf-core CI # This workflow runs the pipeline with the minimal test dataset to check that it completes without any syntax errors +name: nf-core CI on: - push: - branches: - - dev pull_request: release: types: [published] + merge_group: + types: + - checks_requested + branches: + - master + - dev env: NXF_ANSI_LOG: false + NFT_VER: "0.8.3" + NFT_WORKDIR: "~" + NFT_DIFF: "pdiff" + NFT_DIFF_ARGS: "--line-numbers --expand-tabs=2" concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" cancel-in-progress: true jobs: - test: - name: Run pipeline with test data - # Only run on push if this is the nf-core dev branch (merged PRs) - if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mag') }}" + changes: + name: Check for changes runs-on: ubuntu-latest - strategy: - matrix: - NXF_VER: - - "23.04.0" - - "latest-everything" + outputs: + # Expose matched filters as job 'tags' output variable + tags: ${{ steps.filter.outputs.changes }} steps: - - name: Free some space - run: | - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" - - - name: Check out pipeline code - uses: actions/checkout@v4 - - - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + - 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 + - name: debug + run: cat .github/tags.yml + - uses: dorny/paths-filter@v2 + id: filter with: - version: "${{ matrix.NXF_VER }}" + filters: ".github/tags.yml" - - name: Run pipeline with test data + define_nxf_versions: + name: Choose nextflow versions to test against depending on target branch + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.nxf_versions.outputs.matrix }} + steps: + - id: nxf_versions run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results + if [[ "${{ github.event_name }}" == "pull_request" && "${{ github.base_ref }}" == "dev" && "${{ matrix.NXF_VER }}" != "latest-everything" ]]; then + echo matrix='["latest-everything"]' | tee -a $GITHUB_OUTPUT + else + echo matrix='["latest-everything", "23.04.0"]' | tee -a $GITHUB_OUTPUT + fi - profiles: - name: Run workflow profile - # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mag') }} + test: + name: ${{ matrix.tags }} ${{ matrix.profile }} NF ${{ matrix.NXF_VER }} + needs: [changes, define_nxf_versions] + if: needs.changes.outputs.tags != '[]' runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - # Run remaining test profiles with minimum nextflow version + NXF_VER: ${{ fromJson(needs.define_nxf_versions.outputs.matrix) }} + tags: ["${{ fromJson(needs.changes.outputs.tags) }}"] profile: - [ - test_host_rm, - test_hybrid, - test_hybrid_host_rm, - test_busco_auto, - test_ancient_dna, - test_adapterremoval, - test_binrefinement, - test_virus_identification, - ] - steps: - - name: Free some space - run: | - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" + - "docker" + steps: - name: Check out pipeline code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install Nextflow - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - - - name: Run pipeline with ${{ matrix.profile }} test profile - run: | - nextflow run ${GITHUB_WORKSPACE} -profile ${{ matrix.profile }},docker --outdir ./results + uses: nf-core/setup-nextflow@v1 + with: + version: "${{ matrix.NXF_VER }}" - checkm: - name: Run single test to checkm due to database download - # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mag') }} - runs-on: ubuntu-latest + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + architecture: "x64" - steps: - - name: Free some space + - name: Install pdiff to see diff between nf-test snapshots run: | - sudo rm -rf "/usr/local/share/boost" - sudo rm -rf "$AGENT_TOOLSDIRECTORY" + python -m pip install --upgrade pip + pip install pdiff - - name: Check out pipeline code - uses: actions/checkout@v2 + - 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.NFT_VER }}-nftest - - name: Install Nextflow + - name: Install nf-test + if: steps.cache-software.outputs.cache-hit != 'true' run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ - - name: Download and prepare CheckM database + - name: Run nf-test run: | - mkdir -p databases/checkm - wget https://data.ace.uq.edu.au/public/CheckM_databases/checkm_data_2015_01_16.tar.gz -P databases/checkm - tar xzvf databases/checkm/checkm_data_2015_01_16.tar.gz -C databases/checkm/ + nf-test test --verbose --tag ${{ matrix.tags }} --profile +"${{ matrix.profile }}" --junitxml=test.xml --tap=test.tap + + - uses: pcolby/tap-summary@v1 + with: + path: >- + test.tap - - name: Run pipeline with ${{ matrix.profile }} test profile + - name: Output log on failure + if: failure() run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results --binqc_tool checkm --checkm_db databases/checkm + sudo apt install bat > /dev/null + batcat --decorations=always --color=always ${{ github.workspace }}/.nf-test/tests/*/meta/nextflow.log + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: always() # always run even if the previous step fails + with: + report_paths: test.xml diff --git a/.gitignore b/.gitignore index 5124c9ac..613fd0c9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ results/ testing/ testing* *.pyc +.nf-tests/ +.nf-test.log +.nf-test/ diff --git a/.nf-core.yml b/.nf-core.yml index b6309856..e78cb808 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -7,3 +7,4 @@ lint: - config_defaults: - params.phix_reference - params.lambda_reference + actions_ci: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 932a6d86..1fa83f10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### `Added` +- [#543](https://github.com/nf-core/mag/pull/543) - Automatic samplesheet generation for nf-core/phageannotator (@CarsonJM) + ### `Changed` - [#581](https://github.com/nf-core/mag/pull/581) - Added explicit licence text to headers of all custom scripts (reported by @FriederikeHanssen and @maxibor, fix by @jfy133) diff --git a/README.md b/README.md index cdb0cfac..8e4c67b6 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ The pipeline then: - Performs ancient DNA validation and repair with [pyDamage](https://github.com/maxibor/pydamage) and [freebayes](https://github.com/freebayes/freebayes) - optionally refines bins with [DAS Tool](https://github.com/cmks/DAS_Tool) - assigns taxonomy to bins using [GTDB-Tk](https://github.com/Ecogenomics/GTDBTk) and/or [CAT](https://github.com/dutilh/CAT) and optionally identifies viruses in assemblies using [geNomad](https://github.com/apcamargo/genomad), or Eukaryotes with [Tiara](https://github.com/ibe-uw/tiara) +- generates a samplesheet that can be used as input for other nf-core pipelines. Currently, [phageannotator](https://github.com/nf-core/phageannotator) is supported. Furthermore, the pipeline creates various reports in the results directory specified, including a [MultiQC](https://multiqc.info/) report summarizing some of the findings and software versions. diff --git a/bin/combine_tables.py b/bin/combine_tables.py index a2dcf986..25b44f5d 100755 --- a/bin/combine_tables.py +++ b/bin/combine_tables.py @@ -188,6 +188,8 @@ def main(args=None): how="outer", ) + # sort results for reproducibility + results.sort_values(by="bin", inplace=True, ignore_index=True) results.to_csv(args.out, sep="\t") diff --git a/bin/summary_busco.py b/bin/summary_busco.py index 9701783b..bcfc62de 100755 --- a/bin/summary_busco.py +++ b/bin/summary_busco.py @@ -219,6 +219,8 @@ def main(args=None): else: df_final = df_specific.append(df_failed) + # sort output file for reproducibility + df_final.sort_values(by="GenomeBin", inplace=True) df_final.to_csv(args.out, sep="\t", index=False) diff --git a/conf/base.config b/conf/base.config index 7dec9e28..172df705 100644 --- a/conf/base.config +++ b/conf/base.config @@ -122,6 +122,20 @@ process { memory = { check_max (128.GB * task.attempt, 'memory' ) } time = { check_max (12.h * task.attempt, 'time' ) } } + //bowtie2 returns exit code 250 when running out of memory + withName: BOWTIE2_HOST_REMOVAL_ALIGN { + cpus = { check_bowtie2_cpus (8, task.attempt ) } + memory = { check_max (40.GB * task.attempt, 'memory' ) } + time = { check_max (16.h * task.attempt, 'time' ) } + errorStrategy = { task.exitStatus in [143,137,104,134,139,250] ? 'retry' : 'finish' } + } + //bowtie2 returns exit code 250 when running out of memory + withName: BOWTIE2_PHIX_REMOVAL_ALIGN { + cpus = { check_bowtie2_cpus (8, task.attempt ) } + memory = { check_max (40.GB * task.attempt, 'memory' ) } + time = { check_max (16.h * task.attempt, 'time' ) } + errorStrategy = { task.exitStatus in [143,137,104,134,139,250] ? 'retry' : 'finish' } + } //MEGAHIT returns exit code 250 when running out of memory withName: MEGAHIT { cpus = { check_megahit_cpus (8, task.attempt ) } @@ -147,7 +161,7 @@ process { } //returns exit code 247 when running out of memory withName: BOWTIE2_ASSEMBLY_ALIGN { - cpus = { check_max (2 * task.attempt, 'cpus' ) } + cpus = { check_bowtie2_cpus (8, 'cpus' ) } memory = { check_max (8.GB * task.attempt, 'memory' ) } time = { check_max (8.h * task.attempt, 'time' ) } errorStrategy = { task.exitStatus in [143,137,104,134,139,247] ? 'retry' : 'finish' } diff --git a/conf/modules.config b/conf/modules.config index 172ff038..faa46def 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -115,7 +115,9 @@ process { } withName: BOWTIE2_HOST_REMOVAL_ALIGN { - ext.args = params.host_removal_verysensitive ? "--very-sensitive" : "--sensitive" + ext.args = [ + params.host_removal_verysensitive ? "--very-sensitive" : "--sensitive" + ].join(' ').trim() ext.args2 = params.host_removal_save_ids ? "--host_removal_save_ids" : '' ext.prefix = { "${meta.id}_run${meta.run}_host_removed" } publishDir = [ diff --git a/conf/test.config b/conf/test.config index 28984d13..2c6974a9 100644 --- a/conf/test.config +++ b/conf/test.config @@ -19,16 +19,19 @@ params { max_memory = '6.GB' max_time = '6.h' - // Input data input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.multirun.csv' centrifuge_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_cf.tar.gz" kraken2_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_kraken.tgz" skip_krona = true - min_length_unbinned_contigs = 1 + megahit_fix_cpu_1 = true + spades_fix_cpus = 1 + bowtie2_fix_cpu_1 = true + maxbin2_fix_cpu_1 = true + binning_map_mode = 'own' + min_length_unbinned_contigs = 1000000 max_unbinned_contigs = 2 busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" busco_clean = true skip_gtdbtk = true - gtdbtk_min_completeness = 0 skip_concoct = true } diff --git a/conf/test_adapterremoval.config b/conf/test_adapterremoval.config index ca9fed10..0d9f6a66 100644 --- a/conf/test_adapterremoval.config +++ b/conf/test_adapterremoval.config @@ -21,16 +21,19 @@ params { // Input data input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.euk.csv' - centrifuge_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_cf.tar.gz" - kraken2_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_kraken.tgz" - metaeuk_db = "https://github.com/nf-core/test-datasets/raw/modules/data/proteomics/database/yeast_UPS.fasta" + clip_tool = 'adapterremoval' + keep_phix = true + centrifuge_db = null + kraken2_db = null skip_krona = true - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" + skip_megahit = true + skip_spades = true + skip_spadeshybrid = true + skip_quast = true + skip_prodigal = true + skip_binning = true + skip_binqc = true skip_gtdbtk = true - gtdbtk_min_completeness = 0 - clip_tool = 'adapterremoval' - skip_concoct = true - bin_domain_classification = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_ancient_dna.config b/conf/test_ancient_dna.config index 5e935321..f859d8d2 100644 --- a/conf/test_ancient_dna.config +++ b/conf/test_ancient_dna.config @@ -20,23 +20,30 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - centrifuge_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_cf.tar.gz" - kraken2_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_kraken.tgz" - skip_krona = true - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - ancient_dna = true - binning_map_mode = 'own' - skip_spades = false - skip_spadeshybrid = true - bcftools_view_high_variant_quality = 0 - bcftools_view_medium_variant_quality = 0 - bcftools_view_minimal_allelesupport = 3 - refine_bins_dastool = true - refine_bins_dastool_threshold = 0 - skip_concoct = true + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' + skip_clipping = true + keep_phix = true + kraken2_db = null + centrifuge_db = null + skip_krona = true + megahit_fix_cpu_1 = true + spades_fix_cpus = 1 + skip_spadeshybrid = true + ancient_dna = true + skip_quast = true + skip_prodigal = true + bowtie2_fix_cpu_1 = true + binning_map_mode = 'own' + maxbin2_fix_cpu_1 = true + bcftools_view_high_variant_quality = 0 + bcftools_view_medium_variant_quality = 0 + bcftools_view_minimal_allelesupport = 3 + refine_bins_dastool = true + refine_bins_dastool_threshold = 0 + min_length_unbinned_contigs = 1 + max_unbinned_contigs = 2 + skip_binqc = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_bbnorm.config b/conf/test_bbnorm.config index a31f6b7b..c3fb8518 100644 --- a/conf/test_bbnorm.config +++ b/conf/test_bbnorm.config @@ -20,22 +20,21 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - keep_phix = true - skip_clipping = true - skip_prokka = true - skip_prodigal = true - skip_quast = true - skip_binning = true - centrifuge_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_cf.tar.gz" - kraken2_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_kraken.tgz" - skip_krona = true - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" - busco_clean = true - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - bbnorm = true - coassemble_group = true + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' + bbnorm = true + keep_phix = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + skip_megahit = true + skip_spades = true + skip_spadeshybrid = true + skip_quast = true + skip_prodigal = true + skip_binning = true + skip_binqc = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_binrefinement.config b/conf/test_binrefinement.config index 54144244..4f6df31a 100644 --- a/conf/test_binrefinement.config +++ b/conf/test_binrefinement.config @@ -20,19 +20,28 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - assembly_input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/assembly_samplesheet.csv' - centrifuge_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_cf.tar.gz" - kraken2_db = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/test_data/minigut_kraken.tgz" - skip_krona = true - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - refine_bins_dastool = true - refine_bins_dastool_threshold = 0 - // TODO not using 'both' until #489 merged - postbinning_input = 'refined_bins_only' - busco_clean = true + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' + assembly_input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/assembly_samplesheet.csv' + bbnorm = true + keep_phix = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + skip_quast = true + skip_prodigal = true + bowtie2_fix_cpu_1 = true + maxbin2_fix_cpu_1 = true + binning_map_mode = 'own' + min_length_unbinned_contigs = 1 + max_unbinned_contigs = 2 + refine_bins_dastool = true + refine_bins_dastool_threshold = 0 + // TODO not using 'both' until #489 merged + postbinning_input = 'refined_bins_only' + skip_busco = true + skip_binqc = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_busco_auto.config b/conf/test_busco_auto.config index 48f6b7b5..9fda8cf5 100644 --- a/conf/test_busco_auto.config +++ b/conf/test_busco_auto.config @@ -20,14 +20,24 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - skip_spades = true - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - skip_prokka = true - skip_prodigal = true - skip_quast = true - skip_concoct = true + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' + keep_phix = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + megahit_fix_cpu_1 = true + skip_spades = true + skip_spadeshybrid = true + skip_quast = true + skip_prodigal = true + bowtie2_fix_cpu_1 = true + maxbin2_fix_cpu_1 = true + binning_map_mode = 'own' + min_length_unbinned_contigs = 1 + max_unbinned_contigs = 2 + skip_concoct = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_data.config b/conf/test_data.config new file mode 100644 index 00000000..81ca3fdf --- /dev/null +++ b/conf/test_data.config @@ -0,0 +1,764 @@ +// README: +// https://github.com/nf-core/test-datasets/blob/modules/README.md + +params { + // Base directory for test data + test_data_base = "https://raw.githubusercontent.com/nf-core/test-datasets/modules" + + test_data { + 'sarscov2' { + 'genome' { + genome_fasta = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.fasta" + genome_fasta_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.fasta.gz" + genome_fasta_fai = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.fasta.fai" + genome_fasta_txt_zst = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.fasta.txt.zst" + genome_dict = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.dict" + genome_gff3 = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.gff3" + genome_gff3_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.gff3.gz" + genome_gtf = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.gtf" + genome_paf = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.paf" + genome_sizes = "${params.test_data_base}/data/genomics/sarscov2/genome/genome.sizes" + transcriptome_fasta = "${params.test_data_base}/data/genomics/sarscov2/genome/transcriptome.fasta" + transcriptome_paf = "${params.test_data_base}/data/genomics/sarscov2/genome/transcriptome.paf" + proteome_fasta = "${params.test_data_base}/data/genomics/sarscov2/genome/proteome.fasta" + proteome_fasta_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/proteome.fasta.gz" + + test_bed = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/test.bed" + test_bed_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/test.bed.gz" + test2_bed = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/test2.bed" + test_bed12 = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/test.bed12" + baits_bed = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/baits.bed" + bed_autosql = "${params.test_data_base}/data/genomics/sarscov2/genome/bed/bed6alt.as" + + reference_cnn = "${params.test_data_base}/data/genomics/sarscov2/genome/cnn/reference.cnn" + + kraken2 = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kraken2" + kraken2_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kraken2.tar.gz" + + kraken2_bracken = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kraken2_bracken" + kraken2_bracken_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kraken2_bracken.tar.gz" + + kaiju = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kaiju" + kaiju_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kaiju.tar.gz" + + kofamscan_profiles_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kofamscan/profiles.tar.gz" + kofamscan_ko_list_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/kofamscan/ko_list.gz" + + ncbi_taxmap_zip = "${params.test_data_base}/data/genomics/sarscov2/genome/db/maltextract/ncbi_taxmap.zip" + taxon_list_txt = "${params.test_data_base}/data/genomics/sarscov2/genome/db/maltextract/taxon_list.txt" + + mmseqs_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/db/mmseqs.tar.gz" + + all_sites_fas = "${params.test_data_base}/data/genomics/sarscov2/genome/alignment/all_sites.fas" + informative_sites_fas = "${params.test_data_base}/data/genomics/sarscov2/genome/alignment/informative_sites.fas" + + contigs_genome_maf_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/alignment/last/contigs.genome.maf.gz" + contigs_genome_par = "${params.test_data_base}/data/genomics/sarscov2/genome/alignment/last/contigs.genome.par" + lastdb_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/genome/alignment/last/lastdb.tar.gz" + + baits_interval_list = "${params.test_data_base}/data/genomics/sarscov2/genome/picard/baits.interval_list" + targets_interval_list = "${params.test_data_base}/data/genomics/sarscov2/genome/picard/targets.interval_list" + regions_txt = "${params.test_data_base}/data/genomics/sarscov2/genome/graphtyper/regions.txt" + lc_extrap_mr = "${params.test_data_base}/data/delete_me/preseq/SRR1003759_5M_subset.mr" + } + 'illumina' { + test_single_end_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.single_end.bam" + test_single_end_sorted_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.single_end.sorted.bam" + test_single_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai" + test_paired_end_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.bam" + test_paired_end_sorted_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam" + test_paired_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai" + test_paired_end_methylated_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.methylated.bam" + test_paired_end_methylated_sorted_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.methylated.sorted.bam" + test_paired_end_methylated_sorted_bam_bai = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.paired_end.methylated.sorted.bam.bai" + test_unaligned_bam = "${params.test_data_base}/data/genomics/sarscov2/illumina/bam/test.unaligned.bam" + + test_1_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test_1.fastq.gz" + test_2_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test_2.fastq.gz" + test_interleaved_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz" + test_1_fastq_txt_zst = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test_1.fastq.txt.zst" + test2_1_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test2_1.fastq.gz" + test2_2_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test2_2.fastq.gz" + test_methylated_1_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test.methylated_1.fastq.gz" + test_methylated_2_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastq/test.methylated_2.fastq.gz" + test_1_fastq_gz_fastqc_html = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastqc/test_fastqc.html" + test_1_fastq_gz_fastqc_zip = "${params.test_data_base}/data/genomics/sarscov2/illumina/fastqc/test_fastqc.zip" + + test_bedgraph = "${params.test_data_base}/data/genomics/sarscov2/illumina/bedgraph/test.bedgraph" + + test_bigwig = "${params.test_data_base}/data/genomics/sarscov2/illumina/bigwig/test.bigwig" + + test_wig_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/wig/test.wig.gz" + + test_baserecalibrator_table = "${params.test_data_base}/data/genomics/sarscov2/illumina/gatk/test.baserecalibrator.table" + + test_computematrix_mat_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/deeptools/test.computeMatrix.mat.gz" + + test_bcf = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test.bcf" + + test_vcf = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test.vcf" + test_vcf_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test.vcf.gz" + test_vcf_gz_tbi = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi" + test2_vcf = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test2.vcf" + test2_vcf_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz" + test2_vcf_gz_tbi = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test2.vcf.gz.tbi" + test2_vcf_targets_tsv_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test2.targets.tsv.gz" + test3_vcf = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test3.vcf" + test3_vcf_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test3.vcf.gz" + test3_vcf_gz_tbi = "${params.test_data_base}/data/genomics/sarscov2/illumina/vcf/test3.vcf.gz.tbi" + + contigs_fasta = "${params.test_data_base}/data/genomics/sarscov2/illumina/fasta/contigs.fasta" + scaffolds_fasta = "${params.test_data_base}/data/genomics/sarscov2/illumina/fasta/scaffolds.fasta" + + assembly_gfa = "${params.test_data_base}/data/genomics/sarscov2/illumina/gfa/assembly.gfa" + assembly_gfa_bgz = "${params.test_data_base}/data/genomics/sarscov2/illumina/gfa/assembly.gfa.bgz" + assembly_gfa_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/gfa/assembly.gfa.gz" + assembly_gfa_zst = "${params.test_data_base}/data/genomics/sarscov2/illumina/gfa/assembly.gfa.zst" + + test_single_end_bam_readlist_txt = "${params.test_data_base}/data/genomics/sarscov2/illumina/picard/test.single_end.bam.readlist.txt" + + SRR13255544_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/sra/SRR13255544.tar.gz" + SRR11140744_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/illumina/sra/SRR11140744.tar.gz" + } + 'nanopore' { + test_sorted_bam = "${params.test_data_base}/data/genomics/sarscov2/nanopore/bam/test.sorted.bam" + test_sorted_bam_bai = "${params.test_data_base}/data/genomics/sarscov2/nanopore/bam/test.sorted.bam.bai" + + fast5_tar_gz = "${params.test_data_base}/data/genomics/sarscov2/nanopore/fast5/fast5.tar.gz" + + test_fastq_gz = "${params.test_data_base}/data/genomics/sarscov2/nanopore/fastq/test.fastq.gz" + + test_sequencing_summary = "${params.test_data_base}/data/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" + } + 'metagenome' { + classified_reads_assignment = "${params.test_data_base}/data/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" + kraken_report = "${params.test_data_base}/data/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" + krona_taxonomy = "${params.test_data_base}/data/genomics/sarscov2/metagenome/krona_taxonomy.tab" + seqid2taxid_map = "${params.test_data_base}/data/genomics/sarscov2/metagenome/seqid2taxid.map" + nodes_dmp = "${params.test_data_base}/data/genomics/sarscov2/metagenome/nodes.dmp" + names_dmp = "${params.test_data_base}/data/genomics/sarscov2/metagenome/names.dmp" + prot_nodes_dmp = "${params.test_data_base}/data/genomics/sarscov2/metagenome/prot_nodes.dmp" + prot_names_dmp = "${params.test_data_base}/data/genomics/sarscov2/metagenome/prot_names.dmp" + prot_accession2taxid_gz = "${params.test_data_base}/data/genomics/sarscov2/metagenome/prot.accession2taxid.gz" + } + } + 'mus_musculus' { + 'genome' { + rnaseq_samplesheet = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.samplesheet.csv" + rnaseq_genemeta = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.gene_meta.tsv" + rnaseq_contrasts = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.contrasts.csv" + rnaseq_matrix = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.gene_counts.top1000cov.tsv" + rnaseq_lengths = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.spoofed_lengths.tsv" + deseq_results = "${params.test_data_base}/data/genomics/mus_musculus/rnaseq_expression/SRP254919.salmon.merged.deseq2.results.tsv" + genome_19_fasta = "${params.test_data_base}/data/genomics/mus_musculus/genome/chr19.fa.gz" + genome_19_gtf = "${params.test_data_base}/data/genomics/mus_musculus/genome/chr19.filtered.gtf.gz" + } + 'illumina' { + test_1_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/mageck/ERR376998.small.fastq.gz" + test_2_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/mageck/ERR376999.small.fastq.gz" + genome_config = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/cellranger_arc_mkref_test_mm39_chr19_config.json" + multiome_lib_csv = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/lib.csv" + test_scARC_gex_R1_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/SRR18907480_chr19_sub_S1_L001_R1_001.fastq.gz" + test_scARC_gex_R2_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/SRR18907480_chr19_sub_S1_L001_R2_001.fastq.gz" + test_scARC_atac_R1_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/SRR18907481_chr19_sub_S1_L001_R1_001.fastq.gz" + test_scARC_atac_R2_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/SRR18907481_chr19_sub_S1_L001_R2_001.fastq.gz" + test_scARC_atac_I2_fastq_gz = "${params.test_data_base}/data/genomics/mus_musculus/illumina/10xgenomics/multiome/SRR18907481_chr19_sub_S1_L001_I2_001.fastq.gz" + } + 'csv' { + count_table = "${params.test_data_base}/data/genomics/mus_musculus/mageck/count_table.csv" + library = "${params.test_data_base}/data/genomics/mus_musculus/mageck/yusa_library.csv" + } + 'txt' { + design_matrix = "${params.test_data_base}/data/genomics/mus_musculus/mageck/design_matrix.txt" + } + } + 'homo_sapiens' { + '10xgenomics' { + cellranger { + test_10x_10k_pbmc_5fb_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_5fb_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5fb/subsampled_sc5p_v2_hs_PBMC_10k_5fb_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_5gex_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_5gex_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/5gex/5gex/subsampled_sc5p_v2_hs_PBMC_10k_5gex_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_b_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_b_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/bcell/subsampled_sc5p_v2_hs_PBMC_10k_b_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_t_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/tcell/subsampled_sc5p_v2_hs_PBMC_10k_t_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_t_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/fastqs/tcell/subsampled_sc5p_v2_hs_PBMC_10k_t_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_feature_ref_csv = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc/sc5p_v2_hs_PBMC_10k_multi_5gex_5fb_b_t_feature_ref.csv" + + test_10x_10k_pbmc_cmo_cmo_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_cmo_cmo_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/cmo/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_multiplexing_capture_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_cmo_gex1_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_cmo_gex1_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_1/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_1_gex_S2_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_cmo_gex2_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_2/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_2_gex_S1_L001_R1_001.fastq.gz" + test_10x_10k_pbmc_cmo_gex2_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/fastqs/gex_2/subsampled_SC3_v3_NextGem_DI_CellPlex_Human_PBMC_10K_2_gex_S1_L001_R2_001.fastq.gz" + test_10x_10k_pbmc_cmo_feature_ref_csv = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/10k_pbmc_cmo/10k_pbmc_cmo_count_feature_reference.csv" + + test_10x_5k_cmvpos_tcells_ab_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R1_001.fastq.gz" + test_10x_5k_cmvpos_tcells_ab_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/ab/subsampled_5k_human_antiCMV_T_TBNK_connect_AB_S2_L004_R2_001.fastq.gz" + test_10x_5k_cmvpos_tcells_gex1_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R1_001.fastq.gz" + test_10x_5k_cmvpos_tcells_gex1_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/gex_1/subsampled_5k_human_antiCMV_T_TBNK_connect_GEX_1_S1_L001_R2_001.fastq.gz" + test_10x_5k_cmvpos_tcells_vdj_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R1_001.fastq.gz" + test_10x_5k_cmvpos_tcells_vdj_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/fastqs/vdj/subsampled_5k_human_antiCMV_T_TBNK_connect_VDJ_S1_L001_R2_001.fastq.gz" + test_10x_5k_cmvpos_tcells_feature_ref_csv = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/5k_cmvpos_tcells/5k_human_antiCMV_T_TBNK_connect_Multiplex_count_feature_reference.csv" + + test_10x_vdj_ref_json = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/references/vdj/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0/reference.json" + test_10x_vdj_ref_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/references/vdj/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0/fasta/regions.fa" + test_10x_vdj_ref_suppfasta = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger/references/vdj/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0/fasta/supp_regions.fa" + + test_scATAC_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger-atac/test_scATAC_S1_L001_R1_001.fastq.gz" + test_scATAC_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger-atac/test_scATAC_S1_L001_R2_001.fastq.gz" + test_scATAC_3_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger-atac/test_scATAC_S1_L001_R3_001.fastq.gz" + test_scATAC_I_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/cellranger-atac/test_scATAC_S1_L001_I1_001.fastq.gz" + } + spaceranger { + test_10x_ffpe_cytassist_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_2_S1_L001_R1_001.fastq.gz" + test_10x_ffpe_cytassist_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_2_S1_L001_R2_001.fastq.gz" + test_10x_ffpe_cytassist_image = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_image.tif" + test_10x_ffpe_cytassist_probeset = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-brain-cancer-11-mm-capture-area-ffpe-2-standard_v2_ffpe_cytassist/CytAssist_11mm_FFPE_Human_Glioblastoma_probe_set.csv" + + test_10x_ffpe_v1_fastq_1_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R1_001.fastq.gz" + test_10x_ffpe_v1_fastq_2_gz = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_S1_L001_R2_001.fastq.gz" + test_10x_ffpe_v1_image = "${params.test_data_base}/data/genomics/homo_sapiens/10xgenomics/spaceranger/human-ovarian-cancer-1-standard_v1_ffpe/Visium_FFPE_Human_Ovarian_Cancer_image.jpg" + } + } + 'genome' { + genome_elfasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.elfasta" + genome_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.fasta" + genome_fasta_fai = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.fasta.fai" + genome_fasta_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.fasta.gz" + genome_fasta_gz_fai = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.fasta.gz.fai" + genome_fasta_gz_gzi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.fasta.gz.gzi" + genome_strtablefile = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome_strtablefile.zip" + genome_dict = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.dict" + genome_gff3 = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.gff3" + genome_gtf = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.gtf" + genome_interval_list = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.interval_list" + genome_multi_interval_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.multi_intervals.bed" + genome_blacklist_interval_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.blacklist_intervals.bed" + genome_sizes = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.sizes" + genome_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.bed" + genome_header = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.header" + genome_bed_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.bed.gz" + genome_bed_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.bed.gz.tbi" + genome_elsites = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.elsites" + transcriptome_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/transcriptome.fasta" + genome2_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome2.fasta" + genome_chain_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.chain.gz" + genome_annotated_interval_tsv = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.annotated_intervals.tsv" + genome_mt_gb = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.NC_012920_1.gb" + genome_preprocessed_count_tsv = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.preprocessed_intervals.counts.tsv" + genome_preprocessed_interval_list = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.preprocessed_intervals.interval_list" + genome_ploidy_model = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.ploidy_model.tar.gz" + genome_ploidy_calls = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.ploidy_calls.tar.gz" + genome_germline_cnv_model = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.germline_cnv_model.tar.gz" + genome_germline_cnv_calls = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome.germline_cnv_calls.tar.gz" + genome_motifs = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome_motifs.txt" + genome_config = "${params.test_data_base}/data/genomics/homo_sapiens/genome/genome_config.json" + + genome_1_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr1/genome.fasta.gz" + genome_1_gtf = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr1/genome.gtf" + + genome_21_sdf = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome_sdf.tar.gz" + genome_21_fasta = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta" + genome_21_fasta_fai = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" + genome_21_gencode_gtf = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/chr21_gencode.gtf" + genome_21_dict = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" + genome_21_sizes = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome.sizes" + genome_21_interval_list = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/genome.interval_list" + genome_21_annotated_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/annotated.bed" + genome_21_multi_interval_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed" + genome_21_multi_interval_antitarget_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.antitarget.bed" + genome_21_multi_interval_bed_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz" + genome_21_multi_interval_bed_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz.tbi" + genome_21_chromosomes_dir = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/chromosomes.tar.gz" + genome_21_reference_cnn = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/reference_chr21.cnn" + genome_21_eigenstrat_snp = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/chr_21.snp" + genome_21_stitch_posfile = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/sequence/dbsnp_138.hg38.first_10_biallelic_sites.tsv" + + dbsnp_146_hg38_elsites = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.elsites" + dbsnp_146_hg38_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz" + dbsnp_146_hg38_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz.tbi" + gnomad_r2_1_1_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1.vcf.gz" + gnomad_r2_1_1_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1.vcf.gz.tbi" + mills_and_1000g_indels_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/mills_and_1000G.indels.vcf.gz" + mills_and_1000g_indels_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/mills_and_1000G.indels.vcf.gz.tbi" + syntheticvcf_short_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.vcf.gz" + syntheticvcf_short_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.vcf.gz.tbi" + syntheticvcf_short_score = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.score" + gnomad_r2_1_1_sv_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1-sv.vcf.gz" + gnomad2_r2_1_1_sv_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/gnomAD2.r2.1.1-sv.vcf.gz" + + hapmap_3_3_hg38_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/hapmap_3.3.hg38.vcf.gz" + hapmap_3_3_hg38_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/hapmap_3.3.hg38.vcf.gz.tbi" + res_1000g_omni2_5_hg38_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/1000G_omni2.5.hg38.vcf.gz" + res_1000g_omni2_5_hg38_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/1000G_omni2.5.hg38.vcf.gz.tbi" + res_1000g_phase1_snps_hg38_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/1000G_phase1.snps.hg38.vcf.gz" + res_1000g_phase1_snps_hg38_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/1000G_phase1.snps.hg38.vcf.gz.tbi" + dbsnp_138_hg38_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/dbsnp_138.hg38.vcf.gz" + dbsnp_138_hg38_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/dbsnp_138.hg38.vcf.gz.tbi" + gnomad_r2_1_1_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/gnomAD.r2.1.1.vcf.gz" + gnomad_r2_1_1_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/gnomAD.r2.1.1.vcf.gz.tbi" + mills_and_1000g_indels_21_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/mills_and_1000G.indels.hg38.vcf.gz" + mills_and_1000g_indels_21_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/mills_and_1000G.indels.hg38.vcf.gz.tbi" + haplotype_map = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/haplotype_map.txt" + dbNSFP_4_1a_21_hg38_txt_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/dbNSFP4.1a.21.txt.gz" + dbNSFP_4_1a_21_hg38_txt_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/dbNSFP4.1a.21.txt.gz.tbi" + ngscheckmate_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/chr21/germlineresources/SNP_GRCh38_hg38_wChr.bed" + + index_salmon = "${params.test_data_base}/data/genomics/homo_sapiens/genome/index/salmon" + repeat_expansions = "${params.test_data_base}/data/genomics/homo_sapiens/genome/loci/repeat_expansions.json" + justhusky_ped = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/ped/justhusky.ped" + justhusky_minimal_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz" + justhusky_minimal_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz.tbi" + + vcfanno_tar_gz = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno_grch38_module_test.tar.gz" + vcfanno_toml = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno.toml" + updsites_bed = "${params.test_data_base}/data/genomics/homo_sapiens/genome/updsites.bed" + + prg_input = "${params.test_data_base}/data/genomics/homo_sapiens/genome/PRG_test.zip" + crispr_functional_counts = "${params.test_data_base}/data/genomics/homo_sapiens/genome/tsv/functional_genomics_counts.tsv" + crispr_functional_library = "${params.test_data_base}/data/genomics/homo_sapiens/genome/tsv/library_functional_genomics.tsv" + + vep_cache = "${params.test_data_base}/data/genomics/homo_sapiens/genome/vep.tar.gz" + affy_array_samplesheet = "${params.test_data_base}/data/genomics/homo_sapiens/array_expression/GSE38751.csv" + affy_array_celfiles_tar = "${params.test_data_base}/data/genomics/homo_sapiens/array_expression/GSE38751_RAW.tar" + + } + 'pangenome' { + pangenome_fa = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.fa" + pangenome_fa_bgzip = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.fa.gz" + pangenome_fa_bgzip_fai = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.fa.gz.fai" + pangenome_fa_bgzip_gzi = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.fa.gz.gzi" + pangenome_paf = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.paf" + pangenome_paf_gz = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.paf.gz" + pangenome_panacus_tsv = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.panacus.tsv" + pangenome_seqwish_gfa = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.seqwish.gfa" + pangenome_smoothxg_gfa = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.smoothxg.gfa" + pangenome_gfaffix_gfa = "${params.test_data_base}/data/pangenomics/homo_sapiens/pangenome.gfaffix.gfa" + 'odgi' { + pangenome_og = "${params.test_data_base}/data/pangenomics/homo_sapiens/odgi/pangenome.og" + pangenome_lay = "${params.test_data_base}/data/pangenomics/homo_sapiens/odgi/pangenome.lay" + } + } + 'illumina' { + test_paired_end_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam" + test_paired_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam.bai" + test_paired_end_name_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.name.sorted.bam" + test_paired_end_markduplicates_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam" + test_paired_end_markduplicates_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.bam.bai" + test_paired_end_markduplicates_sorted_referencesn_txt = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.markduplicates.sorted.referencesn.txt" + test_paired_end_recalibrated_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam" + test_paired_end_recalibrated_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.paired_end.recalibrated.sorted.bam.bai" + test_paired_end_umi_consensus_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_consensus.bam" + test_paired_end_umi_converted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_converted.bam" + test_paired_end_umi_grouped_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_grouped.bam" + test_paired_end_umi_histogram_txt = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_histogram.txt" + test_paired_end_umi_unsorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_unsorted.bam" + test_paired_end_umi_unsorted_tagged_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.unsorted_tagged.bam" + test_paired_end_hla = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/example_hla_pe.bam" + test_paired_end_hla_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam" + test_paired_end_hla_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam.bai" + test_rna_paired_end_sorted_chr6_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.rna.paired_end.sorted.chr6.bam" + test_rna_paired_end_sorted_chr6_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test.rna.paired_end.sorted.chr6.bam.bai" + + test2_paired_end_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam" + test2_paired_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai" + test2_paired_end_name_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam" + test2_paired_end_markduplicates_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam" + test2_paired_end_markduplicates_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam.bai" + test2_paired_end_recalibrated_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam" + test2_paired_end_recalibrated_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai" + test2_paired_end_umi_consensus_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_consensus.bam" + test2_paired_end_umi_converted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_converted.bam" + test2_paired_end_umi_grouped_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_grouped.bam" + test2_paired_end_umi_histogram_txt = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_histogram.txt" + test2_paired_end_umi_unsorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_unsorted.bam" + test2_paired_end_umi_unsorted_tagged_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.unsorted_tagged.bam" + test_paired_end_duplex_umi_unmapped_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.duplex_umi_unmapped.bam" + test_paired_end_duplex_umi_mapped_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.duplex_umi_mapped.bam" + test_paired_end_duplex_umi_mapped_tagged_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.duplex_umi_mapped_tagged.bam" + test_paired_end_duplex_umi_grouped_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.duplex_umi_grouped.bam" + test_paired_end_duplex_umi_duplex_consensus_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.duplex_umi_duplex_consensus.bam" + + mitochon_standin_recalibrated_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam" + mitochon_standin_recalibrated_sorted_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam.bai" + test_illumina_mt_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test_illumina_mt.bam" + test_illumina_mt_bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test_illumina_mt.bam.bai" + + test3_single_end_markduplicates_sorted_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam" + + read_group_settings_txt = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bam/read_group_settings.txt" + + test_paired_end_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram" + test_paired_end_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai" + test_paired_end_markduplicates_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram" + test_paired_end_markduplicates_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram.crai" + test_paired_end_recalibrated_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram" + test_paired_end_recalibrated_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram.crai" + + test2_paired_end_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram" + test2_paired_end_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram.crai" + test2_paired_end_markduplicates_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram" + test2_paired_end_markduplicates_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram.crai" + test2_paired_end_recalibrated_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram" + test2_paired_end_recalibrated_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai" + test3_paired_end_recalibrated_sorted_cram = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test3.paired_end.recalibrated.sorted.cram" + test3_paired_end_recalibrated_sorted_cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/cram/test3.paired_end.recalibrated.sorted.cram.crai" + + test_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz" + test_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + test_umi_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test.umi_1.fastq.gz" + test_umi_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test.umi_2.fastq.gz" + test_airrseq_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_airrseq_umi_R1.fastq.gz" + test_airrseq_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_airrseq_R2.fastq.gz" + test2_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test2_1.fastq.gz" + test2_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test2_2.fastq.gz" + test2_umi_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test2.umi_1.fastq.gz" + test2_umi_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test2.umi_2.fastq.gz" + test_rnaseq_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz" + test_rnaseq_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz" + test_paired_end_duplex_umi_1_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_duplex_umi_1.fastq.gz" + test_paired_end_duplex_umi_2_fastq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/fastq/test_duplex_umi_2.fastq.gz" + + test_baserecalibrator_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test.baserecalibrator.table" + test2_baserecalibrator_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test2.baserecalibrator.table" + test_pileups_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test.pileups.table" + test2_pileups_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test2.pileups.table" + + test_paired_end_sorted_dragstrmodel = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_paired_end_sorted_dragstrmodel.txt" + + test_genomicsdb_tar_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_genomicsdb.tar.gz" + test_pon_genomicsdb_tar_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_pon_genomicsdb.tar.gz" + + test2_haplotc_ann_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz" + test2_haplotc_ann_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi" + test_haplotc_cnn_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz" + test_haplotc_cnn_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz.tbi" + + test2_haplotc_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz" + test2_haplotc_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi" + + test2_recal = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal" + test2_recal_idx = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal.idx" + test2_tranches = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.tranches" + test2_allele_specific_recal = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal" + test2_allele_specific_recal_idx = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal.idx" + test2_allele_specific_tranches = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.tranches" + + test_test2_paired_mutect2_calls_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz" + test_test2_paired_mutect2_calls_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.tbi" + test_test2_paired_mutect2_calls_vcf_gz_stats = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.stats" + test_test2_paired_mutect2_calls_f1r2_tar_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.f1r2.tar.gz" + test_test2_paired_mutect2_calls_artifact_prior_tar_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_test2_paired_mutect2_calls.artifact-prior.tar.gz" + test_test2_paired_segmentation_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_test2_paired.segmentation.table" + test_test2_paired_contamination_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/test_test2_paired.contamination.table" + + test_genome_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf" + test_genome_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz" + test_genome_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi" + test_genome_vcf_idx = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.idx" + + test_genome_vcf_ud = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/svd/test.genome.vcf.UD" + test_genome_vcf_mu = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/svd/test.genome.vcf.mu" + test_genome_vcf_bed = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/svd/test.genome.vcf.bed" + + test2_genome_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf" + test2_genome_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz" + test2_genome_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz.tbi" + test2_genome_vcf_idx = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.idx" + + test_genome21_indels_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz" + test_genome21_indels_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz.tbi" + + test_mpileup = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/mpileup/test.mpileup.gz" + test2_mpileup = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/mpileup/test2.mpileup.gz" + + test_broadpeak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/broadpeak/test.broadPeak" + test2_broadpeak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/broadpeak/test2.broadPeak" + + test_narrowpeak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/narrowpeak/test.narrowPeak" + test2_narrowpeak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/narrowpeak/test2.narrowPeak" + + test_yak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/yak/test.yak" + test2_yak = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/yak/test2.yak" + + cutandrun_bedgraph_test_1 = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bedgraph/cutandtag_h3k27me3_test_1.bedGraph" + cutandrun_bedgraph_test_2 = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bedgraph/cutandtag_igg_test_1.bedGraph" + na24385_chr22_coverage = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bedgraph/NA24385_coverage.bed" + + empty_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/empty.vcf.gz" + empty_vcf_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/empty.vcf.gz.tbi" + + simulated_sv = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/chr21/simulated_sv.vcf.gz" + simulated_sv_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/chr21/simulated_sv.vcf.gz.tbi" + simulated_sv2 = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/chr21/simulated_sv2.vcf.gz" + simulated_sv2_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/chr21/simulated_sv2.vcf.gz.tbi" + + test_rnaseq_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf" + test_sv_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz" + test_sv_vcf_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz.tbi" + na24385_chr22_sv_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/NA24385_sv.vcf.gz" + na24385_chr22_sv_vcf_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/NA24385_sv.vcf.gz.tbi" + genmod_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/genmod.vcf.gz" + genmod_annotate_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test_annotate.vcf.gz" + genmod_models_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test_models.vcf.gz" + genmod_score_vcf_gz = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/test_score.vcf.gz" + + test_mito_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/vcf/NA12878_chrM.vcf.gz" + + test_pytor = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/pytor/test.pytor" + rank_model = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/genmod/svrank_model_-v1.8-.ini" + + test_flowcell = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bcl/flowcell.tar.gz" + test_flowcell_samplesheet = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/bcl/flowcell_samplesheet.csv" + + varlociraptor_scenario = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/varlociraptor/scenario.yml" + + contig_ploidy_priors_table = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/gatk/contig_ploidy_priors_table.tsv" + + purecn_ex1_bam = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex1.bam" + purecn_ex1_bai = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex1.bam.bai" + purecn_ex1_interval = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex1_intervals.txt" + purecn_ex1_normal = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex1_normal.txt.gz" + purecn_ex2_normal = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_ex2_normal.txt.gz" + purecn_normalpanel_vcf = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_normalpanel.vcf.gz" + purecn_normalpanel_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/illumina/purecn/purecn_normalpanel.vcf.gz.tbi" + } + 'pacbio' { + primers = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fasta/primers.fasta" + alz = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.bam" + alzpbi = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.bam.pbi" + ccs = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.bam" + ccs_fa = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta" + ccs_fa_gz = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta.gz" + ccs_fq = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq" + ccs_fq_gz = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq.gz" + ccs_xml = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/xml/alz.ccs.consensusreadset.xml" + hifi = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/fastq/test_hifi.fastq.gz" + lima = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.bam" + refine = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.bam" + cluster = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.bam" + singletons = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.bam" + aligned = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam" + alignedbai = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam.bai" + genemodel1 = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.bed" + genemodel2 = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.2.bed" + filelist = "${params.test_data_base}/data/genomics/homo_sapiens/pacbio/txt/filelist.txt" + } + 'scramble' { + fasta = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.fa" + fasta_fai = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.fa.fai" + bam = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.bam" + bam_bai = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.bam.bai" + cram = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.cram" + cram_crai = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.cram.crai" + bed = "${params.test_data_base}/data/genomics/homo_sapiens/scramble/test.bed" + } + 'gene_set_analysis' { + gct = "${params.test_data_base}/data/genomics/homo_sapiens/gene_set_analysis/P53_6samples_collapsed_symbols.gct" + cls = "${params.test_data_base}/data/genomics/homo_sapiens/gene_set_analysis/P53_6samples.cls" + gmx = "${params.test_data_base}/data/genomics/homo_sapiens/gene_set_analysis/c1.symbols.reduced.gmx" + } + 'cnvkit' { + amplicon_cnr = "https://raw.githubusercontent.com/etal/cnvkit/v0.9.9/test/formats/amplicon.cnr" + amplicon_cns = "https://raw.githubusercontent.com/etal/cnvkit/v0.9.9/test/formats/amplicon.cns" + } + } + 'bacteroides_fragilis' { + 'genome' { + genome_fna_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz" + genome_gbff_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.gbff.gz" + genome_paf = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.paf" + genome_gff_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/genome/genome.gff.gz" + + } + 'hamronization' { + genome_abricate_tsv = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/hamronization/genome.abricate.tsv" + genome_mapping_potential_arg = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/hamronization/genome.mapping.potential.ARG" + } + 'illumina' { + test1_contigs_fa_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz" + test1_1_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test1_1.fastq.gz" + test1_2_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test1_2.fastq.gz" + test2_1_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test2_1.fastq.gz" + test2_2_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/fastq/test2_2.fastq.gz" + test1_paired_end_bam = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test1.bam" + test1_paired_end_sorted_bam = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test1.sorted.bam" + test1_paired_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test1.sorted.bam.bai" + test2_paired_end_bam = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test2.bam" + test2_paired_end_sorted_bam = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test2.sorted.bam" + test2_paired_end_sorted_bam_bai = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/illumina/bam/test2.sorted.bam.bai" + } + 'nanopore' { + test_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/nanopore/fastq/test.fastq.gz" + overlap_paf = "${params.test_data_base}/data/genomics/prokaryotes/bacteroides_fragilis/nanopore/overlap.paf" + } + } + 'candidatus_portiera_aleyrodidarum' { + 'genome' { + genome_fasta = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/genome.fasta" + genome_sizes = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/genome.sizes" + genome_aln_gz = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/genome.aln.gz" + genome_aln_nwk = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/genome.aln.nwk" + proteome_fasta = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/proteome.fasta" + test1_gff = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test1.gff" + test2_gff = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test2.gff" + test3_gff = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test3.gff" + } + 'illumina' { + test_1_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_1.fastq.gz" + test_2_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_2.fastq.gz" + test_se_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_se.fastq.gz" + } + 'nanopore' { + test_fastq_gz = "${params.test_data_base}/data/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/nanopore/fastq/test.fastq.gz" + } + } + 'haemophilus_influenzae' { + 'genome' { + genome_fna_gz = "${params.test_data_base}/data/genomics/prokaryotes/haemophilus_influenzae/genome/genome.fna.gz" + genome_aln_gz = "${params.test_data_base}/data/genomics/prokaryotes/haemophilus_influenzae/genome/genome.aln.gz" + genome_aln_nwk = "${params.test_data_base}/data/genomics/prokaryotes/haemophilus_influenzae/genome/genome.aln.nwk" + } + } + 'generic' { + 'csv' { + test_csv = "${params.test_data_base}/data/generic/csv/test.csv" + } + 'notebooks' { + rmarkdown = "${params.test_data_base}/data/generic/notebooks/rmarkdown/rmarkdown_notebook.Rmd" + ipython_md = "${params.test_data_base}/data/generic/notebooks/jupyter/ipython_notebook.md" + ipython_ipynb = "${params.test_data_base}/data/generic/notebooks/jupyter/ipython_notebook.ipynb" + } + 'tar' { + tar_gz = "${params.test_data_base}/data/generic/tar/hello.tar.gz" + } + 'tsv' { + test_tsv = "${params.test_data_base}/data/generic/tsv/test.tsv" + } + 'txt' { + hello = "${params.test_data_base}/data/generic/txt/hello.txt" + } + 'cooler'{ + test_pairix_pair_gz = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz" + test_pairix_pair_gz_px2 = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz.px2" + test_pairs_pair = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.sample1.pairs" + test_tabix_pair_gz = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz" + test_tabix_pair_gz_tbi = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz.tbi" + hg19_chrom_sizes = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/cload/hg19/hg19.chrom.sizes" + test_merge_cool = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cool" + test_merge_cool_cp2 = "${params.test_data_base}/data/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cp2.cool" + + } + 'pairtools' { + mock_4dedup_pairsam = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/mock.4dedup.pairsam" + mock_4flip_pairs = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/mock.4flip.pairs" + mock_chrom_sizes = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/mock.chrom.sizes" + mock_pairsam = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/mock.pairsam" + mock_sam = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/mock.sam" + frag_bed = "${params.test_data_base}/data/genomics/homo_sapiens/pairtools/frag.bed" + } + 'estsfs'{ + config_file = "${params.test_data_base}/data/delete_me/estsfs/config-JC.txt" + data_file = "${params.test_data_base}/data/delete_me/estsfs/TEST-DATA.TXT" + seed_file = "${params.test_data_base}/data/delete_me/estsfs/seedfile.txt" + } + 'config' { + ncbi_user_settings = "${params.test_data_base}/data/generic/config/ncbi_user_settings.mkfg" + } + 'unsorted_data' { + 'unsorted_text' { + genome_file = "${params.test_data_base}/data/generic/unsorted_data/unsorted_text/test.genome" + intervals = "${params.test_data_base}/data/generic/unsorted_data/unsorted_text/test.bed" + numbers_csv = "${params.test_data_base}/data/generic/unsorted_data/unsorted_text/test.csv" + } + } + } + 'proteomics' { + 'msspectra' { + ups_file1 = "${params.test_data_base}/data/proteomics/msspectra/OVEMB150205_12.raw" + ups_file2 = "${params.test_data_base}/data/proteomics/msspectra/OVEMB150205_14.raw" + profile_spectra = "${params.test_data_base}/data/proteomics/msspectra/peakpicker_tutorial_1.mzML" + } + 'database' { + yeast_ups = "${params.test_data_base}/data/proteomics/database/yeast_UPS.fasta" + } + 'maxquant' { + mq_contrasts = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_contrasts.csv" + mq_proteingroups = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_proteinGroups.txt" + mq_samplesheet = "${params.test_data_base}/data/proteomics/maxquant/MaxQuant_samplesheet.tsv" + mq_proteus_mat = "${params.test_data_base}/data/proteomics/maxquant/proteus.raw_MaxQuant_proteingroups_tab.tsv" + } + 'parameter' { + maxquant = "${params.test_data_base}/data/proteomics/parameter/mqpar.xml" + } + 'openms' { + idxml1 = "${params.test_data_base}/data/proteomics/openms/HepG2_rep1_small.idXML" + idxml2 = "${params.test_data_base}/data/proteomics/openms/HepG2_rep2_small.idXML" + } + 'pdb' { + tim1_pdb = "${params.test_data_base}/data/proteomics/pdb/1tim.pdb" + tim8_pdb = "${params.test_data_base}/data/proteomics/pdb/8tim.pdb" + } + } + 'galaxea_fascicularis' { + hic { + pretext = "${params.test_data_base}/data/genomics/eukaryotes/galaxea_fascicularis/hic/jaGalFasc40_2.pretext" + } + } + 'deilephila_porcellus' { + 'mito' { + ref_fa = "${params.test_data_base}/data/genomics/eukaryotes/deilephila_porcellus/mito/MW539688.1.fasta" + ref_gb = "${params.test_data_base}/data/genomics/eukaryotes/deilephila_porcellus/mito/MW539688.1.gb" + hifi_reads = "${params.test_data_base}/data/genomics/eukaryotes/deilephila_porcellus/mito/ilDeiPorc1.HiFi.reads.fa" + contigs = "${params.test_data_base}/data/genomics/eukaryotes/deilephila_porcellus/mito/ilDeiPorc1.contigs.fa" + } + } + 'imaging' { + 'h5' { + plant_wga = "${params.test_data_base}/data/imaging/h5/plant_wga.h5" + plant_wga_prob = "${params.test_data_base}/data/imaging/h5/plant_wga_probabilities.h5" + } + 'ilp' { + plant_wga_multicut = "${params.test_data_base}/data/imaging/ilp/plant_wga.multicut.ilp" + plant_wga_pixel_class = "${params.test_data_base}/data/imaging/ilp/plant_wga.pixel_prob.ilp" + } + 'tiff' { + mouse_heart_wga = "${params.test_data_base}/data/imaging/tiff/mindagap.mouse_heart.wga.tiff" + } + 'ome-tiff' { + cycif_tonsil_channels = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-channels.csv" + cycif_tonsil_cycle1 = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-cycle1.ome.tif" + cycif_tonsil_cycle2 = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-cycle2.ome.tif" + cycif_tonsil_cycle3 = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-cycle3.ome.tif" + cycif_tonsil_dfp = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-dfp.ome.tif" + cycif_tonsil_ffp = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-ffp.ome.tif" + } + 'registration' { + markers = "${params.test_data_base}/data/imaging/registration/markers.csv" + cycle1 = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-cycle1.ome.tif" + cycle2 = "${params.test_data_base}/data/imaging/ome-tiff/cycif-tonsil-cycle2.ome.tif" + } + 'segmentation' { + markers = "${params.test_data_base}/data/imaging/segmentation/markers.csv" + image = "${params.test_data_base}/data/imaging/segmentation/cycif_tonsil_registered.ome.tif" + } + 'quantification' { + markers = "${params.test_data_base}/data/imaging/quantification/markers.csv" + image = "${params.test_data_base}/data/imaging/quantification/cycif_tonsil_registered.ome.tif" + mask = "${params.test_data_base}/data/imaging/quantification/cell.ome.tif" + } + 'downstream' { + markers = "${params.test_data_base}/data/imaging/downstream/markers.csv" + cell_feature_array = "${params.test_data_base}/data/imaging/downstream/cycif_tonsil_cell.csv" + } + 'background_subtraction' { + markers = "${params.test_data_base}/data/imaging/background_subtraction/markers.csv" + image = "${params.test_data_base}/data/imaging/background_subtraction/cycif_tonsil_registered.ome.tif" + } + 'core_detection' { + image = "${params.test_data_base}/data/imaging/core_detection/single_core_dapi.tif" + } + } + } +} diff --git a/conf/test_host_rm.config b/conf/test_host_rm.config index afd4e687..906c68a7 100644 --- a/conf/test_host_rm.config +++ b/conf/test_host_rm.config @@ -20,12 +20,23 @@ params { max_time = '6.h' // Input data - host_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/host_reference/genome.hg38.chr21_10000bp_region.fa" input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.host_rm.csv' - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" + keep_phix = true + host_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/host_reference/genome.hg38.chr21_10000bp_region.fa" + bowtie2_fix_cpu_1 = true + skip_clipping = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + skip_megahit = true + skip_spades = true + skip_spadeshybrid = true + skip_quast = true + skip_prodigal = true + skip_binning = true + skip_binqc = true skip_gtdbtk = true - gtdbtk_min_completeness = 0 - skip_concoct = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_hybrid.config b/conf/test_hybrid.config index a9f7ee07..d0fb0bcc 100644 --- a/conf/test_hybrid.config +++ b/conf/test_hybrid.config @@ -21,10 +21,22 @@ params { // Input data input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.hybrid.csv' - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 - busco_db = "https://busco-data.ezlab.org/v5/data/lineages/bacteria_odb10.2024-01-08.tar.gz" + keep_phix = true + skip_clipping = false + skip_adapter_trimming = false + centrifuge_db = null + kraken2_db = null + skip_krona = true + coassemble_group = true + megahit_fix_cpu_1 = true + skip_spades = true + skip_spadeshybrid = false + spadeshybrid_fix_cpus = 2 + skip_quast = true + skip_prodigal = true + skip_binning = true + skip_binqc = true skip_gtdbtk = true - gtdbtk_min_completeness = 0 - skip_concoct = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_hybrid_host_rm.config b/conf/test_hybrid_host_rm.config index 531a89d3..05b2f8b4 100644 --- a/conf/test_hybrid_host_rm.config +++ b/conf/test_hybrid_host_rm.config @@ -20,12 +20,23 @@ params { max_time = '6.h' // Input data - host_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/host_reference/genome.hg38.chr21_10000bp_region.fa" input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.hybrid_host_rm.csv' - min_length_unbinned_contigs = 1 - max_unbinned_contigs = 2 + host_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/mag/host_reference/genome.hg38.chr21_10000bp_region.fa" + bowtie2_fix_cpu_1 = true + keep_phix = true + skip_clipping = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + skip_megahit = true + skip_spades = true + skip_spadeshybrid = false + spadeshybrid_fix_cpus = 2 + skip_quast = true + skip_prodigal = true + skip_binning = true skip_binqc = true - skip_concoct = true skip_gtdbtk = true - gtdbtk_min_completeness = 0 + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_nothing.config b/conf/test_nothing.config index cd3f6311..8904d2f6 100644 --- a/conf/test_nothing.config +++ b/conf/test_nothing.config @@ -21,24 +21,21 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - centrifuge_db = null - kraken2_db = null - skip_krona = true - skip_clipping = true - skip_adapter_trimming = true - skip_spades = true - skip_spadeshybrid = true - skip_megahit = true - skip_quast = true - skip_prodigal = true - skip_binning = true - skip_metabat2 = true - skip_maxbin2 = true - skip_concoct = true - skip_prokka = true - skip_binqc = true - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - skip_concoct = true + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.multirun.csv' + keep_phix = true + skip_clipping = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true + skip_megahit = true + skip_spades = true + skip_spadeshybrid = true + skip_quast = true + skip_prodigal = true + skip_binning = true + skip_binqc = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/conf/test_virus_identification.config b/conf/test_virus_identification.config index dba55db9..176549a3 100644 --- a/conf/test_virus_identification.config +++ b/conf/test_virus_identification.config @@ -19,25 +19,24 @@ params { max_memory = '6.GB' max_time = '6.h' - // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.csv' - run_virus_identification = true - genomad_splits = 7 - - // For computational efficiency - reads_minlength = 150 + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mag/samplesheets/samplesheet.multirun.csv' + keep_phix = true + skip_clipping = true + skip_adapter_trimming = true + centrifuge_db = null + kraken2_db = null + skip_krona = true coassemble_group = true - skip_gtdbtk = true - gtdbtk_min_completeness = 0 - skip_binning = true - skip_prokka = true + megahit_fix_cpu_1 = true skip_spades = true skip_spadeshybrid = true skip_quast = true + run_virus_identification = true + genomad_splits = 7 skip_prodigal = true - skip_krona = true - skip_adapter_trimming = true - skip_metabat2 = true - skip_maxbin2 = true - skip_busco = true + skip_binning = true + skip_binqc = true + skip_gtdbtk = true + skip_prokka = true + skip_metaeuk = true } diff --git a/docs/output.md b/docs/output.md index 88aba227..a4141232 100644 --- a/docs/output.md +++ b/docs/output.md @@ -21,6 +21,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Genome annotation of binned genomes](#genome-annotation-of-binned-genomes) - [Additional summary for binned genomes](#additional-summary-for-binned-genomes) - [Ancient DNA](#ancient-dna) +- [Samplesheet generation](#sampleseet-generation) - [MultiQC](#multiqc) - aggregate report, describing results of the whole pipeline - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution @@ -706,6 +707,20 @@ Because of aDNA damage, _de novo_ assemblers sometimes struggle to call a correc +### Samplesheet generation + +
+Output files + +- `samplesheet/` + - `[generate_downstream_samplesheet].csv`: a samplesheet in CSV format that can be directly used as input for the specified nf-core pipeline + +
+ +Currently, samplesheets for the following nf-core pipelines can be automatically generated: + +- [phageannotator](https://github.com/nf-core/phageannotator): a pipeline for identifying, annotation, and quantifying phage sequences in (meta)-genomic sequences. + ### MultiQC
diff --git a/lib/NftestUtils.groovy b/lib/NftestUtils.groovy new file mode 100644 index 00000000..ce6fc8b4 --- /dev/null +++ b/lib/NftestUtils.groovy @@ -0,0 +1,38 @@ +// Helper functions for pipeline tests + +class NftestUtils { + + // Function to remove Nextflow version from software_versions.yml + public static String removeNextflowVersion(outputDir) { + def softwareVersions = path("$outputDir/pipeline_info/software_versions.yml").yaml + if (softwareVersions.containsKey("Workflow")) { + softwareVersions.Workflow.remove("Nextflow") + } + return softwareVersions + } + + // Function to filter lines from a file and return a new file + public static File filterLines(String inFilePath, int linesToSkip) { + if (linesToSkip >= 0) { + File inputFile = new File(inFilePath) + File outputFile = new File(inFilePath + ".filtered") + def lineCount = 0 + inputFile.eachLine { line -> + lineCount++ + if (lineCount > linesToSkip) { + outputFile.append(line + '\n') + } + } + return outputFile + } else { + File inputFile = new File(inFilePath) + File outputFile = new File(inFilePath + ".filtered") + def lines = inputFile.readLines() + def totalLines = lines.size() + lines.take(totalLines + linesToSkip).each { line -> + outputFile.append(line + '\n') + } + return outputFile + } + } +} diff --git a/main.nf b/main.nf index 2bad9dd6..fbbb262b 100644 --- a/main.nf +++ b/main.nf @@ -52,7 +52,7 @@ WorkflowMain.initialise(workflow, params, log, args) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { MAG } from './workflows/mag' +include { MAG } from './workflows/mag/main' // // WORKFLOW: Run main nf-core/mag analysis pipeline diff --git a/modules.json b/modules.json index c8023704..00ff9e0d 100644 --- a/modules.json +++ b/modules.json @@ -36,6 +36,11 @@ "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", "installed_by": ["modules"] }, + "cat/cat": { + "branch": "master", + "git_sha": "81f27e75847087865299cc46605deb3b09b4e0a2", + "installed_by": ["modules"] + }, "cat/fastq": { "branch": "master", "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e", diff --git a/modules/nf-core/cat/cat/environment.yml b/modules/nf-core/cat/cat/environment.yml new file mode 100644 index 00000000..17a04ef2 --- /dev/null +++ b/modules/nf-core/cat/cat/environment.yml @@ -0,0 +1,7 @@ +name: cat_cat +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 new file mode 100644 index 00000000..adbdbd7b --- /dev/null +++ b/modules/nf-core/cat/cat/main.nf @@ -0,0 +1,79 @@ +process CAT_CAT { + tag "$meta.id" + label 'process_low' + + 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' }" + + input: + tuple val(meta), path(files_in) + + output: + tuple val(meta), path("${prefix}"), emit: file_out + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def file_list = files_in.collect { it.toString() } + + // choose appropriate concatenation tool depending on input and output format + + // | input | output | command1 | command2 | + // |-----------|------------|----------|----------| + // | gzipped | gzipped | cat | | + // | ungzipped | ungzipped | cat | | + // | gzipped | ungzipped | zcat | | + // | ungzipped | gzipped | cat | pigz | + + // Use input file ending as default + prefix = task.ext.prefix ?: "${meta.id}${getFileSuffix(file_list[0])}" + out_zip = prefix.endsWith('.gz') + in_zip = file_list[0].endsWith('.gz') + command1 = (in_zip && !out_zip) ? 'zcat' : 'cat' + command2 = (!in_zip && out_zip) ? "| pigz -c -p $task.cpus $args2" : '' + if(file_list.contains(prefix.trim())) { + error "The name of the input file can't be the same as for the output prefix in the " + + "module CAT_CAT (currently `$prefix`). Please choose a different one." + } + """ + $command1 \\ + $args \\ + ${file_list.join(' ')} \\ + $command2 \\ + > ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ + + stub: + def file_list = files_in.collect { it.toString() } + prefix = task.ext.prefix ?: "${meta.id}${file_list[0].substring(file_list[0].lastIndexOf('.'))}" + if(file_list.contains(prefix.trim())) { + error "The name of the input file can't be the same as for the output prefix in the " + + "module CAT_CAT (currently `$prefix`). Please choose a different one." + } + """ + touch $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ +} + +// for .gz files also include the second to last extension if it is present. E.g., .fasta.gz +def getFileSuffix(filename) { + def match = filename =~ /^.*?((\.\w{1,5})?(\.\w{1,5}\.gz$))/ + return match ? match[0][1] : filename.substring(filename.lastIndexOf('.')) +} + diff --git a/modules/nf-core/cat/cat/meta.yml b/modules/nf-core/cat/cat/meta.yml new file mode 100644 index 00000000..00a8db0b --- /dev/null +++ b/modules/nf-core/cat/cat/meta.yml @@ -0,0 +1,36 @@ +name: cat_cat +description: A module for concatenation of gzipped or uncompressed files +keywords: + - concatenate + - gzip + - cat +tools: + - cat: + description: Just concatenation + documentation: https://man7.org/linux/man-pages/man1/cat.1.html + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - files_in: + type: file + description: List of compressed / uncompressed files + pattern: "*" +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - file_out: + 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 00000000..aaae04f9 --- /dev/null +++ b/modules/nf-core/cat/cat/tests/main.nf.test @@ -0,0 +1,177 @@ +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_name_conflict") { + when { + params { + outdir = "${outputDir}" + } + process { + """ + input[0] = + [ + [ id:'genome', 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 process.stdout.toString().contains("The name of the input file can't be the same as for the output prefix") } + ) + } + } + + 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(process.out).match() } + ) + } + } + + 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(process.out).match() } + ) + } + } + + 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 00000000..0c9bfe8d --- /dev/null +++ b/modules/nf-core/cat/cat/tests/main.nf.test.snap @@ -0,0 +1,145 @@ +{ + "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": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.gff3.gz:md5,c439d3b60e7bc03e8802a451a0d9a5d9" + ] + ], + "1": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ], + "file_out": [ + [ + { + "id": "test", + "single_end": true + }, + "test.gff3.gz:md5,c439d3b60e7bc03e8802a451a0d9a5d9" + ] + ], + "versions": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ] + } + ], + "timestamp": "2024-01-12T14:02:02.999254641" + }, + "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_unzipped_zipped": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "cat.txt.gz:md5,f44b33a0e441ad58b2d3700270e2dbe2" + ] + ], + "1": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ], + "file_out": [ + [ + { + "id": "test", + "single_end": true + }, + "cat.txt.gz:md5,f44b33a0e441ad58b2d3700270e2dbe2" + ] + ], + "versions": [ + "versions.yml:md5,115ed6177ebcff24eb99d503fa5ef894" + ] + } + ], + "timestamp": "2024-01-12T14:08:26.948048418" + }, + "test_cat_one_file_unzipped_zipped_size": { + "content": [ + 374 + ], + "timestamp": "2024-01-12T14:10:22.445700266" + } +} 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 00000000..ec26b0fd --- /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 00000000..fbc79783 --- /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 00000000..37b578f5 --- /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/nextflow.config b/nextflow.config index ed9d4e27..6941d2ef 100644 --- a/nextflow.config +++ b/nextflow.config @@ -13,6 +13,7 @@ params { input = null single_end = false assembly_input = null + generate_downstream_samplesheet = null // short read preprocessing options skip_clipping = false @@ -139,6 +140,8 @@ params { spades_fix_cpus = -1 spadeshybrid_fix_cpus = -1 metabat_rng_seed = 1 + bowtie2_fix_cpu_1 = false + maxbin2_fix_cpu_1 = false // Annotation options skip_metaeuk = false @@ -302,20 +305,20 @@ profiles { executor.cpus = 4 executor.memory = 8.GB } - test { includeConfig 'conf/test.config' } - test_full { includeConfig 'conf/test_full.config' } - test_host_rm { includeConfig 'conf/test_host_rm.config' } - test_hybrid { includeConfig 'conf/test_hybrid.config' } - test_hybrid_host_rm { includeConfig 'conf/test_hybrid_host_rm.config' } - test_busco_auto { includeConfig 'conf/test_busco_auto.config' } - test_ancient_dna { includeConfig 'conf/test_ancient_dna.config' } - test_adapterremoval { includeConfig 'conf/test_adapterremoval.config' } - test_binning_entry { includeConfig 'conf/test_binning_entry.config' } - test_binrefinement { includeConfig 'conf/test_binrefinement.config' } - test_no_clipping { includeConfig 'conf/test_no_clipping.config' } - test_bbnorm { includeConfig 'conf/test_bbnorm.config' } - test_nothing { includeConfig 'conf/test_nothing.config' } - test_virus_identification { includeConfig 'conf/test_virus_identification.config' } + test { includeConfig 'conf/test.config' } + test_full { includeConfig 'conf/test_full.config' } + test_host_rm { includeConfig 'conf/test_host_rm.config' } + test_hybrid { includeConfig 'conf/test_hybrid.config' } + test_hybrid_host_rm { includeConfig 'conf/test_hybrid_host_rm.config' } + test_busco_auto { includeConfig 'conf/test_busco_auto.config' } + test_ancient_dna { includeConfig 'conf/test_ancient_dna.config' } + test_adapterremoval { includeConfig 'conf/test_adapterremoval.config' } + test_binning_entry { includeConfig 'conf/test_binning_entry.config' } + test_binrefinement { includeConfig 'conf/test_binrefinement.config' } + test_no_clipping { includeConfig 'conf/test_no_clipping.config' } + test_bbnorm { includeConfig 'conf/test_bbnorm.config' } + test_nothing { includeConfig 'conf/test_nothing.config' } + test_virus_identification { includeConfig 'conf/test_virus_identification.config' } } // Set default registry for Apptainer, Docker, Podman and Singularity independent of -profile @@ -421,6 +424,10 @@ def check_max(obj, type) { // Functions to fix number of cpus to allow reproducibility for MEGAHIT and SPAdes // if corresponding parameters are specified, number of cpus is not increased with retries +def check_bowtie2_cpus (x, attempt ) { + if (params.bowtie2_fix_cpu_1) return 1 + else return check_max (x * attempt, 'cpus' ) +} def check_megahit_cpus (x, attempt ) { if (params.megahit_fix_cpu_1) return 1 else return check_max (x * attempt, 'cpus' ) @@ -433,3 +440,7 @@ def check_spadeshybrid_cpus (x, attempt ) { if (params.spadeshybrid_fix_cpus != -1) return check_max (params.spadeshybrid_fix_cpus, 'cpus' ) else return check_max (x * attempt, 'cpus' ) } +def check_maxbin2_cpus (x, attempt ) { + if (params.maxbin2_fix_cpu_1) return 1 + else return check_max (x * attempt, 'cpus' ) +} diff --git a/nextflow_schema.json b/nextflow_schema.json index 33f16acd..c8fe08dc 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -52,6 +52,12 @@ "type": "string", "description": "MultiQC report title. Printed as page header, used for filename if not otherwise specified.", "fa_icon": "fas fa-file-signature" + }, + "generate_downstream_samplesheet": { + "type": "string", + "description": "Create a samplesheet for the specified nf-core pipeline", + "help_text": "Automatically generate a samplesheet in CSV format that can be directly used as input for the specified nf-core pipeline.", + "enum": ["phageannotator"] } } }, @@ -278,6 +284,10 @@ "description": "Use these parameters to also enable reproducible results from the individual assembly and binning tools .", "default": "", "properties": { + "bowtie2_fix_cpu_1": { + "type": "boolean", + "description": "Fix number of CPUS used by MaxBin2. Not increased with retries" + }, "megahit_fix_cpu_1": { "type": "boolean", "description": "Fix number of CPUs for MEGAHIT to 1. Not increased with retries.", @@ -295,6 +305,10 @@ "description": "Fix number of CPUs used by SPAdes hybrid. Not increased with retries.", "help_text": "SPAdes is designed to be deterministic for a given number of threads. To generate reproducible results fix the number of CPUs using this parameter.\n\nWhen using this parameter do not change the number of CPUs for the `spadeshybrid` process with a custom config file. This would result in an error.\n\nDefault: -1 (the number of CPUs is specified in the `base.config` or in a custom config file, and increased with each retry)." }, + "maxbin2_fix_cpu_1": { + "type": "boolean", + "description": "Fix number of CPUS used by MaxBin2. Not increased with retries" + }, "metabat_rng_seed": { "type": "integer", "default": 1, @@ -530,7 +544,7 @@ }, "gtdbtk_min_completeness": { "type": "number", - "default": 50.0, + "default": 50, "description": "Min. bin completeness (in %) required to apply GTDB-tk classification.", "help_text": "Completeness assessed with BUSCO analysis (100% - %Missing). Must be greater than 0 (min. 0.01) to avoid GTDB-tk errors. If too low, GTDB-tk classification results can be impaired due to not enough marker genes!", "minimum": 0.01, @@ -538,7 +552,7 @@ }, "gtdbtk_max_contamination": { "type": "number", - "default": 10.0, + "default": 10, "description": "Max. bin contamination (in %) allowed to apply GTDB-tk classification.", "help_text": "Contamination approximated based on BUSCO analysis (%Complete and duplicated). If too high, GTDB-tk classification results can be impaired due to contamination!", "minimum": 0, @@ -546,7 +560,7 @@ }, "gtdbtk_min_perc_aa": { "type": "number", - "default": 10.0, + "default": 10, "description": "Min. fraction of AA (in %) in the MSA for bins to be kept.", "minimum": 0, "maximum": 100 @@ -560,7 +574,7 @@ }, "gtdbtk_pplacer_cpus": { "type": "number", - "default": 1.0, + "default": 1, "description": "Number of CPUs used for the by GTDB-Tk run tool pplacer.", "help_text": "A low number of CPUs helps to reduce the memory required/reported by GTDB-Tk. See also the [GTDB-Tk documentation](https://ecogenomics.github.io/GTDBTk/faq.html#gtdb-tk-reaches-the-memory-limit-pplacer-crashes)." }, diff --git a/nf-test.config b/nf-test.config new file mode 100644 index 00000000..1848e921 --- /dev/null +++ b/nf-test.config @@ -0,0 +1,10 @@ +config { + // Location of nf-tests + testsDir "." + + // nf-test directory used to create temporary files for each test + workDir System.getenv("NFT_WORKDIR") ?: ".nf-test" + + // location of an optional nextflow.config file specific for executing tests + configFile "tests/nextflow.config" +} diff --git a/subworkflows/local/busco_qc.nf b/subworkflows/local/busco_qc.nf index a5c3be8d..f2686f62 100644 --- a/subworkflows/local/busco_qc.nf +++ b/subworkflows/local/busco_qc.nf @@ -76,8 +76,8 @@ workflow BUSCO_QC { ) emit: - summary = BUSCO_SUMMARY.out.summary - failed_bin = BUSCO.out.failed_bin.map{it[1]} - multiqc = BUSCO.out.summary_domain.mix(BUSCO.out.summary_specific).map{it[1]} - versions = BUSCO.out.versions + summary = BUSCO_SUMMARY.out.summary + failed_bin = BUSCO.out.failed_bin.map{it[1]} + multiqc = BUSCO.out.summary_domain.mix(BUSCO.out.summary_specific).map{it[1]} + versions = BUSCO.out.versions } diff --git a/subworkflows/local/create_phageannotator_samplesheet.nf b/subworkflows/local/create_phageannotator_samplesheet.nf new file mode 100644 index 00000000..1299febb --- /dev/null +++ b/subworkflows/local/create_phageannotator_samplesheet.nf @@ -0,0 +1,104 @@ +include { CAT_CAT } from '../../modules/nf-core/cat/cat/main' + +workflow CREATE_PHAGEANNOTATOR_SAMPLESHEET { + take: + short_reads //channel: [val(meta), path(fastq_1), path(fastq_2)] + assemblies //channel: [val(meta), path(fasta)] + main: + ch_versions = Channel.empty() + + // combine assemblies by sample/group if multiple assembly methods were used + ch_assemblies = assemblies + .map { + meta, fasta -> + def meta_new = meta.subMap('id') + [ meta_new, fasta ] + } + .groupTuple() + + // + // MODULE: Combine all assemblies from a sample into one FastA file + // + ch_combined_assemblies = CAT_CAT ( ch_assemblies ).file_out + ch_versions = ch_versions.mix( CAT_CAT.out.versions ) + + // if no coassembly, join FastQ and FastA by ID + if ( !params.coassemble_group ){ + ch_combined_assemblies_remap = ch_combined_assemblies + .map { + meta, fasta -> + def id = meta.id + + return [ id, fasta ] + } + short_reads + .map { + meta, fastq -> + def id = meta.id + def group = meta.group + def single_end = meta.single_end + + return [ id, group, single_end, fastq ] + }.join ( ch_combined_assemblies_remap ) + .map { + id, group, single_end, fastq, fasta -> + def reads = fastq instanceof List ? fastq.flatten() : [ fastq ] + def meta = [:] + + meta.id = id + meta.group = group + meta.single_end = single_end + meta.fastq_1 = reads[0] + meta.fastq_2 = !meta.single_end ? reads[1] : '' + meta.fasta = fasta ? fasta : '' + + return meta + } + .set { ch_mag_metadata } + } else { + // if coassembly was used, join FastQ and FastA by group + ch_combined_assemblies_remap = ch_combined_assemblies + .map { + meta, fasta -> + def group = meta.id.split('group-') + + return [ group[1], fasta ] + } + short_reads + .map { + meta, fastq -> + def id = meta.id + def group = meta.group + def single_end = meta.single_end + + return [ group, id, single_end, fastq ] + } + .combine ( ch_combined_assemblies_remap, by:0 ) + .map { + group, id, single_end, fastq, fasta -> + def reads = fastq instanceof List ? fastq.flatten() : [ fastq ] + def meta = [:] + + meta.id = id + meta.group = group + meta.single_end = single_end + meta.fastq_1 = reads[0] + meta.fastq_2 = !meta.single_end ? reads[1] : '' + meta.fasta = fasta ? fasta : '' + + return meta + } + .set { ch_mag_metadata } + } + + // Create samplesheet for each sample using meta information + ch_mag_id_samplesheets = ch_mag_metadata.collectFile() { meta -> + [ "${meta.id}_phageannotator_samplesheet.csv", "sample,group,fastq_1,fastq_2,fasta" + '\n' + "${meta.id},${meta.group},${meta.fastq_1},${meta.fastq_2},${meta.fasta}" + '\n' ] + } + + // Merge samplesheet across all samples for the pipeline + ch_mag_id_samplesheets.collectFile(name: "phageannotator_samplesheet.csv", keepHeader:true, skip:1, storeDir:"${params.outdir}/downstream_samplesheets/") + + emit: + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/local/gtdbtk.nf b/subworkflows/local/gtdbtk.nf index 95e343c8..ef344a32 100644 --- a/subworkflows/local/gtdbtk.nf +++ b/subworkflows/local/gtdbtk.nf @@ -101,6 +101,7 @@ workflow GTDBTK { ) emit: - summary = GTDBTK_SUMMARY.out.summary - versions = GTDBTK_CLASSIFYWF.out.versions + gtdbtk_summaries = GTDBTK_CLASSIFYWF.out.summary + summary = GTDBTK_SUMMARY.out.summary + versions = GTDBTK_CLASSIFYWF.out.versions } diff --git a/subworkflows/local/gunc_qc.nf b/subworkflows/local/gunc_qc.nf index 912b9425..0d52d666 100644 --- a/subworkflows/local/gunc_qc.nf +++ b/subworkflows/local/gunc_qc.nf @@ -46,6 +46,7 @@ workflow GUNC_QC { } emit: - versions = ch_versions + gunc_maxcss_level_tsv = GUNC_RUN.out.maxcss_level_tsv + versions = ch_versions } diff --git a/subworkflows/local/virus_identification.nf b/subworkflows/local/virus_identification.nf index 4a3a2dac..1cecc7cb 100644 --- a/subworkflows/local/virus_identification.nf +++ b/subworkflows/local/virus_identification.nf @@ -24,7 +24,8 @@ workflow VIRUS_IDENTIFICATION { ch_versions.mix( GENOMAD_ENDTOEND.out.versions ) emit: - identified_viruses = ch_identified_viruses - versions = ch_versions + identified_viruses = ch_identified_viruses + virus_summary = GENOMAD_ENDTOEND.out.virus_summary + versions = ch_versions } diff --git a/tests/nextflow.config b/tests/nextflow.config new file mode 100644 index 00000000..6c0fbcbf --- /dev/null +++ b/tests/nextflow.config @@ -0,0 +1,25 @@ +params { + // Base directory for nf-core/modules test data + modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' + + // Base directory for nf-core/fetchngs test data + pipelines_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/pipelines/fetchngs/1.15.0/' + + max_cpus = 2 + max_memory = '6.GB' + max_time = '6.h' +} + +// Impose same minimum Nextflow version as the pipeline for testing +manifest { + nextflowVersion = '!>=23.04.0' +} + +// Disable all Nextflow reporting options +timeline { enabled = false } +report { enabled = false } +trace { enabled = false } +dag { enabled = false } + +// Load test_data.config +includeConfig '../conf/test_data.config' diff --git a/workflows/mag.nf b/workflows/mag/main.nf similarity index 88% rename from workflows/mag.nf rename to workflows/mag/main.nf index 6ec7b132..544584e7 100644 --- a/workflows/mag.nf +++ b/workflows/mag/main.nf @@ -51,53 +51,53 @@ ch_multiqc_custom_methods_description = params.multiqc_methods_description ? fil // // MODULE: Local to the pipeline // -include { BOWTIE2_REMOVAL_BUILD as BOWTIE2_HOST_REMOVAL_BUILD } from '../modules/local/bowtie2_removal_build' -include { BOWTIE2_REMOVAL_ALIGN as BOWTIE2_HOST_REMOVAL_ALIGN } from '../modules/local/bowtie2_removal_align' -include { BOWTIE2_REMOVAL_BUILD as BOWTIE2_PHIX_REMOVAL_BUILD } from '../modules/local/bowtie2_removal_build' -include { BOWTIE2_REMOVAL_ALIGN as BOWTIE2_PHIX_REMOVAL_ALIGN } from '../modules/local/bowtie2_removal_align' -include { PORECHOP } from '../modules/local/porechop' -include { NANOLYSE } from '../modules/local/nanolyse' -include { FILTLONG } from '../modules/local/filtlong' -include { NANOPLOT as NANOPLOT_RAW } from '../modules/local/nanoplot' -include { NANOPLOT as NANOPLOT_FILTERED } from '../modules/local/nanoplot' -include { CENTRIFUGE_DB_PREPARATION } from '../modules/local/centrifuge_db_preparation' -include { CENTRIFUGE } from '../modules/local/centrifuge' -include { KRAKEN2_DB_PREPARATION } from '../modules/local/kraken2_db_preparation' -include { KRAKEN2 } from '../modules/local/kraken2' -include { KRONA_DB } from '../modules/local/krona_db' -include { KRONA } from '../modules/local/krona' -include { POOL_SINGLE_READS as POOL_SHORT_SINGLE_READS } from '../modules/local/pool_single_reads' -include { POOL_PAIRED_READS } from '../modules/local/pool_paired_reads' -include { POOL_SINGLE_READS as POOL_LONG_READS } from '../modules/local/pool_single_reads' -include { MEGAHIT } from '../modules/local/megahit' -include { SPADES } from '../modules/local/spades' -include { SPADESHYBRID } from '../modules/local/spadeshybrid' -include { GUNZIP as GUNZIP_ASSEMBLIES } from '../modules/nf-core/gunzip' -include { QUAST } from '../modules/local/quast' -include { QUAST_BINS } from '../modules/local/quast_bins' -include { QUAST_BINS_SUMMARY } from '../modules/local/quast_bins_summary' -include { CAT_DB } from '../modules/local/cat_db' -include { CAT_DB_GENERATE } from '../modules/local/cat_db_generate' -include { CAT } from '../modules/local/cat' -include { CAT_SUMMARY } from "../modules/local/cat_summary" -include { BIN_SUMMARY } from '../modules/local/bin_summary' -include { COMBINE_TSV as COMBINE_SUMMARY_TSV } from '../modules/local/combine_tsv' +include { BOWTIE2_REMOVAL_BUILD as BOWTIE2_HOST_REMOVAL_BUILD } from '../../modules/local/bowtie2_removal_build' +include { BOWTIE2_REMOVAL_ALIGN as BOWTIE2_HOST_REMOVAL_ALIGN } from '../../modules/local/bowtie2_removal_align' +include { BOWTIE2_REMOVAL_BUILD as BOWTIE2_PHIX_REMOVAL_BUILD } from '../../modules/local/bowtie2_removal_build' +include { BOWTIE2_REMOVAL_ALIGN as BOWTIE2_PHIX_REMOVAL_ALIGN } from '../../modules/local/bowtie2_removal_align' +include { PORECHOP } from '../../modules/local/porechop' +include { NANOLYSE } from '../../modules/local/nanolyse' +include { FILTLONG } from '../../modules/local/filtlong' +include { NANOPLOT as NANOPLOT_RAW } from '../../modules/local/nanoplot' +include { NANOPLOT as NANOPLOT_FILTERED } from '../../modules/local/nanoplot' +include { CENTRIFUGE_DB_PREPARATION } from '../../modules/local/centrifuge_db_preparation' +include { CENTRIFUGE } from '../../modules/local/centrifuge' +include { KRAKEN2_DB_PREPARATION } from '../../modules/local/kraken2_db_preparation' +include { KRAKEN2 } from '../../modules/local/kraken2' +include { KRONA_DB } from '../../modules/local/krona_db' +include { KRONA } from '../../modules/local/krona' +include { POOL_SINGLE_READS as POOL_SHORT_SINGLE_READS } from '../../modules/local/pool_single_reads' +include { POOL_PAIRED_READS } from '../../modules/local/pool_paired_reads' +include { POOL_SINGLE_READS as POOL_LONG_READS } from '../../modules/local/pool_single_reads' +include { MEGAHIT } from '../../modules/local/megahit' +include { SPADES } from '../../modules/local/spades' +include { SPADESHYBRID } from '../../modules/local/spadeshybrid' +include { GUNZIP as GUNZIP_ASSEMBLIES } from '../../modules/nf-core/gunzip' +include { QUAST } from '../../modules/local/quast' +include { QUAST_BINS } from '../../modules/local/quast_bins' +include { QUAST_BINS_SUMMARY } from '../../modules/local/quast_bins_summary' +include { CAT_DB } from '../../modules/local/cat_db' +include { CAT_DB_GENERATE } from '../../modules/local/cat_db_generate' +include { CAT } from '../../modules/local/cat' +include { CAT_SUMMARY } from "../../modules/local/cat_summary" +include { BIN_SUMMARY } from '../../modules/local/bin_summary' +include { COMBINE_TSV as COMBINE_SUMMARY_TSV } from '../../modules/local/combine_tsv' // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { INPUT_CHECK } from '../subworkflows/local/input_check' -include { BINNING_PREPARATION } from '../subworkflows/local/binning_preparation' -include { BINNING } from '../subworkflows/local/binning' -include { BINNING_REFINEMENT } from '../subworkflows/local/binning_refinement' -include { BUSCO_QC } from '../subworkflows/local/busco_qc' -include { VIRUS_IDENTIFICATION } from '../subworkflows/local/virus_identification' -include { CHECKM_QC } from '../subworkflows/local/checkm_qc' -include { GUNC_QC } from '../subworkflows/local/gunc_qc' -include { GTDBTK } from '../subworkflows/local/gtdbtk' -include { ANCIENT_DNA_ASSEMBLY_VALIDATION } from '../subworkflows/local/ancient_dna' -include { DOMAIN_CLASSIFICATION } from '../subworkflows/local/domain_classification' -include { DEPTHS } from '../subworkflows/local/depths' +include { INPUT_CHECK } from '../../subworkflows/local/input_check' +include { BINNING_PREPARATION } from '../../subworkflows/local/binning_preparation' +include { BINNING } from '../../subworkflows/local/binning' +include { BINNING_REFINEMENT } from '../../subworkflows/local/binning_refinement' +include { BUSCO_QC } from '../../subworkflows/local/busco_qc' +include { VIRUS_IDENTIFICATION } from '../../subworkflows/local/virus_identification' +include { CHECKM_QC } from '../../subworkflows/local/checkm_qc' +include { GUNC_QC } from '../../subworkflows/local/gunc_qc' +include { GTDBTK } from '../../subworkflows/local/gtdbtk' +include { ANCIENT_DNA_ASSEMBLY_VALIDATION } from '../../subworkflows/local/ancient_dna' +include { DOMAIN_CLASSIFICATION } from '../../subworkflows/local/domain_classification' +include { DEPTHS } from '../../subworkflows/local/depths' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -108,21 +108,21 @@ include { DEPTHS } from '../subworkflows/local/depths' // // MODULE: Installed directly from nf-core/modules // -include { ARIA2 as ARIA2_UNTAR } from '../modules/nf-core/aria2/main' -include { FASTQC as FASTQC_RAW } from '../modules/nf-core/fastqc/main' -include { FASTQC as FASTQC_TRIMMED } from '../modules/nf-core/fastqc/main' -include { SEQTK_MERGEPE } from '../modules/nf-core/seqtk/mergepe/main' -include { BBMAP_BBNORM } from '../modules/nf-core/bbmap/bbnorm/main' -include { FASTP } from '../modules/nf-core/fastp/main' -include { ADAPTERREMOVAL as ADAPTERREMOVAL_PE } from '../modules/nf-core/adapterremoval/main' -include { ADAPTERREMOVAL as ADAPTERREMOVAL_SE } from '../modules/nf-core/adapterremoval/main' -include { CAT_FASTQ } from '../modules/nf-core/cat/fastq/main' -include { PRODIGAL } from '../modules/nf-core/prodigal/main' -include { PROKKA } from '../modules/nf-core/prokka/main' -include { MMSEQS_DATABASES } from '../modules/nf-core/mmseqs/databases/main' -include { METAEUK_EASYPREDICT } from '../modules/nf-core/metaeuk/easypredict/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' -include { MULTIQC } from '../modules/nf-core/multiqc/main' +include { ARIA2 as ARIA2_UNTAR } from '../../modules/nf-core/aria2/main' +include { FASTQC as FASTQC_RAW } from '../../modules/nf-core/fastqc/main' +include { FASTQC as FASTQC_TRIMMED } from '../../modules/nf-core/fastqc/main' +include { SEQTK_MERGEPE } from '../../modules/nf-core/seqtk/mergepe/main' +include { BBMAP_BBNORM } from '../../modules/nf-core/bbmap/bbnorm/main' +include { FASTP } from '../../modules/nf-core/fastp/main' +include { ADAPTERREMOVAL as ADAPTERREMOVAL_PE } from '../../modules/nf-core/adapterremoval/main' +include { ADAPTERREMOVAL as ADAPTERREMOVAL_SE } from '../../modules/nf-core/adapterremoval/main' +include { CAT_FASTQ } from '../../modules/nf-core/cat/fastq/main' +include { PRODIGAL } from '../../modules/nf-core/prodigal/main' +include { PROKKA } from '../../modules/nf-core/prokka/main' +include { MMSEQS_DATABASES } from '../../modules/nf-core/mmseqs/databases/main' +include { METAEUK_EASYPREDICT } from '../../modules/nf-core/metaeuk/easypredict/main' +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../../modules/nf-core/custom/dumpsoftwareversions/main' +include { MULTIQC } from '../../modules/nf-core/multiqc/main' //////////////////////////////////////////////////// /* -- Create channel for reference databases -- */ @@ -216,6 +216,25 @@ if(params.metaeuk_db && !params.skip_metaeuk) { ch_metaeuk_db = Channel.empty() } +// Create empty channels for all emitted outputs + ch_short_reads = Channel.empty() + ch_assemblies = Channel.empty() + ch_prodigal_gene_annotations = Channel.empty() + ch_genomad_virus_summary = Channel.empty() + ch_binning_results_bins = Channel.empty() + ch_binning_results_unbins = Channel.empty() + ch_refined_bins = Channel.empty() + ch_refined_unbins = Channel.empty() + ch_busco_summary = Channel.empty() + ch_checkm_tsv = Channel.empty() + ch_gunc_maxcss_level_tsv = Channel.empty() + ch_quast_bin_summaries = Channel.empty() + ch_bin_summaries = Channel.empty() + ch_cat_tax_classification_names = Channel.empty() + ch_gtdbtk_summaries = Channel.empty() + ch_prokka_faa = Channel.empty() + ch_metaeuk_easypredict_faa = Channel.empty() + /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN MAIN WORKFLOW @@ -355,14 +374,12 @@ workflow MAG { } CAT_FASTQ ( ch_short_reads_forcat.cat.map { meta, reads -> [ meta, reads.flatten() ]} ) - // Ensure we don't have nests of nests so that structure is in form expected for assembly ch_short_reads_catskipped = ch_short_reads_forcat.skip_cat .map { meta, reads -> def new_reads = meta.single_end ? reads[0] : reads.flatten() [ meta, new_reads ] } - // Combine single run and multi-run-merged data ch_short_reads = Channel.empty() ch_short_reads = CAT_FASTQ.out.reads.mix(ch_short_reads_catskipped) @@ -486,7 +503,6 @@ workflow MAG { } else { ch_db_for_centrifuge = Channel.empty() } - CENTRIFUGE ( ch_short_reads, ch_db_for_centrifuge @@ -589,7 +605,6 @@ workflow MAG { } ch_assemblies = Channel.empty() - if (!params.skip_megahit){ MEGAHIT ( ch_short_reads_grouped ) ch_megahit_assemblies = MEGAHIT.out.assembly @@ -693,6 +708,7 @@ workflow MAG { ch_assemblies, 'gff' ) + ch_prodigal_gene_annotations = PRODIGAL.out.gene_annotations ch_versions = ch_versions.mix(PRODIGAL.out.versions.first()) } @@ -704,6 +720,7 @@ workflow MAG { if (params.run_virus_identification){ VIRUS_IDENTIFICATION(ch_assemblies, ch_genomad_db) + ch_genomad_virus_summary = VIRUS_IDENTIFICATION.out.virus_summary ch_versions = ch_versions.mix(VIRUS_IDENTIFICATION.out.versions.first()) } @@ -803,6 +820,8 @@ workflow MAG { [meta_new, bins] } + + // If any two of the binners are both skipped at once, do not run because DAS_Tool needs at least one if ( params.refine_bins_dastool ) { ch_prokarya_bins_dastool = ch_binning_results_bins @@ -892,6 +911,7 @@ workflow MAG { ch_checkm_db ) ch_checkm_summary = CHECKM_QC.out.summary + ch_checkm_tsv = CHECKM_QC.out.checkm_tsv ch_versions = ch_versions.mix(CHECKM_QC.out.versions) @@ -906,6 +926,7 @@ workflow MAG { meta.domain != "eukarya" } GUNC_QC ( ch_input_bins_for_qc, ch_gunc_db, [] ) + ch_gunc_maxcss_level_tsv = GUNC_QC.out.gunc_maxcss_level_tsv ch_versions = ch_versions.mix( GUNC_QC.out.versions ) } @@ -918,7 +939,6 @@ workflow MAG { def new_bins = bins.flatten() [meta, new_bins] } - QUAST_BINS ( ch_input_for_quast_bins ) ch_versions = ch_versions.mix(QUAST_BINS.out.versions.first()) ch_quast_bin_summary = QUAST_BINS.out.quast_bin_summaries @@ -929,7 +949,6 @@ workflow MAG { QUAST_BINS_SUMMARY ( ch_quast_bin_summary.collect() ) ch_quast_bins_summary = QUAST_BINS_SUMMARY.out.summary } - /* * CAT: Bin Annotation Tool (BAT) are pipelines for the taxonomic classification of long DNA sequences and metagenome assembled genomes (MAGs/bins) */ @@ -960,25 +979,21 @@ workflow MAG { // If CAT is not run, then the CAT global summary should be an empty channel if ( params.cat_db_generate || params.cat_db) { + ch_cat_global_summary = CAT_SUMMARY.out.summary ch_cat_global_summary = CAT_SUMMARY.out.combined } else { ch_cat_global_summary = Channel.empty() } - /* * GTDB-tk: taxonomic classifications using GTDB reference */ - if ( !params.skip_gtdbtk ) { - ch_gtdbtk_summary = Channel.empty() if ( gtdb ){ - ch_gtdb_bins = ch_input_for_postbinning_bins_unbins .filter { meta, bins -> meta.domain != "eukarya" } - GTDBTK ( ch_gtdb_bins, ch_busco_summary, @@ -992,7 +1007,6 @@ workflow MAG { } else { ch_gtdbtk_summary = Channel.empty() } - if ( ( !params.skip_binqc ) || !params.skip_quast || !params.skip_gtdbtk){ BIN_SUMMARY ( ch_input_for_binsummary, @@ -1003,11 +1017,9 @@ workflow MAG { ch_cat_global_summary.ifEmpty([]) ) } - /* * Prokka: Genome annotation */ - if (!params.skip_prokka){ ch_bins_for_prokka = ch_input_for_postbinning_bins_unbins.transpose() .map { meta, bin -> @@ -1017,15 +1029,14 @@ workflow MAG { .filter { meta, bin -> meta.domain != "eukarya" } - PROKKA ( ch_bins_for_prokka, [], [] ) + ch_prokka_faa = PROKKA.out.faa ch_versions = ch_versions.mix(PROKKA.out.versions.first()) } - if (!params.skip_metaeuk && (params.metaeuk_db || params.metaeuk_mmseqs_db)) { ch_bins_for_metaeuk = ch_input_for_postbinning_bins_unbins.transpose() .filter { meta, bin -> @@ -1035,88 +1046,79 @@ workflow MAG { def meta_new = meta + [id: bin.getBaseName()] [ meta_new, bin ] } - METAEUK_EASYPREDICT (ch_bins_for_metaeuk, ch_metaeuk_db) + ch_metaeuk_easypredict_faa = METAEUK_EASYPREDICT.out.faa ch_versions = ch_versions.mix(METAEUK_EASYPREDICT.out.versions) } } - CUSTOM_DUMPSOFTWAREVERSIONS ( ch_versions.unique().collectFile(name: 'collated_versions.yml') ) - // // MODULE: MultiQC // workflow_summary = WorkflowMag.paramsSummaryMultiqc(workflow, summary_params) ch_workflow_summary = Channel.value(workflow_summary) - methods_description = WorkflowMag.methodsDescriptionText(workflow, ch_multiqc_custom_methods_description, params) ch_methods_description = Channel.value(methods_description) - ch_multiqc_files = Channel.empty() ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(FASTQC_RAW.out.zip.collect{it[1]}.ifEmpty([])) - if (!params.assembly_input) { - if ( !params.skip_clipping && params.clip_tool == 'adapterremoval' ) { ch_multiqc_files = ch_multiqc_files.mix(ADAPTERREMOVAL_PE.out.settings.collect{it[1]}.ifEmpty([])) ch_multiqc_files = ch_multiqc_files.mix(ADAPTERREMOVAL_SE.out.settings.collect{it[1]}.ifEmpty([])) - } else if ( !params.skip_clipping && params.clip_tool == 'fastp' ) { ch_multiqc_files = ch_multiqc_files.mix(FASTP.out.json.collect{it[1]}.ifEmpty([])) } - if (!(params.keep_phix && params.skip_clipping && !(params.host_genome || params.host_fasta))) { ch_multiqc_files = ch_multiqc_files.mix(FASTQC_TRIMMED.out.zip.collect{it[1]}.ifEmpty([])) } - if ( params.host_fasta || params.host_genome ) { ch_multiqc_files = ch_multiqc_files.mix(BOWTIE2_HOST_REMOVAL_ALIGN.out.log.collect{it[1]}.ifEmpty([])) } - if(!params.keep_phix) { ch_multiqc_files = ch_multiqc_files.mix(BOWTIE2_PHIX_REMOVAL_ALIGN.out.log.collect{it[1]}.ifEmpty([])) } - } - ch_multiqc_files = ch_multiqc_files.mix(CENTRIFUGE.out.kreport.collect{it[1]}.ifEmpty([])) ch_multiqc_files = ch_multiqc_files.mix(KRAKEN2.out.report.collect{it[1]}.ifEmpty([])) - if (!params.skip_quast){ ch_multiqc_files = ch_multiqc_files.mix(QUAST.out.report.collect().ifEmpty([])) - if ( !params.skip_binning ) { ch_multiqc_files = ch_multiqc_files.mix(QUAST_BINS.out.dir.collect().ifEmpty([])) } } - if ( !params.skip_binning || params.ancient_dna ) { ch_multiqc_files = ch_multiqc_files.mix(BINNING_PREPARATION.out.bowtie2_assembly_multiqc.collect().ifEmpty([])) } - if (!params.skip_binning && !params.skip_prokka){ ch_multiqc_files = ch_multiqc_files.mix(PROKKA.out.txt.collect{it[1]}.ifEmpty([])) } - if (!params.skip_binning && !params.skip_binqc && params.binqc_tool == 'busco'){ ch_multiqc_files = ch_multiqc_files.mix(BUSCO_QC.out.multiqc.collect().ifEmpty([])) } - - MULTIQC ( ch_multiqc_files.collect(), ch_multiqc_config.toList(), ch_multiqc_custom_config.toList(), ch_multiqc_logo.toList() ) - multiqc_report = MULTIQC.out.report.toList() + + emit: + short_reads = ch_short_reads + assemblies = ch_assemblies + prodigal = ch_prodigal_gene_annotations + genomad = ch_genomad_virus_summary + refined_bins = ch_refined_bins + refined_unbins = ch_refined_unbins + bin_summary = ch_bin_summaries + prokka = ch_prokka_faa + metaeuk = ch_metaeuk_easypredict_faa + versions = ch_versions } /* @@ -1135,7 +1137,6 @@ workflow.onComplete { NfcoreTemplate.IM_notification(workflow, params, summary_params, projectDir, log) } } - workflow.onError { if (workflow.errorReport.contains("Process requirement exceeds available memory")) { println("🛑 Default resources exceed availability 🛑 ") diff --git a/workflows/mag/tests/tags.yml b/workflows/mag/tests/tags.yml new file mode 100644 index 00000000..15329330 --- /dev/null +++ b/workflows/mag/tests/tags.yml @@ -0,0 +1,22 @@ +mag_test_adapterremoval: + - ./** +mag_test_ancient_dna: + - ./** +mag_test_bbnorm: + - ./** +mag_test_binrefinement: + - ./** +mag_test_busco_auto: + - ./** +mag_test_host_rm: + - ./** +mag_test_hybrid_host_rm: + - ./** +mag_test_hybrid: + - ./** +mag_test_nothing: + - ./** +mag_test_virus_identification: + - ./** +mag_test: + - ./** diff --git a/workflows/mag/tests/test.nf.test b/workflows/mag/tests/test.nf.test new file mode 100644 index 00000000..3c5b28ff --- /dev/null +++ b/workflows/mag/tests/test.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test" + profile "test" + + test("Default paramters") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test.nf.test.snap b/workflows/mag/tests/test.nf.test.snap new file mode 100644 index 00000000..70718aec --- /dev/null +++ b/workflows/mag/tests/test.nf.test.snap @@ -0,0 +1,541 @@ +{ + "Default paramters": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,fe81462f19e6acc0bbcec55528be7ad2", + "test_minigut_2.merged.fastq.gz:md5,88ebc2ac01082507f7be1761049e5eff" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_phix_removed.unmapped_1.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_phix_removed.unmapped_2.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "1": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,f35393cdbcb64bdc7ae9db78a5601229" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_scaffolds.fasta:md5,50301a321e7618b1f5c4a8664ae21765" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,2c0b7977b39fb2db31ee9b3adf75f8c6" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_scaffolds.fasta:md5,235505d69a2822d77ad70ce061b80efe" + ] + ], + "2": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "test_minigut.gff.gz:md5,d90d8730f41d31fdecf7571555b598fe" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "test_minigut.gff.gz:md5,84429e564c6e5efe0e39c131ee23919f" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "test_minigut_sample2.gff.gz:md5,3ee13f148386668e88c18a4cd6a14ad3" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "test_minigut_sample2.gff.gz:md5,4d9b7eb438adc2db0befb7ae87f25725" + ] + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + [ + { + "id": "MEGAHIT-MaxBin2-test_minigut.001", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MaxBin2-test_minigut.001.faa:md5,eaccd450eed58eae731384315670ca58" + ], + [ + { + "id": "MEGAHIT-MaxBin2-test_minigut.002", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MaxBin2-test_minigut.002.faa:md5,78099bcfdbc895f9a9db06cd15f5edab" + ], + [ + { + "id": "MEGAHIT-MetaBAT2-test_minigut.1", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MetaBAT2-test_minigut.1.faa:md5,b9bd97482ed409c39f8685a9bc898f01" + ], + [ + { + "id": "MEGAHIT-MetaBAT2-test_minigut.2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MetaBAT2-test_minigut.2.faa:md5,b3c4338146bcc7fb36a8c94d92922f5e" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut.001", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut.001.faa:md5,7e773008946a8eeb529cabc153d197b5" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut.002", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut.002.faa:md5,ed025d6d6dceb1b79fafb2a062b5790c" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut_sample2.001", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut_sample2.001.faa:md5,e33d7a55af8b070646de60f62d407481" + ], + [ + { + "id": "SPAdes-MetaBAT2-test_minigut.1", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MetaBAT2-test_minigut.1.faa:md5,d378b57b012feaf4c43a7da0a78a6968" + ], + [ + { + "id": "SPAdes-MetaBAT2-test_minigut.2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MetaBAT2-test_minigut.2.faa:md5,1cc11d484e49ff51111b0e0bf7a2349b" + ] + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,18eeebfdf8c302c29cbb4abc4325628c", + "versions.yml:md5,200880072147033d455fede5cf4499dc", + "versions.yml:md5,2acb240e473bc70de2e0bb8a392748ac", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,368d757df0f57b49bce09965641cc71a", + "versions.yml:md5,519a472d661281a99e0335305cdd1d85", + "versions.yml:md5,59e59108b091ee58d131ac74e9bfac43", + "versions.yml:md5,5cf45e79d026b3593199fa035f2d72ec", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7067399ef1687d4d1ba0aab93dc67754", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0", + "versions.yml:md5,ea3029fd33017b2f39de14bce337c246" + ], + "assemblies": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,f35393cdbcb64bdc7ae9db78a5601229" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_scaffolds.fasta:md5,50301a321e7618b1f5c4a8664ae21765" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,2c0b7977b39fb2db31ee9b3adf75f8c6" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_scaffolds.fasta:md5,235505d69a2822d77ad70ce061b80efe" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "test_minigut.gff.gz:md5,d90d8730f41d31fdecf7571555b598fe" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "test_minigut.gff.gz:md5,84429e564c6e5efe0e39c131ee23919f" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "test_minigut_sample2.gff.gz:md5,3ee13f148386668e88c18a4cd6a14ad3" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "test_minigut_sample2.gff.gz:md5,4d9b7eb438adc2db0befb7ae87f25725" + ] + ], + "prokka": [ + [ + { + "id": "MEGAHIT-MaxBin2-test_minigut.001", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MaxBin2-test_minigut.001.faa:md5,eaccd450eed58eae731384315670ca58" + ], + [ + { + "id": "MEGAHIT-MaxBin2-test_minigut.002", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MaxBin2-test_minigut.002.faa:md5,78099bcfdbc895f9a9db06cd15f5edab" + ], + [ + { + "id": "MEGAHIT-MetaBAT2-test_minigut.1", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MetaBAT2-test_minigut.1.faa:md5,b9bd97482ed409c39f8685a9bc898f01" + ], + [ + { + "id": "MEGAHIT-MetaBAT2-test_minigut.2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "MEGAHIT-MetaBAT2-test_minigut.2.faa:md5,b3c4338146bcc7fb36a8c94d92922f5e" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut.001", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut.001.faa:md5,7e773008946a8eeb529cabc153d197b5" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut.002", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut.002.faa:md5,ed025d6d6dceb1b79fafb2a062b5790c" + ], + [ + { + "id": "SPAdes-MaxBin2-test_minigut_sample2.001", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MaxBin2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MaxBin2-test_minigut_sample2.001.faa:md5,e33d7a55af8b070646de60f62d407481" + ], + [ + { + "id": "SPAdes-MetaBAT2-test_minigut.1", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MetaBAT2-test_minigut.1.faa:md5,d378b57b012feaf4c43a7da0a78a6968" + ], + [ + { + "id": "SPAdes-MetaBAT2-test_minigut.2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "MetaBAT2", + "domain": "unclassified", + "refinement": "unrefined" + }, + "SPAdes-MetaBAT2-test_minigut.2.faa:md5,1cc11d484e49ff51111b0e0bf7a2349b" + ] + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,fe81462f19e6acc0bbcec55528be7ad2", + "test_minigut_2.merged.fastq.gz:md5,88ebc2ac01082507f7be1761049e5eff" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_phix_removed.unmapped_1.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_phix_removed.unmapped_2.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "versions": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,18eeebfdf8c302c29cbb4abc4325628c", + "versions.yml:md5,200880072147033d455fede5cf4499dc", + "versions.yml:md5,2acb240e473bc70de2e0bb8a392748ac", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,368d757df0f57b49bce09965641cc71a", + "versions.yml:md5,519a472d661281a99e0335305cdd1d85", + "versions.yml:md5,59e59108b091ee58d131ac74e9bfac43", + "versions.yml:md5,5cf45e79d026b3593199fa035f2d72ec", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7067399ef1687d4d1ba0aab93dc67754", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0", + "versions.yml:md5,ea3029fd33017b2f39de14bce337c246" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-09T13:01:27.205986175" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_adapterremoval.nf.test b/workflows/mag/tests/test_adapterremoval.nf.test new file mode 100644 index 00000000..68fd8a2e --- /dev/null +++ b/workflows/mag/tests/test_adapterremoval.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_adapterremoval" + profile "test_adapterremoval" + + test("Parameters: clip_tool = 'adapterremoval'") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out, + ).match()} + ) + } + } +} diff --git a/workflows/mag/tests/test_adapterremoval.nf.test.snap b/workflows/mag/tests/test_adapterremoval.nf.test.snap new file mode 100644 index 00000000..6f1dfede --- /dev/null +++ b/workflows/mag/tests/test_adapterremoval.nf.test.snap @@ -0,0 +1,117 @@ +{ + "Parameters: clip_tool = 'adapterremoval'": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut_euk", + "group": "0", + "single_end": false + }, + [ + "test_minigut_euk_run0_ar2.pair1.truncated.fastq.gz:md5,e8f01a4fdf2e348330fc02a47eb3c5af", + "test_minigut_euk_run0_ar2.pair2.truncated.fastq.gz:md5,06510940505288d80a3d940db85d0ed5" + ] + ], + [ + { + "id": "test_minigut_sample2_euk", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_euk_run0_ar2.pair1.truncated.fastq.gz:md5,92b8643e591f7490c980fe4d0879c955", + "test_minigut_sample2_euk_run0_ar2.pair2.truncated.fastq.gz:md5,7d4436e9532bb9665080b77efe441faf" + ] + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,eca9f4c6e135848b1247916040e52b99" + ], + "assemblies": [ + + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut_euk", + "group": "0", + "single_end": false + }, + [ + "test_minigut_euk_run0_ar2.pair1.truncated.fastq.gz:md5,e8f01a4fdf2e348330fc02a47eb3c5af", + "test_minigut_euk_run0_ar2.pair2.truncated.fastq.gz:md5,06510940505288d80a3d940db85d0ed5" + ] + ], + [ + { + "id": "test_minigut_sample2_euk", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_euk_run0_ar2.pair1.truncated.fastq.gz:md5,92b8643e591f7490c980fe4d0879c955", + "test_minigut_sample2_euk_run0_ar2.pair2.truncated.fastq.gz:md5,7d4436e9532bb9665080b77efe441faf" + ] + ] + ], + "versions": [ + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,eca9f4c6e135848b1247916040e52b99" + ] + } + ], + "timestamp": "2024-02-05T23:39:32.916744986" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_ancient_dna.nf.test b/workflows/mag/tests/test_ancient_dna.nf.test new file mode 100644 index 00000000..8120d57f --- /dev/null +++ b/workflows/mag/tests/test_ancient_dna.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_ancient_dna" + profile "test_ancient_dna" + + test("Parameters: ancient_dna = true") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match()} + ) + } + } +} diff --git a/workflows/mag/tests/test_ancient_dna.nf.test.snap b/workflows/mag/tests/test_ancient_dna.nf.test.snap new file mode 100644 index 00000000..b045cd24 --- /dev/null +++ b/workflows/mag/tests/test_ancient_dna.nf.test.snap @@ -0,0 +1,397 @@ +{ + "Parameters: ancient_dna = true": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R2.fastq.gz" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "1": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,3055734183fc34cba4b50afbda4f34cf" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_scaffolds.fasta:md5,acb79980009afc87e0e81293a84fe54f" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,093b87fe274ddb7f7dbf5d5e574495ad" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_scaffolds.fasta:md5,98a1c0bf47c301bbd838b32a54b7537b" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "MEGAHIT-MetaBAT2Refined-test_minigut.1.fa:md5,c010aca18e5dfa00f17b24ce507988f3", + "MEGAHIT-MetaBAT2Refined-test_minigut.2.fa:md5,2cc38f264e02be8fab0867b1dfe9f9bd" + ] + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut.001.fa:md5,1e01c5c341311b94df0f5b0b97668cde", + "SPAdes-MaxBin2Refined-test_minigut.002.fa:md5,ca74ae68469c1e354a00d7a1bf0416d0" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut_sample2.001.fa:md5,7c8439fb9c3b72ba4d89b9b61b538a66" + ] + ] + ], + "5": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "MEGAHIT-DASToolUnbinned-test_minigut.fa:md5,4b022bfb579d9873385aadc9eaf549d6" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "SPAdes-DASToolUnbinned-test_minigut_sample2.fa:md5,dd179320159df68d6bf630d6b46079b5" + ] + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,368d757df0f57b49bce09965641cc71a", + "versions.yml:md5,47df50b983a036f55cb936247d920744", + "versions.yml:md5,586dc48e8e2cc8106cb0ee3b70ce0fef", + "versions.yml:md5,6d41fb977d31ce96d7ddbb4ea2dbe38b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7ccffaba4e75be98b8faedb54ccea16f", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,aee39cb21305f6d3fe88bf9863529706", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,c777f00c6a48f3c0490d09b1aa8d81a6", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d8d2321bec0c70de2f9750f258fc890d", + "versions.yml:md5,dc29f891cb297131cf940ba5580a6832", + "versions.yml:md5,df654dd4fdb4039c2d8cf0b6b49f4b55", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0", + "versions.yml:md5,e9f8fe610b5abe68b28d77efc951e9e6" + ], + "assemblies": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,3055734183fc34cba4b50afbda4f34cf" + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_scaffolds.fasta:md5,acb79980009afc87e0e81293a84fe54f" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,093b87fe274ddb7f7dbf5d5e574495ad" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_scaffolds.fasta:md5,98a1c0bf47c301bbd838b32a54b7537b" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "MEGAHIT-MetaBAT2Refined-test_minigut.1.fa:md5,c010aca18e5dfa00f17b24ce507988f3", + "MEGAHIT-MetaBAT2Refined-test_minigut.2.fa:md5,2cc38f264e02be8fab0867b1dfe9f9bd" + ] + ], + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut.001.fa:md5,1e01c5c341311b94df0f5b0b97668cde", + "SPAdes-MaxBin2Refined-test_minigut.002.fa:md5,ca74ae68469c1e354a00d7a1bf0416d0" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut_sample2.001.fa:md5,7c8439fb9c3b72ba4d89b9b61b538a66" + ] + ] + ], + "refined_unbins": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "MEGAHIT-DASToolUnbinned-test_minigut.fa:md5,4b022bfb579d9873385aadc9eaf549d6" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "SPAdes", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "SPAdes-DASToolUnbinned-test_minigut_sample2.fa:md5,dd179320159df68d6bf630d6b46079b5" + ] + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R2.fastq.gz" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,368d757df0f57b49bce09965641cc71a", + "versions.yml:md5,47df50b983a036f55cb936247d920744", + "versions.yml:md5,586dc48e8e2cc8106cb0ee3b70ce0fef", + "versions.yml:md5,6d41fb977d31ce96d7ddbb4ea2dbe38b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7ccffaba4e75be98b8faedb54ccea16f", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,aee39cb21305f6d3fe88bf9863529706", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,c777f00c6a48f3c0490d09b1aa8d81a6", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d8d2321bec0c70de2f9750f258fc890d", + "versions.yml:md5,dc29f891cb297131cf940ba5580a6832", + "versions.yml:md5,df654dd4fdb4039c2d8cf0b6b49f4b55", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0", + "versions.yml:md5,e9f8fe610b5abe68b28d77efc951e9e6" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T11:19:54.901540968" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_bbnorm.nf.test b/workflows/mag/tests/test_bbnorm.nf.test new file mode 100644 index 00000000..2dce5682 --- /dev/null +++ b/workflows/mag/tests/test_bbnorm.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_bbnorm" + profile "test_bbnorm" + + test("Parameters: bbnorm = true") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out, + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test_bbnorm.nf.test.snap b/workflows/mag/tests/test_bbnorm.nf.test.snap new file mode 100644 index 00000000..2d7504c4 --- /dev/null +++ b/workflows/mag/tests/test_bbnorm.nf.test.snap @@ -0,0 +1,125 @@ +{ + "Parameters: bbnorm = true": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "test_minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_fastp_1.fastp.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_fastp_2.fastp.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,67cbab915f2801633ea61219086a7735", + "versions.yml:md5,67cbab915f2801633ea61219086a7735", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ], + "assemblies": [ + + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "test_minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_fastp_1.fastp.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_fastp_2.fastp.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "versions": [ + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,67cbab915f2801633ea61219086a7735", + "versions.yml:md5,67cbab915f2801633ea61219086a7735", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T13:57:10.226099714" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_binrefinement.nf.test b/workflows/mag/tests/test_binrefinement.nf.test new file mode 100644 index 00000000..fc08a808 --- /dev/null +++ b/workflows/mag/tests/test_binrefinement.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_binrefinement" + profile "test_binrefinement" + + test("Parameters: refine_bins_dastool = true") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test_binrefinement.nf.test.snap b/workflows/mag/tests/test_binrefinement.nf.test.snap new file mode 100644 index 00000000..6aa34add --- /dev/null +++ b/workflows/mag/tests/test_binrefinement.nf.test.snap @@ -0,0 +1,333 @@ +{ + "Parameters: refine_bins_dastool = true": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R2.fastq.gz" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "1": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,49bd2dbd085e37b3f19a62d9d010a271" + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_contigs.fasta:md5,86027592505360f0e51a395555b8a11b" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,378c9d74964ef6a9a0fd2f2c77dfa607" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_contigs.fasta:md5,0c3fdd6f534d5e21b105be45351ee655" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "MEGAHIT-MetaBAT2Refined-test_minigut.1.fa:md5,489a5f7ba3795477e09d2d396fe535c3", + "MEGAHIT-MetaBAT2Refined-test_minigut.2.fa:md5,1addf634bca82af85d36621585f93f52" + ] + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut.001_sub.fa:md5,b1633cb560c41afe3606b6e8f2082211", + "SPAdes-MetaBAT2Refined-test_minigut.2.fa:md5,7f8be703a086fd12d41d2df817a08e8d" + ] + ] + ], + "5": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "MEGAHIT-DASToolUnbinned-test_minigut.fa:md5,5b68d8b2df39cb4ab46299d9a09f1243" + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "SPAdes-DASToolUnbinned-test_minigut.fa:md5,067f6ad8e2f820ab3d6000a154150954" + ] + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,586dc48e8e2cc8106cb0ee3b70ce0fef", + "versions.yml:md5,6d41fb977d31ce96d7ddbb4ea2dbe38b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7ccffaba4e75be98b8faedb54ccea16f", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,aee39cb21305f6d3fe88bf9863529706", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,c777f00c6a48f3c0490d09b1aa8d81a6", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d8d2321bec0c70de2f9750f258fc890d", + "versions.yml:md5,dc29f891cb297131cf940ba5580a6832", + "versions.yml:md5,df654dd4fdb4039c2d8cf0b6b49f4b55", + "versions.yml:md5,e9f8fe610b5abe68b28d77efc951e9e6", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c" + ], + "assemblies": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,49bd2dbd085e37b3f19a62d9d010a271" + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_contigs.fasta:md5,86027592505360f0e51a395555b8a11b" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,378c9d74964ef6a9a0fd2f2c77dfa607" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "assembler": "SPAdes" + }, + "SPAdes-test_minigut_sample2_contigs.fasta:md5,0c3fdd6f534d5e21b105be45351ee655" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "MEGAHIT-MetaBAT2Refined-test_minigut.1.fa:md5,489a5f7ba3795477e09d2d396fe535c3", + "MEGAHIT-MetaBAT2Refined-test_minigut.2.fa:md5,1addf634bca82af85d36621585f93f52" + ] + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes", + "binner": "DASTool", + "refinement": "dastool_refined", + "domain": "unclassified" + }, + [ + "SPAdes-MaxBin2Refined-test_minigut.001_sub.fa:md5,b1633cb560c41afe3606b6e8f2082211", + "SPAdes-MetaBAT2Refined-test_minigut.2.fa:md5,7f8be703a086fd12d41d2df817a08e8d" + ] + ] + ], + "refined_unbins": [ + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "MEGAHIT", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "MEGAHIT-DASToolUnbinned-test_minigut.fa:md5,5b68d8b2df39cb4ab46299d9a09f1243" + ], + [ + { + "id": "test_minigut", + "group": "0", + "assembler": "SPAdes", + "refinement": "dastool_refined_unbinned", + "binner": "DASTool", + "domain": "unclassified" + }, + "SPAdes-DASToolUnbinned-test_minigut.fa:md5,067f6ad8e2f820ab3d6000a154150954" + ] + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_R2.fastq.gz" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,586dc48e8e2cc8106cb0ee3b70ce0fef", + "versions.yml:md5,6d41fb977d31ce96d7ddbb4ea2dbe38b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,7ccffaba4e75be98b8faedb54ccea16f", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,aee39cb21305f6d3fe88bf9863529706", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,c777f00c6a48f3c0490d09b1aa8d81a6", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d8d2321bec0c70de2f9750f258fc890d", + "versions.yml:md5,dc29f891cb297131cf940ba5580a6832", + "versions.yml:md5,df654dd4fdb4039c2d8cf0b6b49f4b55", + "versions.yml:md5,e9f8fe610b5abe68b28d77efc951e9e6", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c", + "versions.yml:md5,ede79d94ca30c948c1707584760b230c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T14:25:50.952306304" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_busco_auto.nf.test b/workflows/mag/tests/test_busco_auto.nf.test new file mode 100644 index 00000000..f1e0162b --- /dev/null +++ b/workflows/mag/tests/test_busco_auto.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_busco_auto" + profile "test_busco_auto" + + test("Parameters: skip_busco = false") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test_busco_auto.nf.test.snap b/workflows/mag/tests/test_busco_auto.nf.test.snap new file mode 100644 index 00000000..03182252 --- /dev/null +++ b/workflows/mag/tests/test_busco_auto.nf.test.snap @@ -0,0 +1,187 @@ +{ + "Parameters: skip_busco = false": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "test_minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_fastp_1.fastp.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_fastp_2.fastp.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "1": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,c78fa53feb4b35380998bc0c339cdb0e" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,2c0b7977b39fb2db31ee9b3adf75f8c6" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,18eeebfdf8c302c29cbb4abc4325628c", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ], + "assemblies": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut.contigs.fa:md5,c78fa53feb4b35380998bc0c339cdb0e" + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-test_minigut_sample2.contigs.fa:md5,2c0b7977b39fb2db31ee9b3adf75f8c6" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "test_minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_run0_fastp_1.fastp.fastq.gz:md5,25580ab85c8288a6a7a0b2100d93f1d0", + "test_minigut_sample2_run0_fastp_2.fastp.fastq.gz:md5,a91bde6d5c85dd6b47f5bc5cfab65572" + ] + ] + ], + "versions": [ + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,0f67b0839fcef0334e0dcaf5568be9e0", + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,18eeebfdf8c302c29cbb4abc4325628c", + "versions.yml:md5,2d4f5bd36e073ac683075e4bc52884be", + "versions.yml:md5,3550550b622b6d5f6803ffed9742e08b", + "versions.yml:md5,7017c8959eb098440346ca9a2310c460", + "versions.yml:md5,8187d1683f97b64a582620caba2b175a", + "versions.yml:md5,82c86a3130605a0de153c903b2cfc6d2", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b4ee8f08c1efaac6dee44f113c7a2e0b", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,bb7110425028f7e7abcbf17152405079", + "versions.yml:md5,c384e0cacaa344670dcde728d78a524a", + "versions.yml:md5,cc4a4972327dec07faf1f54ead653715", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T15:03:14.092155168" + } +} diff --git a/workflows/mag/tests/test_host_rm.nf.test b/workflows/mag/tests/test_host_rm.nf.test new file mode 100644 index 00000000..5174204b --- /dev/null +++ b/workflows/mag/tests/test_host_rm.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_host_rm" + profile "test_host_rm" + + test("Parameters: host_fasta != null") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out, + ).match()} + ) + } + } +} diff --git a/workflows/mag/tests/test_host_rm.nf.test.snap b/workflows/mag/tests/test_host_rm.nf.test.snap new file mode 100644 index 00000000..082ff0dc --- /dev/null +++ b/workflows/mag/tests/test_host_rm.nf.test.snap @@ -0,0 +1,121 @@ +{ + "Parameters: host_fasta != null": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut_hg38host", + "group": "0", + "single_end": false + }, + [ + "test_minigut_hg38host_run0_host_removed.unmapped_1.fastq.gz:md5,48ab5cdbf8567cf6023bd304fcf896a9", + "test_minigut_hg38host_run0_host_removed.unmapped_2.fastq.gz:md5,b4246225aa4a15496991ac7c6b58563f" + ] + ], + [ + { + "id": "test_minigut_sample2_hg38host", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_hg38host_run0_host_removed.unmapped_1.fastq.gz:md5,92e68dfac8156b01c547a26cb45e42b1", + "test_minigut_sample2_hg38host_run0_host_removed.unmapped_2.fastq.gz:md5,6ded2b5f426aca4e9b29877fac4e9bff" + ] + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,59050473c9f749b269ad7079fd4693df", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ], + "assemblies": [ + + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut_hg38host", + "group": "0", + "single_end": false + }, + [ + "test_minigut_hg38host_run0_host_removed.unmapped_1.fastq.gz:md5,48ab5cdbf8567cf6023bd304fcf896a9", + "test_minigut_hg38host_run0_host_removed.unmapped_2.fastq.gz:md5,b4246225aa4a15496991ac7c6b58563f" + ] + ], + [ + { + "id": "test_minigut_sample2_hg38host", + "group": "0", + "single_end": false + }, + [ + "test_minigut_sample2_hg38host_run0_host_removed.unmapped_1.fastq.gz:md5,92e68dfac8156b01c547a26cb45e42b1", + "test_minigut_sample2_hg38host_run0_host_removed.unmapped_2.fastq.gz:md5,6ded2b5f426aca4e9b29877fac4e9bff" + ] + ] + ], + "versions": [ + "versions.yml:md5,59050473c9f749b269ad7079fd4693df", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T10:07:30.70766162" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_hybrid.nf.test b/workflows/mag/tests/test_hybrid.nf.test new file mode 100644 index 00000000..4666b6ca --- /dev/null +++ b/workflows/mag/tests/test_hybrid.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_hybrid" + profile "test_hybrid" + + test("Parameters: long reads included") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out, + ).match()} + ) + } + } +} diff --git a/workflows/mag/tests/test_hybrid.nf.test.snap b/workflows/mag/tests/test_hybrid.nf.test.snap new file mode 100644 index 00000000..10399055 --- /dev/null +++ b/workflows/mag/tests/test_hybrid.nf.test.snap @@ -0,0 +1,143 @@ +{ + "Parameters: long reads included": { + "content": [ + { + "0": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false + }, + [ + "minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ] + ], + "1": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs.fa:md5,c78fa53feb4b35380998bc0c339cdb0e" + ], + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "SPAdesHybrid" + }, + "SPAdesHybrid-group-0_scaffolds.fasta:md5,84c68c6ba721ad5858588a1487e05b6f" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,1bd6bbec156534880e04e0320dbce063", + "versions.yml:md5,5de8983775d3ef64cdbec6f382852619", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b94aaba1559ac9deaf7339181c398405", + "versions.yml:md5,cc143ba1b806a335a9963a434c887eba", + "versions.yml:md5,d13508b80e270ac6f1543725b431a682", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ], + "assemblies": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs.fa:md5,c78fa53feb4b35380998bc0c339cdb0e" + ], + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "SPAdesHybrid" + }, + "SPAdesHybrid-group-0_scaffolds.fasta:md5,84c68c6ba721ad5858588a1487e05b6f" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false + }, + [ + "minigut_run0_fastp_1.fastp.fastq.gz:md5,bac85d89ef44638200c247bc941a66fb", + "minigut_run0_fastp_2.fastp.fastq.gz:md5,be6b3eb0d336c333e97d925b0e3a0ff6" + ] + ] + ], + "versions": [ + "versions.yml:md5,15111ae1ae8b8b570a2efddd7c747bd0", + "versions.yml:md5,1bd6bbec156534880e04e0320dbce063", + "versions.yml:md5,5de8983775d3ef64cdbec6f382852619", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b94aaba1559ac9deaf7339181c398405", + "versions.yml:md5,cc143ba1b806a335a9963a434c887eba", + "versions.yml:md5,d13508b80e270ac6f1543725b431a682", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T15:47:29.016078996" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_hybrid_host_rm.nf.test b/workflows/mag/tests/test_hybrid_host_rm.nf.test new file mode 100644 index 00000000..d642a8c4 --- /dev/null +++ b/workflows/mag/tests/test_hybrid_host_rm.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_hybrid_host_rm" + profile "test_hybrid_host_rm" + + test("Parameters: long reads & host removal included") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out, + ).match()} + ) + } + } +} diff --git a/workflows/mag/tests/test_hybrid_host_rm.nf.test.snap b/workflows/mag/tests/test_hybrid_host_rm.nf.test.snap new file mode 100644 index 00000000..b8ad3a86 --- /dev/null +++ b/workflows/mag/tests/test_hybrid_host_rm.nf.test.snap @@ -0,0 +1,123 @@ +{ + "Parameters: long reads & host removal included": { + "content": [ + { + "0": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false + }, + [ + "minigut_run0_host_removed.unmapped_1.fastq.gz:md5,48ab5cdbf8567cf6023bd304fcf896a9", + "minigut_run0_host_removed.unmapped_2.fastq.gz:md5,b4246225aa4a15496991ac7c6b58563f" + ] + ] + ], + "1": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdesHybrid" + }, + "SPAdesHybrid-minigut_scaffolds.fasta:md5,d3c5e27f011a08daea597f9d2650436d" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,1bd6bbec156534880e04e0320dbce063", + "versions.yml:md5,59050473c9f749b269ad7079fd4693df", + "versions.yml:md5,5de8983775d3ef64cdbec6f382852619", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b94aaba1559ac9deaf7339181c398405", + "versions.yml:md5,cc143ba1b806a335a9963a434c887eba", + "versions.yml:md5,d13508b80e270ac6f1543725b431a682", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ], + "assemblies": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false, + "assembler": "SPAdesHybrid" + }, + "SPAdesHybrid-minigut_scaffolds.fasta:md5,d3c5e27f011a08daea597f9d2650436d" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "minigut", + "group": "0", + "single_end": false + }, + [ + "minigut_run0_host_removed.unmapped_1.fastq.gz:md5,48ab5cdbf8567cf6023bd304fcf896a9", + "minigut_run0_host_removed.unmapped_2.fastq.gz:md5,b4246225aa4a15496991ac7c6b58563f" + ] + ] + ], + "versions": [ + "versions.yml:md5,1bd6bbec156534880e04e0320dbce063", + "versions.yml:md5,59050473c9f749b269ad7079fd4693df", + "versions.yml:md5,5de8983775d3ef64cdbec6f382852619", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,b94aaba1559ac9deaf7339181c398405", + "versions.yml:md5,cc143ba1b806a335a9963a434c887eba", + "versions.yml:md5,d13508b80e270ac6f1543725b431a682", + "versions.yml:md5,d654471556992ae3c82a7fa792c90dc0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-08T15:28:58.822332791" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_nothing.nf.test b/workflows/mag/tests/test_nothing.nf.test new file mode 100644 index 00000000..fd50c27f --- /dev/null +++ b/workflows/mag/tests/test_nothing.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_nothing" + profile "test_nothing" + + test("Parameters: test_nothing") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test_nothing.nf.test.snap b/workflows/mag/tests/test_nothing.nf.test.snap new file mode 100644 index 00000000..cf1874f9 --- /dev/null +++ b/workflows/mag/tests/test_nothing.nf.test.snap @@ -0,0 +1,113 @@ +{ + "Parameters: test_nothing": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,b7eaf06531000c4d32a48d050c2df34f", + "test_minigut_2.merged.fastq.gz:md5,a1629ec2f2931892a2a0c43f0f677056" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400" + ], + "assemblies": [ + + ], + "bin_summary": [ + + ], + "genomad": [ + + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,b7eaf06531000c4d32a48d050c2df34f", + "test_minigut_2.merged.fastq.gz:md5,a1629ec2f2931892a2a0c43f0f677056" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400" + ] + } + ], + "timestamp": "2024-02-05T23:35:18.598081054" + } +} \ No newline at end of file diff --git a/workflows/mag/tests/test_virus_identification.nf.test b/workflows/mag/tests/test_virus_identification.nf.test new file mode 100644 index 00000000..bfc1c054 --- /dev/null +++ b/workflows/mag/tests/test_virus_identification.nf.test @@ -0,0 +1,22 @@ +nextflow_workflow { + + name "Test workflow: MAG" + script "../main.nf" + workflow "MAG" + tag "workflows" + tag "mag" + tag "mag_test_virus_identification" + profile "test_virus_identification" + + test("Parameters: run_virus_identification = true") { + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + workflow.out + ).match() } + ) + } + } +} diff --git a/workflows/mag/tests/test_virus_identification.nf.test.snap b/workflows/mag/tests/test_virus_identification.nf.test.snap new file mode 100644 index 00000000..1f1d2eee --- /dev/null +++ b/workflows/mag/tests/test_virus_identification.nf.test.snap @@ -0,0 +1,151 @@ +{ + "Parameters: run_virus_identification = true": { + "content": [ + { + "0": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,b7eaf06531000c4d32a48d050c2df34f", + "test_minigut_2.merged.fastq.gz:md5,a1629ec2f2931892a2a0c43f0f677056" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "1": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs.fa:md5,8419d4d6c72ac1006324a9fee1394646" + ] + ], + "2": [ + + ], + "3": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs_virus_summary.tsv:md5,95db91fff85f23a19e64ef7ea0f8d371" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + + ], + "7": [ + + ], + "8": [ + + ], + "9": [ + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ], + "assemblies": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs.fa:md5,8419d4d6c72ac1006324a9fee1394646" + ] + ], + "bin_summary": [ + + ], + "genomad": [ + [ + { + "id": "group-0", + "group": "0", + "single_end": false, + "assembler": "MEGAHIT" + }, + "MEGAHIT-group-0.contigs_virus_summary.tsv:md5,95db91fff85f23a19e64ef7ea0f8d371" + ] + ], + "metaeuk": [ + + ], + "prodigal": [ + + ], + "prokka": [ + + ], + "refined_bins": [ + + ], + "refined_unbins": [ + + ], + "short_reads": [ + [ + { + "id": "test_minigut", + "group": "0", + "single_end": false + }, + [ + "test_minigut_1.merged.fastq.gz:md5,b7eaf06531000c4d32a48d050c2df34f", + "test_minigut_2.merged.fastq.gz:md5,a1629ec2f2931892a2a0c43f0f677056" + ] + ], + [ + { + "id": "test_minigut_sample2", + "group": "0", + "single_end": false + }, + [ + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R1.fastq.gz", + "/nf-core/test-datasets/raw/mag/test_data/test_minigut_sample2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,3222fd64337a6c070682b63fc5e0cb3c", + "versions.yml:md5,85a05e91a1084dbca180ff6ff7e67400", + "versions.yml:md5,e2ed4d9a5b5d63ae1a6eef0418d976f0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-09T15:30:48.208307453" + } +}