diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 88e23a1a..38618636 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -27,6 +27,9 @@ If you're not used to this workflow with git, you can start with some [docs from ## Tests +You can optionally test your changes by running the pipeline locally. Then it is recommended to use the `debug` profile to +receive warnings about process selectors and other debug info. Example: `nextflow run . -profile debug,test,docker --outdir `. + When you create a pull request with changes, [GitHub Actions](https://github.com/features/actions) will run automatic tests. Typically, pull-requests are only fully reviewed when these tests are passing, though of course we can help out before then. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 08cee127..1000a8aa 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,6 +19,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/meth - [ ] If necessary, also make a PR on the nf-core/methylseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). +- [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 699e5287..a9126136 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,74 +14,66 @@ on: env: NXF_ANSI_LOG: false - NFTEST_VER: "0.7.3" + NFTEST_VER: "0.8.2" concurrency: group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" cancel-in-progress: true jobs: - define_nxf_versions: - name: Choose nextflow versions to test against depending on target branch - runs-on: ubuntu-latest + list: + name: List Tests + if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/methylseq') }}" outputs: - matrix: ${{ steps.nxf_versions.outputs.matrix }} + # Expose matched filters as job 'modules' output variable + tests: ${{ steps.list.outputs.tests }} + runs-on: ubuntu-latest steps: - - id: nxf_versions + - uses: actions/checkout@v3 + + - name: Setup Nextflow + uses: nf-core/setup-nextflow@v1 + + - name: Install nf-test + if: steps.cache-software.outputs.cache-hit != 'true' run: | - 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 + wget -qO- https://code.askimed.com/install/nf-test | bash + sudo mv nf-test /usr/local/bin/ + + - name: List nf-test + id: list + run: | + echo "tests=$(nf-test list --silent --format=json)" >> "$GITHUB_OUTPUT" test: - name: Run pipeline with test data - needs: define_nxf_versions + name: ${{ matrix.tags }} (${{ matrix.profile }}-${{ matrix.NXF_VER }}) + # Only run on push if this is the nf-core dev branch (merged PRs) + if: needs.list.outputs.tests != '[]' + needs: [list] runs-on: ubuntu-latest strategy: - fail-fast: false matrix: - NXF_VER: ${{ fromJson(needs.define_nxf_versions.outputs.matrix) }} - test_tags: - - "bismark" - - "bismark_hisat" - - "bwameth" - profile: - - "docker" - + NXF_VER: + - "23.04.0" + - "latest-everything" + profile: ["docker"] # TODO , "singularity", "conda"] + test: ["${{ fromJson(needs.list.outputs.tests) }}"] + exclude: + - test: "tests/subworkflows/local/grohmm/main.nf.test@3508b8c9" + - test: "tests/subworkflows/local/grohmm/main.nf.test@716555be" + - test: "tests/subworkflows/local/grohmm/main.nf.test@306b4b15" steps: - name: Check out pipeline code - uses: actions/checkout@v3 - - - name: Hash Github Workspace - id: hash_workspace - run: | - echo "digest=$(echo methylseq2_${{ github.workspace }} | md5sum | cut -c 1-25)" >> $GITHUB_OUTPUT + uses: actions/checkout@v4 - - name: Cache test data - id: cache-testdata + - name: Cache Nextflow installation + id: cache-software uses: actions/cache@v3 with: - path: test-datasets/ - key: ${{ steps.hash_workspace.outputs.digest }} - - - name: Check out test data - uses: actions/checkout@v3 - with: - repository: nf-core/test-datasets - ref: methylseq - path: test-datasets/ - - - name: Replace remote paths in samplesheets - run: | - for f in ./test-datasets/samplesheet/*csv; do - sed -i 's=https://github.com/nf-core/test-datasets/raw/methylseq/=./test-datasets/=g' $f - sed -i 's=https://raw.githubusercontent.com/nf-core/test-datasets/methylseq/=./test-datasets/=g' $f - echo "========== $f ============" - cat $f - echo "========================================" - done; + path: | + /usr/local/bin/nf-test + /home/runner/.nf-test/nf-test.jar + key: methylseq-${{ runner.os }}-${{ matrix.NXF_VER }} - name: Install Nextflow uses: nf-core/setup-nextflow@v1 @@ -89,22 +81,44 @@ jobs: version: "${{ matrix.NXF_VER }}" - name: Install nf-test + if: steps.cache-software.outputs.cache-hit != 'true' run: | - wget -qO- https://code.askimed.com/install/nf-test | bash -s $NFTEST_VER + wget -qO- https://code.askimed.com/install/nf-test | bash sudo mv nf-test /usr/local/bin/ + - name: Set up Singularity + if: matrix.profile == 'singularity' + uses: eWaterCycle/setup-singularity@v5 + with: + singularity-version: 3.7.1 + + - name: Set up miniconda + if: matrix.profile == 'conda' + uses: conda-incubator/setup-miniconda@v2 + with: + auto-update-conda: true + channels: conda-forge,bioconda,defaults + python-version: ${{ matrix.python-version }} + + - name: Conda clean + if: matrix.profile == 'conda' + run: conda clean -a + - name: Run nf-test run: | - nf-test test --tag ${{ matrix.test_tags }} --profile "test,${{ matrix.profile }}" --junitxml=test.xml + nf-test test \ + --profile="test,${{ matrix.profile }}" \ + ${{ matrix.test }} \ + --junitxml=${{ matrix.test }}-${{ matrix.profile }}.xml + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + if: success() || failure() # run this step even if previous step failed + with: + path: ${{ matrix.test }}-${{ matrix.profile }}.xml - name: Output log on failure if: failure() run: | sudo apt install bat > /dev/null batcat --decorations=always --color=always ${{ github.workspace }}/.nf-test/tests/*/output/pipeline_info/software_versions.yml - - - 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/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index a2f7f450..5430f37a 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -24,7 +24,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 - name: Install Prettier run: npm install -g prettier @prettier/plugin-php diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index b8bdd214..905c58e4 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,9 +14,9 @@ jobs: EditorConfig: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -27,9 +27,9 @@ jobs: Prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 - name: Install Prettier run: npm install -g prettier @@ -40,7 +40,7 @@ jobs: PythonBlack: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check code lints with Black uses: psf/black@stable @@ -71,7 +71,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Nextflow uses: nf-core/setup-nextflow@v1 diff --git a/.github/workflows/release-announcments.yml b/.github/workflows/release-announcements.yml similarity index 100% rename from .github/workflows/release-announcments.yml rename to .github/workflows/release-announcements.yml diff --git a/.gitignore b/.gitignore index 9473434c..4a37b601 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ testing* *.pyc .vscode .nf-test +.nf-test.log test-datasets/ diff --git a/.gitpod.yml b/.gitpod.yml index 25488dcc..acf72695 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,7 +4,9 @@ tasks: command: | pre-commit install --install-hooks nextflow self-update - + - name: unset JAVA_TOOL_OPTIONS + command: | + unset JAVA_TOOL_OPTIONS vscode: extensions: # based on nf-core.nf-core-extensionpack - codezombiech.gitignore # Language support for .gitignore files diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cb2dab0..ecff842f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # nf-core/methylseq +## [v2.6.0](https://github.com/nf-core/methylseq/releases/tag/2.6.0) - 2024-01-05 + +### Bug fixes & refactoring + +- 🛠 Copy methylKit-compatible files to publishDir [#357](https://github.com/nf-core/methylseq/pull/357) +- 🐛 fix `ignore_r1` and `ignore_3prime_r1` variable expansion [#359](https://github.com/nf-core/methylseq/pull/359) + ## [v2.5.0](https://github.com/nf-core/methylseq/releases/tag/2.5.0) - 2023-10-18 ### Pipeline Updates diff --git a/README.md b/README.md index 8705fec1..0b928113 100644 --- a/README.md +++ b/README.md @@ -42,11 +42,8 @@ Choose between workflows by using `--aligner bismark` (default, uses bowtie2 for ## Usage -:::note -If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how -to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) -with `-profile test` before running the workflow on actual data. -::: +> [!NOTE] +> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline) with `-profile test` before running the workflow on actual data. First, prepare a samplesheet with your input data that looks as follows: @@ -68,11 +65,9 @@ Now, you can run the pipeline using: nextflow run nf-core/methylseq --input samplesheet.csv --outdir --genome GRCh37 -profile ``` -:::warning -Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those -provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; -see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). -::: +> [!WARNING] +> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; +> see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). For more details and further functionality, please refer to the [usage documentation](https://nf-co.re/methylseq/usage) and the [parameter documentation](https://nf-co.re/methylseq/parameters). diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 1f6b6f02..c6e99955 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,7 @@ report_comment: > - This report has been generated by the nf-core/methylseq + This report has been generated by the nf-core/methylseq analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-methylseq-methods-description": order: -1000 diff --git a/assets/samplesheet.csv b/assets/samplesheet.csv index fc797c5e..aa6b7542 100644 --- a/assets/samplesheet.csv +++ b/assets/samplesheet.csv @@ -1,3 +1,5 @@ sample,fastq_1,fastq_2,genome -SAMPLE_PAIRED_END,/path/to/fastq/files/AEG588A1_S1_L002_R1_001.fastq.gz,/path/to/fastq/files/AEG588A1_S1_L002_R2_001.fastq.gz,/path/to/fasta/files/genome.fa -SAMPLE_SINGLE_END,/path/to/fastq/files/AEG588A4_S4_L003_R1_001.fastq.gz,,/path/to/fasta/files/genome.fa +SRR389222_sub1,https://github.com/nf-core/test-datasets/raw/methylseq/testdata/SRR389222_sub1.fastq.gz,, +SRR389222_sub2,https://github.com/nf-core/test-datasets/raw/methylseq/testdata/SRR389222_sub2.fastq.gz,, +SRR389222_sub3,https://github.com/nf-core/test-datasets/raw/methylseq/testdata/SRR389222_sub3.fastq.gz,, +Ecoli,https://github.com/nf-core/test-datasets/raw/methylseq/testdata/Ecoli_10K_methylated_R1.fastq.gz,https://github.com/nf-core/test-datasets/raw/methylseq/testdata/Ecoli_10K_methylated_R2.fastq.gz, diff --git a/assets/slackreport.json b/assets/slackreport.json index 3b5f9584..662a34bc 100644 --- a/assets/slackreport.json +++ b/assets/slackreport.json @@ -3,7 +3,7 @@ { "fallback": "Plain-text summary of the attachment.", "color": "<% if (success) { %>good<% } else { %>danger<%} %>", - "author_name": "nf-core/methylseq v${version} - ${runName}", + "author_name": "nf-core/methylseq ${version} - ${runName}", "author_icon": "https://www.nextflow.io/docs/latest/_static/favicon.ico", "text": "<% if (success) { %>Pipeline completed successfully!<% } else { %>Pipeline completed with errors<% } %>", "fields": [ diff --git a/conf/modules.config b/conf/modules.config index ad1d68ce..5c55e852 100755 --- a/conf/modules.config +++ b/conf/modules.config @@ -209,8 +209,8 @@ process { params.comprehensive ? ' --comprehensive --merge_non_CpG' : '', params.meth_cutoff ? " --cutoff ${params.meth_cutoff}" : '', params.nomeseq ? '--CX' : '', - params.ignore_r1 > 0 ? '--ignore ${params.ignore_r1}' : '', - params.ignore_3prime_r1 > 0 ? '--ignore_3prime ${params.ignore_3prime_r1}' : '', + params.ignore_r1 > 0 ? "--ignore ${params.ignore_r1}" : '', + params.ignore_3prime_r1 > 0 ? "--ignore_3prime ${params.ignore_3prime_r1}" : '', meta.single_end ? '' : (params.no_overlap ? ' --no_overlap' : '--include_overlap'), meta.single_end ? '' : (params.ignore_r2 > 0 ? "--ignore_r2 ${params.ignore_r2}" : ""), meta.single_end ? '' : (params.ignore_3prime_r2 > 0 ? "--ignore_3prime_r2 ${params.ignore_3prime_r2}": "") @@ -418,6 +418,11 @@ process { path: { "${params.outdir}/methyldackel" }, mode: params.publish_dir_mode, pattern: "*.bedGraph" + ], + [ + path: { "${params.outdir}/methyldackel" }, + mode: params.publish_dir_mode, + pattern: "*.methylKit" ] ] } @@ -446,7 +451,7 @@ process { } withName: 'MULTIQC' { - ext.args = params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' + ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ path: { "${params.outdir}/multiqc/${params.aligner}" }, mode: params.publish_dir_mode, diff --git a/conf/test.config b/conf/test.config index ca5e25cb..5b23b448 100644 --- a/conf/test.config +++ b/conf/test.config @@ -17,9 +17,11 @@ params { max_time = 6.h // Input data - input = "${params.test_data_base}/samplesheet/samplesheet_test.csv" + input = "${projectDir}/assets/samplesheet.csv" // Genome references fasta = "${params.test_data_base}/reference/genome.fa" fasta_index = "${params.test_data_base}/reference/genome.fa.fai" } + +includeConfig './test_data.config' diff --git a/conf/test_data.config b/conf/test_data.config new file mode 100644 index 00000000..ae5d5abc --- /dev/null +++ b/conf/test_data.config @@ -0,0 +1,39 @@ +params { + // Base directory for test data + test_data_base = "https://raw.githubusercontent.com/nf-core/test-datasets/methylseq" + + max_cpus = 2 + max_memory = 6.GB + max_time = 6.h + + // TODO: Add all test data to test_data.config + test_data { + 'assets' { + test_samplesheet = "${params.test_data_base}/samplesheet/samplesheet_test.csv" + } + 'workflows' { + 'methylseq' { + fasta = "${params.test_data_base}/reference/genome.fa" + fasta_index = "${params.test_data_base}/reference/genome.fa.fai" + } + } + 'sarscov2' { + 'illumina' { + test_1_fastq_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test_1.fastq.gz" + test_2_fastq_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test_2.fastq.gz" + test2_1_fastq_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test2_1.fastq.gz" + test2_2_fastq_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test2_2.fastq.gz" + contigs_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fasta/contigs.fasta" + scaffolds_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fasta/scaffolds.fasta" + test_single_end_bam = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/bam/test.single_end.bam" + test_paired_end_bam = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/bam/test.paired_end.bam" + test_1_fastq_gz_fastqc_zip = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastqc/test_fastqc.zip" + } + 'genome' { + genome_fasta_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/genome/genome.fasta.gz" + genome_fasta = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/genome/genome.fasta" + kraken2_tar_gz = "https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/genomics/sarscov2/genome/db/kraken2.tar.gz" + } + } + } +} diff --git a/docs/usage.md b/docs/usage.md index ce670efe..764c5940 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -77,7 +77,7 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will concatenate the raw reads before performing any downstream analysis. Below is an example for the same sample sequenced across 3 lanes: -```console +```csv title="samplesheet.csv" sample,fastq_1,fastq_2 CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz CONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz @@ -90,7 +90,7 @@ The pipeline will auto-detect whether a sample is single- or paired-end using th A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. -```console +```csv title="samplesheet.csv" sample,fastq_1,fastq_2 CONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz CONTROL_REP2,AEG588A2_S2_L002_R1_001.fastq.gz,AEG588A2_S2_L002_R2_001.fastq.gz diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 01b8653d..e248e4c3 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -4,6 +4,7 @@ import org.yaml.snakeyaml.Yaml import groovy.json.JsonOutput +import nextflow.extension.FilesEx class NfcoreTemplate { @@ -141,12 +142,14 @@ class NfcoreTemplate { try { if (params.plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail + def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") + sendmail_tf.withWriter { w -> w << sendmail_html } [ 'sendmail', '-t' ].execute() << sendmail_html log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" } catch (all) { // Catch failures and try with plaintext def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] - if ( mqc_report.size() <= max_multiqc_email_size.toBytes() ) { + if ( mqc_report != null && mqc_report.size() <= max_multiqc_email_size.toBytes() ) { mail_cmd += [ '-A', mqc_report ] } mail_cmd.execute() << email_html @@ -155,14 +158,16 @@ class NfcoreTemplate { } // Write summary e-mail HTML to a file - def output_d = new File("${params.outdir}/pipeline_info/") - if (!output_d.exists()) { - output_d.mkdirs() - } - def output_hf = new File(output_d, "pipeline_report.html") + def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - def output_tf = new File(output_d, "pipeline_report.txt") + FilesEx.copyTo(output_hf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.html"); + output_hf.delete() + + // Write summary e-mail TXT to a file + def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } + FilesEx.copyTo(output_tf.toPath(), "${params.outdir}/pipeline_info/pipeline_report.txt"); + output_tf.delete() } // @@ -227,15 +232,14 @@ class NfcoreTemplate { // Dump pipeline parameters in a json file // public static void dump_parameters(workflow, params) { - def output_d = new File("${params.outdir}/pipeline_info/") - if (!output_d.exists()) { - output_d.mkdirs() - } - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def output_pf = new File(output_d, "params_${timestamp}.json") + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") def jsonStr = JsonOutput.toJson(params) - output_pf.text = JsonOutput.prettyPrint(jsonStr) + temp_pf.text = JsonOutput.prettyPrint(jsonStr) + + FilesEx.copyTo(temp_pf.toPath(), "${params.outdir}/pipeline_info/params_${timestamp}.json") + temp_pf.delete() } // diff --git a/modules.json b/modules.json index 318b4e71..bf351c59 100644 --- a/modules.json +++ b/modules.json @@ -57,12 +57,12 @@ }, "custom/dumpsoftwareversions": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "37dee863936732fe7e05dc598bf6e183a8e7ef73", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "bd8092b67b5103bdd52e300f75889442275c3117", + "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53", "installed_by": ["modules"] }, "methyldackel/extract": { @@ -77,7 +77,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", + "git_sha": "642a0d8afe373ac45244a7947fb8a6c0a5a312d4", "installed_by": ["modules"] }, "picard/markduplicates": { @@ -129,6 +129,11 @@ "branch": "master", "git_sha": "911696ea0b62df80e900ef244d7867d177971f73", "installed_by": ["modules"] + }, + "untar": { + "branch": "master", + "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a", + "installed_by": ["modules"] } } } diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml new file mode 100644 index 00000000..f0c63f69 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml @@ -0,0 +1,7 @@ +name: custom_dumpsoftwareversions +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.17 diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf index ebc87273..7685b33c 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf @@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { label 'process_single' // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container - conda "bioconda::multiqc=1.14" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' : + 'biocontainers/multiqc:1.17--pyhdfd78af_0' }" input: path versions diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml index c32657de..5f15a5fd 100644 --- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml @@ -1,4 +1,4 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json name: custom_dumpsoftwareversions description: Custom module used to dump software versions within the nf-core pipeline template keywords: @@ -16,7 +16,6 @@ input: type: file description: YML file containing software versions pattern: "*.yml" - output: - yml: type: file @@ -30,7 +29,9 @@ output: type: file description: File containing software versions pattern: "versions.yml" - authors: - "@drpatelh" - "@grst" +maintainers: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test new file mode 100644 index 00000000..b1e1630b --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test @@ -0,0 +1,43 @@ +nextflow_process { + + name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS" + script "../main.nf" + process "CUSTOM_DUMPSOFTWAREVERSIONS" + tag "modules" + tag "modules_nfcore" + tag "custom" + tag "dumpsoftwareversions" + tag "custom/dumpsoftwareversions" + + test("Should run without failures") { + when { + process { + """ + def tool1_version = ''' + TOOL1: + tool1: 0.11.9 + '''.stripIndent() + + def tool2_version = ''' + TOOL2: + tool2: 1.9 + '''.stripIndent() + + input[0] = Channel.of(tool1_version, tool2_version).collectFile() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.versions, + file(process.out.mqc_yml[0]).readLines()[0..10], + file(process.out.yml[0]).readLines()[0..7] + ).match() + } + ) + } + } +} diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap new file mode 100644 index 00000000..29e72446 --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap @@ -0,0 +1,33 @@ +{ + "Should run without failures": { + "content": [ + [ + "versions.yml:md5,3843ac526e762117eedf8825b40683df" + ], + [ + "data: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n\\", + " \\n\\n\\n \\n \\n\\", + " \\ \\n\\n\\n\\n \\n \\", + " \\ \\n \\n\\n\\n\\n\\", + " \\n\\n \\n \\n\\", + " \\ \\n\\n\\n\\n\\n\\n \\n\\", + " \\ \\n \\n\\n\\n\\n\\", + " \\n\\n \\n \\n\\" + ], + [ + "CUSTOM_DUMPSOFTWAREVERSIONS:", + " python: 3.12.0", + " yaml: 6.0.1", + "TOOL1:", + " tool1: 0.11.9", + "TOOL2:", + " tool2: '1.9'", + "Workflow:" + ] + ], + "timestamp": "2024-01-05T00:18:43.461970077" + } +} \ No newline at end of file diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml new file mode 100644 index 00000000..405aa24a --- /dev/null +++ b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml @@ -0,0 +1,2 @@ +custom/dumpsoftwareversions: + - modules/nf-core/custom/dumpsoftwareversions/** diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml new file mode 100644 index 00000000..1787b38a --- /dev/null +++ b/modules/nf-core/fastqc/environment.yml @@ -0,0 +1,7 @@ +name: fastqc +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::fastqc=0.12.1 diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 249f9064..9e19a74c 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -2,10 +2,10 @@ process FASTQC { tag "$meta.id" label 'process_medium' - conda "bioconda::fastqc=0.11.9" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : - 'biocontainers/fastqc:0.11.9--0' }" + 'https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0' : + 'biocontainers/fastqc:0.12.1--hdfd78af_0' }" input: tuple val(meta), path(reads) @@ -37,7 +37,7 @@ process FASTQC { cat <<-END_VERSIONS > versions.yml "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) END_VERSIONS """ @@ -49,7 +49,7 @@ process FASTQC { cat <<-END_VERSIONS > versions.yml "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + fastqc: \$( fastqc --version | sed '/FastQC v/!d; s/.*v//' ) END_VERSIONS """ } diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 4da5bb5a..ee5507e0 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -50,3 +50,8 @@ authors: - "@grst" - "@ewels" - "@FelixKrueger" +maintainers: + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test new file mode 100644 index 00000000..b9e8f926 --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -0,0 +1,109 @@ +nextflow_process { + + name "Test Process FASTQC" + script "../main.nf" + process "FASTQC" + tag "modules" + tag "modules_nfcore" + tag "fastqc" + + test("Single-Read") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [ id: 'test', single_end:true ], + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + // NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it. + // looks like this:
Mon 2 Oct 2023
test.gz
+ // https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039 + { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" }, + { assert path(process.out.html.get(0).get(1)).getText().contains("") }, + { assert snapshot(process.out.versions).match("versions") }, + { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" } + ) + } + } +// TODO +// // +// // Test with paired-end data +// // +// workflow test_fastqc_paired_end { +// input = [ +// [id: 'test', single_end: false], // meta map +// [ +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) +// ] +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with interleaved data +// // +// workflow test_fastqc_interleaved { +// input = [ +// [id: 'test', single_end: false], // meta map +// file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with bam data +// // +// workflow test_fastqc_bam { +// input = [ +// [id: 'test', single_end: false], // meta map +// file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with multiple samples +// // +// workflow test_fastqc_multiple { +// input = [ +// [id: 'test', single_end: false], // meta map +// [ +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true), +// file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) +// ] +// ] + +// FASTQC ( input ) +// } + +// // +// // Test with custom prefix +// // +// workflow test_fastqc_custom_prefix { +// input = [ +// [ id:'mysample', single_end:true ], // meta map +// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) +// ] + +// FASTQC ( input ) +// } +} diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap new file mode 100644 index 00000000..636a32ce --- /dev/null +++ b/modules/nf-core/fastqc/tests/main.nf.test.snap @@ -0,0 +1,10 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,e1cc25ca8af856014824abd842e93978" + ] + ], + "timestamp": "2023-10-09T23:40:54+0000" + } +} \ No newline at end of file diff --git a/modules/nf-core/fastqc/tests/tags.yml b/modules/nf-core/fastqc/tests/tags.yml new file mode 100644 index 00000000..7834294b --- /dev/null +++ b/modules/nf-core/fastqc/tests/tags.yml @@ -0,0 +1,2 @@ +fastqc: + - modules/nf-core/fastqc/** diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml new file mode 100644 index 00000000..bc0bdb5b --- /dev/null +++ b/modules/nf-core/multiqc/environment.yml @@ -0,0 +1,7 @@ +name: multiqc +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::multiqc=1.18 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 1fc387be..70708f33 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_single' - conda "bioconda::multiqc=1.14" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' : - 'biocontainers/multiqc:1.14--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.18--pyhdfd78af_0' : + 'biocontainers/multiqc:1.18--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" @@ -25,12 +25,14 @@ process MULTIQC { def args = task.ext.args ?: '' def config = multiqc_config ? "--config $multiqc_config" : '' def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' + def logo = multiqc_logo ? /--cl-config 'custom_logo: "${multiqc_logo}"'/ : '' """ multiqc \\ --force \\ $args \\ $config \\ $extra_config \\ + $logo \\ . cat <<-END_VERSIONS > versions.yml @@ -41,7 +43,7 @@ process MULTIQC { stub: """ - touch multiqc_data + mkdir multiqc_data touch multiqc_plots touch multiqc_report.html diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index f93b5ee5..45a9bc35 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,5 +1,4 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json -name: MultiQC +name: multiqc description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: - QC @@ -13,7 +12,6 @@ tools: homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ licence: ["GPL-3.0-or-later"] - input: - multiqc_files: type: file @@ -31,7 +29,6 @@ input: type: file description: Optional logo file for MultiQC pattern: "*.{png}" - output: - report: type: file @@ -54,3 +51,8 @@ authors: - "@bunop" - "@drpatelh" - "@jfy133" +maintainers: + - "@abhi18av" + - "@bunop" + - "@drpatelh" + - "@jfy133" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test new file mode 100644 index 00000000..d0438eda --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -0,0 +1,83 @@ +nextflow_process { + + name "Test Process MULTIQC" + script "../main.nf" + process "MULTIQC" + tag "modules" + tag "modules_nfcore" + tag "multiqc" + + test("sarscov2 single-end [fastqc]") { + + when { + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + + } + + test("sarscov2 single-end [fastqc] [config]") { + + when { + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = Channel.of(file("https://github.com/nf-core/tools/raw/dev/nf_core/pipeline-template/assets/multiqc_config.yml", checkIfExists: true)) + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.out.report[0] ==~ ".*/multiqc_report.html" }, + { assert process.out.data[0] ==~ ".*/multiqc_data" }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("sarscov2 single-end [fastqc] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)]) + input[1] = [] + input[2] = [] + input[3] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.report.collect { file(it).getName() } + + process.out.data.collect { file(it).getName() } + + process.out.plots.collect { file(it).getName() } + + process.out.versions ).match() } + ) + } + + } +} diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap new file mode 100644 index 00000000..d087a9df --- /dev/null +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -0,0 +1,21 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,f81e19ab3a8e2b6f2b5d22078117df71" + ] + ], + "timestamp": "2023-12-30T00:26:14.048089591" + }, + "sarscov2 single-end [fastqc] - stub": { + "content": [ + [ + "multiqc_report.html", + "multiqc_data", + "multiqc_plots", + "versions.yml:md5,f81e19ab3a8e2b6f2b5d22078117df71" + ] + ], + "timestamp": "2023-12-30T00:26:52.963964055" + } +} \ No newline at end of file diff --git a/modules/nf-core/multiqc/tests/tags.yml b/modules/nf-core/multiqc/tests/tags.yml new file mode 100644 index 00000000..bea6c0d3 --- /dev/null +++ b/modules/nf-core/multiqc/tests/tags.yml @@ -0,0 +1,2 @@ +multiqc: + - modules/nf-core/multiqc/** diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml new file mode 100644 index 00000000..2d52ce64 --- /dev/null +++ b/modules/nf-core/untar/environment.yml @@ -0,0 +1,8 @@ +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - conda-forge::sed=4.7 + - conda-forge::grep=3.11 + - conda-forge::tar=1.34 diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf new file mode 100644 index 00000000..8a75bb95 --- /dev/null +++ b/modules/nf-core/untar/main.nf @@ -0,0 +1,63 @@ +process UNTAR { + tag "$archive" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'nf-core/ubuntu:20.04' }" + + input: + tuple val(meta), path(archive) + + output: + tuple val(meta), path("$prefix"), emit: untar + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.baseName.toString().replaceFirst(/\.tar$/, "")) + + """ + mkdir $prefix + + ## Ensures --strip-components only applied when top level of tar contents is a directory + ## If just files or multiple directories, place all in prefix + if [[ \$(tar -taf ${archive} | grep -o -P "^.*?\\/" | uniq | wc -l) -eq 1 ]]; then + tar \\ + -C $prefix --strip-components 1 \\ + -xavf \\ + $args \\ + $archive \\ + $args2 + else + tar \\ + -C $prefix \\ + -xavf \\ + $args \\ + $archive \\ + $args2 + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: ( meta.id ? "${meta.id}" : archive.toString().replaceFirst(/\.[^\.]+(.gz)?$/, "")) + """ + mkdir $prefix + touch ${prefix}/file.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml new file mode 100644 index 00000000..a9a2110f --- /dev/null +++ b/modules/nf-core/untar/meta.yml @@ -0,0 +1,46 @@ +name: untar +description: Extract files. +keywords: + - untar + - uncompress + - extract +tools: + - untar: + description: | + Extract tar.gz files. + documentation: https://www.gnu.org/software/tar/manual/ + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - archive: + type: file + description: File to be untar + pattern: "*.{tar}.{gz}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - untar: + type: directory + description: Directory containing contents of archive + pattern: "*/" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@joseespinosa" + - "@drpatelh" + - "@matthdsm" + - "@jfy133" +maintainers: + - "@joseespinosa" + - "@drpatelh" + - "@matthdsm" + - "@jfy133" diff --git a/nextflow.config b/nextflow.config index 141d7e5b..d95f12b2 100644 --- a/nextflow.config +++ b/nextflow.config @@ -13,7 +13,7 @@ params { input = null // References genome = null - igenomes_base = 's3://ngi-igenomes/igenomes' + igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false // Qualimap options bamqc_regions_file = null @@ -144,6 +144,7 @@ profiles { dumpHashes = true process.beforeScript = 'echo $HOSTNAME' cleanup = false + nextflow.enable.configProcessNamesValidation = true } conda { conda.enabled = true @@ -166,16 +167,16 @@ profiles { } docker { docker.enabled = true - docker.userEmulation = true conda.enabled = false singularity.enabled = false podman.enabled = false shifter.enabled = false charliecloud.enabled = false apptainer.enabled = false + docker.runOptions = '-u $(id -u):$(id -g)' } arm { - docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { singularity.enabled = true @@ -245,7 +246,7 @@ singularity.registry = 'quay.io' // Nextflow plugins plugins { - id 'nf-validation' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-validation@1.1.3' // Validation of pipeline parameters and creation of an input channel from a sample sheet } // Load igenomes.config if required @@ -268,11 +269,8 @@ env { // Capture exit codes from upstream processes when piping process.shell = ['/bin/bash', '-euo', 'pipefail'] -// Set default registry for Docker and Podman independent of -profile -// Will not be used unless Docker / Podman are enabled -// Set to your registry if you have a mirror of containers -docker.registry = 'quay.io' -podman.registry = 'quay.io' +// Disable process selector warnings by default. Use debug profile to enable warnings. +nextflow.enable.configProcessNamesValidation = false def trace_timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') timeline { @@ -299,7 +297,7 @@ manifest { description = """Methylation (Bisulfite-Sequencing) Best Practice analysis pipeline, part of the nf-core community.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '2.5.0' + version = '2.6.0' doi = '10.5281/zenodo.1343417' } diff --git a/nf-test.config b/nf-test.config index cd432d43..89243e51 100644 --- a/nf-test.config +++ b/nf-test.config @@ -1,12 +1,12 @@ config { // location for all nf-tests - testsDir "tests" + testsDir "." // nf-test directory including temporary files for each test - workDir ".nf-test" + workDir "/tmp" // location of library folder that is added automatically to the classpath - libDir "tests/pipeline/lib/" + libDir "tests/lib/" // location of an optional nextflow.config file specific for executing tests configFile "nextflow.config" diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 8fa2cc6e..877541ea 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -2,6 +2,7 @@ // Prepare reference genome files // +include { UNTAR } from '../../modules/nf-core/untar/main' include { BISMARK_GENOMEPREPARATION } from '../../modules/nf-core/bismark/genomepreparation/main' include { BWAMETH_INDEX } from '../../modules/nf-core/bwameth/index/main' include { SAMTOOLS_FAIDX } from '../../modules/nf-core/samtools/faidx/main' @@ -27,7 +28,11 @@ workflow PREPARE_GENOME { * Generate bismark index if not supplied */ if (params.bismark_index) { - ch_bismark_index = Channel.value(file(params.bismark_index)) + if (params.bismark_index.endsWith('.gz')) { + ch_bismark_index = UNTAR ( [ [:], file(params.bismark_index) ] ).untar.map { it[1] } + } else { + ch_bismark_index = Channel.value(file(params.bismark_index)) + } } else { BISMARK_GENOMEPREPARATION(ch_fasta) ch_bismark_index = BISMARK_GENOMEPREPARATION.out.index @@ -42,7 +47,11 @@ workflow PREPARE_GENOME { * Generate bwameth index if not supplied */ if (params.bwa_meth_index) { - ch_bwameth_index = Channel.value(file(params.bwa_meth_index)) + if (params.bwa_meth_index.endsWith('.tar.gz')) { + ch_bismark_index = UNTAR ( [ [:], file(params.bwa_meth_index) ] ).untar.map { it[1] } + } else { + ch_bismark_index = Channel.value(file(params.bwa_meth_index)) + } } else { BWAMETH_INDEX(ch_fasta) ch_bwameth_index = BWAMETH_INDEX.out.index diff --git a/tests/pipeline/lib/UTILS.groovy b/tests/lib/UTILS.groovy similarity index 100% rename from tests/pipeline/lib/UTILS.groovy rename to tests/lib/UTILS.groovy diff --git a/tests/pipeline/bismark/main.nf.test b/tests/pipeline/bismark/main.nf.test index 72af7acd..11483301 100644 --- a/tests/pipeline/bismark/main.nf.test +++ b/tests/pipeline/bismark/main.nf.test @@ -1,9 +1,8 @@ -import com.askimed.nf.test.util.FileUtil; - nextflow_pipeline { name "Test Workflow main.nf" script "main.nf" + tag "bismark" tag "pipeline" @@ -14,48 +13,38 @@ nextflow_pipeline { save_reference = true outdir = "$outputDir" } - } then { - // issue #278: Clean up anything from previous runs - FileUtil.deleteDirectory(new File(".nf-test/indexes/")); - new File(".nf-test/indexes/").mkdirs() - // Copy the ref genome to a stable location for next tests - FileUtil.copyDirectory( - new File("$outputDir/bismark/reference_genome/BismarkIndex/").getAbsolutePath(), - new File(".nf-test/indexes/BismarkIndex/").getAbsolutePath() - ) - assertAll( { assert workflow.success }, - { assert snapshot(path("$outputDir/bismark/deduplicated/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam"), + { assert snapshot(path("$outputDir/bismark/deduplicated/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam"), path("$outputDir/bismark/deduplicated/SRR389222_trimmed_bismark_bt2.deduplicated.bam"), - path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), + path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), path("$outputDir/bismark/methylation_calls/bedGraph/SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz"), - path("$outputDir/bismark/methylation_calls/mbias/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), + path("$outputDir/bismark/methylation_calls/mbias/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), path("$outputDir/bismark/methylation_calls/mbias/SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt"), - path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), + path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_coverage/SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_calls/").list(), - path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), + path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), path("$outputDir/bismark/methylation_calls/splitting_report/SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt"), path("$outputDir/bismark/reference_genome/BismarkIndex/").list(), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end") }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_software_versions") }, - { assert new File("$outputDir/bismark/alignments/logs/Ecoli_10K_1_val_1_bismark_bt2_PE_report.txt").exists() }, + { assert new File("$outputDir/bismark/alignments/logs/Ecoli_1_val_1_bismark_bt2_PE_report.txt").exists() }, { assert new File("$outputDir/bismark/alignments/logs/SRR389222_trimmed_bismark_bt2_SE_report.txt").exists() }, - { assert new File("$outputDir/bismark/reports/Ecoli_10K_1_val_1_bismark_bt2_PE_report.html").exists() }, + { assert new File("$outputDir/bismark/reports/Ecoli_1_val_1_bismark_bt2_PE_report.html").exists() }, { assert new File("$outputDir/bismark/reports/SRR389222_trimmed_bismark_bt2_SE_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark/multiqc_report.html").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_1.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_2.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_1.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_2.fastq.gz_trimming_report.txt").exists() }, { assert new File("$outputDir/trimgalore/logs/SRR389222.fastq.gz_trimming_report.txt").exists() } ) } @@ -65,15 +54,16 @@ nextflow_pipeline { when { params { aligner = "bismark" - // Generated by previous test - bismark_index = ".nf-test/indexes/BismarkIndex/" + bismark_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Bowtie2_Index.tar.gz" cytosine_report = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } @@ -103,7 +93,7 @@ nextflow_pipeline { path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_10K_methylated_R1_bismark_bt2_pe_splitting_report.txt"), path("$outputDir/bismark/methylation_calls/splitting_report/SRR389222.merged_bismark_bt2_splitting_report.txt"), path("$outputDir/bismark/reference_genome/BismarkIndex/").list(), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end_rrbs") }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_rrbs_software_versions") }, { assert new File("$outputDir/bismark/alignments/logs/Ecoli_10K_methylated_R1_bismark_bt2_PE_report.txt").exists() }, @@ -112,8 +102,8 @@ nextflow_pipeline { { assert new File("$outputDir/bismark/reports/SRR389222.merged_bismark_bt2_SE_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark/multiqc_report.html").exists() } ) @@ -126,15 +116,16 @@ nextflow_pipeline { aligner = "bismark" skip_trimming = true rrbs = true - // Generated by previous test - bismark_index = ".nf-test/indexes/BismarkIndex/" + bismark_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Bowtie2_Index.tar.gz" cytosine_report = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } @@ -150,37 +141,37 @@ nextflow_pipeline { then { assertAll( { assert workflow.success }, - { assert snapshot(path("$outputDir/bismark/coverage2cytosine/coverage/Ecoli_10K.NOMe.CpG.cov.gz"), - path("$outputDir/bismark/coverage2cytosine/coverage/Ecoli_10K.NOMe.GpC.cov.gz"), + { assert snapshot(path("$outputDir/bismark/coverage2cytosine/coverage/Ecoli.NOMe.CpG.cov.gz"), + path("$outputDir/bismark/coverage2cytosine/coverage/Ecoli.NOMe.GpC.cov.gz"), path("$outputDir/bismark/coverage2cytosine/coverage/SRR389222.NOMe.CpG.cov.gz"), path("$outputDir/bismark/coverage2cytosine/coverage/SRR389222.NOMe.GpC.cov.gz"), - path("$outputDir/bismark/deduplicated/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam"), + path("$outputDir/bismark/deduplicated/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam"), path("$outputDir/bismark/deduplicated/SRR389222_trimmed_bismark_bt2.deduplicated.bam"), - path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), + path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), path("$outputDir/bismark/methylation_calls/bedGraph/SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz"), - path("$outputDir/bismark/methylation_calls/mbias/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), + path("$outputDir/bismark/methylation_calls/mbias/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), path("$outputDir/bismark/methylation_calls/mbias/SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt"), - path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), + path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_coverage/SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_calls/").list(), - path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), + path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), path("$outputDir/bismark/methylation_calls/splitting_report/SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt"), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end_nomeseq") }, - { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end__nomeseq_software_versions") }, - { assert new File("$outputDir/bismark/alignments/logs/Ecoli_10K_1_val_1_bismark_bt2_PE_report.txt").exists() }, + { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_nomeseq_software_versions") }, + { assert new File("$outputDir/bismark/alignments/logs/Ecoli_1_val_1_bismark_bt2_PE_report.txt").exists() }, { assert new File("$outputDir/bismark/alignments/logs/SRR389222_trimmed_bismark_bt2_SE_report.txt").exists() }, - { assert new File("$outputDir/bismark/reports/Ecoli_10K_1_val_1_bismark_bt2_PE_report.html").exists() }, + { assert new File("$outputDir/bismark/reports/Ecoli_1_val_1_bismark_bt2_PE_report.html").exists() }, { assert new File("$outputDir/bismark/reports/SRR389222_trimmed_bismark_bt2_SE_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark/multiqc_report.html").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_1.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_2.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_1.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_2.fastq.gz_trimming_report.txt").exists() }, { assert new File("$outputDir/trimgalore/logs/SRR389222.fastq.gz_trimming_report.txt").exists() } ) } @@ -199,33 +190,33 @@ nextflow_pipeline { then { assertAll( { assert workflow.success }, - { assert snapshot(path("$outputDir/bismark/deduplicated/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam"), + { assert snapshot(path("$outputDir/bismark/deduplicated/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam"), path("$outputDir/bismark/deduplicated/SRR389222_trimmed_bismark_bt2.deduplicated.bam"), - path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), + path("$outputDir/bismark/methylation_calls/bedGraph/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz"), path("$outputDir/bismark/methylation_calls/bedGraph/SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz"), - path("$outputDir/bismark/methylation_calls/mbias/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), + path("$outputDir/bismark/methylation_calls/mbias/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt"), path("$outputDir/bismark/methylation_calls/mbias/SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt"), - path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), + path("$outputDir/bismark/methylation_calls/methylation_coverage/Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_coverage/SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz"), path("$outputDir/bismark/methylation_calls/methylation_calls/").list(), - path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), + path("$outputDir/bismark/methylation_calls/splitting_report/Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt"), path("$outputDir/bismark/methylation_calls/splitting_report/SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt"), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("clip_r1") }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("clip_r1_software_versions") }, - { assert new File("$outputDir/bismark/alignments/logs/Ecoli_10K_1_val_1_bismark_bt2_PE_report.txt").exists() }, + { assert new File("$outputDir/bismark/alignments/logs/Ecoli_1_val_1_bismark_bt2_PE_report.txt").exists() }, { assert new File("$outputDir/bismark/alignments/logs/SRR389222_trimmed_bismark_bt2_SE_report.txt").exists() }, - { assert new File("$outputDir/bismark/reports/Ecoli_10K_1_val_1_bismark_bt2_PE_report.html").exists() }, + { assert new File("$outputDir/bismark/reports/Ecoli_1_val_1_bismark_bt2_PE_report.html").exists() }, { assert new File("$outputDir/bismark/reports/SRR389222_trimmed_bismark_bt2_SE_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark/multiqc_report.html").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_1.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_2.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_1.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_2.fastq.gz_trimming_report.txt").exists() }, { assert new File("$outputDir/trimgalore/logs/SRR389222.fastq.gz_trimming_report.txt").exists() } ) } diff --git a/tests/pipeline/bismark/main.nf.test.snap b/tests/pipeline/bismark/main.nf.test.snap index 86e57c54..281ff290 100644 --- a/tests/pipeline/bismark/main.nf.test.snap +++ b/tests/pipeline/bismark/main.nf.test.snap @@ -1,95 +1,89 @@ { "single_end_software_versions": { "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0}}" + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2024-01-05T13:33:44.592961646" }, "single_end_nomeseq_software_versions": { "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0}}" + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2024-01-05T13:38:45.868954182" + }, + "single_end_rrbs_software_versions": { + "content": [ + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.6.0}}" + ], + "timestamp": "2024-01-05T13:36:19.58008405" }, "single_end_nomeseq": { "content": [ - "Ecoli_10K.NOMe.CpG.cov.gz:md5,b172ec70bfb6607a5704c68ed27dc8e4", - "Ecoli_10K.NOMe.GpC.cov.gz:md5,c975d1cbd714f79ce900378604b460b5", - "SRR389222.NOMe.CpG.cov.gz:md5,c86cd4e0523987bbb18191aeb2d2ecfd", - "SRR389222.NOMe.GpC.cov.gz:md5,bdd5bd0a9fc8be7cbd22d7fe302e8f17", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,a7464c83416ba057387df5d85b1bc1fe", + "Ecoli.NOMe.CpG.cov.gz:md5,c2c4db8d0a2ec32d572e75b01b2f7d81", + "Ecoli.NOMe.GpC.cov.gz:md5,a2b56291dbe8b344ee03a3ae58de8807", + "SRR389222.NOMe.CpG.cov.gz:md5,9738cb2fd47a65851626fc48d264c1b4", + "SRR389222.NOMe.GpC.cov.gz:md5,d5e6d60c93e76c7476b132b6aa4f8395", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,caa027599dac71c50c24de1857dbf5c7", "SRR389222_trimmed_bismark_bt2.deduplicated.bam:md5,7dba45955ae74159596a6ab41a9dcc87", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,6d631d8999657816e569a7a896f423d5", - "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,4a1bee24f279542dad02b167fabc6997", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,29f3b882a51b63ce77d3d9c69b0e5f85", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,88e599178b08907aab7d248302b7d37e", + "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,fe6b3655db6da21bdd3076947e062f0b", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,29f3b882a51b63ce77d3d9c69b0e5f85", "SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt:md5,bc48b8895f9ce84205a25899cf551624", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,5a358982536d476e962319b6656441da", - "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,b08b8d4dc026106345ca6108e27ed601", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,962fe67f41f5e03d8e321ed381369513", + "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,82a55b84888ad5fe530f97c348738fdb", [ - "CHG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,bca8572c7cd3cd45e148ba722ad4b12d", - "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,b0f6e9284b65d1bf3c813008c08656cc", - "CHG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,7f49ecab1843458c28c3d6fe6a85149e", - "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,ddc200fe98155bf88be3d98073a37238", - "CHH_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,e67409a20a141077edc1dc61972bb278", - "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,aca84c4d6fffb7bf72f4dcd4371dc89b", - "CHH_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,d173808471dbb7c50ef43eb1f5f29faa", - "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,a23e78b714eb1ef1810714d29557c620", - "CpG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,c3d32d42c00d94ea8322487aa0a20787", - "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,0039a8c3f8971a5a99bc58bc1511fa0d", - "CpG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,6dfc57a2892d7cd3bebb7cbc0878196b", - "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,288062a6b71f04688afad75dcd2230f9" + "CHG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,9c2248d95d96d6c315c65f1b8dc3bc39", + "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,9d8098ce1a27c23961e20b6a95f237d1", + "CHG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,5e5aefaa3f63e73f30342ad843eb210b", + "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,e68463946c5bfdf461c3aa81524f8837", + "CHH_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,65f2afc6b1c76209af1acd1d4277a1cc", + "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,6834286d8d07a1b3a4399f71b5b3c3f8", + "CHH_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,978ad87fef01e39283a620253320ee45", + "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,4347c873d1a7c772a448dd01351e5c0f", + "CpG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,54def6bf13e27f38adbbd3dd06297596", + "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,4dae933bcdc8c7d1de2f5e7239c1ae55", + "CpG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,9712eef973883f44dcc0a307af28ba70", + "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,49ec41948052a2a4a952f651df13b344" ], - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,79ebef1c474ff5bdb5f79b955208bb04", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,b759f31785293e8d952f1dd3246f9a7b", "SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt:md5,1c4a4288b3bcf1bbaa6b99e3c4b53ce9", - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "genome_results.txt:md5,1e01c188f34b7d385e8b16156ab2b93e", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "genome_results.txt:md5,886ffc763d05a84ead7f80a1d1db1fa2", "genome_results.txt:md5,b99d4cfd82d21ac09ccb72865f9b3960" ], - "timestamp": "2023-08-28T08:46:48+0000" - }, - "single_end_rrbs_software_versions": { - "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.5.0dev}}" - ], - "timestamp": "2023-08-28T08:46:48+0000" - }, - "single_end__nomeseq_software_versions": { - "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0dev}}" - ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2023-12-22T22:56:01.615992857" }, "clip_r1_software_versions": { "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0dev}}" + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2024-01-05T13:39:54.162519593" }, "single_end": { "content": [ - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,a7464c83416ba057387df5d85b1bc1fe", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,caa027599dac71c50c24de1857dbf5c7", "SRR389222_trimmed_bismark_bt2.deduplicated.bam:md5,7dba45955ae74159596a6ab41a9dcc87", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,66af42e52cdcaf5ceabddb33c9045a4d", - "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,60bf00418d5e2ede8740e3cba6c6ef61", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,29f3b882a51b63ce77d3d9c69b0e5f85", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,58c9ba98d0638c26a30233b006a81172", + "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,3a19363a47169044a01f7195eb83266c", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,29f3b882a51b63ce77d3d9c69b0e5f85", "SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt:md5,bc48b8895f9ce84205a25899cf551624", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,ef5178734cdbba3326e22f8459b4db48", - "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,0bb6dd26908e239f695105230564b59b", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,8e6ba6fe66416d73e7f94b4da9ca77b1", + "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,389dc4fee59e34967d9af49958cb5cbe", [ - "CHG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,bca8572c7cd3cd45e148ba722ad4b12d", - "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,b0f6e9284b65d1bf3c813008c08656cc", - "CHG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,7f49ecab1843458c28c3d6fe6a85149e", - "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,ddc200fe98155bf88be3d98073a37238", - "CHH_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,e67409a20a141077edc1dc61972bb278", - "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,aca84c4d6fffb7bf72f4dcd4371dc89b", - "CHH_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,d173808471dbb7c50ef43eb1f5f29faa", - "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,a23e78b714eb1ef1810714d29557c620", - "CpG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,c3d32d42c00d94ea8322487aa0a20787", - "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,0039a8c3f8971a5a99bc58bc1511fa0d", - "CpG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,6dfc57a2892d7cd3bebb7cbc0878196b", - "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,288062a6b71f04688afad75dcd2230f9" + "CHG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,9c2248d95d96d6c315c65f1b8dc3bc39", + "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,9d8098ce1a27c23961e20b6a95f237d1", + "CHG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,5e5aefaa3f63e73f30342ad843eb210b", + "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,e68463946c5bfdf461c3aa81524f8837", + "CHH_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,65f2afc6b1c76209af1acd1d4277a1cc", + "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,6834286d8d07a1b3a4399f71b5b3c3f8", + "CHH_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,978ad87fef01e39283a620253320ee45", + "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,4347c873d1a7c772a448dd01351e5c0f", + "CpG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,54def6bf13e27f38adbbd3dd06297596", + "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,4dae933bcdc8c7d1de2f5e7239c1ae55", + "CpG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,9712eef973883f44dcc0a307af28ba70", + "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,49ec41948052a2a4a952f651df13b344" ], - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,79ebef1c474ff5bdb5f79b955208bb04", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,b759f31785293e8d952f1dd3246f9a7b", "SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt:md5,1c4a4288b3bcf1bbaa6b99e3c4b53ce9", [ [ @@ -114,34 +108,34 @@ ], "genome.fa:md5,923a0a268ad29fee3c3437d00f9970de" ], - "genome_results.txt:md5,1e01c188f34b7d385e8b16156ab2b93e", + "genome_results.txt:md5,886ffc763d05a84ead7f80a1d1db1fa2", "genome_results.txt:md5,b99d4cfd82d21ac09ccb72865f9b3960" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2023-12-22T22:42:59.548979384" }, "single_end_rrbs": { "content": [ "Ecoli_10K_methylated_R1_bismark_bt2_pe.bam:md5,1497e3a06ee045cb82f834ddb4bcfe88", "SRR389222.merged_bismark_bt2.bam:md5,c3e94ff13a934e0c78ebb6d40f7c8230", - "Ecoli_10K_methylated_R1_bismark_bt2_pe.bedGraph.gz:md5,66af42e52cdcaf5ceabddb33c9045a4d", - "SRR389222.merged_bismark_bt2.bedGraph.gz:md5,5d87f42769268bceb35b3341aa4dc92f", + "Ecoli_10K_methylated_R1_bismark_bt2_pe.bedGraph.gz:md5,58c9ba98d0638c26a30233b006a81172", + "SRR389222.merged_bismark_bt2.bedGraph.gz:md5,c154fe825d9bb867c9efcf55d6cb7e94", "Ecoli_10K_methylated_R1_bismark_bt2_pe.M-bias.txt:md5,29f3b882a51b63ce77d3d9c69b0e5f85", "SRR389222.merged_bismark_bt2.M-bias.txt:md5,514f544046333337f0f74b7386b8afa6", - "Ecoli_10K_methylated_R1_bismark_bt2_pe.bismark.cov.gz:md5,ef5178734cdbba3326e22f8459b4db48", - "SRR389222.merged_bismark_bt2.bismark.cov.gz:md5,b46638fd5f36fa4bce5f4f7b7247d995", + "Ecoli_10K_methylated_R1_bismark_bt2_pe.bismark.cov.gz:md5,8e6ba6fe66416d73e7f94b4da9ca77b1", + "SRR389222.merged_bismark_bt2.bismark.cov.gz:md5,d4a5b741ca46b486bf165ede18baadd0", [ - "CHG_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,bca8572c7cd3cd45e148ba722ad4b12d", - "CHG_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,3fcc7974fd6c5cbacf231835f58d949b", - "CHG_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,7f49ecab1843458c28c3d6fe6a85149e", - "CHG_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,d80c75d6eb49f629c9f5f4c2e63588aa", - "CHH_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,e67409a20a141077edc1dc61972bb278", - "CHH_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,2fb870b779750951bec579ce7562736e", - "CHH_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,d173808471dbb7c50ef43eb1f5f29faa", - "CHH_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,8fea7767cfe903f9671a506feaa7a8a6", - "CpG_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,c3d32d42c00d94ea8322487aa0a20787", - "CpG_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,6537b18418e62410d9ae617480702c54", - "CpG_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,6dfc57a2892d7cd3bebb7cbc0878196b", - "CpG_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,3450512dc718e26edf13ff870cf3b159" + "CHG_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,9c2248d95d96d6c315c65f1b8dc3bc39", + "CHG_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,eeb08e87d7e3dca0acbb2c5ba2be66fb", + "CHG_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,5e5aefaa3f63e73f30342ad843eb210b", + "CHG_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,930f995efd5204b5b04a548afdef1a6e", + "CHH_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,65f2afc6b1c76209af1acd1d4277a1cc", + "CHH_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,a135c7e8a6c1b909a318ef17d47dca94", + "CHH_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,978ad87fef01e39283a620253320ee45", + "CHH_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,2a356ae7fe7774f140f11ed5d935f88c", + "CpG_OB_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,54def6bf13e27f38adbbd3dd06297596", + "CpG_OB_SRR389222.merged_bismark_bt2.txt.gz:md5,b8b2de10044869b6c1097afc21c878a0", + "CpG_OT_Ecoli_10K_methylated_R1_bismark_bt2_pe.txt.gz:md5,9712eef973883f44dcc0a307af28ba70", + "CpG_OT_SRR389222.merged_bismark_bt2.txt.gz:md5,9e517e44422a8bb22de1281ff2cd34d1" ], "Ecoli_10K_methylated_R1_bismark_bt2_pe_splitting_report.txt:md5,fa089f6146df9667862970b6ddc998b0", "SRR389222.merged_bismark_bt2_splitting_report.txt:md5,0ece57f8fc3aa659d2f0b7a09cf48398", @@ -168,41 +162,41 @@ ], "genome.fa:md5,923a0a268ad29fee3c3437d00f9970de" ], - "genome_results.txt:md5,b6ba7868b12971aaad0d4a04e25acd0b", + "genome_results.txt:md5,97dc2b4df61a46ccd2714903186ecaf0", "genome_results.txt:md5,f0d293867800a75becf2583c23729083" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2023-12-22T22:52:42.829793102" }, "clip_r1": { "content": [ - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,388bb71e1e52628823e8b590d37cd665", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bam:md5,b19bc9b84dd8d8000c05b04234689aca", "SRR389222_trimmed_bismark_bt2.deduplicated.bam:md5,1bfe463dabf8727992e3ff6c19d8e7c1", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,4fbac770e7bf6b93e972d7e5bc494aac", - "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,7b7535a28d655edaa94bcfa79957731a", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,83a004a3d957cf95f25933bcd828a8d4", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bedGraph.gz:md5,e8b3933de21d7618cdaab650fe544b17", + "SRR389222_trimmed_bismark_bt2.deduplicated.bedGraph.gz:md5,bddc7c560a902b842b72e20a21274cba", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.M-bias.txt:md5,83a004a3d957cf95f25933bcd828a8d4", "SRR389222_trimmed_bismark_bt2.deduplicated.M-bias.txt:md5,90a6b76d41112c6de391d3a017638d95", - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,9dc43af95c865440be68a4a41634f6c3", - "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,da2acc1e94842feee25e282575b74ce2", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated.bismark.cov.gz:md5,34aa02c199f1496df0704dd239373ebe", + "SRR389222_trimmed_bismark_bt2.deduplicated.bismark.cov.gz:md5,03178f50ae4bf04a7b78d8bbdb8a77af", [ - "CHG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,bd15affb231e6fa69f3daef1993e732f", - "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,8175e992f5cd9c3cd9c2d82b36c3231b", - "CHG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,f5fee467014e215c43569efcc696a6e0", - "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,9918a6c806dcb92a95e3806e8aae30f7", - "CHH_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,0c0f91367e3fd1d14710604af2cfeb1c", - "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,52dcf6c1e4e0cf4aaee2c4e42aad190f", - "CHH_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,8befa0112f299724b60eb6c5de1cdf1f", - "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,c4c864ee34ebb523d3c424b787ee9a3a", - "CpG_OB_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,50f969a02e2a50f140dedb90cdc3718d", - "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,e066703e693e77ef934f64f16013c431", - "CpG_OT_Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,af7b19d0658a58a3a6f2632d9c0276f4", - "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,b3c76b857baf4f2236137466b474cdb8" + "CHG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,3856b07ea51dea59b444a7483ca3db75", + "CHG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,e70e8a2ace2e602a967de256d299fb0d", + "CHG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,c1ba1891636a6b99f4d1495b3ddf1a59", + "CHG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,f8867c4ee03fba6be823b7287cacfea3", + "CHH_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,4e9a0e61d47eefb64876431b3640ee95", + "CHH_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,32728cf447a470681f4e608008d514ae", + "CHH_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,10cd51608191667e027a9867dd84ab3f", + "CHH_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,2ec291cbfc4d64dbcd50603839129de1", + "CpG_OB_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,423aa4faf47d176a6b6cce134e1a9212", + "CpG_OB_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,873612f00ee6ef44e8bc0dcb9f4a35f6", + "CpG_OT_Ecoli_1_val_1_bismark_bt2_pe.deduplicated.txt.gz:md5,1e243313554fce1b06aba217c7123cae", + "CpG_OT_SRR389222_trimmed_bismark_bt2.deduplicated.txt.gz:md5,d86423a21b0d22188e188dc9f576135c" ], - "Ecoli_10K_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,373ac926ba4ceae1c4826f5ea4b3ada6", + "Ecoli_1_val_1_bismark_bt2_pe.deduplicated_splitting_report.txt:md5,db55b5dbf35e78de9c1c6b2f2ed1e45b", "SRR389222_trimmed_bismark_bt2.deduplicated_splitting_report.txt:md5,9a1a5d1e6722dda9e8a1953a01c415d0", - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "genome_results.txt:md5,72bdf73fe97711a2ba75b5c59f3a5637", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "genome_results.txt:md5,2bbc428b0a5b9828df9fc4cd92806e12", "genome_results.txt:md5,5631f1632df00985946641cfc1601633" ], - "timestamp": "2023-08-28T08:46:48+0000" + "timestamp": "2023-12-22T22:57:38.05813974" } -} +} \ No newline at end of file diff --git a/tests/pipeline/bismark_hisat/main.nf.test b/tests/pipeline/bismark_hisat/main.nf.test index e4bd6217..550fb843 100644 --- a/tests/pipeline/bismark_hisat/main.nf.test +++ b/tests/pipeline/bismark_hisat/main.nf.test @@ -1,9 +1,8 @@ -import com.askimed.nf.test.util.FileUtil; - nextflow_pipeline { name "Test Workflow main.nf" script "main.nf" + tag "bismark_hisat" tag "pipeline" @@ -17,44 +16,35 @@ nextflow_pipeline { } then { - // Clean up anything from previous runs - FileUtil.deleteDirectory(new File(".nf-test/indexes/")); - new File(".nf-test/indexes/").mkdirs() - // Copy the ref genome to a stable location for next tests - FileUtil.copyDirectory( - new File("$outputDir/bismark_hisat/reference_genome/BismarkIndex/").getAbsolutePath(), - new File(".nf-test/indexes/BismarkIndex/").getAbsolutePath() - ) - assertAll( { assert workflow.success }, - { assert snapshot(path("$outputDir/bismark_hisat/deduplicated/Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bam"), + { assert snapshot(path("$outputDir/bismark_hisat/deduplicated/Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bam"), path("$outputDir/bismark_hisat/deduplicated/SRR389222_trimmed_bismark_hisat2.deduplicated.bam"), - path("$outputDir/bismark_hisat/methylation_calls/bedGraph/Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bedGraph.gz"), + path("$outputDir/bismark_hisat/methylation_calls/bedGraph/Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bedGraph.gz"), path("$outputDir/bismark_hisat/methylation_calls/bedGraph/SRR389222_trimmed_bismark_hisat2.deduplicated.bedGraph.gz"), - path("$outputDir/bismark_hisat/methylation_calls/mbias/Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.M-bias.txt"), + path("$outputDir/bismark_hisat/methylation_calls/mbias/Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.M-bias.txt"), path("$outputDir/bismark_hisat/methylation_calls/mbias/SRR389222_trimmed_bismark_hisat2.deduplicated.M-bias.txt"), path("$outputDir/bismark_hisat/methylation_calls/methylation_calls/").list(), - path("$outputDir/bismark_hisat/methylation_calls/methylation_coverage/Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bismark.cov.gz"), + path("$outputDir/bismark_hisat/methylation_calls/methylation_coverage/Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bismark.cov.gz"), path("$outputDir/bismark_hisat/methylation_calls/methylation_coverage/SRR389222_trimmed_bismark_hisat2.deduplicated.bismark.cov.gz"), - path("$outputDir/bismark_hisat/methylation_calls/splitting_report/Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated_splitting_report.txt"), + path("$outputDir/bismark_hisat/methylation_calls/splitting_report/Ecoli_1_val_1_bismark_hisat2_pe.deduplicated_splitting_report.txt"), path("$outputDir/bismark_hisat/methylation_calls/splitting_report/SRR389222_trimmed_bismark_hisat2.deduplicated_splitting_report.txt"), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end") }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_software_versions") }, - { assert new File("$outputDir/bismark_hisat/alignments/logs/Ecoli_10K_1_val_1_bismark_hisat2_PE_report.txt").exists() }, + { assert new File("$outputDir/bismark_hisat/alignments/logs/Ecoli_1_val_1_bismark_hisat2_PE_report.txt").exists() }, { assert new File("$outputDir/bismark_hisat/alignments/logs/SRR389222_trimmed_bismark_hisat2_SE_report.txt").exists() }, - { assert new File("$outputDir/bismark_hisat/reports/Ecoli_10K_1_val_1_bismark_hisat2_PE_report.html").exists() }, + { assert new File("$outputDir/bismark_hisat/reports/Ecoli_1_val_1_bismark_hisat2_PE_report.html").exists() }, { assert new File("$outputDir/bismark_hisat/reports/SRR389222_trimmed_bismark_hisat2_SE_report.html").exists() }, { assert new File("$outputDir/bismark_hisat/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark_hisat/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark_hisat/multiqc_report.html").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_1.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_2.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_1.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_2.fastq.gz_trimming_report.txt").exists() }, { assert new File("$outputDir/trimgalore/logs/SRR389222.fastq.gz_trimming_report.txt").exists() } ) } @@ -64,15 +54,16 @@ nextflow_pipeline { when { params { aligner = "bismark_hisat" - // Generated by previous test - bismark_index = ".nf-test/indexes/BismarkIndex/" + bismark_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Hisat2_Index.tar.gz" local_alignment = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } @@ -102,7 +93,7 @@ nextflow_pipeline { path("$outputDir/bismark_hisat/methylation_calls/splitting_report/Ecoli_10K_methylated_R1_bismark_hisat2_pe_splitting_report.txt"), path("$outputDir/bismark_hisat/methylation_calls/splitting_report/SRR389222.merged_bismark_hisat2_splitting_report.txt"), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end_rrbs") }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_rrbs_software_versions") }, { assert new File("$outputDir/bismark_hisat/alignments/logs/Ecoli_10K_methylated_R1_bismark_hisat2_PE_report.txt").exists() }, @@ -111,8 +102,8 @@ nextflow_pipeline { { assert new File("$outputDir/bismark_hisat/reports/SRR389222.merged_bismark_hisat2_SE_report.html").exists() }, { assert new File("$outputDir/bismark_hisat/summary/bismark_summary_report.html").exists() }, { assert new File("$outputDir/bismark_hisat/summary/bismark_summary_report.txt").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bismark_hisat/multiqc_report.html").exists() } ) @@ -125,15 +116,16 @@ nextflow_pipeline { aligner = "bismark_hisat" skip_trimming = true rrbs = true - // Generated by previous test - bismark_index = ".nf-test/indexes/BismarkIndex/" + bismark_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Hisat2_Index.tar.gz" local_alignment = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } diff --git a/tests/pipeline/bismark_hisat/main.nf.test.snap b/tests/pipeline/bismark_hisat/main.nf.test.snap index 5b1816cd..07d914d9 100644 --- a/tests/pipeline/bismark_hisat/main.nf.test.snap +++ b/tests/pipeline/bismark_hisat/main.nf.test.snap @@ -1,78 +1,78 @@ { "single_end_software_versions": { "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0}}" + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T10:04:42+0000" + "timestamp": "2024-01-05T13:41:11.426077518" }, "single_end_rrbs_software_versions": { "content": [ - "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.5.0}}" + "{BISMARK_ALIGN={bismark=0.24.0}, BISMARK_GENOMEPREPARATION={bismark=0.24.0}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T10:04:42+0000" + "timestamp": "2024-01-05T13:43:52.561148623" }, "single_end": { "content": [ - "Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bam:md5,9e9b4adfeeb716e24ecba0bfad39c2e3", + "Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bam:md5,ddfc84eb92f641020362f69e9e28a52d", "SRR389222_trimmed_bismark_hisat2.deduplicated.bam:md5,aa60cf9dcf302c185b12ced6f302a06e", - "Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bedGraph.gz:md5,539b06719ca6dcccaf2b86d8be571ace", - "SRR389222_trimmed_bismark_hisat2.deduplicated.bedGraph.gz:md5,dba86d0f60ad88aaeef1970ceef8376b", - "Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.M-bias.txt:md5,5fd8655f4b9dba2249a52b769fe50faf", + "Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bedGraph.gz:md5,357196071c54757566cdd0bb7ab79fa8", + "SRR389222_trimmed_bismark_hisat2.deduplicated.bedGraph.gz:md5,b20f17236ff64db1114343ff333a6d5b", + "Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.M-bias.txt:md5,5fd8655f4b9dba2249a52b769fe50faf", "SRR389222_trimmed_bismark_hisat2.deduplicated.M-bias.txt:md5,b19356395d4ae1ad83bd3ec38276e580", [ - "CHG_OB_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,c2144bcfb7850b8c10bb8296dd2e09c1", - "CHG_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,b0f6e9284b65d1bf3c813008c08656cc", - "CHG_OT_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,7f49ecab1843458c28c3d6fe6a85149e", - "CHG_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,5813137cea214c7759598ca442f29d47", - "CHH_OB_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,4e8f5b27fbb933c572f269688004be38", - "CHH_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,aca84c4d6fffb7bf72f4dcd4371dc89b", - "CHH_OT_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,d173808471dbb7c50ef43eb1f5f29faa", - "CHH_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,1018c276fa14900e7b1edad0e23fc7ff", - "CpG_OB_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,3f58d13a3b47d639696dbb4478a39488", - "CpG_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,0039a8c3f8971a5a99bc58bc1511fa0d", - "CpG_OT_Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,6dfc57a2892d7cd3bebb7cbc0878196b", - "CpG_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,801c0dba9ca584d9c804a4254d7c4ea6" + "CHG_OB_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,6d2ca2e6548640e3885c94a3ca6beae0", + "CHG_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,9d8098ce1a27c23961e20b6a95f237d1", + "CHG_OT_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,5e5aefaa3f63e73f30342ad843eb210b", + "CHG_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,1180631ef093aade3a5195ce7ddfb3f6", + "CHH_OB_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,abd48ddf1c9e844d8164de5150850d10", + "CHH_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,6834286d8d07a1b3a4399f71b5b3c3f8", + "CHH_OT_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,978ad87fef01e39283a620253320ee45", + "CHH_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,c311a70c0c8b6a93c2055fcbec03a833", + "CpG_OB_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,51f8b079b9fd91e23e495d9e0e289530", + "CpG_OB_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,4dae933bcdc8c7d1de2f5e7239c1ae55", + "CpG_OT_Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.txt.gz:md5,9712eef973883f44dcc0a307af28ba70", + "CpG_OT_SRR389222_trimmed_bismark_hisat2.deduplicated.txt.gz:md5,63e737eef999e2d6348e7ed2a7ce4402" ], - "Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated.bismark.cov.gz:md5,474c1291d09b023e91ed892b5a09ba80", - "SRR389222_trimmed_bismark_hisat2.deduplicated.bismark.cov.gz:md5,e58cba79f419cb411a77b656173d48ea", - "Ecoli_10K_1_val_1_bismark_hisat2_pe.deduplicated_splitting_report.txt:md5,a5dc04c52facdb5221a06ae7f3bca2e4", + "Ecoli_1_val_1_bismark_hisat2_pe.deduplicated.bismark.cov.gz:md5,d8342eca72089408d8e4d7c5ec5e95bf", + "SRR389222_trimmed_bismark_hisat2.deduplicated.bismark.cov.gz:md5,ad7a19cb9908844c47b7b871ff1223c2", + "Ecoli_1_val_1_bismark_hisat2_pe.deduplicated_splitting_report.txt:md5,bc2284d712455231a2dd772098ca8dd9", "SRR389222_trimmed_bismark_hisat2.deduplicated_splitting_report.txt:md5,1f792e1fddb17140947f14008e1f9ffd", - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "genome_results.txt:md5,f272f759bfed7e8a30ec2719e0b518aa", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "genome_results.txt:md5,3703ab8cc04a6f3307ea1ffcfe23479a", "genome_results.txt:md5,7706d3790aee0e9244c490941ecd394f" ], - "timestamp": "2023-08-28T10:04:42+0000" + "timestamp": "2023-12-22T22:14:39.589478621" }, "single_end_rrbs": { "content": [ "Ecoli_10K_methylated_R1_bismark_hisat2_pe.bam:md5,53c34edee0bc7f34c9f4e9a3685dd706", "SRR389222.merged_bismark_hisat2.bam:md5,204123a5f7cd77cba3a90b904443c7eb", - "Ecoli_10K_methylated_R1_bismark_hisat2_pe.bedGraph.gz:md5,539b06719ca6dcccaf2b86d8be571ace", - "SRR389222.merged_bismark_hisat2.bedGraph.gz:md5,2b41ebc929eec351e21a16eec6f8fdd9", + "Ecoli_10K_methylated_R1_bismark_hisat2_pe.bedGraph.gz:md5,357196071c54757566cdd0bb7ab79fa8", + "SRR389222.merged_bismark_hisat2.bedGraph.gz:md5,d509b1e8e4ec03dcde48a127cf976594", "Ecoli_10K_methylated_R1_bismark_hisat2_pe.M-bias.txt:md5,5fd8655f4b9dba2249a52b769fe50faf", "SRR389222.merged_bismark_hisat2.M-bias.txt:md5,ea90b0495446d03e375aad42d598a9f9", [ - "CHG_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,c2144bcfb7850b8c10bb8296dd2e09c1", - "CHG_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,3fcc7974fd6c5cbacf231835f58d949b", - "CHG_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,7f49ecab1843458c28c3d6fe6a85149e", - "CHG_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,e924ba0137252d4b470532cfc36524c2", - "CHH_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,4e8f5b27fbb933c572f269688004be38", - "CHH_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,2fb870b779750951bec579ce7562736e", - "CHH_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,d173808471dbb7c50ef43eb1f5f29faa", - "CHH_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,6e1d89e988f10fa528398b117a554fb1", - "CpG_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,3f58d13a3b47d639696dbb4478a39488", - "CpG_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,6537b18418e62410d9ae617480702c54", - "CpG_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,6dfc57a2892d7cd3bebb7cbc0878196b", - "CpG_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,b07add9bb5ebc7d404e1505deb960654" + "CHG_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,6d2ca2e6548640e3885c94a3ca6beae0", + "CHG_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,eeb08e87d7e3dca0acbb2c5ba2be66fb", + "CHG_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,5e5aefaa3f63e73f30342ad843eb210b", + "CHG_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,7add3136b9f74de6aa83d38dde191060", + "CHH_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,abd48ddf1c9e844d8164de5150850d10", + "CHH_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,a135c7e8a6c1b909a318ef17d47dca94", + "CHH_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,978ad87fef01e39283a620253320ee45", + "CHH_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,8f1910f962b724592546a6187ad0a677", + "CpG_OB_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,51f8b079b9fd91e23e495d9e0e289530", + "CpG_OB_SRR389222.merged_bismark_hisat2.txt.gz:md5,b8b2de10044869b6c1097afc21c878a0", + "CpG_OT_Ecoli_10K_methylated_R1_bismark_hisat2_pe.txt.gz:md5,9712eef973883f44dcc0a307af28ba70", + "CpG_OT_SRR389222.merged_bismark_hisat2.txt.gz:md5,877b026664516cb8851c1d80bf0d8495" ], - "Ecoli_10K_methylated_R1_bismark_hisat2_pe.bismark.cov.gz:md5,474c1291d09b023e91ed892b5a09ba80", - "SRR389222.merged_bismark_hisat2.bismark.cov.gz:md5,626edb040f82e57c1f521bdb72618407", + "Ecoli_10K_methylated_R1_bismark_hisat2_pe.bismark.cov.gz:md5,d8342eca72089408d8e4d7c5ec5e95bf", + "SRR389222.merged_bismark_hisat2.bismark.cov.gz:md5,29943eb00da6057a67e5530580668130", "Ecoli_10K_methylated_R1_bismark_hisat2_pe_splitting_report.txt:md5,76868c2015864a3f7c2b4cd1738e4765", "SRR389222.merged_bismark_hisat2_splitting_report.txt:md5,4a9e54ffb48c9bb1e5ac33aa77b25f5c", - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "genome_results.txt:md5,13a70a3885acd9d55014aa1ad66e2bbb", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "genome_results.txt:md5,58bf4e22f697120806f09b48d9ffdc9e", "genome_results.txt:md5,ae5b10e9a3ffa1ac7a4f4e736228ec49" ], - "timestamp": "2023-08-28T10:04:42+0000" + "timestamp": "2023-12-22T22:37:54.382841284" } -} +} \ No newline at end of file diff --git a/tests/pipeline/bwameth/main.nf.test b/tests/pipeline/bwameth/main.nf.test index 65b25dec..1863371e 100644 --- a/tests/pipeline/bwameth/main.nf.test +++ b/tests/pipeline/bwameth/main.nf.test @@ -1,9 +1,8 @@ -import com.askimed.nf.test.util.FileUtil; - nextflow_pipeline { name "Test Workflow main.nf" script "main.nf" + tag "bwameth" tag "pipeline" @@ -17,42 +16,33 @@ nextflow_pipeline { } then { - // Clean up anything from previous runs - FileUtil.deleteDirectory(new File(".nf-test/indexes/")); - new File(".nf-test/indexes/").mkdirs() - // Copy the ref genome to a stable location for next tests - FileUtil.copyDirectory( - new File("$outputDir/bwameth/reference_genome/bwameth/").getAbsolutePath(), - new File(".nf-test/indexes/bwameth/").getAbsolutePath() - ) - assertAll( { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_software_versions") }, - { assert snapshot(path("$outputDir/bwameth/alignments/samtools_stats/Ecoli_10K.flagstat"), - path("$outputDir/bwameth/alignments/samtools_stats/Ecoli_10K.stats"), + { assert snapshot(path("$outputDir/bwameth/alignments/samtools_stats/Ecoli.flagstat"), + path("$outputDir/bwameth/alignments/samtools_stats/Ecoli.stats"), path("$outputDir/bwameth/alignments/samtools_stats/SRR389222.flagstat"), path("$outputDir/bwameth/alignments/samtools_stats/SRR389222.stats"), - path("$outputDir/bwameth/deduplicated/Ecoli_10K.markdup.sorted.bam"), - path("$outputDir/bwameth/deduplicated/Ecoli_10K.markdup.sorted.bam.bai"), + path("$outputDir/bwameth/deduplicated/Ecoli.markdup.sorted.bam"), + path("$outputDir/bwameth/deduplicated/Ecoli.markdup.sorted.bam.bai"), path("$outputDir/bwameth/deduplicated/SRR389222.markdup.sorted.bam"), path("$outputDir/bwameth/deduplicated/SRR389222.markdup.sorted.bam.bai"), path("$outputDir/bwameth/reference_genome/").list(), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/methyldackel/Ecoli_10K.markdup.sorted_CpG.bedGraph"), + path("$outputDir/methyldackel/Ecoli.markdup.sorted_CpG.bedGraph"), path("$outputDir/methyldackel/SRR389222.markdup.sorted_CpG.bedGraph"), - path("$outputDir/methyldackel/mbias/Ecoli_10K.mbias.txt"), + path("$outputDir/methyldackel/mbias/Ecoli.mbias.txt"), path("$outputDir/methyldackel/mbias/SRR389222.mbias.txt"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end") }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bwameth/multiqc_report.html").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_1.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/trimgalore/logs/Ecoli_10K_2.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_1.fastq.gz_trimming_report.txt").exists() }, + { assert new File("$outputDir/trimgalore/logs/Ecoli_2.fastq.gz_trimming_report.txt").exists() }, { assert new File("$outputDir/trimgalore/logs/SRR389222.fastq.gz_trimming_report.txt").exists() }, - { assert new File("$outputDir/bwameth/deduplicated/picard_metrics/Ecoli_10K.markdup.sorted.MarkDuplicates.metrics.txt").exists() }, + { assert new File("$outputDir/bwameth/deduplicated/picard_metrics/Ecoli.markdup.sorted.MarkDuplicates.metrics.txt").exists() }, { assert new File("$outputDir/bwameth/deduplicated/picard_metrics/SRR389222.markdup.sorted.MarkDuplicates.metrics.txt").exists() } ) } @@ -62,15 +52,16 @@ nextflow_pipeline { when { params { aligner = "bwameth" - // Generated by previous test - bwa_meth_index = ".nf-test/indexes/bwameth/" + bwa_meth_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Bwameth_Index.tar.gz" methyl_kit = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } @@ -90,20 +81,20 @@ nextflow_pipeline { assertAll( { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("single_end_rrbs_software_versions") }, - { assert snapshot(path("$outputDir/bwameth/alignments/samtools_stats/Ecoli_10K.flagstat"), - path("$outputDir/bwameth/alignments/samtools_stats/Ecoli_10K.stats"), + { assert snapshot(path("$outputDir/bwameth/alignments/samtools_stats/Ecoli.flagstat"), + path("$outputDir/bwameth/alignments/samtools_stats/Ecoli.stats"), path("$outputDir/bwameth/alignments/samtools_stats/SRR389222.flagstat"), path("$outputDir/bwameth/alignments/samtools_stats/SRR389222.stats"), path("$outputDir/bwameth/reference_genome/").list(), path("$outputDir/cat/SRR389222.merged.fastq.gz"), - path("$outputDir/methyldackel/Ecoli_10K.sorted_CpG.bedGraph"), + path("$outputDir/methyldackel/Ecoli.sorted_CpG.bedGraph"), path("$outputDir/methyldackel/SRR389222.sorted_CpG.bedGraph"), - path("$outputDir/methyldackel/mbias/Ecoli_10K.mbias.txt"), + path("$outputDir/methyldackel/mbias/Ecoli.mbias.txt"), path("$outputDir/methyldackel/mbias/SRR389222.mbias.txt"), - path("$outputDir/qualimap/Ecoli_10K/genome_results.txt"), + path("$outputDir/qualimap/Ecoli/genome_results.txt"), path("$outputDir/qualimap/SRR389222/genome_results.txt")).match("single_end_rrbs") }, - { assert new File("$outputDir/fastqc/Ecoli_10K_1_fastqc.html").exists() }, - { assert new File("$outputDir/fastqc/Ecoli_10K_2_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_1_fastqc.html").exists() }, + { assert new File("$outputDir/fastqc/Ecoli_2_fastqc.html").exists() }, { assert new File("$outputDir/fastqc/SRR389222_fastqc.html").exists() }, { assert new File("$outputDir/multiqc/bwameth/multiqc_report.html").exists() } ) @@ -116,15 +107,16 @@ nextflow_pipeline { aligner = "bwameth" skip_trimming = true rrbs = true - // Generated by previous test - bwa_meth_index = ".nf-test/indexes/bwameth/" + bwa_meth_index = "https://github.com/nf-core/test-datasets/raw/methylseq/reference/Bwameth_Index.tar.gz" methyl_kit = true outdir = "$outputDir" } } then { - assert workflow.success + assertAll( + { assert workflow.success }, + ) } } diff --git a/tests/pipeline/bwameth/main.nf.test.snap b/tests/pipeline/bwameth/main.nf.test.snap index 50a79bf2..fccd1fc2 100644 --- a/tests/pipeline/bwameth/main.nf.test.snap +++ b/tests/pipeline/bwameth/main.nf.test.snap @@ -1,24 +1,24 @@ { "single_end_software_versions": { "content": [ - "{BWAMETH_ALIGN={bwameth=0.2.2}, BWAMETH_INDEX={bwameth=0.2.2}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.5.0}}" + "{BWAMETH_ALIGN={bwameth=0.2.2}, BWAMETH_INDEX={bwameth=0.2.2}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, TRIMGALORE={cutadapt=3.4, trimgalore=0.6.7}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T00:28:04+0000" + "timestamp": "2024-01-05T13:46:07.95961601" }, "single_end_rrbs_software_versions": { "content": [ - "{BWAMETH_ALIGN={bwameth=0.2.2}, BWAMETH_INDEX={bwameth=0.2.2}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.11.0, yaml=6.0}, FASTQC={fastqc=0.11.9}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.5.0}}" + "{BWAMETH_ALIGN={bwameth=0.2.2}, BWAMETH_INDEX={bwameth=0.2.2}, CAT_FASTQ={cat=8.30}, CUSTOM_DUMPSOFTWAREVERSIONS={python=3.12.0, yaml=6.0.1}, FASTQC={fastqc=0.12.1}, QUALIMAP_BAMQC={qualimap=2.2.2-dev}, Workflow={nf-core/methylseq=2.6.0}}" ], - "timestamp": "2023-08-28T00:28:04+0000" + "timestamp": "2024-01-05T13:47:24.172597347" }, "single_end": { "content": [ - "Ecoli_10K.flagstat:md5,f520e87cc4050799a0dbed72909572ec", - "Ecoli_10K.stats:md5,b744221f284d3b3f5afe0b4b2d1849d7", + "Ecoli.flagstat:md5,f520e87cc4050799a0dbed72909572ec", + "Ecoli.stats:md5,c09155913e0164da9010a0840618cf1f", "SRR389222.flagstat:md5,f5a2dd6c9532bbfb8fe78aad010d8737", "SRR389222.stats:md5,cc81b8c56d038e437a99d9c04b61ce2d", - "Ecoli_10K.markdup.sorted.bam:md5,f582d626f4b78f4e9cc63ca6e20b42cd", - "Ecoli_10K.markdup.sorted.bam.bai:md5,faa46b80545d7eb45dfc659b46f419b0", + "Ecoli.markdup.sorted.bam:md5,0d1c814b476521286a829dc64fc3490a", + "Ecoli.markdup.sorted.bam.bai:md5,befef6ce0a34e2ce7f66c073d9bf4abd", "SRR389222.markdup.sorted.bam:md5,46b5b49280efe5d5c5d1692092e8926f", "SRR389222.markdup.sorted.bam.bai:md5,ad6cfa0344e1ba5b9057ea39f337b3d2", [ @@ -32,20 +32,20 @@ "genome.fa.bwameth.c2t.sa:md5,4a1e905b828396a1909669bc9c573d8d" ] ], - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "Ecoli_10K.markdup.sorted_CpG.bedGraph:md5,2fbe52f528b14b77380eceea8a621687", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "Ecoli.markdup.sorted_CpG.bedGraph:md5,00132adede8128b3a111136713a2a4ff", "SRR389222.markdup.sorted_CpG.bedGraph:md5,febd0f93f46dfccabf69dbba3f518add", - "Ecoli_10K.mbias.txt:md5,3a448a2a6364b2de3129365a271c0534", + "Ecoli.mbias.txt:md5,3a448a2a6364b2de3129365a271c0534", "SRR389222.mbias.txt:md5,fce04d733e066d0b933cedc602e2af81", - "genome_results.txt:md5,0f4749b54f9d923f0d4f20ad404b2062", + "genome_results.txt:md5,d1a1b49086982318f0f94ba7059f71a3", "genome_results.txt:md5,c786cc367645cee286360707e2624dca" ], - "timestamp": "2023-08-28T00:28:04+0000" + "timestamp": "2023-12-20T03:21:55.358959756" }, "single_end_rrbs": { "content": [ - "Ecoli_10K.flagstat:md5,7c3bae0f9c700dde88785a7e94c6ae2c", - "Ecoli_10K.stats:md5,ff675c98abdae3c1bd83b26704d89e82", + "Ecoli.flagstat:md5,7c3bae0f9c700dde88785a7e94c6ae2c", + "Ecoli.stats:md5,46eaf2559610c864bc4d27a08a0645b4", "SRR389222.flagstat:md5,a90f1bdcb30f4d0597ccf69fe0b37b1f", "SRR389222.stats:md5,b99800367e21a0c7c0d87e5fe29d9609", [ @@ -59,14 +59,14 @@ "genome.fa.bwameth.c2t.sa:md5,4a1e905b828396a1909669bc9c573d8d" ] ], - "SRR389222.merged.fastq.gz:md5,ba5df0639e25988059a6f5bf309dbb6e", - "Ecoli_10K.sorted_CpG.bedGraph:md5,513797bcafa8724fc61484e2686af517", + "SRR389222.merged.fastq.gz:md5,47e1d7461d511a970e80085dd6454775", + "Ecoli.sorted_CpG.bedGraph:md5,41f4218573d5e4ff7016ffb42f13a551", "SRR389222.sorted_CpG.bedGraph:md5,a754358e8b95db30602aa29835a896bd", - "Ecoli_10K.mbias.txt:md5,ec13da6deba1ce147624bce065ec5df6", + "Ecoli.mbias.txt:md5,ec13da6deba1ce147624bce065ec5df6", "SRR389222.mbias.txt:md5,fce04d733e066d0b933cedc602e2af81", - "genome_results.txt:md5,e5e1ab8eb875aaf090b3a0d9b1927810", + "genome_results.txt:md5,cd545aa1ee209a1683374bfb5731ab0c", "genome_results.txt:md5,199902f9d8f10f73bcb0a1ce29ceca5d" ], - "timestamp": "2023-08-28T00:28:04+0000" + "timestamp": "2023-12-20T03:38:43.324010795" } -} +} \ No newline at end of file diff --git a/workflows/methylseq.nf b/workflows/methylseq.nf index d50dcae6..a351316e 100644 --- a/workflows/methylseq.nf +++ b/workflows/methylseq.nf @@ -99,7 +99,8 @@ workflow METHYLSEQ { .map { meta, fastq -> def meta_clone = meta.clone() - meta_clone.id = meta_clone.id.split('_')[0..-2].join('_') + parts = meta_clone.id.split('_') + meta_clone.id = parts.length > 1 ? parts[0..-2].join('_') : meta_clone.id [ meta_clone, fastq ] } .groupTuple(by: [0])
Process Name \\", + " \\ Software Version
CUSTOM_DUMPSOFTWAREVERSIONSpython3.12.0
yaml6.0.1
TOOL1tool10.11.9
TOOL2tool21.9
WorkflowNextflow
File typeConventional base calls