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"
+ }
+}