diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index ddfac57ba..896c0c7ff 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -54,12 +54,20 @@ runs: conda-solver: libmamba conda-remove-defaults: true - # TODO Skip failing conda tests and document their failures - # https://github.com/nf-core/modules/issues/7017 + # Set up secrets + - name: Set up Nextflow secrets + if: env.SENTIEON_ENCRYPTION_KEY != '' && env.SENTIEON_LICENSE_MESSAGE != '' + shell: bash + run: | + python -m pip install cryptography + nextflow secrets set SENTIEON_AUTH_DATA $(python3 .github/actions/nf-test/license_message.py encrypt --key "$SENTIEON_ENCRYPTION_KEY" --message "$SENTIEON_LICENSE_MESSAGE") + - name: Run nf-test shell: bash env: NFT_WORKDIR: ${{ env.NFT_WORKDIR }} + SENTIEON_LICSRVR_IP: ${{ env.SENTIEON_LICSRVR_IP }} + SENTIEON_AUTH_MECH: "GitHub Actions - token" run: | nf-test test \ --profile=+${{ inputs.profile }} \ diff --git a/.github/actions/nf-test/license_message.py b/.github/actions/nf-test/license_message.py new file mode 100644 index 000000000..9ba2abba3 --- /dev/null +++ b/.github/actions/nf-test/license_message.py @@ -0,0 +1,113 @@ +#!/usr/bin/env python3 + +######################################### +# Author: [DonFreed](https://github.com/DonFreed) +# File: license_message.py +# Source: https://github.com/DonFreed/docker-actions-test/blob/main/.github/scripts/license_message.py +# Source+commit: https://github.com/DonFreed/docker-actions-test/blob/aa1051a9f53b3a1e801953748d062cad74dca9a9/.github/scripts/license_message.py +# Download Date: 2023-07-04, commit: aa1051a +# This source code is licensed under the BSD 2-Clause license +######################################### + +""" +Functions for generating and sending license messages +""" + +# Modified from - https://stackoverflow.com/a/59835994 + +import argparse +import base64 +import calendar +import re +import secrets +import sys + +from cryptography.hazmat.primitives.ciphers.aead import AESGCM +from datetime import datetime as dt + +MESSAGE_TIMEOUT = 60 * 60 * 24 # Messages are valid for 1 day +NONCE_BYTES = 12 + + +class DecryptionTimeout(Exception): + # Decrypting a message that is too old + pass + + +def generate_key(): + key = secrets.token_bytes(32) + return key + + +def handle_generate_key(args): + key = generate_key() + key_b64 = base64.b64encode(key) + print(key_b64.decode("utf-8"), file=args.outfile) + + +def encrypt_message(key, message): + nonce = secrets.token_bytes(NONCE_BYTES) + timestamp = calendar.timegm(dt.now().utctimetuple()) + data = timestamp.to_bytes(10, byteorder="big") + b"__" + message + ciphertext = nonce + AESGCM(key).encrypt(nonce, data, b"") + return ciphertext + + +def handle_encrypt_message(args): + key = base64.b64decode(args.key.encode("utf-8")) + message = args.message.encode("utf-8") + ciphertext = encrypt_message(key, message) + ciphertext_b64 = base64.b64encode(ciphertext) + print(ciphertext_b64.decode("utf-8"), file=args.outfile) + + +def decrypt_message(key, ciphertext, timeout=MESSAGE_TIMEOUT): + nonce, ciphertext = ciphertext[:NONCE_BYTES], ciphertext[NONCE_BYTES:] + message = AESGCM(key).decrypt(nonce, ciphertext, b"") + + msg_timestamp, message = re.split(b"__", message, maxsplit=1) + msg_timestamp = int.from_bytes(msg_timestamp, byteorder="big") + timestamp = calendar.timegm(dt.now().utctimetuple()) + if (timestamp - msg_timestamp) > timeout: + raise DecryptionTimeout("The message has an expired timeout") + return message.decode("utf-8") + + +def handle_decrypt_message(args): + key = base64.b64decode(args.key.encode("utf-8")) + ciphertext = base64.b64decode(args.message.encode("utf-8")) + message = decrypt_message(key, ciphertext, timeout=args.timeout) + print(str(message), file=args.outfile) + + +def parse_args(argv=None): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--outfile", default=sys.stdout, type=argparse.FileType("w"), help="The output file") + + subparsers = parser.add_subparsers(help="Available sub-commands") + + gen_parser = subparsers.add_parser("generate_key", help="Generate a random key string") + gen_parser.set_defaults(func=handle_generate_key) + + encrypt_parser = subparsers.add_parser("encrypt", help="Encrypt a message") + encrypt_parser.add_argument("--key", required=True, help="The encryption key") + encrypt_parser.add_argument("--message", required=True, help="Message to encrypt") + encrypt_parser.set_defaults(func=handle_encrypt_message) + + decrypt_parser = subparsers.add_parser("decrypt", help="Decyrpt a message") + decrypt_parser.add_argument("--key", required=True, help="The encryption key") + decrypt_parser.add_argument("--message", required=True, help="Message to decrypt") + decrypt_parser.add_argument( + "--timeout", + default=MESSAGE_TIMEOUT, + type=int, + help="A message timeout. Decryption will fail for older messages", + ) + decrypt_parser.set_defaults(func=handle_decrypt_message) + + return parser.parse_args(argv) + + +if __name__ == "__main__": + args = parse_args() + args.func(args) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 7721d0009..27db9ad30 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -40,7 +40,7 @@ jobs: { "hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}", "aligner": "${{ matrix.aligner }}", - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/rnaseq/results-${{ steps.revision.outputs.revision }}" + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/rnaseq/results-${{ steps.revision.outputs.revision }}/aligner_${{ matrix.aligner }}/" } profiles: test_full diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index f2d7d1dd7..8b0f88c36 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Set up Python 3.12 + - name: Set up Python 3.13 uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: "3.13" diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 7e8050fb8..d43797d9d 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@4c1e823582f43b179e2cbb49c3eade4e41f992e2 # v10 + uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index e20f29f49..1560da19d 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -1,12 +1,5 @@ name: Run nf-test on: - push: - paths-ignore: - - "docs/**" - - "**/meta.yml" - - "**/*.md" - - "**/*.png" - - "**/*.svg" pull_request: paths-ignore: - "docs/**" @@ -37,7 +30,7 @@ jobs: nf-test-changes: name: nf-test-changes runs-on: # use self-hosted runners - - runs-on=$-nf-test-changes + - runs-on=${{ github.run_id }}-nf-test-changes - runner=4cpu-linux-x64 outputs: shard: ${{ steps.set-shards.outputs.shard }} @@ -71,7 +64,7 @@ jobs: needs: [nf-test-changes] if: ${{ needs.nf-test-changes.outputs.total_shards != '0' }} runs-on: # use self-hosted runners - - runs-on=$-nf-test + - runs-on=${{ github.run_id }}-nf-test - runner=4cpu-linux-x64 strategy: fail-fast: false @@ -87,7 +80,7 @@ jobs: - isMain: false profile: "singularity" NXF_VER: - - "24.04.2" + - "24.10.5" - "latest-everything" env: NXF_ANSI_LOG: false @@ -99,23 +92,43 @@ jobs: fetch-depth: 0 - name: Run nf-test + id: run_nf_test uses: ./.github/actions/nf-test + continue-on-error: ${{ matrix.NXF_VER == 'latest-everything' }} env: - NFT_DIFF: ${{ env.NFT_DIFF }} - NFT_DIFF_ARGS: ${{ env.NFT_DIFF_ARGS }} NFT_WORKDIR: ${{ env.NFT_WORKDIR }} + SENTIEON_AUTH_MECH: "GitHub Actions - token" + SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} + SENTIEON_LICENSE_MESSAGE: ${{ secrets.SENTIEON_LICENSE_MESSAGE }} + SENTIEON_LICSRVR_IP: ${{ secrets.SENTIEON_LICSRVR_IP }} with: profile: ${{ matrix.profile }} shard: ${{ matrix.shard }} total_shards: ${{ env.TOTAL_SHARDS }} + + - name: Report test status + if: ${{ always() }} + run: | + if [[ "${{ steps.run_nf_test.outcome }}" == "failure" ]]; then + echo "::error::Test with ${{ matrix.NXF_VER }} failed" + # Add to workflow summary + echo "## ❌ Test failed: ${{ matrix.profile }} | ${{ matrix.NXF_VER }} | Shard ${{ matrix.shard }}/${{ env.TOTAL_SHARDS }}" >> $GITHUB_STEP_SUMMARY + if [[ "${{ matrix.NXF_VER }}" == "latest-everything" ]]; then + echo "::warning::Test with latest-everything failed but will not cause workflow failure. Please check if the error is expected or if it needs fixing." + fi + if [[ "${{ matrix.NXF_VER }}" != "latest-everything" ]]; then + exit 1 + fi + fi + confirm-pass: needs: [nf-test] if: always() runs-on: # use self-hosted runners - - runs-on=$-confirm-pass + - runs-on=${{ github.run_id }}-confirm-pass - runner=2cpu-linux-x64 steps: - - name: One or more tests failed + - name: One or more tests failed (excluding latest-everything) if: ${{ contains(needs.*.result, 'failure') }} run: exit 1 @@ -134,11 +147,3 @@ jobs: echo "DEBUG: toJSON(needs) = ${{ toJSON(needs) }}" echo "DEBUG: toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" echo "::endgroup::" - - - name: Clean Workspace # Purge the workspace in case it's running on a self-hosted runner - if: always() - run: | - ls -la ./ - rm -rf ./* || true - rm -rf ./.??* || true - ls -la ./ diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 4abaf4843..0f7324956 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -30,7 +30,7 @@ jobs: bsky-post: runs-on: ubuntu-latest steps: - - uses: zentered/bluesky-post-action@4aa83560bb3eac05dbad1e5f221ee339118abdd2 # v0.2.0 + - uses: zentered/bluesky-post-action@6461056ea355ea43b977e149f7bf76aaa572e5e8 # v0.3.0 with: post: | Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! diff --git a/.nf-core.yml b/.nf-core.yml index b2daedda3..59c308231 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -10,15 +10,15 @@ lint: nextflow_config: - config_defaults: - params.ribo_database_manifest -nf_core_version: 3.3.1 +nf_core_version: 3.3.2 repository_type: pipeline template: - author: "Harshil Patel, Phil Ewels, Rickard Hammar\xE9n" - description: RNA sequencing analysis pipeline for gene/isoform quantification and - extensive quality control. + author: "Harshil Patel, Phil Ewels, Rickard Hammarén" + description: RNA sequencing analysis pipeline for gene/isoform quantification + and extensive quality control. force: false is_nfcore: true name: rnaseq org: nf-core outdir: . - version: 3.19.0 + version: 3.20.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9d0b248d3..bb41beec1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ repos: hooks: - id: prettier additional_dependencies: - - prettier@3.5.0 + - prettier@3.6.2 - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index 580c077d3..1ca51b3ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -# 3.19.0 - 2025-06-06 +## 3.20.0 + +### Credits + +Special thanks to the following for their contributions to the release: + +- [Friederike Hanssen](https://github.com/friederikehanssen) +- [Ido Tamir](https://github.com/idot) +- [Jonathan Manning](https://github.com/pinin4fjords) +- [Maxime Garcia](https://github.com/maxulysse) +- [Usman Rashid](https://github.com/GallVp) + +### Enhancements & fixes + +- [PR #1568](https://github.com/nf-core/rnaseq/pull/1568) - Bump version after release 3.19.0 +- [PR #1571](https://github.com/nf-core/rnaseq/pull/1571) - For umitools use only umi_dedup.sorted.log in multiqc_report +- [PR #1573](https://github.com/nf-core/rnaseq/pull/1573) - Fix salmon.merged.SummarizedExperiment.rds name collision +- [PR #1585](https://github.com/nf-core/rnaseq/pull/1585) - Update awsfulltest.yml to restore aligner-wise outputs +- [PR #1580](https://github.com/nf-core/rnaseq/pull/1580) - Template update for nf-core/tools v3.3.2 +- [PR #1590](https://github.com/nf-core/rnaseq/pull/1590) - Addition of Sentieon STAR +- [PR #1594](https://github.com/nf-core/rnaseq/pull/1594) - Exclude star rsem pca from snaps +- [PR #1595](https://github.com/nf-core/rnaseq/pull/1595) - Exclude unstable star_rsem clusterings from snaps + +### Software dependencies + +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| `MultiQC` | 1.29 | 1.30 | +| `Sentieon` | | 202503.01 | + +## [[3.19.0](https://github.com/nf-core/rnaseq/releases/tag/3.19.0)] - 2025-06-10 ### Credits @@ -15,6 +45,7 @@ Special thanks to the following for their contributions to the release: - [Ben Sherman](https://github.com/bentsherman) - [Dave Carlson](https://github.com/davidecarlson) - [Gabriel Lichtenstein](https://github.com/glichtenstein) +- [Jonathan Manning](https://github.com/pinin4fjords) - [Lorenzo Fontana](https://github.com/fntlnz) - [Matthias Hörtenhuber](https://github.com/mashehu) - [Milos Micik](https://github.com/milos7250) @@ -41,7 +72,7 @@ Special thanks to the following for their contributions to the release: - [PR #1565](https://github.com/nf-core/rnaseq/pull/1565) - Improve reproducibility with Conda - [PR #1567](https://github.com/nf-core/rnaseq/pull/1567) - Prerelease 3.19.0 fixes -# 3.18.0 - 2024-12-19 +## [[3.18.0](https://github.com/nf-core/rnaseq/releases/tag/3.18.0)] - 2024-12-19 ### Credits diff --git a/README.md b/README.md index b9d4d8de5..afaddb8c9 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,12 @@ -[![GitHub Actions CI Status](https://github.com/nf-core/rnaseq/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/ci.yml) -[![GitHub Actions Linting Status](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/rnaseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.1400710-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.1400710)[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) +[![GitHub Actions CI Status](https://github.com/nf-core/rnaseq/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/nf-test.yml) +[![GitHub Actions Linting Status](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/rnaseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.1400710-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.1400710) +[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) -[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.04.2-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) -[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.1) +[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) +[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2) [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) @@ -32,7 +33,7 @@ 5. Adapter and quality trimming ([`Trim Galore!`](https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/)) 6. Removal of genome contaminants ([`BBSplit`](http://seqanswers.com/forums/showthread.php?t=41288)) 7. Removal of ribosomal RNA ([`SortMeRNA`](https://github.com/biocore/sortmerna)) -8. Choice of multiple alignment and quantification routes: +8. Choice of multiple alignment and quantification routes (_For `STAR` the sentieon implementation can be chosen_): 1. [`STAR`](https://github.com/alexdobin/STAR) -> [`Salmon`](https://combine-lab.github.io/salmon/) 2. [`STAR`](https://github.com/alexdobin/STAR) -> [`RSEM`](https://github.com/deweylab/RSEM) 3. [`HiSAT2`](https://ccb.jhu.edu/software/hisat2/index.shtml) -> **NO QUANTIFICATION** diff --git a/assets/schema_input.json b/assets/schema_input.json index 980a829ea..8d3e7523a 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -17,15 +17,15 @@ "type": "string", "format": "file-path", "exists": true, - "pattern": "^\\S+\\.f(ast)?q\\.gz$", - "errorMessage": "GZIP-compressed FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" }, "fastq_2": { "type": "string", "format": "file-path", "exists": true, - "pattern": "^\\S+\\.f(ast)?q\\.gz$", - "errorMessage": "GZIP-compressed FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" }, "strandedness": { "type": "string", diff --git a/conf/base.config b/conf/base.config index acb33cedc..af1b693e4 100644 --- a/conf/base.config +++ b/conf/base.config @@ -60,5 +60,6 @@ process { } withLabel: process_gpu { ext.use_gpu = { workflow.profile.contains('gpu') } + accelerator = { workflow.profile.contains('gpu') ? 1 : null } } } diff --git a/conf/test.config b/conf/test.config index 153200306..06f9856a5 100644 --- a/conf/test.config +++ b/conf/test.config @@ -45,7 +45,7 @@ params { // When using RSEM, remove warning from STAR whilst building tiny indices process { - withName: 'RSEM_PREPAREREFERENCE_GENOME' { + withName: 'RSEM_PREPAREREFERENCE_GENOME|SENTIEON_RSEMPREPAREREFERENCE_GENOME' { ext.args2 = "--genomeSAindexNbases 7" } } diff --git a/docs/output.md b/docs/output.md index 63f0db496..2fec35e59 100644 --- a/docs/output.md +++ b/docs/output.md @@ -215,6 +215,21 @@ When `--remove_ribo_rna` is specified, the pipeline uses [SortMeRNA](https://git - `star_salmon/` - `*.Aligned.out.bam`: If `--save_align_intermeds` is specified the original BAM file containing read alignments to the reference genome will be placed in this directory. - `*.Aligned.toTranscriptome.out.bam`: If `--save_align_intermeds` is specified the original BAM file containing read alignments to the transcriptome will be placed in this directory. + - `salmon.merged.gene_counts.tsv`: Matrix of gene-level raw counts across all samples. + - `salmon.merged.gene_tpm.tsv`: Matrix of gene-level TPM values across all samples. + - `salmon.merged.gene.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated counts (`counts`) and gene length (`length`), estimated library size-scaled counts (`counts_scaled`), estimated length-scaled counts (`counts_length_scaled`) in the assays slot for genes. + - `salmon.merged.gene_lengths.tsv`: Matrix of average within-sample transcript lengths for each gene across all samples. + - `salmon.merged.gene_counts_scaled.tsv`: Matrix of gene-level library size-scaled estimated counts across all samples. + - `salmon.merged.gene_counts_length_scaled.tsv`: Matrix of gene-level length-scaled estimated counts across all samples. + - `salmon.merged.transcript_counts.tsv`: Matrix of isoform-level raw counts across all samples. + - `salmon.merged.transcript_tpm.tsv`: Matrix of isoform-level TPM values across all samples. + - `tx2gene.tsv`: Tab-delimited file containing gene to transcripts ids mappings. + - `salmon.merged.transcript.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated isoform-level raw counts (`counts`) and transcript length (`length`) in the assays slot for transcripts. +- `star_salmon//` + - `quant.sf`: Salmon transcript-level quantification results. + - `quant.genes.sf`: Salmon gene-level quantification results. +- `star_salmon//logs/` + - `salmon_quant.log`: Salmon quantification log file. - `star_salmon/log/` - `*.SJ.out.tab`: File containing filtered splice junctions detected after mapping the reads. - `*.Log.final.out`: STAR alignment report containing the mapping results summary. @@ -224,6 +239,23 @@ When `--remove_ribo_rna` is specified, the pipeline uses [SortMeRNA](https://git +:::tip +You can access specific assay matrices from the `SummarizedExperiment` RDS object with the following R code: +::: + +```r + library(SummarizedExperiment) + + # Load the RDS object + se <- readRDS("salmon.merged.gene.SummarizedExperiment.rds") + + # View available assays + assayNames(se) + + # Access a specific assay, e.g., length-scaled counts + assay(se, "counts_length_scaled") +``` + [STAR](https://github.com/alexdobin/STAR) is a read aligner designed for splice aware mapping typical of RNA sequencing data. STAR stands for *S*pliced *T*ranscripts *A*lignment to a *R*eference, and has been shown to have high accuracy and outperforms other aligners by more than a factor of 50 in mapping speed, but it is memory intensive. Using `--aligner star_salmon` is the default alignment and quantification option. The STAR section of the MultiQC report shows a bar plot with alignment rates: good samples should have most reads as _Uniquely mapped_ and few _Unmapped_ reads. @@ -728,14 +760,14 @@ The principal output files are the same between Salmon and Kallisto: - `/` - `.merged.gene_counts.tsv`: Matrix of gene-level raw counts across all samples. - `.gene_tpm.tsv`: Matrix of gene-level TPM values across all samples. - - `all_samples_gene.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated counts (`counts`) and gene length (`length`), estimated library size-scaled counts (`counts_scaled`), estimated length-scaled counts (`counts_length_scaled`) in the assays slot for genes. + - `.merged.gene.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated counts (`counts`) and gene length (`length`), estimated library size-scaled counts (`counts_scaled`), estimated length-scaled counts (`counts_length_scaled`) in the assays slot for genes. - `.merged.gene_lengths.tsv`: Matrix of average within-sample transcript lengths for each gene across all samples. - `.merged.gene_counts_scaled.tsv`: Matrix of gene-level library size-scaled estimated counts across all samples. - `.merged.gene_counts_length_scaled.tsv`: Matrix of gene-level length-scaled estimated counts across all samples. - `.merged.transcript_counts.tsv`: Matrix of isoform-level raw counts across all samples. - `.merged.transcript_tpm.tsv`: Matrix of isoform-level TPM values across all samples. - `tx2gene.tsv`: Tab-delimited file containing gene to transcripts ids mappings. - - `all_samples_transcript.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated isoform-level raw counts (`counts`) and transcript length (`length`) in the assays slot for transcripts. + - `.merged.transcript.SummarizedExperiment.rds`: RDS object that can be loaded in R that contains a [SummarizedExperiment](https://bioconductor.org/packages/release/bioc/html/SummarizedExperiment.html) container with the abundance TPM (`tpm`), estimated isoform-level raw counts (`counts`) and transcript length (`length`) in the assays slot for transcripts. :::tip You can access specific assay matrices from the `SummarizedExperiment` RDS object with the following R code: @@ -745,7 +777,7 @@ You can access specific assay matrices from the `SummarizedExperiment` RDS objec library(SummarizedExperiment) # Load the RDS object - se <- readRDS("all_samples_gene.SummarizedExperiment.rds") + se <- readRDS("salmon.merged.gene.SummarizedExperiment.rds") # or kallisto.merged.gene.SummarizedExperiment.rds # View available assays assayNames(se) diff --git a/docs/usage.md b/docs/usage.md index 4190180a8..0dbf743c0 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -46,19 +46,16 @@ If you set the strandedness value to `auto`, the pipeline will sub-sample the in #### Usage Examples 1. **Forward Stranded Sample:** - - Forward fraction: 0.85 - Reverse fraction: 0.15 - **Classification:** Forward stranded 2. **Reverse Stranded Sample:** - - Forward fraction: 0.1 - Reverse fraction: 0.9 - **Classification:** Reverse stranded 3. **Unstranded Sample:** - - Forward fraction: 0.45 - Reverse fraction: 0.55 - **Classification:** Unstranded @@ -142,6 +139,34 @@ You can use `--skip_alignment --skip_pseudo_alignment` if you only want to run t Note that `--skip_alignment` and `--skip_pseudo_alignment` prevent both the execution of alignment/pseudoalignment steps and the building of their corresponding indices. For example, using `--skip_alignment` with `--aligner star_salmon` will skip both STAR alignment and index building. +### Sentieon acceleration for STAR + +The STAR aligner can be accelerated through its Sentieon implemention using the parameter `--use_sentieon_star`. + +Sentieon is a commercial solution to process genomics data, requiring a paid license. Sentieon's tooling contains an accelerated version of the [`STAR` aligner](https://support.sentieon.com/manual/usages/general/?highlight=star#star-binary), which nf-core/rnaseq supports. In order to use those functions, the user will need to supply a license for Sentieon. + +Sentieon supply license in the form of a string-value (a url) or a file. It should be base64-encoded and stored in a nextflow secret named `SENTIEON_LICENSE_BASE64`. If a license string (url) is supplied, then the nextflow secret should be set like this: + +```bash +nextflow secrets set SENTIEON_LICENSE_BASE64 $(echo -n | base64 -w 0) +``` + +:::note + is formatted as `IP:Port` for example: `12.12.12.12:8990` +::: + +If a license file is supplied, then the nextflow secret should be set like this: + +```bash +nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +``` + +:::note +If you're looking for documentation on how the nf-core Sentieon GitHub Actions and Sentieon License Server are set up: [Here be dragons.](https://github.com/nf-core/ops/blob/main/pulumi/sentieon_license_server/README.md) + +For detailed instructions on how to test the modules and subworkflows separately, see [here](https://github.com/nf-core/modules/blob/master/modules/nf-core/sentieon/README.md). +::: + ## Quantification options The current options align with STAR and quantify using either Salmon (`--aligner star_salmon`) / RSEM (`--aligner star_rsem`). You also have the option to pseudoalign and quantify your data with Salmon or Kallisto by providing the `--pseudo_aligner salmon` or `--pseudo_aligner kallisto` parameter, respectively. diff --git a/main.nf b/main.nf index 4b3b79ac8..3fea7e29b 100755 --- a/main.nf +++ b/main.nf @@ -84,7 +84,8 @@ workflow NFCORE_RNASEQ { params.skip_bbsplit, !params.remove_ribo_rna, params.skip_alignment, - params.skip_pseudo_alignment + params.skip_pseudo_alignment, + params.use_sentieon_star ) ch_versions = ch_versions.mix(PREPARE_GENOME.out.versions) diff --git a/modules.json b/modules.json index 0eb74cb90..0660264ae 100644 --- a/modules.json +++ b/modules.json @@ -52,7 +52,7 @@ }, "fastqc": { "branch": "master", - "git_sha": "b1966f36ec9de31927b2603d8f499960b2a4c294", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["fastq_fastqc_umitools_fastp", "fastq_fastqc_umitools_trimgalore"] }, "fq/lint": { @@ -108,7 +108,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "471cf3ca1617271b9b6fea09ea2ebdee78b874de", + "git_sha": "c9a31c472ef2d86802eb44f27322955849859361", "installed_by": ["modules"] }, "picard/markduplicates": { @@ -217,6 +217,21 @@ "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["bam_stats_samtools"] }, + "sentieon/rsemcalculateexpression": { + "branch": "master", + "git_sha": "2779d18605e9923332155d671f45ed37fa185ff4", + "installed_by": ["modules"] + }, + "sentieon/rsempreparereference": { + "branch": "master", + "git_sha": "2779d18605e9923332155d671f45ed37fa185ff4", + "installed_by": ["modules"] + }, + "sentieon/staralign": { + "branch": "master", + "git_sha": "73d3ab1ac411843ae643b5bc310a4aec9ae7ab3a", + "installed_by": ["modules"] + }, "sortmerna": { "branch": "master", "git_sha": "d4a425ce59fc803a11e520f16680ede9af09761f", diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 2b2e62b8a..c8d9d025a 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -29,9 +29,10 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. + ontologies: [] output: - - html: - - meta: + html: + - - meta: type: map description: | Groovy Map containing sample information @@ -40,8 +41,9 @@ output: type: file description: FastQC report pattern: "*_{fastqc.html}" - - zip: - - meta: + ontologies: [] + zip: + - - meta: type: map description: | Groovy Map containing sample information @@ -50,11 +52,14 @@ output: type: file description: FastQC report archive pattern: "*_{fastqc.zip}" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@drpatelh" - "@grst" diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test index 20c648702..e9d79a074 100644 --- a/modules/nf-core/fastqc/tests/main.nf.test +++ b/modules/nf-core/fastqc/tests/main.nf.test @@ -4,6 +4,9 @@ nextflow_process { script "../main.nf" process "FASTQC" + tag "modules" + tag "modules_nfcore" + tag "fastqc" test("sarscov2 single-end [fastq]") { diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 812fc4c5e..f89370483 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.29 + - bioconda::multiqc=1.30 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 0ac3c3699..a508541ba 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.29--pyhdfd78af_0' : - 'biocontainers/multiqc:1.29--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.30--pyhdfd78af_0' : + 'biocontainers/multiqc:1.30--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index b16c18792..ce30eb732 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -15,57 +15,71 @@ tools: licence: ["GPL-3.0-or-later"] identifier: biotools:multiqc input: - - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC - - - multiqc_config: - type: file - description: Optional config yml for MultiQC - pattern: "*.{yml,yaml}" - - - extra_multiqc_config: - type: file - description: Second optional config yml for MultiQC. Will override common sections - in multiqc_config. - pattern: "*.{yml,yaml}" - - - multiqc_logo: + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + ontologies: [] + - multiqc_config: + type: file + description: Optional config yml for MultiQC + pattern: "*.{yml,yaml}" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML + - extra_multiqc_config: + type: file + description: Second optional config yml for MultiQC. Will override common sections + in multiqc_config. + pattern: "*.{yml,yaml}" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML + - multiqc_logo: + type: file + description: Optional logo file for MultiQC + pattern: "*.{png}" + ontologies: [] + - replace_names: + type: file + description: | + Optional two-column sample renaming file. First column a set of + patterns, second column a set of corresponding replacements. Passed via + MultiQC's `--replace-names` option. + pattern: "*.{tsv}" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + - sample_names: + type: file + description: | + Optional TSV file with headers, passed to the MultiQC --sample_names + argument. + pattern: "*.{tsv}" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV +output: + report: + - "*multiqc_report.html": type: file - description: Optional logo file for MultiQC - pattern: "*.{png}" - - - replace_names: + description: MultiQC report file + pattern: "multiqc_report.html" + ontologies: [] + data: + - "*_data": + type: directory + description: MultiQC data dir + pattern: "multiqc_data" + plots: + - "*_plots": type: file - description: | - Optional two-column sample renaming file. First column a set of - patterns, second column a set of corresponding replacements. Passed via - MultiQC's `--replace-names` option. - pattern: "*.{tsv}" - - - sample_names: + description: Plots created by MultiQC + pattern: "*_data" + ontologies: [] + versions: + - versions.yml: type: file - description: | - Optional TSV file with headers, passed to the MultiQC --sample_names - argument. - pattern: "*.{tsv}" -output: - - report: - - "*multiqc_report.html": - type: file - description: MultiQC report file - pattern: "multiqc_report.html" - - data: - - "*_data": - type: directory - description: MultiQC data dir - pattern: "multiqc_data" - - plots: - - "*_plots": - type: file - description: Plots created by MultiQC - pattern: "*_data" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@abhi18av" - "@bunop" diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index f815b6de3..33316a7dd 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -3,6 +3,11 @@ nextflow_process { name "Test Process MULTIQC" script "../main.nf" process "MULTIQC" + + tag "modules" + tag "modules_nfcore" + tag "multiqc" + config "./nextflow.config" test("sarscov2 single-end [fastqc]") { diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index 25caea811..0d3f288bd 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-06-03T09:17:40.895950399" + "timestamp": "2025-07-10T08:06:23.563041241" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-06-03T09:18:16.875131107" + "timestamp": "2025-07-10T08:06:48.96226832" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,c1fe644a37468f6dae548d98bc72c2c1" + "versions.yml:md5,e65ce731db2128b8e4dd43d6e880fc1c" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.3" }, - "timestamp": "2025-06-03T09:18:03.624717769" + "timestamp": "2025-07-10T08:06:40.627008706" } -} \ No newline at end of file +} diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/environment.yml b/modules/nf-core/sentieon/rsemcalculateexpression/environment.yml new file mode 100644 index 000000000..abe2c8a84 --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/environment.yml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::rsem=1.3.3 + - bioconda::sentieon=202503.01 diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/main.nf b/modules/nf-core/sentieon/rsemcalculateexpression/main.nf new file mode 100644 index 000000000..a7ab3a37c --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/main.nf @@ -0,0 +1,87 @@ +process SENTIEON_RSEMCALCULATEEXPRESSION { + tag "$meta.id" + label 'process_high' + label 'sentieon' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/61/618669d3715d81208a7936180c7170c7dad065c187d3ad933efa01d81a9fc193/data' : + 'community.wave.seqera.io/library/rsem_sentieon:1d3ad86b89bf5cc7' }" + + input: + tuple val(meta), path(reads) + path index + + output: + tuple val(meta), path("*.genes.results") , emit: counts_gene + tuple val(meta), path("*.isoforms.results"), emit: counts_transcript + tuple val(meta), path("*.stat") , emit: stat + tuple val(meta), path("*.log") , emit: logs + path "versions.yml" , emit: versions + + tuple val(meta), path("*.STAR.genome.bam") , optional:true, emit: bam_star + tuple val(meta), path("${prefix}.genome.bam") , optional:true, emit: bam_genome + tuple val(meta), path("${prefix}.transcript.bam"), optional:true, emit: bam_transcript + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + + def strandedness = '' + if (meta.strandedness == 'forward') { + strandedness = '--strandedness forward' + } else if (meta.strandedness == 'reverse') { + strandedness = '--strandedness reverse' + } + def paired_end = meta.single_end ? "" : "--paired-end" + + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 + ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " + : "" + """ + INDEX=`find -L ./ -name "*.grp" | sed 's/\\.grp\$//'` + + # Create symlink to sentieon in PATH + ln -sf \$(which sentieon) ./STAR + export PATH=".:\$PATH" + + rsem-calculate-expression \\ + --num-threads $task.cpus \\ + --temporary-folder ./tmp/ \\ + $strandedness \\ + $paired_end \\ + $args \\ + $reads \\ + \$INDEX \\ + $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rsem: \$(rsem-calculate-expression --version | sed -e "s/Current version: RSEM v//g") + star: \$(STAR --version | sed -e "s/STAR_//g") + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.genes.results + touch ${prefix}.isoforms.results + touch ${prefix}.stat + touch ${prefix}.log + touch ${prefix}.STAR.genome.bam + touch ${prefix}.genome.bam + touch ${prefix}.transcript.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rsem: \$(rsem-calculate-expression --version | sed -e "s/Current version: RSEM v//g") + star: \$(STAR --version | sed -e "s/STAR_//g") + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/meta.yml b/modules/nf-core/sentieon/rsemcalculateexpression/meta.yml new file mode 100644 index 000000000..87a966363 --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/meta.yml @@ -0,0 +1,122 @@ +name: sentieon_rsemcalculateexpression +description: Calculate expression with RSEM +keywords: + - rsem + - expression + - quantification + - sentieon +tools: + - rseqc: + description: | + RSEM: accurate transcript quantification from RNA-Seq data with or without a reference genome + homepage: https://github.com/deweylab/RSEM + documentation: https://github.com/deweylab/RSEM + doi: 10.1186/1471-2105-12-323 + licence: ["GPL-3.0-or-later"] + identifier: biotools:rsem +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: Input reads for quantification + pattern: "*.fastq.gz" + ontologies: + - edam: http://edamontology.org/format_3989 # GZIP format + - index: + type: file + description: RSEM index + pattern: "rsem/*" + ontologies: [] +output: + counts_gene: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.genes.results": + type: file + description: Expression counts on gene level + pattern: "*.genes.results" + ontologies: [] + counts_transcript: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.isoforms.results": + type: file + description: Expression counts on transcript level + pattern: "*.isoforms.results" + ontologies: [] + stat: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.stat": + type: file + description: RSEM statistics + pattern: "*.stat" + ontologies: [] + logs: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.log": + type: file + description: RSEM logs + pattern: "*.log" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML + bam_star: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.STAR.genome.bam": + type: file + description: BAM file generated by STAR (optional) + pattern: "*.STAR.genome.bam" + ontologies: [] + bam_genome: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - ${prefix}.genome.bam: + type: file + description: Genome BAM file (optional) + pattern: "*.genome.bam" + ontologies: [] + bam_transcript: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - ${prefix}.transcript.bam: + type: file + description: Transcript BAM file (optional) + pattern: "*.transcript.bam" + ontologies: [] +authors: + - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test b/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test new file mode 100644 index 000000000..7fb4646a5 --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test @@ -0,0 +1,93 @@ +nextflow_process { + + name "Test Process SENTIEON_RSEMCALCULATEEXPRESSION" + script "../main.nf" + process "SENTIEON_RSEMCALCULATEEXPRESSION" + config "./nextflow.config" + tag "modules" + tag "modules_nfcore" + tag "sentieon" + tag "sentieon/rsemcalculateexpression" + tag "sentieon/rsempreparereference" + + test("homo_sapiens") { + + setup { + run("SENTIEON_RSEMPREPAREREFERENCE") { + script "../../../sentieon/rsempreparereference/main.nf" + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [ id:'test', strandedness: 'forward' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = SENTIEON_RSEMPREPAREREFERENCE.out.index + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.counts_gene).match("counts_gene") }, + { assert snapshot(process.out.counts_transcript).match("counts_transcript") }, + { assert snapshot(process.out.stat).match("stat") }, + { assert path(process.out.logs.get(0).get(1)).exists() }, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("homo_sapiens - stub") { + + options "-stub" + + setup { + run("SENTIEON_RSEMPREPAREREFERENCE") { + script "../../../sentieon/rsempreparereference/main.nf" + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', strandedness: 'forward' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = SENTIEON_RSEMPREPAREREFERENCE.out.index + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test.snap b/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test.snap new file mode 100644 index 000000000..f3dee3cc3 --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/main.nf.test.snap @@ -0,0 +1,215 @@ +{ + "stat": { + "content": [ + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + [ + "test.cnt:md5,76249e6b2f3c104f414aae596ba2c2f4", + "test.model:md5,a7a4bc1734918ef5848604e3362b83e2", + "test.theta:md5,de2e4490c98cc5383a86ae8225fd0a28" + ] + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2023-11-22T13:14:18.68683" + }, + "homo_sapiens - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,2c37927aa617a24c43688228944f4a96" + ], + "5": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.STAR.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.transcript.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_genome": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_star": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.STAR.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.transcript.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_transcript": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "logs": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "stat": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,2c37927aa617a24c43688228944f4a96" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:04:38.064594" + }, + "counts_transcript": { + "content": [ + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,99f7f80aa505b44ca429fdebbd7dd5d8" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2023-11-22T13:14:18.682898" + }, + "versions": { + "content": [ + [ + "versions.yml:md5,253b43edb079232ffcdf0b741134cce9" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2023-11-22T13:14:18.700958" + }, + "counts_gene": { + "content": [ + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,c7ec226f76736ea805771e73553ae359" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2023-11-22T13:14:18.670998" + } +} diff --git a/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config new file mode 100644 index 000000000..0d7b82c43 --- /dev/null +++ b/modules/nf-core/sentieon/rsemcalculateexpression/tests/nextflow.config @@ -0,0 +1,23 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: SENTIEON_RSEMPREPAREREFERENCE { + ext.args = '--star' + } + + withName: SENTIEON_RSEMCALCULATEEXPRESSION { + ext.args = '--star --star-gzipped-read-file' + } + +} + +env { + // NOTE This is how pipeline users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how pipeline users will test out Sentieon with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} diff --git a/modules/nf-core/sentieon/rsempreparereference/environment.yml b/modules/nf-core/sentieon/rsempreparereference/environment.yml new file mode 100644 index 000000000..abe2c8a84 --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/environment.yml @@ -0,0 +1,8 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::rsem=1.3.3 + - bioconda::sentieon=202503.01 diff --git a/modules/nf-core/sentieon/rsempreparereference/main.nf b/modules/nf-core/sentieon/rsempreparereference/main.nf new file mode 100644 index 000000000..28a666850 --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/main.nf @@ -0,0 +1,92 @@ +process SENTIEON_RSEMPREPAREREFERENCE { + tag "$fasta" + label 'process_high' + label 'sentieon' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/61/618669d3715d81208a7936180c7170c7dad065c187d3ad933efa01d81a9fc193/data' : + 'community.wave.seqera.io/library/rsem_sentieon:1d3ad86b89bf5cc7' }" + + input: + path fasta, stageAs: "rsem/*" + path gtf + + output: + path "rsem" , emit: index + path "*transcripts.fa", emit: transcript_fasta + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def args_list = args.tokenize() + if (args_list.contains('--star')) { + args_list.removeIf { it.contains('--star') } + def memory = task.memory ? "--limitGenomeGenerateRAM ${task.memory.toBytes() - 100000000}" : '' + """ + + # Create symlink to sentieon in PATH + ln -sf \$(which sentieon) ./STAR + export PATH=".:\$PATH" + + STAR \\ + --runMode genomeGenerate \\ + --genomeDir rsem/ \\ + --genomeFastaFiles $fasta \\ + --sjdbGTFfile $gtf \\ + --runThreadN $task.cpus \\ + $memory \\ + $args2 + + rsem-prepare-reference \\ + --gtf $gtf \\ + --num-threads $task.cpus \\ + ${args_list.join(' ')} \\ + $fasta \\ + rsem/genome + + cp rsem/genome.transcripts.fa . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rsem: \$(rsem-calculate-expression --version | sed -e "s/Current version: RSEM v//g") + star: \$(STAR --version | sed -e "s/STAR_//g") + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ + } else { + """ + rsem-prepare-reference \\ + --gtf $gtf \\ + --num-threads $task.cpus \\ + $args \\ + $fasta \\ + rsem/genome + + cp rsem/genome.transcripts.fa . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rsem: \$(rsem-calculate-expression --version | sed -e "s/Current version: RSEM v//g") + star: \$(STAR --version | sed -e "s/STAR_//g") + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ + } + + stub: + """ + touch genome.transcripts.fa + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rsem: \$(rsem-calculate-expression --version | sed -e "s/Current version: RSEM v//g") + star: \$(STAR --version | sed -e "s/STAR_//g") + sentieon: \$(echo \$(sentieon driver --version 2>&1) | sed -e "s/sentieon-genomics-//g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/sentieon/rsempreparereference/meta.yml b/modules/nf-core/sentieon/rsempreparereference/meta.yml new file mode 100644 index 000000000..a05f8e9be --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/meta.yml @@ -0,0 +1,50 @@ +name: sentieon_rsempreparereference +description: Prepare a reference genome for RSEM +keywords: + - rsem + - genome + - index + - sentieon +tools: + - rseqc: + description: | + RSEM: accurate transcript quantification from RNA-Seq data with or without a reference genome + homepage: https://github.com/deweylab/RSEM + documentation: https://github.com/deweylab/RSEM + doi: 10.1186/1471-2105-12-323 + licence: ["GPL-3.0-or-later"] + identifier: biotools:rsem +input: + - fasta: + type: file + description: The Fasta file of the reference genome + pattern: "*.{fasta,fa}" + ontologies: [] + - gtf: + type: file + description: The GTF file of the reference genome + pattern: "*.gtf" + ontologies: [] +output: + index: + - rsem: + type: directory + description: RSEM index directory + pattern: "rsem" + transcript_fasta: + - "*transcripts.fa": + type: file + description: Fasta file of transcripts + pattern: "rsem/*transcripts.fa" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML +authors: + - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test b/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test new file mode 100644 index 000000000..ca4ae8227 --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test @@ -0,0 +1,55 @@ +nextflow_process { + + name "Test Process SENTIEON_RSEMPREPAREREFERENCE" + script "../main.nf" + process "SENTIEON_RSEMPREPAREREFERENCE" + tag "modules" + tag "modules_nfcore" + tag "sentieon" + tag "sentieon/rsempreparereference" + + test("homo_sapiens") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.index).match("index")}, + { assert snapshot(process.out.transcript_fasta).match("transcript_fasta")}, + { assert snapshot(process.out.versions).match("versions") } + ) + } + } + + test("homo_sapiens - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test.snap b/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test.snap new file mode 100644 index 000000000..d83e20ef6 --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/tests/main.nf.test.snap @@ -0,0 +1,80 @@ +{ + "homo_sapiens - stub": { + "content": [ + { + "0": [ + [ + "genome.fasta:md5,f315020d899597c1b57e5fe9f60f4c3e" + ] + ], + "1": [ + "genome.transcripts.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "2": [ + "versions.yml:md5,5701c66cf1e2c8475b2903d95df99db5" + ], + "index": [ + [ + "genome.fasta:md5,f315020d899597c1b57e5fe9f60f4c3e" + ] + ], + "transcript_fasta": [ + "genome.transcripts.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "versions": [ + "versions.yml:md5,5701c66cf1e2c8475b2903d95df99db5" + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2025-06-02T14:24:38.229417" + }, + "versions": { + "content": [ + [ + "versions.yml:md5,5701c66cf1e2c8475b2903d95df99db5" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2025-06-02T14:24:27.489566" + }, + "index": { + "content": [ + [ + [ + "genome.chrlist:md5,b190587cae0531f3cf25552d8aa674db", + "genome.fasta:md5,f315020d899597c1b57e5fe9f60f4c3e", + "genome.grp:md5,c2848a8b6d495956c11ec53efc1de67e", + "genome.idx.fa:md5,050c521a2719c2ae48267c1e65218f29", + "genome.n2g.idx.fa:md5,050c521a2719c2ae48267c1e65218f29", + "genome.seq:md5,94da0c6b88c33e63c9a052a11f4f57c1", + "genome.ti:md5,c9e4ae8d4d13a504eec2acf1b8589a66", + "genome.transcripts.fa:md5,050c521a2719c2ae48267c1e65218f29" + ] + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2025-06-02T14:24:27.451885" + }, + "transcript_fasta": { + "content": [ + [ + "genome.transcripts.fa:md5,050c521a2719c2ae48267c1e65218f29" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2025-06-02T14:24:27.472246" + } +} diff --git a/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config new file mode 100644 index 000000000..c1e9e4864 --- /dev/null +++ b/modules/nf-core/sentieon/rsempreparereference/tests/nextflow.config @@ -0,0 +1,9 @@ +env { + // NOTE This is how pipeline users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how pipeline users will test out Sentieon with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} diff --git a/modules/nf-core/sentieon/staralign/environment.yml b/modules/nf-core/sentieon/staralign/environment.yml new file mode 100644 index 000000000..dae76d1b6 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::sentieon=202503.01 diff --git a/modules/nf-core/sentieon/staralign/main.nf b/modules/nf-core/sentieon/staralign/main.nf new file mode 100644 index 000000000..264087dec --- /dev/null +++ b/modules/nf-core/sentieon/staralign/main.nf @@ -0,0 +1,113 @@ +process SENTIEON_STARALIGN { + tag "${meta.id}" + label 'process_high' + label 'sentieon' + + + conda "${moduleDir}/environment.yml" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/0f/0f1dfe59ef66d7326b43db9ab1f39ce6220b358a311078c949a208f9c9815d4e/data' + : 'community.wave.seqera.io/library/sentieon:202503.01--1863def31ed8e4d5'}" + + input: + tuple val(meta), path(reads, stageAs: "input*/*") + tuple val(meta2), path(index) + tuple val(meta3), path(gtf) + val star_ignore_sjdbgtf + val seq_platform + val seq_center + + output: + tuple val(meta), path('*Log.final.out'), emit: log_final + tuple val(meta), path('*Log.out'), emit: log_out + tuple val(meta), path('*Log.progress.out'), emit: log_progress + path "versions.yml", emit: versions + + tuple val(meta), path('*d.out.bam'), optional: true, emit: bam + tuple val(meta), path("${prefix}.sortedByCoord.out.bam"), optional: true, emit: bam_sorted + tuple val(meta), path("${prefix}.Aligned.sortedByCoord.out.bam"), optional: true, emit: bam_sorted_aligned + tuple val(meta), path('*toTranscriptome.out.bam'), optional: true, emit: bam_transcript + tuple val(meta), path('*Aligned.unsort.out.bam'), optional: true, emit: bam_unsorted + tuple val(meta), path('*fastq.gz'), optional: true, emit: fastq + tuple val(meta), path('*.tab'), optional: true, emit: tab + tuple val(meta), path('*.SJ.out.tab'), optional: true, emit: spl_junc_tab + tuple val(meta), path('*.ReadsPerGene.out.tab'), optional: true, emit: read_per_gene_tab + tuple val(meta), path('*.out.junction'), optional: true, emit: junction + tuple val(meta), path('*.out.sam'), optional: true, emit: sam + tuple val(meta), path('*.wig'), optional: true, emit: wig + tuple val(meta), path('*.bg'), optional: true, emit: bedgraph + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def reads1 = [] + def reads2 = [] + meta.single_end ? [reads].flatten().each { reads1 << it } : reads.eachWithIndex { v, ix -> (ix & 1 ? reads2 : reads1) << v } + def ignore_gtf = star_ignore_sjdbgtf ? '' : "--sjdbGTFfile ${gtf}" + def seq_platform_arg = seq_platform ? "'PL:${seq_platform}'" : "" + def seq_center_arg = seq_center ? "'CN:${seq_center}'" : "" + attrRG = args.contains("--outSAMattrRGline") ? "" : "--outSAMattrRGline 'ID:${prefix}' ${seq_center_arg} 'SM:${prefix}' ${seq_platform_arg}" + def out_sam_type = args.contains('--outSAMtype') ? '' : '--outSAMtype BAM Unsorted' + mv_unsorted_bam = args.contains('--outSAMtype BAM Unsorted SortedByCoordinate') ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' + + def sentieonLicense = secrets.SENTIEON_LICENSE_BASE64 + ? "export SENTIEON_LICENSE=\$(mktemp);echo -e \"${secrets.SENTIEON_LICENSE_BASE64}\" | base64 -d > \$SENTIEON_LICENSE; " + : "" + """ + sentieon STAR \\ + --genomeDir ${index} \\ + --readFilesIn ${reads1.join(",")} ${reads2.join(",")} \\ + --runThreadN ${task.cpus} \\ + --outFileNamePrefix ${prefix}. \\ + ${out_sam_type} \\ + ${ignore_gtf} \\ + ${attrRG} \\ + ${args} + + ${mv_unsorted_bam} + + if [ -f ${prefix}.Unmapped.out.mate1 ]; then + mv ${prefix}.Unmapped.out.mate1 ${prefix}.unmapped_1.fastq + gzip ${prefix}.unmapped_1.fastq + fi + if [ -f ${prefix}.Unmapped.out.mate2 ]; then + mv ${prefix}.Unmapped.out.mate2 ${prefix}.unmapped_2.fastq + gzip ${prefix}.unmapped_2.fastq + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + star: \$(sentieon STAR --version | sed -e "s/STAR_//g") + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + """ + echo "" | gzip > ${prefix}.unmapped_1.fastq.gz + echo "" | gzip > ${prefix}.unmapped_2.fastq.gz + touch ${prefix}Xd.out.bam + touch ${prefix}.Log.final.out + touch ${prefix}.Log.out + touch ${prefix}.Log.progress.out + touch ${prefix}.sortedByCoord.out.bam + touch ${prefix}.toTranscriptome.out.bam + touch ${prefix}.Aligned.unsort.out.bam + touch ${prefix}.Aligned.sortedByCoord.out.bam + touch ${prefix}.tab + touch ${prefix}.SJ.out.tab + touch ${prefix}.ReadsPerGene.out.tab + touch ${prefix}.Chimeric.out.junction + touch ${prefix}.out.sam + touch ${prefix}.Signal.UniqueMultiple.str1.out.wig + touch ${prefix}.Signal.UniqueMultiple.str1.out.bg + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + star: \$(sentieon STAR --version | sed -e "s/STAR_//g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/sentieon/staralign/meta.yml b/modules/nf-core/sentieon/staralign/meta.yml new file mode 100644 index 000000000..beda95799 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/meta.yml @@ -0,0 +1,248 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "sentieon_staralign" +description: Align reads to a reference genome using Sentieon STAR +keywords: + - align + - fasta + - genome + - reference +tools: + - sentieon: + description: | + Sentieon® provides complete solutions for secondary DNA/RNA analysis for a variety of sequencing platforms, including short and long reads. + Our software improves upon BWA, STAR, Minimap2, GATK, HaplotypeCaller, Mutect, and Mutect2 based pipelines and is deployable on any generic-CPU-based computing system. + homepage: https://www.sentieon.com/ + documentation: https://www.sentieon.com/ + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + ontologies: [] + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - index: + type: directory + description: STAR genome index + pattern: "star" + - - meta3: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test' ] + - gtf: + type: file + description: Annotation GTF file + pattern: "*.{gtf}" + ontologies: [] + - star_ignore_sjdbgtf: + type: boolean + description: Ignore annotation GTF file + - seq_platform: + type: string + description: Sequencing platform + - seq_center: + type: string + description: Sequencing center +output: + log_final: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*Log.final.out": + type: file + description: STAR final log file + pattern: "*Log.final.out" + ontologies: [] + log_out: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*Log.out": + type: file + description: STAR lot out file + pattern: "*Log.out" + ontologies: [] + log_progress: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*Log.progress.out": + type: file + description: STAR log progress file + pattern: "*Log.progress.out" + ontologies: [] + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML + bam: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*d.out.bam": + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + ontologies: [] + bam_sorted: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}.sortedByCoord.out.bam: + type: file + description: Sorted BAM file of read alignments (optional) + pattern: "*sortedByCoord.out.bam" + ontologies: [] + bam_sorted_aligned: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ${prefix}.Aligned.sortedByCoord.out.bam: + type: file + description: Sorted BAM file of read alignments (optional) + pattern: "*.Aligned.sortedByCoord.out.bam" + ontologies: [] + bam_transcript: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*toTranscriptome.out.bam": + type: file + description: Output BAM file of transcriptome alignment (optional) + pattern: "*toTranscriptome.out.bam" + ontologies: [] + bam_unsorted: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*Aligned.unsort.out.bam": + type: file + description: Unsorted BAM file of read alignments (optional) + pattern: "*Aligned.unsort.out.bam" + ontologies: [] + fastq: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*fastq.gz": + type: file + description: Unmapped FastQ files (optional) + pattern: "*fastq.gz" + ontologies: + - edam: http://edamontology.org/format_3989 # GZIP format + tab: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tab": + type: file + description: STAR output tab file(s) (optional) + pattern: "*.tab" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + spl_junc_tab: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.SJ.out.tab": + type: file + description: STAR output splice junction tab file + pattern: "*.SJ.out.tab" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + read_per_gene_tab: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.ReadsPerGene.out.tab": + type: file + description: STAR output read per gene tab file + pattern: "*.ReadsPerGene.out.tab" + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + junction: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.out.junction": + type: file + description: STAR chimeric junction output file (optional) + pattern: "*.out.junction" + ontologies: [] + sam: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.out.sam": + type: file + description: STAR output SAM file(s) (optional) + pattern: "*.out.sam" + ontologies: [] + wig: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.wig": + type: file + description: STAR output wiggle format file(s) (optional) + pattern: "*.wig" + ontologies: [] + bedgraph: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.bg": + type: file + description: STAR output bedGraph format file(s) (optional) + pattern: "*.bg" + ontologies: [] +authors: + - "@FriederikeHanssen" +maintainers: + - "@FriederikeHanssen" diff --git a/modules/nf-core/sentieon/staralign/tests/main.nf.test b/modules/nf-core/sentieon/staralign/tests/main.nf.test new file mode 100644 index 000000000..e985938fd --- /dev/null +++ b/modules/nf-core/sentieon/staralign/tests/main.nf.test @@ -0,0 +1,593 @@ +nextflow_process { + + name "Test Process SENTIEON_STARALIGN" + script "../main.nf" + process "SENTIEON_STARALIGN" + tag "modules" + tag "modules_nfcore" + tag "sentieon" + tag "sentieon/staralign" + tag "star/genomegenerate" + + test("homo_sapiens - single_end") { + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true) ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.log_final[0][1]).name, + file(process.out.log_out[0][1]).name, + file(process.out.log_progress[0][1]).name, + bam(process.out.bam[0][1]).getReadsMD5(), + bam(process.out.bam_sorted_aligned[0][1]).getReadsMD5(), + process.out.bedgraph, + process.out.fastq, + process.out.read_per_gene_tab, + process.out.sam, + process.out.spl_junc_tab, + process.out.tab, + process.out.wig, + process.out.versions + ).match() } + ) + } + } + + test("homo_sapiens - paired_end") { + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.log_final[0][1]).name, + file(process.out.log_out[0][1]).name, + file(process.out.log_progress[0][1]).name, + bam(process.out.bam[0][1]).getReadsMD5(), + bam(process.out.bam_sorted_aligned[0][1]).getReadsMD5(), + process.out.bedgraph, + process.out.fastq, + process.out.read_per_gene_tab, + process.out.sam, + process.out.spl_junc_tab, + process.out.tab, + process.out.wig, + process.out.versions + ).match() } + ) + } + } + + test("homo_sapiens - paired_end - arriba") { + config "./nextflow.arriba.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.log_final[0][1]).name, + file(process.out.log_out[0][1]).name, + file(process.out.log_progress[0][1]).name, + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.bedgraph, + process.out.fastq, + process.out.read_per_gene_tab, + process.out.sam, + process.out.spl_junc_tab, + process.out.tab, + process.out.wig, + process.out.versions + ).match() } + ) + } + } + + test("homo_sapiens - paired_end - starfusion") { + config "./nextflow.starfusion.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.log_final[0][1]).name, + file(process.out.log_out[0][1]).name, + file(process.out.log_progress[0][1]).name, + file(process.out.junction[0][1]).name, + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.bedgraph, + process.out.fastq, + process.out.read_per_gene_tab, + process.out.sam, + process.out.spl_junc_tab, + process.out.tab, + process.out.wig, + process.out.versions + ).match() } + ) + } + } + + test("homo_sapiens - paired_end - multiple") { + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.log_final[0][1]).name, + file(process.out.log_out[0][1]).name, + file(process.out.log_progress[0][1]).name, + bam(process.out.bam[0][1]).getReadsMD5(), + bam(process.out.bam_sorted_aligned[0][1]).getReadsMD5(), + process.out.bedgraph, + process.out.fastq, + process.out.read_per_gene_tab, + process.out.sam, + process.out.spl_junc_tab, + process.out.tab, + process.out.wig, + process.out.versions + ).match() } + ) + } + } + + test("homo_sapiens - single_end - stub") { + options "-stub" + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true) ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - paired_end - stub") { + options "-stub" + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - paired_end - arriba - stub") { + options "-stub" + config "./nextflow.arriba.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - paired_end - starfusion - stub") { + options "-stub" + config "./nextflow.starfusion.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("homo_sapiens - paired_end - multiple - stub") { + options "-stub" + config "./nextflow.config" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = false + input[4] = 'illumina' + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/sentieon/staralign/tests/main.nf.test.snap b/modules/nf-core/sentieon/staralign/tests/main.nf.test.snap new file mode 100644 index 000000000..c65ef0b15 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/tests/main.nf.test.snap @@ -0,0 +1,1913 @@ +{ + "homo_sapiens - single_end - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "11": [ + [ + { + "id": "test", + "single_end": true + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "single_end": true + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "14": [ + [ + { + "id": "test", + "single_end": true + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "15": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "4": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": true + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "single_end": true + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bam_sorted": [ + [ + { + "id": "test", + "single_end": true + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "single_end": true + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_unsorted": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bedgraph": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "junction": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_final": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_out": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_progress": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "read_per_gene_tab": [ + [ + { + "id": "test", + "single_end": true + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spl_junc_tab": [ + [ + { + "id": "test", + "single_end": true + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tab": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "wig": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:15.523674152" + }, + "homo_sapiens - paired_end - arriba - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "11": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "14": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bam_sorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_unsorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bedgraph": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "junction": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_final": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_progress": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "read_per_gene_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spl_junc_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "wig": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:45.677866207" + }, + "homo_sapiens - paired_end - multiple - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "11": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "14": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bam_sorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_unsorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bedgraph": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "junction": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_final": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_progress": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "read_per_gene_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spl_junc_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "wig": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:21:37.092968061" + }, + "homo_sapiens - paired_end - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "11": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "14": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bam_sorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_unsorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bedgraph": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "junction": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_final": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_progress": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "read_per_gene_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spl_junc_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "wig": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:28.328798489" + }, + "homo_sapiens - paired_end - starfusion - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "11": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "14": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "4": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "bam_sorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_unsorted": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bedgraph": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.bg:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "junction": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_final": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log_progress": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "read_per_gene_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "sam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "spl_junc_tab": [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tab": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ], + "wig": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:21:08.422749797" + }, + "homo_sapiens - single_end": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.Log.progress.out", + "9f76be49a6607613a64f760101bdddce", + "9f76be49a6607613a64f760101bdddce", + [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test.Signal.Unique.str1.out.bg:md5,c56fc1472776fb927eaf62d973da5f9a", + "test.Signal.UniqueMultiple.str1.out.bg:md5,e93373cf6f2a2a9506e2efdb260cdd4f" + ] + ] + ], + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.SJ.out.tab:md5,75a516ab950fb958f40b29996474949c" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.SJ.out.tab:md5,75a516ab950fb958f40b29996474949c" + ] + ], + [ + + ], + [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:15.523674152" + }, + "homo_sapiens - paired_end - arriba": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.Log.progress.out", + "1a3abe88fb2490589c58497d39921bcc", + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,5155c9fd1f787ad6d7d80987fb06219c" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,5155c9fd1f787ad6d7d80987fb06219c" + ] + ], + [ + + ], + [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:45.677866207" + }, + "homo_sapiens - paired_end - multiple": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.Log.progress.out", + "3e54e45f5dc3e9c1f2fc55bc41531a87", + "3e54e45f5dc3e9c1f2fc55bc41531a87", + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Signal.Unique.str1.out.bg:md5,d7bf8b70b436ca048a62513e1d0ece3a", + "test.Signal.UniqueMultiple.str1.out.bg:md5,686d58493b9eb445b56ace4d67f76ef6" + ] + ] + ], + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,069877e053714e23010fe4e1c003b4a2" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,069877e053714e23010fe4e1c003b4a2" + ] + ], + [ + + ], + [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:21:37.092968061" + }, + "homo_sapiens - paired_end": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.Log.progress.out", + "db9a8324b5163b025bcc0c33e848486", + "db9a8324b5163b025bcc0c33e848486", + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Signal.Unique.str1.out.bg:md5,d7bf8b70b436ca048a62513e1d0ece3a", + "test.Signal.UniqueMultiple.str1.out.bg:md5,686d58493b9eb445b56ace4d67f76ef6" + ] + ] + ], + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,844af19ab0fc8cd9a3f75228445aca0d" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,844af19ab0fc8cd9a3f75228445aca0d" + ] + ], + [ + + ], + [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:20:28.328798489" + }, + "homo_sapiens - paired_end - starfusion": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.Log.progress.out", + "test.Chimeric.out.junction", + "caee9dcda13882d4913456973c25b57a", + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,19c3faa1bfa9a0cc5e4c45f17065b53a" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,19c3faa1bfa9a0cc5e4c45f17065b53a" + ] + ], + [ + + ], + [ + "versions.yml:md5,83ad27eb85d8740c01891c71acd3879e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-11T14:21:08.422749797" + } +} diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config new file mode 100644 index 000000000..c17b0ca55 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.arriba.config @@ -0,0 +1,22 @@ +process { + + withName: STAR_GENOMEGENERATE { + ext.args = '--genomeSAindexNbases 9' + } + + withName: SENTIEON_STARALIGN { + ext.args = '--readFilesCommand zcat --outSAMtype BAM Unsorted --outSAMunmapped Within --outBAMcompression 0 --outFilterMultimapNmax 50 --peOverlapNbasesMin 10 --alignSplicedMateMapLminOverLmate 0.5 --alignSJstitchMismatchNmax 5 -1 5 5 --chimSegmentMin 10 --chimOutType WithinBAM HardClip --chimJunctionOverhangMin 10 --chimScoreDropMax 30 --chimScoreJunctionNonGTAG 0 --chimScoreSeparation 1 --chimSegmentReadGapMax 3 --chimMultimapNmax 50' + } + +} + +env { + // NOTE This is how pipeline users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how pipeline users will test out Sentieon with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} + diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.config b/modules/nf-core/sentieon/staralign/tests/nextflow.config new file mode 100644 index 000000000..6c89ce9e0 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.config @@ -0,0 +1,21 @@ +process { + + withName: STAR_GENOMEGENERATE { + ext.args = '--genomeSAindexNbases 9' + } + + withName: SENTIEON_STARALIGN { + ext.args = '--readFilesCommand zcat --outSAMtype BAM SortedByCoordinate --outWigType bedGraph --outWigStrand Unstranded' + } + +} + +env { + // NOTE This is how pipeline users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how pipeline users will test out Sentieon with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} diff --git a/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config new file mode 100644 index 000000000..39093b5a6 --- /dev/null +++ b/modules/nf-core/sentieon/staralign/tests/nextflow.starfusion.config @@ -0,0 +1,21 @@ +process { + + withName: STAR_GENOMEGENERATE { + ext.args = '--genomeSAindexNbases 9' + } + + withName: SENTIEON_STARALIGN { + ext.args = '--readFilesCommand zcat --outSAMtype BAM Unsorted --outReadsUnmapped None --twopassMode Basic --outSAMstrandField intronMotif --outSAMunmapped Within --chimSegmentMin 12 --chimJunctionOverhangMin 8 --chimOutJunctionFormat 1 --alignSJDBoverhangMin 10 --alignMatesGapMax 100000 --alignIntronMax 100000 --alignSJstitchMismatchNmax 5 -1 5 5 --chimMultimapScoreRange 3 --chimScoreJunctionNonGTAG -4 --chimMultimapNmax 20 --chimNonchimScoreDropMin 10 --peOverlapNbasesMin 12 --peOverlapMMp 0.1 --alignInsertionFlush Right --alignSplicedMateMapLminOverLmate 0 --alignSplicedMateMapLmin 30' + } + +} + +env { + // NOTE This is how pipeline users will use Sentieon in real world use + SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" + // NOTE This should only happen in GitHub actions or nf-core MegaTests + SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" + SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA + // NOTE This is how pipeline users will test out Sentieon with a license file + // nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) +} diff --git a/nextflow.config b/nextflow.config index 1755be5bc..e5ee488a7 100644 --- a/nextflow.config +++ b/nextflow.config @@ -63,6 +63,7 @@ params { // Alignment aligner = 'star_salmon' + use_sentieon_star = false pseudo_aligner = null pseudo_aligner_kmer_size = 31 seq_center = null @@ -344,12 +345,10 @@ dag { manifest { name = 'nf-core/rnaseq' - author = """Harshil Patel, Phil Ewels, Rickard Hammarén""" // The author field is deprecated from Nextflow version 24.10.0, use contributors instead contributors = [ [ name: 'Harshil Patel', affiliation: 'Seqera', - email: '', github: '@drpatelh', contribution: ['author'], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '0000-0003-2707-7940' @@ -357,31 +356,26 @@ manifest { [ name: 'Jonathan Manning', affiliation: 'Seqera', - email: '', github: '@pinin4fjords', contribution: ['maintainer', 'contributor'], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '0000-0002-3483-8456' ], [ - name: 'Maxime Garcia', + name: 'Maxime U Garcia', affiliation: 'Seqera', - email: '', github: '@maxulysse', contribution: ['contributor', 'maintainer'], // List of contribution types ('author', 'maintainer' or 'contributor') - orcid: '' + orcid: '0000-0003-2827-9261' ], [ name: 'Phil Ewels', affiliation: 'Seqera', - email: '', github: '@ewels', contribution: ['author'], // List of contribution types ('author', 'maintainer' or 'contributor') - orcid: '' ], [ name: 'Alexander Peltzer', affiliation: 'Boehringer Ingelheim', - email: '', github: '@apeltzer', contribution: ['contributor'], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '0000-0002-6503-2180' @@ -389,7 +383,6 @@ manifest { [ name: 'Rickard Hammarén', affiliation: 'Scilifelab Data Centre', - email: '', github: '@Hammarn', contribution: ['author'], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '0000-0001-9017-591X' @@ -397,7 +390,6 @@ manifest { [ name: 'Olga Botvinnik', affiliation: 'Seanome', - email: '', github: '@olgabot', contribution: ['contributor'], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '0000-0003-4412-7970' @@ -405,24 +397,29 @@ manifest { [ name: 'Adam Talbot', affiliation: 'Seqera', - email: '', github: '@adamrtalbot', contribution: ['contributor'], // List of contribution types ('author', 'maintainer' or 'contributor') - orcid: '' + ], + [ + name: 'Friederike Hanssen', + affiliation: 'Seqera', + github: '@FriederikeHanssen', + contribution: ['contributor'], // List of contribution types ('author', 'maintainer' or 'contributor') + orcid: '0009-0001-9875-5262' ], ] homePage = 'https://github.com/nf-core/rnaseq' description = """RNA sequencing analysis pipeline for gene/isoform quantification and extensive quality control.""" mainScript = 'main.nf' defaultBranch = 'master' - nextflowVersion = '!>=24.04.2' - version = '3.19.0' + nextflowVersion = '!>=24.10.5' + version = '3.20.0' doi = 'https://doi.org/10.5281/zenodo.1400710' } // Nextflow plugins plugins { - id 'nf-schema@2.3.0' // Validation of pipeline parameters and creation of an input channel from a sample sheet + id 'nf-schema@2.4.2' // Validation of pipeline parameters and creation of an input channel from a sample sheet } validation { diff --git a/nextflow_schema.json b/nextflow_schema.json index 71eb42306..d2bc59295 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -388,6 +388,11 @@ "fa_icon": "fas fa-map-signs", "enum": ["star_salmon", "star_rsem", "hisat2"] }, + "use_sentieon_star": { + "type": "boolean", + "description": "Optionally accelerate STAR with Sentieon", + "fa_icon": "fas fa-running" + }, "pseudo_aligner": { "type": "string", "description": "Specifies the pseudo aligner to use - available options are 'salmon'. Runs in addition to '--aligner'.", diff --git a/nf-test.config b/nf-test.config index fe148de9f..b8f9c23fd 100644 --- a/nf-test.config +++ b/nf-test.config @@ -20,6 +20,6 @@ config { // load the necessary plugins plugins { load "nft-bam@0.4.0" - load "nft-utils@0.0.3" + load "nft-utils@0.0.5" } } diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 6c4c523ea..d8ae3dd93 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,8 +22,8 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "Stable", - "datePublished": "2025-06-06T08:45:36+00:00", - "description": "

