diff --git a/.github/include.yaml b/.github/include.yaml new file mode 100644 index 00000000..a3629f4c --- /dev/null +++ b/.github/include.yaml @@ -0,0 +1,10 @@ +".": + - ./.github/workflows/** + - ./nf-test.config + - ./nextflow.config +tests: + - ./assets/* + - ./bin/* + - ./conf/* + - ./main.nf + - ./nextflow_schema.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3afa7887..7df8df1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,10 @@ on: env: NXF_ANSI_LOG: false + NFT_VER: "0.8.4" + NFT_WORKDIR: "~" + NFT_DIFF: "pdiff" + NFT_DIFF_ARGS: "--line-numbers --expand-tabs=2" concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" @@ -115,3 +119,116 @@ jobs: - name: Run pipeline with ${{ matrix.profile }} test profile run: | nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results --binqc_tool checkm --checkm_db databases/checkm + + # Adam and Carson's method for running only necessary nf-tests + changes: + name: Check for changes + runs-on: ubuntu-latest + outputs: + nf_test_files: ${{ steps.list.outputs.components }} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: List nf-test files + id: list + uses: adamrtalbot/detect-nf-test-changes@v0.0.3 + with: + head: ${{ github.sha }} + base: origin/${{ github.base_ref }} + include: .github/include.yaml + + - name: print list of nf-test files + run: | + echo ${{ steps.list.outputs.components }} + + nf-test: + name: ${{ matrix.nf_test_files }} ${{ matrix.profile }} NF-${{ matrix.NXF_VER }} + needs: [changes] + if: needs.changes.outputs.nf_test_files != '[]' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + NXF_VER: + - "latest-everything" + - "23.04" + nf_test_files: ["${{ fromJson(needs.changes.outputs.nf_test_files) }}"] + profile: + - "docker" + + steps: + - name: Check out pipeline code + uses: actions/checkout@v4 + + - name: Install Nextflow + uses: nf-core/setup-nextflow@v2 + with: + version: "${{ matrix.NXF_VER }}" + + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + architecture: "x64" + + - name: Install pdiff to see diff between nf-test snapshots + run: | + python -m pip install --upgrade pip + pip install pdiff + + - 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 nf-test + if: steps.cache-software.outputs.cache-hit != 'true' + run: | + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ + + - name: Run nf-test + run: | + nf-test test --verbose ${{ matrix.nf_test_files }} --profile "+${{ matrix.profile }}" --junitxml=test.xml --tap=test.tap + + - uses: pcolby/tap-summary@v1 + with: + path: >- + test.tap + + - name: Output log on failure + if: failure() + run: | + 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 + + confirm-pass: + runs-on: ubuntu-latest + needs: + - changes + - nf-test + if: always() + steps: + - name: All tests ok + if: ${{ !contains(needs.*.result, 'failure') }} + run: exit 0 + - name: One or more tests failed + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 + + - name: debug-print + if: always() + run: | + echo "toJSON(needs) = ${{ toJSON(needs) }}" + echo "toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" diff --git a/.gitignore b/.gitignore index 5124c9ac..2eef655b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ results/ testing/ testing* *.pyc +.nf-test* diff --git a/bin/combine_tables.py b/bin/combine_tables.py index a2dcf986..1b90b006 100755 --- a/bin/combine_tables.py +++ b/bin/combine_tables.py @@ -188,6 +188,7 @@ def main(args=None): how="outer", ) + results.sort_values("bin", inplace=True) results.to_csv(args.out, sep="\t") diff --git a/bin/get_mag_depths_summary.py b/bin/get_mag_depths_summary.py index 69433371..7bff8189 100755 --- a/bin/get_mag_depths_summary.py +++ b/bin/get_mag_depths_summary.py @@ -37,6 +37,7 @@ def main(args=None): assembly_results = pd.read_csv(assembly_depths_file, index_col="bin", sep="\t") results = results.append(assembly_results, sort=True, verify_integrity=True) + results.sort_values('bin', inplace=True) results.to_csv(args.out, sep="\t") diff --git a/bin/summary_busco.py b/bin/summary_busco.py index 9701783b..c96f4150 100755 --- a/bin/summary_busco.py +++ b/bin/summary_busco.py @@ -219,6 +219,7 @@ def main(args=None): else: df_final = df_specific.append(df_failed) + df_final.sort_values(by="GenomeBin", inplace=True) df_final.to_csv(args.out, sep="\t", index=False) diff --git a/conf/test.config b/conf/test.config index c7a3ff3f..9ede0c1a 100644 --- a/conf/test.config +++ b/conf/test.config @@ -15,15 +15,17 @@ params { config_profile_description = 'Minimal test dataset to check pipeline function' // Limit resources so that this can run on GitHub Actions - max_cpus = 2 - max_memory = '6.GB' + max_cpus = 4 + max_memory = '15.GB' max_time = '6.h' // Input data input = params.pipelines_testdata_base_path + 'mag/samplesheets/samplesheet.multirun.csv' + centrifuge_db = params.pipelines_testdata_base_path + 'mag/test_data/minigut_cf.tar.gz' kraken2_db = params.pipelines_testdata_base_path + 'mag/test_data/minigut_kraken.tgz' skip_krona = false + megahit_fix_cpu_1 = 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" diff --git a/conf/test_nothing.config b/conf/test_nothing.config index e5905a9a..ceaff991 100644 --- a/conf/test_nothing.config +++ b/conf/test_nothing.config @@ -16,8 +16,8 @@ params { config_profile_description = 'Minimal test dataset to check pipeline function' // Limit resources so that this can run on GitHub Actions - max_cpus = 2 - max_memory = '6.GB' + max_cpus = 4 + max_memory = '12.GB' max_time = '6.h' // Input data diff --git a/nf-core-hyak.config b/nf-core-hyak.config new file mode 100755 index 00000000..81c9a547 --- /dev/null +++ b/nf-core-hyak.config @@ -0,0 +1,34 @@ +params { + config_profile_description = 'UW Hyak Pedslabs cluster profile provided by nf-core/configs.' + config_profile_contact = 'Carson J. Miller (@CarsonJM)' + config_profile_url = 'https://www.peds.uw.edu/' + max_memory = 742.GB + max_cpus = 40 + max_time = 72.h + } + +process { + executor = 'slurm' + clusterOptions = { task.attempt < 4 ? ( task.attempt < 3 ? "-A stf" : "-A stf" ) : "-A pedslabs" } + + withName:'.*' { + queue = { task.attempt < 4 ? ( task.attempt < 3 ? 'ckpt' : 'cpu-g2-mem2x' ) : 'compute-hugemem' } + errorStrategy = { task.attempt < 5 ? 'retry' : 'ignore' } + maxRetries = 5 + maxErrors = '-1' + } +} + +executor { + queuesize = 50 + submitRateLimit = '1 sec' +} + +singularity { + enabled = true + autoMounts = true +} + +debug { + cleanup = false +} diff --git a/nf-test.config b/nf-test.config new file mode 100644 index 00000000..6f5e2c47 --- /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 pipeline tests + configFile "tests/nextflow.config" +} diff --git a/tests/nextflow.config b/tests/nextflow.config new file mode 100644 index 00000000..478cf7d1 --- /dev/null +++ b/tests/nextflow.config @@ -0,0 +1,64 @@ +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 = 4 + max_memory = '12.GB' + time = '2.h' +} + +// Impose sensible resource limits for testing +process { + withName: BOWTIE2_PHIX_REMOVAL_ALIGN { + cpus = 1 + memory = 12.GB + time = 2.h + } + + withName: CENTRIFUGE_CENTRIFUGE { + cpus = 1 + memory = 12.GB + time = 2.h + } + + withName: BOWTIE2_ASSEMBLY_ALIGN { + cpus = 1 + memory = 12.GB + time = 2.h + } + + withName: METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS { + cpus = 1 + memory = 12.GB + time = 2.h + } + + withName: QUAST_BINS { + cpus = 1 + memory = 12.GB + time = 2.h + } + + withName: METABAT2_METABAT2 { + cpus = 1 + memory = 12.GB + time = 2.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 = true } +dag { enabled = false } + +// Load modules test_data.config +includeConfig 'https://github.com/nf-core/modules/raw/master/tests/config/test_data.config' diff --git a/tests/test.nf.test b/tests/test.nf.test new file mode 100644 index 00000000..44d0bae9 --- /dev/null +++ b/tests/test.nf.test @@ -0,0 +1,56 @@ +nextflow_pipeline { + + name "Test pipeline" + script "../main.nf" + profile "test" + + test("Profile: test") { + + when { + params { + outdir = "$outputDir" + } + } + + + + then { + def output_files = [] + new File("$outputDir").eachFileRecurse { file -> output_files << file } + + assertAll( + { assert workflow.success }, + { assert snapshot( + output_files.findAll { + // fastp *.json + // bowtie2 *.log + it.toString() ==~ /.*QC_shortreads.*(json|log)/ || + // Centrifuge *kreport.txt, *report.txt, *results.txt + // kraken2 *report.txt + it.toString() ==~ /.*Taxonomy.*txt/ || + // MEGAHIT *.contigs.fa.gz + // metaSPAdes *contigs.fasta.gz, *scaffolds.fasta.gz + it.toString() ==~ /.*Assembly.*(fa\.gz|fasta\.gz)/ || + // cannot add QUAST outputs because no sample-specific prefix for report files + // bowtie2 *.log + it.toString() ==~ /.*Assembly.*QC.*bowtie2\.log/ || + // Prodigal *.gff.gz, *.faa.gz, *.fna.gz, *all.txt.gz + // Prokka *.gff, *.err, *.faa, *.ffn, *.fna, *.fsa, *.gbk, *.tbl, *.tsv, *.txt + it.toString() ==~ /.*Annotation.*(\.gz|err|faa|ffn|fna|fsa|gff|tbl|tsv|txt)/ || + // MaxBin2 *.fa.gz + // MetaBAT2 *.fa.gz + it.toString() ==~ /.*GenomeBinning.*fa\.gz/ || + // *depth.txt.gz + it.toString() ==~ /.*GenomeBinning.*depths.*txt\.gz/ || + // bin_depths_summary.tsv, busco_summary.tsv, bin_summary.tsv + it.toString() ==~ /.*GenomeBinning.*busco_summary\.tsv/ + // QUAST files have dates + } + ).match() + }, + { assert new File("${outputDir}/GenomeBinning/depths/bins/bin_depths_summary.tsv").exists() }, + { assert new File("${outputDir}/GenomeBinning/bin_summary.tsv").exists() }, + ) + } + } +} diff --git a/tests/test.nf.test.snap b/tests/test.nf.test.snap new file mode 100644 index 00000000..538189e0 --- /dev/null +++ b/tests/test.nf.test.snap @@ -0,0 +1,276 @@ +{ + "Profile: test": { + "content": [ + [ + "SPAdes-MaxBin2-test_minigut_sample2.001.fa.gz:md5,6cf656f3cefd3cc7b751b707c33342fb", + "SPAdes-MaxBin2-test_minigut.002.fa.gz:md5,d39c16958a0c037e7b7b1d2ccd419a32", + "MEGAHIT-MaxBin2-test_minigut.002.fa.gz:md5,27645926966b807e9ffad8ed16c3d976", + "SPAdes-MaxBin2-test_minigut.001.fa.gz:md5,ddfc2eb6ca8f2a837a05a575af24a4c9", + "MEGAHIT-MaxBin2-test_minigut.001.fa.gz:md5,9c8ee883b97aaeccb796dd75fbe7e437", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.fa.gz:md5,edc0761106f2ab241c9b7937edcf0e43", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.fa.gz:md5,875b49fa8fa5cd5c24b5383717f1fd78", + "MEGAHIT-MaxBin2-test_minigut.noclass.pooled.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MaxBin2-test_minigut.noclass.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MaxBin2-test_minigut.noclass.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.pooled.fa.gz:md5,361dc1b3ae1a1c4548bb4376aad3f7e2", + "SPAdes-MaxBin2-test_minigut.noclass.pooled.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "busco_summary.tsv:md5,ea474123f71e29463e00b4123fb8d06d", + "SPAdes-test_minigut_sample2-depth.txt.gz:md5,cae8059f5a82ef68a987cd9f1e1a54df", + "SPAdes-test_minigut-depth.txt.gz:md5,e0a777e6f79ca4ef7e05a6f4b6dfb525", + "MEGAHIT-test_minigut_sample2-depth.txt.gz:md5,2433c44fb396cc8e9cfbffbd4f6e9ac9", + "MEGAHIT-test_minigut-depth.txt.gz:md5,8cc967273e3f7d8a6d80258d790ec2f2", + "MEGAHIT-MetaBAT2-test_minigut.tooShort.fa.gz:md5,80cee6a312869458696444f874a54412", + "SPAdes-MetaBAT2-test_minigut.tooShort.fa.gz:md5,98b6d8ba42cf3a0537425155883c6cd5", + "SPAdes-MetaBAT2-test_minigut_sample2.tooShort.fa.gz:md5,33ba0b842d8611d8ca3b3a59c99a0f4c", + "MEGAHIT-MetaBAT2-test_minigut.lowDepth.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MetaBAT2-test_minigut_sample2.tooShort.fa.gz:md5,ae27e657de20409403878a885cee5088", + "SPAdes-MetaBAT2-test_minigut_sample2.lowDepth.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MetaBAT2-test_minigut.lowDepth.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MetaBAT2-test_minigut_sample2.lowDepth.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MetaBAT2-test_minigut.2.fa.gz:md5,1aeab1abd23c18779cadac00a1735201", + "SPAdes-MetaBAT2-test_minigut.1.fa.gz:md5,80a2fd83e2e847289ca6d0f897a681e2", + "MEGAHIT-MetaBAT2-test_minigut.1.fa.gz:md5,90f360df42a9b977445eca1db3afc983", + "SPAdes-MetaBAT2-test_minigut.2.fa.gz:md5,2edd15062a0eff2424aabc6696748ab5", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.fa.gz:md5,5eeab7608c9c6db19090dc9e5d9a588c", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.fa.gz:md5,050e05a2ddb5eccc31d2116dd8b455a8", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.fa.gz:md5,841d7a48a793d278fa6125230640571b", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.fa.gz:md5,7db17fa5b89817913177db20545aa923", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.fa.gz:md5,f0817f0772a1d04601474d3ada861aa9", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.fa.gz:md5,645fd3da7d9928def0c37863bbb5941c", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.fa.gz:md5,8d8cf802dcf4cf2b7f7ef60b48e9d17e", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.pooled.fa.gz:md5,ca6484eec7eaf321787a47173532bd6b", + "SPAdes-MetaBAT2-test_minigut.unbinned.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.pooled.fa.gz:md5,36c8d4c273c730fa9210b65305e67224", + "SPAdes-MetaBAT2-test_minigut.unbinned.pooled.fa.gz:md5,047e394c48a2affb663858093f2321c0", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.remaining.fa.gz:md5,d41d8cd98f00b204e9800998ecf8427e", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.pooled.fa.gz:md5,e34046d231df1492056b8a461acf23e7", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.fa.gz:md5,d5c554907d9b3e549651cdbafe37d679", + "test_minigut_run1_phix_removed.bowtie2.log:md5,7f8750bca9c172f14c13703bfaa9aaa5", + "test_minigut_sample2_run0_phix_removed.bowtie2.log:md5,fb967944891311058a2c8f2255cfe118", + "test_minigut_run2_phix_removed.bowtie2.log:md5,7f8750bca9c172f14c13703bfaa9aaa5", + "test_minigut_run2_fastp.fastp.json:md5,7fdddd4a85003e38b3155b9c0a5002ae", + "test_minigut_run1_fastp.fastp.json:md5,ab1f5944fc9e1bd8cf51f6515b64abb3", + "test_minigut_sample2_run0_fastp.fastp.json:md5,2bdad74a9cc2b9727f52a83ca87e835c", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.ffn:md5,7d85b061c14f8810f8b9cfba088d43fc", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.fna:md5,050e05a2ddb5eccc31d2116dd8b455a8", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.faa:md5,2c1458a2a2563dd31f63ab457a1a746a", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.err:md5,208ed5b8e0773a1119dd88b649cd36f2", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.txt:md5,79677db5a0fb0d4b8f7a90103a894618", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.tsv:md5,16e464715c9731dff4aada01803e5aea", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.tbl:md5,2c84bb648baedaa465b58088aec5dc6b", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.fsa:md5,17768f15abd14f593c2749e68c09fb07", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.1.gff:md5,234b0fef691681ba8657ac0836d0d4b2", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.err:md5,26962705c676f650d204c18b4628949d", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.tsv:md5,be414fbd7308433ef4314a308cc322d2", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.tbl:md5,c283f6e90f412846b93084e80585f34b", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.fna:md5,edc0761106f2ab241c9b7937edcf0e43", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.gff:md5,c87208bd24ead2bc9eba43bcc1d9c131", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.txt:md5,9b35686601869ab8f5d399a75df82b87", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.fsa:md5,963052ff92178835ca9795d51b71c591", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.ffn:md5,5874ca25f5b20a6fdaf984ab4c13b690", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.2.faa:md5,9f49714e3cb2642bf41c2ca33f274722", + "SPAdes-MaxBin2-test_minigut.002.fsa:md5,1f5b9d09118a65d033d6d5488c77a423", + "SPAdes-MaxBin2-test_minigut.002.txt:md5,41510799f001ba18cea11a9ea3212b99", + "SPAdes-MaxBin2-test_minigut.002.tsv:md5,5ada1a4b5f2b4fa0eed0af06c2a7e9ee", + "SPAdes-MaxBin2-test_minigut.002.fna:md5,c69eb3a9bac20d75b492e2adb61b846e", + "SPAdes-MaxBin2-test_minigut.002.faa:md5,846a091d4f412975bcd66c5ef0ed49d9", + "SPAdes-MaxBin2-test_minigut.002.gff:md5,66d6702dde9a83282fdfa2235415da43", + "SPAdes-MaxBin2-test_minigut.002.tbl:md5,79c0b0d73771ae809c5ab8320be23c13", + "SPAdes-MaxBin2-test_minigut.002.ffn:md5,cfa06978f6c645f6d1bf317422645665", + "SPAdes-MaxBin2-test_minigut.002.err:md5,086a84d75ae6e025ee2a335318740639", + "SPAdes-MetaBAT2-test_minigut.1.ffn:md5,695be962643c21f73cdb187a20778b4b", + "SPAdes-MetaBAT2-test_minigut.1.gff:md5,dc8b584a3fac76a840117d04e09aed96", + "SPAdes-MetaBAT2-test_minigut.1.faa:md5,2879b7a33cca4024e3c518b2fa4bc063", + "SPAdes-MetaBAT2-test_minigut.1.err:md5,418d898f18f2d5e55d355ac3bba76dc4", + "SPAdes-MetaBAT2-test_minigut.1.fna:md5,80a2fd83e2e847289ca6d0f897a681e2", + "SPAdes-MetaBAT2-test_minigut.1.txt:md5,dd64a6fd054a787886cb1f0b72e9f60f", + "SPAdes-MetaBAT2-test_minigut.1.fsa:md5,2bca9c656521f70c19f43079507d7fa0", + "SPAdes-MetaBAT2-test_minigut.1.tbl:md5,c1f5a4e0657c2ccebc42b0d7f53a3755", + "SPAdes-MetaBAT2-test_minigut.1.tsv:md5,43cab99c30996e788ef8425a8a5a2688", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.err:md5,b5c20459962c51eab03362e5054f6132", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.tbl:md5,31b9e669fe3042f78c868adf7939a132", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.tsv:md5,f829c9535ae4b775e1e3d454d280e3b9", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.gff:md5,abb9a2a784ea6ccf0f3094f688a1bd33", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.fna:md5,8d8cf802dcf4cf2b7f7ef60b48e9d17e", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.txt:md5,4869b018fb99a052bc69b384966d37cc", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.ffn:md5,0855dc1cf63d128080235674dd827e22", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.faa:md5,60a98d30c2b0d1f86f5255af181bbc57", + "SPAdes-MetaBAT2-test_minigut.unbinned.2.fsa:md5,61d395c89c68621cb62ae5b6fda9dd75", + "SPAdes-MaxBin2-test_minigut.001.faa:md5,7e773008946a8eeb529cabc153d197b5", + "SPAdes-MaxBin2-test_minigut.001.txt:md5,82962f48c7b540fa4c900ed082404391", + "SPAdes-MaxBin2-test_minigut.001.fsa:md5,24ed94ce9fb2587d87f5ed2ad9cf04de", + "SPAdes-MaxBin2-test_minigut.001.err:md5,e4a6a1260695dcaf7f9c77d36f1c5484", + "SPAdes-MaxBin2-test_minigut.001.fna:md5,61260ff67968048081cf49e873c8c778", + "SPAdes-MaxBin2-test_minigut.001.ffn:md5,62ad70e19a8c2ea7eee89aa83de39805", + "SPAdes-MaxBin2-test_minigut.001.tsv:md5,3dd7a1e1ab654a161e6e7eaf78645695", + "SPAdes-MaxBin2-test_minigut.001.gff:md5,7b3341530bfadd90556c67abd16cc222", + "SPAdes-MaxBin2-test_minigut.001.tbl:md5,8edadf2a9fb87f52b69f7b51bb82743c", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.ffn:md5,4dd70eabe8c0e34afaf644b70d7b52ac", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.txt:md5,30bbcc3d0e3cb967be968eb52eb8d4eb", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.faa:md5,3e1c867524ba5db4daae5d59e470a3ad", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.fna:md5,f0817f0772a1d04601474d3ada861aa9", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.tbl:md5,a804c8f70d33fd645d8a3047bc39e799", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.tsv:md5,50ac39fdc58d4810a02ba3034472ca69", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.fsa:md5,32d91312e135d672c1897db3b94c611d", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.err:md5,581881a988afcbe4f84d279867aedda3", + "SPAdes-MetaBAT2-test_minigut_sample2.unbinned.2.gff:md5,d648b22528c2de5be07d280b5cc497eb", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.fna:md5,875b49fa8fa5cd5c24b5383717f1fd78", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.tsv:md5,39dbe3ff37b7d6cd5d00fdf1151fae96", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.ffn:md5,0ac53e00c8ffdb33fe198b0918212346", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.err:md5,97c5e09f898bbfe41a2a1bc80e195a26", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.txt:md5,2c38f7066e794d99fda25ecb0efcab2c", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.fsa:md5,69126c9190edcc89f2a6350add9e3a33", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.gff:md5,5b821b4f5a6d7d453d7553cda7babb27", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.tbl:md5,c23cf1ec1bf158821e69e86eb145f12c", + "SPAdes-MaxBin2-test_minigut_sample2.noclass.1.faa:md5,533017d471f5e50c65cc3102a923f75c", + "SPAdes-MaxBin2-test_minigut_sample2.001.txt:md5,463a09b3db39d535a5316245817ed4f5", + "SPAdes-MaxBin2-test_minigut_sample2.001.faa:md5,e33d7a55af8b070646de60f62d407481", + "SPAdes-MaxBin2-test_minigut_sample2.001.fsa:md5,698cbda6252cc9dce4f9f4ff7022550a", + "SPAdes-MaxBin2-test_minigut_sample2.001.tbl:md5,37d673f1ccc3a57dcbb0ba09d60ed99c", + "SPAdes-MaxBin2-test_minigut_sample2.001.gff:md5,5ae3a120458562b90c2d8a25d02a5cca", + "SPAdes-MaxBin2-test_minigut_sample2.001.err:md5,f786b72ec813add37b3a0288b1546188", + "SPAdes-MaxBin2-test_minigut_sample2.001.tsv:md5,1391177cbb36c47ffd24ff9e7732acd9", + "SPAdes-MaxBin2-test_minigut_sample2.001.ffn:md5,97dc6f19dde7856ffeeec82e41975eba", + "SPAdes-MaxBin2-test_minigut_sample2.001.fna:md5,6f1fce38dc6fc93407ad72c0332f6ea4", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.txt:md5,d880c401161aff3752a0a65f7cda1d76", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.fna:md5,7db17fa5b89817913177db20545aa923", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.ffn:md5,9b99af65a7f982bf0caa48cf311fb4a1", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.tsv:md5,30a2479050774bf9853205f425a753eb", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.faa:md5,58f5d100f8278cd9192002302e48b4d3", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.tbl:md5,640c49ea52dc20984f695fb9feac11dc", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.err:md5,d929c37ceb764f9fc2dc75a53c1261fe", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.gff:md5,6b9e4dbae89849d84cb90683fa203be1", + "SPAdes-MetaBAT2-test_minigut.unbinned.1.fsa:md5,e70fd97939c6ebab696458c3a4e82284", + "SPAdes-MetaBAT2-test_minigut.2.fna:md5,2edd15062a0eff2424aabc6696748ab5", + "SPAdes-MetaBAT2-test_minigut.2.fsa:md5,a86850303207873193860fc58f1ffbc0", + "SPAdes-MetaBAT2-test_minigut.2.gff:md5,c03234fef3b706f10414738e07717eab", + "SPAdes-MetaBAT2-test_minigut.2.faa:md5,1cc11d484e49ff51111b0e0bf7a2349b", + "SPAdes-MetaBAT2-test_minigut.2.ffn:md5,11b5110cbe5081a136bf256a98096b6c", + "SPAdes-MetaBAT2-test_minigut.2.err:md5,c357f1471801090171849ae77581f993", + "SPAdes-MetaBAT2-test_minigut.2.tbl:md5,5cf8d2cb3c446c80f4926b58964ab231", + "SPAdes-MetaBAT2-test_minigut.2.tsv:md5,69c5f665da89f120f820610f0f91592e", + "SPAdes-MetaBAT2-test_minigut.2.txt:md5,2db6931e97255eeb1ae8751c316782e1", + "MEGAHIT-MetaBAT2-test_minigut.1.gff:md5,e87712db513239b61f4121abb1595caa", + "MEGAHIT-MetaBAT2-test_minigut.1.txt:md5,d3d202bb1e979f5810b306c9eca5c4d3", + "MEGAHIT-MetaBAT2-test_minigut.1.err:md5,64c49c0fa3e86a5f0a4805db76873a62", + "MEGAHIT-MetaBAT2-test_minigut.1.ffn:md5,b15e9e416562188c7e33766765cd6589", + "MEGAHIT-MetaBAT2-test_minigut.1.fna:md5,90f360df42a9b977445eca1db3afc983", + "MEGAHIT-MetaBAT2-test_minigut.1.tbl:md5,f062d18eace5fbb1923ca5fef9ad0175", + "MEGAHIT-MetaBAT2-test_minigut.1.tsv:md5,ed24015a68c04266ef00d7c8b9d63cc2", + "MEGAHIT-MetaBAT2-test_minigut.1.faa:md5,b9bd97482ed409c39f8685a9bc898f01", + "MEGAHIT-MetaBAT2-test_minigut.1.fsa:md5,41f9af305bb648fada0ed8077ca17620", + "MEGAHIT-MaxBin2-test_minigut.002.fna:md5,0c7613ea52fa34edac9d2ed9dbf2d6a5", + "MEGAHIT-MaxBin2-test_minigut.002.ffn:md5,61914f39790355629a17f2c26d969cf5", + "MEGAHIT-MaxBin2-test_minigut.002.tsv:md5,5690bc322e7d0d454552d927a5106b88", + "MEGAHIT-MaxBin2-test_minigut.002.gff:md5,2f97e173c67d03ddf5a02f067a112cca", + "MEGAHIT-MaxBin2-test_minigut.002.fsa:md5,064528e4713d7496fbdc4f63fcf31c9c", + "MEGAHIT-MaxBin2-test_minigut.002.faa:md5,78099bcfdbc895f9a9db06cd15f5edab", + "MEGAHIT-MaxBin2-test_minigut.002.tbl:md5,cf748d9877caac9621989c88164a425a", + "MEGAHIT-MaxBin2-test_minigut.002.err:md5,c0683ff54d7f72d829d32fda94afe39b", + "MEGAHIT-MaxBin2-test_minigut.002.txt:md5,d8a5ded06fa09215016437c90b14fb2f", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.tsv:md5,4a4b1df3d854fc5583cea95804e6efbf", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.ffn:md5,fb48ce3554f621a3d4201c3a8c23e878", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.txt:md5,30bbcc3d0e3cb967be968eb52eb8d4eb", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.fsa:md5,91cea9abbc0fdc275ad2bf9a34273b11", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.gff:md5,5000e09fb766377cbecf3c52e090b445", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.faa:md5,c477cb21cd5809cd1793de5639900f93", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.tbl:md5,e59dd535e34ba318224b7fddc50e6e41", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.err:md5,e0726bb5d4b866929f391d7fa848d7c3", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.1.fna:md5,5eeab7608c9c6db19090dc9e5d9a588c", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.err:md5,cd76ba2196cfb531b19f0259470141e6", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.tbl:md5,fdd304ae6fd459fa09f54cb2ca31e5ba", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.tsv:md5,35dc68fa95bd86f874b535a1ed91ece7", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.fna:md5,d5c554907d9b3e549651cdbafe37d679", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.fsa:md5,105497c9ccaef743fd246354ae57d56f", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.faa:md5,617e2541ac30bc3d43009fbb0b82be4b", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.txt:md5,1c279fd7b982a362402f68e3d5965747", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.ffn:md5,b2acc3e267abffd74b221a047fe0922e", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.2.gff:md5,02bbc64f305ecc93fcf56bf89b27e305", + "MEGAHIT-MaxBin2-test_minigut.001.txt:md5,9614328b5c70f8d371cd38cdca773c04", + "MEGAHIT-MaxBin2-test_minigut.001.ffn:md5,dd77303fa935c9c3424d5ea1dbbd8543", + "MEGAHIT-MaxBin2-test_minigut.001.gff:md5,c34edb50855659e55bb4a45797648558", + "MEGAHIT-MaxBin2-test_minigut.001.fsa:md5,f415709e8e654d5791b842e896e75024", + "MEGAHIT-MaxBin2-test_minigut.001.faa:md5,eaccd450eed58eae731384315670ca58", + "MEGAHIT-MaxBin2-test_minigut.001.err:md5,fa8303b1e26903ec8e52e1bff79dd21b", + "MEGAHIT-MaxBin2-test_minigut.001.fna:md5,6220c672d932ac60c0610ebcbd7e410c", + "MEGAHIT-MaxBin2-test_minigut.001.tbl:md5,27d651583f776e4be78dc3309a1489c4", + "MEGAHIT-MaxBin2-test_minigut.001.tsv:md5,bbba6ed3bfddf172a1985791c7c4be28", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.fna:md5,841d7a48a793d278fa6125230640571b", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.err:md5,dfa8bb02e74ee0560e615a68ab2a7511", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.tsv:md5,d0b4f775b834c0b8a10e9e92046de461", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.gff:md5,cdb3eb921bdb702c208a4c6a9205d3af", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.fsa:md5,a441911e5a5f2122ea1709dbbab2c04d", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.ffn:md5,a39966c556b21b263d50a39624bb1e65", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.faa:md5,6d54558d192c12023a56e29a5545729e", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.tbl:md5,adb6e64476013ab82efd6dbe6791e142", + "MEGAHIT-MetaBAT2-test_minigut_sample2.unbinned.2.txt:md5,53e804866b0120d1cf00dc76a5ca58eb", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.fsa:md5,db12bdc59476dc405f0a7c0c45646b73", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.ffn:md5,70a135cd81f6eaee9cb74406b1c083b4", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.fna:md5,645fd3da7d9928def0c37863bbb5941c", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.gff:md5,046cef819141b49559e209c948128ff8", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.tsv:md5,bf6389be0ee3d0cd109272e393a58304", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.tbl:md5,8e431807e39fbd7ac7b2626ecad39380", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.err:md5,9ba2b976ef27e6d053fcfa7550795a1d", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.txt:md5,fe9d30c1c4dc24c9211903a5cfcf607a", + "MEGAHIT-MetaBAT2-test_minigut.unbinned.1.faa:md5,bd924d3da4d0381b103a12430ca4d449", + "MEGAHIT-MetaBAT2-test_minigut.2.tbl:md5,88b32cb40fbfa8266eff7d8c2d6ab7c2", + "MEGAHIT-MetaBAT2-test_minigut.2.gff:md5,c574ead3dea6518248829e1ec51ca1bf", + "MEGAHIT-MetaBAT2-test_minigut.2.ffn:md5,777fb719fcec732424d50772c0504462", + "MEGAHIT-MetaBAT2-test_minigut.2.fsa:md5,d6275158c4f23b39992e21e16d41930e", + "MEGAHIT-MetaBAT2-test_minigut.2.tsv:md5,8dddfab0e74cf77f0e208ad7cfe25b71", + "MEGAHIT-MetaBAT2-test_minigut.2.err:md5,af29244ca556b67acacb1d2f1f1ef0b7", + "MEGAHIT-MetaBAT2-test_minigut.2.fna:md5,1aeab1abd23c18779cadac00a1735201", + "MEGAHIT-MetaBAT2-test_minigut.2.faa:md5,b3c4338146bcc7fb36a8c94d92922f5e", + "MEGAHIT-MetaBAT2-test_minigut.2.txt:md5,3099869ba6c96cc6e61183f53d0f6e75", + "test_minigut_all.txt.gz:md5,8eef49811be537158db15a7dd7f50b10", + "test_minigut.faa.gz:md5,ddd0941359f95d2f84aabf1e5cf67557", + "test_minigut.fna.gz:md5,623117b4b070eeda4b6e09ece4e32e9c", + "test_minigut.gff.gz:md5,80e8726ecc2d146187cfa2aa4a748d84", + "test_minigut_sample2.gff.gz:md5,8c48d18d6234727f5490e9e23f10f468", + "test_minigut_sample2_all.txt.gz:md5,9f84892e7627f7f7d62945715178d803", + "test_minigut_sample2.fna.gz:md5,d2d62f3570d56f9bce447c07bd67e126", + "test_minigut_sample2.faa.gz:md5,2eab1ab73b091d2927e9f4d837c469bb", + "test_minigut_all.txt.gz:md5,670fd4cb6edbf454ea2b687f8bb262e4", + "test_minigut.faa.gz:md5,ea14477a9bafda3ad0fd61ea2e7ac62c", + "test_minigut.fna.gz:md5,74a15b3394053c45de3e7cd4cc27aafd", + "test_minigut.gff.gz:md5,d90d8730f41d31fdecf7571555b598fe", + "test_minigut_sample2.gff.gz:md5,3ee13f148386668e88c18a4cd6a14ad3", + "test_minigut_sample2_all.txt.gz:md5,b671f61078205c046b5e6ec714cfab3b", + "test_minigut_sample2.fna.gz:md5,aa75a86b9e67dac162e6d47301b22ee3", + "test_minigut_sample2.faa.gz:md5,d48a526149786c4679d21243b77df56d", + "SPAdes-test_minigut_sample2_contigs.fasta.gz:md5,d8c370a9f0f82bdeb55c0323702ebfa2", + "SPAdes-test_minigut_sample2_graph.gfa.gz:md5,2bfc49e7d40256e552ab7f4571afe424", + "SPAdes-test_minigut-test_minigut_sample2.bowtie2.log:md5,d8fe4dc3f2e5bb1cbc412923eed361b2", + "SPAdes-test_minigut.bowtie2.log:md5,53ff89dd4b11e2ad481afab3449d862e", + "SPAdes-test_minigut_sample2-test_minigut.bowtie2.log:md5,8160c10e3148a36b0f9647851c8427fe", + "SPAdes-test_minigut_sample2.bowtie2.log:md5,ab8b1e1085f54768ae564fb09b16fbe3", + "SPAdes-test_minigut_scaffolds.fasta.gz:md5,8bd449b393a7d3937ff74a24ce39cfc1", + "SPAdes-test_minigut_graph.gfa.gz:md5,15869409295ffcd300db3e99e240f252", + "SPAdes-test_minigut_contigs.fasta.gz:md5,7bfdf7cd015954dadde9578d59903e41", + "SPAdes-test_minigut_sample2_scaffolds.fasta.gz:md5,30619f032529592fbe4bd9eab5065640", + "MEGAHIT-test_minigut-test_minigut_sample2.bowtie2.log:md5,b9bb2fb7280f216a707f5fb3cd6b489d", + "MEGAHIT-test_minigut.bowtie2.log:md5,522f905d888274cc886310a1f73dfbc5", + "MEGAHIT-test_minigut_sample2-test_minigut.bowtie2.log:md5,7b0db12a165fdd82f4abcb5b88aa7741", + "MEGAHIT-test_minigut_sample2.bowtie2.log:md5,0785d7bbb739a31b736b87587ac98dc1", + "MEGAHIT-test_minigut_sample2.contigs.fa.gz:md5,2c0b7977b39fb2db31ee9b3adf75f8c6", + "MEGAHIT-test_minigut.contigs.fa.gz:md5,f35393cdbcb64bdc7ae9db78a5601229", + "test_minigut.kraken2_report.txt:md5,3229af9b2fcb8456ee23906f4b4a4b45", + "test_minigut_sample2.kraken2_report.txt:md5,7f1389d42648d2dfb423bc5fd511b730", + "test_minigut.results.txt:md5,36479608b6a844a8697a5f3e8416f296", + "test_minigut.report.txt:md5,0d038ed45d52951652cc40bce5f22e3d", + "test_minigut_kreport.txt:md5,558a299058d8c78b5989a4ac6168ebf7", + "test_minigut_sample2_kreport.txt:md5,c0c06a25e14ddb53ac67b90245d0cb83", + "test_minigut_sample2.results.txt:md5,9afd6683290119cd12e4c3e147c2e5a0", + "test_minigut_sample2.report.txt:md5,0d038ed45d52951652cc40bce5f22e3d" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.1" + }, + "timestamp": "2024-07-23T11:52:04.272864191" + } +} \ No newline at end of file diff --git a/tests/test_nothing.nf.test b/tests/test_nothing.nf.test new file mode 100644 index 00000000..00fe98f7 --- /dev/null +++ b/tests/test_nothing.nf.test @@ -0,0 +1,29 @@ +nextflow_pipeline { + + name "Test pipeline" + script "../main.nf" + profile "test_nothing" + + test("Profile: test_nothing") { + + when { + params { + outdir = "$outputDir" + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + file("$outputDir/multiqc/multiqc_data/").list().sort(), + file("$outputDir/multiqc/multiqc_plots/").list().sort(), + file("$outputDir/QC_shortreads/fastqc/").list().sort(), + path("$outputDir/QC_shortreads/remove_phix/") + ).match() }, + { assert new File("$outputDir/multiqc/multiqc_report.html").exists() }, + { assert new File("$outputDir/pipeline_info/nf_core_pipeline_software_mqc_versions.yml").exists() } + ) + } + } +} diff --git a/tests/test_nothing.nf.test.snap b/tests/test_nothing.nf.test.snap new file mode 100644 index 00000000..afbf5b30 --- /dev/null +++ b/tests/test_nothing.nf.test.snap @@ -0,0 +1,39 @@ +{ + "Profile: test_nothing": { + "content": [ + [ + "multiqc.log", + "multiqc_bowtie2.yaml", + "multiqc_citations.yaml", + "multiqc_data.json", + "multiqc_fastqc.yaml", + "multiqc_fastqc_1.yaml", + "multiqc_general_stats.yaml", + "multiqc_software_versions.yaml", + "multiqc_sources.yaml" + ], + [ + + ], + [ + "test_minigut_run0_raw_1_fastqc.html", + "test_minigut_run0_raw_2_fastqc.html", + "test_minigut_run0_trimmed_1_fastqc.html", + "test_minigut_run0_trimmed_2_fastqc.html", + "test_minigut_sample2_run0_raw_1_fastqc.html", + "test_minigut_sample2_run0_raw_2_fastqc.html", + "test_minigut_sample2_run0_trimmed_1_fastqc.html", + "test_minigut_sample2_run0_trimmed_2_fastqc.html" + ], + [ + "test_minigut_run0_phix_removed.bowtie2.log:md5,4f10d4bc2b3f0be722807bbf16659621", + "test_minigut_sample2_run0_phix_removed.bowtie2.log:md5,f1530d72fd5626bb98c60400b294dc18" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.1" + }, + "timestamp": "2024-05-23T14:59:09.216485918" + } +} diff --git a/workflows/mag.nf b/workflows/mag.nf index f71d4218..36eac88d 100644 --- a/workflows/mag.nf +++ b/workflows/mag.nf @@ -881,7 +881,7 @@ workflow MAG { meta, summary -> ["${meta.id}.tsv", summary] } - QUAST_BINS_SUMMARY ( ch_quast_bin_summary.collect() ) + QUAST_BINS_SUMMARY ( ch_quast_bin_summary.collect(sort:true) ) ch_quast_bins_summary = QUAST_BINS_SUMMARY.out.summary }