diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b290e090..97c8c97f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,20 +1,20 @@ { "name": "nfcore", - "image": "nfcore/gitpod:latest", - "remoteUser": "gitpod", - "runArgs": ["--privileged"], + "image": "nfcore/devcontainer:latest", - // Configure tool-specific properties. - "customizations": { - // Configure properties specific to VS Code. - "vscode": { - // Set *default* container specific settings.json values on container create. - "settings": { - "python.defaultInterpreterPath": "/opt/conda/bin/python" - }, + "remoteUser": "root", + "privileged": true, - // Add the IDs of extensions you want installed when the container is created. - "extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"] - } + "remoteEnv": { + // Workspace path on the host for mounting with docker-outside-of-docker + "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" + }, + + "onCreateCommand": "./.devcontainer/setup.sh", + + "hostRequirements": { + "cpus": 4, + "memory": "16gb", + "storage": "32gb" } } diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 00000000..a01e7369 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# Customise the terminal command prompt +echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc +echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc +export PROMPT_DIRTRIM=2 +export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] ' + +# Update Nextflow +nextflow self-update + +# Update welcome message +echo "Welcome to the nf-core/seqinspector devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 6d9b74cc..00000000 --- a/.editorconfig +++ /dev/null @@ -1,37 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -indent_size = 4 -indent_style = space - -[*.{md,yml,yaml,html,css,scss,js}] -indent_size = 2 - -# These files are edited and tested upstream in nf-core/modules -[/modules/nf-core/**] -charset = unset -end_of_line = unset -insert_final_newline = unset -trim_trailing_whitespace = unset -indent_style = unset -[/subworkflows/nf-core/**] -charset = unset -end_of_line = unset -insert_final_newline = unset -trim_trailing_whitespace = unset -indent_style = unset - -[/assets/email*] -indent_size = unset - -# ignore python and markdown -[*.{py,md}] -indent_style = unset - -# ignore ro-crate metadata files -[**/ro-crate-metadata.json] -insert_final_newline = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 90b28b84..683399e5 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -78,7 +78,7 @@ If you wish to contribute a new step, please use the following coding standards: 5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core pipelines schema build` tool). 6. Add sanity checks and validation for all relevant parameters. 7. Perform local tests to validate that the new code works as expected. -8. If applicable, add a new test command in `.github/workflow/ci.yml`. +8. If applicable, add a new test in the `tests` directory. 9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. 10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index 7e53c879..3b9724c7 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -25,14 +25,15 @@ runs: version: "${{ env.NXF_VERSION }}" - name: Set up Python - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6 with: - python-version: "3.11" + python-version: "3.14" - name: Install nf-test uses: nf-core/setup-nf-test@v1 with: version: "${{ env.NFT_VER }}" + install-pdiff: true - name: Setup apptainer if: contains(inputs.profile, 'singularity') @@ -51,20 +52,13 @@ runs: with: auto-update-conda: true conda-solver: libmamba + channels: conda-forge + channel-priority: strict conda-remove-defaults: true - - name: Install pdiff - shell: bash - run: | - python -m pip install pdiff - - # TODO Skip failing conda tests and document their failures - # https://github.com/nf-core/modules/issues/7017 - name: Run nf-test shell: bash env: - NFT_DIFF: ${{ env.NFT_DIFF }} - NFT_DIFF_ARGS: ${{ env.NFT_DIFF_ARGS }} NFT_WORKDIR: ${{ env.NFT_WORKDIR }} run: | nf-test test \ diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 4e9a944b..9cec6234 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -4,63 +4,42 @@ name: nf-core AWS full size tests # It runs the -profile 'test_full' on AWS batch on: - pull_request: - branches: - - main - - master workflow_dispatch: pull_request_review: types: [submitted] + release: + types: [published] jobs: run-platform: name: Run AWS full tests - # run only if the PR is approved by at least 2 reviewers and against the master branch or manually triggered - if: github.repository == 'nf-core/seqinspector' && github.event.review.state == 'approved' && github.event.pull_request.base.ref == 'master' || github.event_name == 'workflow_dispatch' + # run only if the PR is approved by at least 2 reviewers and against the master/main branch or manually triggered + if: github.repository == 'nf-core/seqinspector' && github.event.review.state == 'approved' && (github.event.pull_request.base.ref == 'master' || github.event.pull_request.base.ref == 'main') || github.event_name == 'workflow_dispatch' || github.event_name == 'release' runs-on: ubuntu-latest steps: - - name: Get PR reviews - uses: octokit/request-action@v2.x - if: github.event_name != 'workflow_dispatch' - id: check_approvals - continue-on-error: true - with: - route: GET /repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews?per_page=100 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Check for approvals - if: ${{ failure() && github.event_name != 'workflow_dispatch' }} - run: | - echo "No review approvals found. At least 2 approvals are required to run this action automatically." - exit 1 - - - name: Check for enough approvals (>=2) - id: test_variables - if: github.event_name != 'workflow_dispatch' + - name: Set revision variable + id: revision run: | - JSON_RESPONSE='${{ steps.check_approvals.outputs.data }}' - CURRENT_APPROVALS_COUNT=$(echo $JSON_RESPONSE | jq -c '[.[] | select(.state | contains("APPROVED")) ] | length') - test $CURRENT_APPROVALS_COUNT -ge 2 || exit 1 # At least 2 approvals are required + echo "revision=${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'release') && github.sha || 'dev' }}" >> "$GITHUB_OUTPUT" - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 with: - workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} + workspace_id: ${{ vars.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} - compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} - revision: ${{ github.sha }} - workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/seqinspector/work-${{ github.sha }} + compute_env: ${{ vars.TOWER_COMPUTE_ENV }} + revision: ${{ steps.revision.outputs.revision }} + workdir: s3://${{ vars.AWS_S3_BUCKET }}/work/seqinspector/work-${{ steps.revision.outputs.revision }} parameters: | { "hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}", - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/seqinspector/results-${{ github.sha }}" + "outdir": "s3://${{ vars.AWS_S3_BUCKET }}/seqinspector/results-${{ steps.revision.outputs.revision }}" } profiles: test_full - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 with: name: Seqera Platform debug log file path: | - seqera_platform_action_*.log - seqera_platform_action_*.json + tower_action_*.log + tower_action_*.json diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index eef6f2c3..b3346993 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -14,20 +14,20 @@ jobs: - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 with: - workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} + workspace_id: ${{ vars.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} - compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} + compute_env: ${{ vars.TOWER_COMPUTE_ENV }} revision: ${{ github.sha }} - workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/seqinspector/work-${{ github.sha }} + workdir: s3://${{ vars.AWS_S3_BUCKET }}/work/seqinspector/work-${{ github.sha }} parameters: | { - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/seqinspector/results-test-${{ github.sha }}" + "outdir": "s3://${{ vars.AWS_S3_BUCKET }}/seqinspector/results-test-${{ github.sha }}" } profiles: test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 with: name: Seqera Platform debug log file path: | - seqera_platform_action_*.log - seqera_platform_action_*.json + tower_action_*.log + tower_action_*.json diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml index 0b6b1f27..6adb0fff 100644 --- a/.github/workflows/clean-up.yml +++ b/.github/workflows/clean-up.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9 + - uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10 with: stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days." stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful." diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index ab06316e..45884ff9 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -12,14 +12,6 @@ on: required: true default: "dev" pull_request: - types: - - opened - - edited - - synchronize - branches: - - main - - master - pull_request_target: branches: - main - master @@ -52,9 +44,9 @@ jobs: - name: Disk space cleanup uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 - - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6 with: - python-version: "3.12" + python-version: "3.14" architecture: "x64" - name: Setup Apptainer @@ -65,7 +57,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install git+https://github.com/nf-core/tools.git@dev + pip install git+https://github.com/nf-core/tools.git - name: Make a cache directory for the container images run: | @@ -120,6 +112,7 @@ jobs: echo "IMAGE_COUNT_AFTER=$image_count" >> "$GITHUB_OUTPUT" - name: Compare container image counts + id: count_comparison run: | if [ "${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }}" -ne "${{ steps.count_afterwards.outputs.IMAGE_COUNT_AFTER }}" ]; then initial_count=${{ steps.count_initial.outputs.IMAGE_COUNT_INITIAL }} @@ -132,3 +125,10 @@ jobs: else echo "The pipeline can be downloaded successfully!" fi + + - name: Upload Nextflow logfile for debugging purposes + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 + with: + name: nextflow_logfile.txt + path: .nextflow.log* + include-hidden-files: true diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix_linting.yml similarity index 80% rename from .github/workflows/fix-linting.yml rename to .github/workflows/fix_linting.yml index 5adee083..205093c1 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix_linting.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: token: ${{ secrets.nf_core_bot_auth_token }} # indication that the linting is being fixed - name: React on comment - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: comment-id: ${{ github.event.comment.id }} reactions: eyes @@ -32,9 +32,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6 with: - python-version: "3.12" + python-version: "3.14" - name: Install pre-commit run: pip install pre-commit @@ -47,7 +47,7 @@ jobs: # indication that the linting has finished - name: react if linting finished succesfully if: steps.pre-commit.outcome == 'success' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: comment-id: ${{ github.event.comment.id }} reactions: "+1" @@ -67,21 +67,21 @@ jobs: - name: react if linting errors were fixed id: react-if-fixed if: steps.commit-and-push.outcome == 'success' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: comment-id: ${{ github.event.comment.id }} reactions: hooray - name: react if linting errors were not fixed if: steps.commit-and-push.outcome == 'failure' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: comment-id: ${{ github.event.comment.id }} reactions: confused - name: react if linting errors were not fixed if: steps.commit-and-push.outcome == 'failure' - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: issue-number: ${{ github.event.issue.number }} body: | diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index dbd52d5a..7a527a34 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -3,9 +3,6 @@ name: nf-core linting # It runs the `nf-core pipelines lint` and markdown lint tests to ensure # that the code meets the nf-core guidelines. on: - push: - branches: - - dev pull_request: release: types: [published] @@ -14,12 +11,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - - name: Set up Python 3.12 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + - name: Set up Python 3.14 + uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6 with: - python-version: "3.12" + python-version: "3.14" - name: Install pre-commit run: pip install pre-commit @@ -31,18 +28,18 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 - name: Install Nextflow uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 + - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6 with: - python-version: "3.12" + python-version: "3.14" architecture: "x64" - name: read .nf-core.yml - uses: pietrobolcato/action-read-yaml@1.1.0 + uses: pietrobolcato/action-read-yaml@9f13718d61111b69f30ab4ac683e67a56d254e1d # 1.1.0 id: read_yml with: config: ${{ github.workspace }}/.nf-core.yml @@ -74,7 +71,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 95b6b6af..e6e9bc26 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@20319c5641d495c8a52e688b7dc5fada6c3a9fbc # v8 + uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11 with: workflow: linting.yml workflow_conclusion: completed @@ -21,7 +21,7 @@ jobs: run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - name: Post PR comment - uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2 + uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index 4715b740..c98d76ec 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/**" @@ -17,14 +10,6 @@ on: release: types: [published] workflow_dispatch: - inputs: - runners: - description: "Runners to test on" - type: choice - options: - - "ubuntu-latest" - - "self-hosted" - default: "ubuntu-latest" # Cancel if a newer run is started concurrency: @@ -33,9 +18,7 @@ concurrency: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NFT_DIFF: "pdiff" - NFT_DIFF_ARGS: "--line-numbers --width 120 --expand-tabs=2" - NFT_VER: "0.9.2" + NFT_VER: "0.9.3" NFT_WORKDIR: "~" NXF_ANSI_LOG: false NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity @@ -44,7 +27,9 @@ env: jobs: nf-test-changes: name: nf-test-changes - runs-on: ${{ github.event.inputs.runners || github.run_number > 1 && 'ubuntu-latest' || 'self-hosted' }} + runs-on: # use self-hosted runners + - runs-on=${{ github.run_id }}-nf-test-changes + - runner=4cpu-linux-x64 outputs: shard: ${{ steps.set-shards.outputs.shard }} total_shards: ${{ steps.set-shards.outputs.total_shards }} @@ -55,7 +40,7 @@ jobs: rm -rf ./* || true rm -rf ./.??* || true ls -la ./ - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: fetch-depth: 0 @@ -73,10 +58,12 @@ jobs: echo ${{ steps.set-shards.outputs.total_shards }} nf-test: - runs-on: ${{ github.event.inputs.runners || github.run_number > 1 && 'ubuntu-latest' || 'self-hosted' }} name: "${{ matrix.profile }} | ${{ matrix.NXF_VER }} | ${{ matrix.shard }}/${{ needs.nf-test-changes.outputs.total_shards }}" needs: [nf-test-changes] if: ${{ needs.nf-test-changes.outputs.total_shards != '0' }} + runs-on: # use self-hosted runners + - runs-on=${{ github.run_id }}-nf-test + - runner=4cpu-linux-x64 strategy: fail-fast: false matrix: @@ -91,33 +78,52 @@ jobs: - isMain: false profile: "singularity" NXF_VER: - - "24.10.2" + - "25.04.0" - "latest-everything" env: NXF_ANSI_LOG: false TOTAL_SHARDS: ${{ needs.nf-test-changes.outputs.total_shards }} steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: 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 }} + NXF_VERSION: ${{ matrix.NXF_VER }} 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: - runs-on: ${{ github.event.inputs.runners || github.run_number > 1 && 'ubuntu-latest' || 'self-hosted' }} needs: [nf-test] if: always() + runs-on: # use self-hosted runners + - 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 @@ -136,11 +142,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 76a9e67e..431d3d44 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -14,6 +14,10 @@ jobs: run: | echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" | sed 's/-//g' >> $GITHUB_OUTPUT + - name: get description + id: get_description + run: | + echo "description=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .description')" >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} @@ -22,7 +26,7 @@ jobs: # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release message: | Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}! - + ${{ steps.get_description.outputs.description }} Please see the changelog: ${{ github.event.release.html_url }} ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics @@ -30,7 +34,7 @@ jobs: bsky-post: runs-on: ubuntu-latest steps: - - uses: zentered/bluesky-post-action@80dbe0a7697de18c15ad22f4619919ceb5ccf597 # v0.1.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/.github/workflows/template_version_comment.yml b/.github/workflows/template-version-comment.yml similarity index 91% rename from .github/workflows/template_version_comment.yml rename to .github/workflows/template-version-comment.yml index 537529bc..e8560fc7 100644 --- a/.github/workflows/template_version_comment.yml +++ b/.github/workflows/template-version-comment.yml @@ -9,12 +9,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5 with: ref: ${{ github.event.pull_request.head.sha }} - name: Read template version from .nf-core.yml - uses: nichmor/minimal-read-yaml@v0.0.2 + uses: nichmor/minimal-read-yaml@1f7205277e25e156e1f63815781db80a6d490b8f # v0.0.2 id: read_yml with: config: ${{ github.workspace }}/.nf-core.yml diff --git a/.gitpod.yml b/.gitpod.yml deleted file mode 100644 index 83599f63..00000000 --- a/.gitpod.yml +++ /dev/null @@ -1,10 +0,0 @@ -image: nfcore/gitpod:latest -tasks: - - name: Update Nextflow and setup pre-commit - command: | - pre-commit install --install-hooks - nextflow self-update - -vscode: - extensions: - - nf-core.nf-core-extensionpack # https://github.com/nf-core/vscode-extensionpack diff --git a/.nf-core.yml b/.nf-core.yml index 84481477..ceb658d7 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,13 +1,12 @@ lint: - actions_ci: false + files_exist: + - tests/default.nf.test files_unchanged: - .github/CONTRIBUTING.md - files_exist: - - .github/workflows/ci.yml nextflow_config: - config_defaults: - params.fastq_screen_references -nf_core_version: 3.2.0 +nf_core_version: 3.5.1 repository_type: pipeline template: author: Adrien Coulier diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1dec8650..d06777a8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,10 +4,24 @@ repos: hooks: - id: prettier additional_dependencies: - - prettier@3.2.5 - - - repo: https://github.com/editorconfig-checker/editorconfig-checker.python - rev: "3.1.2" + - prettier@3.6.2 + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 hooks: - - id: editorconfig-checker - alias: ec + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + exclude: | + (?x)^( + .*ro-crate-metadata.json$| + modules/nf-core/.*| + subworkflows/nf-core/.*| + .*\.snap$ + )$ + - id: end-of-file-fixer + exclude: | + (?x)^( + .*ro-crate-metadata.json$| + modules/nf-core/.*| + subworkflows/nf-core/.*| + .*\.snap$ + )$ diff --git a/.prettierignore b/.prettierignore index edd29f01..dd749d43 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,4 +10,7 @@ testing/ testing* *.pyc bin/ +.nf-test/ ro-crate-metadata.json +modules/nf-core/ +subworkflows/nf-core/ diff --git a/.prettierrc.yml b/.prettierrc.yml index c81f9a76..07dbd8bb 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -1 +1,6 @@ printWidth: 120 +tabWidth: 4 +overrides: + - files: "*.{md,yml,yaml,html,css,scss,js,cff}" + options: + tabWidth: 2 diff --git a/CHANGELOG.md b/CHANGELOG.md index fc243f3c..aaf4d24a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,9 @@ Initial release of nf-core/seqinspector, created with the [nf-core](https://nf-c - [#96](https://github.com/nf-core/seqinspector/pull/96) Added missing citations to citation tool - [#103](https://github.com/nf-core/seqinspector/pull/103) Configure full-tests - [#110](https://github.com/nf-core/seqinspector/pull/110) Update input schema to accept either tar file or directory as rundir, and fastq messages and patterns. +- [#127](https://github.com/nf-core/seqinspector/pull/127) Added alignment tools - bwamem2 - index and mem +- [#128](https://github.com/nf-core/seqinspector/pull/128) Added Picard tools - Collect Multiple Mterics to collect QC metrics +- [#132](https://github.com/nf-core/seqinspector/pull/132) Added a bwamem2 index params for faster output ### `Fixed` diff --git a/CITATIONS.md b/CITATIONS.md index 208cfa1e..36704d9e 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -28,6 +28,16 @@ - [Seqtk](https://github.com/lh3/seqtk) +- [BWAMEM2](https://ieeexplore.ieee.org/abstract/document/8820962) + +> Vasimuddin Md, Misra S, Li H, Aluru S. Efficient Architecture-Aware Acceleration of BWA-MEM for Multicore Systems. In: 2019 IEEE International Parallel and Distributed Processing Symposium (IPDPS). IEEE; 2019:314-324. doi:10.1109/IPDPS.2019.00041 + +- [SAMTOOLS](https://academic.oup.com/bioinformatics/article/25/16/2078/204688) + +> Danecek P, Bonfield JK, Liddle J, et al. Twelve years of SAMtools and BCFtools. GigaScience. 2021;10(2):giab008. doi:10.1093/gigascience/giab008 + +- [Picard Tools](https://broadinstitute.github.io/picard/) + ## Software packaging/containerisation tools - [Anaconda](https://anaconda.com) diff --git a/README.md b/README.md index 6cf36dcc..8ad43f23 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,19 @@ -[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/ci.yml) +[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqinspector) +[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml) [![GitHub Actions Linting Status](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqinspector/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/seqinspector/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) [![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-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.5.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.5.1) [![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/) [![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/seqinspector) -[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![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) +[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![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) ## Introduction @@ -33,7 +35,11 @@ 1. Subsample reads ([`Seqtk`](https://github.com/lh3/seqtk)) 2. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) -3. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) +3. Align reads to reference with ([`Bwamem2`](https://github.com/bwa-mem2/bwa-mem2)) +4. Index aligned BAM files ([`SAMtools`](http://github.com/samtools)) +5. Create FASTA index ([`SAMtools`](http://github.com/samtools)) +6. Collect multiple QC metrics ([`Picard CollectMultipleMetrics`](https://broadinstitute.github.io/picard/picard-metric-definitions.html)) +7. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) ## Usage diff --git a/assets/schema_fastq_screen_references.json b/assets/schema_fastq_screen_references.json index 9a938d99..e5e0aa12 100644 --- a/assets/schema_fastq_screen_references.json +++ b/assets/schema_fastq_screen_references.json @@ -14,7 +14,7 @@ }, "dir": { "type": "string", - "format": "file-path", + "format": "directory-path", "exists": true, "pattern": "^\\S+$", "errorMessage": "Path to the dir containing the aligner reference and index. Can be remote." diff --git a/assets/schema_input.json b/assets/schema_input.json index c879c73b..7fb2b711 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -17,15 +17,15 @@ "type": "string", "format": "file-path", "exists": true, - "pattern": "\\.f(ast)?q\\.gz$", - "errorMessage": "FastQ files for read 1 must be provided 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": "\\.f(ast)?q\\.gz$", - "errorMessage": "FastQ files for read 2 are optional and must have extension '.fq.gz' or '.fastq.gz' if provided" + "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'" }, "rundir": { "oneOf": [ diff --git a/conf/base.config b/conf/base.config index eb6fbee3..84739da8 100644 --- a/conf/base.config +++ b/conf/base.config @@ -15,7 +15,7 @@ process { memory = { 6.GB * task.attempt } time = { 4.h * task.attempt } - errorStrategy = { task.exitStatus in ((130..145) + 104) ? 'retry' : 'finish' } + errorStrategy = { task.exitStatus in ((130..145) + 104 + 175) ? 'retry' : 'finish' } maxRetries = 1 maxErrors = '-1' @@ -59,4 +59,8 @@ process { errorStrategy = 'retry' maxRetries = 2 } + withLabel: process_gpu { + ext.use_gpu = { workflow.profile.contains('gpu') } + accelerator = { workflow.profile.contains('gpu') ? 1 : null } + } } diff --git a/conf/modules.config b/conf/modules.config index e90c7304..f33f71aa 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -18,11 +18,11 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: SEQTK_SAMPLE { + withName: 'SEQTK_SAMPLE' { ext.args = '-s100' } - withName: FASTQC { + withName: 'FASTQC' { ext.args = '--quiet' } @@ -42,6 +42,7 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } + withName: 'BWAMEM2_MEM' { publishDir = [ path: { "${params.outdir}/bwamem2_mem" }, @@ -50,6 +51,30 @@ process { ] } + withName: 'PICARD_COLLECTMULTIPLEMETRICS' { + publishDir = [ + path: { "${params.outdir}/picard_collectmultiplemetrics" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'SAMTOOLS_FAIDX' { + publishDir = [ + path: { "${params.outdir}/samtools_faidx" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'SAMTOOLS_INDEX' { + publishDir = [ + path: { "${params.outdir}/bwamem2_mem" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + withName: 'MULTIQC_GLOBAL' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/conf/test.config b/conf/test.config index db9d053b..286d1cf8 100644 --- a/conf/test.config +++ b/conf/test.config @@ -32,4 +32,3 @@ process { ] } - diff --git a/docs/images/seqinspector_tubemap_V1.0.png b/docs/images/seqinspector_tubemap_V1.0.png new file mode 100644 index 00000000..0bb3dfca Binary files /dev/null and b/docs/images/seqinspector_tubemap_V1.0.png differ diff --git a/docs/images/seqinspector_tubemap_V1.0.svg b/docs/images/seqinspector_tubemap_V1.0.svg new file mode 100644 index 00000000..388af760 --- /dev/null +++ b/docs/images/seqinspector_tubemap_V1.0.svg @@ -0,0 +1,1640 @@ + + + + + + + + + + + + + FastQC + Standard QC + + + + + + Run + + metadata + + + + + + seqtk + + + FastQ Screen + + + Contamination + + + detection + + + MultiQC + Report Generation + Global Report + + + + + + + + + fastq + + + + + fastq + + + + + fastq + + + + + fastq + + + + + + + Reports by group + sample tags + + + + + + + + + + D lane1 : special + + + + + A project5 : workset3 : lane1 + + + + + C workset2 : lane2 : project5 + + + + + D + + + + + A + A + D + D + A + A + + C + + + + B lane1 : project4 : workset2 + B + B + B + B + + C + C + C + + + + MultiQC + + + + + + lane2 + + + + MultiQC + + + + + project5 + + + + MultiQC + + + + + project4 + + + + + MultiQC + + + + + + workset3 + + + + MultiQC + + + + + workset2 + + + + MultiQC + + + + + special + + + + MultiQC + + + + + lane1 + + + + + MultiQC + + + + + + + + + + + Run + Folder + + + + + diff --git a/docs/usage.md b/docs/usage.md index 3c60d574..e31a7862 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -158,7 +158,7 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - `shifter` - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) - `charliecloud` - - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) + - A generic configuration profile to be used with [Charliecloud](https://charliecloud.io/) - `apptainer` - A generic configuration profile to be used with [Apptainer](https://apptainer.org/) - `wave` diff --git a/main.nf b/main.nf index 4e3aca0d..56bbfec3 100644 --- a/main.nf +++ b/main.nf @@ -36,7 +36,6 @@ include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_seqi // WORKFLOW: Run main analysis pipeline depending on type of input // workflow NFCORE_SEQINSPECTOR { - take: samplesheet // channel: samplesheet read in from --input @@ -46,13 +45,14 @@ workflow NFCORE_SEQINSPECTOR { // WORKFLOW: Run pipeline // - SEQINSPECTOR ( - samplesheet + SEQINSPECTOR( + samplesheet, + params.fasta, ) - emit: - global_report = SEQINSPECTOR.out.global_report // channel: /path/to/multiqc_report.html - grouped_reports = SEQINSPECTOR.out.grouped_reports // channel: /path/to/multiqc_report.html + emit: + global_report = SEQINSPECTOR.out.global_report // channel: /path/to/multiqc_report.html + grouped_reports = SEQINSPECTOR.out.grouped_reports // channel: /path/to/multiqc_report.html } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -62,32 +62,33 @@ workflow NFCORE_SEQINSPECTOR { workflow { - main: - // // SUBWORKFLOW: Run initialisation tasks // - PIPELINE_INITIALISATION ( + PIPELINE_INITIALISATION( params.version, params.validate_params, params.monochrome_logs, args, params.outdir, - params.input + params.input, + params.help, + params.help_full, + params.show_hidden ) // // WORKFLOW: Run main workflow // - NFCORE_SEQINSPECTOR ( - PIPELINE_INITIALISATION.out.samplesheet, + NFCORE_SEQINSPECTOR( + PIPELINE_INITIALISATION.out.samplesheet ) // // SUBWORKFLOW: Run completion tasks // - PIPELINE_COMPLETION ( + PIPELINE_COMPLETION( params.email, params.email_on_fail, params.plaintext_email, @@ -116,9 +117,3 @@ def getGenomeAttribute(attribute) { } return null } - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - THE END -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ diff --git a/modules.json b/modules.json index e3b68325..69e8fb48 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "bowtie2/build": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"] }, "bwamem2/index": { @@ -17,39 +17,54 @@ }, "bwamem2/mem": { "branch": "master", - "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", + "git_sha": "d86336f3e7ae0d5f76c67b0859409769cfeb2af2", "installed_by": ["modules"], "patch": "modules/nf-core/bwamem2/mem/bwamem2-mem.diff" }, "fastqc": { "branch": "master", - "git_sha": "08108058ea36a63f141c25c4e75f9f872a5b2296", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"] }, "fastqscreen/buildfromindex": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"] }, "fastqscreen/fastqscreen": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46", "installed_by": ["modules"], "patch": "modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff" }, "multiqc": { "branch": "master", - "git_sha": "7b50cb7be890e4b28cffb82e438cc6a8d7805d3f", + "git_sha": "82a79183037a403ad1b6714e5dbcff25500efaf6", + "installed_by": ["modules"] + }, + "picard/collectmultiplemetrics": { + "branch": "master", + "git_sha": "df124e87c74d8b40285199f8cc20151f5aa57255", + "installed_by": ["modules"] + }, + "samtools/faidx": { + "branch": "master", + "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", + "installed_by": ["modules"] + }, + "samtools/index": { + "branch": "master", + "git_sha": "c8be52dba1166c678e74cda9c3a3c221635c8bb1", "installed_by": ["modules"] }, "seqfu/stats": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", "installed_by": ["modules"] }, "seqtk/sample": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "e753770db613ce014b3c4bc94f6cba443427b726", "installed_by": ["modules"] } } @@ -58,17 +73,17 @@ "nf-core": { "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "c2b22d85f30a706a3073387f30380704fcae013b", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "51ae5406a030d4da1e49e4dab49756844fdd6c7a", + "git_sha": "271e7fc14eb1320364416d996fb077421f3faed2", "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", - "git_sha": "2fd2cd6d0e7b273747f32e465fdc6bcc3ae0814e", + "git_sha": "4b406a74dc0449c0401ed87d5bfff4252fd277fd", "installed_by": ["subworkflows"] } } diff --git a/modules/nf-core/bowtie2/build/environment.yml b/modules/nf-core/bowtie2/build/environment.yml index e590f7ce..066ff52e 100644 --- a/modules/nf-core/bowtie2/build/environment.yml +++ b/modules/nf-core/bowtie2/build/environment.yml @@ -1,5 +1,13 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda dependencies: - - bioconda::bowtie2=2.5.2 + # renovate: datasource=conda depName=bioconda/bowtie2 + - bioconda::bowtie2=2.5.4 + # renovate: datasource=conda depName=bioconda/htslib + - bioconda::htslib=1.21 + # renovate: datasource=conda depName=bioconda/samtools + - bioconda::samtools=1.21 + - conda-forge::pigz=2.8 diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf index 9e2e0e5e..fb7effec 100644 --- a/modules/nf-core/bowtie2/build/main.nf +++ b/modules/nf-core/bowtie2/build/main.nf @@ -4,8 +4,8 @@ process BOWTIE2_BUILD { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bowtie2:2.5.2--py39h6fed5c7_0' : - 'biocontainers/bowtie2:2.5.2--py39h6fed5c7_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/b4/b41b403e81883126c3227fc45840015538e8e2212f13abc9ae84e4b98891d51c/data' : + 'community.wave.seqera.io/library/bowtie2_htslib_samtools_pigz:edeb13799090a2a6' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml index 2729a92e..3e83ecb4 100644 --- a/modules/nf-core/bowtie2/build/meta.yml +++ b/modules/nf-core/bowtie2/build/meta.yml @@ -25,9 +25,10 @@ input: - fasta: type: file description: Input genome fasta file + ontologies: [] output: - - index: - - meta: + index: + - - meta: type: map description: | Groovy Map containing reference information @@ -36,11 +37,14 @@ output: type: file description: Bowtie2 genome index files pattern: "*.bt2" - - 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: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/bowtie2/build/tests/main.nf.test b/modules/nf-core/bowtie2/build/tests/main.nf.test index 16376025..ee94c19c 100644 --- a/modules/nf-core/bowtie2/build/tests/main.nf.test +++ b/modules/nf-core/bowtie2/build/tests/main.nf.test @@ -1,7 +1,7 @@ nextflow_process { name "Test Process BOWTIE2_BUILD" - script "modules/nf-core/bowtie2/build/main.nf" + script "../main.nf" process "BOWTIE2_BUILD" tag "modules" tag "modules_nfcore" @@ -15,7 +15,7 @@ nextflow_process { """ input[0] = [ [ id:'test' ], - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ] """ } diff --git a/modules/nf-core/bowtie2/build/tests/main.nf.test.snap b/modules/nf-core/bowtie2/build/tests/main.nf.test.snap index 6875e021..ea5711e4 100644 --- a/modules/nf-core/bowtie2/build/tests/main.nf.test.snap +++ b/modules/nf-core/bowtie2/build/tests/main.nf.test.snap @@ -18,7 +18,7 @@ ] ], "1": [ - "versions.yml:md5,1df11e9b82891527271c889c880d3974" + "versions.yml:md5,d136fb9c16f0a9fb2ae804b2a5fbc09c" ], "index": [ [ @@ -36,10 +36,14 @@ ] ], "versions": [ - "versions.yml:md5,1df11e9b82891527271c889c880d3974" + "versions.yml:md5,d136fb9c16f0a9fb2ae804b2a5fbc09c" ] } ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "25.02.1" + }, "timestamp": "2023-11-23T11:51:01.107681997" } } \ No newline at end of file diff --git a/modules/nf-core/bowtie2/build/tests/tags.yml b/modules/nf-core/bowtie2/build/tests/tags.yml deleted file mode 100644 index 81aa61da..00000000 --- a/modules/nf-core/bowtie2/build/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -bowtie2/build: - - modules/nf-core/bowtie2/build/** diff --git a/modules/nf-core/bwamem2/mem/bwamem2-mem.diff b/modules/nf-core/bwamem2/mem/bwamem2-mem.diff new file mode 100644 index 00000000..be5074e8 --- /dev/null +++ b/modules/nf-core/bwamem2/mem/bwamem2-mem.diff @@ -0,0 +1,18 @@ +Changes in component 'nf-core/bwamem2/mem' +'modules/nf-core/bwamem2/mem/meta.yml' is unchanged +'modules/nf-core/bwamem2/mem/environment.yml' is unchanged +Changes in 'bwamem2/mem/main.nf': +--- modules/nf-core/bwamem2/mem/main.nf ++++ modules/nf-core/bwamem2/mem/main.nf +@@ -1,6 +1,6 @@ + process BWAMEM2_MEM { + tag "$meta.id" +- label 'process_high' ++ label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + +'modules/nf-core/bwamem2/mem/tests/main.nf.test' is unchanged +'modules/nf-core/bwamem2/mem/tests/main.nf.test.snap' is unchanged +************************************************************ diff --git a/modules/nf-core/bwamem2/mem/environment.yml b/modules/nf-core/bwamem2/mem/environment.yml index c069e281..f3637444 100644 --- a/modules/nf-core/bwamem2/mem/environment.yml +++ b/modules/nf-core/bwamem2/mem/environment.yml @@ -6,8 +6,8 @@ channels: dependencies: # renovate: datasource=conda depName=bioconda/bwa-mem2 - - bwa-mem2=2.2.1 + - bwa-mem2=2.3 # renovate: datasource=conda depName=bioconda/htslib - - htslib=1.21 + - htslib=1.22.1 # renovate: datasource=conda depName=bioconda/samtools - - samtools=1.21 + - samtools=1.22.1 diff --git a/modules/nf-core/bwamem2/mem/main.nf b/modules/nf-core/bwamem2/mem/main.nf index eab662a8..e12a68b0 100644 --- a/modules/nf-core/bwamem2/mem/main.nf +++ b/modules/nf-core/bwamem2/mem/main.nf @@ -1,11 +1,11 @@ process BWAMEM2_MEM { tag "$meta.id" - label 'process_high' + label 'process_low' 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/9a/9ac054213e67b3c9308e409b459080bbe438f8fd6c646c351bc42887f35a42e7/data' : - 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:e1f420694f8e42bd' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e0/e05ce34b46ad42810eb29f74e4e304c0cb592b2ca15572929ed8bbaee58faf01/data' : + 'community.wave.seqera.io/library/bwa-mem2_htslib_samtools:db98f81f55b64113' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/bwamem2/mem/tests/main.nf.test.snap b/modules/nf-core/bwamem2/mem/tests/main.nf.test.snap index ec90701f..b7d40a68 100644 --- a/modules/nf-core/bwamem2/mem/tests/main.nf.test.snap +++ b/modules/nf-core/bwamem2/mem/tests/main.nf.test.snap @@ -1,17 +1,17 @@ { "sarscov2 - [fastq1, fastq2], index, fasta, false": { "content": [ - "9505760d66e1d5a5d34ab79a98228c6", + "e414c2d48e2e44c2c52c20ecd88e8bd8", "57aeef88ed701a8ebc8e2f0a381b2a6", [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "25.04.7" }, - "timestamp": "2025-03-27T10:57:52.782442426" + "timestamp": "2025-09-23T11:44:52.73673293" }, "sarscov2 - [fastq1, fastq2], index, fasta, true - stub": { "content": [ @@ -44,7 +44,7 @@ ] ], "5": [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ], "bam": [ [ @@ -74,56 +74,56 @@ ], "versions": [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ] } ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "25.04.7" }, - "timestamp": "2025-03-27T10:58:37.140104324" + "timestamp": "2025-09-23T11:45:14.834888709" }, "sarscov2 - [fastq1, fastq2], index, fasta, true": { "content": [ - "e0c38d5772ca5f4d5d9999f4477e933c", + "716ed1ef39deaad346ca7cf86e08f959", "af8628d9df18b2d3d4f6fd47ef2bb872", [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "25.04.7" }, - "timestamp": "2025-03-27T10:58:19.047052261" + "timestamp": "2025-09-23T11:45:04.750057645" }, "sarscov2 - fastq, index, fasta, false": { "content": [ - "58d05395bbb819e929885bde415947ae", + "283a83f604f3f5338acedfee349dccf4", "798439cbd7fd81cbcc5078022dc5479d", [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "25.04.7" }, - "timestamp": "2025-03-27T10:56:53.456559296" + "timestamp": "2025-09-23T11:44:28.57550711" }, "sarscov2 - fastq, index, fasta, true": { "content": [ - "276189f6f003f99a87664e74fad2893d", + "ed99048bb552cac58e39923b550b6d5b", "94fcf617f5b994584c4e8d4044e16b4f", [ - "versions.yml:md5,ca1b1dcf82b92fb0751816fca16a477a" + "versions.yml:md5,3574188ab1f33fd99cff9f5562dfb885" ] ], "meta": { "nf-test": "0.9.2", - "nextflow": "24.10.5" + "nextflow": "25.04.7" }, - "timestamp": "2025-03-27T10:57:21.949711746" + "timestamp": "2025-09-23T11:44:40.437183765" } } \ No newline at end of file diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml index 691d4c76..f9f54ee9 100644 --- a/modules/nf-core/fastqc/environment.yml +++ b/modules/nf-core/fastqc/environment.yml @@ -1,3 +1,5 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 033f4154..23e16634 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -29,7 +29,7 @@ process FASTQC { // The total amount of allocated RAM by FastQC is equal to the number of threads defined (--threads) time the amount of RAM defined (--memory) // https://github.com/s-andrews/FastQC/blob/1faeea0412093224d7f6a07f777fad60a5650795/fastqc#L211-L222 // Dividing the task.memory by task.cpu allows to stick to requested amount of RAM in the label - def memory_in_mb = task.memory ? task.memory.toUnit('MB').toFloat() / task.cpus : null + def memory_in_mb = task.memory ? task.memory.toUnit('MB') / task.cpus : null // FastQC memory value allowed range (100 - 10000) def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index 2b2e62b8..c8d9d025 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/fastqscreen/buildfromindex/environment.yml b/modules/nf-core/fastqscreen/buildfromindex/environment.yml index 85764e0d..3b3ba521 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/environment.yml +++ b/modules/nf-core/fastqscreen/buildfromindex/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::fastq-screen=0.15.3" + - bioconda::fastq-screen=0.15.3 diff --git a/modules/nf-core/fastqscreen/buildfromindex/meta.yml b/modules/nf-core/fastqscreen/buildfromindex/meta.yml index d92817fc..0291620b 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/meta.yml +++ b/modules/nf-core/fastqscreen/buildfromindex/meta.yml @@ -17,23 +17,25 @@ tools: licence: ["GPL-3.0-or-later"] identifier: "" input: - - - genome_names: - type: string - description: List of names for each index - - - indexes: - type: directory - description: Bowtie2 genome directories containing index files + - genome_names: + type: string + description: List of names for each index + - indexes: + type: directory + description: Bowtie2 genome directories containing index files output: - - database: - - FastQ_Screen_Genomes: - type: directory - description: fastq screen database folder containing config file and index folders - pattern: "FastQ_Screen_Genomes" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + database: + - FastQ_Screen_Genomes: + type: directory + description: fastq screen database folder containing config file and index folders + pattern: "FastQ_Screen_Genomes" + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@snesic" - "@JPejovicApis" diff --git a/modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap b/modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap index 0fe7d7d1..a485079b 100644 --- a/modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap +++ b/modules/nf-core/fastqscreen/buildfromindex/tests/main.nf.test.snap @@ -1,5 +1,5 @@ { - "database": { + "sarscov2 - human": { "content": [ [ [ @@ -21,25 +21,49 @@ ], "fastq_screen.conf:md5,ca56e866c7006a46bdfe4e751e787265" ] + ], + [ + "versions.yml:md5,c2bcf85b00046c72d5dccd2dba8ac35c" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "25.02.1" }, - "timestamp": "2024-05-01T20:37:34.647221" + "timestamp": "2025-03-25T12:58:36.506586801" }, - "versions": { + "sarscov2 - human": { "content": [ + [ + [ + [ + "genome.1.bt2:md5,cbe3d0bbea55bc57c99b4bfa25b5fbdf", + "genome.2.bt2:md5,47b153cd1319abc88dda532462651fcf", + "genome.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "genome.4.bt2:md5,c25be5f8b0378abf7a58c8a880b87626", + "genome.rev.1.bt2:md5,52be6950579598a990570fbcf5372184", + "genome.rev.2.bt2:md5,e3b4ef343dea4dd571642010a7d09597" + ], + [ + "genome.1.bt2:md5,2fbc8eeaf480f03b3a2362a782fa5755", + "genome.2.bt2:md5,a5300e3cf590d4cd8bd5521cac6337d6", + "genome.3.bt2:md5,d2a7a0e1c9891e847a15781c0695b84e", + "genome.4.bt2:md5,a55dc4b09e3e00586de6963800c95b9a", + "genome.rev.1.bt2:md5,93c07f7d04e5da6bf1322ad5f46ac806", + "genome.rev.2.bt2:md5,c3fa30132c0c9b9bc7868059e8e23466" + ], + "fastq_screen.conf:md5,ca56e866c7006a46bdfe4e751e787265" + ] + ], [ "versions.yml:md5,c2bcf85b00046c72d5dccd2dba8ac35c" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.5" }, - "timestamp": "2024-05-01T20:37:35.126085" + "timestamp": "2025-03-25T08:34:46.992911211" }, "sarscov2 - human - stub": { "content": [ @@ -63,9 +87,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "24.10.5" }, - "timestamp": "2024-05-01T20:39:14.913696" + "timestamp": "2025-03-25T08:35:14.073325807" } } \ No newline at end of file diff --git a/modules/nf-core/fastqscreen/buildfromindex/tests/tags.yml b/modules/nf-core/fastqscreen/buildfromindex/tests/tags.yml deleted file mode 100644 index 9c98e870..00000000 --- a/modules/nf-core/fastqscreen/buildfromindex/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -fastqscreen/buildfromindex: - - "modules/nf-core/fastqscreen/buildfromindex/**" diff --git a/modules/nf-core/fastqscreen/fastqscreen/environment.yml b/modules/nf-core/fastqscreen/fastqscreen/environment.yml index 7d4c8922..9ff968c9 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/environment.yml +++ b/modules/nf-core/fastqscreen/fastqscreen/environment.yml @@ -6,9 +6,3 @@ channels: dependencies: - bioconda::fastq-screen=0.16.0 - bioconda::perl-gdgraph=1.54 - # - gzip - # - SAMtools - # - bowtie - # - bowtie2 - # - bwa - # - bismark diff --git a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff index 658d149b..c6fdd2f1 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff +++ b/modules/nf-core/fastqscreen/fastqscreen/fastqscreen-fastqscreen.diff @@ -1,73 +1,90 @@ Changes in component 'nf-core/fastqscreen/fastqscreen' +'modules/nf-core/fastqscreen/fastqscreen/meta.yml' is unchanged Changes in 'fastqscreen/fastqscreen/environment.yml': --- modules/nf-core/fastqscreen/fastqscreen/environment.yml +++ modules/nf-core/fastqscreen/fastqscreen/environment.yml -@@ -4,5 +4,11 @@ +@@ -4,5 +4,5 @@ - conda-forge - bioconda dependencies: -- - "bioconda::fastq-screen=0.15.3" +- - bioconda::fastq-screen=0.15.3 + - bioconda::fastq-screen=0.16.0 - bioconda::perl-gdgraph=1.54 -+ # - gzip -+ # - SAMtools -+ # - bowtie -+ # - bowtie2 -+ # - bwa -+ # - bismark Changes in 'fastqscreen/fastqscreen/main.nf': --- modules/nf-core/fastqscreen/fastqscreen/main.nf +++ modules/nf-core/fastqscreen/fastqscreen/main.nf -@@ -4,12 +4,12 @@ +@@ -1,22 +1,22 @@ + process FASTQSCREEN_FASTQSCREEN { +- tag "$meta.id" ++ tag "${meta.id}" + label 'process_medium' conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? +- container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastq-screen:0.15.3--pl5321hdfd78af_0': - 'biocontainers/fastq-screen:0.15.3--pl5321hdfd78af_0'}" -+ 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' : -+ 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" ++ container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ++ ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' ++ : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" input: - tuple val(meta), path(reads) // .fastq files - path database + tuple val(meta), path(reads, arity: '1..2') -+ tuple val(ref_names), path(ref_dirs, name:"ref*"), val(ref_basenames), val(ref_aligners) ++ tuple val(ref_names), path(ref_dirs, name: "ref*"), val(ref_basenames), val(ref_aligners) output: - tuple val(meta), path("*.txt") , emit: txt -@@ -24,31 +24,42 @@ +- tuple val(meta), path("*.txt") , emit: txt +- tuple val(meta), path("*.png") , emit: png , optional: true +- tuple val(meta), path("*.html") , emit: html ++ tuple val(meta), path("*.txt"), emit: txt ++ tuple val(meta), path("*.png"), emit: png, optional: true ++ tuple val(meta), path("*.html"), emit: html + tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true +- path "versions.yml" , emit: versions ++ path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when +@@ -24,31 +24,46 @@ script: def prefix = task.ext.prefix ?: "${meta.id}" def args = task.ext.args ?: "" + def config_content = ref_names.withIndex().collect { name, i -> "DATABASE ${name} ./${ref_dirs[i]}/${ref_basenames[i]} ${ref_aligners[i]}" }.join('\n') + // Build mv commands to rename the output files. Dual reads will be appended with '_1' and '_2' -+ def num_reads = reads instanceof List ? reads.size() : 1 ++ def num_reads = reads instanceof List ? reads.size() : 1 + def file_extensions = ['txt', 'html', 'png'] -+ def mv_cmd = file_extensions.collect { ext -> -+ reads.withIndex().collect { read, i -> -+ "mv ${read.simpleName}_screen.${ext} ${prefix}${num_reads > 1 ? "_${i+1}" : ''}_screen.${ext}" -+ }.join(' && ') -+ }.join(' && ') ++ def mv_cmd = file_extensions ++ .collect { ext -> ++ reads ++ .withIndex() ++ .collect { read, i -> ++ "mv ${read.simpleName}_screen.${ext} ${prefix}${num_reads > 1 ? "_${i + 1}" : ''}_screen.${ext}" ++ } ++ .join(' && ') ++ } ++ .join(' && ') """ - fastq_screen --threads ${task.cpus} \\ - --aligner bowtie2 \\ - --conf ${database}/fastq_screen.conf \\ -+ echo '${config_content}' > fastq_screen.conf -+ -+ fastq_screen \\ -+ --conf fastq_screen.conf \\ -+ --threads ${task.cpus} \\ - $reads \\ +- $reads \\ - $args \\ -+ $args ++ echo '${config_content}' > fastq_screen.conf - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqscreen: \$(echo \$(fastq_screen --version 2>&1) | sed 's/^.*FastQ Screen v//; s/ .*\$//') - END_VERSIONS -+ $mv_cmd ++ fastq_screen \\ ++ --conf fastq_screen.conf \\ ++ --threads ${task.cpus} \\ ++ ${reads} \\ ++ ${args} ++ ++ ${mv_cmd} + + fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') + echo "\\\"${task.process}\\\":" > versions.yml @@ -92,12 +109,10 @@ Changes in 'fastqscreen/fastqscreen/main.nf': + echo "\\\"${task.process}\\\":" > versions.yml + echo " fastqscreen: \$fastq_screen_version" >> versions.yml """ - +- } -'modules/nf-core/fastqscreen/fastqscreen/meta.yml' is unchanged -'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test' is unchanged 'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap' is unchanged 'modules/nf-core/fastqscreen/fastqscreen/tests/nextflow.config' is unchanged -'modules/nf-core/fastqscreen/fastqscreen/tests/tags.yml' is unchanged +'modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test' is unchanged ************************************************************ diff --git a/modules/nf-core/fastqscreen/fastqscreen/main.nf b/modules/nf-core/fastqscreen/fastqscreen/main.nf index 21012c1f..dc53ae21 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/main.nf +++ b/modules/nf-core/fastqscreen/fastqscreen/main.nf @@ -1,22 +1,22 @@ process FASTQSCREEN_FASTQSCREEN { - tag "$meta.id" + tag "${meta.id}" label 'process_medium' 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/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' : - 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/fc/fc53eee7ca23c32220a9662fbb63c67769756544b6d74a1ee85cf439ea79a7ee/data' + : 'community.wave.seqera.io/library/fastq-screen_perl-gdgraph:5c1786a5d5bc1309'}" input: tuple val(meta), path(reads, arity: '1..2') - tuple val(ref_names), path(ref_dirs, name:"ref*"), val(ref_basenames), val(ref_aligners) + tuple val(ref_names), path(ref_dirs, name: "ref*"), val(ref_basenames), val(ref_aligners) output: - tuple val(meta), path("*.txt") , emit: txt - tuple val(meta), path("*.png") , emit: png , optional: true - tuple val(meta), path("*.html") , emit: html + tuple val(meta), path("*.txt"), emit: txt + tuple val(meta), path("*.png"), emit: png, optional: true + tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.fastq.gz"), emit: fastq, optional: true - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -27,23 +27,28 @@ process FASTQSCREEN_FASTQSCREEN { def config_content = ref_names.withIndex().collect { name, i -> "DATABASE ${name} ./${ref_dirs[i]}/${ref_basenames[i]} ${ref_aligners[i]}" }.join('\n') // Build mv commands to rename the output files. Dual reads will be appended with '_1' and '_2' - def num_reads = reads instanceof List ? reads.size() : 1 + def num_reads = reads instanceof List ? reads.size() : 1 def file_extensions = ['txt', 'html', 'png'] - def mv_cmd = file_extensions.collect { ext -> - reads.withIndex().collect { read, i -> - "mv ${read.simpleName}_screen.${ext} ${prefix}${num_reads > 1 ? "_${i+1}" : ''}_screen.${ext}" - }.join(' && ') - }.join(' && ') + def mv_cmd = file_extensions + .collect { ext -> + reads + .withIndex() + .collect { read, i -> + "mv ${read.simpleName}_screen.${ext} ${prefix}${num_reads > 1 ? "_${i + 1}" : ''}_screen.${ext}" + } + .join(' && ') + } + .join(' && ') """ echo '${config_content}' > fastq_screen.conf fastq_screen \\ --conf fastq_screen.conf \\ --threads ${task.cpus} \\ - $reads \\ - $args + ${reads} \\ + ${args} - $mv_cmd + ${mv_cmd} fastq_screen_version=\$(fastq_screen --version 2>&1 | sed 's/^.*FastQ Screen v//; s/ .*\$//') echo "\\\"${task.process}\\\":" > versions.yml @@ -61,5 +66,4 @@ process FASTQSCREEN_FASTQSCREEN { echo "\\\"${task.process}\\\":" > versions.yml echo " fastqscreen: \$fastq_screen_version" >> versions.yml """ - } diff --git a/modules/nf-core/fastqscreen/fastqscreen/meta.yml b/modules/nf-core/fastqscreen/fastqscreen/meta.yml index 39c86b4f..81e15b02 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/meta.yml +++ b/modules/nf-core/fastqscreen/fastqscreen/meta.yml @@ -29,50 +29,58 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. - - - database: - type: directory - description: fastq screen database folder containing config file and index folders - pattern: "FastQ_Screen_Genomes" + ontologies: [] + - database: + type: directory + description: fastq screen database folder containing config file and index folders + pattern: "FastQ_Screen_Genomes" output: - - txt: - - meta: + txt: + - - meta: type: map description: Groovy Map containing sample information - "*.txt": type: file description: TXT file containing alignment statistics pattern: "*.txt" - - png: - - meta: + ontologies: [] + png: + - - meta: type: map description: Groovy Map containing sample information - "*.png": type: file description: PNG file with graphical representation of alignments pattern: "*.png" - - html: - - meta: + ontologies: [] + html: + - - meta: type: map description: Groovy Map containing sample information - "*.html": type: file - description: HTML file containing mapping results as a table and graphical representation + description: HTML file containing mapping results as a table and graphical + representation pattern: "*.html" - - fastq: - - meta: + ontologies: [] + fastq: + - - meta: type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + description: Groovy Map containing sample information - "*.fastq.gz": type: file - description: FastQ file containing reads that did not align to any database (optional) + description: FastQ file containing reads that did not align to any database + (optional) pattern: "*.fastq.gz" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3989 # GZIP format + versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + ontologies: + - edam: http://edamontology.org/format_3750 # YAML authors: - "@snesic" - "@JPejovicApis" diff --git a/modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap b/modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap index 2afffdea..042f3bb4 100644 --- a/modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap +++ b/modules/nf-core/fastqscreen/fastqscreen/tests/main.nf.test.snap @@ -124,9 +124,9 @@ } ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.9.2", + "nextflow": "24.10.5" }, - "timestamp": "2024-08-31T05:45:54.845041829" + "timestamp": "2025-03-25T08:38:33.98646086" } } \ No newline at end of file diff --git a/modules/nf-core/fastqscreen/fastqscreen/tests/tags.yml b/modules/nf-core/fastqscreen/fastqscreen/tests/tags.yml deleted file mode 100644 index b03bfb45..00000000 --- a/modules/nf-core/fastqscreen/fastqscreen/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -fastqscreen/fastqscreen: - - "modules/nf-core/fastqscreen/fastqscreen/**" diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index d430da5f..d02016a0 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.28 + - bioconda::multiqc=1.32 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index f3b57047..5d0780af 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.28--pyhdfd78af_0' : - 'biocontainers/multiqc:1.28--pyhdfd78af_0' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/8c/8c6c120d559d7ee04c7442b61ad7cf5a9e8970be5feefb37d68eeaa60c1034eb/data' : + 'community.wave.seqera.io/library/multiqc:1.32--d58f60e4deb769bf' }" input: path multiqc_files, stageAs: "?/*" @@ -52,6 +52,7 @@ process MULTIQC { stub: """ mkdir multiqc_data + touch multiqc_data/.stub mkdir multiqc_plots touch multiqc_report.html diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index b16c1879..ce30eb73 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.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index 26d74307..a88bafd6 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,b05075d2d2b4f485c0d627a5c8e475b2" + "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" ] ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.9.3", "nextflow": "24.10.4" }, - "timestamp": "2025-03-26T16:05:18.927925" + "timestamp": "2025-10-27T13:33:24.356715" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,b05075d2d2b4f485c0d627a5c8e475b2" + "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" ] ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.9.3", "nextflow": "24.10.4" }, - "timestamp": "2025-03-26T16:05:55.639955" + "timestamp": "2025-10-27T13:34:11.103619" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,b05075d2d2b4f485c0d627a5c8e475b2" + "versions.yml:md5,737bb2c7cad54ffc2ec020791dc48b8f" ] ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.9.3", "nextflow": "24.10.4" }, - "timestamp": "2025-03-26T16:05:44.067369" + "timestamp": "2025-10-27T13:34:04.615233" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/faidx/tests/main.nf.test b/modules/nf-core/samtools/faidx/tests/main.nf.test index 64219b7d..a505abc1 100644 --- a/modules/nf-core/samtools/faidx/tests/main.nf.test +++ b/modules/nf-core/samtools/faidx/tests/main.nf.test @@ -216,4 +216,4 @@ nextflow_process { } } -} \ No newline at end of file +} diff --git a/modules/nf-core/seqfu/stats/environment.yml b/modules/nf-core/seqfu/stats/environment.yml index 8fa07dfc..210e292b 100644 --- a/modules/nf-core/seqfu/stats/environment.yml +++ b/modules/nf-core/seqfu/stats/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::seqfu=1.20.3" + - bioconda::seqfu=1.22.3 diff --git a/modules/nf-core/seqfu/stats/main.nf b/modules/nf-core/seqfu/stats/main.nf index 0f8bb3e2..ced2451c 100644 --- a/modules/nf-core/seqfu/stats/main.nf +++ b/modules/nf-core/seqfu/stats/main.nf @@ -4,18 +4,17 @@ process SEQFU_STATS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/seqfu:1.20.3--h1eb128b_0': - 'biocontainers/seqfu:1.20.3--h1eb128b_0' }" - + 'https://depot.galaxyproject.org/singularity/seqfu:1.22.3--hfd12232_2': + 'biocontainers/seqfu:1.22.3--hfd12232_2' }" input: // stats can get one or more fasta or fastq files tuple val(meta), path(files) output: - tuple val(meta), path("*.tsv") , emit: stats + tuple val(meta), path("*.tsv") , emit: stats tuple val(meta), path("*_mqc.txt"), emit: multiqc - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -40,12 +39,14 @@ process SEQFU_STATS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ + echo $args + + touch ${prefix}.tsv touch ${prefix}_mqc.txt - seqfu stats ${prefix}_mqc.txt > ${prefix}.tsv cat <<-END_VERSIONS > versions.yml "${task.process}": - seqfu: \$(samtools --version |& sed '1!d ; s/samtools //') + seqfu: \$(seqfu version) END_VERSIONS """ } diff --git a/modules/nf-core/seqfu/stats/meta.yml b/modules/nf-core/seqfu/stats/meta.yml index f534a3f5..573498c5 100644 --- a/modules/nf-core/seqfu/stats/meta.yml +++ b/modules/nf-core/seqfu/stats/meta.yml @@ -27,10 +27,12 @@ input: type: file description: One or more FASTA or FASTQ files pattern: "*.{fasta,fastq,fasta.gz,fastq.gz,fq,fq.gz}" + ontologies: + - edam: http://edamontology.org/format_1930 # FASTQ output: #Only when we have meta - - stats: - - meta: + stats: + - - meta: type: map description: | Groovy Map containing sample information @@ -39,8 +41,10 @@ output: type: file description: Tab-separated output file with basic sequence statistics. pattern: "*.{tsv}" - - multiqc: - - meta: + ontologies: + - edam: http://edamontology.org/format_3475 # TSV + multiqc: + - - meta: type: map description: | Groovy Map containing sample information @@ -49,11 +53,14 @@ output: type: file description: MultiQC ready table pattern: "*.{_mqc.txt}" - - 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: - "@telatin" maintainers: diff --git a/modules/nf-core/seqfu/stats/tests/main.nf.test b/modules/nf-core/seqfu/stats/tests/main.nf.test index b889b2bb..3d13b05b 100644 --- a/modules/nf-core/seqfu/stats/tests/main.nf.test +++ b/modules/nf-core/seqfu/stats/tests/main.nf.test @@ -9,14 +9,13 @@ nextflow_process { tag "seqfu" tag "seqfu/stats" - test("seqfu stats - faa") { // test with 1 FAA file (with multiple sequences of different length) when { process { """ input[0] = [ - [ id:'test' ], + [ id:'test_faa' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/proteome.fasta', checkIfExists: true) ] """ @@ -26,12 +25,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert process.out.stats }, - { assert process.out.multiqc }, - { assert process.out.stats.size() == 1 }, - { assert snapshot(process.out.versions).match("versions-single") }, - { assert snapshot(process.out.stats).match("stats-single") }, - { assert path(process.out.stats.get(0).get(1)).md5 == "26141ef87ad8a6f59a6f283cc0a06fda" } + { assert snapshot(process.out).match() } ) } @@ -43,7 +37,7 @@ nextflow_process { process { """ input[0] = [ - [ id:'test' ], + [ id:'test_multiple' ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/proteome.fasta', checkIfExists: true), file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), @@ -58,15 +52,34 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert process.out.stats }, - { assert process.out.multiqc }, - { assert process.out.stats.size() == 1 }, - { assert path(process.out.versions[0]).readLines()[1].contains('.') }, - { assert snapshot(process.out.stats).match("stats-multi") }, - { assert snapshot(process.out.stats).md5().match("multi-lines") }, - { assert path(process.out.stats[0][1]).readLines()[0] == 'File\t#Seq\tTotal bp\tAvg\tN50\tN75\tN90\tauN\tMin\tMax' }, - { assert path(process.out.multiqc[0][1]).readLines().join('\n').contains('genome.fasta') }, - { assert path(process.out.multiqc[0][1]).readLines().join('\n').contains('proteome.fasta') } + { assert snapshot(process.out).match() } + ) + } + + } + + test("seqfu stats - faa - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test_stub' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/proteome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success}, + { assert snapshot( + process.out, + process.out.versions.collect{ path(it).yaml } + ).match() } ) } diff --git a/modules/nf-core/seqfu/stats/tests/main.nf.test.snap b/modules/nf-core/seqfu/stats/tests/main.nf.test.snap index 8049c827..30b16993 100644 --- a/modules/nf-core/seqfu/stats/tests/main.nf.test.snap +++ b/modules/nf-core/seqfu/stats/tests/main.nf.test.snap @@ -1,56 +1,156 @@ { - "versions-single": { + "seqfu stats - faa - stub": { "content": [ + { + "0": [ + [ + { + "id": "test_stub" + }, + "test_stub.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test_stub" + }, + "test_stub_mqc.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" + ], + "multiqc": [ + [ + { + "id": "test_stub" + }, + "test_stub_mqc.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "stats": [ + [ + { + "id": "test_stub" + }, + "test_stub.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" + ] + }, [ - "versions.yml:md5,fd11b4665f68f22e7ad4c646ad3c56cd" + { + "SEQFU_STATS": { + "seqfu": "1.22.3" + } + } ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-03-19T20:21:50.896221522" - }, - "multi-lines": { - "content": "d5ab14ce74939f856edc64c6a8d250d3", - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "25.04.6" }, - "timestamp": "2024-03-19T20:22:03.775940585" + "timestamp": "2025-09-24T12:51:50.35812127" }, - "stats-single": { + "seqfu stats - faa": { "content": [ - [ - [ - { - "id": "test" - }, - "test.tsv:md5,26141ef87ad8a6f59a6f283cc0a06fda" + { + "0": [ + [ + { + "id": "test_faa" + }, + "test_faa.tsv:md5,0d6bf2cc788f7828761440a1689cac04" + ] + ], + "1": [ + [ + { + "id": "test_faa" + }, + "test_faa_mqc.txt:md5,8f3c2edaf1ea5be912c9f99b21b2856c" + ] + ], + "2": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" + ], + "multiqc": [ + [ + { + "id": "test_faa" + }, + "test_faa_mqc.txt:md5,8f3c2edaf1ea5be912c9f99b21b2856c" + ] + ], + "stats": [ + [ + { + "id": "test_faa" + }, + "test_faa.tsv:md5,0d6bf2cc788f7828761440a1689cac04" + ] + ], + "versions": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "25.04.6" }, - "timestamp": "2024-03-19T20:21:50.937732021" + "timestamp": "2025-09-24T12:52:03.19664223" }, - "stats-multi": { + "seqfu stats - multiple files": { "content": [ - [ - [ - { - "id": "test" - }, - "test.tsv:md5,98102573ecf7e3b9e53db1c6e0f02b06" + { + "0": [ + [ + { + "id": "test_multiple" + }, + "test_multiple.tsv:md5,d016de3d84187a06c8e19b8dabccb3ae" + ] + ], + "1": [ + [ + { + "id": "test_multiple" + }, + "test_multiple_mqc.txt:md5,dbc6e762eebbf756cd0687807de60445" + ] + ], + "2": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" + ], + "multiqc": [ + [ + { + "id": "test_multiple" + }, + "test_multiple_mqc.txt:md5,dbc6e762eebbf756cd0687807de60445" + ] + ], + "stats": [ + [ + { + "id": "test_multiple" + }, + "test_multiple.tsv:md5,d016de3d84187a06c8e19b8dabccb3ae" + ] + ], + "versions": [ + "versions.yml:md5,7e7581ee4a87fd1f9969628ae050e689" ] - ] + } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.2", + "nextflow": "25.04.6" }, - "timestamp": "2024-03-19T20:22:03.681146614" + "timestamp": "2025-09-24T12:52:11.315174611" } } \ No newline at end of file diff --git a/modules/nf-core/seqfu/stats/tests/tags.yml b/modules/nf-core/seqfu/stats/tests/tags.yml deleted file mode 100644 index 2685ed43..00000000 --- a/modules/nf-core/seqfu/stats/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -seqfu/stats: - - "modules/nf-core/seqfu/stats/**" diff --git a/modules/nf-core/seqtk/sample/environment.yml b/modules/nf-core/seqtk/sample/environment.yml index 693aa5c1..b1d11cbd 100644 --- a/modules/nf-core/seqtk/sample/environment.yml +++ b/modules/nf-core/seqtk/sample/environment.yml @@ -1,3 +1,5 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json channels: - conda-forge - bioconda diff --git a/modules/nf-core/seqtk/sample/main.nf b/modules/nf-core/seqtk/sample/main.nf index ea9b839e..0c2aaeda 100644 --- a/modules/nf-core/seqtk/sample/main.nf +++ b/modules/nf-core/seqtk/sample/main.nf @@ -20,7 +20,7 @@ process SEQTK_SAMPLE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - if (!(args ==~ /.*-s[0-9]+.*/)) { + if (!(args ==~ /.*\ -s\ ?[0-9]+.*/)) { args += " -s100" } if ( !sample_size ) { diff --git a/modules/nf-core/seqtk/sample/meta.yml b/modules/nf-core/seqtk/sample/meta.yml index 42f67d8f..ed1f3325 100644 --- a/modules/nf-core/seqtk/sample/meta.yml +++ b/modules/nf-core/seqtk/sample/meta.yml @@ -23,12 +23,13 @@ input: type: file description: List of input FastQ files pattern: "*.{fastq.gz}" + ontologies: [] - sample_size: - type: integer - description: Number of reads to sample. + type: float + description: Fraction (<1.0) or number (>=1) of reads to sample. output: - - reads: - - meta: + reads: + - - meta: type: map description: | Groovy Map containing sample information @@ -37,11 +38,14 @@ output: type: file description: Subsampled FastQ files pattern: "*.{fastq.gz}" - - 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: - "@kaurravneet4123" - "@sidorov-si" diff --git a/modules/nf-core/seqtk/sample/tests/main.nf.test b/modules/nf-core/seqtk/sample/tests/main.nf.test index c121c9d9..2152ecd4 100644 --- a/modules/nf-core/seqtk/sample/tests/main.nf.test +++ b/modules/nf-core/seqtk/sample/tests/main.nf.test @@ -77,4 +77,26 @@ nextflow_process { } } + test("sarscov2_sample_singleend_frac") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + 0.5 + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + } diff --git a/modules/nf-core/seqtk/sample/tests/main.nf.test.snap b/modules/nf-core/seqtk/sample/tests/main.nf.test.snap index a9fec3c4..aa6991e6 100644 --- a/modules/nf-core/seqtk/sample/tests/main.nf.test.snap +++ b/modules/nf-core/seqtk/sample/tests/main.nf.test.snap @@ -91,5 +91,36 @@ } ], "timestamp": "2024-02-22T15:58:29.474491" + }, + "sarscov2_sample_singleend_frac": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.sampled_test_1.fastq.gz:md5,7552511dcd914f5183d80fae459bf917" + ] + ], + "1": [ + "versions.yml:md5,0529f2d163df9e2cd2ae8254dfb63806" + ], + "reads": [ + [ + { + "id": "test", + "single_end": true + }, + "test.sampled_test_1.fastq.gz:md5,7552511dcd914f5183d80fae459bf917" + ] + ], + "versions": [ + "versions.yml:md5,0529f2d163df9e2cd2ae8254dfb63806" + ] + } + ], + "timestamp": "2025-07-15T09:48:30.275951" } } \ No newline at end of file diff --git a/modules/nf-core/seqtk/sample/tests/standard.config b/modules/nf-core/seqtk/sample/tests/standard.config index b2dd4b9f..8d1db62f 100644 --- a/modules/nf-core/seqtk/sample/tests/standard.config +++ b/modules/nf-core/seqtk/sample/tests/standard.config @@ -3,4 +3,4 @@ process { ext.args = '-s100' ext.prefix = { "${meta.id}.sampled" } } -} \ No newline at end of file +} diff --git a/modules/nf-core/seqtk/sample/tests/tags.yml b/modules/nf-core/seqtk/sample/tests/tags.yml deleted file mode 100644 index e5d113b8..00000000 --- a/modules/nf-core/seqtk/sample/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -seqtk/sample: - - "modules/nf-core/seqtk/sample/**" diff --git a/nextflow.config b/nextflow.config index 90278496..6ce84baf 100644 --- a/nextflow.config +++ b/nextflow.config @@ -19,7 +19,7 @@ params { igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false sort_bam = true - + bwa_index = null // Fastqscreen options fastq_screen_references = "${projectDir}/assets/example_fastq_screen_references.csv" @@ -37,14 +37,16 @@ params { email_on_fail = null plaintext_email = false monochrome_logs = false - hook_url = null + hook_url = System.getenv('HOOK_URL') help = false help_full = false show_hidden = false version = false - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' - trace_report_suffix = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss')// Config options + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' + trace_report_suffix = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') + + // Config options config_profile_name = null config_profile_description = null @@ -97,7 +99,18 @@ profiles { apptainer.enabled = false docker.runOptions = '-u $(id -u):$(id -g)' } - arm { + arm64 { + process.arch = 'arm64' + // TODO https://github.com/nf-core/modules/issues/6694 + // For now if you're using arm64 you have to use wave for the sake of the maintainers + // wave profile + apptainer.ociAutoPull = true + singularity.ociAutoPull = true + wave.enabled = true + wave.freeze = true + wave.strategy = 'conda,container' + } + emulate_amd64 { docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { @@ -154,28 +167,24 @@ profiles { wave.freeze = true wave.strategy = 'conda,container' } - gitpod { - executor.name = 'local' - executor.cpus = 4 - executor.memory = 8.GB - process { - resourceLimits = [ - memory: 8.GB, - cpus : 4, - time : 1.h - ] - } + gpu { + docker.runOptions = '-u $(id -u):$(id -g) --gpus all' + apptainer.runOptions = '--nv' + singularity.runOptions = '--nv' } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } } -// Load nf-core custom profiles from different Institutions -includeConfig !System.getenv('NXF_OFFLINE') && params.custom_config_base ? "${params.custom_config_base}/nfcore_custom.config" : "/dev/null" +// Load nf-core custom profiles from different institutions + +// If params.custom_config_base is set AND either the NXF_OFFLINE environment variable is not set or params.custom_config_base is a local path, the nfcore_custom.config file from the specified base path is included. +// Load nf-core/seqinspector custom profiles from different institutions. +includeConfig params.custom_config_base && (!System.getenv('NXF_OFFLINE') || !params.custom_config_base.startsWith('http')) ? "${params.custom_config_base}/nfcore_custom.config" : "/dev/null" + // Load nf-core/seqinspector custom profiles from different institutions. -// TODO nf-core: Optionally, you can add a pipeline-specific nf-core config at https://github.com/nf-core/configs -// includeConfig !System.getenv('NXF_OFFLINE') && params.custom_config_base ? "${params.custom_config_base}/pipeline/seqinspector.config" : "/dev/null" +includeConfig params.custom_config_base && (!System.getenv('NXF_OFFLINE') || !params.custom_config_base.startsWith('http')) ? "${params.custom_config_base}/pipeline/seqinspector.config" : "/dev/null" // Set default registry for Apptainer, Docker, Podman, Charliecloud and Singularity independent of -profile // Will not be used unless Apptainer / Docker / Podman / Charliecloud / Singularity are enabled @@ -246,46 +255,19 @@ manifest { description = """Pipeline to QC your sequences""" mainScript = 'main.nf' defaultBranch = 'master' - nextflowVersion = '!>=24.04.2' + nextflowVersion = '!>=25.04.0' version = '1.0dev' doi = '' } // 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.5.1' // Validation of pipeline parameters and creation of an input channel from a sample sheet } validation { defaultIgnoreParams = ["genomes"] monochromeLogs = params.monochrome_logs - help { - enabled = true - command = "nextflow run nf-core/seqinspector -profile --input samplesheet.csv --outdir " - fullParameter = "help_full" - showHiddenParameter = "show_hidden" - beforeText = """ --\033[2m----------------------------------------------------\033[0m- - \033[0;32m,--.\033[0;30m/\033[0;32m,-.\033[0m -\033[0;34m ___ __ __ __ ___ \033[0;32m/,-._.--~\'\033[0m -\033[0;34m |\\ | |__ __ / ` / \\ |__) |__ \033[0;33m} {\033[0m -\033[0;34m | \\| | \\__, \\__/ | \\ |___ \033[0;32m\\`-._,-`-,\033[0m - \033[0;32m`._,._,\'\033[0m -\033[0;35m nf-core/seqinspector ${manifest.version}\033[0m --\033[2m----------------------------------------------------\033[0m- -""" - afterText = """${manifest.doi ? "\n* The pipeline\n" : ""}${manifest.doi.tokenize(",").collect { " https://doi.org/${it.trim().replace('https://doi.org/','')}"}.join("\n")}${manifest.doi ? "\n" : ""} -* The nf-core framework - https://doi.org/10.1038/s41587-020-0439-x - -* Software dependencies - https://github.com/nf-core/seqinspector/blob/master/CITATIONS.md -""" - } - summary { - beforeText = validation.help.beforeText - afterText = validation.help.afterText - } } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index 267afaa9..5d663de7 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -51,7 +51,7 @@ "skip_tools": { "type": "string", "description": "Comma-separated string of tools to skip", - "pattern": "^((fastqc|fastqscreen|seqfu_stats|seqtk_sample|bwamem2_index|bwamem2_mem)?,?)*(? **NB** If none provided, will be generated automatically from the FASTA reference. Combine with `--save_reference` to save for future runs.\n\nIf you use AWS iGenomes, this has already been set for you appropriately." } } }, @@ -214,7 +222,8 @@ "modules_testdata_base_path": { "type": "string", "description": "Base path / URL for data used in the modules", - "hidden": true + "hidden": true, + "default": "s3://ngi-igenomes/testdata/nf-core/modules/" }, "multiqc_config": { "type": "string", @@ -253,6 +262,18 @@ "fa_icon": "far calendar", "description": "Suffix to add to the trace report filename. Default is the date and time in the format yyyy-MM-dd_HH-mm-ss.", "hidden": true + }, + "help": { + "type": ["boolean", "string"], + "description": "Display the help message." + }, + "help_full": { + "type": "boolean", + "description": "Display the full detailed help message." + }, + "show_hidden": { + "type": "boolean", + "description": "Display hidden parameters in the help message (only works when --help or --help_full are provided)." } } } diff --git a/nf-test.config b/nf-test.config index 889df760..fa368ccb 100644 --- a/nf-test.config +++ b/nf-test.config @@ -9,7 +9,7 @@ config { configFile "tests/nextflow.config" // ignore tests coming from the nf-core/modules repo - ignore 'modules/nf-core/**/*', 'subworkflows/nf-core/**/*' + ignore 'modules/nf-core/**/tests/*', 'subworkflows/nf-core/**/tests/*' // run all test with defined profile(s) from the main nextflow.config profile "test" @@ -19,6 +19,6 @@ config { // load the necessary plugins plugins { - load "nft-utils@0.0.3" + load "nft-utils@0.0.7" } } diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 7b22e103..401821d3 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -22,8 +22,8 @@ "@id": "./", "@type": "Dataset", "creativeWorkStatus": "InProgress", - "datePublished": "2025-01-27T16:15:35+00:00", - "description": "

\n \n \n \"nf-core/seqinspector\"\n \n

\n\n[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/ci.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/ci.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqinspector/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/seqinspector/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\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/nextflow%20DSL2-%E2%89%A524.04.2-23aa62.svg)](https://www.nextflow.io/)\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/seqinspector)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![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/seqinspector** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\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\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/seqinspector \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\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\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqinspector/usage) and the [parameter documentation](https://nf-co.re/seqinspector/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/seqinspector/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/seqinspector/output).\n\n## Credits\n\nnf-core/seqinspector was originally written by Adrien Coulier.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\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 `#seqinspector` channel](https://nfcore.slack.com/channels/seqinspector) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\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-11-20T09:32:26+00:00", + "description": "

\n \n \n \"nf-core/seqinspector\"\n \n

\n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqinspector)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqinspector/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqinspector/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqinspector/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/seqinspector/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\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%A525.04.0-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.5.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.5.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/seqinspector)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqinspector-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqinspector)[![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/seqinspector** is a bioinformatics pipeline that ...\n\n\n\n\n1. Read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/))2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\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\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/seqinspector \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\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\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqinspector/usage) and the [parameter documentation](https://nf-co.re/seqinspector/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/seqinspector/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/seqinspector/output).\n\n## Credits\n\nnf-core/seqinspector was originally written by Adrien Coulier.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\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 `#seqinspector` channel](https://nfcore.slack.com/channels/seqinspector) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\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" @@ -99,7 +99,7 @@ }, "mentions": [ { - "@id": "#d25cadcb-fa1a-425e-8f2d-e5d85d309c29" + "@id": "#ac0a8bf0-7553-40cd-ac01-50ae6184f724" } ], "name": "nf-core/seqinspector" @@ -121,31 +121,56 @@ }, { "@id": "main.nf", - "@type": ["File", "SoftwareSourceCode", "ComputationalWorkflow"], + "@type": [ + "File", + "SoftwareSourceCode", + "ComputationalWorkflow" + ], "creator": [ { "@id": "https://orcid.org/0000-0003-2702-1103" + }, + { + "@id": "#max.u.garcia@gmail.com" + }, + { + "@id": "#89784800+kedhammar@users.noreply.github.com" + }, + { + "@id": "https://orcid.org/0000-0003-1675-0677" + }, + { + "@id": "https://orcid.org/0009-0004-5536-7210" } ], "dateCreated": "", - "dateModified": "2025-01-27T16:15:35Z", + "dateModified": "2025-11-20T09:32:26Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", - "keywords": ["nf-core", "nextflow", "genomics", "quality-control"], - "license": ["MIT"], - "maintainer": [ - { - "@id": "https://orcid.org/0000-0003-2702-1103" - } + "keywords": [ + "nf-core", + "nextflow", + "genomics", + "quality-control" + ], + "license": [ + "MIT" + ], + "name": [ + "nf-core/seqinspector" ], - "name": ["nf-core/seqinspector"], "programmingLanguage": { "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow" }, "sdPublisher": { "@id": "https://nf-co.re/" }, - "url": ["https://github.com/nf-core/seqinspector", "https://nf-co.re/seqinspector/dev/"], - "version": ["1.0dev"] + "url": [ + "https://github.com/nf-core/seqinspector", + "https://nf-co.re/seqinspector/dev/" + ], + "version": [ + "1.0dev" + ] }, { "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow", @@ -157,14 +182,14 @@ "url": { "@id": "https://www.nextflow.io/" }, - "version": "!>=24.04.2" + "version": "!>=25.04.0" }, { - "@id": "#d25cadcb-fa1a-425e-8f2d-e5d85d309c29", + "@id": "#ac0a8bf0-7553-40cd-ac01-50ae6184f724", "@type": "TestSuite", "instance": [ { - "@id": "#ec706afc-83c1-4f5f-bb83-661e72cacb33" + "@id": "#6e9e5864-2ba6-4edc-8e26-0abfa747f70c" } ], "mainEntity": { @@ -173,10 +198,10 @@ "name": "Test suite for nf-core/seqinspector" }, { - "@id": "#ec706afc-83c1-4f5f-bb83-661e72cacb33", + "@id": "#6e9e5864-2ba6-4edc-8e26-0abfa747f70c", "@type": "TestInstance", "name": "GitHub Actions workflow for testing nf-core/seqinspector", - "resource": "repos/nf-core/seqinspector/actions/workflows/ci.yml", + "resource": "repos/nf-core/seqinspector/actions/workflows/nf-test.yml", "runsOn": { "@id": "https://w3id.org/ro/terms/test#GithubService" }, @@ -306,6 +331,30 @@ "@type": "Person", "email": "adrien.coulier@medsci.uu.se", "name": "Adrien Coulier" + }, + { + "@id": "#max.u.garcia@gmail.com", + "@type": "Person", + "email": "max.u.garcia@gmail.com", + "name": "Maxime U Garcia" + }, + { + "@id": "#89784800+kedhammar@users.noreply.github.com", + "@type": "Person", + "email": "89784800+kedhammar@users.noreply.github.com", + "name": "Alfred Kedhammar" + }, + { + "@id": "https://orcid.org/0000-0003-1675-0677", + "@type": "Person", + "email": "mahesh.binzer-panchal@nbis.se", + "name": "Mahesh Binzer-Panchal" + }, + { + "@id": "https://orcid.org/0009-0004-5536-7210", + "@type": "Person", + "email": "agrimabhatt@n141-p117.eduroam.kth.se", + "name": "Agrima Bhatt" } ] -} +} \ No newline at end of file diff --git a/subworkflows/local/utils_nfcore_seqinspector_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqinspector_pipeline/main.nf index 36b1860f..81c645a0 100644 --- a/subworkflows/local/utils_nfcore_seqinspector_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqinspector_pipeline/main.nf @@ -11,6 +11,7 @@ include { UTILS_NFSCHEMA_PLUGIN } from '../../nf-core/utils_nfschema_plugin' include { paramsSummaryMap } from 'plugin/nf-schema' include { samplesheetToList } from 'plugin/nf-schema' +include { paramsHelp } from 'plugin/nf-schema' include { completionEmail } from '../../nf-core/utils_nfcore_pipeline' include { completionSummary } from '../../nf-core/utils_nfcore_pipeline' include { imNotification } from '../../nf-core/utils_nfcore_pipeline' @@ -32,10 +33,13 @@ workflow PIPELINE_INITIALISATION { nextflow_cli_args // array: List of positional nextflow CLI args outdir // string: The output directory where the results will be saved input // string: Path to input samplesheet + help // boolean: Display help message and exit + help_full // boolean: Show the full help message + show_hidden // boolean: Show hidden parameters in the help message main: - ch_versions = Channel.empty() + ch_versions = channel.empty() // // Print version and exit if required and dump pipeline parameters to JSON file @@ -50,10 +54,35 @@ workflow PIPELINE_INITIALISATION { // // Validate parameters and generate parameter summary to stdout // + before_text = """ +-\033[2m----------------------------------------------------\033[0m- + \033[0;32m,--.\033[0;30m/\033[0;32m,-.\033[0m +\033[0;34m ___ __ __ __ ___ \033[0;32m/,-._.--~\'\033[0m +\033[0;34m |\\ | |__ __ / ` / \\ |__) |__ \033[0;33m} {\033[0m +\033[0;34m | \\| | \\__, \\__/ | \\ |___ \033[0;32m\\`-._,-`-,\033[0m + \033[0;32m`._,._,\'\033[0m +\033[0;35m nf-core/seqinspector ${workflow.manifest.version}\033[0m +-\033[2m----------------------------------------------------\033[0m- +""" + after_text = """${workflow.manifest.doi ? "\n* The pipeline\n" : ""}${workflow.manifest.doi.tokenize(",").collect { doi -> " https://doi.org/${doi.trim().replace('https://doi.org/','')}"}.join("\n")}${workflow.manifest.doi ? "\n" : ""} +* The nf-core framework + https://doi.org/10.1038/s41587-020-0439-x + +* Software dependencies + https://github.com/nf-core/seqinspector/blob/master/CITATIONS.md +""" + command = "nextflow run ${workflow.manifest.name} -profile --input samplesheet.csv --outdir " + UTILS_NFSCHEMA_PLUGIN ( workflow, validate_params, - null + null, + help, + help_full, + show_hidden, + before_text, + after_text, + command ) // @@ -72,7 +101,7 @@ workflow PIPELINE_INITIALISATION { // Create channel from input file provided through params.input // - Channel + channel .fromList(samplesheetToList(params.input, "${projectDir}/assets/schema_input.json")) .toList() .flatMap { it.withIndex().collect { entry, idx -> entry + "${idx+1}" } } @@ -274,4 +303,3 @@ def methodsDescriptionText(mqc_methods_yaml) { return description_html.toString() } - diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml deleted file mode 100644 index f8476112..00000000 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nextflow_pipeline: - - subworkflows/nf-core/utils_nextflow_pipeline/** diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index bfd25876..2f30e9a4 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -98,7 +98,7 @@ def workflowVersionToYAML() { // Get channel of software versions used in pipeline in YAML format // def softwareVersionsToYAML(ch_versions) { - return ch_versions.unique().map { version -> processVersionsFromYAML(version) }.unique().mix(Channel.of(workflowVersionToYAML())) + return ch_versions.unique().map { version -> processVersionsFromYAML(version) }.unique().mix(channel.of(workflowVersionToYAML())) } // diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml deleted file mode 100644 index ac8523c9..00000000 --- a/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -subworkflows/utils_nfcore_pipeline: - - subworkflows/nf-core/utils_nfcore_pipeline/** diff --git a/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/subworkflows/nf-core/utils_nfschema_plugin/main.nf index 4994303e..ee4738c8 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfschema_plugin/main.nf @@ -4,6 +4,7 @@ include { paramsSummaryLog } from 'plugin/nf-schema' include { validateParameters } from 'plugin/nf-schema' +include { paramsHelp } from 'plugin/nf-schema' workflow UTILS_NFSCHEMA_PLUGIN { @@ -15,29 +16,56 @@ workflow UTILS_NFSCHEMA_PLUGIN { // when this input is empty it will automatically use the configured schema or // "${projectDir}/nextflow_schema.json" as default. This input should not be empty // for meta pipelines + help // boolean: show help message + help_full // boolean: show full help message + show_hidden // boolean: show hidden parameters in help message + before_text // string: text to show before the help message and parameters summary + after_text // string: text to show after the help message and parameters summary + command // string: an example command of the pipeline main: + if(help || help_full) { + help_options = [ + beforeText: before_text, + afterText: after_text, + command: command, + showHidden: show_hidden, + fullHelp: help_full, + ] + if(parameters_schema) { + help_options << [parametersSchema: parameters_schema] + } + log.info paramsHelp( + help_options, + params.help instanceof String ? params.help : "", + ) + exit 0 + } + // // Print parameter summary to stdout. This will display the parameters // that differ from the default given in the JSON schema // + + summary_options = [:] if(parameters_schema) { - log.info paramsSummaryLog(input_workflow, parameters_schema:parameters_schema) - } else { - log.info paramsSummaryLog(input_workflow) + summary_options << [parametersSchema: parameters_schema] } + log.info before_text + log.info paramsSummaryLog(summary_options, input_workflow) + log.info after_text // // Validate the parameters using nextflow_schema.json or the schema // given via the validation.parametersSchema configuration option // if(validate_params) { + validateOptions = [:] if(parameters_schema) { - validateParameters(parameters_schema:parameters_schema) - } else { - validateParameters() + validateOptions << [parametersSchema: parameters_schema] } + validateParameters(validateOptions) } emit: diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test index 8fb30164..c977917a 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test @@ -25,6 +25,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -51,6 +57,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -77,6 +89,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -103,6 +121,12 @@ nextflow_workflow { input[0] = workflow input[1] = validate_params input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = false + input[4] = false + input[5] = false + input[6] = "" + input[7] = "" + input[8] = "" """ } } @@ -114,4 +138,36 @@ nextflow_workflow { ) } } + + test("Should create a help message") { + + when { + + params { + test_data = '' + outdir = null + } + + workflow { + """ + validate_params = true + input[0] = workflow + input[1] = validate_params + input[2] = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" + input[3] = true + input[4] = false + input[5] = false + input[6] = "Before" + input[7] = "After" + input[8] = "nextflow run test/test" + """ + } + } + + then { + assertAll( + { assert workflow.success } + ) + } + } } diff --git a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config index 0907ac58..8d8c7371 100644 --- a/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config @@ -1,8 +1,8 @@ plugins { - id "nf-schema@2.1.0" + id "nf-schema@2.5.1" } validation { parametersSchema = "${projectDir}/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json" monochromeLogs = true -} \ No newline at end of file +} diff --git a/tests/.nftignore b/tests/.nftignore index 46980e70..ee3b4013 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -1,12 +1,21 @@ +.DS_Store +fastqc/*_fastqc.{html,zip} +fastqscreen/*_screen.html +multiqc/{global_report,group_reports/*}/multiqc_data/fastqc_top_overrepresented_sequences_table.txt +multiqc/{global_report,group_reports/*}/multiqc_data/llms-full.txt multiqc/{global_report,group_reports/*}/multiqc_data/multiqc.log +multiqc/{global_report,group_reports/*}/multiqc_data/multiqc.parquet multiqc/{global_report,group_reports/*}/multiqc_data/multiqc_data.json multiqc/{global_report,group_reports/*}/multiqc_data/multiqc_general_stats.txt multiqc/{global_report,group_reports/*}/multiqc_data/multiqc_software_versions.txt multiqc/{global_report,group_reports/*}/multiqc_data/multiqc_sources.txt -multiqc/{global_report,group_reports/*}/multiqc_data/fastqc_top_overrepresented_sequences_table.txt multiqc/{global_report,group_reports/*}/multiqc_plots/{svg,pdf,png}/*.{svg,pdf,png} multiqc/{global_report,group_reports/*}/multiqc_report.html +picard_collectmultiplemetrics/*.pdf +picard_collectmultiplemetrics/*_metrics +picard_collectmultiplemetrics/alignment_summary_metrics +picard_collectmultiplemetrics/base_distribution_by_cycle_metrics +picard_collectmultiplemetrics/quality_by_cycle_metrics +picard_collectmultiplemetrics/quality_distribution_metrics +picard_collectmultiplemetrics/*_summary_metrics pipeline_info/*.{html,json,txt,yml} -fastqscreen/*_screen.html -fastqc/*_fastqc.html -fastqc/*_fastqc.zip diff --git a/tests/MiSeq.main.nf.test b/tests/MiSeq.main.nf.test index 4cf42243..43ba4c75 100644 --- a/tests/MiSeq.main.nf.test +++ b/tests/MiSeq.main.nf.test @@ -28,8 +28,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path @@ -64,8 +62,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path @@ -100,8 +96,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path diff --git a/tests/MiSeq.main.nf.test.snap b/tests/MiSeq.main.nf.test.snap index a7f1637e..bb666659 100644 --- a/tests/MiSeq.main.nf.test.snap +++ b/tests/MiSeq.main.nf.test.snap @@ -1,7 +1,6 @@ { "Miseq data test (skip all tools)": { "content": [ - 1, { "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -11,7 +10,9 @@ "multiqc", "multiqc/global_report", "multiqc/global_report/multiqc_data", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", @@ -25,21 +26,20 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T11:56:38.220604962" + "timestamp": "2025-11-07T10:48:01.699825922" }, "MiSeq data test (single end reads)": { "content": [ - 6, { "BWAMEM2_INDEX": { "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { "bwamem2": "2.2.1", - "samtools": 1.21 + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -47,8 +47,17 @@ "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" }, + "PICARD_COLLECTMULTIPLEMETRICS": { + "picard": "3.4.0" + }, + "SAMTOOLS_FAIDX": { + "samtools": "1.22.1" + }, + "SAMTOOLS_INDEX": { + "samtools": "1.22.1" + }, "SEQFU_STATS": { - "seqfu": "1.20.3" + "seqfu": "1.22.3" }, "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -64,6 +73,7 @@ "bwamem2_index/bwamem2/genome.fa.pac", "bwamem2_mem", "bwamem2_mem/SAMPLE_SINGLE_END_1.bam", + "bwamem2_mem/SAMPLE_SINGLE_END_1.bam.bai", "fastqc", "fastqc/SAMPLE_SINGLE_END_1_fastqc.html", "fastqc/SAMPLE_SINGLE_END_1_fastqc.zip", @@ -85,20 +95,38 @@ "multiqc/global_report/multiqc_data/fastqc_sequence_counts_plot.txt", "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/global_report/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", "multiqc/global_report/multiqc_data/multiqc_fastqc.txt", "multiqc/global_report/multiqc_data/multiqc_general_stats.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_data/multiqc_seqfu.txt", "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_plots", "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -109,12 +137,20 @@ "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/global_report/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -125,12 +161,20 @@ "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/global_report/multiqc_plots/png/general_stats_table.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/global_report/multiqc_plots/png/seqfu.png", "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -141,11 +185,32 @@ "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/global_report/multiqc_plots/svg/general_stats_table.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/global_report/multiqc_plots/svg/seqfu.svg", "multiqc/global_report/multiqc_report.html", + "picard_collectmultiplemetrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.read_length_histogram.pdf", "pipeline_info", "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", + "samtools_faidx", + "samtools_faidx/genome.fa.fai", + "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_SINGLE_END_1_seqfu.tsv", "seqfu_stats/SAMPLE_SINGLE_END_1_seqfu_mqc.txt" @@ -156,7 +221,8 @@ "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "SAMPLE_SINGLE_END_1.bam:md5,79744f146752fd486b09604be721cc85", + "SAMPLE_SINGLE_END_1.bam:md5,ff8893272a6560cac7067fd8a9406f9b", + "SAMPLE_SINGLE_END_1.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", "SAMPLE_SINGLE_END_1_screen.png:md5,ad98ae0f39335aede67e0a233cf16616", "SAMPLE_SINGLE_END_1_screen.txt:md5,588b1b1f2d307fae7272ab0819e4bac5", "fastq_screen_plot.txt:md5,8393eabda6ebac90ff00533f9562271f", @@ -172,33 +238,60 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,bd50a8641c6481cc497fc6e3e9af2607", "multiqc_fastqc.txt:md5,7b1b7fd457b60404768045b148d4c0a8", - "multiqc_seqfu.txt:md5,8e6989a2392f599a09a5c3edf8119702", - "SAMPLE_SINGLE_END_1_seqfu.tsv:md5,f65c868e562291647d539090698ba5eb", - "SAMPLE_SINGLE_END_1_seqfu_mqc.txt:md5,1de529f1e2cbd4df0945cb08a24d6d39" + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,fe082d3b5dcc3d338e25bc027e17dc99", + "multiqc_picard_baseContent.txt:md5,796e8e0803ad3ed4fd1c76f073784942", + "multiqc_picard_quality_by_cycle.txt:md5,d1e7814f9a612561dcbeafb9d8c887f1", + "multiqc_picard_quality_score_distribution.txt:md5,bad70b98811c4cbe4728f53334993703", + "multiqc_seqfu.txt:md5,7ec63bc3465b3fc8e316e2443ec4c848", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,d1e7814f9a612561dcbeafb9d8c887f1", + "picard_QualityScoreDistribution_histogram.txt:md5,bad70b98811c4cbe4728f53334993703", + "picard_alignment_readlength_plot.txt:md5,0fe7e17f1c58b7a6291bc1ff80fdfaa0", + "picard_alignment_summary.txt:md5,c770d3ee98dadaee77ef43967a974627", + "picard_base_distribution_by_cycle__Adenine.txt:md5,65d43b083e90830aa9451bde65a261b8", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,31dc4f314d8e3f8e086e7ae761638023", + "picard_base_distribution_by_cycle__Guanine.txt:md5,d92fac15687942c0f9c436ba0cf55fc9", + "picard_base_distribution_by_cycle__Thymine.txt:md5,00b76f45bbfc9acd2774f90612e53333", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,5451af67007a16e7645d0393011414af", + "picard_quality_by_cycle.txt:md5,46fbe44a9788f2e9184e2c1d689c2876", + "picard_quality_score_distribution.txt:md5,154ee2704c7adad6b26877da26fe6b77", + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", + "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", + "SAMPLE_SINGLE_END_1_seqfu.tsv:md5,33a9e44386f308d43881a58394b6b17c", + "SAMPLE_SINGLE_END_1_seqfu_mqc.txt:md5,e67e819605ab49182aacf1d676dc885d" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T11:55:41.808238633" + "timestamp": "2025-11-07T11:14:40.189991111" }, "Miseq data test (skip fastqc)": { "content": [ - 5, { "BWAMEM2_INDEX": { "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { "bwamem2": "2.2.1", - "samtools": 1.21 + "samtools": "1.22.1" }, "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" }, + "PICARD_COLLECTMULTIPLEMETRICS": { + "picard": "3.4.0" + }, + "SAMTOOLS_FAIDX": { + "samtools": "1.22.1" + }, + "SAMTOOLS_INDEX": { + "samtools": "1.22.1" + }, "SEQFU_STATS": { - "seqfu": "1.20.3" + "seqfu": "1.22.3" }, "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -214,6 +307,7 @@ "bwamem2_index/bwamem2/genome.fa.pac", "bwamem2_mem", "bwamem2_mem/SAMPLE_SINGLE_END_1.bam", + "bwamem2_mem/SAMPLE_SINGLE_END_1.bam.bai", "fastqscreen", "fastqscreen/SAMPLE_SINGLE_END_1_screen.html", "fastqscreen/SAMPLE_SINGLE_END_1_screen.png", @@ -222,29 +316,90 @@ "multiqc/global_report", "multiqc/global_report/multiqc_data", "multiqc/global_report/multiqc_data/fastq_screen_plot.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_data/multiqc_seqfu.txt", "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_plots", "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/global_report/multiqc_plots/png/seqfu.png", "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/global_report/multiqc_plots/svg/seqfu.svg", "multiqc/global_report/multiqc_report.html", + "picard_collectmultiplemetrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SAMPLE_SINGLE_END_1.CollectMultipleMetrics.read_length_histogram.pdf", "pipeline_info", "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", + "samtools_faidx", + "samtools_faidx/genome.fa.fai", + "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_SINGLE_END_1_seqfu.tsv", "seqfu_stats/SAMPLE_SINGLE_END_1_seqfu_mqc.txt" @@ -255,21 +410,41 @@ "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "SAMPLE_SINGLE_END_1.bam:md5,79744f146752fd486b09604be721cc85", + "SAMPLE_SINGLE_END_1.bam:md5,ff8893272a6560cac7067fd8a9406f9b", + "SAMPLE_SINGLE_END_1.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", "SAMPLE_SINGLE_END_1_screen.png:md5,ad98ae0f39335aede67e0a233cf16616", "SAMPLE_SINGLE_END_1_screen.txt:md5,588b1b1f2d307fae7272ab0819e4bac5", "fastq_screen_plot.txt:md5,8393eabda6ebac90ff00533f9562271f", "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,bd50a8641c6481cc497fc6e3e9af2607", - "multiqc_seqfu.txt:md5,8e6989a2392f599a09a5c3edf8119702", - "SAMPLE_SINGLE_END_1_seqfu.tsv:md5,f65c868e562291647d539090698ba5eb", - "SAMPLE_SINGLE_END_1_seqfu_mqc.txt:md5,1de529f1e2cbd4df0945cb08a24d6d39" + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,fe082d3b5dcc3d338e25bc027e17dc99", + "multiqc_picard_baseContent.txt:md5,796e8e0803ad3ed4fd1c76f073784942", + "multiqc_picard_quality_by_cycle.txt:md5,d1e7814f9a612561dcbeafb9d8c887f1", + "multiqc_picard_quality_score_distribution.txt:md5,bad70b98811c4cbe4728f53334993703", + "multiqc_seqfu.txt:md5,7ec63bc3465b3fc8e316e2443ec4c848", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,d1e7814f9a612561dcbeafb9d8c887f1", + "picard_QualityScoreDistribution_histogram.txt:md5,bad70b98811c4cbe4728f53334993703", + "picard_alignment_readlength_plot.txt:md5,0fe7e17f1c58b7a6291bc1ff80fdfaa0", + "picard_alignment_summary.txt:md5,c770d3ee98dadaee77ef43967a974627", + "picard_base_distribution_by_cycle__Adenine.txt:md5,65d43b083e90830aa9451bde65a261b8", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,31dc4f314d8e3f8e086e7ae761638023", + "picard_base_distribution_by_cycle__Guanine.txt:md5,d92fac15687942c0f9c436ba0cf55fc9", + "picard_base_distribution_by_cycle__Thymine.txt:md5,00b76f45bbfc9acd2774f90612e53333", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,5451af67007a16e7645d0393011414af", + "picard_quality_by_cycle.txt:md5,46fbe44a9788f2e9184e2c1d689c2876", + "picard_quality_score_distribution.txt:md5,154ee2704c7adad6b26877da26fe6b77", + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", + "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", + "SAMPLE_SINGLE_END_1_seqfu.tsv:md5,33a9e44386f308d43881a58394b6b17c", + "SAMPLE_SINGLE_END_1_seqfu_mqc.txt:md5,e67e819605ab49182aacf1d676dc885d" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T11:56:20.313008405" + "timestamp": "2025-11-07T11:15:17.347135189" } } \ No newline at end of file diff --git a/tests/MiSeq_PairedEnd.main.nf.test b/tests/MiSeq_PairedEnd.main.nf.test index 92807e95..04655713 100644 --- a/tests/MiSeq_PairedEnd.main.nf.test +++ b/tests/MiSeq_PairedEnd.main.nf.test @@ -28,8 +28,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path diff --git a/tests/MiSeq_PairedEnd.main.nf.test.snap b/tests/MiSeq_PairedEnd.main.nf.test.snap index a9ab4015..3e0a637a 100644 --- a/tests/MiSeq_PairedEnd.main.nf.test.snap +++ b/tests/MiSeq_PairedEnd.main.nf.test.snap @@ -1,14 +1,13 @@ { "MiSeq data test (paired end reads)": { "content": [ - 11, { "BWAMEM2_INDEX": { "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { "bwamem2": "2.2.1", - "samtools": 1.21 + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -16,8 +15,17 @@ "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" }, + "PICARD_COLLECTMULTIPLEMETRICS": { + "picard": "3.4.0" + }, + "SAMTOOLS_FAIDX": { + "samtools": "1.22.1" + }, + "SAMTOOLS_INDEX": { + "samtools": "1.22.1" + }, "SEQFU_STATS": { - "seqfu": "1.20.3" + "seqfu": "1.22.3" }, "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -33,7 +41,9 @@ "bwamem2_index/bwamem2/genome.fa.pac", "bwamem2_mem", "bwamem2_mem/SAMPLE_PAIRED_END_1_1.bam", + "bwamem2_mem/SAMPLE_PAIRED_END_1_1.bam.bai", "bwamem2_mem/SAMPLE_PAIRED_END_2_2.bam", + "bwamem2_mem/SAMPLE_PAIRED_END_2_2.bam.bai", "fastqc", "fastqc/SAMPLE_PAIRED_END_1_1_1_fastqc.html", "fastqc/SAMPLE_PAIRED_END_1_1_1_fastqc.zip", @@ -69,20 +79,39 @@ "multiqc/global_report/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", "multiqc/global_report/multiqc_data/fastqc_sequence_counts_plot.txt", "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", "multiqc/global_report/multiqc_data/multiqc_fastqc.txt", "multiqc/global_report/multiqc_data/multiqc_general_stats.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_data/multiqc_seqfu.txt", "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary_Aligned_Bases.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary_Aligned_Reads.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_plots", "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -92,12 +121,22 @@ "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/global_report/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary_Aligned_Bases-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary_Aligned_Bases-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary_Aligned_Reads-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary_Aligned_Reads-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -107,12 +146,22 @@ "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/global_report/multiqc_plots/png/general_stats_table.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary_Aligned_Bases-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary_Aligned_Bases-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary_Aligned_Reads-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary_Aligned_Reads-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/global_report/multiqc_plots/png/seqfu.png", "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -122,7 +171,18 @@ "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/global_report/multiqc_plots/svg/general_stats_table.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary_Aligned_Bases-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary_Aligned_Bases-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary_Aligned_Reads-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary_Aligned_Reads-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/global_report/multiqc_plots/svg/seqfu.svg", "multiqc/global_report/multiqc_report.html", "multiqc/group_reports", @@ -138,20 +198,39 @@ "multiqc/group_reports/Bpacificus/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", "multiqc/group_reports/Bpacificus/multiqc_data/fastqc_sequence_counts_plot.txt", "multiqc/group_reports/Bpacificus/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/llms-full.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc.log", + "multiqc/group_reports/Bpacificus/multiqc_data/multiqc.parquet", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_citations.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_data.json", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_fastq_screen.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_fastqc.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_seqfu.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_software_versions.txt", "multiqc/group_reports/Bpacificus/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_alignment_summary_Aligned_Bases.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_alignment_summary_Aligned_Reads.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/Bpacificus/multiqc_data/picard_quality_score_distribution.txt", "multiqc/group_reports/Bpacificus/multiqc_plots", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -161,12 +240,22 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", - "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_alignment_summary_Aligned_Bases-cnt.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_alignment_summary_Aligned_Bases-pct.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_alignment_summary_Aligned_Reads-cnt.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_alignment_summary_Aligned_Reads-pct.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/pdf/seqfu.pdf", "multiqc/group_reports/Bpacificus/multiqc_plots/png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -176,12 +265,22 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", - "multiqc/group_reports/Bpacificus/multiqc_plots/png/general_stats_table.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_alignment_summary_Aligned_Bases-cnt.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_alignment_summary_Aligned_Bases-pct.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_alignment_summary_Aligned_Reads-cnt.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_alignment_summary_Aligned_Reads-pct.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/Bpacificus/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/group_reports/Bpacificus/multiqc_plots/png/seqfu.png", "multiqc/group_reports/Bpacificus/multiqc_plots/svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -191,11 +290,42 @@ "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", - "multiqc/group_reports/Bpacificus/multiqc_plots/svg/general_stats_table.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_alignment_summary_Aligned_Bases-cnt.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_alignment_summary_Aligned_Bases-pct.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_alignment_summary_Aligned_Reads-cnt.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_alignment_summary_Aligned_Reads-pct.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/Bpacificus/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/group_reports/Bpacificus/multiqc_plots/svg/seqfu.svg", "multiqc/group_reports/Bpacificus/multiqc_report.html", + "picard_collectmultiplemetrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_1_1.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SAMPLE_PAIRED_END_2_2.CollectMultipleMetrics.read_length_histogram.pdf", "pipeline_info", "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", + "samtools_faidx", + "samtools_faidx/genome.fa.fai", + "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/SAMPLE_PAIRED_END_1_1_seqfu.tsv", "seqfu_stats/SAMPLE_PAIRED_END_1_1_seqfu_mqc.txt", @@ -208,8 +338,10 @@ "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "SAMPLE_PAIRED_END_1_1.bam:md5,ced6a17fb3dee760c2606860e1177071", - "SAMPLE_PAIRED_END_2_2.bam:md5,15ada2a4f4a6cf2978aeaeb64a525197", + "SAMPLE_PAIRED_END_1_1.bam:md5,44c0ef738b73e26f67ded45ca4cb9e5b", + "SAMPLE_PAIRED_END_1_1.bam.bai:md5,82724835c47f8e1d1a86e13ef469b464", + "SAMPLE_PAIRED_END_2_2.bam:md5,9e20db3f3088fc478c223839e3a4ed62", + "SAMPLE_PAIRED_END_2_2.bam.bai:md5,3c4bdff0f906f2234fdeee8eea719210", "SAMPLE_PAIRED_END_1_1_1_screen.png:md5,f52ddd0e65f23f68dd8d58d5453417db", "SAMPLE_PAIRED_END_1_1_1_screen.txt:md5,921b08eeb461a2aa1bd42bba53900f70", "SAMPLE_PAIRED_END_1_1_2_screen.png:md5,908f4fceea8aa546106efdaa7ca78f7d", @@ -231,7 +363,25 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,5ef00028497d3271c9f0ea9a961db1e5", "multiqc_fastqc.txt:md5,bc499ad273fd1c887056c31b82544984", - "multiqc_seqfu.txt:md5,1f1e063e4a509a26cee167c3b20389c0", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,35d289ee535a0442db72a65391f375eb", + "multiqc_picard_baseContent.txt:md5,72b0ae83ed58052bfd768021d377c78f", + "multiqc_picard_quality_by_cycle.txt:md5,f6514f14befb874ded5aed79caba3e7b", + "multiqc_picard_quality_score_distribution.txt:md5,99be409e325619171b820d762dd023c0", + "multiqc_seqfu.txt:md5,139354afd154804b4b77f997277f3ee9", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,f6514f14befb874ded5aed79caba3e7b", + "picard_QualityScoreDistribution_histogram.txt:md5,99be409e325619171b820d762dd023c0", + "picard_alignment_readlength_plot.txt:md5,4172702f791d043135f21e3a227fe712", + "picard_alignment_summary_Aligned_Bases.txt:md5,a166c14210e17d3541482b500443f792", + "picard_alignment_summary_Aligned_Reads.txt:md5,c5e5228e85ffb2182274d641ffa6743f", + "picard_base_distribution_by_cycle__Adenine.txt:md5,3fe18f1144eb85f9206d1bee4eb11bb3", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,2e1383b692e76f4b915ccbe9bb9b9170", + "picard_base_distribution_by_cycle__Guanine.txt:md5,2a595bc9ac547f3b5224a57a6b0a127d", + "picard_base_distribution_by_cycle__Thymine.txt:md5,157ea873dd2faff46efdd62f7f6aa84c", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,98f4e5ed094b41eb131d493b4f06bcd6", + "picard_quality_by_cycle.txt:md5,2634f306a33f648bac74bc7cd3253f9e", + "picard_quality_score_distribution.txt:md5,ecde9f0e859a6eecc5cea75a156c632d", "fastq_screen_plot.txt:md5,642264b93871c724aaa5d38b91c752dd", "fastqc-status-check-heatmap.txt:md5,8e29ad6b23e03267c33bd9ed3385a44b", "fastqc_adapter_content_plot.txt:md5,46fbd727a4996a3f0310d0423c628445", @@ -245,17 +395,37 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,5ef00028497d3271c9f0ea9a961db1e5", "multiqc_fastqc.txt:md5,bc499ad273fd1c887056c31b82544984", - "multiqc_seqfu.txt:md5,1f1e063e4a509a26cee167c3b20389c0", - "SAMPLE_PAIRED_END_1_1_seqfu.tsv:md5,bbd911ff3fa43212dfd4c5a5872dbdb6", - "SAMPLE_PAIRED_END_1_1_seqfu_mqc.txt:md5,cd60f746b6749cc66213d031af1b931c", - "SAMPLE_PAIRED_END_2_2_seqfu.tsv:md5,152566a128dd657da33465b4966b5799", - "SAMPLE_PAIRED_END_2_2_seqfu_mqc.txt:md5,8a3296956e094e3a95e28431e6009c40" + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,35d289ee535a0442db72a65391f375eb", + "multiqc_picard_baseContent.txt:md5,72b0ae83ed58052bfd768021d377c78f", + "multiqc_picard_quality_by_cycle.txt:md5,f6514f14befb874ded5aed79caba3e7b", + "multiqc_picard_quality_score_distribution.txt:md5,99be409e325619171b820d762dd023c0", + "multiqc_seqfu.txt:md5,139354afd154804b4b77f997277f3ee9", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,f6514f14befb874ded5aed79caba3e7b", + "picard_QualityScoreDistribution_histogram.txt:md5,99be409e325619171b820d762dd023c0", + "picard_alignment_readlength_plot.txt:md5,4172702f791d043135f21e3a227fe712", + "picard_alignment_summary_Aligned_Bases.txt:md5,a166c14210e17d3541482b500443f792", + "picard_alignment_summary_Aligned_Reads.txt:md5,c5e5228e85ffb2182274d641ffa6743f", + "picard_base_distribution_by_cycle__Adenine.txt:md5,3fe18f1144eb85f9206d1bee4eb11bb3", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,2e1383b692e76f4b915ccbe9bb9b9170", + "picard_base_distribution_by_cycle__Guanine.txt:md5,2a595bc9ac547f3b5224a57a6b0a127d", + "picard_base_distribution_by_cycle__Thymine.txt:md5,157ea873dd2faff46efdd62f7f6aa84c", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,98f4e5ed094b41eb131d493b4f06bcd6", + "picard_quality_by_cycle.txt:md5,2634f306a33f648bac74bc7cd3253f9e", + "picard_quality_score_distribution.txt:md5,ecde9f0e859a6eecc5cea75a156c632d", + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", + "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", + "SAMPLE_PAIRED_END_1_1_seqfu.tsv:md5,be29dfe848eab9a10ee0d46691223eae", + "SAMPLE_PAIRED_END_1_1_seqfu_mqc.txt:md5,0aca00c7f64454af520c7e08ec595d2b", + "SAMPLE_PAIRED_END_2_2_seqfu.tsv:md5,44a5cb826e001d58208a5855938fa82b", + "SAMPLE_PAIRED_END_2_2_seqfu_mqc.txt:md5,ac1740de9ef142c99c993fa9824ead63" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T11:57:37.980484968" + "timestamp": "2025-11-07T11:16:28.36937489" } } \ No newline at end of file diff --git a/tests/NovaSeq6000.main.nf.test b/tests/NovaSeq6000.main.nf.test index 8eea81f7..63dcc300 100644 --- a/tests/NovaSeq6000.main.nf.test +++ b/tests/NovaSeq6000.main.nf.test @@ -28,8 +28,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path diff --git a/tests/NovaSeq6000.main.nf.test.snap b/tests/NovaSeq6000.main.nf.test.snap index 12014baa..d5d362f2 100644 --- a/tests/NovaSeq6000.main.nf.test.snap +++ b/tests/NovaSeq6000.main.nf.test.snap @@ -1,14 +1,13 @@ { "NovaSeq6000 data test": { "content": [ - 26, { "BWAMEM2_INDEX": { "bwamem2": "2.2.1" }, "BWAMEM2_MEM": { "bwamem2": "2.2.1", - "samtools": 1.21 + "samtools": "1.22.1" }, "FASTQC": { "fastqc": "0.12.1" @@ -16,8 +15,17 @@ "FASTQSCREEN_FASTQSCREEN": { "fastqscreen": "0.16.0" }, + "PICARD_COLLECTMULTIPLEMETRICS": { + "picard": "3.4.0" + }, + "SAMTOOLS_FAIDX": { + "samtools": "1.22.1" + }, + "SAMTOOLS_INDEX": { + "samtools": "1.22.1" + }, "SEQFU_STATS": { - "seqfu": "1.20.3" + "seqfu": "1.22.3" }, "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -33,10 +41,15 @@ "bwamem2_index/bwamem2/genome.fa.pac", "bwamem2_mem", "bwamem2_mem/Sample1_1.bam", + "bwamem2_mem/Sample1_1.bam.bai", "bwamem2_mem/Sample23_3.bam", + "bwamem2_mem/Sample23_3.bam.bai", "bwamem2_mem/SampleA_2.bam", + "bwamem2_mem/SampleA_2.bam.bai", "bwamem2_mem/Undetermined_5.bam", + "bwamem2_mem/Undetermined_5.bam.bai", "bwamem2_mem/sampletest_4.bam", + "bwamem2_mem/sampletest_4.bam.bai", "fastqc", "fastqc/Sample1_1_fastqc.html", "fastqc/Sample1_1_fastqc.zip", @@ -79,20 +92,38 @@ "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/global_report/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/global_report/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", "multiqc/global_report/multiqc_data/multiqc_fastqc.txt", "multiqc/global_report/multiqc_data/multiqc_general_stats.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_data/multiqc_seqfu.txt", "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", "multiqc/global_report/multiqc_plots", "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -104,12 +135,20 @@ "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/global_report/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -121,12 +160,20 @@ "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/global_report/multiqc_plots/png/general_stats_table.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/global_report/multiqc_plots/png/seqfu.png", "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -138,7 +185,16 @@ "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/global_report/multiqc_plots/svg/general_stats_table.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/global_report/multiqc_plots/svg/seqfu.svg", "multiqc/global_report/multiqc_report.html", "multiqc/group_reports", @@ -156,20 +212,38 @@ "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/group_reports/group1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/group1/multiqc_data/llms-full.txt", "multiqc/group_reports/group1/multiqc_data/multiqc.log", + "multiqc/group_reports/group1/multiqc_data/multiqc.parquet", "multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_data.json", "multiqc/group_reports/group1/multiqc_data/multiqc_fastq_screen.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_fastqc.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_seqfu.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_software_versions.txt", "multiqc/group_reports/group1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/group1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/group1/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/group1/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/group1/multiqc_data/picard_quality_score_distribution.txt", "multiqc/group_reports/group1/multiqc_plots", "multiqc/group_reports/group1/multiqc_plots/pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -181,12 +255,20 @@ "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/group1/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/group_reports/group1/multiqc_plots/pdf/seqfu.pdf", "multiqc/group_reports/group1/multiqc_plots/png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/group1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -198,12 +280,20 @@ "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/group_reports/group1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/group1/multiqc_plots/png/general_stats_table.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/group_reports/group1/multiqc_plots/png/seqfu.png", "multiqc/group_reports/group1/multiqc_plots/svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -215,7 +305,16 @@ "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/group1/multiqc_plots/svg/general_stats_table.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/group_reports/group1/multiqc_plots/svg/seqfu.svg", "multiqc/group_reports/group1/multiqc_report.html", "multiqc/group_reports/group2", @@ -232,20 +331,38 @@ "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/group_reports/group2/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/group2/multiqc_data/llms-full.txt", "multiqc/group_reports/group2/multiqc_data/multiqc.log", + "multiqc/group_reports/group2/multiqc_data/multiqc.parquet", "multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_data.json", "multiqc/group_reports/group2/multiqc_data/multiqc_fastq_screen.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_fastqc.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_seqfu.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_software_versions.txt", "multiqc/group_reports/group2/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/group2/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/group2/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/group2/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/group2/multiqc_data/picard_quality_score_distribution.txt", "multiqc/group_reports/group2/multiqc_plots", "multiqc/group_reports/group2/multiqc_plots/pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -257,12 +374,20 @@ "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/group2/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/group_reports/group2/multiqc_plots/pdf/seqfu.pdf", "multiqc/group_reports/group2/multiqc_plots/png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/group2/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -274,12 +399,20 @@ "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/group_reports/group2/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/group2/multiqc_plots/png/general_stats_table.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/group_reports/group2/multiqc_plots/png/seqfu.png", "multiqc/group_reports/group2/multiqc_plots/svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -291,7 +424,16 @@ "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/group2/multiqc_plots/svg/general_stats_table.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/group_reports/group2/multiqc_plots/svg/seqfu.svg", "multiqc/group_reports/group2/multiqc_report.html", "multiqc/group_reports/lane1", @@ -308,20 +450,38 @@ "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/group_reports/lane1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/lane1/multiqc_data/llms-full.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc.log", + "multiqc/group_reports/lane1/multiqc_data/multiqc.parquet", "multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_data.json", "multiqc/group_reports/lane1/multiqc_data/multiqc_fastq_screen.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_fastqc.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_seqfu.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_software_versions.txt", "multiqc/group_reports/lane1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_quality_score_distribution.txt", "multiqc/group_reports/lane1/multiqc_plots", "multiqc/group_reports/lane1/multiqc_plots/pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -333,12 +493,20 @@ "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/lane1/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/group_reports/lane1/multiqc_plots/pdf/seqfu.pdf", "multiqc/group_reports/lane1/multiqc_plots/png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/lane1/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -350,12 +518,20 @@ "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/lane1/multiqc_plots/png/general_stats_table.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/group_reports/lane1/multiqc_plots/png/seqfu.png", "multiqc/group_reports/lane1/multiqc_plots/svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -367,7 +543,16 @@ "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/lane1/multiqc_plots/svg/general_stats_table.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/group_reports/lane1/multiqc_plots/svg/seqfu.svg", "multiqc/group_reports/lane1/multiqc_report.html", "multiqc/group_reports/test", @@ -384,20 +569,38 @@ "multiqc/group_reports/test/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/group_reports/test/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/group_reports/test/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/test/multiqc_data/llms-full.txt", "multiqc/group_reports/test/multiqc_data/multiqc.log", + "multiqc/group_reports/test/multiqc_data/multiqc.parquet", "multiqc/group_reports/test/multiqc_data/multiqc_citations.txt", "multiqc/group_reports/test/multiqc_data/multiqc_data.json", "multiqc/group_reports/test/multiqc_data/multiqc_fastq_screen.txt", "multiqc/group_reports/test/multiqc_data/multiqc_fastqc.txt", "multiqc/group_reports/test/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_score_distribution.txt", "multiqc/group_reports/test/multiqc_data/multiqc_seqfu.txt", "multiqc/group_reports/test/multiqc_data/multiqc_software_versions.txt", "multiqc/group_reports/test/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/test/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/test/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/test/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/test/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/test/multiqc_data/picard_quality_score_distribution.txt", "multiqc/group_reports/test/multiqc_plots", "multiqc/group_reports/test/multiqc_plots/pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", @@ -409,12 +612,20 @@ "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/group_reports/test/multiqc_plots/pdf/general_stats_table.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_score_distribution.pdf", "multiqc/group_reports/test/multiqc_plots/pdf/seqfu.pdf", "multiqc/group_reports/test/multiqc_plots/png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/group_reports/test/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", @@ -426,12 +637,20 @@ "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/group_reports/test/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/group_reports/test/multiqc_plots/png/general_stats_table.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_quality_score_distribution.png", "multiqc/group_reports/test/multiqc_plots/png/seqfu.png", "multiqc/group_reports/test/multiqc_plots/svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/group_reports/test/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", @@ -443,11 +662,64 @@ "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/group_reports/test/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/group_reports/test/multiqc_plots/svg/general_stats_table.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_score_distribution.svg", "multiqc/group_reports/test/multiqc_plots/svg/seqfu.svg", "multiqc/group_reports/test/multiqc_report.html", + "picard_collectmultiplemetrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.read_length_histogram.pdf", "pipeline_info", "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", + "samtools_faidx", + "samtools_faidx/genome.fa.fai", + "samtools_faidx/genome.fa.sizes", "seqfu_stats", "seqfu_stats/Sample1_1_seqfu.tsv", "seqfu_stats/Sample1_1_seqfu_mqc.txt", @@ -466,11 +738,16 @@ "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", - "Sample1_1.bam:md5,1efd4f55b836f732ccc3600697ebb4c3", - "Sample23_3.bam:md5,a13dd5db6ef2639f2227b6d3f9c92386", - "SampleA_2.bam:md5,c5082847134e5a1c0c869b2378637754", - "Undetermined_5.bam:md5,3453bb37bc50105e79f7bba23cbab9c5", - "sampletest_4.bam:md5,72532967a589a0a63e93ce86cf79f101", + "Sample1_1.bam:md5,93a7383f6e9a975ba87b315d435ecf18", + "Sample1_1.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", + "Sample23_3.bam:md5,e1003696a9e3501e122ca584e9a3c519", + "Sample23_3.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", + "SampleA_2.bam:md5,60f5dd83705aba4edbf460225116b824", + "SampleA_2.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", + "Undetermined_5.bam:md5,9f1a50be15a6504a5b03deec4645a419", + "Undetermined_5.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", + "sampletest_4.bam:md5,6907d7e891e650e0e43539811af81f76", + "sampletest_4.bam.bai:md5,786cb1fbbadef4acea403f83d4628d5c", "Sample1_1_screen.png:md5,562256290643b51e4374c2225a15f463", "Sample1_1_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", "Sample23_3_screen.png:md5,6bb2caf67b9b2ed25d3d5f32c343e9ab", @@ -495,7 +772,24 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,2ff2485b1f197cb6228dd4350d1bd638", "multiqc_fastqc.txt:md5,3730f9046b20ac5c17a86db0a33f8d5d", - "multiqc_seqfu.txt:md5,5b54a49079169985795537d83d58bdd9", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,5bdb2f162266ab68005cbfc0a45e311e", + "multiqc_picard_baseContent.txt:md5,409bf8ce546a573ce6678769b84726fd", + "multiqc_picard_quality_by_cycle.txt:md5,ebf56fd9b3b127ff41211e3f79f18b42", + "multiqc_picard_quality_score_distribution.txt:md5,182098ce1ff0a664d873c329d54189df", + "multiqc_seqfu.txt:md5,18dd2407d4a1791646785123028f69b5", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,ebf56fd9b3b127ff41211e3f79f18b42", + "picard_QualityScoreDistribution_histogram.txt:md5,182098ce1ff0a664d873c329d54189df", + "picard_alignment_readlength_plot.txt:md5,92ab5c6fbe67484da62626736b1b21d4", + "picard_alignment_summary.txt:md5,f54187e8515f9b7c32eabaf1f8702224", + "picard_base_distribution_by_cycle__Adenine.txt:md5,61c7df03f74846ffa484a59fcccc7b9e", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,b4504bbb9ad72796703873f2d957977a", + "picard_base_distribution_by_cycle__Guanine.txt:md5,1d38466783ea51bf0c7be5bceaff4d43", + "picard_base_distribution_by_cycle__Thymine.txt:md5,1b13c9b64042839a3bc65a8553e5ba24", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,75aee7627205c6513389d7a52e7a383b", + "picard_quality_by_cycle.txt:md5,4850a9230f9be5af67f3d934602df440", + "picard_quality_score_distribution.txt:md5,17f8498a5b18cea0eb4796a6e12b8e36", "fastq_screen_plot.txt:md5,c25d34568f10f131156294d31fbfa994", "fastqc-status-check-heatmap.txt:md5,67afbf7ec626c4fc7a28b4922352bc84", "fastqc_overrepresented_sequences_plot.txt:md5,0356d007eaf807f7b63714b438b11289", @@ -510,7 +804,24 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,737dc47e74e5b2f2c590652788831eff", "multiqc_fastqc.txt:md5,f38ffdc112c73af3a41ed15848a3761f", - "multiqc_seqfu.txt:md5,5579172a6f8ac09a5ffcb3ce6a99590e", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,e4cb1b13e6a7298d172ed112a0479b5a", + "multiqc_picard_baseContent.txt:md5,740592a5858706d2b4b8f585a1d5492b", + "multiqc_picard_quality_by_cycle.txt:md5,c3f14084aedc511b9f0aa8410e7cb3b5", + "multiqc_picard_quality_score_distribution.txt:md5,59b955203209cfab3d2d21bdfe20997e", + "multiqc_seqfu.txt:md5,6cdb863a3686fbb772aae5a66925ff23", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,c3f14084aedc511b9f0aa8410e7cb3b5", + "picard_QualityScoreDistribution_histogram.txt:md5,59b955203209cfab3d2d21bdfe20997e", + "picard_alignment_readlength_plot.txt:md5,1f8b2f4df8bd5cf879b96cfb2be6d81c", + "picard_alignment_summary.txt:md5,0cfafd1ed1920270bb1a5d13bed51480", + "picard_base_distribution_by_cycle__Adenine.txt:md5,bd7f8dab8e73406cded6c6f27bbc87e9", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,fe44ccdb08c6955149eacf52a77bbba2", + "picard_base_distribution_by_cycle__Guanine.txt:md5,85a9172769830b4169f214c335f44fdc", + "picard_base_distribution_by_cycle__Thymine.txt:md5,1fe0c42cb22981763862d1934a35de07", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,4c5bfb1594b391f3e36a9e1223b43a94", + "picard_quality_by_cycle.txt:md5,a43e7bb40bc479e9c32476256b09e734", + "picard_quality_score_distribution.txt:md5,a940641c0dab423c964c0f46b69dd805", "fastq_screen_plot.txt:md5,44fca6453b0a3d0590271bd7a31cc740", "fastqc-status-check-heatmap.txt:md5,b6872d9dbaa3cce396d48dc137076e53", "fastqc_overrepresented_sequences_plot.txt:md5,eac8d0fd31c614d8d0f56bd54ee8c78c", @@ -525,7 +836,24 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,568f6b6d14562d01b5aaeb1a39e1cf3d", "multiqc_fastqc.txt:md5,7ff71ceb8ecdf086331047f8860c3347", - "multiqc_seqfu.txt:md5,b5434520fa5be5c98be5ed164a464d23", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,d4e63eed820edcc71b3e37d793983bd7", + "multiqc_picard_baseContent.txt:md5,0dd5fa539e4034e3539fb1e7068c7ce5", + "multiqc_picard_quality_by_cycle.txt:md5,750eadc27875fc8141b64a90789c369f", + "multiqc_picard_quality_score_distribution.txt:md5,140279eb5abac364c4d4c417105da620", + "multiqc_seqfu.txt:md5,f821357507fda2d4cfd9299f52fa7dc1", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,750eadc27875fc8141b64a90789c369f", + "picard_QualityScoreDistribution_histogram.txt:md5,140279eb5abac364c4d4c417105da620", + "picard_alignment_readlength_plot.txt:md5,a39f6a39dad13dacc2134508dbbf172d", + "picard_alignment_summary.txt:md5,fec83821c097bc1850257ce36aa73e5f", + "picard_base_distribution_by_cycle__Adenine.txt:md5,f206efb4e5344b8cbb2d18f6e73d5d95", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,ebf98e3d0bf661161989bf3d010b8c6b", + "picard_base_distribution_by_cycle__Guanine.txt:md5,f7dff1258977e9d04fb26ba8192facc5", + "picard_base_distribution_by_cycle__Thymine.txt:md5,b32d1e91c41756afe8732107868b32e0", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,b7b249afe807ca2321e6dd839961795c", + "picard_quality_by_cycle.txt:md5,1fe617901a493b80c31fcd01a00c416d", + "picard_quality_score_distribution.txt:md5,5cd4a87942000899776927f22a5db802", "fastq_screen_plot.txt:md5,5f748d33a7a396547fe8c260b728aa06", "fastqc-status-check-heatmap.txt:md5,08228a8f3d6f11b174b98626bb22bda1", "fastqc_overrepresented_sequences_plot.txt:md5,3434dfb79f150e2e584e85866983ba01", @@ -540,7 +868,24 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,c54d863ed3e68ee8bcb51c9ad85de9bc", "multiqc_fastqc.txt:md5,8284e25ccc21041cf3b5a32eb6a51e78", - "multiqc_seqfu.txt:md5,e2e092852c011abe5ad75cdcd68b9383", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,22093b80f335c4c53633b01a930157f4", + "multiqc_picard_baseContent.txt:md5,6886e1e5179031ddba4958f301930d64", + "multiqc_picard_quality_by_cycle.txt:md5,96652e2e2d693488df9104e5ae8cb4a7", + "multiqc_picard_quality_score_distribution.txt:md5,879a4470d08fe6d9b1796f46020fb5f5", + "multiqc_seqfu.txt:md5,8cced36d66ca9d25d60c006e734aa7e9", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,96652e2e2d693488df9104e5ae8cb4a7", + "picard_QualityScoreDistribution_histogram.txt:md5,879a4470d08fe6d9b1796f46020fb5f5", + "picard_alignment_readlength_plot.txt:md5,9b323aa8cd934d084e9c83cfa1da306b", + "picard_alignment_summary.txt:md5,4e8970d31940f5e9020851d62e63b2e2", + "picard_base_distribution_by_cycle__Adenine.txt:md5,166a48317764fe7d4b38ed198503fc11", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,8e62c1113b965497e492e17665cdbe97", + "picard_base_distribution_by_cycle__Guanine.txt:md5,fe53f5f9455b928a3edc1661be83592b", + "picard_base_distribution_by_cycle__Thymine.txt:md5,3d069dd67cc0ffc43456c5f3ee427349", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,e371981072ec99d11c6adb5a4034808c", + "picard_quality_by_cycle.txt:md5,0c25ee4cec6842306b28c6a641aa03e1", + "picard_quality_score_distribution.txt:md5,184dcdd53f6aa3b7a0fa2c008d7dc74a", "fastq_screen_plot.txt:md5,8622e1dbd0fe62520af6096207b9775d", "fastqc-status-check-heatmap.txt:md5,2a66f5d61b9eb579555905cd5954b04c", "fastqc_overrepresented_sequences_plot.txt:md5,e0b5bfc4b64d37611b51c939e61196fa", @@ -555,23 +900,42 @@ "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", "multiqc_fastq_screen.txt:md5,a4dca31413036d35899a35ba14b17ea5", "multiqc_fastqc.txt:md5,519ff344a896ac369bba4d5c5b8be7b5", - "multiqc_seqfu.txt:md5,a1a0b9a0dde0c1c4fe184d44c675dcde", - "Sample1_1_seqfu.tsv:md5,269fabf8435defcd327aa69a050b7869", - "Sample1_1_seqfu_mqc.txt:md5,a354b0ed16b9cf84aa88f501d7740fd6", - "Sample23_3_seqfu.tsv:md5,6fdadbeeefccbf957f880d6852bf9676", - "Sample23_3_seqfu_mqc.txt:md5,e94269e3efc8b8192d7ac9c15ea2aa99", - "SampleA_2_seqfu.tsv:md5,b980ed694a05825fcf7c8b5b73888eb3", - "SampleA_2_seqfu_mqc.txt:md5,1d4b0e918644cf553108b7ccf77b4a01", - "Undetermined_5_seqfu.tsv:md5,b4458d41df4dee9321da03f4d4672aae", - "Undetermined_5_seqfu_mqc.txt:md5,0c869488cb61d2f87758c621bded212b", - "sampletest_4_seqfu.tsv:md5,db3179b0c41a09e6317a5a5c0852f476", - "sampletest_4_seqfu_mqc.txt:md5,590b97cc48268629204f59007bae7ad7" + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,edf7faad1da9922fdc692e9cba5cc0c4", + "multiqc_picard_baseContent.txt:md5,9631916c0a9a736811c47ab4c476428f", + "multiqc_picard_quality_by_cycle.txt:md5,9e05b241aabe39232b5182cb59d8edd5", + "multiqc_picard_quality_score_distribution.txt:md5,e9c3ade201964470d2d22569a400fa49", + "multiqc_seqfu.txt:md5,ff4ce1c88f39ed24a88bae0a861f75c8", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,9e05b241aabe39232b5182cb59d8edd5", + "picard_QualityScoreDistribution_histogram.txt:md5,e9c3ade201964470d2d22569a400fa49", + "picard_alignment_readlength_plot.txt:md5,c2692fde9d899ad61297ad7043fd26b9", + "picard_alignment_summary.txt:md5,5996d5b4c94f16c0efd42e2df47e021e", + "picard_base_distribution_by_cycle__Adenine.txt:md5,a2670974dc96ad8a54f9cc5ae3e09d5e", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,d3b9cc0c99f96814348b57809cf227fb", + "picard_base_distribution_by_cycle__Guanine.txt:md5,1ba086d3fb2676868e8e7b20f55975dc", + "picard_base_distribution_by_cycle__Thymine.txt:md5,8902976984741320fe06004f4115c4f4", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,1380831484d1b069a2fd4a20437118bf", + "picard_quality_by_cycle.txt:md5,b6fc46e18ac875ba02775e7cbf1b8e8b", + "picard_quality_score_distribution.txt:md5,1c17c01ef54a6062a8f1ca8408d32958", + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", + "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", + "Sample1_1_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", + "Sample1_1_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", + "Sample23_3_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", + "Sample23_3_seqfu_mqc.txt:md5,4d4f280911a08bb6b753142980178027", + "SampleA_2_seqfu.tsv:md5,aec811f267bb2a0ef066a7abb59d2775", + "SampleA_2_seqfu_mqc.txt:md5,a819409a5cb64e20c3e54ec5ada4aa27", + "Undetermined_5_seqfu.tsv:md5,3a42c5c66a0a118f1a6f6f6e560b0e7e", + "Undetermined_5_seqfu_mqc.txt:md5,bd8be908362c5cb08a72f8ae7ab41b0d", + "sampletest_4_seqfu.tsv:md5,a5bea0b9c6015dd1a201ffd433e9b377", + "sampletest_4_seqfu_mqc.txt:md5,2180961655bbc8a12f0152d6a4b803a2" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T11:59:20.195474003" + "timestamp": "2025-11-07T11:17:47.210647423" } } \ No newline at end of file diff --git a/tests/NovaSeq6000.main_subsample.nf.test b/tests/NovaSeq6000.main_subsample.nf.test index d006de37..a62e4411 100644 --- a/tests/NovaSeq6000.main_subsample.nf.test +++ b/tests/NovaSeq6000.main_subsample.nf.test @@ -15,35 +15,26 @@ nextflow_pipeline { } 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 workflow.success}, { assert snapshot( - path("$outputDir/multiqc/global_report/multiqc_data/multiqc_citations.txt"), - path("$outputDir/multiqc/global_report/multiqc_data/multiqc_fastqc.txt"), - path("$outputDir/multiqc/global_report/multiqc_data/multiqc_general_stats.txt"), - path("$outputDir/multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt"), - - path("$outputDir/multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt"), - path("$outputDir/multiqc/group_reports/lane1/multiqc_data/multiqc_fastqc.txt"), - path("$outputDir/multiqc/group_reports/lane1/multiqc_data/multiqc_general_stats.txt"), - path("$outputDir/multiqc/group_reports/lane1/multiqc_data/multiqc_fastq_screen.txt"), - - path("$outputDir/multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt"), - path("$outputDir/multiqc/group_reports/group1/multiqc_data/multiqc_fastqc.txt"), - path("$outputDir/multiqc/group_reports/group1/multiqc_data/multiqc_general_stats.txt"), - path("$outputDir/multiqc/group_reports/group1/multiqc_data/multiqc_fastq_screen.txt"), - - path("$outputDir/multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt"), - path("$outputDir/multiqc/group_reports/group2/multiqc_data/multiqc_fastqc.txt"), - path("$outputDir/multiqc/group_reports/group2/multiqc_data/multiqc_general_stats.txt"), - path("$outputDir/multiqc/group_reports/group2/multiqc_data/multiqc_fastq_screen.txt"), - - path("$outputDir/multiqc/group_reports/test/multiqc_data/multiqc_citations.txt"), - path("$outputDir/multiqc/group_reports/test/multiqc_data/multiqc_fastqc.txt"), - path("$outputDir/multiqc/group_reports/test/multiqc_data/multiqc_general_stats.txt"), - path("$outputDir/multiqc/group_reports/test/multiqc_data/multiqc_fastq_screen.txt"), - ).match() - }, + // 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_seqinspector_software_mqc_versions.yml"), + // All stable path names, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } ) } } diff --git a/tests/NovaSeq6000.main_subsample.nf.test.snap b/tests/NovaSeq6000.main_subsample.nf.test.snap index 3ba50465..e242b338 100644 --- a/tests/NovaSeq6000.main_subsample.nf.test.snap +++ b/tests/NovaSeq6000.main_subsample.nf.test.snap @@ -1,31 +1,955 @@ { "NovaSeq6000 data test sample size": { "content": [ - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastqc.txt:md5,aba942d1e6996b579f19798e5673f514", - "multiqc_general_stats.txt:md5,ad1ec9c64cbdb1131a26aeb6de51e31c", - "multiqc_fastq_screen.txt:md5,2ff2485b1f197cb6228dd4350d1bd638", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastqc.txt:md5,aa1b8d6adae86005ea7a8b2e901099b8", - "multiqc_general_stats.txt:md5,c73c8d10568a56f6534d280fff701e60", - "multiqc_fastq_screen.txt:md5,c54d863ed3e68ee8bcb51c9ad85de9bc", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastqc.txt:md5,ff996e1d3dc4a46e0c9535e54d51ccab", - "multiqc_general_stats.txt:md5,834e1868b887171cfda72029bbbe2d3f", - "multiqc_fastq_screen.txt:md5,737dc47e74e5b2f2c590652788831eff", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastqc.txt:md5,3df36ecfe76b25b0c22dcda84bce2b3b", - "multiqc_general_stats.txt:md5,274a001b007521970f14d68bd176e5be", - "multiqc_fastq_screen.txt:md5,568f6b6d14562d01b5aaeb1a39e1cf3d", - "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", - "multiqc_fastqc.txt:md5,ce61b4ce4b1d76ec3f20de3bf0c9ec7f", - "multiqc_general_stats.txt:md5,d476ad59458a035a329605d5284b6012", - "multiqc_fastq_screen.txt:md5,a4dca31413036d35899a35ba14b17ea5" + { + "BWAMEM2_INDEX": { + "bwamem2": "2.2.1" + }, + "BWAMEM2_MEM": { + "bwamem2": "2.2.1", + "samtools": "1.22.1" + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FASTQSCREEN_FASTQSCREEN": { + "fastqscreen": "0.16.0" + }, + "PICARD_COLLECTMULTIPLEMETRICS": { + "picard": "3.4.0" + }, + "SAMTOOLS_FAIDX": { + "samtools": "1.22.1" + }, + "SAMTOOLS_INDEX": { + "samtools": "1.22.1" + }, + "SEQFU_STATS": { + "seqfu": "1.22.3" + }, + "SEQTK_SAMPLE": { + "seqtk": "1.4-r122" + }, + "Workflow": { + "nf-core/seqinspector": "v1.0dev" + } + }, + [ + "bwamem2_index", + "bwamem2_index/bwamem2", + "bwamem2_index/bwamem2/genome.fa.0123", + "bwamem2_index/bwamem2/genome.fa.amb", + "bwamem2_index/bwamem2/genome.fa.ann", + "bwamem2_index/bwamem2/genome.fa.bwt.2bit.64", + "bwamem2_index/bwamem2/genome.fa.pac", + "bwamem2_mem", + "bwamem2_mem/Sample1_1.bam", + "bwamem2_mem/Sample1_1.bam.bai", + "bwamem2_mem/Sample23_3.bam", + "bwamem2_mem/Sample23_3.bam.bai", + "bwamem2_mem/SampleA_2.bam", + "bwamem2_mem/SampleA_2.bam.bai", + "bwamem2_mem/Undetermined_5.bam", + "bwamem2_mem/Undetermined_5.bam.bai", + "bwamem2_mem/sampletest_4.bam", + "bwamem2_mem/sampletest_4.bam.bai", + "fastqc", + "fastqc/Sample1_1_fastqc.html", + "fastqc/Sample1_1_fastqc.zip", + "fastqc/Sample23_3_fastqc.html", + "fastqc/Sample23_3_fastqc.zip", + "fastqc/SampleA_2_fastqc.html", + "fastqc/SampleA_2_fastqc.zip", + "fastqc/Undetermined_5_fastqc.html", + "fastqc/Undetermined_5_fastqc.zip", + "fastqc/sampletest_4_fastqc.html", + "fastqc/sampletest_4_fastqc.zip", + "fastqscreen", + "fastqscreen/Sample1_1_screen.html", + "fastqscreen/Sample1_1_screen.png", + "fastqscreen/Sample1_1_screen.txt", + "fastqscreen/Sample23_3_screen.html", + "fastqscreen/Sample23_3_screen.png", + "fastqscreen/Sample23_3_screen.txt", + "fastqscreen/SampleA_2_screen.html", + "fastqscreen/SampleA_2_screen.png", + "fastqscreen/SampleA_2_screen.txt", + "fastqscreen/Undetermined_5_screen.html", + "fastqscreen/Undetermined_5_screen.png", + "fastqscreen/Undetermined_5_screen.txt", + "fastqscreen/sampletest_4_screen.html", + "fastqscreen/sampletest_4_screen.png", + "fastqscreen/sampletest_4_screen.txt", + "multiqc", + "multiqc/global_report", + "multiqc/global_report/multiqc_data", + "multiqc/global_report/multiqc_data/fastq_screen_plot.txt", + "multiqc/global_report/multiqc_data/fastqc-status-check-heatmap.txt", + "multiqc/global_report/multiqc_data/fastqc_overrepresented_sequences_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_per_base_n_content_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", + "multiqc/global_report/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/global_report/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_sequence_counts_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/global_report/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", + "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", + "multiqc/global_report/multiqc_data/multiqc_citations.txt", + "multiqc/global_report/multiqc_data/multiqc_data.json", + "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/global_report/multiqc_data/multiqc_fastqc.txt", + "multiqc/global_report/multiqc_data/multiqc_general_stats.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/multiqc_picard_quality_score_distribution.txt", + "multiqc/global_report/multiqc_data/multiqc_seqfu.txt", + "multiqc/global_report/multiqc_data/multiqc_software_versions.txt", + "multiqc/global_report/multiqc_data/multiqc_sources.txt", + "multiqc/global_report/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/global_report/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/global_report/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/global_report/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/global_report/multiqc_data/picard_alignment_summary.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/global_report/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/global_report/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/global_report/multiqc_data/picard_quality_score_distribution.txt", + "multiqc/global_report/multiqc_plots", + "multiqc/global_report/multiqc_plots/pdf", + "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/global_report/multiqc_plots/pdf/picard_quality_score_distribution.pdf", + "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", + "multiqc/global_report/multiqc_plots/png", + "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", + "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", + "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", + "multiqc/global_report/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", + "multiqc/global_report/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", + "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/global_report/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/global_report/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/global_report/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/global_report/multiqc_plots/png/picard_quality_score_distribution.png", + "multiqc/global_report/multiqc_plots/png/seqfu.png", + "multiqc/global_report/multiqc_plots/svg", + "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/global_report/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/global_report/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/global_report/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/global_report/multiqc_plots/svg/picard_quality_score_distribution.svg", + "multiqc/global_report/multiqc_plots/svg/seqfu.svg", + "multiqc/global_report/multiqc_report.html", + "multiqc/group_reports", + "multiqc/group_reports/group1", + "multiqc/group_reports/group1/multiqc_data", + "multiqc/group_reports/group1/multiqc_data/fastq_screen_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc-status-check-heatmap.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_overrepresented_sequences_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_per_base_n_content_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_counts_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/group_reports/group1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/group1/multiqc_data/llms-full.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc.log", + "multiqc/group_reports/group1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group1/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_fastqc.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_picard_quality_score_distribution.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_seqfu.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/group1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/group1/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/group1/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/group1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/group1/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/group1/multiqc_data/picard_quality_score_distribution.txt", + "multiqc/group_reports/group1/multiqc_plots", + "multiqc/group_reports/group1/multiqc_plots/pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", + "multiqc/group_reports/group1/multiqc_plots/pdf/seqfu.pdf", + "multiqc/group_reports/group1/multiqc_plots/png", + "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/group1/multiqc_plots/png/picard_quality_score_distribution.png", + "multiqc/group_reports/group1/multiqc_plots/png/seqfu.png", + "multiqc/group_reports/group1/multiqc_plots/svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/picard_quality_score_distribution.svg", + "multiqc/group_reports/group1/multiqc_plots/svg/seqfu.svg", + "multiqc/group_reports/group1/multiqc_report.html", + "multiqc/group_reports/group2", + "multiqc/group_reports/group2/multiqc_data", + "multiqc/group_reports/group2/multiqc_data/fastq_screen_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc-status-check-heatmap.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_overrepresented_sequences_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_per_base_n_content_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_counts_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/group_reports/group2/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/group2/multiqc_data/llms-full.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc.log", + "multiqc/group_reports/group2/multiqc_data/multiqc.parquet", + "multiqc/group_reports/group2/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_data.json", + "multiqc/group_reports/group2/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_fastqc.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_picard_quality_score_distribution.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_seqfu.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/group2/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/group2/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/group2/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/group2/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/group2/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/group2/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/group2/multiqc_data/picard_quality_score_distribution.txt", + "multiqc/group_reports/group2/multiqc_plots", + "multiqc/group_reports/group2/multiqc_plots/pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/picard_quality_score_distribution.pdf", + "multiqc/group_reports/group2/multiqc_plots/pdf/seqfu.pdf", + "multiqc/group_reports/group2/multiqc_plots/png", + "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_n_content_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/group2/multiqc_plots/png/picard_quality_score_distribution.png", + "multiqc/group_reports/group2/multiqc_plots/png/seqfu.png", + "multiqc/group_reports/group2/multiqc_plots/svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/picard_quality_score_distribution.svg", + "multiqc/group_reports/group2/multiqc_plots/svg/seqfu.svg", + "multiqc/group_reports/group2/multiqc_report.html", + "multiqc/group_reports/lane1", + "multiqc/group_reports/lane1/multiqc_data", + "multiqc/group_reports/lane1/multiqc_data/fastq_screen_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc-status-check-heatmap.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_overrepresented_sequences_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_per_base_n_content_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_counts_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/lane1/multiqc_data/llms-full.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc.log", + "multiqc/group_reports/lane1/multiqc_data/multiqc.parquet", + "multiqc/group_reports/lane1/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_data.json", + "multiqc/group_reports/lane1/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_fastqc.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_picard_quality_score_distribution.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_seqfu.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/lane1/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/lane1/multiqc_data/picard_quality_score_distribution.txt", + "multiqc/group_reports/lane1/multiqc_plots", + "multiqc/group_reports/lane1/multiqc_plots/pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/picard_quality_score_distribution.pdf", + "multiqc/group_reports/lane1/multiqc_plots/pdf/seqfu.pdf", + "multiqc/group_reports/lane1/multiqc_plots/png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_n_content_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/lane1/multiqc_plots/png/picard_quality_score_distribution.png", + "multiqc/group_reports/lane1/multiqc_plots/png/seqfu.png", + "multiqc/group_reports/lane1/multiqc_plots/svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/picard_quality_score_distribution.svg", + "multiqc/group_reports/lane1/multiqc_plots/svg/seqfu.svg", + "multiqc/group_reports/lane1/multiqc_report.html", + "multiqc/group_reports/test", + "multiqc/group_reports/test/multiqc_data", + "multiqc/group_reports/test/multiqc_data/fastq_screen_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc-status-check-heatmap.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_overrepresented_sequences_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_per_base_n_content_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_per_base_sequence_quality_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_gc_content_plot_Counts.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_per_sequence_quality_scores_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_sequence_counts_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/group_reports/test/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/group_reports/test/multiqc_data/llms-full.txt", + "multiqc/group_reports/test/multiqc_data/multiqc.log", + "multiqc/group_reports/test/multiqc_data/multiqc.parquet", + "multiqc/group_reports/test/multiqc_data/multiqc_citations.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_data.json", + "multiqc/group_reports/test/multiqc_data/multiqc_fastq_screen.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_fastqc.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_general_stats.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_AlignmentSummaryMetrics.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_baseContent.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_by_cycle.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_picard_quality_score_distribution.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_seqfu.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_software_versions.txt", + "multiqc/group_reports/test/multiqc_data/multiqc_sources.txt", + "multiqc/group_reports/test/multiqc_data/picard_MarkIlluminaAdapters_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_MeanQualityByCycle_histogram_1.txt", + "multiqc/group_reports/test/multiqc_data/picard_QualityScoreDistribution_histogram.txt", + "multiqc/group_reports/test/multiqc_data/picard_alignment_readlength_plot.txt", + "multiqc/group_reports/test/multiqc_data/picard_alignment_summary.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Adenine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Cytosine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Guanine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Thymine.txt", + "multiqc/group_reports/test/multiqc_data/picard_base_distribution_by_cycle__Undetermined.txt", + "multiqc/group_reports/test/multiqc_data/picard_quality_by_cycle.txt", + "multiqc/group_reports/test/multiqc_data/picard_quality_score_distribution.txt", + "multiqc/group_reports/test/multiqc_plots", + "multiqc/group_reports/test/multiqc_plots/pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_base_sequence_quality_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_per_sequence_quality_scores_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_counts_plot-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_counts_plot-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_readlength_plot.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-cnt.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_alignment_summary-pct.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Adenine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Cytosine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Guanine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Thymine.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_base_distribution_by_cycle__Undetermined.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_by_cycle.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/picard_quality_score_distribution.pdf", + "multiqc/group_reports/test/multiqc_plots/pdf/seqfu.pdf", + "multiqc/group_reports/test/multiqc_plots/png", + "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/fastq_screen_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_n_content_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_base_sequence_quality_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Counts.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_gc_content_plot_Percentages.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_per_sequence_quality_scores_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_counts_plot-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_counts_plot-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_readlength_plot.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-cnt.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_alignment_summary-pct.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Adenine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Cytosine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Guanine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Thymine.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_base_distribution_by_cycle__Undetermined.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_quality_by_cycle.png", + "multiqc/group_reports/test/multiqc_plots/png/picard_quality_score_distribution.png", + "multiqc/group_reports/test/multiqc_plots/png/seqfu.png", + "multiqc/group_reports/test/multiqc_plots/svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastq_screen_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_base_sequence_quality_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Counts.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_per_sequence_quality_scores_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_counts_plot-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_counts_plot-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_readlength_plot.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-cnt.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_alignment_summary-pct.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Adenine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Cytosine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Guanine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Thymine.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_base_distribution_by_cycle__Undetermined.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_by_cycle.svg", + "multiqc/group_reports/test/multiqc_plots/svg/picard_quality_score_distribution.svg", + "multiqc/group_reports/test/multiqc_plots/svg/seqfu.svg", + "multiqc/group_reports/test/multiqc_report.html", + "picard_collectmultiplemetrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Sample1_1.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Sample23_3.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/SampleA_2.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/Undetermined_5.CollectMultipleMetrics.read_length_histogram.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.alignment_summary_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.base_distribution_by_cycle.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.base_distribution_by_cycle_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_by_cycle.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_by_cycle_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_distribution.pdf", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.quality_distribution_metrics", + "picard_collectmultiplemetrics/sampletest_4.CollectMultipleMetrics.read_length_histogram.pdf", + "pipeline_info", + "pipeline_info/nf_core_seqinspector_software_mqc_versions.yml", + "samtools_faidx", + "samtools_faidx/genome.fa.fai", + "samtools_faidx/genome.fa.sizes", + "seqfu_stats", + "seqfu_stats/Sample1_1_seqfu.tsv", + "seqfu_stats/Sample1_1_seqfu_mqc.txt", + "seqfu_stats/Sample23_3_seqfu.tsv", + "seqfu_stats/Sample23_3_seqfu_mqc.txt", + "seqfu_stats/SampleA_2_seqfu.tsv", + "seqfu_stats/SampleA_2_seqfu_mqc.txt", + "seqfu_stats/Undetermined_5_seqfu.tsv", + "seqfu_stats/Undetermined_5_seqfu_mqc.txt", + "seqfu_stats/sampletest_4_seqfu.tsv", + "seqfu_stats/sampletest_4_seqfu_mqc.txt", + "seqtk", + "seqtk/Sample1_1_Sample1_S1_L001_R1_001.fastq.gz", + "seqtk/Sample23_3_Sample23_S3_L001_R1_001.fastq.gz", + "seqtk/SampleA_2_SampleA_S2_L001_R1_001.fastq.gz", + "seqtk/Undetermined_5_Undetermined_S0_L001_R1_001.fastq.gz", + "seqtk/sampletest_4_sampletest_S4_L001_R1_001.fastq.gz" + ], + [ + "genome.fa.0123:md5,8af61f4bc59cc2fe7b396db46a2173f3", + "genome.fa.amb:md5,657cfdf0628d140d645d8d01a24f0c5f", + "genome.fa.ann:md5,4439f90bdaaf2cdf9089c9f7f07b9d6b", + "genome.fa.bwt.2bit.64:md5,c9a1ea631cf4ad59f4c3549a030c6c5e", + "genome.fa.pac:md5,fd24ae5f67c642dfe9453e63350618cc", + "Sample1_1.bam:md5,0bd502d4e221008867c85393cce2b89b", + "Sample1_1.bam.bai:md5,20c7b66e8e1ace324a3cbbee6745b714", + "Sample23_3.bam:md5,26a49672caec3ab985d3f3dd6bdff530", + "Sample23_3.bam.bai:md5,20c7b66e8e1ace324a3cbbee6745b714", + "SampleA_2.bam:md5,240d536aab1aac8fa3bca402703121df", + "SampleA_2.bam.bai:md5,20c7b66e8e1ace324a3cbbee6745b714", + "Undetermined_5.bam:md5,f30b23c562a1725f3f23236acab1fd9a", + "Undetermined_5.bam.bai:md5,20c7b66e8e1ace324a3cbbee6745b714", + "sampletest_4.bam:md5,2c37f72ed4f25c971199fbde3af370b9", + "sampletest_4.bam.bai:md5,20c7b66e8e1ace324a3cbbee6745b714", + "Sample1_1_screen.png:md5,562256290643b51e4374c2225a15f463", + "Sample1_1_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", + "Sample23_3_screen.png:md5,6bb2caf67b9b2ed25d3d5f32c343e9ab", + "Sample23_3_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", + "SampleA_2_screen.png:md5,b2c3e95e034f5c038754bf108537de0e", + "SampleA_2_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", + "Undetermined_5_screen.png:md5,fc5d53f8876dfae3d1a781fa512ea1db", + "Undetermined_5_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", + "sampletest_4_screen.png:md5,1fb60070e8f4b70de0c1b3786b54f27e", + "sampletest_4_screen.txt:md5,3b184ef10eeb99043a85826534a4ee28", + "fastq_screen_plot.txt:md5,562b783630f698c3220c951b73b87027", + "fastqc-status-check-heatmap.txt:md5,84794d045dc6d91b00e59985bae9d18a", + "fastqc_overrepresented_sequences_plot.txt:md5,8a49ca637e473578baa80c57486f6873", + "fastqc_per_base_n_content_plot.txt:md5,234d2d338b88166d1432f0fd3887ed90", + "fastqc_per_base_sequence_quality_plot.txt:md5,c812a38f8bbea81175c40956f1e9ab99", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,1881dab3459ddec9b2ab33211440289c", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,c34018be31633edf7d82d746d3e2f649", + "fastqc_per_sequence_quality_scores_plot.txt:md5,e65af797abbcf320c7b91e8ba0a03fe9", + "fastqc_sequence_counts_plot.txt:md5,478329307763d250c206e44f0961ab94", + "fastqc_sequence_duplication_levels_plot.txt:md5,5c4b313cef9eae4900d6ca22b561c838", + "fastqc_sequence_length_distribution_plot.txt:md5,d423f73abb6f1c4e7ebfff407886f5a7", + "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", + "multiqc_fastq_screen.txt:md5,2ff2485b1f197cb6228dd4350d1bd638", + "multiqc_fastqc.txt:md5,aba942d1e6996b579f19798e5673f514", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,ae3f9e644215ac39d2eae114bd52a517", + "multiqc_picard_baseContent.txt:md5,8b2efc3fa06d2013348b35f9607292aa", + "multiqc_picard_quality_by_cycle.txt:md5,c2774038d1a0142746426e46f9f954dd", + "multiqc_picard_quality_score_distribution.txt:md5,792755ee794d375b85a57f58d879f0c6", + "multiqc_seqfu.txt:md5,18dd2407d4a1791646785123028f69b5", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,c2774038d1a0142746426e46f9f954dd", + "picard_QualityScoreDistribution_histogram.txt:md5,792755ee794d375b85a57f58d879f0c6", + "picard_alignment_readlength_plot.txt:md5,ebd1ff06394bd202b8190c46d560bc95", + "picard_alignment_summary.txt:md5,e507eccfa0a05b20705f99a3619dde29", + "picard_base_distribution_by_cycle__Adenine.txt:md5,597d0fd368eab8a21cd7f4a92965ecf6", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,ade1d92e5e6d3bfefd3695f103079b6c", + "picard_base_distribution_by_cycle__Guanine.txt:md5,af525e84f95ceb4b8496f734db2420fb", + "picard_base_distribution_by_cycle__Thymine.txt:md5,8b5ada27023f2545792fabbb69a07067", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,a472bba4490d7189df23f6b38a554448", + "picard_quality_by_cycle.txt:md5,83d68b4049173f8c9a37f58f1276adc1", + "picard_quality_score_distribution.txt:md5,42c08c8a51230d9ecccdad416c06f59c", + "fastq_screen_plot.txt:md5,c25d34568f10f131156294d31fbfa994", + "fastqc-status-check-heatmap.txt:md5,7ee494f345c09706513e65907788de02", + "fastqc_overrepresented_sequences_plot.txt:md5,ca9fa146e7b8a7f562fd79b521ba0f60", + "fastqc_per_base_n_content_plot.txt:md5,d0948f903d5cb77880ff7b1b4e0a4f23", + "fastqc_per_base_sequence_quality_plot.txt:md5,12040cb996a4f30dbd6e5c313ee8e407", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,c6d912b805a018cc564e7f5b1967f1d8", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,0f71b9cb3d8e09558752a5f9f45cdf2c", + "fastqc_per_sequence_quality_scores_plot.txt:md5,f50ed03bbcb136505c3724d1ca2a5bea", + "fastqc_sequence_counts_plot.txt:md5,bf1fde5dc15633a58f074ddd3eb891a5", + "fastqc_sequence_duplication_levels_plot.txt:md5,e37e8e4584f0157a5fa0d53b4834e836", + "fastqc_sequence_length_distribution_plot.txt:md5,e102bf11f348e8c24e1d15b336e2f595", + "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", + "multiqc_fastq_screen.txt:md5,737dc47e74e5b2f2c590652788831eff", + "multiqc_fastqc.txt:md5,ff996e1d3dc4a46e0c9535e54d51ccab", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,7bc3f6ef8f47e6f1e060f957025c98aa", + "multiqc_picard_baseContent.txt:md5,1426865fe8ee1a36f67636c28500a91c", + "multiqc_picard_quality_by_cycle.txt:md5,79bf9f861077de70ec28c9af01783876", + "multiqc_picard_quality_score_distribution.txt:md5,a3f8d1937e1f118800aa3d86c1b498c4", + "multiqc_seqfu.txt:md5,6cdb863a3686fbb772aae5a66925ff23", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,79bf9f861077de70ec28c9af01783876", + "picard_QualityScoreDistribution_histogram.txt:md5,a3f8d1937e1f118800aa3d86c1b498c4", + "picard_alignment_readlength_plot.txt:md5,5aed5e7c1395a537bdce7163c93781bd", + "picard_alignment_summary.txt:md5,9d0d003456e08f78701e876d0238b5a6", + "picard_base_distribution_by_cycle__Adenine.txt:md5,73e910febe1ea4d08a9f4e49d6c10615", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,092e732bb44842f2da5416de158c1cc5", + "picard_base_distribution_by_cycle__Guanine.txt:md5,e81495fde738e2954483195fd0ccfb04", + "picard_base_distribution_by_cycle__Thymine.txt:md5,ed9ad958081a904a5584757f87b29eb2", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,2b4526a0b0977ebd7fbe326c6d51cf19", + "picard_quality_by_cycle.txt:md5,d53617c495e81e011996cd4e9f755e0a", + "picard_quality_score_distribution.txt:md5,05f9e89733e43b81acf593efc1a56180", + "fastq_screen_plot.txt:md5,44fca6453b0a3d0590271bd7a31cc740", + "fastqc-status-check-heatmap.txt:md5,b6872d9dbaa3cce396d48dc137076e53", + "fastqc_overrepresented_sequences_plot.txt:md5,19babef6996c0bfdf28e5df89368cbb1", + "fastqc_per_base_n_content_plot.txt:md5,25367b78b3d6a063d33814c663fea91e", + "fastqc_per_base_sequence_quality_plot.txt:md5,2b4fa8cd21e4e6cb093abbfc221a7095", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,204e907429377d2d568e65d80edad2d2", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,525162fb43c9906641e953aafc59f8bf", + "fastqc_per_sequence_quality_scores_plot.txt:md5,3a16c4f83d13b5b61999491b0ca9d36c", + "fastqc_sequence_counts_plot.txt:md5,cf8c6868dc440beb30414259703a1551", + "fastqc_sequence_duplication_levels_plot.txt:md5,1e595565e848ab3f13cfa8479214d3e0", + "fastqc_sequence_length_distribution_plot.txt:md5,24ef8f47147dabd210b03c497d340d77", + "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", + "multiqc_fastq_screen.txt:md5,568f6b6d14562d01b5aaeb1a39e1cf3d", + "multiqc_fastqc.txt:md5,3df36ecfe76b25b0c22dcda84bce2b3b", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,4dc89e1a04843d44695ecc8d1f047ee8", + "multiqc_picard_baseContent.txt:md5,0a5f9d32dd3061ce4349518c47d69838", + "multiqc_picard_quality_by_cycle.txt:md5,ec59b472afc1242ff299011ba456e792", + "multiqc_picard_quality_score_distribution.txt:md5,1b8be76b60ee71aa36a98d34e433b9bf", + "multiqc_seqfu.txt:md5,f821357507fda2d4cfd9299f52fa7dc1", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,ec59b472afc1242ff299011ba456e792", + "picard_QualityScoreDistribution_histogram.txt:md5,1b8be76b60ee71aa36a98d34e433b9bf", + "picard_alignment_readlength_plot.txt:md5,72e0094fcd2546bee02a7ac65a3ea218", + "picard_alignment_summary.txt:md5,19586495e6d7904a2a4a7eb9ba17a412", + "picard_base_distribution_by_cycle__Adenine.txt:md5,a825de2b668791e58f6a4078e0b31483", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,59633faead8aa9027883481b0c7e22af", + "picard_base_distribution_by_cycle__Guanine.txt:md5,f02153a346f7e24f200bf06af2293352", + "picard_base_distribution_by_cycle__Thymine.txt:md5,0725af81caa647ec22050c573dfe8cb0", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,3536e6dcc7c7ed972b02d2945da75cb7", + "picard_quality_by_cycle.txt:md5,be127a96dd68c14077548d36c0507dc3", + "picard_quality_score_distribution.txt:md5,9e27b097f10cb9a9a95a3445b220d104", + "fastq_screen_plot.txt:md5,5f748d33a7a396547fe8c260b728aa06", + "fastqc-status-check-heatmap.txt:md5,bab59a0bd1d676d90cdd986fbba36b26", + "fastqc_overrepresented_sequences_plot.txt:md5,79cb259874c52b44f8c69b2075ee498e", + "fastqc_per_base_n_content_plot.txt:md5,6ef3683b1b7db0b6db6948185f96959d", + "fastqc_per_base_sequence_quality_plot.txt:md5,e7255081223d89b4f3611a57d13974d8", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,dc0ced33f21421d4cba72b4c6e6bf19b", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,7a6b00f36bb522d044c3fa3192e2adf8", + "fastqc_per_sequence_quality_scores_plot.txt:md5,ed58f918f7d979999e28137ba30f12e3", + "fastqc_sequence_counts_plot.txt:md5,29dc291cce9708c51dbe2b58a32cc713", + "fastqc_sequence_duplication_levels_plot.txt:md5,77e0c9a542a3d59b173633764a11b404", + "fastqc_sequence_length_distribution_plot.txt:md5,c4f58d755233776c341da8dc357f8527", + "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", + "multiqc_fastq_screen.txt:md5,c54d863ed3e68ee8bcb51c9ad85de9bc", + "multiqc_fastqc.txt:md5,aa1b8d6adae86005ea7a8b2e901099b8", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,fa26e8b96faa1926d8f41fc3fe959ff7", + "multiqc_picard_baseContent.txt:md5,b9d72d8173cdc7649b44b80aa485477c", + "multiqc_picard_quality_by_cycle.txt:md5,062547fb888ed508dd1d5733d7bed22e", + "multiqc_picard_quality_score_distribution.txt:md5,dd5abab3a7141654fffa3946c50a039b", + "multiqc_seqfu.txt:md5,8cced36d66ca9d25d60c006e734aa7e9", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,062547fb888ed508dd1d5733d7bed22e", + "picard_QualityScoreDistribution_histogram.txt:md5,dd5abab3a7141654fffa3946c50a039b", + "picard_alignment_readlength_plot.txt:md5,e5d397c216a0911a73dff5550fa7b1d7", + "picard_alignment_summary.txt:md5,ef16e8dbab178f44deebe0f4d321097b", + "picard_base_distribution_by_cycle__Adenine.txt:md5,8ada743b028ec78996f9dc40f1922941", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,c97859ee1641de9bff58dbd1e82fff20", + "picard_base_distribution_by_cycle__Guanine.txt:md5,ea86115ef2ca4ff4922486ceb6c6e1e8", + "picard_base_distribution_by_cycle__Thymine.txt:md5,07a3f1e6b1ed2bc55128fc2a0f46eb92", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,67ee93606c468a7eea7818b2f4b3389f", + "picard_quality_by_cycle.txt:md5,974b3baed160e9643f493df1d0ad5000", + "picard_quality_score_distribution.txt:md5,869d69ae4e243f0669f63b489563e4f1", + "fastq_screen_plot.txt:md5,8622e1dbd0fe62520af6096207b9775d", + "fastqc-status-check-heatmap.txt:md5,2a66f5d61b9eb579555905cd5954b04c", + "fastqc_overrepresented_sequences_plot.txt:md5,5cdefa954db6e46c286e2984a883eb18", + "fastqc_per_base_n_content_plot.txt:md5,92c23e189d98430517e4030e7c9ae038", + "fastqc_per_base_sequence_quality_plot.txt:md5,a02cd4679a5991b73d2df6583a2cf01b", + "fastqc_per_sequence_gc_content_plot_Counts.txt:md5,6152ec5e4f4fd331b89107e024b009ac", + "fastqc_per_sequence_gc_content_plot_Percentages.txt:md5,ea90172d9f32b43fe8f6b91fb54f26c2", + "fastqc_per_sequence_quality_scores_plot.txt:md5,5ba7c7ccdcd54daf44d996e697cbeadf", + "fastqc_sequence_counts_plot.txt:md5,88a5e67b5ce395a7ed3324b176c15cf7", + "fastqc_sequence_duplication_levels_plot.txt:md5,041857b1e41e0b47bfc62000cb9f323d", + "fastqc_sequence_length_distribution_plot.txt:md5,c2ee6b7c9fc91de049d183422e0a71fc", + "multiqc_citations.txt:md5,5f52d7a0141e4234c6069df9ef575c9a", + "multiqc_fastq_screen.txt:md5,a4dca31413036d35899a35ba14b17ea5", + "multiqc_fastqc.txt:md5,ce61b4ce4b1d76ec3f20de3bf0c9ec7f", + "multiqc_picard_AlignmentSummaryMetrics.txt:md5,55627d8016b72c37c104e03cc156862c", + "multiqc_picard_baseContent.txt:md5,974d83faa49711ab4ea1248c59e69393", + "multiqc_picard_quality_by_cycle.txt:md5,248ecaf269d8fef1e84ea06f98b6f6ba", + "multiqc_picard_quality_score_distribution.txt:md5,5e7e80654e12c500b15f8564ffb12b27", + "multiqc_seqfu.txt:md5,ff4ce1c88f39ed24a88bae0a861f75c8", + "picard_MarkIlluminaAdapters_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "picard_MeanQualityByCycle_histogram_1.txt:md5,248ecaf269d8fef1e84ea06f98b6f6ba", + "picard_QualityScoreDistribution_histogram.txt:md5,5e7e80654e12c500b15f8564ffb12b27", + "picard_alignment_readlength_plot.txt:md5,23ff551a5a8eded1857356f38b19039c", + "picard_alignment_summary.txt:md5,c741b69e17ed84370732b567ae11c69c", + "picard_base_distribution_by_cycle__Adenine.txt:md5,fc37dd1ac805881a467b264a7dd76677", + "picard_base_distribution_by_cycle__Cytosine.txt:md5,7993fd56aa542b71bc984cd36c489fd1", + "picard_base_distribution_by_cycle__Guanine.txt:md5,1bca639db2a2624727f7b6dd2aa1442e", + "picard_base_distribution_by_cycle__Thymine.txt:md5,a5f0903d77b6060676f7dda249b99738", + "picard_base_distribution_by_cycle__Undetermined.txt:md5,102e653a543ac908ac9ec9b86412d73b", + "picard_quality_by_cycle.txt:md5,3d43fd5387c0dc728833c681ea4f73cc", + "picard_quality_score_distribution.txt:md5,9d9f1bb12316175cdb88d3ff70305428", + "genome.fa.fai:md5,6f4c0ce5258e6948135ad006e1f9ee1b", + "genome.fa.sizes:md5,e122f8021a5ef14104c32785cb9b7adc", + "Sample1_1_seqfu.tsv:md5,ac174f48d928c6ddfd43c88af0caa8b6", + "Sample1_1_seqfu_mqc.txt:md5,24d99524ccd0e6c6255a69d68a871c7a", + "Sample23_3_seqfu.tsv:md5,6fac5d3dbce3f3bee72341fe99a399dc", + "Sample23_3_seqfu_mqc.txt:md5,4d4f280911a08bb6b753142980178027", + "SampleA_2_seqfu.tsv:md5,aec811f267bb2a0ef066a7abb59d2775", + "SampleA_2_seqfu_mqc.txt:md5,a819409a5cb64e20c3e54ec5ada4aa27", + "Undetermined_5_seqfu.tsv:md5,3a42c5c66a0a118f1a6f6f6e560b0e7e", + "Undetermined_5_seqfu_mqc.txt:md5,bd8be908362c5cb08a72f8ae7ab41b0d", + "sampletest_4_seqfu.tsv:md5,a5bea0b9c6015dd1a201ffd433e9b377", + "sampletest_4_seqfu_mqc.txt:md5,2180961655bbc8a12f0152d6a4b803a2", + "Sample1_1_Sample1_S1_L001_R1_001.fastq.gz:md5,3ccd132ff32399706842b0f1d00f477e", + "Sample23_3_Sample23_S3_L001_R1_001.fastq.gz:md5,3802f03450693b42531fdf5b0b542c2f", + "SampleA_2_SampleA_S2_L001_R1_001.fastq.gz:md5,f99d5407aac64cb36451c6f0a1db5ade", + "Undetermined_5_Undetermined_S0_L001_R1_001.fastq.gz:md5,104dbbef386db0eef3e02c586feb01a1", + "sampletest_4_sampletest_S4_L001_R1_001.fastq.gz:md5,30aa24a51e27e24390ac8b90158df8f2" + ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.10.2" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2024-12-05T15:17:50.525033752" + "timestamp": "2025-11-19T14:24:39.696680631" } } \ No newline at end of file diff --git a/tests/PromethION.main.nf.test b/tests/PromethION.main.nf.test index 5cb291ef..f4a46aac 100644 --- a/tests/PromethION.main.nf.test +++ b/tests/PromethION.main.nf.test @@ -28,8 +28,6 @@ nextflow_pipeline { assertAll( { assert workflow.success}, { 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_seqinspector_software_mqc_versions.yml"), // All stable path names, with a relative path diff --git a/tests/PromethION.main.nf.test.config b/tests/PromethION.main.nf.test.config index 987d19d3..46e9c091 100644 --- a/tests/PromethION.main.nf.test.config +++ b/tests/PromethION.main.nf.test.config @@ -6,6 +6,5 @@ params { input = params.pipelines_testdata_base_path + 'seqinspector/testdata/PromethION/samplesheet.csv' genome = 'EB1' skip_tools = 'bwamem2_index,bwamem2_mem' -} - +} diff --git a/tests/PromethION.main.nf.test.snap b/tests/PromethION.main.nf.test.snap index 97d6c386..46aefe80 100644 --- a/tests/PromethION.main.nf.test.snap +++ b/tests/PromethION.main.nf.test.snap @@ -1,7 +1,6 @@ { "PromethION data test": { "content": [ - 4, { "FASTQC": { "fastqc": "0.12.1" @@ -10,7 +9,7 @@ "fastqscreen": "0.16.0" }, "SEQFU_STATS": { - "seqfu": "1.20.3" + "seqfu": "1.22.3" }, "Workflow": { "nf-core/seqinspector": "v1.0dev" @@ -40,7 +39,9 @@ "multiqc/global_report/multiqc_data/fastqc_sequence_duplication_levels_plot.txt", "multiqc/global_report/multiqc_data/fastqc_sequence_length_distribution_plot.txt", "multiqc/global_report/multiqc_data/fastqc_top_overrepresented_sequences_table.txt", + "multiqc/global_report/multiqc_data/llms-full.txt", "multiqc/global_report/multiqc_data/multiqc.log", + "multiqc/global_report/multiqc_data/multiqc.parquet", "multiqc/global_report/multiqc_data/multiqc_citations.txt", "multiqc/global_report/multiqc_data/multiqc_data.json", "multiqc/global_report/multiqc_data/multiqc_fastq_screen.txt", @@ -53,7 +54,6 @@ "multiqc/global_report/multiqc_plots/pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-cnt.pdf", "multiqc/global_report/multiqc_plots/pdf/fastq_screen_plot-pct.pdf", - "multiqc/global_report/multiqc_plots/pdf/fastqc-status-check-heatmap.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_adapter_content_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_overrepresented_sequences_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_per_base_n_content_plot.pdf", @@ -66,12 +66,10 @@ "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_duplication_levels_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", "multiqc/global_report/multiqc_plots/pdf/fastqc_top_overrepresented_sequences_table.pdf", - "multiqc/global_report/multiqc_plots/pdf/general_stats_table.pdf", "multiqc/global_report/multiqc_plots/pdf/seqfu.pdf", "multiqc/global_report/multiqc_plots/png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-cnt.png", "multiqc/global_report/multiqc_plots/png/fastq_screen_plot-pct.png", - "multiqc/global_report/multiqc_plots/png/fastqc-status-check-heatmap.png", "multiqc/global_report/multiqc_plots/png/fastqc_adapter_content_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_overrepresented_sequences_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_per_base_n_content_plot.png", @@ -84,12 +82,10 @@ "multiqc/global_report/multiqc_plots/png/fastqc_sequence_duplication_levels_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_sequence_length_distribution_plot.png", "multiqc/global_report/multiqc_plots/png/fastqc_top_overrepresented_sequences_table.png", - "multiqc/global_report/multiqc_plots/png/general_stats_table.png", "multiqc/global_report/multiqc_plots/png/seqfu.png", "multiqc/global_report/multiqc_plots/svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-cnt.svg", "multiqc/global_report/multiqc_plots/svg/fastq_screen_plot-pct.svg", - "multiqc/global_report/multiqc_plots/svg/fastqc-status-check-heatmap.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_adapter_content_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_overrepresented_sequences_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_per_base_n_content_plot.svg", @@ -102,7 +98,6 @@ "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_duplication_levels_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_sequence_length_distribution_plot.svg", "multiqc/global_report/multiqc_plots/svg/fastqc_top_overrepresented_sequences_table.svg", - "multiqc/global_report/multiqc_plots/svg/general_stats_table.svg", "multiqc/global_report/multiqc_plots/svg/seqfu.svg", "multiqc/global_report/multiqc_report.html", "pipeline_info", @@ -131,13 +126,13 @@ "multiqc_fastqc.txt:md5,1a4b472e13cadc770832b0e20d1de7b0", "multiqc_seqfu.txt:md5,9595d608ff5709f2bdec8cb1016416c0", "hg001_1_seqfu.tsv:md5,b133752c897afbb4d8721b911fa117d4", - "hg001_1_seqfu_mqc.txt:md5,6285f582c03faa70e8dcb3503e5db728" + "hg001_1_seqfu_mqc.txt:md5,42e3506b02ceb72a6f05cb174505e722" ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.0" }, - "timestamp": "2025-10-20T12:01:31.034516203" + "timestamp": "2025-11-07T10:27:14.736749139" } } \ No newline at end of file diff --git a/tests/nextflow.config b/tests/nextflow.config index 5ff1eef6..f1daba3a 100644 --- a/tests/nextflow.config +++ b/tests/nextflow.config @@ -1,14 +1,12 @@ /* ======================================================================================== - Nextflow config file for running tests + Nextflow config file for running nf-test tests ======================================================================================== */ params { - config_profile_name = 'nf-test profile' - config_profile_description = 'Configuration profile to use for nf-test.' - - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' modules_testdata_base_path = 's3://ngi-igenomes/testdata/nf-core/modules/' - + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' } + +aws.client.anonymous = true // fixes S3 access issues on self-hosted runners diff --git a/workflows/seqinspector.nf b/workflows/seqinspector.nf index 5aaa34fa..bcf88f8c 100644 --- a/workflows/seqinspector.nf +++ b/workflows/seqinspector.nf @@ -1,4 +1,4 @@ -include { samplesheetToList } from 'plugin/nf-schema' +include { samplesheetToList } from 'plugin/nf-schema' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -6,15 +6,18 @@ include { samplesheetToList } from 'plugin/nf-schema' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { SEQTK_SAMPLE } from '../modules/nf-core/seqtk/sample/main' -include { FASTQC } from '../modules/nf-core/fastqc/main' +include { BWAMEM2_INDEX } from '../modules/nf-core/bwamem2/index' +include { BWAMEM2_MEM } from '../modules/nf-core/bwamem2/mem' +include { FASTQC } from '../modules/nf-core/fastqc' +include { FASTQSCREEN_FASTQSCREEN } from '../modules/nf-core/fastqscreen/fastqscreen' +include { PICARD_COLLECTMULTIPLEMETRICS } from '../modules/nf-core/picard/collectmultiplemetrics' +include { SAMTOOLS_FAIDX } from '../modules/nf-core/samtools/faidx' +include { SAMTOOLS_INDEX } from '../modules/nf-core/samtools/index' include { SEQFU_STATS } from '../modules/nf-core/seqfu/stats' -include { FASTQSCREEN_FASTQSCREEN } from '../modules/nf-core/fastqscreen/fastqscreen/main' -include { BWAMEM2_INDEX } from '../modules/nf-core/bwamem2/index/main' -include { BWAMEM2_MEM } from '../modules/nf-core/bwamem2/mem/main' +include { SEQTK_SAMPLE } from '../modules/nf-core/seqtk/sample' -include { MULTIQC as MULTIQC_GLOBAL } from '../modules/nf-core/multiqc/main' -include { MULTIQC as MULTIQC_PER_TAG } from '../modules/nf-core/multiqc/main' +include { MULTIQC as MULTIQC_GLOBAL } from '../modules/nf-core/multiqc' +include { MULTIQC as MULTIQC_PER_TAG } from '../modules/nf-core/multiqc' include { paramsSummaryMap } from 'plugin/nf-schema' include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' @@ -28,29 +31,36 @@ include { methodsDescriptionText } from '../subworkflows/local/utils_nfco */ workflow SEQINSPECTOR { - take: - ch_samplesheet // channel: samplesheet read in from --input + ch_samplesheet // channel: samplesheet read in from --input + fasta_file main: skip_tools = params.skip_tools ? params.skip_tools.split(',') : [] - ch_versions = Channel.empty() - ch_multiqc_files = Channel.empty() - ch_multiqc_extra_files = Channel.empty() - ch_multiqc_reports = Channel.empty() + ch_versions = channel.empty() + ch_multiqc_files = channel.empty() + ch_multiqc_extra_files = channel.empty() + + // Initialize all channels that might be used later + ch_bwamem2_index = channel.empty() + ch_bwamem2_mem = channel.empty() + ch_samtools_index = channel.empty() + ch_reference_fasta_fai = channel.empty() + ch_reference_fasta = channel.empty() // // MODULE: Run Seqtk sample to perform subsampling // if (!("seqtk_sample" in skip_tools) && params.sample_size > 0) { ch_sample_sized = SEQTK_SAMPLE( - ch_samplesheet.map { - meta, reads -> [meta, reads, params.sample_size] + ch_samplesheet.map { meta, reads -> + [meta, reads, params.sample_size] } ).reads ch_versions = ch_versions.mix(SEQTK_SAMPLE.out.versions.first()) - } else { + } + else { // No subsampling ch_sample_sized = ch_samplesheet } @@ -59,9 +69,9 @@ workflow SEQINSPECTOR { // MODULE: Run FastQC // if (!("fastqc" in skip_tools)) { - FASTQC ( - ch_sample_sized.map { - meta, subsampled -> [meta, subsampled] + FASTQC( + ch_sample_sized.map { meta, subsampled -> + [meta, subsampled] } ) ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip) @@ -73,9 +83,8 @@ workflow SEQINSPECTOR { // Module: Run SeqFu stats // if (!("seqfu_stats" in skip_tools)) { - SEQFU_STATS ( - ch_samplesheet - .map { meta, reads -> + SEQFU_STATS( + ch_samplesheet.map { meta, reads -> [[id: "seqfu", sample_id: meta.id, tags: meta.tags], reads] } ) @@ -91,100 +100,179 @@ workflow SEQINSPECTOR { // and transpose it into a tuple containing lists for each property if (!("fastqscreen" in skip_tools)) { - ch_fastqscreen_refs = Channel - .fromList(samplesheetToList( - params.fastq_screen_references, - "${projectDir}/assets/schema_fastq_screen_references.json" - )) + ch_fastqscreen_refs = channel.fromList( + samplesheetToList( + params.fastq_screen_references, + "${projectDir}/assets/schema_fastq_screen_references.json", + ) + ) .toList() .transpose() .toList() - FASTQSCREEN_FASTQSCREEN ( + FASTQSCREEN_FASTQSCREEN( ch_samplesheet, - ch_fastqscreen_refs + ch_fastqscreen_refs, ) ch_multiqc_files = ch_multiqc_files.mix(FASTQSCREEN_FASTQSCREEN.out.txt) ch_versions = ch_versions.mix(FASTQSCREEN_FASTQSCREEN.out.versions.first()) } - // MODULE: Create BWA-MEM2 index of the reference genome - + // MODULE: Create BWA-MEM2 index of the reference genome OR use pre-built index if (!("bwamem2_index" in skip_tools)) { - ch_reference_fasta = Channel.fromPath(params.fasta).map { it -> [[id:it.simpleName], it] }.collect() + // Always create the reference FASTA channel since it's needed by BWAMEM2_MEM + ch_reference_fasta = channel.fromPath(fasta_file, checkIfExists: true).map { file -> tuple([id: file.name], file) }.collect() - BWAMEM2_INDEX ( - ch_reference_fasta - ) - ch_bwamem2_index = BWAMEM2_INDEX.out.index - ch_versions = ch_versions.mix(BWAMEM2_INDEX.out.versions) + if (params.bwa_index) { + // Use pre-built index when --bwa_index parameter is provided + ch_bwamem2_index = channel.fromPath(params.bwa_index, checkIfExists: true) + .map { index_dir -> tuple([id: index_dir.name], index_dir) } + .collect() + // Add debug output to verify the pre-built index is being used + ch_bwamem2_index.view { "Using pre-built BWA-MEM2 index: ${it}" } + } + else { + // Build index from reference FASTA when no pre-built index is provided + BWAMEM2_INDEX( + ch_reference_fasta + ) + ch_bwamem2_index = BWAMEM2_INDEX.out.index + ch_versions = ch_versions.mix(BWAMEM2_INDEX.out.versions) + + // Add debug output to verify the index was built + ch_bwamem2_index.view { "Built BWA-MEM2 index: ${it}" } + } } + // MODULE: Align reads with BWA-MEM2 if (!("bwamem2_mem" in skip_tools)) { - BWAMEM2_MEM ( + BWAMEM2_MEM( ch_sample_sized, ch_bwamem2_index, ch_reference_fasta, - params.sort_bam ?: true + params.sort_bam ?: true, ) ch_bwamem2_mem = BWAMEM2_MEM.out.bam ch_versions = ch_versions.mix(BWAMEM2_MEM.out.versions) - ch_bwamem2_mem.view { "BAM: $it" } + } + // MODULE: Index BAM files with Samtools + if (!("samtools_index" in skip_tools) && !("bwamem2_mem" in skip_tools)) { + SAMTOOLS_INDEX( + ch_bwamem2_mem + ) + ch_samtools_index = SAMTOOLS_INDEX.out.bai + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions) + } + // MODULE: Index reference FASTA with Samtools faidx + if (!("samtools_faidx" in skip_tools)) { -} + // Assume ch_fasta emits tuple(meta, fasta) + SAMTOOLS_FAIDX( + ch_reference_fasta, + [[:], []], + true, + ) + ch_reference_fasta_fai = SAMTOOLS_FAIDX.out.fai + ch_versions = ch_versions.mix(SAMTOOLS_FAIDX.out.versions) + } + + // MODULE: Prepare BAM/BAI tuples for Picard + // Combine BAM and BAI outputs for Picard + if (!("picard_collectmultiplemetrics" in skip_tools) && !("bwamem2_mem" in skip_tools) && !("samtools_index" in skip_tools) && !("samtools_faidx" in skip_tools)) { + + // Prepare BAM/BAI tuples for Picard + ch_bam_bai = ch_bwamem2_mem.join(ch_samtools_index, failOnDuplicate: true, failOnMismatch: true) + + ch_bam_bai.view { "Combined BAM/BAI for Picard: ${it}" } + ch_fasta = ch_reference_fasta + ch_fai = ch_reference_fasta_fai + + ch_fasta.view { "FASTA for Picard: ${it}" } + ch_fai.view { "FAI for Picard: ${it}" } + + PICARD_COLLECTMULTIPLEMETRICS( + ch_bam_bai, + ch_fasta, + ch_fai, + ) + + ch_multiqc_files = ch_multiqc_files.mix(PICARD_COLLECTMULTIPLEMETRICS.out.metrics) + ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) + } // Collate and save software versions // - softwareVersionsToYAML(ch_versions) + def topic_versions = Channel.topic("versions") + .distinct() + .branch { entry -> + versions_file: entry instanceof Path + versions_tuple: true + } + + def topic_versions_string = topic_versions.versions_tuple + .map { process, tool, version -> + [ process[process.lastIndexOf(':')+1..-1], " ${tool}: ${version}" ] + } + .groupTuple(by:0) + .map { process, tool_versions -> + tool_versions.unique().sort() + "${process}:\n${tool_versions.join('\n')}" + } + + softwareVersionsToYAML(ch_versions.mix(topic_versions.versions_file)) + .mix(topic_versions_string) .collectFile( storeDir: "${params.outdir}/pipeline_info", - name: 'nf_core_' + 'seqinspector_software_' + 'mqc_' + 'versions.yml', + name: 'nf_core_' + 'seqinspector_software_' + 'mqc_' + 'versions.yml', sort: true, - newLine: true - ).set { ch_collated_versions } + newLine: true, + ) + .set { ch_collated_versions } // // MODULE: MultiQC // - ch_multiqc_config = params.multiqc_config ? - Channel.fromPath(params.multiqc_config, checkIfExists: true) : - Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) - ch_multiqc_logo = params.multiqc_logo ? - Channel.fromPath(params.multiqc_logo, checkIfExists: true) : - Channel.empty() - - summary_params = paramsSummaryMap( - workflow, parameters_schema: "nextflow_schema.json") - ch_workflow_summary = Channel.value( - paramsSummaryMultiqc(summary_params)) - ch_multiqc_custom_methods_description = params.multiqc_methods_description ? - file(params.multiqc_methods_description, checkIfExists: true) : - file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - ch_methods_description = Channel.value( - methodsDescriptionText(ch_multiqc_custom_methods_description)) + ch_multiqc_config = params.multiqc_config + ? channel.fromPath(params.multiqc_config, checkIfExists: true) + : channel.fromPath("${projectDir}/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_logo = params.multiqc_logo + ? channel.fromPath(params.multiqc_logo, checkIfExists: true) + : channel.empty() + + summary_params = paramsSummaryMap( + workflow, + parameters_schema: "nextflow_schema.json" + ) + ch_workflow_summary = channel.value( + paramsSummaryMultiqc(summary_params) + ) + ch_multiqc_custom_methods_description = params.multiqc_methods_description + ? file(params.multiqc_methods_description, checkIfExists: true) + : file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = channel.value( + methodsDescriptionText(ch_multiqc_custom_methods_description) + ) ch_multiqc_extra_files = ch_multiqc_extra_files.mix( - ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml') + ) ch_multiqc_extra_files = ch_multiqc_extra_files.mix(ch_collated_versions) ch_multiqc_extra_files = ch_multiqc_extra_files.mix( ch_methods_description.collectFile( name: 'methods_description_mqc.yaml', - sort: true + sort: true, ) ) - MULTIQC_GLOBAL ( - ch_multiqc_files - .map { meta, file -> file } - .mix(ch_multiqc_extra_files) - .collect(), + MULTIQC_GLOBAL( + ch_multiqc_files.map { _meta, file -> file }.mix(ch_multiqc_extra_files).collect(), ch_multiqc_config.toList(), [], ch_multiqc_logo.toList(), [], - [] + [], ) ch_tags = ch_multiqc_files @@ -192,8 +280,7 @@ workflow SEQINSPECTOR { .flatten() .unique() - multiqc_extra_files_per_tag = ch_tags - .combine(ch_multiqc_extra_files) + multiqc_extra_files_per_tag = ch_tags.combine(ch_multiqc_extra_files) // Group samples by tag tagged_mqc_files = ch_tags @@ -203,8 +290,7 @@ workflow SEQINSPECTOR { .mix(multiqc_extra_files_per_tag) .groupTuple() .tap { mqc_by_tag } - .collectFile { - sample_tag, _samples -> + .collectFile { sample_tag, _samples -> def prefix_tag = "[TAG:${sample_tag}]" [ "${prefix_tag}_multiqc_extra_config.yml", @@ -212,10 +298,10 @@ workflow SEQINSPECTOR { |output_fn_name: \"${prefix_tag}_multiqc_report.html\" |data_dir_name: \"${prefix_tag}_multiqc_data\" |plots_dir_name: \"${prefix_tag}_multiqc_plots\" - """.stripMargin() + """.stripMargin(), ] } - .map { file -> [ (file =~ /\[TAG:(.+)\]/)[0][1], file ] } + .map { file -> [(file =~ /\[TAG:(.+)\]/)[0][1], file] } .join(mqc_by_tag) .multiMap { _sample_tag, config, samples -> samples_per_tag: samples.flatten() @@ -228,17 +314,11 @@ workflow SEQINSPECTOR { tagged_mqc_files.config, ch_multiqc_logo.toList(), [], - [] + [], ) emit: - global_report = MULTIQC_GLOBAL.out.report.toList() // channel: [ /path/to/multiqc_report.html ] - grouped_reports = MULTIQC_PER_TAG.out.report.toList() // channel: [ /path/to/multiqc_report.html ] - versions = ch_versions // channel: [ path(versions.yml) ] + global_report = MULTIQC_GLOBAL.out.report.toList() // channel: [ /path/to/multiqc_report.html ] + grouped_reports = MULTIQC_PER_TAG.out.report.toList() // channel: [ /path/to/multiqc_report.html ] + versions = ch_versions // channel: [ path(versions.yml) ] } - -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - THE END -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/