\n \n \n \"nf-core/rnaseq\"\n \n

\n\n[![GitHub Actions CI Status](https://github.com/nf-core/rnaseq/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/rnaseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.1400710-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.1400710)[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.04.2-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.1)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/rnaseq)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23rnaseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/rnaseq)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/rnaseq** is a bioinformatics pipeline that can be used to analyse RNA sequencing data obtained from organisms with a reference genome and annotation. It takes a samplesheet and FASTQ files as input, performs quality control (QC), trimming and (pseudo-)alignment, and produces a gene expression matrix and extensive QC report.\n\n![nf-core/rnaseq metro map](docs/images/nf-core-rnaseq_metro_map_grey_animated.svg)\n\n> In case the image above is not loading, please have a look at the [static version](docs/images/nf-core-rnaseq_metro_map_grey.png).\n\n1. Merge re-sequenced FastQ files ([`cat`](http://www.linfo.org/cat.html))\n2. Auto-infer strandedness by subsampling and pseudoalignment ([`fq`](https://github.com/stjude-rust-labs/fq), [`Salmon`](https://combine-lab.github.io/salmon/))\n3. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))\n4. UMI extraction ([`UMI-tools`](https://github.com/CGATOxford/UMI-tools))\n5. Adapter and quality trimming ([`Trim Galore!`](https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/))\n6. Removal of genome contaminants ([`BBSplit`](http://seqanswers.com/forums/showthread.php?t=41288))\n7. Removal of ribosomal RNA ([`SortMeRNA`](https://github.com/biocore/sortmerna))\n8. Choice of multiple alignment and quantification routes:\n 1. [`STAR`](https://github.com/alexdobin/STAR) -> [`Salmon`](https://combine-lab.github.io/salmon/)\n 2. [`STAR`](https://github.com/alexdobin/STAR) -> [`RSEM`](https://github.com/deweylab/RSEM)\n 3. [`HiSAT2`](https://ccb.jhu.edu/software/hisat2/index.shtml) -> **NO QUANTIFICATION**\n9. Sort and index alignments ([`SAMtools`](https://sourceforge.net/projects/samtools/files/samtools/))\n10. UMI-based deduplication ([`UMI-tools`](https://github.com/CGATOxford/UMI-tools))\n11. Duplicate read marking ([`picard MarkDuplicates`](https://broadinstitute.github.io/picard/))\n12. Transcript assembly and quantification ([`StringTie`](https://ccb.jhu.edu/software/stringtie/))\n13. Create bigWig coverage files ([`BEDTools`](https://github.com/arq5x/bedtools2/), [`bedGraphToBigWig`](http://hgdownload.soe.ucsc.edu/admin/exe/))\n14. Extensive quality control:\n 1. [`RSeQC`](http://rseqc.sourceforge.net/)\n 2. [`Qualimap`](http://qualimap.bioinfo.cipf.es/)\n 3. [`dupRadar`](https://bioconductor.org/packages/release/bioc/html/dupRadar.html)\n 4. [`Preseq`](http://smithlabresearch.org/software/preseq/)\n 5. [`DESeq2`](https://bioconductor.org/packages/release/bioc/html/DESeq2.html)\n 6. [`Kraken2`](https://ccb.jhu.edu/software/kraken2/) -> [`Bracken`](https://ccb.jhu.edu/software/bracken/) on unaligned sequences; _optional_\n15. Pseudoalignment and quantification ([`Salmon`](https://combine-lab.github.io/salmon/) or ['Kallisto'](https://pachterlab.github.io/kallisto/); _optional_)\n16. Present QC for raw read, alignment, gene biotype, sample similarity, and strand-specificity checks ([`MultiQC`](http://multiqc.info/), [`R`](https://www.r-project.org/))\n\n> **Note**\n> The SRA download functionality has been removed from the pipeline (`>=3.2`) and ported to an independent workflow called [nf-core/fetchngs](https://nf-co.re/fetchngs). You can provide `--nf_core_pipeline rnaseq` when running nf-core/fetchngs to download and auto-create a samplesheet containing publicly available samples that can be accepted directly as input by this pipeline.\n\n> **Warning**\n> Quantification isn't performed if using `--aligner hisat2` due to the lack of an appropriate option to calculate accurate expression estimates from HISAT2 derived genomic alignments. However, you can use this route if you have a preference for the alignment, QC and other types of downstream analysis compatible with the output of HISAT2.\n\n## Usage\n\n> [!NOTE]\n> 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.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n**samplesheet.csv**:\n\n```csv\nsample,fastq_1,fastq_2,strandedness\nCONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,auto\nCONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz,auto\nCONTROL_REP1,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz,auto\n```\n\nEach row represents a fastq file (single-end) or a pair of fastq files (paired end). Rows with the same sample identifier are considered technical replicates and merged automatically. The strandedness refers to the library preparation and will be automatically inferred if set to `auto`.\n\n> [!WARNING]\n> 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/docs/usage/getting_started/configuration#custom-configuration-files).\n\nNow, you can run the pipeline using:\n\n```bash\nnextflow run nf-core/rnaseq \\\n --input \\\n --outdir \\\n --gtf \\\n --fasta \\\n -profile \n```\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/rnaseq/usage) and the [parameter documentation](https://nf-co.re/rnaseq/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/rnaseq/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/rnaseq/output).\n\nThis pipeline quantifies RNA-sequenced reads relative to genes/transcripts in the genome and normalizes the resulting data. It does not compare the samples statistically in order to assign significance in the form of FDR or P-values. For downstream analyses, the output files from this pipeline can be analysed directly in statistical environments like [R](https://www.r-project.org/), [Julia](https://julialang.org/) or via the [nf-core/differentialabundance](https://github.com/nf-core/differentialabundance/) pipeline.\n\n## Online videos\n\nA short talk about the history, current status and functionality on offer in this pipeline was given by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) on [8th February 2022](https://nf-co.re/events/2022/bytesize-32-nf-core-rnaseq) as part of the nf-core/bytesize series.\n\nYou can find numerous talks on the [nf-core events page](https://nf-co.re/events) from various topics including writing pipelines/modules in Nextflow DSL2, using nf-core tooling, running nf-core pipelines as well as more generic content like contributing to Github. Please check them out!\n\n## Credits\n\nThese scripts were originally written for use at the [National Genomics Infrastructure](https://ngisweden.scilifelab.se), part of [SciLifeLab](http://www.scilifelab.se/) in Stockholm, Sweden, by Phil Ewels ([@ewels](https://github.com/ewels)) and Rickard Hammar\u00e9n ([@Hammarn](https://github.com/Hammarn)).\n\nThe pipeline was re-written in Nextflow DSL2 and is primarily maintained by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) from [Seqera Labs, Spain](https://seqera.io/).\n\nThe pipeline workflow diagram was initially designed by Sarah Guinchard ([@G-Sarah](https://github.com/G-Sarah)) and James Fellows Yates ([@jfy133](https://github.com/jfy133)), further modifications where made by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) and Maxime Garcia ([@maxulysse](https://github.com/maxulysse)).\n\nMany thanks to other who have helped out along the way too, including (but not limited to):\n\n- [Alex Peltzer](https://github.com/apeltzer)\n- [Colin Davenport](https://github.com/colindaven)\n- [Denis Moreno](https://github.com/Galithil)\n- [Edmund Miller](https://github.com/edmundmiller)\n- [Gregor Sturm](https://github.com/grst)\n- [Jacki Buros Novik](https://github.com/jburos)\n- [Lorena Pantano](https://github.com/lpantano)\n- [Matthias Zepper](https://github.com/MatthiasZepper)\n- [Maxime Garcia](https://github.com/maxulysse)\n- [Olga Botvinnik](https://github.com/olgabot)\n- [@orzechoj](https://github.com/orzechoj)\n- [Paolo Di Tommaso](https://github.com/pditommaso)\n- [Rob Syme](https://github.com/robsyme)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#rnaseq` channel](https://nfcore.slack.com/channels/rnaseq) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use nf-core/rnaseq for your analysis, please cite it using the following doi: [10.5281/zenodo.1400710](https://doi.org/10.5281/zenodo.1400710)\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "datePublished": "2025-08-14T09:57:59+00:00", + "description": "

\n \n \n \"nf-core/rnaseq\"\n \n

\n\n[![GitHub Actions CI Status](https://github.com/nf-core/rnaseq/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/rnaseq/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/rnaseq/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.1400710-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.1400710)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A524.10.5-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.3.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.3.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/rnaseq)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23rnaseq-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/rnaseq)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/rnaseq** is a bioinformatics pipeline that can be used to analyse RNA sequencing data obtained from organisms with a reference genome and annotation. It takes a samplesheet and FASTQ files as input, performs quality control (QC), trimming and (pseudo-)alignment, and produces a gene expression matrix and extensive QC report.\n\n![nf-core/rnaseq metro map](docs/images/nf-core-rnaseq_metro_map_grey_animated.svg)\n\n> In case the image above is not loading, please have a look at the [static version](docs/images/nf-core-rnaseq_metro_map_grey.png).\n\n1. Merge re-sequenced FastQ files ([`cat`](http://www.linfo.org/cat.html))\n2. Auto-infer strandedness by subsampling and pseudoalignment ([`fq`](https://github.com/stjude-rust-labs/fq), [`Salmon`](https://combine-lab.github.io/salmon/))\n3. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))\n4. UMI extraction ([`UMI-tools`](https://github.com/CGATOxford/UMI-tools))\n5. Adapter and quality trimming ([`Trim Galore!`](https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/))\n6. Removal of genome contaminants ([`BBSplit`](http://seqanswers.com/forums/showthread.php?t=41288))\n7. Removal of ribosomal RNA ([`SortMeRNA`](https://github.com/biocore/sortmerna))\n8. Choice of multiple alignment and quantification routes (_For `STAR` the sentieon implementation can be chosen_):\n 1. [`STAR`](https://github.com/alexdobin/STAR) -> [`Salmon`](https://combine-lab.github.io/salmon/)\n 2. [`STAR`](https://github.com/alexdobin/STAR) -> [`RSEM`](https://github.com/deweylab/RSEM)\n 3. [`HiSAT2`](https://ccb.jhu.edu/software/hisat2/index.shtml) -> **NO QUANTIFICATION**\n9. Sort and index alignments ([`SAMtools`](https://sourceforge.net/projects/samtools/files/samtools/))\n10. UMI-based deduplication ([`UMI-tools`](https://github.com/CGATOxford/UMI-tools))\n11. Duplicate read marking ([`picard MarkDuplicates`](https://broadinstitute.github.io/picard/))\n12. Transcript assembly and quantification ([`StringTie`](https://ccb.jhu.edu/software/stringtie/))\n13. Create bigWig coverage files ([`BEDTools`](https://github.com/arq5x/bedtools2/), [`bedGraphToBigWig`](http://hgdownload.soe.ucsc.edu/admin/exe/))\n14. Extensive quality control:\n 1. [`RSeQC`](http://rseqc.sourceforge.net/)\n 2. [`Qualimap`](http://qualimap.bioinfo.cipf.es/)\n 3. [`dupRadar`](https://bioconductor.org/packages/release/bioc/html/dupRadar.html)\n 4. [`Preseq`](http://smithlabresearch.org/software/preseq/)\n 5. [`DESeq2`](https://bioconductor.org/packages/release/bioc/html/DESeq2.html)\n 6. [`Kraken2`](https://ccb.jhu.edu/software/kraken2/) -> [`Bracken`](https://ccb.jhu.edu/software/bracken/) on unaligned sequences; _optional_\n15. Pseudoalignment and quantification ([`Salmon`](https://combine-lab.github.io/salmon/) or ['Kallisto'](https://pachterlab.github.io/kallisto/); _optional_)\n16. Present QC for raw read, alignment, gene biotype, sample similarity, and strand-specificity checks ([`MultiQC`](http://multiqc.info/), [`R`](https://www.r-project.org/))\n\n> **Note**\n> The SRA download functionality has been removed from the pipeline (`>=3.2`) and ported to an independent workflow called [nf-core/fetchngs](https://nf-co.re/fetchngs). You can provide `--nf_core_pipeline rnaseq` when running nf-core/fetchngs to download and auto-create a samplesheet containing publicly available samples that can be accepted directly as input by this pipeline.\n\n> **Warning**\n> Quantification isn't performed if using `--aligner hisat2` due to the lack of an appropriate option to calculate accurate expression estimates from HISAT2 derived genomic alignments. However, you can use this route if you have a preference for the alignment, QC and other types of downstream analysis compatible with the output of HISAT2.\n\n## Usage\n\n> [!NOTE]\n> 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.\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n**samplesheet.csv**:\n\n```csv\nsample,fastq_1,fastq_2,strandedness\nCONTROL_REP1,AEG588A1_S1_L002_R1_001.fastq.gz,AEG588A1_S1_L002_R2_001.fastq.gz,auto\nCONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz,auto\nCONTROL_REP1,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz,auto\n```\n\nEach row represents a fastq file (single-end) or a pair of fastq files (paired end). Rows with the same sample identifier are considered technical replicates and merged automatically. The strandedness refers to the library preparation and will be automatically inferred if set to `auto`.\n\n> [!WARNING]\n> 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/docs/usage/getting_started/configuration#custom-configuration-files).\n\nNow, you can run the pipeline using:\n\n```bash\nnextflow run nf-core/rnaseq \\\n --input \\\n --outdir \\\n --gtf \\\n --fasta \\\n -profile \n```\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/rnaseq/usage) and the [parameter documentation](https://nf-co.re/rnaseq/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/rnaseq/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/rnaseq/output).\n\nThis pipeline quantifies RNA-sequenced reads relative to genes/transcripts in the genome and normalizes the resulting data. It does not compare the samples statistically in order to assign significance in the form of FDR or P-values. For downstream analyses, the output files from this pipeline can be analysed directly in statistical environments like [R](https://www.r-project.org/), [Julia](https://julialang.org/) or via the [nf-core/differentialabundance](https://github.com/nf-core/differentialabundance/) pipeline.\n\n## Online videos\n\nA short talk about the history, current status and functionality on offer in this pipeline was given by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) on [8th February 2022](https://nf-co.re/events/2022/bytesize-32-nf-core-rnaseq) as part of the nf-core/bytesize series.\n\nYou can find numerous talks on the [nf-core events page](https://nf-co.re/events) from various topics including writing pipelines/modules in Nextflow DSL2, using nf-core tooling, running nf-core pipelines as well as more generic content like contributing to Github. Please check them out!\n\n## Credits\n\nThese scripts were originally written for use at the [National Genomics Infrastructure](https://ngisweden.scilifelab.se), part of [SciLifeLab](http://www.scilifelab.se/) in Stockholm, Sweden, by Phil Ewels ([@ewels](https://github.com/ewels)) and Rickard Hammar\u00e9n ([@Hammarn](https://github.com/Hammarn)).\n\nThe pipeline was re-written in Nextflow DSL2 and is primarily maintained by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) from [Seqera Labs, Spain](https://seqera.io/).\n\nThe pipeline workflow diagram was initially designed by Sarah Guinchard ([@G-Sarah](https://github.com/G-Sarah)) and James Fellows Yates ([@jfy133](https://github.com/jfy133)), further modifications where made by Harshil Patel ([@drpatelh](https://github.com/drpatelh)) and Maxime Garcia ([@maxulysse](https://github.com/maxulysse)).\n\nMany thanks to other who have helped out along the way too, including (but not limited to):\n\n- [Alex Peltzer](https://github.com/apeltzer)\n- [Colin Davenport](https://github.com/colindaven)\n- [Denis Moreno](https://github.com/Galithil)\n- [Edmund Miller](https://github.com/edmundmiller)\n- [Gregor Sturm](https://github.com/grst)\n- [Jacki Buros Novik](https://github.com/jburos)\n- [Lorena Pantano](https://github.com/lpantano)\n- [Matthias Zepper](https://github.com/MatthiasZepper)\n- [Maxime Garcia](https://github.com/maxulysse)\n- [Olga Botvinnik](https://github.com/olgabot)\n- [@orzechoj](https://github.com/orzechoj)\n- [Paolo Di Tommaso](https://github.com/pditommaso)\n- [Rob Syme](https://github.com/robsyme)\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#rnaseq` channel](https://nfcore.slack.com/channels/rnaseq) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use nf-core/rnaseq for your analysis, please cite it using the following doi: [10.5281/zenodo.1400710](https://doi.org/10.5281/zenodo.1400710)\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" @@ -108,7 +108,7 @@ }, "mentions": [ { - "@id": "#ae1587a7-b640-4951-835d-3d579ba3fbfd" + "@id": "#ec12689f-31ee-4513-bb7e-89b9fab2e180" } ], "name": "nf-core/rnaseq" @@ -137,80 +137,80 @@ ], "creator": [ { - "@id": "https://orcid.org/0000-0002-3859-3249" + "@id": "#jonathan.manning@seqera.io" }, { - "@id": "#zhoupenggeni@gmail.com" + "@id": "#drpatelh@users.noreply.github.com" }, { - "@id": "https://orcid.org/0009-0009-7515-5000" + "@id": "https://orcid.org/0000-0003-3966-8481" }, { - "@id": "https://orcid.org/0000-0002-5748-9594" + "@id": "https://orcid.org/0000-0002-2798-9870" }, { - "@id": "https://orcid.org/0000-0002-6503-2180" + "@id": "https://orcid.org/0000-0001-9584-7842" }, { - "@id": "https://orcid.org/0000-0002-8721-2350" + "@id": "https://orcid.org/0000-0003-3220-0253" }, { - "@id": "#jonathan.manning@seqera.io" + "@id": "#sven.fillinger@qbic.uni-tuebingen.de" }, { - "@id": "https://orcid.org/0000-0003-3220-0253" + "@id": "#31933289+amayer21@users.noreply.github.com" }, { - "@id": "#drpatelh@users.noreply.github.com" + "@id": "#omeally@gmail.com" }, { - "@id": "#phil.ewels@seqera.io" + "@id": "#chuan.wang@scilifelab.se" }, { - "@id": "https://orcid.org/0000-0003-4412-7970" + "@id": "https://orcid.org/0000-0003-0603-7907" }, { - "@id": "#sven.fillinger@qbic.uni-tuebingen.de" + "@id": "https://orcid.org/0000-0002-8824-1946" }, { - "@id": "https://orcid.org/0000-0003-0603-7907" + "@id": "https://orcid.org/0000-0002-1968-2270" }, { - "@id": "#31933289+amayer21@users.noreply.github.com" + "@id": "https://orcid.org/0000-0001-9017-591X" }, { - "@id": "https://orcid.org/0000-0001-9584-7842" + "@id": "#phil.ewels@seqera.io" }, { - "@id": "https://orcid.org/0000-0003-3966-8481" + "@id": "#42973691+d4straub@users.noreply.github.com" }, { - "@id": "https://orcid.org/0000-0002-1968-2270" + "@id": "#zhenfeng.liu1@gmail.com" }, { - "@id": "#chuan.wang@scilifelab.se" + "@id": "https://orcid.org/0000-0002-5748-9594" }, { - "@id": "#zhenfeng.liu1@gmail.com" + "@id": "https://orcid.org/0000-0002-6503-2180" }, { - "@id": "https://orcid.org/0000-0002-8824-1946" + "@id": "https://orcid.org/0000-0003-4412-7970" }, { - "@id": "#omeally@gmail.com" + "@id": "#zhoupenggeni@gmail.com" }, { - "@id": "https://orcid.org/0000-0001-9017-591X" + "@id": "https://orcid.org/0000-0002-3859-3249" }, { - "@id": "https://orcid.org/0000-0002-2798-9870" + "@id": "https://orcid.org/0000-0002-8721-2350" }, { - "@id": "#42973691+d4straub@users.noreply.github.com" + "@id": "https://orcid.org/0009-0009-7515-5000" } ], "dateCreated": "", - "dateModified": "2025-06-06T09:45:36Z", + "dateModified": "2025-08-14T09:57:59Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "image": { "@id": "docs/images/nf-core-rnaseq_metro_map_grey.png" @@ -225,23 +225,23 @@ "MIT" ], "maintainer": [ - { - "@id": "https://orcid.org/0000-0002-6503-2180" - }, { "@id": "#jonathan.manning@seqera.io" }, { "@id": "#drpatelh@users.noreply.github.com" }, + { + "@id": "https://orcid.org/0000-0001-9017-591X" + }, { "@id": "#phil.ewels@seqera.io" }, { - "@id": "https://orcid.org/0000-0003-4412-7970" + "@id": "https://orcid.org/0000-0002-6503-2180" }, { - "@id": "https://orcid.org/0000-0001-9017-591X" + "@id": "https://orcid.org/0000-0003-4412-7970" } ], "name": [ @@ -255,10 +255,10 @@ }, "url": [ "https://github.com/nf-core/rnaseq", - "https://nf-co.re/rnaseq/3.19.0/" + "https://nf-co.re/rnaseq/3.19.1/" ], "version": [ - "3.19.0" + "3.19.1" ] }, { @@ -271,7 +271,7 @@ "url": { "@id": "https://www.nextflow.io/" }, - "version": "!>=24.04.2" + "version": "!>=24.10.5" }, { "@id": "docs/images/nf-core-rnaseq_metro_map_grey.png", @@ -282,11 +282,11 @@ "name": "Workflow diagram" }, { - "@id": "#ae1587a7-b640-4951-835d-3d579ba3fbfd", + "@id": "#ec12689f-31ee-4513-bb7e-89b9fab2e180", "@type": "TestSuite", "instance": [ { - "@id": "#83e3a026-3fd3-4641-8c4c-6780c8c1d2fc" + "@id": "#e12bf7e9-28b7-4ee9-9928-a71338cc1887" } ], "mainEntity": { @@ -295,7 +295,7 @@ "name": "Test suite for nf-core/rnaseq" }, { - "@id": "#83e3a026-3fd3-4641-8c4c-6780c8c1d2fc", + "@id": "#e12bf7e9-28b7-4ee9-9928-a71338cc1887", "@type": "TestInstance", "name": "GitHub Actions workflow for testing nf-core/rnaseq", "resource": "repos/nf-core/rnaseq/actions/workflows/nf-test.yml", @@ -434,46 +434,34 @@ "url": "https://nf-co.re/" }, { - "@id": "https://orcid.org/0000-0002-3859-3249", - "@type": "Person", - "email": "lorena.pantano@gmail.com", - "name": "Lorena Pantano" - }, - { - "@id": "#zhoupenggeni@gmail.com", - "@type": "Person", - "email": "zhoupenggeni@gmail.com", - "name": "Peng Zhou" - }, - { - "@id": "https://orcid.org/0009-0009-7515-5000", + "@id": "#jonathan.manning@seqera.io", "@type": "Person", - "email": "sofia.haglund@scilifelab.se", - "name": "Sofia Haglund" + "email": "jonathan.manning@seqera.io", + "name": "Jonathan Manning" }, { - "@id": "https://orcid.org/0000-0002-5748-9594", + "@id": "#drpatelh@users.noreply.github.com", "@type": "Person", - "email": "pranathi93.vemuri@gmail.com", - "name": "Pranathi Vemuri" + "email": "drpatelh@users.noreply.github.com", + "name": "Harshil Patel" }, { - "@id": "https://orcid.org/0000-0002-6503-2180", + "@id": "https://orcid.org/0000-0003-3966-8481", "@type": "Person", - "email": "apeltzer@users.noreply.github.com", - "name": "Alexander Peltzer" + "email": "pcantalupo@gmail.com", + "name": "Paul Cantalupo" }, { - "@id": "https://orcid.org/0000-0002-8721-2350", + "@id": "https://orcid.org/0000-0002-2798-9870", "@type": "Person", - "email": "rob.syme@gmail.com", - "name": "Robert Syme" + "email": "silvia.morini01@gmail.com", + "name": "Silvia Morini" }, { - "@id": "#jonathan.manning@seqera.io", + "@id": "https://orcid.org/0000-0001-9584-7842", "@type": "Person", - "email": "jonathan.manning@seqera.io", - "name": "Jonathan Manning" + "email": "mail@gregor-sturm.de", + "name": "Gregor Sturm" }, { "@id": "https://orcid.org/0000-0003-3220-0253", @@ -482,28 +470,28 @@ "name": "Paolo Di Tommaso" }, { - "@id": "#drpatelh@users.noreply.github.com", + "@id": "#sven.fillinger@qbic.uni-tuebingen.de", "@type": "Person", - "email": "drpatelh@users.noreply.github.com", - "name": "Harshil Patel" + "email": "sven.fillinger@qbic.uni-tuebingen.de", + "name": "Sven F" }, { - "@id": "#phil.ewels@seqera.io", + "@id": "#31933289+amayer21@users.noreply.github.com", "@type": "Person", - "email": "phil.ewels@seqera.io", - "name": "Phil Ewels" + "email": "31933289+amayer21@users.noreply.github.com", + "name": "Alice Mayer" }, { - "@id": "https://orcid.org/0000-0003-4412-7970", + "@id": "#omeally@gmail.com", "@type": "Person", - "email": "olga.botvinnik@gmail.com", - "name": "Olga Botvinnik" + "email": "omeally@gmail.com", + "name": "Denis OMeally" }, { - "@id": "#sven.fillinger@qbic.uni-tuebingen.de", + "@id": "#chuan.wang@scilifelab.se", "@type": "Person", - "email": "sven.fillinger@qbic.uni-tuebingen.de", - "name": "Sven F" + "email": "chuan.wang@scilifelab.se", + "name": "Chuan Wang" }, { "@id": "https://orcid.org/0000-0003-0603-7907", @@ -512,34 +500,34 @@ "name": "Sabrina Krakau" }, { - "@id": "#31933289+amayer21@users.noreply.github.com", + "@id": "https://orcid.org/0000-0002-8824-1946", "@type": "Person", - "email": "31933289+amayer21@users.noreply.github.com", - "name": "Alice Mayer" + "email": "gisela.gabernet@gmail.com", + "name": "Gisela Gabernet Garriga" }, { - "@id": "https://orcid.org/0000-0001-9584-7842", + "@id": "https://orcid.org/0000-0002-1968-2270", "@type": "Person", - "email": "mail@gregor-sturm.de", - "name": "Gregor Sturm" + "email": "anandasanil@gmail.com", + "name": "Anandashankar Anil" }, { - "@id": "https://orcid.org/0000-0003-3966-8481", + "@id": "https://orcid.org/0000-0001-9017-591X", "@type": "Person", - "email": "pcantalupo@gmail.com", - "name": "Paul Cantalupo" + "email": "rickard.hammaren@scilifelab.se", + "name": "Rickard Hammar\u00e9n" }, { - "@id": "https://orcid.org/0000-0002-1968-2270", + "@id": "#phil.ewels@seqera.io", "@type": "Person", - "email": "anandasanil@gmail.com", - "name": "Anandashankar Anil" + "email": "phil.ewels@seqera.io", + "name": "Phil Ewels" }, { - "@id": "#chuan.wang@scilifelab.se", + "@id": "#42973691+d4straub@users.noreply.github.com", "@type": "Person", - "email": "chuan.wang@scilifelab.se", - "name": "Chuan Wang" + "email": "42973691+d4straub@users.noreply.github.com", + "name": "Daniel Straub" }, { "@id": "#zhenfeng.liu1@gmail.com", @@ -548,34 +536,46 @@ "name": "Zhenfeng Liu" }, { - "@id": "https://orcid.org/0000-0002-8824-1946", + "@id": "https://orcid.org/0000-0002-5748-9594", "@type": "Person", - "email": "gisela.gabernet@gmail.com", - "name": "Gisela Gabernet Garriga" + "email": "pranathi93.vemuri@gmail.com", + "name": "Pranathi Vemuri" }, { - "@id": "#omeally@gmail.com", + "@id": "https://orcid.org/0000-0002-6503-2180", "@type": "Person", - "email": "omeally@gmail.com", - "name": "Denis OMeally" + "email": "apeltzer@users.noreply.github.com", + "name": "Alexander Peltzer" }, { - "@id": "https://orcid.org/0000-0001-9017-591X", + "@id": "https://orcid.org/0000-0003-4412-7970", "@type": "Person", - "email": "rickard.hammaren@scilifelab.se", - "name": "Rickard Hammar\u00e9n" + "email": "olga.botvinnik@gmail.com", + "name": "Olga Botvinnik" }, { - "@id": "https://orcid.org/0000-0002-2798-9870", + "@id": "#zhoupenggeni@gmail.com", "@type": "Person", - "email": "silvia.morini01@gmail.com", - "name": "Silvia Morini" + "email": "zhoupenggeni@gmail.com", + "name": "Peng Zhou" }, { - "@id": "#42973691+d4straub@users.noreply.github.com", + "@id": "https://orcid.org/0000-0002-3859-3249", "@type": "Person", - "email": "42973691+d4straub@users.noreply.github.com", - "name": "Daniel Straub" + "email": "lorena.pantano@gmail.com", + "name": "Lorena Pantano" + }, + { + "@id": "https://orcid.org/0000-0002-8721-2350", + "@type": "Person", + "email": "rob.syme@gmail.com", + "name": "Robert Syme" + }, + { + "@id": "https://orcid.org/0009-0009-7515-5000", + "@type": "Person", + "email": "sofia.haglund@scilifelab.se", + "name": "Sofia Haglund" } ] } \ No newline at end of file diff --git a/subworkflows/local/align_star/main.nf b/subworkflows/local/align_star/main.nf index 4f516e8e0..a8d498a66 100644 --- a/subworkflows/local/align_star/main.nf +++ b/subworkflows/local/align_star/main.nf @@ -1,10 +1,10 @@ // // Alignment with STAR // - -include { STAR_ALIGN } from '../../../modules/nf-core/star/align' -include { STAR_ALIGN_IGENOMES } from '../../../modules/local/star_align_igenomes' -include { BAM_SORT_STATS_SAMTOOLS } from '../../nf-core/bam_sort_stats_samtools' +include { SENTIEON_STARALIGN as SENTIEON_STAR_ALIGN } from '../../../modules/nf-core/sentieon/staralign/main' +include { STAR_ALIGN } from '../../../modules/nf-core/star/align' +include { STAR_ALIGN_IGENOMES } from '../../../modules/local/star_align_igenomes' +include { BAM_SORT_STATS_SAMTOOLS } from '../../nf-core/bam_sort_stats_samtools' workflow ALIGN_STAR { take: @@ -16,6 +16,7 @@ workflow ALIGN_STAR { seq_center // string : sequencing center is_aws_igenome // boolean: whether the genome files are from AWS iGenomes fasta // channel: /path/to/fasta + use_sentieon_star // boolean: whether star alignment is accelerated with Sentieon main: @@ -24,60 +25,54 @@ workflow ALIGN_STAR { // // Map reads with STAR // - ch_orig_bam = Channel.empty() - ch_log_final = Channel.empty() - ch_log_out = Channel.empty() - ch_log_progress = Channel.empty() - ch_bam_sorted = Channel.empty() - ch_bam_transcript = Channel.empty() - ch_fastq = Channel.empty() - ch_tab = Channel.empty() - if (is_aws_igenome) { - STAR_ALIGN_IGENOMES ( reads, index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ch_orig_bam = STAR_ALIGN_IGENOMES.out.bam - ch_log_final = STAR_ALIGN_IGENOMES.out.log_final - ch_log_out = STAR_ALIGN_IGENOMES.out.log_out - ch_log_progress = STAR_ALIGN_IGENOMES.out.log_progress - ch_bam_sorted = STAR_ALIGN_IGENOMES.out.bam_sorted - ch_bam_transcript = STAR_ALIGN_IGENOMES.out.bam_transcript - ch_fastq = STAR_ALIGN_IGENOMES.out.fastq - ch_tab = STAR_ALIGN_IGENOMES.out.tab - ch_versions = ch_versions.mix(STAR_ALIGN_IGENOMES.out.versions.first()) + ch_star_out = null + if (use_sentieon_star) { + + SENTIEON_STAR_ALIGN(reads, index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center) + ch_star_out = SENTIEON_STAR_ALIGN + + } else if (is_aws_igenome) { + + STAR_ALIGN_IGENOMES(reads, index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center) + ch_star_out = STAR_ALIGN_IGENOMES + } else { - STAR_ALIGN ( reads, index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ch_orig_bam = STAR_ALIGN.out.bam - ch_log_final = STAR_ALIGN.out.log_final - ch_log_out = STAR_ALIGN.out.log_out - ch_log_progress = STAR_ALIGN.out.log_progress - ch_bam_sorted = STAR_ALIGN.out.bam_sorted - ch_bam_transcript = STAR_ALIGN.out.bam_transcript - ch_fastq = STAR_ALIGN.out.fastq - ch_tab = STAR_ALIGN.out.tab - ch_versions = ch_versions.mix(STAR_ALIGN.out.versions.first()) + + STAR_ALIGN(reads, index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center) + ch_star_out = STAR_ALIGN + } + ch_orig_bam = ch_star_out.out.bam + ch_log_final = ch_star_out.out.log_final + ch_log_out = ch_star_out.out.log_out + ch_log_progress = ch_star_out.out.log_progress + ch_bam_sorted = ch_star_out.out.bam_sorted + ch_bam_transcript = ch_star_out.out.bam_transcript + ch_fastq = ch_star_out.out.fastq + ch_tab = ch_star_out.out.tab + ch_versions = ch_versions.mix(ch_star_out.out.versions.first()) + // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS ( ch_orig_bam, fasta ) + BAM_SORT_STATS_SAMTOOLS(ch_orig_bam, fasta) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) emit: - orig_bam = ch_orig_bam // channel: [ val(meta), bam ] - log_final = ch_log_final // channel: [ val(meta), log_final ] - log_out = ch_log_out // channel: [ val(meta), log_out ] - log_progress = ch_log_progress // channel: [ val(meta), log_progress ] - bam_sorted = ch_bam_sorted // channel: [ val(meta), bam_sorted ] + orig_bam = ch_orig_bam // channel: [ val(meta), bam ] + log_final = ch_log_final // channel: [ val(meta), log_final ] + log_out = ch_log_out // channel: [ val(meta), log_out ] + log_progress = ch_log_progress // channel: [ val(meta), log_progress ] + bam_sorted = ch_bam_sorted // channel: [ val(meta), bam_sorted ] bam_transcript = ch_bam_transcript // channel: [ val(meta), bam_transcript ] - fastq = ch_fastq // channel: [ val(meta), fastq ] - tab = ch_tab // channel: [ val(meta), tab ] - - bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - csi = BAM_SORT_STATS_SAMTOOLS.out.csi // channel: [ val(meta), [ csi ] ] - stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - versions = ch_versions // channel: [ versions.yml ] + fastq = ch_fastq // channel: [ val(meta), fastq ] + tab = ch_tab // channel: [ val(meta), tab ] + bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] + csi = BAM_SORT_STATS_SAMTOOLS.out.csi // channel: [ val(meta), [ csi ] ] + stats = BAM_SORT_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + versions = ch_versions // channel: [ versions.yml ] } diff --git a/subworkflows/local/align_star/nextflow.config b/subworkflows/local/align_star/nextflow.config index 106710e05..535f8347a 100644 --- a/subworkflows/local/align_star/nextflow.config +++ b/subworkflows/local/align_star/nextflow.config @@ -30,6 +30,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { process { // We have to condition this, because the args are slightly different between the latest STAR and the one compatible with iGenomes + // The Sentieon implementation also uses the older arguments version withName: '.*:ALIGN_STAR:STAR_ALIGN' { ext.args = { @@ -40,7 +41,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ) } } - withName: '.*:ALIGN_STAR:STAR_ALIGN_IGENOMES' { + withName: '.*:ALIGN_STAR:STAR_ALIGN_IGENOMES|.*:ALIGN_STAR:SENTIEON_STAR_ALIGN' { ext.args = { generateStarAlignArgs( params.save_unaligned, @@ -49,7 +50,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ) } } - withName: '.*:ALIGN_STAR:STAR_ALIGN|.*:ALIGN_STAR:STAR_ALIGN_IGENOMES' { + withName: '.*:ALIGN_STAR:STAR_ALIGN|.*:ALIGN_STAR:STAR_ALIGN_IGENOMES|.*:ALIGN_STAR:SENTIEON_STAR_ALIGN' { publishDir = [ [ diff --git a/subworkflows/local/align_star/tests/main.nf.test b/subworkflows/local/align_star/tests/main.nf.test index e1e584bea..9c3bd2203 100644 --- a/subworkflows/local/align_star/tests/main.nf.test +++ b/subworkflows/local/align_star/tests/main.nf.test @@ -32,6 +32,7 @@ nextflow_workflow { seq_platform = 'illumina' seq_center = false is_aws_igenome = false + use_sentieon_star = false input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map @@ -53,6 +54,82 @@ nextflow_workflow { [ id:'test_fasta' ], [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] ]) + input[8] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + file(workflow.out.log_final[0][1]).name, + file(workflow.out.log_out[0][1]).name, + file(workflow.out.bai[0][1]).name, + bam(workflow.out.bam[0][1]).getReadsMD5(), + workflow.out.csi, + workflow.out.log_progress, + workflow.out.fastq, + workflow.out.flagstat, + workflow.out.idxstats, + bam(workflow.out.orig_bam[0][1]).getReadsMD5(), + workflow.out.stats, + workflow.out.tab, + workflow.out.versions).match()} + ) + } + } + + test("sentieon star - no igenomes") { + tag "sentieon" + setup { + run("STAR_GENOMEGENERATE") { + script "../../../../modules/nf-core/star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + workflow { + """ + star_ignore_sjdbgtf = false + seq_platform = 'illumina' + seq_center = false + is_aws_igenome = false + use_sentieon_star = true + + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = star_ignore_sjdbgtf + input[4] = seq_platform + input[5] = seq_center + input[6] = is_aws_igenome + input[7] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[8] = use_sentieon_star """ } } @@ -99,6 +176,7 @@ nextflow_workflow { seq_platform = 'illumina' seq_center = false is_aws_igenome = true + use_sentieon_star = false input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map @@ -120,6 +198,7 @@ nextflow_workflow { [ id:'test_fasta' ], [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] ]) + input[8] = use_sentieon_star """ } } @@ -174,6 +253,85 @@ nextflow_workflow { seq_platform = 'illumina' seq_center = false is_aws_igenome = false + use_sentieon_star = false + + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = STAR_GENOMEGENERATE.out.index + input[2] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + input[3] = star_ignore_sjdbgtf + input[4] = seq_platform + input[5] = seq_center + input[6] = is_aws_igenome + input[7] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[8] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + workflow.out.bai, + workflow.out.bam, + workflow.out.bam_sorted, + workflow.out.bam_transcript, + workflow.out.csi, + workflow.out.flagstat, + workflow.out.idxstats, + workflow.out.log_final, + workflow.out.log_out, + workflow.out.log_progress, + workflow.out.orig_bam, + workflow.out.stats, + workflow.out.tab, + workflow.out.versions).match()} + ) + } + } + + test("sentieon star - no igenomes - stub") { + tag "sentieon" + options "-stub" + + setup { + run("STAR_GENOMEGENERATE") { + script "../../../../modules/nf-core/star/genomegenerate/main.nf" + process { + """ + input[0] = Channel.of([ + [ id:'test_fasta' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] + ]) + input[1] = Channel.of([ + [ id:'test_gtf' ], + [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true) ] + ]) + """ + } + } + } + + when { + workflow { + """ + star_ignore_sjdbgtf = false + seq_platform = 'illumina' + seq_center = false + is_aws_igenome = false + use_sentieon_star = true input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map @@ -195,6 +353,7 @@ nextflow_workflow { [ id:'test_fasta' ], [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] ]) + input[8] = use_sentieon_star """ } } @@ -244,6 +403,7 @@ nextflow_workflow { seq_platform = 'illumina' seq_center = false is_aws_igenome = true + use_sentieon_star = false input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map @@ -265,6 +425,7 @@ nextflow_workflow { [ id:'test_fasta' ], [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ] ]) + input[8] = use_sentieon_star """ } } diff --git a/subworkflows/local/align_star/tests/main.nf.test.snap b/subworkflows/local/align_star/tests/main.nf.test.snap index c55ad9f23..c7eff58a7 100644 --- a/subworkflows/local/align_star/tests/main.nf.test.snap +++ b/subworkflows/local/align_star/tests/main.nf.test.snap @@ -208,6 +208,142 @@ }, "timestamp": "2024-12-19T09:49:19.874380799" }, + "sentieon star - no igenomes - stub": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.final.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", + "testXd.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + [ + "versions.yml:md5,5ad5e88ee4e52ccabeef61dcd368d30b", + "versions.yml:md5,92f25606f0ee994dac8c00fe49676e5a", + "versions.yml:md5,9611f602102b5aed0fe2b947f9d2270c", + "versions.yml:md5,acd96767bb59492168c6c7b75d3f984e", + "versions.yml:md5,b92d6ad60847882b0089f551c5cfc366", + "versions.yml:md5,d5e8b4d761dd85a303814239077bd666" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-12T07:52:13.10736278" + }, "star - no igenomes": { "content": [ "test.Log.final.out", @@ -281,6 +417,79 @@ }, "timestamp": "2025-06-06T17:36:09.274326" }, + "sentieon star - no igenomes": { + "content": [ + "test.Log.final.out", + "test.Log.out", + "test.bam.bai", + "1e02b8e6b4a02ab58bfe4ee795aba815", + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.Log.progress.out:md5,b2bd061d6cbaaf3d6d3b1fed547f69b8" + ] + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.flagstat:md5,db0e25cd0b37d3030e807846c022199e" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.idxstats:md5,107ca94dd426cc44db316f0d402307c5" + ] + ], + "db9a8324b5163b025bcc0c33e848486", + [ + [ + { + "id": "test", + "single_end": false + }, + "test.stats:md5,bad7f610455554f5523eb1ae58ab7afe" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.SJ.out.tab:md5,844af19ab0fc8cd9a3f75228445aca0d" + ] + ], + [ + "versions.yml:md5,5ad5e88ee4e52ccabeef61dcd368d30b", + "versions.yml:md5,92f25606f0ee994dac8c00fe49676e5a", + "versions.yml:md5,9611f602102b5aed0fe2b947f9d2270c", + "versions.yml:md5,acd96767bb59492168c6c7b75d3f984e", + "versions.yml:md5,b92d6ad60847882b0089f551c5cfc366", + "versions.yml:md5,d5e8b4d761dd85a303814239077bd666" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-12T07:52:13.10736278" + }, "star - with igenomes - stub": { "content": [ [ diff --git a/subworkflows/local/align_star/tests/nextflow.config b/subworkflows/local/align_star/tests/nextflow.config index 2c26d74d6..f3fd6a443 100644 --- a/subworkflows/local/align_star/tests/nextflow.config +++ b/subworkflows/local/align_star/tests/nextflow.config @@ -3,10 +3,25 @@ process { ext.args = '--genomeSAindexNbases 9' } - withName: 'STAR_ALIGN.*' { + withName: '.*STAR_ALIGN.*' { ext.args = '--readFilesCommand zcat --outSAMtype BAM SortedByCoordinate --outWigType bedGraph --outWigStrand Unstranded' } } // Fix chown issue for the output star folder docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' + +// NOTE This is how pipeline users will use Sentieon in real world use +if (System.getenv('SENTIEON_LICSRVR_IP')) { + env.SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" +} +//NOTE This should only happen in GitHub actions or nf-core MegaTests +if (System.getenv('SENTIEON_AUTH_MECH')) { + env.SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" +} +if (secrets.SENTIEON_AUTH_DATA) { + env.SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA +} + +// NOTE This is how pipeline users will test out Sentieon with a license file +// nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/subworkflows/local/prepare_genome/main.nf b/subworkflows/local/prepare_genome/main.nf index f4c82778e..559f6846d 100644 --- a/subworkflows/local/prepare_genome/main.nf +++ b/subworkflows/local/prepare_genome/main.nf @@ -29,6 +29,8 @@ include { SALMON_INDEX } from '../../../modules/nf-core/sal include { KALLISTO_INDEX } from '../../../modules/nf-core/kallisto/index' include { RSEM_PREPAREREFERENCE as RSEM_PREPAREREFERENCE_GENOME } from '../../../modules/nf-core/rsem/preparereference' include { RSEM_PREPAREREFERENCE as MAKE_TRANSCRIPTS_FASTA } from '../../../modules/nf-core/rsem/preparereference' +include { SENTIEON_RSEMPREPAREREFERENCE as SENTIEON_RSEM_PREPAREREFERENCE_GENOME } from '../../../modules/nf-core/sentieon/rsempreparereference' +include { SENTIEON_RSEMPREPAREREFERENCE as SENTIEON_MAKE_TRANSCRIPTS_FASTA } from '../../../modules/nf-core/sentieon/rsempreparereference' include { PREPROCESS_TRANSCRIPTS_FASTA_GENCODE } from '../../../modules/local/preprocess_transcripts_fasta_gencode' include { GTF2BED } from '../../../modules/local/gtf2bed' @@ -63,6 +65,7 @@ workflow PREPARE_GENOME { skip_sortmerna // boolean: Skip sortmerna for removal of reads mapping to sequences in sortmerna_fasta_list skip_alignment // boolean: Skip all of the alignment-based processes within the pipeline skip_pseudo_alignment // boolean: Skip all of the pseudoalignment-based processes within the pipeline + use_sentieon_star // boolean: whether to use sentieon STAR version main: // Versions collector @@ -180,9 +183,17 @@ workflow PREPARE_GENOME { ch_versions = ch_versions.mix(PREPROCESS_TRANSCRIPTS_FASTA_GENCODE.out.versions) } } else if (fasta_provided) { - // Build transcripts from genome if we have it - ch_transcript_fasta = MAKE_TRANSCRIPTS_FASTA(ch_fasta, ch_gtf).transcript_fasta - ch_versions = ch_versions.mix(MAKE_TRANSCRIPTS_FASTA.out.versions) + + if(use_sentieon_star){ + // Build transcripts from genome if we have it + ch_transcript_fasta = SENTIEON_MAKE_TRANSCRIPTS_FASTA(ch_fasta, ch_gtf).transcript_fasta + ch_versions = ch_versions.mix(SENTIEON_MAKE_TRANSCRIPTS_FASTA.out.versions) + } else { + // Build transcripts from genome if we have it + ch_transcript_fasta = MAKE_TRANSCRIPTS_FASTA(ch_fasta, ch_gtf).transcript_fasta + ch_versions = ch_versions.mix(MAKE_TRANSCRIPTS_FASTA.out.versions) + } + } //------------------------------------------------------- @@ -320,8 +331,15 @@ workflow PREPARE_GENOME { } } else if (fasta_provided) { - ch_rsem_index = RSEM_PREPAREREFERENCE_GENOME(ch_fasta, ch_gtf).index - ch_versions = ch_versions.mix(RSEM_PREPAREREFERENCE_GENOME.out.versions) + + if(use_sentieon_star){ + ch_rsem_index = SENTIEON_RSEM_PREPAREREFERENCE_GENOME(ch_fasta, ch_gtf).index + ch_versions = ch_versions.mix(SENTIEON_RSEM_PREPAREREFERENCE_GENOME.out.versions) + }else{ + ch_rsem_index = RSEM_PREPAREREFERENCE_GENOME(ch_fasta, ch_gtf).index + ch_versions = ch_versions.mix(RSEM_PREPAREREFERENCE_GENOME.out.versions) + } + } } diff --git a/subworkflows/local/prepare_genome/nextflow.config b/subworkflows/local/prepare_genome/nextflow.config index b06aaa617..f09e17f04 100644 --- a/subworkflows/local/prepare_genome/nextflow.config +++ b/subworkflows/local/prepare_genome/nextflow.config @@ -1,5 +1,5 @@ process { - withName: 'GUNZIP_.*|MAKE_TRANSCRIPTS_FASTA' { + withName: 'GUNZIP_.*|.*MAKE_TRANSCRIPTS_FASTA' { publishDir = [ path: { params.save_reference ? "${params.outdir}/genome" : params.outdir }, mode: params.publish_dir_mode, @@ -58,7 +58,7 @@ process { ] } - withName: 'RSEM_PREPAREREFERENCE_GENOME' { + withName: '.*RSEM_PREPAREREFERENCE_GENOME' { ext.args = '--star' publishDir = [ path: { params.save_reference ? "${params.outdir}/genome/index" : params.outdir }, diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test b/subworkflows/local/prepare_genome/tests/main.nf.test index fd8dc5154..7fa2d790f 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test +++ b/subworkflows/local/prepare_genome/tests/main.nf.test @@ -14,11 +14,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -45,6 +46,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -81,11 +83,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -112,6 +115,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -148,11 +152,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = true + skip_gtf_filter = true skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -179,6 +184,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -220,6 +226,7 @@ nextflow_workflow { skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -246,6 +253,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -282,11 +290,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = true skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -313,6 +322,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -349,11 +359,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = true + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -380,6 +391,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -416,11 +428,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = false @@ -447,6 +460,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -483,11 +497,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -514,6 +529,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -550,11 +566,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -581,6 +598,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -617,11 +635,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -648,6 +667,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -684,11 +704,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -715,6 +736,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -751,11 +773,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -782,6 +805,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -818,11 +842,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -849,6 +874,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -885,11 +911,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -916,6 +943,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -952,11 +980,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -983,6 +1012,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1019,11 +1049,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_type' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1050,6 +1081,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1086,11 +1118,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = true + skip_gtf_filter = true skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1117,6 +1150,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1153,11 +1187,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = true skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1184,6 +1219,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1220,11 +1256,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = true skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1251,6 +1288,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1287,11 +1325,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = true + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1318,6 +1357,76 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + workflow.out.transcript_fasta, + workflow.out.salmon_index, + workflow.out.fasta, + workflow.out.gtf, + workflow.out.fai, + workflow.out.gene_bed, + workflow.out.chrom_sizes, + workflow.out.splicesites, + workflow.out.sortmerna_index, + workflow.out.star_index, + workflow.out.rsem_index, + workflow.out.hisat2_index, + workflow.out.kallisto_index, + workflow.out.versions + ).match() } + ) + } + } + + test("use_sentieon_star = true") { + + when { + workflow { + """ + gencode = false + featurecounts_group_type = 'gene_biotype' + aligner = 'star_salmon,star_rsem,hisat2' + pseudo_aligner = 'salmon,kallisto' + skip_gtf_filter = false + skip_bbsplit = false + skip_sortmerna = true + skip_alignment = false + skip_pseudo_alignment = false + use_sentieon_star = true + + input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) + input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) + input[2] = file(params.pipelines_testdata_base_path + 'reference/genes.gff', checkIfExists: true) + input[3] = file(params.pipelines_testdata_base_path + 'reference/gfp.fa', checkIfExists: true) + input[4] = file(params.pipelines_testdata_base_path + 'reference/transcriptome.fasta', checkIfExists: true) + input[5] = null + input[6] = null + input[7] = file(params.pipelines_testdata_base_path + 'reference/bbsplit_fasta_list.txt', checkIfExists: true) + input[8] = null + input[9] = null + input[10] = file(params.pipelines_testdata_base_path + 'reference/rsem.tar.gz', checkIfExists: true) + input[11] = file(params.pipelines_testdata_base_path + 'reference/salmon.tar.gz', checkIfExists: true) + input[12] = null + input[13] = file(params.pipelines_testdata_base_path + 'reference/hisat2.tar.gz', checkIfExists: true) + input[14] = null + input[15] = null + input[16] = gencode + input[17] = featurecounts_group_type + input[18] = aligner + input[19] = pseudo_aligner + input[20] = skip_gtf_filter + input[21] = skip_bbsplit + input[22] = skip_sortmerna + input[23] = skip_alignment + input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1356,11 +1465,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1387,6 +1497,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1425,11 +1536,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1456,6 +1568,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1494,11 +1607,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = true + skip_gtf_filter = true skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1525,6 +1639,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1563,11 +1678,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = true skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1594,6 +1710,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1617,11 +1734,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = true skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1648,6 +1766,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1686,11 +1805,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = true + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1717,6 +1837,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1755,11 +1876,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = false @@ -1786,6 +1908,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1824,11 +1947,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1855,6 +1979,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1893,11 +2018,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1924,6 +2050,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -1962,11 +2089,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -1993,6 +2121,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2036,6 +2165,7 @@ nextflow_workflow { skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2062,6 +2192,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2105,6 +2236,7 @@ nextflow_workflow { skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2131,6 +2263,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2169,11 +2302,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2200,6 +2334,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2238,11 +2373,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2269,6 +2405,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2307,11 +2444,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2338,6 +2476,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2376,11 +2515,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_type' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2407,6 +2547,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2445,11 +2586,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = true + skip_gtf_filter = true skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2476,6 +2618,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2514,11 +2657,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = true skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2545,6 +2689,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2568,11 +2713,12 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = true skip_pseudo_alignment = false + use_sentieon_star = false input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2599,6 +2745,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } @@ -2637,11 +2784,83 @@ nextflow_workflow { featurecounts_group_type = 'gene_biotype' aligner = 'star_salmon,star_rsem,hisat2' pseudo_aligner = 'salmon,kallisto' - skip_gtf_filter = false + skip_gtf_filter = false skip_bbsplit = false skip_sortmerna = true skip_alignment = false skip_pseudo_alignment = true + use_sentieon_star = false + + input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) + input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) + input[2] = file(params.pipelines_testdata_base_path + 'reference/genes.gff', checkIfExists: true) + input[3] = file(params.pipelines_testdata_base_path + 'reference/gfp.fa', checkIfExists: true) + input[4] = file(params.pipelines_testdata_base_path + 'reference/transcriptome.fasta', checkIfExists: true) + input[5] = null + input[6] = null + input[7] = file(params.pipelines_testdata_base_path + 'reference/bbsplit_fasta_list.txt', checkIfExists: true) + input[8] = null + input[9] = null + input[10] = file(params.pipelines_testdata_base_path + 'reference/rsem.tar.gz', checkIfExists: true) + input[11] = file(params.pipelines_testdata_base_path + 'reference/salmon.tar.gz', checkIfExists: true) + input[12] = null + input[13] = file(params.pipelines_testdata_base_path + 'reference/hisat2.tar.gz', checkIfExists: true) + input[14] = null + input[15] = null + input[16] = gencode + input[17] = featurecounts_group_type + input[18] = aligner + input[19] = pseudo_aligner + input[20] = skip_gtf_filter + input[21] = skip_bbsplit + input[22] = skip_sortmerna + input[23] = skip_alignment + input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot( + workflow.out.chrom_sizes, + workflow.out.fai, + workflow.out.fasta, + workflow.out.gene_bed, + workflow.out.gtf, + workflow.out.hisat2_index, + workflow.out.kallisto_index, + workflow.out.rsem_index, + workflow.out.salmon_index, + workflow.out.sortmerna_index, + workflow.out.splicesites, + workflow.out.star_index, + workflow.out.transcript_fasta, + workflow.out.versions + ).match() } + ) + } + } + + test("use_sentieon_star - stub") { + + options "-stub" + + when { + workflow { + """ + gencode = false + featurecounts_group_type = 'gene_biotype' + aligner = 'star_salmon,star_rsem,hisat2' + pseudo_aligner = 'salmon,kallisto' + skip_gtf_filter = false + skip_bbsplit = false + skip_sortmerna = true + skip_alignment = false + skip_pseudo_alignment = false + use_sentieon_star = true input[0] = file(params.pipelines_testdata_base_path + 'reference/genome.fasta', checkIfExists: true) input[1] = file(params.pipelines_testdata_base_path + 'reference/genes_with_empty_tid.gtf', checkIfExists: true) @@ -2668,6 +2887,7 @@ nextflow_workflow { input[22] = skip_sortmerna input[23] = skip_alignment input[24] = skip_pseudo_alignment + input[25] = use_sentieon_star """ } } diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test.snap b/subworkflows/local/prepare_genome/tests/main.nf.test.snap index a13fbf3cf..ff65eefee 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test.snap +++ b/subworkflows/local/prepare_genome/tests/main.nf.test.snap @@ -2312,5 +2312,115 @@ "nextflow": "24.10.4" }, "timestamp": "2025-01-22T16:25:54.053589157" + }, + "use_sentieon_star = true": { + "content": [ + [ + "/ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/reference/transcriptome.fasta" + ], + [ + "/ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/reference/salmon.tar.gz" + ], + [ + "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055" + ], + [ + "genome_gfp.gtf:md5,c98b12c302f15731bfc36bcf297cfe28" + ], + [ + "genome_gfp.fasta.fai:md5,8fa54c6bd2ea6a369efbb8ab4f30156a" + ], + [ + "genome_gfp.bed:md5,991993ebef1def1d5823632c21177ec3" + ], + [ + "genome_gfp.fasta.sizes:md5,9b755f8f349b14accefb4d859f84de26" + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + "versions.yml:md5,04400316552e6253e0008f052b20d866", + "versions.yml:md5,71252f1a221be05593361acccb99506b", + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,cc5444e21efd35d6322702dbef835fb5", + "versions.yml:md5,ccf59b1e546d2b873f052f6a2d8a0d1a" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.2" + }, + "timestamp": "2025-06-04T14:43:23.956364009" + }, + "use_sentieon_star - stub": { + "content": [ + [ + "genome_transcriptome.fasta.sizes:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + "genome_transcriptome.fasta.fai:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + "genome_transcriptome.bed:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + [ + + ], + [ + + ], + [ + + ], + [ + "/ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/reference/salmon.tar.gz" + ], + [ + + ], + [ + + ], + [ + + ], + [ + "/ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/reference/transcriptome.fasta" + ], + [ + "versions.yml:md5,71252f1a221be05593361acccb99506b", + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,cc5444e21efd35d6322702dbef835fb5", + "versions.yml:md5,cc8f32b7c37c35a075d38cb773004eaa", + "versions.yml:md5,ccf59b1e546d2b873f052f6a2d8a0d1a" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.2" + }, + "timestamp": "2025-06-04T14:51:45.456290803" } } \ No newline at end of file diff --git a/subworkflows/local/prepare_genome/tests/nextflow.config b/subworkflows/local/prepare_genome/tests/nextflow.config index 3fdd992f4..480f79f80 100644 --- a/subworkflows/local/prepare_genome/tests/nextflow.config +++ b/subworkflows/local/prepare_genome/tests/nextflow.config @@ -3,7 +3,7 @@ process { ext.args = '--keep-exon-attrs -F -T' } - withName: 'RSEM_PREPAREREFERENCE_GENOME' { + withName: '.*RSEM_PREPAREREFERENCE_GENOME' { ext.args = '--star' } @@ -22,3 +22,18 @@ process { // Fix chown issue for the output star folder docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' + +// NOTE This is how pipeline users will use Sentieon in real world use +if (System.getenv('SENTIEON_LICSRVR_IP')) { + env.SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" +} +//NOTE This should only happen in GitHub actions or nf-core MegaTests +if (System.getenv('SENTIEON_AUTH_MECH')) { + env.SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" +} +if (secrets.SENTIEON_AUTH_DATA) { + env.SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA +} + +// NOTE This is how pipeline users will test out Sentieon with a license file +// nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/subworkflows/local/quantify_rsem/main.nf b/subworkflows/local/quantify_rsem/main.nf index 4b7473634..33a271a6e 100644 --- a/subworkflows/local/quantify_rsem/main.nf +++ b/subworkflows/local/quantify_rsem/main.nf @@ -5,12 +5,14 @@ include { RSEM_CALCULATEEXPRESSION } from '../../../modules/nf-core/rsem/calculateexpression' include { RSEM_MERGE_COUNTS } from '../../../modules/local/rsem_merge_counts' include { BAM_SORT_STATS_SAMTOOLS } from '../../nf-core/bam_sort_stats_samtools' +include { SENTIEON_RSEMCALCULATEEXPRESSION } from '../../../modules/nf-core/sentieon/rsemcalculateexpression' workflow QUANTIFY_RSEM { take: - reads // channel: [ val(meta), [ reads ] ] - index // channel: /path/to/rsem/index/ - fasta // channel: [ val(meta), [ fasta ] ] + reads // channel: [ val(meta), [ reads ] ] + index // channel: /path/to/rsem/index/ + fasta // channel: [ val(meta), [ fasta ] ] + use_sentieon_star // boolean: determines whether RSEM is run with Sentieon accelerated STAR main: @@ -19,32 +21,47 @@ workflow QUANTIFY_RSEM { // // Quantify reads with RSEM // - RSEM_CALCULATEEXPRESSION ( reads, index ) - ch_versions = ch_versions.mix(RSEM_CALCULATEEXPRESSION.out.versions.first()) + ch_rsem_out = null + if (use_sentieon_star){ + SENTIEON_RSEMCALCULATEEXPRESSION ( reads, index ) + ch_rsem_out = SENTIEON_RSEMCALCULATEEXPRESSION + } else { + RSEM_CALCULATEEXPRESSION ( reads, index ) + ch_rsem_out = RSEM_CALCULATEEXPRESSION + } + + ch_bam_star = ch_rsem_out.out.bam_star + ch_counts_gene = ch_rsem_out.out.counts_gene + ch_counts_transcript = ch_rsem_out.out.counts_transcript + ch_stat = ch_rsem_out.out.stat + ch_logs = ch_rsem_out.out.logs + ch_bam_genome = ch_rsem_out.out.bam_genome + ch_bam_transcript = ch_rsem_out.out.bam_transcript + ch_versions = ch_versions.mix(ch_rsem_out.out.versions.first()) // // Sort, index BAM file and run samtools stats, flagstat and idxstats // - BAM_SORT_STATS_SAMTOOLS ( RSEM_CALCULATEEXPRESSION.out.bam_star, fasta ) + BAM_SORT_STATS_SAMTOOLS ( ch_bam_star, fasta ) ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS.out.versions) // // Merge counts across samples // RSEM_MERGE_COUNTS ( - RSEM_CALCULATEEXPRESSION.out.counts_gene.collect{it[1]}, // [meta, counts]: Collect the second element (counts files) in the channel across all samples - RSEM_CALCULATEEXPRESSION.out.counts_transcript.collect{it[1]} + ch_counts_gene.collect{it[1]}, // [meta, counts]: Collect the second element (counts files) in the channel across all samples + ch_counts_transcript.collect{it[1]} ) ch_versions = ch_versions.mix(RSEM_MERGE_COUNTS.out.versions) emit: - counts_gene = RSEM_CALCULATEEXPRESSION.out.counts_gene // channel: [ val(meta), counts ] - counts_transcript = RSEM_CALCULATEEXPRESSION.out.counts_transcript // channel: [ val(meta), counts ] - stat = RSEM_CALCULATEEXPRESSION.out.stat // channel: [ val(meta), stat ] - logs = RSEM_CALCULATEEXPRESSION.out.logs // channel: [ val(meta), logs ] - bam_star = RSEM_CALCULATEEXPRESSION.out.bam_star // channel: [ val(meta), bam ] - bam_genome = RSEM_CALCULATEEXPRESSION.out.bam_genome // channel: [ val(meta), bam ] - bam_transcript = RSEM_CALCULATEEXPRESSION.out.bam_transcript // channel: [ val(meta), bam ] + counts_gene = ch_counts_gene // channel: [ val(meta), counts ] + counts_transcript = ch_counts_transcript // channel: [ val(meta), counts ] + stat = ch_stat // channel: [ val(meta), stat ] + logs = ch_logs // channel: [ val(meta), logs ] + bam_star = ch_bam_star // channel: [ val(meta), bam ] + bam_genome = ch_bam_genome // channel: [ val(meta), bam ] + bam_transcript = ch_bam_transcript // channel: [ val(meta), bam ] bam = BAM_SORT_STATS_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] bai = BAM_SORT_STATS_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] diff --git a/subworkflows/local/quantify_rsem/nextflow.config b/subworkflows/local/quantify_rsem/nextflow.config index 7b50b86c0..ec4ba6750 100644 --- a/subworkflows/local/quantify_rsem/nextflow.config +++ b/subworkflows/local/quantify_rsem/nextflow.config @@ -1,6 +1,6 @@ if (!params.skip_alignment && params.aligner == 'star_rsem') { process { - withName: '.*:QUANTIFY_RSEM:RSEM_CALCULATEEXPRESSION' { + withName: '.*:QUANTIFY_RSEM:RSEM_CALCULATEEXPRESSION|.*:QUANTIFY_RSEM:SENTIEON_RSEMCALCULATEEXPRESSION' { ext.args = [ '--star', '--star-output-genome-bam', diff --git a/subworkflows/local/quantify_rsem/tests/main.nf.test b/subworkflows/local/quantify_rsem/tests/main.nf.test index bba6f4372..04485a00e 100644 --- a/subworkflows/local/quantify_rsem/tests/main.nf.test +++ b/subworkflows/local/quantify_rsem/tests/main.nf.test @@ -6,7 +6,7 @@ nextflow_workflow { config "./nextflow.config" test("homo_sapiens") { - + tag "test" setup { run("RSEM_PREPAREREFERENCE") { script "../../../../modules/nf-core/rsem/preparereference/main.nf" @@ -22,6 +22,8 @@ nextflow_workflow { when { workflow { """ + use_sentieon_star = false + input[0] = Channel.of([ [ id:'test', strandedness: 'forward' ], // meta map [ @@ -31,6 +33,68 @@ nextflow_workflow { ]) input[1] = RSEM_PREPAREREFERENCE.out.index input[2] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[3] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + file(workflow.out.logs[0][1]).name, + workflow.out.counts_gene, + workflow.out.counts_transcript, + workflow.out.stat, + workflow.out.bam_star, + workflow.out.bam_genome, + workflow.out.bam_transcript, + workflow.out.counts_transcript, + workflow.out.bam, + workflow.out.bai, + workflow.out.csi, + workflow.out.stats, + workflow.out.flagstat, + workflow.out.idxstats, + workflow.out.merged_counts_gene, + workflow.out.merged_tpm_gene, + workflow.out.merged_counts_transcript, + workflow.out.merged_tpm_transcript, + workflow.out.versions + ).match()} + ) + } + } + + test("homo_sapiens - sentieon") { + tag "sentieon" + setup { + run("SENTIEON_RSEMPREPAREREFERENCE") { + script "../../../../modules/nf-core/sentieon/rsempreparereference/main.nf" + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + } + + when { + workflow { + """ + use_sentieon_star = true + + input[0] = Channel.of([ + [ id:'test', strandedness: 'forward' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = SENTIEON_RSEMPREPAREREFERENCE.out.index + input[2] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[3] = use_sentieon_star """ } } @@ -82,6 +146,8 @@ nextflow_workflow { when { workflow { """ + use_sentieon_star = false + input[0] = Channel.of([ [ id:'test', strandedness: 'forward' ], // meta map [ @@ -91,6 +157,50 @@ nextflow_workflow { ]) input[1] = RSEM_PREPAREREFERENCE.out.index input[2] = Channel.of([[id:'test'], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)]) + input[3] = use_sentieon_star + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match()} + ) + } + } + + test("homo_sapiens - sentieon - stub") { + + options "-stub" + + setup { + run("SENTIEON_RSEMPREPAREREFERENCE") { + script "../../../../modules/nf-core/sentieon/rsempreparereference/main.nf" + process { + """ + input[0] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)) + input[1] = Channel.of(file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.gtf', checkIfExists: true)) + """ + } + } + } + + when { + workflow { + """ + use_sentieon_star = true + + input[0] = Channel.of([ + [ id:'test', strandedness: 'forward' ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz', checkIfExists: true) + ] + ]) + input[1] = SENTIEON_RSEMPREPAREREFERENCE.out.index + input[2] = Channel.of([[id:'test'], file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)]) + input[3] = use_sentieon_star """ } } diff --git a/subworkflows/local/quantify_rsem/tests/main.nf.test.snap b/subworkflows/local/quantify_rsem/tests/main.nf.test.snap index fffd77549..5dd451bdf 100644 --- a/subworkflows/local/quantify_rsem/tests/main.nf.test.snap +++ b/subworkflows/local/quantify_rsem/tests/main.nf.test.snap @@ -274,6 +274,281 @@ }, "timestamp": "2024-10-21T14:49:44.270456428" }, + "homo_sapiens - sentieon - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "11": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.flagstat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.idxstats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + "rsem.merged.gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "14": [ + "rsem.merged.gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "15": [ + "rsem.merged.transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "16": [ + "rsem.merged.transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "17": [ + "versions.yml:md5,0f2bbea6c0412d2b185eab2dd0db06d5", + "versions.yml:md5,2a8e04c552c56aacc9a2d158fbc23a89", + "versions.yml:md5,2aa5252eb2ffb409cf556a165d40f8a9", + "versions.yml:md5,7696e625e0eda9d9ae30c8d5b3d23d9f", + "versions.yml:md5,773c15c4ecb7d486a4bdd8ef73e7ac5d", + "versions.yml:md5,f151349bd7086cb08134496033e78cea", + "versions.yml:md5,ff8adbe60177b3dba23d91b3424b10b6" + ], + "2": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.STAR.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.transcript.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "7": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "9": [ + + ], + "bai": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_genome": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_star": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.STAR.genome.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_transcript": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.transcript.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_gene": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "counts_transcript": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "csi": [ + + ], + "flagstat": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.flagstat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "idxstats": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.idxstats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "logs": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "merged_counts_gene": [ + "rsem.merged.gene_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "merged_counts_transcript": [ + "rsem.merged.transcript_counts.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "merged_tpm_gene": [ + "rsem.merged.gene_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "merged_tpm_transcript": [ + "rsem.merged.transcript_tpm.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ], + "stat": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stat:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "stats": [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.stats:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,0f2bbea6c0412d2b185eab2dd0db06d5", + "versions.yml:md5,2a8e04c552c56aacc9a2d158fbc23a89", + "versions.yml:md5,2aa5252eb2ffb409cf556a165d40f8a9", + "versions.yml:md5,7696e625e0eda9d9ae30c8d5b3d23d9f", + "versions.yml:md5,773c15c4ecb7d486a4bdd8ef73e7ac5d", + "versions.yml:md5,f151349bd7086cb08134496033e78cea", + "versions.yml:md5,ff8adbe60177b3dba23d91b3424b10b6" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-21T14:49:44.270456428" + }, "homo_sapiens": { "content": [ "test.log", @@ -372,5 +647,104 @@ "nextflow": "24.04.2" }, "timestamp": "2024-07-03T19:53:14.561568" + }, + "homo_sapiens - sentieon": { + "content": [ + "test.log", + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.genes.results:md5,c7ec226f76736ea805771e73553ae359" + ] + ], + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,99f7f80aa505b44ca429fdebbd7dd5d8" + ] + ], + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + [ + "test.cnt:md5,76249e6b2f3c104f414aae596ba2c2f4", + "test.model:md5,a7a4bc1734918ef5848604e3362b83e2", + "test.theta:md5,de2e4490c98cc5383a86ae8225fd0a28" + ] + ] + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.transcript.bam:md5,e8a05da15bb08d3a333be637fdd8be58" + ] + ], + [ + [ + { + "id": "test", + "strandedness": "forward" + }, + "test.isoforms.results:md5,99f7f80aa505b44ca429fdebbd7dd5d8" + ] + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + + ], + [ + "rsem.merged.gene_counts.tsv:md5,f3b586000c97c89aec45360772e73df1" + ], + [ + "rsem.merged.gene_tpm.tsv:md5,e6ae3dfa9913a7c15b705ec27c376212" + ], + [ + "rsem.merged.transcript_counts.tsv:md5,235c002b811360183494a2aac74d1f5b" + ], + [ + "rsem.merged.transcript_tpm.tsv:md5,d38f22667e3b8012f1d783b8d5159ccc" + ], + [ + "versions.yml:md5,12a2fefc07645c553dd331e91bb21cce", + "versions.yml:md5,2aa5252eb2ffb409cf556a165d40f8a9" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-12T07:52:13.10736278" } } \ No newline at end of file diff --git a/subworkflows/local/quantify_rsem/tests/nextflow.config b/subworkflows/local/quantify_rsem/tests/nextflow.config index 51fecdb1f..4b2da69ca 100644 --- a/subworkflows/local/quantify_rsem/tests/nextflow.config +++ b/subworkflows/local/quantify_rsem/tests/nextflow.config @@ -1,12 +1,27 @@ process { // Needs the glob to force the config to be applied - withName: "RSEM_PREPAREREFERENCE" { + withName: ".*RSEM_PREPAREREFERENCE|.*SENTIEON_RSEMPREPAREREFERENCE" { ext.args = "--star " } - withName: "RSEM_CALCULATEEXPRESSION" { + withName: ".*RSEM_CALCULATEEXPRESSION|.*SENTIEON_RSEMCALCULATEEXPRESSION" { ext.args = '--star --star-gzipped-read-file' } } + +// NOTE This is how pipeline users will use Sentieon in real world use +if (System.getenv('SENTIEON_LICSRVR_IP')) { + env.SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" +} +//NOTE This should only happen in GitHub actions or nf-core MegaTests +if (System.getenv('SENTIEON_AUTH_MECH')) { + env.SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" +} +if (secrets.SENTIEON_AUTH_DATA) { + env.SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA +} + +// NOTE This is how pipeline users will test out Sentieon with a license file +// nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config index 0907ac58f..09ef842ae 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config @@ -1,5 +1,5 @@ plugins { - id "nf-schema@2.1.0" + id "nf-schema@2.4.2" } validation { diff --git a/tests/.nftignore b/tests/.nftignore index 77b5531ee..32a368e86 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -1,7 +1,8 @@ + .DS_Store -fq_lint/*/*.fq_lint.txt bbsplit/*.stats.txt fastqc/*/*.{html,zip} +fq_lint/*/*.fq_lint.txt hisat2/log/*.hisat2.summary.log kallisto/*/abundance.{h5,tsv} kallisto/*/kallisto_quant.log @@ -18,10 +19,9 @@ umitools/*.umi_extract.log {hisat2,star_rsem,star_salmon}/*.{bam,bam.bai} {hisat2,star_rsem,star_salmon}/bigwig/*.{forward,reverse}.bigWig {hisat2,star_rsem,star_salmon}/dupradar/box_plot/*_duprateExpBoxplot.pdf -{hisat2,star_rsem,star_salmon}/dupradar/intercepts_slope/*_intercept_slope.txt {hisat2,star_rsem,star_salmon}/dupradar/histogram/*_expressionHist.pdf -{hisat2,star_rsem,star_salmon}/dupradar/scatter_plot/*_duprateExpDens.pdf {hisat2,star_rsem,star_salmon}/dupradar/intercepts_slope/*_intercept_slope.txt +{hisat2,star_rsem,star_salmon}/dupradar/scatter_plot/*_duprateExpDens.pdf {hisat2,star_rsem,star_salmon}/featurecounts/*.featureCounts.{txt,tsv}.summary {hisat2,star_rsem,star_salmon}/picard_metrics/*.MarkDuplicates.metrics.txt {hisat2,star_rsem,star_salmon}/qualimap/*/css/* @@ -37,12 +37,14 @@ umitools/*.umi_extract.log {hisat2,star_rsem,star_salmon}/stringtie/*.{coverage,transcripts}.gtf {hisat2,star_rsem,star_salmon}/{umitools,umicollapse}/{genomic,transcriptomic}_dedup_log/*.log {multiqc,multiqc/**}/multiqc_report.html +{multiqc,multiqc/**}/multiqc_report_data/BETA-multiqc.parquet {multiqc,multiqc/**}/multiqc_report_data/fastqc_{raw,trimmed}_top_overrepresented_sequences_table.txt {multiqc,multiqc/**}/multiqc_report_data/hisat2_pe_plot.txt {multiqc,multiqc/**}/multiqc_report_data/hisat2_se_plot.txt {multiqc,multiqc/**}/multiqc_report_data/junction_saturation_known.txt {multiqc,multiqc/**}/multiqc_report_data/junction_saturation_novel.txt {multiqc,multiqc/**}/multiqc_report_data/kallisto_alignment.txt +{multiqc,multiqc/**}/multiqc_report_data/llms-full.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc.log {multiqc,multiqc/**}/multiqc_report_data/multiqc_data.json {multiqc,multiqc/**}/multiqc_report_data/multiqc_dupradar.txt @@ -57,12 +59,19 @@ umitools/*.umi_extract.log {multiqc,multiqc/**}/multiqc_report_data/multiqc_rseqc_junction_annotation.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_rseqc_read_distribution.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_salmon.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_salmon_deseq2_pca.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_sample-relationships*.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_samtools_{flagstat,stats}.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_software_versions.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_sortmerna.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_sources.txt {multiqc,multiqc/**}/multiqc_report_data/multiqc_star.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_star_rsem_deseq2_clustering.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_star_rsem_deseq2_pca.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt +{multiqc,multiqc/**}/multiqc_report_data/multiqc_umitools_dedup.txt {multiqc,multiqc/**}/multiqc_report_data/picard_deduplication.txt {multiqc,multiqc/**}/multiqc_report_data/qualimap_genomic_origin.txt {multiqc,multiqc/**}/multiqc_report_data/qualimap_rnaseq_genome_results.txt @@ -74,27 +83,26 @@ umitools/*.umi_extract.log {multiqc,multiqc/**}/multiqc_report_data/rseqc_read_*.txt {multiqc,multiqc/**}/multiqc_report_data/salmon_plot.txt {multiqc,multiqc/**}/multiqc_report_data/samtools-flagstat-dp_*.txt +{multiqc,multiqc/**}/multiqc_report_data/samtools-flagstat-pct-table.txt +{multiqc,multiqc/**}/multiqc_report_data/samtools-flagstat-table.txt {multiqc,multiqc/**}/multiqc_report_data/samtools-stats-dp.txt {multiqc,multiqc/**}/multiqc_report_data/samtools_alignment_plot.txt {multiqc,multiqc/**}/multiqc_report_data/sortmerna-detailed-plot.txt {multiqc,multiqc/**}/multiqc_report_data/star_alignment_plot.txt {multiqc,multiqc/**}/multiqc_report_data/star_summary_table.txt -{multiqc,multiqc/**}/multiqc_report_data/BETA-multiqc.parquet -{multiqc,multiqc/**}/multiqc_report_data/samtools-flagstat-pct-table.txt -{multiqc,multiqc/**}/multiqc_report_data/samtools-flagstat-table.txt {multiqc,multiqc/**}/multiqc_report_data/umitools_deduplication_barplot.txt -{multiqc,multiqc/**}/multiqc_report_data/multiqc_umitools_dedup.txt {multiqc,multiqc/**}/multiqc_report_data/umitools_stats_violin.txt {multiqc,multiqc/**}/multiqc_report_plots/{pdf,png,svg}/*.{pdf,png,svg} -{salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.dds.RData +{salmon,kallisto}/all_samples_{gene,transcript}.SummarizedExperiment.rds {salmon,star_rsem,star_salmon}/deseq2_qc/R_sessionInfo.log +{salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.dds.RData {salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.pca.vals.txt {salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.plots.pdf {salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.sample.dists.txt {salmon,star_rsem,star_salmon}/deseq2_qc/size_factors/*.txt {salmon,star_rsem,star_salmon}/deseq2_qc/size_factors/deseq2.size_factors.RData -{salmon,star_rsem,star_salmon}/umitools/{genomic,transcriptomic}_dedup_log/* {salmon,star_rsem,star_salmon}/umitools/prepare_for_salmon_log/* +{salmon,star_rsem,star_salmon}/umitools/{genomic,transcriptomic}_dedup_log/* {salmon,star_salmon}/*/aux_info/fld.gz {salmon,star_salmon}/*/aux_info/meta_info.json {salmon,star_salmon}/*/libParams/flenDist.txt @@ -102,4 +110,3 @@ umitools/*.umi_extract.log {salmon,star_salmon}/*/quant.genes.sf {salmon,star_salmon}/*/quant.sf {salmon,star_salmon}/salmon.* -{salmon,kallisto}/all_samples_{gene,transcript}.SummarizedExperiment.rds diff --git a/tests/default.nf.test b/tests/default.nf.test index 1ae3c8006..a1dd49e13 100644 --- a/tests/default.nf.test +++ b/tests/default.nf.test @@ -22,8 +22,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -53,8 +53,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 3a80e40c1..45d2d838f 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -34,20 +34,17 @@ "gunzip": 1.13 }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -126,12 +123,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -212,14 +209,14 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" @@ -228,9 +225,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -243,9 +240,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -345,6 +339,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -361,16 +356,16 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -458,8 +453,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -473,6 +469,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/png", "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", @@ -527,8 +525,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -542,6 +541,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/svg", "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", @@ -596,8 +597,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -611,6 +613,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", @@ -695,8 +699,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -710,11 +712,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1215,12 +1219,13 @@ "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1480,8 +1485,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T11:15:07.425006953" + "timestamp": "2025-08-12T11:31:43.21579283" } -} +} \ No newline at end of file diff --git a/tests/featurecounts_group_type.nf.test b/tests/featurecounts_group_type.nf.test index b4c711478..6827887a4 100644 --- a/tests/featurecounts_group_type.nf.test +++ b/tests/featurecounts_group_type.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/featurecounts_group_type.nf.test.snap b/tests/featurecounts_group_type.nf.test.snap index 1eccfe27e..6af982953 100644 --- a/tests/featurecounts_group_type.nf.test.snap +++ b/tests/featurecounts_group_type.nf.test.snap @@ -34,20 +34,17 @@ "gunzip": 1.13 }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -126,12 +123,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -209,22 +206,22 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -237,9 +234,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -339,6 +333,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -354,16 +349,16 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -449,8 +444,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -464,6 +460,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/png", "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", @@ -516,8 +514,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -531,6 +530,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/svg", "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", @@ -583,8 +584,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -598,6 +600,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", @@ -682,8 +686,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -697,11 +699,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1181,12 +1185,13 @@ "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1430,8 +1435,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-03T19:32:53.288039672" + "timestamp": "2025-08-12T11:42:35.718429904" } -} +} \ No newline at end of file diff --git a/tests/hisat2.nf.test b/tests/hisat2.nf.test index 5ae168692..a0f0454b8 100644 --- a/tests/hisat2.nf.test +++ b/tests/hisat2.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/hisat2.nf.test.snap b/tests/hisat2.nf.test.snap index 61c905b59..283277a15 100644 --- a/tests/hisat2.nf.test.snap +++ b/tests/hisat2.nf.test.snap @@ -37,18 +37,15 @@ "hisat2": "2.2.1" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_HISAT2_INDEX": { "untar": 1.34 }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -127,8 +124,8 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -222,9 +219,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -240,9 +237,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -814,6 +808,7 @@ "multiqc/hisat2/multiqc_report_data/hisat2_se_plot.txt", "multiqc/hisat2/multiqc_report_data/junction_saturation_known.txt", "multiqc/hisat2/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/hisat2/multiqc_report_data/llms-full.txt", "multiqc/hisat2/multiqc_report_data/multiqc.log", "multiqc/hisat2/multiqc_report_data/multiqc_citations.txt", "multiqc/hisat2/multiqc_report_data/multiqc_cutadapt.txt", @@ -831,8 +826,8 @@ "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/hisat2/multiqc_report_data/multiqc_salmon.txt", - "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships_1.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_stats.txt", @@ -927,8 +922,9 @@ "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/hisat2/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -997,8 +993,9 @@ "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/hisat2/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/hisat2/multiqc_report_plots/png/salmon_plot.png", - "multiqc/hisat2/multiqc_report_plots/png/sample-relationships.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -1067,8 +1064,9 @@ "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/hisat2/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/hisat2/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/hisat2/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -1163,8 +1161,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -1178,11 +1174,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1334,8 +1332,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T11:42:03.435738205" + "timestamp": "2025-08-12T11:48:58.018707447" } -} +} \ No newline at end of file diff --git a/tests/kallisto.nf.test b/tests/kallisto.nf.test index 18b7b7b4e..a67b2d314 100644 --- a/tests/kallisto.nf.test +++ b/tests/kallisto.nf.test @@ -25,8 +25,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -59,8 +59,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/kallisto.nf.test.snap b/tests/kallisto.nf.test.snap index 43ed24891..18504f7b3 100644 --- a/tests/kallisto.nf.test.snap +++ b/tests/kallisto.nf.test.snap @@ -52,18 +52,15 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -140,13 +137,13 @@ "kallisto/WT_REP2/abundance.tsv", "kallisto/WT_REP2/kallisto_quant.log", "kallisto/WT_REP2/run_info.json", - "kallisto/all_samples_gene.SummarizedExperiment.rds", - "kallisto/all_samples_transcript.SummarizedExperiment.rds", + "kallisto/kallisto.merged.gene.SummarizedExperiment.rds", "kallisto/kallisto.merged.gene_counts.tsv", "kallisto/kallisto.merged.gene_counts_length_scaled.tsv", "kallisto/kallisto.merged.gene_counts_scaled.tsv", "kallisto/kallisto.merged.gene_lengths.tsv", "kallisto/kallisto.merged.gene_tpm.tsv", + "kallisto/kallisto.merged.transcript.SummarizedExperiment.rds", "kallisto/kallisto.merged.transcript_counts.tsv", "kallisto/kallisto.merged.transcript_lengths.tsv", "kallisto/kallisto.merged.transcript_tpm.tsv", @@ -170,6 +167,7 @@ "multiqc/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", "multiqc/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/multiqc_report_data/kallisto_alignment.txt", + "multiqc/multiqc_report_data/llms-full.txt", "multiqc/multiqc_report_data/multiqc.log", "multiqc/multiqc_report_data/multiqc_citations.txt", "multiqc/multiqc_report_data/multiqc_cutadapt.txt", @@ -273,9 +271,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-03T15:00:01.384299008" + "timestamp": "2025-08-12T11:53:08.867813862" }, "Params: --pseudo_aligner kallisto --skip_qc --skip_alignment - stub": { "content": [ @@ -312,15 +310,12 @@ "kallisto": "0.51.1" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -364,4 +359,4 @@ }, "timestamp": "2025-01-28T13:50:34.753130451" } -} +} \ No newline at end of file diff --git a/tests/min_mapped_reads.nf.test b/tests/min_mapped_reads.nf.test index 33b5a17af..b0fa950e7 100644 --- a/tests/min_mapped_reads.nf.test +++ b/tests/min_mapped_reads.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/min_mapped_reads.nf.test.snap b/tests/min_mapped_reads.nf.test.snap index 4868c9ac9..6fd65e47e 100644 --- a/tests/min_mapped_reads.nf.test.snap +++ b/tests/min_mapped_reads.nf.test.snap @@ -22,12 +22,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -108,14 +108,14 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" @@ -124,9 +124,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -139,9 +139,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -241,6 +238,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -258,16 +256,16 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -356,8 +354,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -371,6 +370,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/png", "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", @@ -426,8 +427,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -441,6 +443,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/svg", "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", @@ -496,8 +500,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -511,6 +516,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", @@ -595,8 +602,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -610,11 +615,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -969,12 +976,13 @@ "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1187,9 +1195,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T12:03:12.434653114" + "timestamp": "2025-08-12T12:00:47.968279209" }, "Params: --min_mapped_reads 90 - stub": { "content": [ @@ -1226,20 +1234,17 @@ "gunzip": 1.13 }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -1295,4 +1300,4 @@ }, "timestamp": "2025-01-28T13:58:55.550749008" } -} +} \ No newline at end of file diff --git a/tests/nextflow.config b/tests/nextflow.config index 6ea8b2c71..2ca0a4793 100644 --- a/tests/nextflow.config +++ b/tests/nextflow.config @@ -6,10 +6,12 @@ // TODO nf-core: Specify any additional parameters here // Or any resources requirements -params.modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' -params.pipelines_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/' -params.hisat2_build_memory = '3.GB' -params.outdir = 'results' +params { + modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' + pipelines_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/pipelines/rnaseq/3.15/' + hisat2_build_memory = '3.GB' + outdir = 'results' +} aws.client.anonymous = true // fixes S3 access issues on self-hosted runners @@ -25,3 +27,18 @@ process { ext.args = null } } + +// NOTE This is how pipeline users will use Sentieon in real world use +if (System.getenv('SENTIEON_LICSRVR_IP')) { + env.SENTIEON_LICENSE = "$SENTIEON_LICSRVR_IP" +} +//NOTE This should only happen in GitHub actions or nf-core MegaTests +if (System.getenv('SENTIEON_AUTH_MECH')) { + env.SENTIEON_AUTH_MECH = "$SENTIEON_AUTH_MECH" +} +if (secrets.SENTIEON_AUTH_DATA) { + env.SENTIEON_AUTH_DATA = secrets.SENTIEON_AUTH_DATA +} + +// NOTE This is how pipeline users will test out Sentieon with a license file +// nextflow secrets set SENTIEON_LICENSE_BASE64 \$(cat | base64 -w 0) diff --git a/tests/nofasta.nf.test b/tests/nofasta.nf.test index 27cadd6af..f8fcb5880 100644 --- a/tests/nofasta.nf.test +++ b/tests/nofasta.nf.test @@ -27,8 +27,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/nofasta.nf.test.snap b/tests/nofasta.nf.test.snap index 5808d1a2d..13cec2499 100644 --- a/tests/nofasta.nf.test.snap +++ b/tests/nofasta.nf.test.snap @@ -10,8 +10,8 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "FASTQC": { "fastqc": "0.12.1" @@ -44,15 +44,12 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -133,6 +130,7 @@ "multiqc/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", "multiqc/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", "multiqc/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/multiqc_report_data/llms-full.txt", "multiqc/multiqc_report_data/multiqc.log", "multiqc/multiqc_report_data/multiqc_citations.txt", "multiqc/multiqc_report_data/multiqc_cutadapt.txt", @@ -141,8 +139,8 @@ "multiqc/multiqc_report_data/multiqc_fastqc_fastqc_trimmed.txt", "multiqc/multiqc_report_data/multiqc_general_stats.txt", "multiqc/multiqc_report_data/multiqc_salmon.txt", - "multiqc/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/multiqc_report_data/multiqc_sample-relationships_1.txt", + "multiqc/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/multiqc_report_data/multiqc_software_versions.txt", "multiqc/multiqc_report_data/multiqc_sources.txt", "multiqc/multiqc_report_data/salmon_plot.txt", @@ -176,8 +174,9 @@ "multiqc/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-pct.pdf", "multiqc/multiqc_report_plots/pdf/fastqc_trimmed_sequence_duplication_levels_plot.pdf", "multiqc/multiqc_report_plots/pdf/fastqc_trimmed_top_overrepresented_sequences_table.pdf", + "multiqc/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/multiqc_report_plots/png", "multiqc/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", "multiqc/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", @@ -207,8 +206,9 @@ "multiqc/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-pct.png", "multiqc/multiqc_report_plots/png/fastqc_trimmed_sequence_duplication_levels_plot.png", "multiqc/multiqc_report_plots/png/fastqc_trimmed_top_overrepresented_sequences_table.png", + "multiqc/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/multiqc_report_plots/png/salmon_plot.png", - "multiqc/multiqc_report_plots/png/sample-relationships.png", "multiqc/multiqc_report_plots/svg", "multiqc/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", "multiqc/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", @@ -238,8 +238,9 @@ "multiqc/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-pct.svg", "multiqc/multiqc_report_plots/svg/fastqc_trimmed_sequence_duplication_levels_plot.svg", "multiqc/multiqc_report_plots/svg/fastqc_trimmed_top_overrepresented_sequences_table.svg", + "multiqc/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/multiqc_report_plots/svg/sample-relationships.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "salmon", @@ -323,8 +324,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -338,11 +337,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -420,8 +421,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-03T15:07:19.746620782" + "timestamp": "2025-08-12T12:03:26.721760415" } -} +} \ No newline at end of file diff --git a/tests/remove_ribo_rna.nf.test b/tests/remove_ribo_rna.nf.test index 590a21faa..8128a85a5 100644 --- a/tests/remove_ribo_rna.nf.test +++ b/tests/remove_ribo_rna.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/remove_ribo_rna.nf.test.snap b/tests/remove_ribo_rna.nf.test.snap index 8621eb648..5b24bfedc 100644 --- a/tests/remove_ribo_rna.nf.test.snap +++ b/tests/remove_ribo_rna.nf.test.snap @@ -22,12 +22,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -114,14 +114,14 @@ "sortmerna": "4.3.7" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" @@ -130,9 +130,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -145,9 +145,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -247,6 +244,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -263,10 +261,8 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", @@ -274,6 +270,8 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_sortmerna.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -362,8 +360,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -379,6 +378,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/sortmerna-detailed-plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/png", "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", @@ -433,8 +434,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -450,6 +452,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/sortmerna-detailed-plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/svg", "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", @@ -504,8 +508,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -521,6 +526,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/sortmerna-detailed-plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", @@ -605,8 +612,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -620,11 +625,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1131,12 +1138,13 @@ "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1396,9 +1404,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T12:28:33.590557228" + "timestamp": "2025-08-12T14:11:09.848522464" }, "Params: --remove_ribo_rna - stub": { "content": [ @@ -1438,20 +1446,17 @@ "sortmerna": "4.3.7" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -1507,4 +1512,4 @@ }, "timestamp": "2025-06-03T13:10:09.375619385" } -} +} \ No newline at end of file diff --git a/tests/salmon.nf.test b/tests/salmon.nf.test index 410b3f744..3bf6168e5 100644 --- a/tests/salmon.nf.test +++ b/tests/salmon.nf.test @@ -25,8 +25,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -59,8 +59,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/salmon.nf.test.snap b/tests/salmon.nf.test.snap index 424dd917b..eb173af5a 100644 --- a/tests/salmon.nf.test.snap +++ b/tests/salmon.nf.test.snap @@ -46,18 +46,15 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -126,6 +123,7 @@ "multiqc/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", "multiqc/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", "multiqc/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/multiqc_report_data/llms-full.txt", "multiqc/multiqc_report_data/multiqc.log", "multiqc/multiqc_report_data/multiqc_citations.txt", "multiqc/multiqc_report_data/multiqc_cutadapt.txt", @@ -274,13 +272,13 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -349,9 +347,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-03T11:13:31.293218051" + "timestamp": "2025-08-12T12:21:59.880743609" }, "Params: --pseudo_aligner salmon --skip_qc --skip_alignment - stub": { "content": [ @@ -385,15 +383,12 @@ "gunzip": 1.13 }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -437,4 +432,4 @@ }, "timestamp": "2025-01-28T14:19:20.666237815" } -} +} \ No newline at end of file diff --git a/tests/sentieon_default.nf.test b/tests/sentieon_default.nf.test new file mode 100644 index 000000000..c255347fa --- /dev/null +++ b/tests/sentieon_default.nf.test @@ -0,0 +1,68 @@ +nextflow_pipeline { + + name "Test pipeline with sentieon" + script "../main.nf" + tag "pipeline" + + test("Params: default --use_sentieon_star") { + + when { + params { + outdir = "$outputDir" + use_sentieon_star= true + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } + + test("Params: default --use_sentieon_star - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + use_sentieon_star = true + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } +} diff --git a/tests/sentieon_default.nf.test.snap b/tests/sentieon_default.nf.test.snap new file mode 100644 index 000000000..316759135 --- /dev/null +++ b/tests/sentieon_default.nf.test.snap @@ -0,0 +1,1490 @@ +{ + "Params: default --use_sentieon_star - stub": { + "content": [ + 27, + { + "BBMAP_BBSPLIT": { + "bbmap": 39.18 + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": null + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.13 + }, + "GUNZIP_GTF": { + "gunzip": 1.13 + }, + "STAR_GENOMEGENERATE": { + "gawk": "5.1.0", + "samtools": 1.21, + "star": "2.7.11b" + }, + "TRIMGALORE": { + "cutadapt": 4.9, + "pigz": 2.8, + "trimgalore": "0.6.10" + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + } + }, + [ + "custom", + "custom/out", + "custom/out/genome_transcriptome.fasta", + "custom/out/genome_transcriptome.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.zip", + "fastqc/raw/WT_REP1_raw.html", + "fastqc/raw/WT_REP1_raw.zip", + "fastqc/raw/WT_REP2_raw.html", + "fastqc/raw/WT_REP2_raw.zip", + "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_salmon", + "multiqc/star_salmon/multiqc_data", + "multiqc/star_salmon/multiqc_plots", + "multiqc/star_salmon/multiqc_report.html", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt" + ], + [ + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.4" + }, + "timestamp": "2025-01-28T13:26:07.890871152" + }, + "Params: default --use_sentieon_star": { + "content": [ + 209, + { + "BBMAP_BBSPLIT": { + "bbmap": 39.18 + }, + "BEDTOOLS_GENOMECOV_FW": { + "bedtools": "2.31.1" + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": "3.12.2" + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "CUSTOM_TX2GENE": { + "python": "3.10.4" + }, + "DESEQ2_QC_PSEUDO": { + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" + }, + "DESEQ2_QC_STAR_SALMON": { + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" + }, + "DUPRADAR": { + "bioconductor-dupradar": "1.32.0" + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "FQ_SUBSAMPLE": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.13 + }, + "GUNZIP_GTF": { + "gunzip": 1.13 + }, + "MULTIQC_CUSTOM_BIOTYPE": { + "python": "3.9.5" + }, + "PICARD_MARKDUPLICATES": { + "picard": "3.1.1" + }, + "QUALIMAP_RNASEQ": { + "qualimap": 2.3 + }, + "RSEQC_BAMSTAT": { + "rseqc": "5.0.2" + }, + "RSEQC_INFEREXPERIMENT": { + "rseqc": "5.0.2" + }, + "RSEQC_INNERDISTANCE": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONANNOTATION": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONSATURATION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDISTRIBUTION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDUPLICATION": { + "rseqc": "5.0.2" + }, + "SALMON_QUANT": { + "salmon": "1.10.3" + }, + "SAMTOOLS_FLAGSTAT": { + "samtools": 1.21 + }, + "SAMTOOLS_IDXSTATS": { + "samtools": 1.21 + }, + "SAMTOOLS_INDEX": { + "samtools": 1.21 + }, + "SAMTOOLS_SORT": { + "samtools": 1.21 + }, + "SAMTOOLS_STATS": { + "samtools": 1.21 + }, + "SENTIEON_STAR_ALIGN": { + "star": "2.7.10b" + }, + "SE_GENE_UNIFIED": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "SE_TRANSCRIPT_UNIFIED": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "STAR_GENOMEGENERATE": { + "gawk": "5.1.0", + "samtools": 1.21, + "star": "2.7.11b" + }, + "STRINGTIE_STRINGTIE": { + "stringtie": "2.2.3" + }, + "SUBREAD_FEATURECOUNTS": { + "subread": "2.0.6" + }, + "TRIMGALORE": { + "cutadapt": 4.9, + "pigz": 2.8, + "trimgalore": "0.6.10" + }, + "TXIMETA_TXIMPORT": { + "bioconductor-tximeta": "1.20.1" + }, + "UCSC_BEDCLIP": { + "ucsc": 377 + }, + "UCSC_BEDGRAPHTOBIGWIG": { + "ucsc": 469 + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + } + }, + [ + "bbsplit", + "bbsplit/RAP1_IAA_30M_REP1.stats.txt", + "bbsplit/RAP1_UNINDUCED_REP1.stats.txt", + "bbsplit/RAP1_UNINDUCED_REP2.stats.txt", + "bbsplit/WT_REP1.stats.txt", + "bbsplit/WT_REP2.stats.txt", + "custom", + "custom/out", + "custom/out/genome_gfp.fasta", + "custom/out/genome_gfp.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.zip", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.zip", + "fastqc/raw/WT_REP1_raw_1_fastqc.html", + "fastqc/raw/WT_REP1_raw_1_fastqc.zip", + "fastqc/raw/WT_REP1_raw_2_fastqc.html", + "fastqc/raw/WT_REP1_raw_2_fastqc.zip", + "fastqc/raw/WT_REP2_raw_1_fastqc.html", + "fastqc/raw/WT_REP2_raw_1_fastqc.zip", + "fastqc/raw/WT_REP2_raw_2_fastqc.html", + "fastqc/raw/WT_REP2_raw_2_fastqc.zip", + "fastqc/trim", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_salmon", + "multiqc/star_salmon/multiqc_report.html", + "multiqc/star_salmon/multiqc_report_data", + "multiqc/star_salmon/multiqc_report_data/BETA-multiqc.parquet", + "multiqc/star_salmon/multiqc_report_data/cutadapt_filtered_reads_plot.txt", + "multiqc/star_salmon/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw-status-check-heatmap.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_adapter_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_overrepresented_sequences_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_base_n_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_base_sequence_quality_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_quality_scores_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_sequence_counts_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_sequence_duplication_levels_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_top_overrepresented_sequences_table.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed-status-check-heatmap.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_overrepresented_sequences_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_base_n_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_base_sequence_quality_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_quality_scores_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", + "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc.log", + "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_data.json", + "multiqc/star_salmon/multiqc_report_data/multiqc_dupradar.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fail_strand_check_table.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fastqc_fastqc_raw.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fastqc_fastqc_trimmed.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_featurecounts_biotype_plot.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_general_stats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_picard_dups.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_bam_stat.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_infer_experiment.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", + "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/star_salmon/multiqc_report_data/picard_deduplication.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_gene_coverage_profile_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_gene_coverage_profile_Normalised.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_genomic_origin.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_rnaseq_cov_hist.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_rnaseq_genome_results.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_bam_stat.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_infer_experiment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Events.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_all.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_All_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_Known_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_Novel_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_distribution_plot.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_dups.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_dups_plot.txt", + "multiqc/star_salmon/multiqc_report_data/salmon_plot.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-flagstat-pct-table.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-flagstat-table.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Raw_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-stats-dp.txt", + "multiqc/star_salmon/multiqc_report_data/samtools_alignment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/star_alignment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/star_summary_table.txt", + "multiqc/star_salmon/multiqc_report_plots", + "multiqc/star_salmon/multiqc_report_plots/pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Obs_Exp.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/dupradar.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fail_strand_check_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw-status-check-heatmap.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_adapter_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_overrepresented_sequences_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_base_n_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_base_sequence_quality_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_quality_scores_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_duplication_levels_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_top_overrepresented_sequences_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed-status-check-heatmap.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_overrepresented_sequences_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_base_n_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_base_sequence_quality_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_quality_scores_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_duplication_levels_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_top_overrepresented_sequences_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/featurecounts_biotype_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/featurecounts_biotype_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/picard_deduplication-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/picard_deduplication-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Normalised.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_genomic_origin-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_genomic_origin-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_bam_stat.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_infer_experiment_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_All_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Known_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Novel_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-stats-dp.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Obs_Exp.png", + "multiqc/star_salmon/multiqc_report_plots/png/dupradar.png", + "multiqc/star_salmon/multiqc_report_plots/png/fail_strand_check_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw-status-check-heatmap.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_adapter_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_overrepresented_sequences_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_base_n_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_base_sequence_quality_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_quality_scores_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_duplication_levels_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_top_overrepresented_sequences_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed-status-check-heatmap.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_overrepresented_sequences_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_base_n_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_base_sequence_quality_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_quality_scores_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_duplication_levels_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_top_overrepresented_sequences_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/featurecounts_biotype_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/featurecounts_biotype_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/picard_deduplication-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/picard_deduplication-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_gene_coverage_profile_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_gene_coverage_profile_Normalised.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_genomic_origin-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_genomic_origin-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_bam_stat.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_infer_experiment_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_inner_distance_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_inner_distance_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_All_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_Known_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_Novel_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-stats-dp.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", + "multiqc/star_salmon/multiqc_report_plots/svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Obs_Exp.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/dupradar.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fail_strand_check_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw-status-check-heatmap.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_adapter_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_overrepresented_sequences_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_base_n_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_base_sequence_quality_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_quality_scores_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_duplication_levels_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_top_overrepresented_sequences_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed-status-check-heatmap.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_overrepresented_sequences_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_base_n_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_base_sequence_quality_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_quality_scores_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_duplication_levels_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_top_overrepresented_sequences_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/featurecounts_biotype_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/featurecounts_biotype_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/picard_deduplication-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/picard_deduplication-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Normalised.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_genomic_origin-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_genomic_origin-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_bam_stat.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_infer_experiment_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_inner_distance_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_inner_distance_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_All_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Known_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Novel_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-stats-dp.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "salmon", + "salmon/RAP1_IAA_30M_REP1", + "salmon/RAP1_IAA_30M_REP1/aux_info", + "salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "salmon/RAP1_IAA_30M_REP1/libParams", + "salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "salmon/RAP1_IAA_30M_REP1/lib_format_counts.json", + "salmon/RAP1_IAA_30M_REP1/logs", + "salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "salmon/RAP1_IAA_30M_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP1", + "salmon/RAP1_UNINDUCED_REP1/aux_info", + "salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP1/libParams", + "salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP1/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP1/logs", + "salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP2", + "salmon/RAP1_UNINDUCED_REP2/aux_info", + "salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP2/libParams", + "salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP2/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP2/logs", + "salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP2/quant.sf", + "salmon/WT_REP1", + "salmon/WT_REP1/aux_info", + "salmon/WT_REP1/aux_info/ambig_info.tsv", + "salmon/WT_REP1/aux_info/expected_bias.gz", + "salmon/WT_REP1/aux_info/fld.gz", + "salmon/WT_REP1/aux_info/meta_info.json", + "salmon/WT_REP1/aux_info/observed_bias.gz", + "salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "salmon/WT_REP1/cmd_info.json", + "salmon/WT_REP1/libParams", + "salmon/WT_REP1/libParams/flenDist.txt", + "salmon/WT_REP1/lib_format_counts.json", + "salmon/WT_REP1/logs", + "salmon/WT_REP1/logs/salmon_quant.log", + "salmon/WT_REP1/quant.genes.sf", + "salmon/WT_REP1/quant.sf", + "salmon/WT_REP2", + "salmon/WT_REP2/aux_info", + "salmon/WT_REP2/aux_info/ambig_info.tsv", + "salmon/WT_REP2/aux_info/expected_bias.gz", + "salmon/WT_REP2/aux_info/fld.gz", + "salmon/WT_REP2/aux_info/meta_info.json", + "salmon/WT_REP2/aux_info/observed_bias.gz", + "salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "salmon/WT_REP2/cmd_info.json", + "salmon/WT_REP2/libParams", + "salmon/WT_REP2/libParams/flenDist.txt", + "salmon/WT_REP2/lib_format_counts.json", + "salmon/WT_REP2/logs", + "salmon/WT_REP2/logs/salmon_quant.log", + "salmon/WT_REP2/quant.genes.sf", + "salmon/WT_REP2/quant.sf", + "salmon/deseq2_qc", + "salmon/deseq2_qc/R_sessionInfo.log", + "salmon/deseq2_qc/deseq2.dds.RData", + "salmon/deseq2_qc/deseq2.pca.vals.txt", + "salmon/deseq2_qc/deseq2.plots.pdf", + "salmon/deseq2_qc/deseq2.sample.dists.txt", + "salmon/deseq2_qc/size_factors", + "salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "salmon/deseq2_qc/size_factors/WT_REP1.txt", + "salmon/deseq2_qc/size_factors/WT_REP2.txt", + "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts.tsv", + "salmon/salmon.merged.gene_counts_length_scaled.tsv", + "salmon/salmon.merged.gene_counts_scaled.tsv", + "salmon/salmon.merged.gene_lengths.tsv", + "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", + "salmon/salmon.merged.transcript_counts.tsv", + "salmon/salmon.merged.transcript_lengths.tsv", + "salmon/salmon.merged.transcript_tpm.tsv", + "salmon/tx2gene.tsv", + "star_salmon", + "star_salmon/RAP1_IAA_30M_REP1", + "star_salmon/RAP1_IAA_30M_REP1.markdup.sorted.bam", + "star_salmon/RAP1_IAA_30M_REP1.markdup.sorted.bam.bai", + "star_salmon/RAP1_IAA_30M_REP1/aux_info", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "star_salmon/RAP1_IAA_30M_REP1/libParams", + "star_salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "star_salmon/RAP1_IAA_30M_REP1/logs", + "star_salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "star_salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "star_salmon/RAP1_IAA_30M_REP1/quant.sf", + "star_salmon/RAP1_UNINDUCED_REP1", + "star_salmon/RAP1_UNINDUCED_REP1.markdup.sorted.bam", + "star_salmon/RAP1_UNINDUCED_REP1.markdup.sorted.bam.bai", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "star_salmon/RAP1_UNINDUCED_REP1/libParams", + "star_salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "star_salmon/RAP1_UNINDUCED_REP1/logs", + "star_salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "star_salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "star_salmon/RAP1_UNINDUCED_REP1/quant.sf", + "star_salmon/RAP1_UNINDUCED_REP2", + "star_salmon/RAP1_UNINDUCED_REP2.markdup.sorted.bam", + "star_salmon/RAP1_UNINDUCED_REP2.markdup.sorted.bam.bai", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "star_salmon/RAP1_UNINDUCED_REP2/libParams", + "star_salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "star_salmon/RAP1_UNINDUCED_REP2/logs", + "star_salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "star_salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "star_salmon/RAP1_UNINDUCED_REP2/quant.sf", + "star_salmon/WT_REP1", + "star_salmon/WT_REP1.markdup.sorted.bam", + "star_salmon/WT_REP1.markdup.sorted.bam.bai", + "star_salmon/WT_REP1/aux_info", + "star_salmon/WT_REP1/aux_info/ambig_info.tsv", + "star_salmon/WT_REP1/aux_info/expected_bias.gz", + "star_salmon/WT_REP1/aux_info/fld.gz", + "star_salmon/WT_REP1/aux_info/meta_info.json", + "star_salmon/WT_REP1/aux_info/observed_bias.gz", + "star_salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/WT_REP1/cmd_info.json", + "star_salmon/WT_REP1/libParams", + "star_salmon/WT_REP1/libParams/flenDist.txt", + "star_salmon/WT_REP1/logs", + "star_salmon/WT_REP1/logs/salmon_quant.log", + "star_salmon/WT_REP1/quant.genes.sf", + "star_salmon/WT_REP1/quant.sf", + "star_salmon/WT_REP2", + "star_salmon/WT_REP2.markdup.sorted.bam", + "star_salmon/WT_REP2.markdup.sorted.bam.bai", + "star_salmon/WT_REP2/aux_info", + "star_salmon/WT_REP2/aux_info/ambig_info.tsv", + "star_salmon/WT_REP2/aux_info/expected_bias.gz", + "star_salmon/WT_REP2/aux_info/fld.gz", + "star_salmon/WT_REP2/aux_info/meta_info.json", + "star_salmon/WT_REP2/aux_info/observed_bias.gz", + "star_salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "star_salmon/WT_REP2/cmd_info.json", + "star_salmon/WT_REP2/libParams", + "star_salmon/WT_REP2/libParams/flenDist.txt", + "star_salmon/WT_REP2/logs", + "star_salmon/WT_REP2/logs/salmon_quant.log", + "star_salmon/WT_REP2/quant.genes.sf", + "star_salmon/WT_REP2/quant.sf", + "star_salmon/bigwig", + "star_salmon/bigwig/RAP1_IAA_30M_REP1.forward.bigWig", + "star_salmon/bigwig/RAP1_IAA_30M_REP1.reverse.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP1.forward.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP1.reverse.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP2.forward.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP2.reverse.bigWig", + "star_salmon/bigwig/WT_REP1.forward.bigWig", + "star_salmon/bigwig/WT_REP1.reverse.bigWig", + "star_salmon/bigwig/WT_REP2.forward.bigWig", + "star_salmon/bigwig/WT_REP2.reverse.bigWig", + "star_salmon/deseq2_qc", + "star_salmon/deseq2_qc/R_sessionInfo.log", + "star_salmon/deseq2_qc/deseq2.dds.RData", + "star_salmon/deseq2_qc/deseq2.pca.vals.txt", + "star_salmon/deseq2_qc/deseq2.plots.pdf", + "star_salmon/deseq2_qc/deseq2.sample.dists.txt", + "star_salmon/deseq2_qc/size_factors", + "star_salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "star_salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "star_salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "star_salmon/deseq2_qc/size_factors/WT_REP1.txt", + "star_salmon/deseq2_qc/size_factors/WT_REP2.txt", + "star_salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "star_salmon/dupradar", + "star_salmon/dupradar/box_plot", + "star_salmon/dupradar/box_plot/RAP1_IAA_30M_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/RAP1_UNINDUCED_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/RAP1_UNINDUCED_REP2_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/WT_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/WT_REP2_duprateExpBoxplot.pdf", + "star_salmon/dupradar/gene_data", + "star_salmon/dupradar/gene_data/RAP1_IAA_30M_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/RAP1_UNINDUCED_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/RAP1_UNINDUCED_REP2_dupMatrix.txt", + "star_salmon/dupradar/gene_data/WT_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/WT_REP2_dupMatrix.txt", + "star_salmon/dupradar/histogram", + "star_salmon/dupradar/histogram/RAP1_IAA_30M_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/RAP1_UNINDUCED_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/RAP1_UNINDUCED_REP2_expressionHist.pdf", + "star_salmon/dupradar/histogram/WT_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/WT_REP2_expressionHist.pdf", + "star_salmon/dupradar/intercepts_slope", + "star_salmon/dupradar/intercepts_slope/RAP1_IAA_30M_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/RAP1_UNINDUCED_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/RAP1_UNINDUCED_REP2_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/WT_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/WT_REP2_intercept_slope.txt", + "star_salmon/dupradar/scatter_plot", + "star_salmon/dupradar/scatter_plot/RAP1_IAA_30M_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/RAP1_UNINDUCED_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/RAP1_UNINDUCED_REP2_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/WT_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/WT_REP2_duprateExpDens.pdf", + "star_salmon/featurecounts", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.featureCounts.tsv", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.featureCounts.tsv.summary", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.tsv.summary", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.tsv.summary", + "star_salmon/featurecounts/WT_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/WT_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/WT_REP1.featureCounts.tsv", + "star_salmon/featurecounts/WT_REP1.featureCounts.tsv.summary", + "star_salmon/featurecounts/WT_REP2.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/WT_REP2.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/WT_REP2.featureCounts.tsv", + "star_salmon/featurecounts/WT_REP2.featureCounts.tsv.summary", + "star_salmon/log", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.final.out", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.out", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.progress.out", + "star_salmon/log/RAP1_IAA_30M_REP1.SJ.out.tab", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.final.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.progress.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.SJ.out.tab", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.final.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.progress.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.SJ.out.tab", + "star_salmon/log/WT_REP1.Log.final.out", + "star_salmon/log/WT_REP1.Log.out", + "star_salmon/log/WT_REP1.Log.progress.out", + "star_salmon/log/WT_REP1.SJ.out.tab", + "star_salmon/log/WT_REP2.Log.final.out", + "star_salmon/log/WT_REP2.Log.out", + "star_salmon/log/WT_REP2.Log.progress.out", + "star_salmon/log/WT_REP2.SJ.out.tab", + "star_salmon/picard_metrics", + "star_salmon/picard_metrics/RAP1_IAA_30M_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_salmon/picard_metrics/RAP1_UNINDUCED_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_salmon/picard_metrics/RAP1_UNINDUCED_REP2.markdup.sorted.MarkDuplicates.metrics.txt", + "star_salmon/picard_metrics/WT_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_salmon/picard_metrics/WT_REP2.markdup.sorted.MarkDuplicates.metrics.txt", + "star_salmon/qualimap", + "star_salmon/qualimap/RAP1_IAA_30M_REP1", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/agogo.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/basic.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/bgfooter.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/bgtop.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment-bright.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment-close.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/doctools.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/down-pressed.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/down.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/file.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/jquery.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/minus.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/plus.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/pygments.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/report.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/searchtools.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/underscore.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/up-pressed.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/up.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/websupport.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/qualimapReport.html", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/agogo.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/basic.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/bgfooter.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/bgtop.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment-bright.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment-close.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/doctools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/down-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/down.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/file.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/jquery.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/minus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/plus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/pygments.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/report.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/searchtools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/underscore.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/up-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/up.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/websupport.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/qualimapReport.html", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/agogo.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/basic.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/bgfooter.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/bgtop.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment-bright.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment-close.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/doctools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/down-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/down.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/file.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/jquery.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/minus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/plus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/pygments.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/report.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/searchtools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/underscore.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/up-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/up.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/websupport.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/qualimapReport.html", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/rnaseq_qc_results.txt", + "star_salmon/qualimap/WT_REP1", + "star_salmon/qualimap/WT_REP1/css", + "star_salmon/qualimap/WT_REP1/css/agogo.css", + "star_salmon/qualimap/WT_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/WT_REP1/css/basic.css", + "star_salmon/qualimap/WT_REP1/css/bgfooter.png", + "star_salmon/qualimap/WT_REP1/css/bgtop.png", + "star_salmon/qualimap/WT_REP1/css/comment-bright.png", + "star_salmon/qualimap/WT_REP1/css/comment-close.png", + "star_salmon/qualimap/WT_REP1/css/comment.png", + "star_salmon/qualimap/WT_REP1/css/doctools.js", + "star_salmon/qualimap/WT_REP1/css/down-pressed.png", + "star_salmon/qualimap/WT_REP1/css/down.png", + "star_salmon/qualimap/WT_REP1/css/file.png", + "star_salmon/qualimap/WT_REP1/css/jquery.js", + "star_salmon/qualimap/WT_REP1/css/minus.png", + "star_salmon/qualimap/WT_REP1/css/plus.png", + "star_salmon/qualimap/WT_REP1/css/pygments.css", + "star_salmon/qualimap/WT_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/WT_REP1/css/report.css", + "star_salmon/qualimap/WT_REP1/css/searchtools.js", + "star_salmon/qualimap/WT_REP1/css/underscore.js", + "star_salmon/qualimap/WT_REP1/css/up-pressed.png", + "star_salmon/qualimap/WT_REP1/css/up.png", + "star_salmon/qualimap/WT_REP1/css/websupport.js", + "star_salmon/qualimap/WT_REP1/images_qualimapReport", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/WT_REP1/qualimapReport.html", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/WT_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/WT_REP2", + "star_salmon/qualimap/WT_REP2/css", + "star_salmon/qualimap/WT_REP2/css/agogo.css", + "star_salmon/qualimap/WT_REP2/css/ajax-loader.gif", + "star_salmon/qualimap/WT_REP2/css/basic.css", + "star_salmon/qualimap/WT_REP2/css/bgfooter.png", + "star_salmon/qualimap/WT_REP2/css/bgtop.png", + "star_salmon/qualimap/WT_REP2/css/comment-bright.png", + "star_salmon/qualimap/WT_REP2/css/comment-close.png", + "star_salmon/qualimap/WT_REP2/css/comment.png", + "star_salmon/qualimap/WT_REP2/css/doctools.js", + "star_salmon/qualimap/WT_REP2/css/down-pressed.png", + "star_salmon/qualimap/WT_REP2/css/down.png", + "star_salmon/qualimap/WT_REP2/css/file.png", + "star_salmon/qualimap/WT_REP2/css/jquery.js", + "star_salmon/qualimap/WT_REP2/css/minus.png", + "star_salmon/qualimap/WT_REP2/css/plus.png", + "star_salmon/qualimap/WT_REP2/css/pygments.css", + "star_salmon/qualimap/WT_REP2/css/qualimap_logo_small.png", + "star_salmon/qualimap/WT_REP2/css/report.css", + "star_salmon/qualimap/WT_REP2/css/searchtools.js", + "star_salmon/qualimap/WT_REP2/css/underscore.js", + "star_salmon/qualimap/WT_REP2/css/up-pressed.png", + "star_salmon/qualimap/WT_REP2/css/up.png", + "star_salmon/qualimap/WT_REP2/css/websupport.js", + "star_salmon/qualimap/WT_REP2/images_qualimapReport", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/WT_REP2/qualimapReport.html", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/WT_REP2/rnaseq_qc_results.txt", + "star_salmon/rseqc", + "star_salmon/rseqc/bam_stat", + "star_salmon/rseqc/bam_stat/RAP1_IAA_30M_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/RAP1_UNINDUCED_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/RAP1_UNINDUCED_REP2.bam_stat.txt", + "star_salmon/rseqc/bam_stat/WT_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/WT_REP2.bam_stat.txt", + "star_salmon/rseqc/infer_experiment", + "star_salmon/rseqc/infer_experiment/RAP1_IAA_30M_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/RAP1_UNINDUCED_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/RAP1_UNINDUCED_REP2.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/WT_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/WT_REP2.infer_experiment.txt", + "star_salmon/rseqc/inner_distance", + "star_salmon/rseqc/inner_distance/pdf", + "star_salmon/rseqc/inner_distance/pdf/RAP1_IAA_30M_REP1.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/pdf/WT_REP1.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/pdf/WT_REP2.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/rscript", + "star_salmon/rseqc/inner_distance/rscript/RAP1_IAA_30M_REP1.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/rscript/WT_REP1.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/rscript/WT_REP2.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_mean.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance_mean.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance_mean.txt", + "star_salmon/rseqc/junction_annotation", + "star_salmon/rseqc/junction_annotation/bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP2.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP2.junction.bed", + "star_salmon/rseqc/junction_annotation/log", + "star_salmon/rseqc/junction_annotation/log/RAP1_IAA_30M_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP2.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/WT_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/WT_REP2.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP2.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP2.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/rscript", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_IAA_30M_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP2.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/WT_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/WT_REP2.junction_plot.r", + "star_salmon/rseqc/junction_annotation/xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_IAA_30M_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP2.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/WT_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/WT_REP2.junction.xls", + "star_salmon/rseqc/junction_saturation", + "star_salmon/rseqc/junction_saturation/pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_IAA_30M_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP2.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/WT_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/WT_REP2.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/rscript", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_IAA_30M_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP2.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/WT_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/WT_REP2.junctionSaturation_plot.r", + "star_salmon/rseqc/read_distribution", + "star_salmon/rseqc/read_distribution/RAP1_IAA_30M_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/RAP1_UNINDUCED_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/RAP1_UNINDUCED_REP2.read_distribution.txt", + "star_salmon/rseqc/read_distribution/WT_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/WT_REP2.read_distribution.txt", + "star_salmon/rseqc/read_duplication", + "star_salmon/rseqc/read_duplication/pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_IAA_30M_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP2.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/WT_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/WT_REP2.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/rscript", + "star_salmon/rseqc/read_duplication/rscript/RAP1_IAA_30M_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP2.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/WT_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/WT_REP2.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene_counts.tsv", + "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", + "star_salmon/salmon.merged.gene_counts_scaled.tsv", + "star_salmon/salmon.merged.gene_lengths.tsv", + "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", + "star_salmon/salmon.merged.transcript_counts.tsv", + "star_salmon/salmon.merged.transcript_lengths.tsv", + "star_salmon/salmon.merged.transcript_tpm.tsv", + "star_salmon/samtools_stats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP1.markdup.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP1.markdup.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP1.markdup.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP2.markdup.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP2.markdup.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP2.markdup.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.stats", + "star_salmon/stringtie", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.coverage.gtf", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.gene.abundance.txt", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.transcripts.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.coverage.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.gene.abundance.txt", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.transcripts.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.coverage.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.gene.abundance.txt", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.transcripts.gtf", + "star_salmon/stringtie/WT_REP1.ballgown", + "star_salmon/stringtie/WT_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/WT_REP1.coverage.gtf", + "star_salmon/stringtie/WT_REP1.gene.abundance.txt", + "star_salmon/stringtie/WT_REP1.transcripts.gtf", + "star_salmon/stringtie/WT_REP2.ballgown", + "star_salmon/stringtie/WT_REP2.ballgown/e2t.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/e_data.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/i2t.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/i_data.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/t_data.ctab", + "star_salmon/stringtie/WT_REP2.coverage.gtf", + "star_salmon/stringtie/WT_REP2.gene.abundance.txt", + "star_salmon/stringtie/WT_REP2.transcripts.gtf", + "star_salmon/tx2gene.tsv", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt" + ], + [ + "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055", + "genome_gfp.gtf:md5,c98b12c302f15731bfc36bcf297cfe28", + "cutadapt_filtered_reads_plot.txt:md5,6fa381627f7c1f664f3d4b2cb79cce90", + "cutadapt_trimmed_sequences_plot_3_Counts.txt:md5,13dfa866fd91dbb072689efe9aa83b1f", + "cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt:md5,07145dd8dd3db654859b18eb0389046c", + "fastqc_raw-status-check-heatmap.txt:md5,5a89b0d8d162f6b1dbdaf39457bbc03b", + "fastqc_raw_adapter_content_plot.txt:md5,da0389be84cfdd189b1d045212eb2974", + "fastqc_raw_overrepresented_sequences_plot.txt:md5,25d88ea8a72f55e8a374ae802bc7f0b1", + "fastqc_raw_per_base_n_content_plot.txt:md5,d368d7e36ca2f73dcde61f2b486d8213", + "fastqc_raw_per_base_sequence_quality_plot.txt:md5,5c3065b549129702b185ea1b817da420", + "fastqc_raw_per_sequence_gc_content_plot_Counts.txt:md5,9ddaa50167117d3c9188ccf015427704", + "fastqc_raw_per_sequence_gc_content_plot_Percentages.txt:md5,f10ee2881b61308af35f304aa3d810a3", + "fastqc_raw_per_sequence_quality_scores_plot.txt:md5,b5f9a02933e3065952237afd2ec9ce82", + "fastqc_raw_sequence_counts_plot.txt:md5,cbae4979d5db66d3b894abcf8d1c453c", + "fastqc_raw_sequence_duplication_levels_plot.txt:md5,8812cee16f6ca65e2c33635754de1772", + "fastqc_sequence_length_distribution_plot.txt:md5,6fe2c985606abad947bcca99b015ae33", + "fastqc_trimmed-status-check-heatmap.txt:md5,22a03548736b88b23be6bc0c9ef1b4a6", + "fastqc_trimmed_overrepresented_sequences_plot.txt:md5,c755e9d044ea1a82b2c8edde867b4878", + "fastqc_trimmed_per_base_n_content_plot.txt:md5,418610c1ce119cb786ad434db75d366e", + "fastqc_trimmed_per_base_sequence_quality_plot.txt:md5,bd22e06e41c096ad4f745d40fe96a1e5", + "fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt:md5,004c60768ceb6197765154e3eaa37b7a", + "fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt:md5,95d29060b687f745288ad1ec47750037", + "fastqc_trimmed_per_sequence_quality_scores_plot.txt:md5,0f9834cc19f76dd5c87cf8cba7435a7c", + "fastqc_trimmed_sequence_counts_plot.txt:md5,9fd642bdd1da354f296bb8092205608f", + "fastqc_trimmed_sequence_duplication_levels_plot.txt:md5,0758257b497283b1ef28171e694db6db", + "multiqc_citations.txt:md5,2d2ab6df367e36e98e081c33dec187a0", + "multiqc_cutadapt.txt:md5,583b7b9ba76b26162bb9610ed746454b", + "multiqc_fastqc_fastqc_raw.txt:md5,81c3c1a2575a1891a7f2a9637a0f2cc0", + "multiqc_fastqc_fastqc_trimmed.txt:md5,54743154d0e8858980acffeb5b6f6a97", + "multiqc_featurecounts_biotype_plot.txt:md5,ef5643bbc0919c3d82ae05f3f01100a5", + "multiqc_samtools_idxstats.txt:md5,fd7d03a91f0b9e01a6939941f7f2243f", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_QualityScoreDistribution_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "qualimap_gene_coverage_profile_Counts.txt:md5,02044ed1bf1eca19a8a87c9971cdc049", + "qualimap_gene_coverage_profile_Normalised.txt:md5,eeeea7f50278b3b335bef545784abbfa", + "qualimap_rnaseq_cov_hist.txt:md5,51407e597076f3a7f98622213bea6bce", + "rseqc_infer_experiment_plot.txt:md5,e4e48561a487982dcc87f48421fe4880", + "samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt:md5,75acd04232d1804b5f960ee4c5db4722", + "samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt:md5,ae45731d8d4595f77e6b271004f3a070", + "samtools-idxstats-mapped-reads-plot_Raw_Counts.txt:md5,01637c600d3840500851eb4118564cc6", + "ambig_info.tsv:md5,de973a4b22a4457217ae3dc04caf9401", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,138b27764a97d468418b3dac5e7f1cef", + "lib_format_counts.json:md5,c24ffe28d70476b5ccdd8bc2d22c0ac1", + "ambig_info.tsv:md5,45f252b4f0e11e6730cf0c29f800fdbb", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,87bcf1e84fc31a794e3c8f8b227d11c3", + "lib_format_counts.json:md5,f6d44c0221f7fd559f11a9afe04c9935", + "ambig_info.tsv:md5,6dcc2891ea572e9b8d1ba52cd434ab84", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,ec504469f9b0e33c94f85846f1486d7f", + "lib_format_counts.json:md5,7c562bf2f70e42f3a7292687dfd328c3", + "ambig_info.tsv:md5,194f574e0586416155e3f33d42e2b167", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,591436d401b6df6f3c6a8b16913158f4", + "lib_format_counts.json:md5,d46250bb3677d72feeefc435fe6395a6", + "ambig_info.tsv:md5,a26e3f936e65d7da66392603c2f91f6f", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,fe66c9d876645b9260d8c2488157d4d4", + "lib_format_counts.json:md5,088fd51db07022ffde47033bbd029400", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe", + "ambig_info.tsv:md5,f9a605d54a0a103566f7a9b8e0867a73", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,21395500c85658c70ce5fa0ac05b339a", + "ambig_info.tsv:md5,8f97be8af4e47cc48650c62227a40203", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,faf70330c73fdce087631bb06de8a12f", + "ambig_info.tsv:md5,a044fe7a3ad445c9a91a0d54ab5015d1", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,563fd8191cc965524621c2afea7983ff", + "ambig_info.tsv:md5,7a8ea02d74058efb801e8c62bca96fd4", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,867de0b90aeccb5f9627e821a973aea7", + "ambig_info.tsv:md5,543a047a549437026a1363ea8ddf5b03", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,3a51e7db950cee84bed0b13e329f1934", + "RAP1_IAA_30M_REP1_dupMatrix.txt:md5,2e0d518a450bb57801cdd075d4e9c217", + "RAP1_UNINDUCED_REP1_dupMatrix.txt:md5,96e2f9e1fc5a22a7d468e6fb4a613370", + "RAP1_UNINDUCED_REP2_dupMatrix.txt:md5,28c30ce734d78d53b1c47c3f87414e4b", + "WT_REP1_dupMatrix.txt:md5,fefd4fafa0bd46c93de8da0857dd3672", + "WT_REP2_dupMatrix.txt:md5,02236769150436cf31b7339f612119a5", + "RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv:md5,6940e190bb388be56f282aa01e916466", + "RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv:md5,dde2de0cb90e10d0195c726f768e9941", + "RAP1_IAA_30M_REP1.featureCounts.tsv:md5,07bd87d86ba5c6c3ceff36518183417d", + "RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv:md5,d241d50e582ceb97e6f16b3556f5f5a9", + "RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv:md5,845ff9059c72bc6722a8de69776e22bb", + "RAP1_UNINDUCED_REP1.featureCounts.tsv:md5,cb48d282dde8d10d5e4b1680e1a79ef4", + "RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv:md5,b621ce1e803d8670ece6c66391c33ba4", + "RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv:md5,6d3fa4c88c7fe61f638e4624ad5e22f0", + "RAP1_UNINDUCED_REP2.featureCounts.tsv:md5,5c96326d9edb98d18322d506394dda1a", + "WT_REP1.biotype_counts_mqc.tsv:md5,e0dbe5dcff076b97775677fd64b29b04", + "WT_REP1.biotype_counts_rrna_mqc.tsv:md5,8ef76d717492ca23764938aee8ea33a9", + "WT_REP1.featureCounts.tsv:md5,6c92c50e4085b5aa6fe7001b9e61e0a2", + "WT_REP2.biotype_counts_mqc.tsv:md5,5cb8f29f175d07b3d8f8464bf8fcd82b", + "WT_REP2.biotype_counts_rrna_mqc.tsv:md5,12294618fe44df1e7f39348372dcb481", + "WT_REP2.featureCounts.tsv:md5,350ab8987337f4c7510801c0cc404ad8", + "RAP1_IAA_30M_REP1.SJ.out.tab:md5,ea95e243278af55534f2c52eb5fff7ee", + "RAP1_UNINDUCED_REP1.SJ.out.tab:md5,e548d13942535dc0821f3ec6d9743ec8", + "RAP1_UNINDUCED_REP2.SJ.out.tab:md5,1f294365343a1a5e95682792fdb77033", + "WT_REP1.SJ.out.tab:md5,1350c2fa6a675bf107386c6cd3fc5204", + "WT_REP2.SJ.out.tab:md5,f6cc03643a5e3c1025a5b4754eb1be23", + "coverage_profile_along_genes_(high).txt:md5,fcb06d460810c0555de5396b9dae05e8", + "coverage_profile_along_genes_(low).txt:md5,e3c9a1ddfdb89f8534ff7548b70fce32", + "coverage_profile_along_genes_(total).txt:md5,e3c9a1ddfdb89f8534ff7548b70fce32", + "coverage_profile_along_genes_(high).txt:md5,9f1e29a4d6eec52e8796b080daaedca3", + "coverage_profile_along_genes_(low).txt:md5,353f42a84ff34167646fc83909eac2ff", + "coverage_profile_along_genes_(total).txt:md5,353f42a84ff34167646fc83909eac2ff", + "coverage_profile_along_genes_(high).txt:md5,3b20a736708df02ea8c86dc5829ae67e", + "coverage_profile_along_genes_(low).txt:md5,02b314b76ef1317f20e129412340755d", + "coverage_profile_along_genes_(total).txt:md5,02b314b76ef1317f20e129412340755d", + "coverage_profile_along_genes_(high).txt:md5,8bf366c7dbc6170035ee64a057c581f1", + "coverage_profile_along_genes_(low).txt:md5,a9102de3ff9679d1f7a86afa85997211", + "coverage_profile_along_genes_(total).txt:md5,a9102de3ff9679d1f7a86afa85997211", + "coverage_profile_along_genes_(high).txt:md5,3f13eb908d6e97e6831306e9527cc2e3", + "coverage_profile_along_genes_(low).txt:md5,24df553662d0cedaa74cf06a8fead40b", + "coverage_profile_along_genes_(total).txt:md5,24df553662d0cedaa74cf06a8fead40b", + "RAP1_IAA_30M_REP1.infer_experiment.txt:md5,169d25b95c008bebe9ce886fea6a4e33", + "RAP1_UNINDUCED_REP1.infer_experiment.txt:md5,2ca0ce0fd3204bd2cc4812c4655b1f1f", + "RAP1_UNINDUCED_REP2.infer_experiment.txt:md5,7d5705880188f9beab1939e08d6b8f40", + "WT_REP1.infer_experiment.txt:md5,cb92e59571467519658ee87393a2f065", + "WT_REP2.infer_experiment.txt:md5,82e23b329ee60709f343bc2d17d43b14", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,3f149502efe2a9d4bac98b1dd18c15e7", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,a052ab04070e72cc318fb7680b0764e3", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,e82329a443b9ff50a86e42aff91bd704", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,d279003d92f7feef9adb31203f84474a", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,10e2d00f93f9e74f224bd3c1bfbeb29b", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,525413b70bcf62c24c8f96182e09883e", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,9aa371befc36478d7720d3ea275e6f4d", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,907ab2e06346df131cbdb929afc005a8", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,b03f3118d1aa58fceadcb3311028e856", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,041edee3193df311f621c09f4991892b", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-12T11:31:43.21579283" + } +} \ No newline at end of file diff --git a/tests/sentieon_star_rsem.nf.test b/tests/sentieon_star_rsem.nf.test new file mode 100644 index 000000000..65571e31b --- /dev/null +++ b/tests/sentieon_star_rsem.nf.test @@ -0,0 +1,70 @@ +nextflow_pipeline { + + name "Test pipeline with STAR aligner and RSEM for quantification" + script "../main.nf" + tag "pipeline" + + test("Params: --aligner star_rsem --use_sentieon_star") { + + when { + params { + outdir = "$outputDir" + aligner = 'star_rsem' + use_sentieon_star = true + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } + + test("Params: --aligner star_rsem --use_sentieon_star - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + aligner = 'star_rsem' + use_sentieon_star = true + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } +} diff --git a/tests/sentieon_star_rsem.nf.test.snap b/tests/sentieon_star_rsem.nf.test.snap new file mode 100644 index 000000000..bc975009e --- /dev/null +++ b/tests/sentieon_star_rsem.nf.test.snap @@ -0,0 +1,1397 @@ +{ + "Params: --aligner star_rsem --use_sentieon_star": { + "content": [ + 201, + { + "BBMAP_BBSPLIT": { + "bbmap": 39.18 + }, + "BEDTOOLS_GENOMECOV_FW": { + "bedtools": "2.31.1" + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": "3.12.2" + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "CUSTOM_TX2GENE": { + "python": "3.10.4" + }, + "DESEQ2_QC_PSEUDO": { + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" + }, + "DESEQ2_QC_RSEM": { + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" + }, + "DUPRADAR": { + "bioconductor-dupradar": "1.32.0" + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "FQ_SUBSAMPLE": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.13 + }, + "GUNZIP_GTF": { + "gunzip": 1.13 + }, + "MULTIQC_CUSTOM_BIOTYPE": { + "python": "3.9.5" + }, + "PICARD_MARKDUPLICATES": { + "picard": "3.1.1" + }, + "QUALIMAP_RNASEQ": { + "qualimap": 2.3 + }, + "RSEM_MERGE_COUNTS": { + "sed": 4.7 + }, + "RSEQC_BAMSTAT": { + "rseqc": "5.0.2" + }, + "RSEQC_INFEREXPERIMENT": { + "rseqc": "5.0.2" + }, + "RSEQC_INNERDISTANCE": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONANNOTATION": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONSATURATION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDISTRIBUTION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDUPLICATION": { + "rseqc": "5.0.2" + }, + "SALMON_QUANT": { + "salmon": "1.10.3" + }, + "SAMTOOLS_FLAGSTAT": { + "samtools": 1.21 + }, + "SAMTOOLS_IDXSTATS": { + "samtools": 1.21 + }, + "SAMTOOLS_INDEX": { + "samtools": 1.21 + }, + "SAMTOOLS_SORT": { + "samtools": 1.21 + }, + "SAMTOOLS_STATS": { + "samtools": 1.21 + }, + "SENTIEON_RSEMCALCULATEEXPRESSION": { + "rsem": "1.3.1", + "sentieon": 202503.01, + "star": "2.7.10b" + }, + "SE_GENE_UNIFIED": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "SE_TRANSCRIPT_UNIFIED": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "STRINGTIE_STRINGTIE": { + "stringtie": "2.2.3" + }, + "SUBREAD_FEATURECOUNTS": { + "subread": "2.0.6" + }, + "TRIMGALORE": { + "cutadapt": 4.9, + "pigz": 2.8, + "trimgalore": "0.6.10" + }, + "TXIMETA_TXIMPORT": { + "bioconductor-tximeta": "1.20.1" + }, + "UCSC_BEDCLIP": { + "ucsc": 377 + }, + "UCSC_BEDGRAPHTOBIGWIG": { + "ucsc": 469 + }, + "UNTAR_RSEM_INDEX": { + "untar": 1.34 + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + } + }, + [ + "bbsplit", + "bbsplit/RAP1_IAA_30M_REP1.stats.txt", + "bbsplit/RAP1_UNINDUCED_REP1.stats.txt", + "bbsplit/RAP1_UNINDUCED_REP2.stats.txt", + "bbsplit/WT_REP1.stats.txt", + "bbsplit/WT_REP2.stats.txt", + "custom", + "custom/out", + "custom/out/genome_gfp.fasta", + "custom/out/genome_gfp.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.zip", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.zip", + "fastqc/raw/WT_REP1_raw_1_fastqc.html", + "fastqc/raw/WT_REP1_raw_1_fastqc.zip", + "fastqc/raw/WT_REP1_raw_2_fastqc.html", + "fastqc/raw/WT_REP1_raw_2_fastqc.zip", + "fastqc/raw/WT_REP2_raw_1_fastqc.html", + "fastqc/raw/WT_REP2_raw_1_fastqc.zip", + "fastqc/raw/WT_REP2_raw_2_fastqc.html", + "fastqc/raw/WT_REP2_raw_2_fastqc.zip", + "fastqc/trim", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_rsem", + "multiqc/star_rsem/multiqc_report.html", + "multiqc/star_rsem/multiqc_report_data", + "multiqc/star_rsem/multiqc_report_data/BETA-multiqc.parquet", + "multiqc/star_rsem/multiqc_report_data/cutadapt_filtered_reads_plot.txt", + "multiqc/star_rsem/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw-status-check-heatmap.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_adapter_content_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_overrepresented_sequences_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_per_base_n_content_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_per_base_sequence_quality_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_per_sequence_quality_scores_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_sequence_counts_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_sequence_duplication_levels_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_raw_top_overrepresented_sequences_table.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed-status-check-heatmap.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_overrepresented_sequences_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_per_base_n_content_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_per_base_sequence_quality_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_per_sequence_quality_scores_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", + "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/star_rsem/multiqc_report_data/junction_saturation_known.txt", + "multiqc/star_rsem/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_rsem/multiqc_report_data/llms-full.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc.log", + "multiqc/star_rsem/multiqc_report_data/multiqc_citations.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_cutadapt.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_data.json", + "multiqc/star_rsem/multiqc_report_data/multiqc_dupradar.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_fail_strand_check_table.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_fastqc_fastqc_raw.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_fastqc_fastqc_trimmed.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_featurecounts_biotype_plot.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_general_stats.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_picard_dups.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_rsem.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_bam_stat.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_infer_experiment.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_read_distribution.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_salmon.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_flagstat.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_idxstats.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_stats.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_software_versions.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_sources.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_star_rsem_deseq2_clustering.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_star_rsem_deseq2_pca.txt", + "multiqc/star_rsem/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/star_rsem/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/star_rsem/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/star_rsem/multiqc_report_data/picard_deduplication.txt", + "multiqc/star_rsem/multiqc_report_data/qualimap_gene_coverage_profile_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/qualimap_gene_coverage_profile_Normalised.txt", + "multiqc/star_rsem/multiqc_report_data/qualimap_genomic_origin.txt", + "multiqc/star_rsem/multiqc_report_data/qualimap_rnaseq_cov_hist.txt", + "multiqc/star_rsem/multiqc_report_data/qualimap_rnaseq_genome_results.txt", + "multiqc/star_rsem/multiqc_report_data/rsem_assignment_plot.txt", + "multiqc/star_rsem/multiqc_report_data/rsem_multimapping_rates.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_bam_stat.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_infer_experiment_plot.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_inner_distance.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_inner_distance_plot_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_inner_distance_plot_Percentages.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Events.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Junctions.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_saturation_all.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_saturation_plot_All_Junctions.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_saturation_plot_Known_Junctions.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_junction_saturation_plot_Novel_Junctions.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_read_distribution_plot.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_read_dups.txt", + "multiqc/star_rsem/multiqc_report_data/rseqc_read_dups_plot.txt", + "multiqc/star_rsem/multiqc_report_data/salmon_plot.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-flagstat-pct-table.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-flagstat-table.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Raw_Counts.txt", + "multiqc/star_rsem/multiqc_report_data/samtools-stats-dp.txt", + "multiqc/star_rsem/multiqc_report_data/samtools_alignment_plot.txt", + "multiqc/star_rsem/multiqc_report_plots", + "multiqc/star_rsem/multiqc_report_plots/pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Counts.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Obs_Exp.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/dupradar.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fail_strand_check_table.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw-status-check-heatmap.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_adapter_content_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_overrepresented_sequences_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_per_base_n_content_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_per_base_sequence_quality_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_per_sequence_quality_scores_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_sequence_duplication_levels_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_raw_top_overrepresented_sequences_table.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed-status-check-heatmap.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_overrepresented_sequences_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_per_base_n_content_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_per_base_sequence_quality_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_quality_scores_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_sequence_duplication_levels_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/fastqc_trimmed_top_overrepresented_sequences_table.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/featurecounts_biotype_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/featurecounts_biotype_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/picard_deduplication-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/picard_deduplication-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Counts.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Normalised.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/qualimap_genomic_origin-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/qualimap_genomic_origin-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rsem_assignment_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rsem_assignment_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rsem_multimapping_rates.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_bam_stat.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_infer_experiment_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Counts.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Percentages.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_All_Junctions.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Known_Junctions.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Novel_Junctions.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-stats-dp.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools_alignment_plot-cnt.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/star_rsem_deseq2_clustering.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/star_rsem_deseq2_pca.pdf", + "multiqc/star_rsem/multiqc_report_plots/png", + "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Counts.png", + "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Obs_Exp.png", + "multiqc/star_rsem/multiqc_report_plots/png/dupradar.png", + "multiqc/star_rsem/multiqc_report_plots/png/fail_strand_check_table.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw-status-check-heatmap.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_adapter_content_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_overrepresented_sequences_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_per_base_n_content_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_per_base_sequence_quality_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_per_sequence_quality_scores_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_sequence_duplication_levels_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_raw_top_overrepresented_sequences_table.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed-status-check-heatmap.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_overrepresented_sequences_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_per_base_n_content_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_per_base_sequence_quality_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_per_sequence_quality_scores_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_sequence_duplication_levels_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/fastqc_trimmed_top_overrepresented_sequences_table.png", + "multiqc/star_rsem/multiqc_report_plots/png/featurecounts_biotype_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/featurecounts_biotype_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/picard_deduplication-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/picard_deduplication-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/qualimap_gene_coverage_profile_Counts.png", + "multiqc/star_rsem/multiqc_report_plots/png/qualimap_gene_coverage_profile_Normalised.png", + "multiqc/star_rsem/multiqc_report_plots/png/qualimap_genomic_origin-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/qualimap_genomic_origin-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/rsem_assignment_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/rsem_assignment_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/rsem_multimapping_rates.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_bam_stat.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_infer_experiment_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_inner_distance_plot_Counts.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_inner_distance_plot_Percentages.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_saturation_plot_All_Junctions.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_saturation_plot_Known_Junctions.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_junction_saturation_plot_Novel_Junctions.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_rsem/multiqc_report_plots/png/salmon_deseq2_pca.png", + "multiqc/star_rsem/multiqc_report_plots/png/salmon_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-flagstat-pct-table.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-flagstat-table.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools-stats-dp.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools_alignment_plot-cnt.png", + "multiqc/star_rsem/multiqc_report_plots/png/samtools_alignment_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/star_rsem_deseq2_clustering.png", + "multiqc/star_rsem/multiqc_report_plots/png/star_rsem_deseq2_pca.png", + "multiqc/star_rsem/multiqc_report_plots/svg", + "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Counts.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Obs_Exp.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/dupradar.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fail_strand_check_table.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw-status-check-heatmap.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_adapter_content_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_overrepresented_sequences_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_per_base_n_content_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_per_base_sequence_quality_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_per_sequence_quality_scores_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_sequence_duplication_levels_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_raw_top_overrepresented_sequences_table.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed-status-check-heatmap.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_overrepresented_sequences_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_per_base_n_content_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_per_base_sequence_quality_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_quality_scores_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_sequence_duplication_levels_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/fastqc_trimmed_top_overrepresented_sequences_table.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/featurecounts_biotype_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/featurecounts_biotype_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/picard_deduplication-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/picard_deduplication-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Counts.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Normalised.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/qualimap_genomic_origin-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/qualimap_genomic_origin-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rsem_assignment_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rsem_assignment_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rsem_multimapping_rates.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_bam_stat.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_infer_experiment_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_inner_distance_plot_Counts.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_inner_distance_plot_Percentages.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_saturation_plot_All_Junctions.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Known_Junctions.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Novel_Junctions.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/salmon_deseq2_pca.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/salmon_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-flagstat-table.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools-stats-dp.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools_alignment_plot-cnt.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/star_rsem_deseq2_clustering.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/star_rsem_deseq2_pca.svg", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "salmon", + "salmon/RAP1_IAA_30M_REP1", + "salmon/RAP1_IAA_30M_REP1/aux_info", + "salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "salmon/RAP1_IAA_30M_REP1/libParams", + "salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "salmon/RAP1_IAA_30M_REP1/lib_format_counts.json", + "salmon/RAP1_IAA_30M_REP1/logs", + "salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "salmon/RAP1_IAA_30M_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP1", + "salmon/RAP1_UNINDUCED_REP1/aux_info", + "salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP1/libParams", + "salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP1/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP1/logs", + "salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP2", + "salmon/RAP1_UNINDUCED_REP2/aux_info", + "salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP2/libParams", + "salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP2/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP2/logs", + "salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP2/quant.sf", + "salmon/WT_REP1", + "salmon/WT_REP1/aux_info", + "salmon/WT_REP1/aux_info/ambig_info.tsv", + "salmon/WT_REP1/aux_info/expected_bias.gz", + "salmon/WT_REP1/aux_info/fld.gz", + "salmon/WT_REP1/aux_info/meta_info.json", + "salmon/WT_REP1/aux_info/observed_bias.gz", + "salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "salmon/WT_REP1/cmd_info.json", + "salmon/WT_REP1/libParams", + "salmon/WT_REP1/libParams/flenDist.txt", + "salmon/WT_REP1/lib_format_counts.json", + "salmon/WT_REP1/logs", + "salmon/WT_REP1/logs/salmon_quant.log", + "salmon/WT_REP1/quant.genes.sf", + "salmon/WT_REP1/quant.sf", + "salmon/WT_REP2", + "salmon/WT_REP2/aux_info", + "salmon/WT_REP2/aux_info/ambig_info.tsv", + "salmon/WT_REP2/aux_info/expected_bias.gz", + "salmon/WT_REP2/aux_info/fld.gz", + "salmon/WT_REP2/aux_info/meta_info.json", + "salmon/WT_REP2/aux_info/observed_bias.gz", + "salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "salmon/WT_REP2/cmd_info.json", + "salmon/WT_REP2/libParams", + "salmon/WT_REP2/libParams/flenDist.txt", + "salmon/WT_REP2/lib_format_counts.json", + "salmon/WT_REP2/logs", + "salmon/WT_REP2/logs/salmon_quant.log", + "salmon/WT_REP2/quant.genes.sf", + "salmon/WT_REP2/quant.sf", + "salmon/deseq2_qc", + "salmon/deseq2_qc/R_sessionInfo.log", + "salmon/deseq2_qc/deseq2.dds.RData", + "salmon/deseq2_qc/deseq2.pca.vals.txt", + "salmon/deseq2_qc/deseq2.plots.pdf", + "salmon/deseq2_qc/deseq2.sample.dists.txt", + "salmon/deseq2_qc/size_factors", + "salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "salmon/deseq2_qc/size_factors/WT_REP1.txt", + "salmon/deseq2_qc/size_factors/WT_REP2.txt", + "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts.tsv", + "salmon/salmon.merged.gene_counts_length_scaled.tsv", + "salmon/salmon.merged.gene_counts_scaled.tsv", + "salmon/salmon.merged.gene_lengths.tsv", + "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", + "salmon/salmon.merged.transcript_counts.tsv", + "salmon/salmon.merged.transcript_lengths.tsv", + "salmon/salmon.merged.transcript_tpm.tsv", + "salmon/tx2gene.tsv", + "star_rsem", + "star_rsem/RAP1_IAA_30M_REP1.genes.results", + "star_rsem/RAP1_IAA_30M_REP1.isoforms.results", + "star_rsem/RAP1_IAA_30M_REP1.markdup.sorted.bam", + "star_rsem/RAP1_IAA_30M_REP1.markdup.sorted.bam.bai", + "star_rsem/RAP1_IAA_30M_REP1.stat", + "star_rsem/RAP1_IAA_30M_REP1.stat/RAP1_IAA_30M_REP1.cnt", + "star_rsem/RAP1_IAA_30M_REP1.stat/RAP1_IAA_30M_REP1.model", + "star_rsem/RAP1_IAA_30M_REP1.stat/RAP1_IAA_30M_REP1.theta", + "star_rsem/RAP1_UNINDUCED_REP1.genes.results", + "star_rsem/RAP1_UNINDUCED_REP1.isoforms.results", + "star_rsem/RAP1_UNINDUCED_REP1.markdup.sorted.bam", + "star_rsem/RAP1_UNINDUCED_REP1.markdup.sorted.bam.bai", + "star_rsem/RAP1_UNINDUCED_REP1.stat", + "star_rsem/RAP1_UNINDUCED_REP1.stat/RAP1_UNINDUCED_REP1.cnt", + "star_rsem/RAP1_UNINDUCED_REP1.stat/RAP1_UNINDUCED_REP1.model", + "star_rsem/RAP1_UNINDUCED_REP1.stat/RAP1_UNINDUCED_REP1.theta", + "star_rsem/RAP1_UNINDUCED_REP2.genes.results", + "star_rsem/RAP1_UNINDUCED_REP2.isoforms.results", + "star_rsem/RAP1_UNINDUCED_REP2.markdup.sorted.bam", + "star_rsem/RAP1_UNINDUCED_REP2.markdup.sorted.bam.bai", + "star_rsem/RAP1_UNINDUCED_REP2.stat", + "star_rsem/RAP1_UNINDUCED_REP2.stat/RAP1_UNINDUCED_REP2.cnt", + "star_rsem/RAP1_UNINDUCED_REP2.stat/RAP1_UNINDUCED_REP2.model", + "star_rsem/RAP1_UNINDUCED_REP2.stat/RAP1_UNINDUCED_REP2.theta", + "star_rsem/WT_REP1.genes.results", + "star_rsem/WT_REP1.isoforms.results", + "star_rsem/WT_REP1.markdup.sorted.bam", + "star_rsem/WT_REP1.markdup.sorted.bam.bai", + "star_rsem/WT_REP1.stat", + "star_rsem/WT_REP1.stat/WT_REP1.cnt", + "star_rsem/WT_REP1.stat/WT_REP1.model", + "star_rsem/WT_REP1.stat/WT_REP1.theta", + "star_rsem/WT_REP2.genes.results", + "star_rsem/WT_REP2.isoforms.results", + "star_rsem/WT_REP2.markdup.sorted.bam", + "star_rsem/WT_REP2.markdup.sorted.bam.bai", + "star_rsem/WT_REP2.stat", + "star_rsem/WT_REP2.stat/WT_REP2.cnt", + "star_rsem/WT_REP2.stat/WT_REP2.model", + "star_rsem/WT_REP2.stat/WT_REP2.theta", + "star_rsem/bigwig", + "star_rsem/bigwig/RAP1_IAA_30M_REP1.forward.bigWig", + "star_rsem/bigwig/RAP1_IAA_30M_REP1.reverse.bigWig", + "star_rsem/bigwig/RAP1_UNINDUCED_REP1.forward.bigWig", + "star_rsem/bigwig/RAP1_UNINDUCED_REP1.reverse.bigWig", + "star_rsem/bigwig/RAP1_UNINDUCED_REP2.forward.bigWig", + "star_rsem/bigwig/RAP1_UNINDUCED_REP2.reverse.bigWig", + "star_rsem/bigwig/WT_REP1.forward.bigWig", + "star_rsem/bigwig/WT_REP1.reverse.bigWig", + "star_rsem/bigwig/WT_REP2.forward.bigWig", + "star_rsem/bigwig/WT_REP2.reverse.bigWig", + "star_rsem/deseq2_qc", + "star_rsem/deseq2_qc/R_sessionInfo.log", + "star_rsem/deseq2_qc/deseq2.dds.RData", + "star_rsem/deseq2_qc/deseq2.pca.vals.txt", + "star_rsem/deseq2_qc/deseq2.plots.pdf", + "star_rsem/deseq2_qc/deseq2.sample.dists.txt", + "star_rsem/deseq2_qc/size_factors", + "star_rsem/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "star_rsem/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "star_rsem/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "star_rsem/deseq2_qc/size_factors/WT_REP1.txt", + "star_rsem/deseq2_qc/size_factors/WT_REP2.txt", + "star_rsem/deseq2_qc/size_factors/deseq2.size_factors.RData", + "star_rsem/dupradar", + "star_rsem/dupradar/box_plot", + "star_rsem/dupradar/box_plot/RAP1_IAA_30M_REP1_duprateExpBoxplot.pdf", + "star_rsem/dupradar/box_plot/RAP1_UNINDUCED_REP1_duprateExpBoxplot.pdf", + "star_rsem/dupradar/box_plot/RAP1_UNINDUCED_REP2_duprateExpBoxplot.pdf", + "star_rsem/dupradar/box_plot/WT_REP1_duprateExpBoxplot.pdf", + "star_rsem/dupradar/box_plot/WT_REP2_duprateExpBoxplot.pdf", + "star_rsem/dupradar/gene_data", + "star_rsem/dupradar/gene_data/RAP1_IAA_30M_REP1_dupMatrix.txt", + "star_rsem/dupradar/gene_data/RAP1_UNINDUCED_REP1_dupMatrix.txt", + "star_rsem/dupradar/gene_data/RAP1_UNINDUCED_REP2_dupMatrix.txt", + "star_rsem/dupradar/gene_data/WT_REP1_dupMatrix.txt", + "star_rsem/dupradar/gene_data/WT_REP2_dupMatrix.txt", + "star_rsem/dupradar/histogram", + "star_rsem/dupradar/histogram/RAP1_IAA_30M_REP1_expressionHist.pdf", + "star_rsem/dupradar/histogram/RAP1_UNINDUCED_REP1_expressionHist.pdf", + "star_rsem/dupradar/histogram/RAP1_UNINDUCED_REP2_expressionHist.pdf", + "star_rsem/dupradar/histogram/WT_REP1_expressionHist.pdf", + "star_rsem/dupradar/histogram/WT_REP2_expressionHist.pdf", + "star_rsem/dupradar/intercepts_slope", + "star_rsem/dupradar/intercepts_slope/RAP1_IAA_30M_REP1_intercept_slope.txt", + "star_rsem/dupradar/intercepts_slope/RAP1_UNINDUCED_REP1_intercept_slope.txt", + "star_rsem/dupradar/intercepts_slope/RAP1_UNINDUCED_REP2_intercept_slope.txt", + "star_rsem/dupradar/intercepts_slope/WT_REP1_intercept_slope.txt", + "star_rsem/dupradar/intercepts_slope/WT_REP2_intercept_slope.txt", + "star_rsem/dupradar/scatter_plot", + "star_rsem/dupradar/scatter_plot/RAP1_IAA_30M_REP1_duprateExpDens.pdf", + "star_rsem/dupradar/scatter_plot/RAP1_UNINDUCED_REP1_duprateExpDens.pdf", + "star_rsem/dupradar/scatter_plot/RAP1_UNINDUCED_REP2_duprateExpDens.pdf", + "star_rsem/dupradar/scatter_plot/WT_REP1_duprateExpDens.pdf", + "star_rsem/dupradar/scatter_plot/WT_REP2_duprateExpDens.pdf", + "star_rsem/featurecounts", + "star_rsem/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv", + "star_rsem/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv", + "star_rsem/featurecounts/RAP1_IAA_30M_REP1.featureCounts.tsv", + "star_rsem/featurecounts/RAP1_IAA_30M_REP1.featureCounts.tsv.summary", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.tsv.summary", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.tsv", + "star_rsem/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.tsv.summary", + "star_rsem/featurecounts/WT_REP1.biotype_counts_mqc.tsv", + "star_rsem/featurecounts/WT_REP1.biotype_counts_rrna_mqc.tsv", + "star_rsem/featurecounts/WT_REP1.featureCounts.tsv", + "star_rsem/featurecounts/WT_REP1.featureCounts.tsv.summary", + "star_rsem/featurecounts/WT_REP2.biotype_counts_mqc.tsv", + "star_rsem/featurecounts/WT_REP2.biotype_counts_rrna_mqc.tsv", + "star_rsem/featurecounts/WT_REP2.featureCounts.tsv", + "star_rsem/featurecounts/WT_REP2.featureCounts.tsv.summary", + "star_rsem/log", + "star_rsem/log/RAP1_IAA_30M_REP1.log", + "star_rsem/log/RAP1_UNINDUCED_REP1.log", + "star_rsem/log/RAP1_UNINDUCED_REP2.log", + "star_rsem/log/WT_REP1.log", + "star_rsem/log/WT_REP2.log", + "star_rsem/picard_metrics", + "star_rsem/picard_metrics/RAP1_IAA_30M_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_rsem/picard_metrics/RAP1_UNINDUCED_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_rsem/picard_metrics/RAP1_UNINDUCED_REP2.markdup.sorted.MarkDuplicates.metrics.txt", + "star_rsem/picard_metrics/WT_REP1.markdup.sorted.MarkDuplicates.metrics.txt", + "star_rsem/picard_metrics/WT_REP2.markdup.sorted.MarkDuplicates.metrics.txt", + "star_rsem/qualimap", + "star_rsem/qualimap/RAP1_IAA_30M_REP1", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/agogo.css", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/ajax-loader.gif", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/basic.css", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/bgfooter.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/bgtop.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/comment-bright.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/comment-close.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/comment.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/doctools.js", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/down-pressed.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/down.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/file.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/jquery.js", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/minus.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/plus.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/pygments.css", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/qualimap_logo_small.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/report.css", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/searchtools.js", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/underscore.js", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/up-pressed.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/up.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/css/websupport.js", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Junction Analysis.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/qualimapReport.html", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_rsem/qualimap/RAP1_IAA_30M_REP1/rnaseq_qc_results.txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/agogo.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/ajax-loader.gif", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/basic.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/bgfooter.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/bgtop.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/comment-bright.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/comment-close.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/comment.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/doctools.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/down-pressed.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/down.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/file.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/jquery.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/minus.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/plus.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/pygments.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/qualimap_logo_small.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/report.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/searchtools.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/underscore.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/up-pressed.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/up.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/css/websupport.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Junction Analysis.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/qualimapReport.html", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP1/rnaseq_qc_results.txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/agogo.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/ajax-loader.gif", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/basic.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/bgfooter.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/bgtop.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/comment-bright.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/comment-close.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/comment.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/doctools.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/down-pressed.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/down.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/file.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/jquery.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/minus.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/plus.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/pygments.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/qualimap_logo_small.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/report.css", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/searchtools.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/underscore.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/up-pressed.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/up.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/css/websupport.js", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Junction Analysis.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/qualimapReport.html", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_rsem/qualimap/RAP1_UNINDUCED_REP2/rnaseq_qc_results.txt", + "star_rsem/qualimap/WT_REP1", + "star_rsem/qualimap/WT_REP1/css", + "star_rsem/qualimap/WT_REP1/css/agogo.css", + "star_rsem/qualimap/WT_REP1/css/ajax-loader.gif", + "star_rsem/qualimap/WT_REP1/css/basic.css", + "star_rsem/qualimap/WT_REP1/css/bgfooter.png", + "star_rsem/qualimap/WT_REP1/css/bgtop.png", + "star_rsem/qualimap/WT_REP1/css/comment-bright.png", + "star_rsem/qualimap/WT_REP1/css/comment-close.png", + "star_rsem/qualimap/WT_REP1/css/comment.png", + "star_rsem/qualimap/WT_REP1/css/doctools.js", + "star_rsem/qualimap/WT_REP1/css/down-pressed.png", + "star_rsem/qualimap/WT_REP1/css/down.png", + "star_rsem/qualimap/WT_REP1/css/file.png", + "star_rsem/qualimap/WT_REP1/css/jquery.js", + "star_rsem/qualimap/WT_REP1/css/minus.png", + "star_rsem/qualimap/WT_REP1/css/plus.png", + "star_rsem/qualimap/WT_REP1/css/pygments.css", + "star_rsem/qualimap/WT_REP1/css/qualimap_logo_small.png", + "star_rsem/qualimap/WT_REP1/css/report.css", + "star_rsem/qualimap/WT_REP1/css/searchtools.js", + "star_rsem/qualimap/WT_REP1/css/underscore.js", + "star_rsem/qualimap/WT_REP1/css/up-pressed.png", + "star_rsem/qualimap/WT_REP1/css/up.png", + "star_rsem/qualimap/WT_REP1/css/websupport.js", + "star_rsem/qualimap/WT_REP1/images_qualimapReport", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Junction Analysis.png", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_rsem/qualimap/WT_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_rsem/qualimap/WT_REP1/qualimapReport.html", + "star_rsem/qualimap/WT_REP1/raw_data_qualimapReport", + "star_rsem/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_rsem/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_rsem/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_rsem/qualimap/WT_REP1/rnaseq_qc_results.txt", + "star_rsem/qualimap/WT_REP2", + "star_rsem/qualimap/WT_REP2/css", + "star_rsem/qualimap/WT_REP2/css/agogo.css", + "star_rsem/qualimap/WT_REP2/css/ajax-loader.gif", + "star_rsem/qualimap/WT_REP2/css/basic.css", + "star_rsem/qualimap/WT_REP2/css/bgfooter.png", + "star_rsem/qualimap/WT_REP2/css/bgtop.png", + "star_rsem/qualimap/WT_REP2/css/comment-bright.png", + "star_rsem/qualimap/WT_REP2/css/comment-close.png", + "star_rsem/qualimap/WT_REP2/css/comment.png", + "star_rsem/qualimap/WT_REP2/css/doctools.js", + "star_rsem/qualimap/WT_REP2/css/down-pressed.png", + "star_rsem/qualimap/WT_REP2/css/down.png", + "star_rsem/qualimap/WT_REP2/css/file.png", + "star_rsem/qualimap/WT_REP2/css/jquery.js", + "star_rsem/qualimap/WT_REP2/css/minus.png", + "star_rsem/qualimap/WT_REP2/css/plus.png", + "star_rsem/qualimap/WT_REP2/css/pygments.css", + "star_rsem/qualimap/WT_REP2/css/qualimap_logo_small.png", + "star_rsem/qualimap/WT_REP2/css/report.css", + "star_rsem/qualimap/WT_REP2/css/searchtools.js", + "star_rsem/qualimap/WT_REP2/css/underscore.js", + "star_rsem/qualimap/WT_REP2/css/up-pressed.png", + "star_rsem/qualimap/WT_REP2/css/up.png", + "star_rsem/qualimap/WT_REP2/css/websupport.js", + "star_rsem/qualimap/WT_REP2/images_qualimapReport", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Junction Analysis.png", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_rsem/qualimap/WT_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_rsem/qualimap/WT_REP2/qualimapReport.html", + "star_rsem/qualimap/WT_REP2/raw_data_qualimapReport", + "star_rsem/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_rsem/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_rsem/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_rsem/qualimap/WT_REP2/rnaseq_qc_results.txt", + "star_rsem/rsem.merged.gene_counts.tsv", + "star_rsem/rsem.merged.gene_tpm.tsv", + "star_rsem/rsem.merged.transcript_counts.tsv", + "star_rsem/rsem.merged.transcript_tpm.tsv", + "star_rsem/rseqc", + "star_rsem/rseqc/bam_stat", + "star_rsem/rseqc/bam_stat/RAP1_IAA_30M_REP1.bam_stat.txt", + "star_rsem/rseqc/bam_stat/RAP1_UNINDUCED_REP1.bam_stat.txt", + "star_rsem/rseqc/bam_stat/RAP1_UNINDUCED_REP2.bam_stat.txt", + "star_rsem/rseqc/bam_stat/WT_REP1.bam_stat.txt", + "star_rsem/rseqc/bam_stat/WT_REP2.bam_stat.txt", + "star_rsem/rseqc/infer_experiment", + "star_rsem/rseqc/infer_experiment/RAP1_IAA_30M_REP1.infer_experiment.txt", + "star_rsem/rseqc/infer_experiment/RAP1_UNINDUCED_REP1.infer_experiment.txt", + "star_rsem/rseqc/infer_experiment/RAP1_UNINDUCED_REP2.infer_experiment.txt", + "star_rsem/rseqc/infer_experiment/WT_REP1.infer_experiment.txt", + "star_rsem/rseqc/infer_experiment/WT_REP2.infer_experiment.txt", + "star_rsem/rseqc/inner_distance", + "star_rsem/rseqc/inner_distance/pdf", + "star_rsem/rseqc/inner_distance/pdf/RAP1_IAA_30M_REP1.inner_distance_plot.pdf", + "star_rsem/rseqc/inner_distance/pdf/WT_REP1.inner_distance_plot.pdf", + "star_rsem/rseqc/inner_distance/pdf/WT_REP2.inner_distance_plot.pdf", + "star_rsem/rseqc/inner_distance/rscript", + "star_rsem/rseqc/inner_distance/rscript/RAP1_IAA_30M_REP1.inner_distance_plot.r", + "star_rsem/rseqc/inner_distance/rscript/WT_REP1.inner_distance_plot.r", + "star_rsem/rseqc/inner_distance/rscript/WT_REP2.inner_distance_plot.r", + "star_rsem/rseqc/inner_distance/txt", + "star_rsem/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance.txt", + "star_rsem/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_freq.txt", + "star_rsem/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_mean.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP1.inner_distance.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP1.inner_distance_freq.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP1.inner_distance_mean.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP2.inner_distance.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP2.inner_distance_freq.txt", + "star_rsem/rseqc/inner_distance/txt/WT_REP2.inner_distance_mean.txt", + "star_rsem/rseqc/junction_annotation", + "star_rsem/rseqc/junction_annotation/bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.Interact.bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.Interact.bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.Interact.bed", + "star_rsem/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.bed", + "star_rsem/rseqc/junction_annotation/bed/WT_REP1.junction.Interact.bed", + "star_rsem/rseqc/junction_annotation/bed/WT_REP1.junction.bed", + "star_rsem/rseqc/junction_annotation/bed/WT_REP2.junction.Interact.bed", + "star_rsem/rseqc/junction_annotation/bed/WT_REP2.junction.bed", + "star_rsem/rseqc/junction_annotation/log", + "star_rsem/rseqc/junction_annotation/log/RAP1_IAA_30M_REP1.junction_annotation.log", + "star_rsem/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP1.junction_annotation.log", + "star_rsem/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP2.junction_annotation.log", + "star_rsem/rseqc/junction_annotation/log/WT_REP1.junction_annotation.log", + "star_rsem/rseqc/junction_annotation/log/WT_REP2.junction_annotation.log", + "star_rsem/rseqc/junction_annotation/pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_events.pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_junction.pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_events.pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_junction.pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_events.pdf", + "star_rsem/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_junction.pdf", + "star_rsem/rseqc/junction_annotation/pdf/WT_REP1.splice_events.pdf", + "star_rsem/rseqc/junction_annotation/pdf/WT_REP1.splice_junction.pdf", + "star_rsem/rseqc/junction_annotation/pdf/WT_REP2.splice_events.pdf", + "star_rsem/rseqc/junction_annotation/pdf/WT_REP2.splice_junction.pdf", + "star_rsem/rseqc/junction_annotation/rscript", + "star_rsem/rseqc/junction_annotation/rscript/RAP1_IAA_30M_REP1.junction_plot.r", + "star_rsem/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP1.junction_plot.r", + "star_rsem/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP2.junction_plot.r", + "star_rsem/rseqc/junction_annotation/rscript/WT_REP1.junction_plot.r", + "star_rsem/rseqc/junction_annotation/rscript/WT_REP2.junction_plot.r", + "star_rsem/rseqc/junction_annotation/xls", + "star_rsem/rseqc/junction_annotation/xls/RAP1_IAA_30M_REP1.junction.xls", + "star_rsem/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP1.junction.xls", + "star_rsem/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP2.junction.xls", + "star_rsem/rseqc/junction_annotation/xls/WT_REP1.junction.xls", + "star_rsem/rseqc/junction_annotation/xls/WT_REP2.junction.xls", + "star_rsem/rseqc/junction_saturation", + "star_rsem/rseqc/junction_saturation/pdf", + "star_rsem/rseqc/junction_saturation/pdf/RAP1_IAA_30M_REP1.junctionSaturation_plot.pdf", + "star_rsem/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP1.junctionSaturation_plot.pdf", + "star_rsem/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP2.junctionSaturation_plot.pdf", + "star_rsem/rseqc/junction_saturation/pdf/WT_REP1.junctionSaturation_plot.pdf", + "star_rsem/rseqc/junction_saturation/pdf/WT_REP2.junctionSaturation_plot.pdf", + "star_rsem/rseqc/junction_saturation/rscript", + "star_rsem/rseqc/junction_saturation/rscript/RAP1_IAA_30M_REP1.junctionSaturation_plot.r", + "star_rsem/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP1.junctionSaturation_plot.r", + "star_rsem/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP2.junctionSaturation_plot.r", + "star_rsem/rseqc/junction_saturation/rscript/WT_REP1.junctionSaturation_plot.r", + "star_rsem/rseqc/junction_saturation/rscript/WT_REP2.junctionSaturation_plot.r", + "star_rsem/rseqc/read_distribution", + "star_rsem/rseqc/read_distribution/RAP1_IAA_30M_REP1.read_distribution.txt", + "star_rsem/rseqc/read_distribution/RAP1_UNINDUCED_REP1.read_distribution.txt", + "star_rsem/rseqc/read_distribution/RAP1_UNINDUCED_REP2.read_distribution.txt", + "star_rsem/rseqc/read_distribution/WT_REP1.read_distribution.txt", + "star_rsem/rseqc/read_distribution/WT_REP2.read_distribution.txt", + "star_rsem/rseqc/read_duplication", + "star_rsem/rseqc/read_duplication/pdf", + "star_rsem/rseqc/read_duplication/pdf/RAP1_IAA_30M_REP1.DupRate_plot.pdf", + "star_rsem/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP1.DupRate_plot.pdf", + "star_rsem/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP2.DupRate_plot.pdf", + "star_rsem/rseqc/read_duplication/pdf/WT_REP1.DupRate_plot.pdf", + "star_rsem/rseqc/read_duplication/pdf/WT_REP2.DupRate_plot.pdf", + "star_rsem/rseqc/read_duplication/rscript", + "star_rsem/rseqc/read_duplication/rscript/RAP1_IAA_30M_REP1.DupRate_plot.r", + "star_rsem/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP1.DupRate_plot.r", + "star_rsem/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP2.DupRate_plot.r", + "star_rsem/rseqc/read_duplication/rscript/WT_REP1.DupRate_plot.r", + "star_rsem/rseqc/read_duplication/rscript/WT_REP2.DupRate_plot.r", + "star_rsem/rseqc/read_duplication/xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.pos.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.seq.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.pos.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.seq.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.pos.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.seq.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/WT_REP1.pos.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", + "star_rsem/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", + "star_rsem/samtools_stats", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.markdup.sorted.bam.stats", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.stats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.markdup.sorted.bam.stats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.stats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.markdup.sorted.bam.stats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.flagstat", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.idxstats", + "star_rsem/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.stats", + "star_rsem/samtools_stats/WT_REP1.markdup.sorted.bam.flagstat", + "star_rsem/samtools_stats/WT_REP1.markdup.sorted.bam.idxstats", + "star_rsem/samtools_stats/WT_REP1.markdup.sorted.bam.stats", + "star_rsem/samtools_stats/WT_REP1.sorted.bam.flagstat", + "star_rsem/samtools_stats/WT_REP1.sorted.bam.idxstats", + "star_rsem/samtools_stats/WT_REP1.sorted.bam.stats", + "star_rsem/samtools_stats/WT_REP2.markdup.sorted.bam.flagstat", + "star_rsem/samtools_stats/WT_REP2.markdup.sorted.bam.idxstats", + "star_rsem/samtools_stats/WT_REP2.markdup.sorted.bam.stats", + "star_rsem/samtools_stats/WT_REP2.sorted.bam.flagstat", + "star_rsem/samtools_stats/WT_REP2.sorted.bam.idxstats", + "star_rsem/samtools_stats/WT_REP2.sorted.bam.stats", + "star_rsem/stringtie", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown/e2t.ctab", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown/e_data.ctab", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown/i2t.ctab", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown/i_data.ctab", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.ballgown/t_data.ctab", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.coverage.gtf", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.gene.abundance.txt", + "star_rsem/stringtie/RAP1_IAA_30M_REP1.transcripts.gtf", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown/e2t.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown/e_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown/i2t.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown/i_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.ballgown/t_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.coverage.gtf", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.gene.abundance.txt", + "star_rsem/stringtie/RAP1_UNINDUCED_REP1.transcripts.gtf", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown/e2t.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown/e_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown/i2t.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown/i_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.ballgown/t_data.ctab", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.coverage.gtf", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.gene.abundance.txt", + "star_rsem/stringtie/RAP1_UNINDUCED_REP2.transcripts.gtf", + "star_rsem/stringtie/WT_REP1.ballgown", + "star_rsem/stringtie/WT_REP1.ballgown/e2t.ctab", + "star_rsem/stringtie/WT_REP1.ballgown/e_data.ctab", + "star_rsem/stringtie/WT_REP1.ballgown/i2t.ctab", + "star_rsem/stringtie/WT_REP1.ballgown/i_data.ctab", + "star_rsem/stringtie/WT_REP1.ballgown/t_data.ctab", + "star_rsem/stringtie/WT_REP1.coverage.gtf", + "star_rsem/stringtie/WT_REP1.gene.abundance.txt", + "star_rsem/stringtie/WT_REP1.transcripts.gtf", + "star_rsem/stringtie/WT_REP2.ballgown", + "star_rsem/stringtie/WT_REP2.ballgown/e2t.ctab", + "star_rsem/stringtie/WT_REP2.ballgown/e_data.ctab", + "star_rsem/stringtie/WT_REP2.ballgown/i2t.ctab", + "star_rsem/stringtie/WT_REP2.ballgown/i_data.ctab", + "star_rsem/stringtie/WT_REP2.ballgown/t_data.ctab", + "star_rsem/stringtie/WT_REP2.coverage.gtf", + "star_rsem/stringtie/WT_REP2.gene.abundance.txt", + "star_rsem/stringtie/WT_REP2.transcripts.gtf", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt" + ], + [ + "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055", + "genome_gfp.gtf:md5,c98b12c302f15731bfc36bcf297cfe28", + "cutadapt_filtered_reads_plot.txt:md5,6fa381627f7c1f664f3d4b2cb79cce90", + "cutadapt_trimmed_sequences_plot_3_Counts.txt:md5,13dfa866fd91dbb072689efe9aa83b1f", + "cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt:md5,07145dd8dd3db654859b18eb0389046c", + "fastqc_raw-status-check-heatmap.txt:md5,5a89b0d8d162f6b1dbdaf39457bbc03b", + "fastqc_raw_adapter_content_plot.txt:md5,da0389be84cfdd189b1d045212eb2974", + "fastqc_raw_overrepresented_sequences_plot.txt:md5,25d88ea8a72f55e8a374ae802bc7f0b1", + "fastqc_raw_per_base_n_content_plot.txt:md5,d368d7e36ca2f73dcde61f2b486d8213", + "fastqc_raw_per_base_sequence_quality_plot.txt:md5,5c3065b549129702b185ea1b817da420", + "fastqc_raw_per_sequence_gc_content_plot_Counts.txt:md5,9ddaa50167117d3c9188ccf015427704", + "fastqc_raw_per_sequence_gc_content_plot_Percentages.txt:md5,f10ee2881b61308af35f304aa3d810a3", + "fastqc_raw_per_sequence_quality_scores_plot.txt:md5,b5f9a02933e3065952237afd2ec9ce82", + "fastqc_raw_sequence_counts_plot.txt:md5,cbae4979d5db66d3b894abcf8d1c453c", + "fastqc_raw_sequence_duplication_levels_plot.txt:md5,8812cee16f6ca65e2c33635754de1772", + "fastqc_sequence_length_distribution_plot.txt:md5,6fe2c985606abad947bcca99b015ae33", + "fastqc_trimmed-status-check-heatmap.txt:md5,22a03548736b88b23be6bc0c9ef1b4a6", + "fastqc_trimmed_overrepresented_sequences_plot.txt:md5,c755e9d044ea1a82b2c8edde867b4878", + "fastqc_trimmed_per_base_n_content_plot.txt:md5,418610c1ce119cb786ad434db75d366e", + "fastqc_trimmed_per_base_sequence_quality_plot.txt:md5,bd22e06e41c096ad4f745d40fe96a1e5", + "fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt:md5,004c60768ceb6197765154e3eaa37b7a", + "fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt:md5,95d29060b687f745288ad1ec47750037", + "fastqc_trimmed_per_sequence_quality_scores_plot.txt:md5,0f9834cc19f76dd5c87cf8cba7435a7c", + "fastqc_trimmed_sequence_counts_plot.txt:md5,9fd642bdd1da354f296bb8092205608f", + "fastqc_trimmed_sequence_duplication_levels_plot.txt:md5,0758257b497283b1ef28171e694db6db", + "multiqc_citations.txt:md5,5a68f7972ea275b21b12acdf43447dfb", + "multiqc_cutadapt.txt:md5,583b7b9ba76b26162bb9610ed746454b", + "multiqc_fastqc_fastqc_raw.txt:md5,81c3c1a2575a1891a7f2a9637a0f2cc0", + "multiqc_fastqc_fastqc_trimmed.txt:md5,54743154d0e8858980acffeb5b6f6a97", + "multiqc_featurecounts_biotype_plot.txt:md5,16081809f893eca4d9914fd370e7fbd7", + "multiqc_samtools_idxstats.txt:md5,1cbc64fc9713831a6f45effc0cfe6a39", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_QualityScoreDistribution_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "qualimap_gene_coverage_profile_Counts.txt:md5,387c07f2a93e3d13048c4cd788d1fcc3", + "qualimap_gene_coverage_profile_Normalised.txt:md5,35f0b71796622269bc51cf1e7a0650ab", + "qualimap_rnaseq_cov_hist.txt:md5,a620cb9d1878e86e10e87500e98122f1", + "rseqc_infer_experiment_plot.txt:md5,c0ddf72b026cdc54ad03e75eaa636f7e", + "samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt:md5,75acd04232d1804b5f960ee4c5db4722", + "samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt:md5,3e67e07b5c978fa363965e8e90356eef", + "samtools-idxstats-mapped-reads-plot_Raw_Counts.txt:md5,a83e44c5a22e014d377c41419175784c", + "ambig_info.tsv:md5,de973a4b22a4457217ae3dc04caf9401", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,138b27764a97d468418b3dac5e7f1cef", + "lib_format_counts.json:md5,c24ffe28d70476b5ccdd8bc2d22c0ac1", + "ambig_info.tsv:md5,45f252b4f0e11e6730cf0c29f800fdbb", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,87bcf1e84fc31a794e3c8f8b227d11c3", + "lib_format_counts.json:md5,f6d44c0221f7fd559f11a9afe04c9935", + "ambig_info.tsv:md5,6dcc2891ea572e9b8d1ba52cd434ab84", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,ec504469f9b0e33c94f85846f1486d7f", + "lib_format_counts.json:md5,7c562bf2f70e42f3a7292687dfd328c3", + "ambig_info.tsv:md5,194f574e0586416155e3f33d42e2b167", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,591436d401b6df6f3c6a8b16913158f4", + "lib_format_counts.json:md5,d46250bb3677d72feeefc435fe6395a6", + "ambig_info.tsv:md5,a26e3f936e65d7da66392603c2f91f6f", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,fe66c9d876645b9260d8c2488157d4d4", + "lib_format_counts.json:md5,088fd51db07022ffde47033bbd029400", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe", + "RAP1_IAA_30M_REP1_dupMatrix.txt:md5,8da31020df3c5b25167345609c6d08c5", + "RAP1_UNINDUCED_REP1_dupMatrix.txt:md5,3f269a6b2e9c8eaab66582e31d208dfc", + "RAP1_UNINDUCED_REP2_dupMatrix.txt:md5,7d96d6ddf1d12d43837b105865aeaafa", + "WT_REP1_dupMatrix.txt:md5,d90a112d68091e75ff3f6ddcdb0c1344", + "WT_REP2_dupMatrix.txt:md5,e97a3c8d2e606d7d4b40cd33eb0b96c4", + "RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv:md5,5a7a4291e8ff6cc25a4eb72dfdf06b51", + "RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv:md5,dde2de0cb90e10d0195c726f768e9941", + "RAP1_IAA_30M_REP1.featureCounts.tsv:md5,9cf6f9377ea65e3bdb16b55992028d66", + "RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv:md5,548023e639f8eb76f973a2f98bcbc82c", + "RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv:md5,845ff9059c72bc6722a8de69776e22bb", + "RAP1_UNINDUCED_REP1.featureCounts.tsv:md5,8293231dc69bf3f1b9cebe66a9b1d949", + "RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv:md5,2c0b5696582493f7a50259679982a6b3", + "RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv:md5,6d3fa4c88c7fe61f638e4624ad5e22f0", + "RAP1_UNINDUCED_REP2.featureCounts.tsv:md5,401bf7fc160ac0dcd68492356950408a", + "WT_REP1.biotype_counts_mqc.tsv:md5,d083ca421266ae2d4b3cd745b41ae110", + "WT_REP1.biotype_counts_rrna_mqc.tsv:md5,8ef76d717492ca23764938aee8ea33a9", + "WT_REP1.featureCounts.tsv:md5,f854df3eea742228a85eadce4f16fd4d", + "WT_REP2.biotype_counts_mqc.tsv:md5,c04c2936bbfac3bff284f96b7233b158", + "WT_REP2.biotype_counts_rrna_mqc.tsv:md5,12294618fe44df1e7f39348372dcb481", + "WT_REP2.featureCounts.tsv:md5,da2c6d621864e2f26958e2c299708c3e", + "coverage_profile_along_genes_(high).txt:md5,31ab137e75752225365bd3d89143dbd2", + "coverage_profile_along_genes_(low).txt:md5,eaceda909bf652b8301fa0ed1bba9ae1", + "coverage_profile_along_genes_(total).txt:md5,eaceda909bf652b8301fa0ed1bba9ae1", + "coverage_profile_along_genes_(high).txt:md5,93822686a53dd40d3ff426ddbfc9314e", + "coverage_profile_along_genes_(low).txt:md5,bd8d58c757e4122caee4b4e8df2f4b00", + "coverage_profile_along_genes_(total).txt:md5,bd8d58c757e4122caee4b4e8df2f4b00", + "coverage_profile_along_genes_(high).txt:md5,cdb2c00c43121e3beccd7f670b34e05e", + "coverage_profile_along_genes_(low).txt:md5,1a9405c8bd7c00f3be082bfebb90b6ed", + "coverage_profile_along_genes_(total).txt:md5,1a9405c8bd7c00f3be082bfebb90b6ed", + "coverage_profile_along_genes_(high).txt:md5,70c95fbc100f14911d2cc348bdff1587", + "coverage_profile_along_genes_(low).txt:md5,86e56ef794277bcf1e0d121a088b8581", + "coverage_profile_along_genes_(total).txt:md5,86e56ef794277bcf1e0d121a088b8581", + "coverage_profile_along_genes_(high).txt:md5,a73462b9ecbd1d2c45d7ca84b5f7925b", + "coverage_profile_along_genes_(low).txt:md5,7adc228bc15e344abb7938ea4d35a846", + "coverage_profile_along_genes_(total).txt:md5,7adc228bc15e344abb7938ea4d35a846", + "rsem.merged.gene_counts.tsv:md5,47f272199f24af4473c959df2a9149dc", + "rsem.merged.gene_tpm.tsv:md5,a197b2d131dea75a83f9c219c23fb7a0", + "rsem.merged.transcript_counts.tsv:md5,ffc75fd409d75edf5209e8e1af8ec8fc", + "rsem.merged.transcript_tpm.tsv:md5,b836618c69d111edf635ce7244ee85e5", + "RAP1_IAA_30M_REP1.infer_experiment.txt:md5,1f31ddae1f98e779e30d846cde3834de", + "RAP1_UNINDUCED_REP1.infer_experiment.txt:md5,a2a8e31dbd0ebd0c12f3f968ffd5391b", + "RAP1_UNINDUCED_REP2.infer_experiment.txt:md5,9ec058d3a4162fd1b4c6175e2106eef4", + "WT_REP1.infer_experiment.txt:md5,d55921c0084806cdf49b9bd8653c8e09", + "WT_REP2.infer_experiment.txt:md5,fe87600c55f433ba995fe18bed5cf5f1", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,5dfd0678eefe33f2c45eea45f6262557", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,19a438db88bdb92228e64a0a8350adbd", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,a02dec82f07185700cc237e617ecc809", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,addcf0f6836e0f81184d5ddaa525895f", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,5354c397909a72a25607c550170e2874", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,389b41d0123509f18af9da9bb2e626cd", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,282685569dc501a8769c98c0c2885378", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,daedcbf428f3912587722da1c5db50d1", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,49e5912dedb709344c7a14b5980c1b40", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,7e81ace0a68bfe42482420b7275de195" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.6" + }, + "timestamp": "2025-08-12T12:46:35.67191347" + }, + "Params: --aligner star_rsem --use_sentieon_star - stub": { + "content": [ + 27, + { + "BBMAP_BBSPLIT": { + "bbmap": 39.18 + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": null + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.13 + }, + "GUNZIP_GTF": { + "gunzip": 1.13 + }, + "TRIMGALORE": { + "cutadapt": 4.9, + "pigz": 2.8, + "trimgalore": "0.6.10" + }, + "UNTAR_RSEM_INDEX": { + "untar": 1.34 + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + } + }, + [ + "custom", + "custom/out", + "custom/out/genome_transcriptome.fasta", + "custom/out/genome_transcriptome.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.zip", + "fastqc/raw/WT_REP1_raw.html", + "fastqc/raw/WT_REP1_raw.zip", + "fastqc/raw/WT_REP2_raw.html", + "fastqc/raw/WT_REP2_raw.zip", + "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_rsem", + "multiqc/star_rsem/multiqc_data", + "multiqc/star_rsem/multiqc_plots", + "multiqc/star_rsem/multiqc_report.html", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt" + ], + [ + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.04.2" + }, + "timestamp": "2025-06-03T20:30:37.383920745" + } +} diff --git a/tests/skip_qc.nf.test b/tests/skip_qc.nf.test index cbbf53681..0c6967705 100644 --- a/tests/skip_qc.nf.test +++ b/tests/skip_qc.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/skip_qc.nf.test.snap b/tests/skip_qc.nf.test.snap index 0686bdc8b..36841e45f 100644 --- a/tests/skip_qc.nf.test.snap +++ b/tests/skip_qc.nf.test.snap @@ -31,20 +31,17 @@ "gunzip": 1.13 }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -157,22 +154,22 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -185,9 +182,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -257,6 +251,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -471,13 +466,13 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -606,12 +601,13 @@ "star_salmon/picard_metrics/RAP1_UNINDUCED_REP2.markdup.sorted.MarkDuplicates.metrics.txt", "star_salmon/picard_metrics/WT_REP1.markdup.sorted.MarkDuplicates.metrics.txt", "star_salmon/picard_metrics/WT_REP2.markdup.sorted.MarkDuplicates.metrics.txt", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -815,8 +811,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-03T18:32:24.98419919" + "timestamp": "2025-08-12T12:29:14.739888067" } -} +} \ No newline at end of file diff --git a/tests/skip_trimming.nf.test b/tests/skip_trimming.nf.test index 5e5ea702e..43d07ed7b 100644 --- a/tests/skip_trimming.nf.test +++ b/tests/skip_trimming.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/skip_trimming.nf.test.snap b/tests/skip_trimming.nf.test.snap index b1f4eb4b3..cd5327e3b 100644 --- a/tests/skip_trimming.nf.test.snap +++ b/tests/skip_trimming.nf.test.snap @@ -22,12 +22,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -108,14 +108,14 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" @@ -134,9 +134,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -199,6 +196,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_raw_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_data.json", @@ -213,16 +211,16 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_salmon/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -294,8 +292,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -309,6 +308,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/png", "multiqc/star_salmon/multiqc_report_plots/png/dupradar.png", @@ -347,8 +348,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -362,6 +364,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/svg", "multiqc/star_salmon/multiqc_report_plots/svg/dupradar.svg", @@ -400,8 +404,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -415,6 +420,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", @@ -499,8 +506,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -514,11 +519,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1019,12 +1026,13 @@ "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1260,8 +1268,8 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T13:13:59.406911822" + "timestamp": "2025-08-12T12:37:41.613639269" } -} +} \ No newline at end of file diff --git a/tests/star_rsem.nf.test b/tests/star_rsem.nf.test index 33d05f50a..dcebcb69a 100644 --- a/tests/star_rsem.nf.test +++ b/tests/star_rsem.nf.test @@ -23,8 +23,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -55,8 +55,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/star_rsem.nf.test.snap b/tests/star_rsem.nf.test.snap index 6ff1e2fca..46d130dc4 100644 --- a/tests/star_rsem.nf.test.snap +++ b/tests/star_rsem.nf.test.snap @@ -22,12 +22,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_RSEM": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -121,9 +121,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -139,9 +139,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -241,6 +238,7 @@ "multiqc/star_rsem/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_rsem/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_rsem/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_rsem/multiqc_report_data/llms-full.txt", "multiqc/star_rsem/multiqc_report_data/multiqc.log", "multiqc/star_rsem/multiqc_report_data/multiqc_citations.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_cutadapt.txt", @@ -258,15 +256,15 @@ "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_rsem/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_rsem/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_rsem/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_rsem/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_rsem/multiqc_report_data/multiqc_sources.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_star_rsem_deseq2_clustering.txt", + "multiqc/star_rsem/multiqc_report_data/multiqc_star_rsem_deseq2_pca.txt", "multiqc/star_rsem/multiqc_report_data/picard_MarkIlluminaAdapters_histogram.txt", "multiqc/star_rsem/multiqc_report_data/picard_MeanQualityByCycle_histogram.txt", "multiqc/star_rsem/multiqc_report_data/picard_QualityScoreDistribution_histogram.txt", @@ -357,8 +355,9 @@ "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_rsem/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -370,6 +369,8 @@ "multiqc/star_rsem/multiqc_report_plots/pdf/samtools-stats-dp.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/samtools_alignment_plot-cnt.pdf", "multiqc/star_rsem/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/star_rsem_deseq2_clustering.pdf", + "multiqc/star_rsem/multiqc_report_plots/pdf/star_rsem_deseq2_pca.pdf", "multiqc/star_rsem/multiqc_report_plots/png", "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", "multiqc/star_rsem/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", @@ -426,8 +427,9 @@ "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_rsem/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_rsem/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_rsem/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_rsem/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_rsem/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_rsem/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_rsem/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_rsem/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -439,6 +441,8 @@ "multiqc/star_rsem/multiqc_report_plots/png/samtools-stats-dp.png", "multiqc/star_rsem/multiqc_report_plots/png/samtools_alignment_plot-cnt.png", "multiqc/star_rsem/multiqc_report_plots/png/samtools_alignment_plot-pct.png", + "multiqc/star_rsem/multiqc_report_plots/png/star_rsem_deseq2_clustering.png", + "multiqc/star_rsem/multiqc_report_plots/png/star_rsem_deseq2_pca.png", "multiqc/star_rsem/multiqc_report_plots/svg", "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", "multiqc/star_rsem/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", @@ -495,8 +499,9 @@ "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_rsem/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_rsem/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_rsem/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_rsem/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_rsem/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_rsem/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -508,6 +513,8 @@ "multiqc/star_rsem/multiqc_report_plots/svg/samtools-stats-dp.svg", "multiqc/star_rsem/multiqc_report_plots/svg/samtools_alignment_plot-cnt.svg", "multiqc/star_rsem/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/star_rsem_deseq2_clustering.svg", + "multiqc/star_rsem/multiqc_report_plots/svg/star_rsem_deseq2_pca.svg", "pipeline_info", "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "salmon", @@ -591,8 +598,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -606,11 +611,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1283,9 +1290,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T13:28:34.638381392" + "timestamp": "2025-08-12T12:46:35.67191347" }, "Params: --aligner star_rsem - stub": { "content": [ @@ -1322,18 +1329,15 @@ "gunzip": 1.13 }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UNTAR_RSEM_INDEX": { "untar": 1.34 }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ diff --git a/tests/umi.nf.test b/tests/umi.nf.test index 6a417cb14..9bc9506e4 100644 --- a/tests/umi.nf.test +++ b/tests/umi.nf.test @@ -30,8 +30,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -65,8 +65,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents @@ -100,8 +100,8 @@ nextflow_pipeline { { assert snapshot( // Number of successful tasks workflow.trace.succeeded().size(), - // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions - removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // pipeline versions.yml file for multiqc from which Nextflow and pipeline versions are removed (all from the workflow key) + removeFromYamlMap("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", "Workflow"), // All stable path name, with a relative path stable_name, // All files with stable contents diff --git a/tests/umi.nf.test.snap b/tests/umi.nf.test.snap index f57dddadd..8c5bbfedf 100644 --- a/tests/umi.nf.test.snap +++ b/tests/umi.nf.test.snap @@ -19,12 +19,12 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DESEQ2_QC_STAR_SALMON": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -102,14 +102,14 @@ "bioconductor-summarizedexperiment": "1.32.0" }, "STAR_ALIGN": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "STRINGTIE_STRINGTIE": { "stringtie": "2.2.3" @@ -118,9 +118,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -142,9 +142,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -232,6 +229,7 @@ "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/llms-full.txt", "multiqc/star_salmon/multiqc_report_data/multiqc.log", "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", @@ -247,16 +245,16 @@ "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", - "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_clustering.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star_salmon_deseq2_pca.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_umitools_dedup.txt", "multiqc/star_salmon/multiqc_report_data/multiqc_umitools_extract.txt", "multiqc/star_salmon/multiqc_report_data/qualimap_gene_coverage_profile_Counts.txt", @@ -342,8 +340,9 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -357,6 +356,8 @@ "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_clustering.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_salmon_deseq2_pca.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/umitools_deduplication_barplot-cnt.pdf", "multiqc/star_salmon/multiqc_report_plots/pdf/umitools_deduplication_barplot-pct.pdf", @@ -412,8 +413,9 @@ "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", - "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -427,6 +429,8 @@ "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_clustering.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_salmon_deseq2_pca.png", "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", "multiqc/star_salmon/multiqc_report_plots/png/umitools_deduplication_barplot-cnt.png", "multiqc/star_salmon/multiqc_report_plots/png/umitools_deduplication_barplot-pct.png", @@ -482,8 +486,9 @@ "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -497,6 +502,8 @@ "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_clustering.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_salmon_deseq2_pca.svg", "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", "multiqc/star_salmon/multiqc_report_plots/svg/umitools_deduplication_barplot-cnt.svg", "multiqc/star_salmon/multiqc_report_plots/svg/umitools_deduplication_barplot-pct.svg", @@ -584,8 +591,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -599,11 +604,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -1116,12 +1123,13 @@ "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", - "star_salmon/salmon.merged.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene.SummarizedExperiment.rds", "star_salmon/salmon.merged.gene_counts.tsv", "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", "star_salmon/salmon.merged.gene_counts_scaled.tsv", "star_salmon/salmon.merged.gene_lengths.tsv", "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript.SummarizedExperiment.rds", "star_salmon/salmon.merged.transcript_counts.tsv", "star_salmon/salmon.merged.transcript_lengths.tsv", "star_salmon/salmon.merged.transcript_tpm.tsv", @@ -1493,9 +1501,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T16:42:54.063240312" + "timestamp": "2025-08-12T12:58:21.550591817" }, "Params: --aligner hisat2 --umi_dedup_tool 'umicollapse'": { "content": [ @@ -1517,8 +1525,8 @@ "python": "3.10.4" }, "DESEQ2_QC_PSEUDO": { - "r-base": "4.0.3", - "bioconductor-deseq2": "1.28.0" + "bioconductor-deseq2": "1.28.0", + "r-base": "4.0.3" }, "DUPRADAR": { "bioconductor-dupradar": "1.32.0" @@ -1609,9 +1617,9 @@ "subread": "2.0.6" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "TXIMETA_TXIMPORT": { "bioconductor-tximeta": "1.20.1" @@ -1633,9 +1641,6 @@ }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -2196,6 +2201,7 @@ "multiqc/hisat2/multiqc_report_data/hisat2_se_plot.txt", "multiqc/hisat2/multiqc_report_data/junction_saturation_known.txt", "multiqc/hisat2/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/hisat2/multiqc_report_data/llms-full.txt", "multiqc/hisat2/multiqc_report_data/multiqc.log", "multiqc/hisat2/multiqc_report_data/multiqc_citations.txt", "multiqc/hisat2/multiqc_report_data/multiqc_cutadapt.txt", @@ -2212,8 +2218,8 @@ "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_read_distribution.txt", "multiqc/hisat2/multiqc_report_data/multiqc_salmon.txt", - "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships.txt", - "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships_1.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_salmon_deseq2_clustering.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_salmon_deseq2_pca.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_flagstat.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_idxstats.txt", "multiqc/hisat2/multiqc_report_data/multiqc_samtools_stats.txt", @@ -2302,8 +2308,9 @@ "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/salmon_deseq2_clustering.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/salmon_deseq2_pca.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/salmon_plot.pdf", - "multiqc/hisat2/multiqc_report_plots/pdf/sample-relationships.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-pct-table.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-table.pdf", "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", @@ -2370,8 +2377,9 @@ "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/salmon_deseq2_clustering.png", + "multiqc/hisat2/multiqc_report_plots/png/salmon_deseq2_pca.png", "multiqc/hisat2/multiqc_report_plots/png/salmon_plot.png", - "multiqc/hisat2/multiqc_report_plots/png/sample-relationships.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-pct-table.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-table.png", "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", @@ -2438,8 +2446,9 @@ "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/salmon_deseq2_clustering.svg", + "multiqc/hisat2/multiqc_report_plots/svg/salmon_deseq2_pca.svg", "multiqc/hisat2/multiqc_report_plots/svg/salmon_plot.svg", - "multiqc/hisat2/multiqc_report_plots/svg/sample-relationships.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-pct-table.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-table.svg", "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", @@ -2534,8 +2543,6 @@ "salmon/WT_REP2/logs/salmon_quant.log", "salmon/WT_REP2/quant.genes.sf", "salmon/WT_REP2/quant.sf", - "salmon/all_samples_gene.SummarizedExperiment.rds", - "salmon/all_samples_transcript.SummarizedExperiment.rds", "salmon/deseq2_qc", "salmon/deseq2_qc/R_sessionInfo.log", "salmon/deseq2_qc/deseq2.dds.RData", @@ -2549,11 +2556,13 @@ "salmon/deseq2_qc/size_factors/WT_REP1.txt", "salmon/deseq2_qc/size_factors/WT_REP2.txt", "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene.SummarizedExperiment.rds", "salmon/salmon.merged.gene_counts.tsv", "salmon/salmon.merged.gene_counts_length_scaled.tsv", "salmon/salmon.merged.gene_counts_scaled.tsv", "salmon/salmon.merged.gene_lengths.tsv", "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript.SummarizedExperiment.rds", "salmon/salmon.merged.transcript_counts.tsv", "salmon/salmon.merged.transcript_lengths.tsv", "salmon/salmon.merged.transcript_tpm.tsv", @@ -2724,9 +2733,9 @@ ], "meta": { "nf-test": "0.9.2", - "nextflow": "25.04.2" + "nextflow": "25.04.6" }, - "timestamp": "2025-06-04T16:31:08.76843776" + "timestamp": "2025-08-12T12:52:07.98248406" }, "--umi_dedup_tool 'umitools - stub": { "content": [ @@ -2763,23 +2772,20 @@ "gunzip": 1.13 }, "STAR_GENOMEGENERATE": { - "star": "2.7.11b", + "gawk": "5.1.0", "samtools": 1.21, - "gawk": "5.1.0" + "star": "2.7.11b" }, "TRIMGALORE": { - "trimgalore": "0.6.10", "cutadapt": 4.9, - "pigz": 2.8 + "pigz": 2.8, + "trimgalore": "0.6.10" }, "UMITOOLS_EXTRACT": { "umitools": "1.1.5" }, "UNTAR_SALMON_INDEX": { "untar": 1.34 - }, - "Workflow": { - "nf-core/rnaseq": "v3.19.0" } }, [ @@ -2841,4 +2847,4 @@ }, "timestamp": "2025-01-28T15:38:40.145569546" } -} +} \ No newline at end of file diff --git a/workflows/rnaseq/assets/multiqc/multiqc_config.yml b/workflows/rnaseq/assets/multiqc/multiqc_config.yml index a60c89347..d5ab4e727 100644 --- a/workflows/rnaseq/assets/multiqc/multiqc_config.yml +++ b/workflows/rnaseq/assets/multiqc/multiqc_config.yml @@ -1,7 +1,7 @@ report_comment: > - This report has been generated by the nf-core/rnaseq analysis pipeline. For information about how - to interpret these results, please see the documentation. report_section_order: # Important checks and failures @@ -210,6 +210,9 @@ sp: picard/wgs_metrics: skip: true +fn_ignore_files: + - "*umi_dedup.transcriptome.sorted.log" + # See https://github.com/ewels/MultiQC_TestData/blob/master/data/custom_content/with_config/table_headerconfig/multiqc_config.yaml custom_data: fail_trimmed_samples: diff --git a/workflows/rnaseq/main.nf b/workflows/rnaseq/main.nf index 9aa333841..85c5bf3cf 100755 --- a/workflows/rnaseq/main.nf +++ b/workflows/rnaseq/main.nf @@ -195,7 +195,8 @@ workflow RNASEQ { '', params.seq_center ?: '', is_aws_igenome, - ch_fasta.map { [ [:], it ] } + ch_fasta.map { [ [:], it ] }, + params.use_sentieon_star ) ch_genome_bam = ALIGN_STAR.out.bam ch_genome_bam_index = ALIGN_STAR.out.bai @@ -280,7 +281,8 @@ workflow RNASEQ { QUANTIFY_RSEM ( ch_strand_inferred_filtered_fastq, ch_rsem_index, - ch_fasta.map { [ [:], it ] } + ch_fasta.map { [ [:], it ] }, + params.use_sentieon_star ) ch_genome_bam = QUANTIFY_RSEM.out.bam ch_genome_bam_index = QUANTIFY_RSEM.out.bai diff --git a/workflows/rnaseq/nextflow.config b/workflows/rnaseq/nextflow.config index a621b3bbe..d46359838 100644 --- a/workflows/rnaseq/nextflow.config +++ b/workflows/rnaseq/nextflow.config @@ -61,17 +61,11 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } ] } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } + withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_UNIFIED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene" } } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_GENE_LENGTH_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } - } - withName: '.*:QUANTIFY_STAR_SALMON:SE_TRANSCRIPT' { - ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } + withName: '.*:QUANTIFY_STAR_SALMON:SE_TRANSCRIPT_UNIFIED' { + ext.prefix = { "${params.pseudo_aligner}.merged.transcript" } } } @@ -468,17 +462,11 @@ if (!params.skip_pseudo_alignment && params.pseudo_aligner) { saveAs: { filename -> filename.equals('versions.yml') || filename.endsWith('.log') ? null : filename } ] } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts" } - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_scaled" } - } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_LENGTH_SCALED' { - ext.prefix = { "${params.pseudo_aligner}.merged.gene_counts_length_scaled" } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_GENE_UNIFIED' { + ext.prefix = { "${params.pseudo_aligner}.merged.gene" } } - withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_TRANSCRIPT' { - ext.prefix = { "${params.pseudo_aligner}.merged.transcript_counts" } + withName: '.*:QUANTIFY_PSEUDO_ALIGNMENT:SE_TRANSCRIPT_UNIFIED' { + ext.prefix = { "${params.pseudo_aligner}.merged.transcript" } } }