diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 4a9bc5c7..4ecfbfe3 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -18,11 +18,11 @@
"python.linting.flake8Path": "/opt/conda/bin/flake8",
"python.linting.pycodestylePath": "/opt/conda/bin/pycodestyle",
"python.linting.pydocstylePath": "/opt/conda/bin/pydocstyle",
- "python.linting.pylintPath": "/opt/conda/bin/pylint",
+ "python.linting.pylintPath": "/opt/conda/bin/pylint"
},
// 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"],
- },
- },
+ "extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
+ }
+ }
}
diff --git a/.editorconfig b/.editorconfig
index b6b31907..15309aea 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -22,3 +22,15 @@ indent_size = unset
[/assets/email*]
indent_size = unset
+
+# ignore Readme
+[README.md]
+indent_style = unset
+
+# ignore Changelog
+[CHANGELOG.md]
+indent_style = unset
+
+# ignore python
+[*.{py}]
+indent_style = unset
diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml
index 990afc07..49ad9e39 100644
--- a/.github/workflows/awsfulltest.yml
+++ b/.github/workflows/awsfulltest.yml
@@ -31,7 +31,7 @@ jobs:
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/viralrecon/results-${{ github.sha }}/platform_${{ matrix.platform }}"
}
profiles: test_full_${{ matrix.platform }},aws_tower
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: Tower debug log file
path: |
diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml
index a94d9b3f..e3fa47eb 100644
--- a/.github/workflows/awstest.yml
+++ b/.github/workflows/awstest.yml
@@ -25,7 +25,7 @@ jobs:
}
profiles: test
- - uses: actions/upload-artifact@v3
+ - uses: actions/upload-artifact@v4
with:
name: Tower debug log file
path: |
diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml
index f6bb730d..52b1b1a3 100644
--- a/.github/workflows/branch.yml
+++ b/.github/workflows/branch.yml
@@ -19,7 +19,7 @@ jobs:
# NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets
- name: Post PR comment
if: failure()
- uses: mshick/add-pr-comment@v1
+ uses: mshick/add-pr-comment@v2
with:
message: |
## This PR is against the `master` branch :x:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index edae0526..647c4827 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,6 +30,15 @@ jobs:
- name: Check out pipeline code
uses: actions/checkout@v4
+ - name: Free some space
+ run: |
+ sudo rm -rf /usr/share/dotnet
+ sudo rm -rf /opt/ghc
+ sudo rm -rf "/usr/local/share/boost"
+
+ - name: Free Disk Space (Ubuntu)
+ uses: jlumbroso/free-disk-space@v1.3.1
+
- name: Install Nextflow
uses: nf-core/setup-nextflow@v1
with:
@@ -37,7 +46,7 @@ jobs:
- name: Run pipeline with test data
run: |
- nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results
+ nextflow run ${GITHUB_WORKSPACE} -profile test,docker --publish_dir_mode link --outdir ./results
parameters:
name: Test workflow parameters
@@ -60,6 +69,15 @@ jobs:
- name: Check out pipeline code
uses: actions/checkout@v2
+ - name: Free some space
+ run: |
+ sudo rm -rf /usr/share/dotnet
+ sudo rm -rf /opt/ghc
+ sudo rm -rf "/usr/local/share/boost"
+
+ - name: Free Disk Space (Ubuntu)
+ uses: jlumbroso/free-disk-space@v1.3.1
+
- name: Install Nextflow
run: |
wget -qO- get.nextflow.io | bash
@@ -67,7 +85,7 @@ jobs:
- name: Run pipeline with various parameters
run: |
- nextflow run ${GITHUB_WORKSPACE} -profile test,docker ${{ matrix.parameters }} --outdir ./results
+ nextflow run ${GITHUB_WORKSPACE} -profile test,docker ${{ matrix.parameters }} --publish_dir_mode link --outdir ./results
test_sispa:
name: Test SISPA workflow
diff --git a/.github/workflows/clean-up.yml b/.github/workflows/clean-up.yml
index 694e90ec..e37cfda5 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@v7
+ - uses: actions/stale@v9
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
new file mode 100644
index 00000000..8a330045
--- /dev/null
+++ b/.github/workflows/download_pipeline.yml
@@ -0,0 +1,67 @@
+name: Test successful pipeline download with 'nf-core download'
+
+# Run the workflow when:
+# - dispatched manually
+# - when a PR is opened or reopened to master branch
+# - the head branch of the pull request is updated, i.e. if fixes for a release are pushed last minute to dev.
+on:
+ workflow_dispatch:
+ pull_request:
+ types:
+ - opened
+ branches:
+ - master
+ pull_request_target:
+ branches:
+ - master
+
+env:
+ NXF_ANSI_LOG: false
+
+jobs:
+ download:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install Nextflow
+ uses: nf-core/setup-nextflow@v1
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.11"
+ architecture: "x64"
+ - uses: eWaterCycle/setup-singularity@v7
+ with:
+ singularity-version: 3.8.3
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install git+https://github.com/nf-core/tools.git@dev
+
+ - name: Get the repository name and current branch set as environment variable
+ run: |
+ echo "REPO_LOWERCASE=${GITHUB_REPOSITORY,,}" >> ${GITHUB_ENV}
+ echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV}
+ echo "REPO_BRANCH=${GITHUB_REF#refs/heads/}" >> ${GITHUB_ENV}
+
+ - name: Download the pipeline
+ env:
+ NXF_SINGULARITY_CACHEDIR: ./
+ run: |
+ nf-core download ${{ env.REPO_LOWERCASE }} \
+ --revision ${{ env.REPO_BRANCH }} \
+ --outdir ./${{ env.REPOTITLE_LOWERCASE }} \
+ --compress "none" \
+ --container-system 'singularity' \
+ --container-library "quay.io" -l "docker.io" -l "ghcr.io" \
+ --container-cache-utilisation 'amend' \
+ --download-configuration
+
+ - name: Inspect download
+ run: tree ./${{ env.REPOTITLE_LOWERCASE }}
+
+ - name: Run the downloaded pipeline
+ env:
+ NXF_SINGULARITY_CACHEDIR: ./
+ NXF_SINGULARITY_HOME_MOUNT: true
+ run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results
diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml
index 86f39997..7425a84b 100644
--- a/.github/workflows/fix-linting.yml
+++ b/.github/workflows/fix-linting.yml
@@ -4,7 +4,7 @@ on:
types: [created]
jobs:
- deploy:
+ fix-linting:
# Only run if comment is on a PR with the main repo, and if it contains the magic keywords
if: >
contains(github.event.comment.html_url, '/pull/') &&
@@ -13,10 +13,17 @@ jobs:
runs-on: ubuntu-latest
steps:
# Use the @nf-core-bot token to check out so we can push later
- - uses: actions/checkout@v4
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
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
+ with:
+ comment-id: ${{ github.event.comment.id }}
+ reactions: eyes
+
# Action runs on the issue comment, so we don't get the PR by default
# Use the gh cli to check out the PR
- name: Checkout Pull Request
@@ -24,32 +31,59 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }}
- - uses: actions/setup-node@v4
+ # Install and run pre-commit
+ - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5
+ with:
+ python-version: 3.11
- - name: Install Prettier
- run: npm install -g prettier @prettier/plugin-php
+ - name: Install pre-commit
+ run: pip install pre-commit
- # Check that we actually need to fix something
- - name: Run 'prettier --check'
- id: prettier_status
- run: |
- if prettier --check ${GITHUB_WORKSPACE}; then
- echo "result=pass" >> $GITHUB_OUTPUT
- else
- echo "result=fail" >> $GITHUB_OUTPUT
- fi
+ - name: Run pre-commit
+ id: pre-commit
+ run: pre-commit run --all-files
+ continue-on-error: true
- - name: Run 'prettier --write'
- if: steps.prettier_status.outputs.result == 'fail'
- run: prettier --write ${GITHUB_WORKSPACE}
+ # 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
+ with:
+ comment-id: ${{ github.event.comment.id }}
+ reactions: "+1"
- name: Commit & push changes
- if: steps.prettier_status.outputs.result == 'fail'
+ id: commit-and-push
+ if: steps.pre-commit.outcome == 'failure'
run: |
git config user.email "core@nf-co.re"
git config user.name "nf-core-bot"
git config push.default upstream
git add .
git status
- git commit -m "[automated] Fix linting with Prettier"
+ git commit -m "[automated] Fix code linting"
git push
+
+ - 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
+ 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
+ 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
+ with:
+ issue-number: ${{ github.event.issue.number }}
+ body: |
+ @${{ github.actor }} I tried to fix the linting errors, but it didn't work. Please fix them manually.
+ See [CI log](https://github.com/nf-core/viralrecon/actions/runs/${{ github.run_id }}) for more details.
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 905c58e4..81cd098e 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -11,61 +11,22 @@ on:
types: [published]
jobs:
- EditorConfig:
+ pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - uses: actions/setup-node@v4
-
- - name: Install editorconfig-checker
- run: npm install -g editorconfig-checker
-
- - name: Run ECLint check
- run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile')
-
- Prettier:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - uses: actions/setup-node@v4
-
- - name: Install Prettier
- run: npm install -g prettier
-
- - name: Run Prettier --check
- run: prettier --check ${GITHUB_WORKSPACE}
-
- PythonBlack:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Check code lints with Black
- uses: psf/black@stable
-
- # If the above check failed, post a comment on the PR explaining the failure
- - name: Post PR comment
- if: failure()
- uses: mshick/add-pr-comment@v1
+ - name: Set up Python 3.11
+ uses: actions/setup-python@v5
with:
- message: |
- ## Python linting (`black`) is failing
-
- To keep the code consistent with lots of contributors, we run automated code consistency checks.
- To fix this CI test, please run:
-
- * Install [`black`](https://black.readthedocs.io/en/stable/): `pip install black`
- * Fix formatting errors in your pipeline: `black .`
-
- Once you push these changes the test should pass, and you can hide this comment :+1:
+ python-version: 3.11
+ cache: "pip"
- We highly recommend setting up Black in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help!
+ - name: Install pre-commit
+ run: pip install pre-commit
- Thanks again for your contribution!
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- allow-repeats: false
+ - name: Run pre-commit
+ run: pre-commit run --all-files
nf-core:
runs-on: ubuntu-latest
@@ -76,7 +37,7 @@ jobs:
- name: Install Nextflow
uses: nf-core/setup-nextflow@v1
- - uses: actions/setup-python@v4
+ - uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: "x64"
@@ -99,7 +60,7 @@ jobs:
- name: Upload linting log file artifact
if: ${{ always() }}
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: linting-logs
path: |
diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml
index 0bbcd30f..147bcd10 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@v2
+ uses: dawidd6/action-download-artifact@v3
with:
workflow: linting.yml
workflow_conclusion: completed
diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml
index 6ad33927..21ac3f06 100644
--- a/.github/workflows/release-announcements.yml
+++ b/.github/workflows/release-announcements.yml
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/setup-python@v4
+ - uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
@@ -56,7 +56,7 @@ jobs:
bsky-post:
runs-on: ubuntu-latest
steps:
- - uses: zentered/bluesky-post-action@v0.0.2
+ - uses: zentered/bluesky-post-action@v0.1.0
with:
post: |
Pipeline release! ${{ github.repository }} v${{ github.event.release.tag_name }} - ${{ github.event.release.name }}!
diff --git a/.gitpod.yml b/.gitpod.yml
index 3b2bb254..3a146b7e 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -7,6 +7,7 @@ tasks:
- name: unset JAVA_TOOL_OPTIONS
command: |
unset JAVA_TOOL_OPTIONS
+
vscode:
extensions: # based on nf-core.nf-core-extensionpack
- codezombiech.gitignore # Language support for .gitignore files
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 0c31cdb9..af57081f 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,5 +1,10 @@
repos:
- repo: https://github.com/pre-commit/mirrors-prettier
- rev: "v2.7.1"
+ rev: "v3.1.0"
hooks:
- id: prettier
+ - repo: https://github.com/editorconfig-checker/editorconfig-checker.python
+ rev: "2.7.3"
+ hooks:
+ - id: editorconfig-checker
+ alias: ec
diff --git a/README.md b/README.md
index 46fbea6a..3d8e4d0b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,9 @@
-# ![nf-core/viralrecon](docs/images/nf-core-viralrecon_logo_light.png#gh-light-mode-only) ![nf-core/viralrecon](docs/images/nf-core-viralrecon_logo_dark.png#gh-dark-mode-only)
+
+
+
[![GitHub Actions CI Status](https://github.com/nf-core/viralrecon/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/viralrecon/actions?query=workflow%3A%22nf-core+CI%22)
[![GitHub Actions Linting Status](https://github.com/nf-core/viralrecon/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/viralrecon/actions?query=workflow%3A%22nf-core+linting%22)
diff --git a/assets/email_template.txt b/assets/email_template.txt
index 9cf77902..2ae75f0c 100644
--- a/assets/email_template.txt
+++ b/assets/email_template.txt
@@ -4,7 +4,7 @@
|\\ | |__ __ / ` / \\ |__) |__ } {
| \\| | \\__, \\__/ | \\ |___ \\`-._,-`-,
`._,._,'
- nf-core/viralrecon v${version}
+ nf-core/viralrecon ${version}
----------------------------------------------------
Run Name: $runName
diff --git a/assets/nf-core-viralrecon_logo_light.png b/assets/nf-core-viralrecon_logo_light.png
index dd92a124..fac65b01 100644
Binary files a/assets/nf-core-viralrecon_logo_light.png and b/assets/nf-core-viralrecon_logo_light.png differ
diff --git a/docs/images/nf-core-viralrecon_logo_dark.png b/docs/images/nf-core-viralrecon_logo_dark.png
index d66135b9..3b442d52 100644
Binary files a/docs/images/nf-core-viralrecon_logo_dark.png and b/docs/images/nf-core-viralrecon_logo_dark.png differ
diff --git a/docs/images/nf-core-viralrecon_logo_light.png b/docs/images/nf-core-viralrecon_logo_light.png
index dd92a124..05b264e2 100644
Binary files a/docs/images/nf-core-viralrecon_logo_light.png and b/docs/images/nf-core-viralrecon_logo_light.png differ
diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy
index 5fad0b9c..d6fb74e2 100755
--- a/lib/WorkflowMain.groovy
+++ b/lib/WorkflowMain.groovy
@@ -22,7 +22,7 @@ class WorkflowMain {
//
// Validate parameters and print summary to screen
//
- public static void initialise(workflow, params, log) {
+ public static void initialise(workflow, params, log, args) {
// Print workflow version and exit on --version
if (params.version) {
@@ -36,6 +36,8 @@ class WorkflowMain {
// Check that a -profile or Nextflow config has been provided to run the pipeline
NfcoreTemplate.checkConfigProvided(workflow, log)
+ // Check that the profile doesn't contain spaces and doesn't end with a trailing comma
+ checkProfile(workflow.profile, args, log)
// Check that conda channels are set-up correctly
if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) {
@@ -115,4 +117,16 @@ class WorkflowMain {
}
return val
}
+
+ //
+ // Exit pipeline if --profile contains spaces
+ //
+ private static void checkProfile(profile, args, log) {
+ if (profile.endsWith(',')) {
+ Nextflow.error "Profile cannot end with a trailing comma. Please remove the comma from the end of the profile string.\nHint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`."
+ }
+ if (args[0]) {
+ log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${args[0]}` has been detected.\n Hint: A common mistake is to provide multiple values to `-profile` separated by spaces. Please use commas to separate profiles instead,e.g., `-profile docker,test`."
+ }
+ }
}
diff --git a/lib/nfcore_external_java_deps.jar b/lib/nfcore_external_java_deps.jar
deleted file mode 100644
index 805c8bb5..00000000
Binary files a/lib/nfcore_external_java_deps.jar and /dev/null differ
diff --git a/main.nf b/main.nf
index fd4468ef..c13fc921 100644
--- a/main.nf
+++ b/main.nf
@@ -60,7 +60,7 @@ if (params.validate_params) {
validateParameters()
}
-WorkflowMain.initialise(workflow, params, log)
+WorkflowMain.initialise(workflow, params, log, args)
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/modules.json b/modules.json
index 087c09c2..e367b51c 100644
--- a/modules.json
+++ b/modules.json
@@ -72,17 +72,17 @@
},
"bedtools/merge": {
"branch": "master",
- "git_sha": "3b248b84694d1939ac4bb33df84bf6233a34d668",
+ "git_sha": "575e1bc54b083fb15e7dd8b5fcc40bea60e8ce83",
"installed_by": ["modules"]
},
"blast/blastn": {
"branch": "master",
- "git_sha": "f0d13ae7e1f9b24a705764f8673af859268d7077",
+ "git_sha": "209e5a3e2753c5e628736a662c877c20f341ee15",
"installed_by": ["modules"]
},
"blast/makeblastdb": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "a01c66c96e0bc610ad126e7adc4a94cd4acd1b48",
"installed_by": ["modules"]
},
"bowtie2/align": {
@@ -97,27 +97,27 @@
},
"cat/fastq": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "02fd5bd7275abad27aad32d5c852e0a9b1b98882",
"installed_by": ["modules"]
},
"custom/dumpsoftwareversions": {
"branch": "master",
- "git_sha": "bba7e362e4afead70653f84d8700588ea28d0f9e",
+ "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93",
"installed_by": ["modules"]
},
"custom/getchromsizes": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "1b0ffa4e5aed5b7e3cd4311af31bd3b2c8345051",
"installed_by": ["modules"]
},
"fastp": {
"branch": "master",
- "git_sha": "d086322563bdbb08c94bf15a7db58a39ccdb1520",
+ "git_sha": "c9488585ce7bd35ccd2a30faa2371454c8112fb9",
"installed_by": ["modules"]
},
"fastqc": {
"branch": "master",
- "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53",
+ "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c",
"installed_by": ["modules"]
},
"freyja/boot": {
@@ -142,7 +142,7 @@
},
"gunzip": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208",
"installed_by": ["modules"]
},
"ivar/consensus": {
@@ -162,7 +162,7 @@
},
"kraken2/kraken2": {
"branch": "master",
- "git_sha": "d6549f46c3c1c3fe3def110f3d18059a68a65cc6",
+ "git_sha": "8fae4ee738f645812384d6aba9d0dc651ad79ff9",
"installed_by": ["modules"]
},
"minia": {
@@ -202,7 +202,7 @@
},
"picard/markduplicates": {
"branch": "master",
- "git_sha": "20b0918591d4ba20047d7e13e5094bcceba81447",
+ "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006",
"installed_by": ["bam_markduplicates_picard"]
},
"plasmidid": {
@@ -222,32 +222,32 @@
},
"samtools/flagstat": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["bam_stats_samtools"]
},
"samtools/idxstats": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["bam_stats_samtools"]
},
"samtools/index": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"]
},
"samtools/sort": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["bam_sort_stats_samtools"]
},
"samtools/stats": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006",
"installed_by": ["bam_stats_samtools"]
},
"samtools/view": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"spades": {
@@ -272,7 +272,7 @@
},
"untar": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "e719354ba77df0a1bd310836aa2039b45c29d620",
"installed_by": ["modules"]
},
"vcflib/vcfuniq": {
@@ -286,17 +286,17 @@
"nf-core": {
"bam_markduplicates_picard": {
"branch": "master",
- "git_sha": "eeb9d37c6c8b0ab864b8fe68aa6531c5b2beba01",
+ "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647",
"installed_by": ["subworkflows"]
},
"bam_sort_stats_samtools": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647",
"installed_by": ["fastq_align_bowtie2"]
},
"bam_stats_samtools": {
"branch": "master",
- "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "git_sha": "0c38be7e652a0b2f3a37681ee4c0dbdf85677647",
"installed_by": ["bam_markduplicates_picard", "bam_sort_stats_samtools"]
},
"bam_variant_demix_boot_freyja": {
diff --git a/modules/nf-core/bedtools/merge/meta.yml b/modules/nf-core/bedtools/merge/meta.yml
index 5565ce48..d7463e3d 100644
--- a/modules/nf-core/bedtools/merge/meta.yml
+++ b/modules/nf-core/bedtools/merge/meta.yml
@@ -36,10 +36,10 @@ output:
description: File containing software versions
pattern: "versions.yml"
authors:
- - "@Emiller88"
+ - "@edmundmiller"
- "@sruthipsuresh"
- "@drpatelh"
maintainers:
- - "@Emiller88"
+ - "@edmundmiller"
- "@sruthipsuresh"
- "@drpatelh"
diff --git a/modules/nf-core/blast/blastn/main.nf b/modules/nf-core/blast/blastn/main.nf
index e8b96add..2613e547 100644
--- a/modules/nf-core/blast/blastn/main.nf
+++ b/modules/nf-core/blast/blastn/main.nf
@@ -29,7 +29,12 @@ process BLAST_BLASTN {
gzip -c -d ${fasta} > ${fasta_name}
fi
- DB=`find -L ./ -name "*.nin" | sed 's/\\.nin\$//'`
+ DB=`find -L ./ -name "*.nal" | sed 's/\\.nal\$//'`
+ if [ -z "\$DB" ]; then
+ DB=`find -L ./ -name "*.nin" | sed 's/\\.nin\$//'`
+ fi
+ echo Using \$DB
+
blastn \\
-num_threads ${task.cpus} \\
-db \$DB \\
diff --git a/modules/nf-core/blast/blastn/tests/main.nf.test b/modules/nf-core/blast/blastn/tests/main.nf.test
index 0e909a7e..02ecfab5 100644
--- a/modules/nf-core/blast/blastn/tests/main.nf.test
+++ b/modules/nf-core/blast/blastn/tests/main.nf.test
@@ -8,6 +8,7 @@ nextflow_process {
tag "modules_nfcore"
tag "blast"
tag "blast/blastn"
+ tag "blast/makeblastdb"
setup {
run("BLAST_MAKEBLASTDB") {
diff --git a/modules/nf-core/blast/makeblastdb/environment.yml b/modules/nf-core/blast/makeblastdb/environment.yml
index cf84a60e..a20783b0 100644
--- a/modules/nf-core/blast/makeblastdb/environment.yml
+++ b/modules/nf-core/blast/makeblastdb/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::blast=2.14.1
+ - bioconda::blast=2.15.0
diff --git a/modules/nf-core/blast/makeblastdb/main.nf b/modules/nf-core/blast/makeblastdb/main.nf
index cd1083d0..a2c73189 100644
--- a/modules/nf-core/blast/makeblastdb/main.nf
+++ b/modules/nf-core/blast/makeblastdb/main.nf
@@ -4,8 +4,8 @@ process BLAST_MAKEBLASTDB {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/blast:2.14.1--pl5321h6f7f691_0':
- 'biocontainers/blast:2.14.1--pl5321h6f7f691_0' }"
+ 'https://depot.galaxyproject.org/singularity/blast:2.15.0--pl5321h6f7f691_1':
+ 'biocontainers/blast:2.15.0--pl5321h6f7f691_1' }"
input:
tuple val(meta), path(fasta)
diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test b/modules/nf-core/cat/fastq/tests/main.nf.test
index f5f94182..dab2e14c 100644
--- a/modules/nf-core/cat/fastq/tests/main.nf.test
+++ b/modules/nf-core/cat/fastq/tests/main.nf.test
@@ -16,11 +16,11 @@ nextflow_process {
}
process {
"""
- input[0] = [
- [ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true) ]
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)]
+ ])
"""
}
}
@@ -28,8 +28,7 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out.reads).match() },
- { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ { assert snapshot(process.out).match() }
)
}
}
@@ -42,13 +41,13 @@ nextflow_process {
}
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) ]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_2.fastq.gz', checkIfExists: true)]
+ ])
"""
}
}
@@ -56,8 +55,7 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out.reads).match() },
- { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ { assert snapshot(process.out).match() }
)
}
}
@@ -70,11 +68,11 @@ nextflow_process {
}
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true)]
+ ])
"""
}
}
@@ -82,8 +80,7 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out.reads).match() },
- { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ { assert snapshot(process.out).match() }
)
}
}
@@ -96,13 +93,13 @@ nextflow_process {
}
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)]
+ ])
"""
}
}
@@ -110,8 +107,7 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out.reads).match() },
- { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ { assert snapshot(process.out).match() }
)
}
}
@@ -124,10 +120,10 @@ nextflow_process {
}
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true)]
+ ])
"""
}
}
@@ -135,8 +131,7 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out.reads).match() },
- { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ { assert snapshot(process.out).match() }
)
}
}
diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test.snap b/modules/nf-core/cat/fastq/tests/main.nf.test.snap
index ec2342e5..43dfe28f 100644
--- a/modules/nf-core/cat/fastq/tests/main.nf.test.snap
+++ b/modules/nf-core/cat/fastq/tests/main.nf.test.snap
@@ -1,78 +1,169 @@
{
"test_cat_fastq_single_end": {
"content": [
- [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d"
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,ee314a9bd568d06617171b0c85f508da"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
+ ],
+ "reads": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,ee314a9bd568d06617171b0c85f508da"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
]
- ]
+ }
],
- "timestamp": "2023-10-17T23:19:12.990284837"
+ "timestamp": "2024-01-17T17:30:39.816981"
},
"test_cat_fastq_single_end_same_name": {
"content": [
- [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66"
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
+ ],
+ "reads": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
]
- ]
+ }
],
- "timestamp": "2023-10-17T23:19:31.554568147"
+ "timestamp": "2024-01-17T17:32:35.229332"
},
"test_cat_fastq_single_end_single_file": {
"content": [
- [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test.merged.fastq.gz:md5,e325ef7deb4023447a1f074e285761af"
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,4161df271f9bfcd25d5845a1e220dbec"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
+ ],
+ "reads": [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,4161df271f9bfcd25d5845a1e220dbec"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
]
- ]
+ }
],
- "timestamp": "2023-10-17T23:19:49.629360033"
+ "timestamp": "2024-01-17T17:34:00.058829"
},
"test_cat_fastq_paired_end_same_name": {
"content": [
- [
- [
- {
- "id": "test",
- "single_end": false
- },
+ {
+ "0": [
[
- "test_1.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66",
- "test_2.merged.fastq.gz:md5,fe9f266f43a6fc3dcab690a18419a56e"
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22",
+ "test_2.merged.fastq.gz:md5,a52cab0b840c7178b0ea83df1fdbe8d5"
+ ]
]
+ ],
+ "1": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
+ ],
+ "reads": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22",
+ "test_2.merged.fastq.gz:md5,a52cab0b840c7178b0ea83df1fdbe8d5"
+ ]
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
]
- ]
+ }
],
- "timestamp": "2023-10-17T23:19:40.711617539"
+ "timestamp": "2024-01-17T17:33:33.031555"
},
"test_cat_fastq_paired_end": {
"content": [
- [
- [
- {
- "id": "test",
- "single_end": false
- },
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22",
+ "test_2.merged.fastq.gz:md5,a52cab0b840c7178b0ea83df1fdbe8d5"
+ ]
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
+ ],
+ "reads": [
[
- "test_1.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d",
- "test_2.merged.fastq.gz:md5,77c8e966e130d8c6b6ec9be52fcb2bda"
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,3ad9406595fafec8172368f9cd0b6a22",
+ "test_2.merged.fastq.gz:md5,a52cab0b840c7178b0ea83df1fdbe8d5"
+ ]
]
+ ],
+ "versions": [
+ "versions.yml:md5,d42d6e24d67004608495883e00bd501b"
]
- ]
+ }
],
- "timestamp": "2023-10-18T07:53:20.923560211"
+ "timestamp": "2024-01-17T17:32:02.270935"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml
index f0c63f69..9b3272bc 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/environment.yml
+++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::multiqc=1.17
+ - bioconda::multiqc=1.19
diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf
index 7685b33c..f2187611 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/main.nf
+++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf
@@ -4,8 +4,8 @@ process CUSTOM_DUMPSOFTWAREVERSIONS {
// Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' :
- 'biocontainers/multiqc:1.17--pyhdfd78af_0' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' :
+ 'biocontainers/multiqc:1.19--pyhdfd78af_0' }"
input:
path versions
diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test
index eec1db10..b1e1630b 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test
+++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test
@@ -31,7 +31,12 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(process.out).match() }
+ { assert snapshot(
+ process.out.versions,
+ file(process.out.mqc_yml[0]).readLines()[0..10],
+ file(process.out.yml[0]).readLines()[0..7]
+ ).match()
+ }
)
}
}
diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap
index 4274ed57..5f59a936 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap
+++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap
@@ -1,27 +1,33 @@
{
"Should run without failures": {
"content": [
- {
- "0": [
- "software_versions.yml:md5,1c851188476409cda5752ce971b20b58"
- ],
- "1": [
- "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d"
- ],
- "2": [
- "versions.yml:md5,3843ac526e762117eedf8825b40683df"
- ],
- "mqc_yml": [
- "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d"
- ],
- "versions": [
- "versions.yml:md5,3843ac526e762117eedf8825b40683df"
- ],
- "yml": [
- "software_versions.yml:md5,1c851188476409cda5752ce971b20b58"
- ]
- }
+ [
+ "versions.yml:md5,76d454d92244589d32455833f7c1ba6d"
+ ],
+ [
+ "data: \"\\n\\n \\n \\n Process Name | \\n \\",
+ " \\ Software | \\n Version | \\n
\\n \\n\\",
+ " \\n\\n\\n CUSTOM_DUMPSOFTWAREVERSIONS | \\n python | \\n\\",
+ " \\ 3.11.7 | \\n
\\n\\n\\n | \\n \\",
+ " \\ yaml | \\n 5.4.1 | \\n
\\n\\n\\n\\",
+ " \\n\\n TOOL1 | \\n tool1 | \\n\\",
+ " \\ 0.11.9 | \\n
\\n\\n\\n\\n\\n TOOL2 | \\n\\",
+ " \\ tool2 | \\n 1.9 | \\n
\\n\\n\\n\\",
+ " \\n\\n Workflow | \\n Nextflow | \\n\\"
+ ],
+ [
+ "CUSTOM_DUMPSOFTWAREVERSIONS:",
+ " python: 3.11.7",
+ " yaml: 5.4.1",
+ "TOOL1:",
+ " tool1: 0.11.9",
+ "TOOL2:",
+ " tool2: '1.9'",
+ "Workflow:"
+ ]
],
- "timestamp": "2023-11-03T14:43:22.157011"
+ "timestamp": "2024-01-09T23:01:18.710682"
}
-}
+}
\ No newline at end of file
diff --git a/modules/nf-core/custom/getchromsizes/tests/main.nf.test b/modules/nf-core/custom/getchromsizes/tests/main.nf.test
index 844bd996..9f6b5640 100644
--- a/modules/nf-core/custom/getchromsizes/tests/main.nf.test
+++ b/modules/nf-core/custom/getchromsizes/tests/main.nf.test
@@ -17,9 +17,10 @@ nextflow_process {
}
process {
"""
- input[0] = [ [ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
@@ -41,9 +42,10 @@ nextflow_process {
}
process {
"""
- input[0] = [ [ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['genome']['genome_fasta_gz'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.gz', checkIfExists: true)
+ ])
"""
}
}
diff --git a/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap b/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap
index 142298ee..2e560bd3 100644
--- a/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap
+++ b/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap
@@ -5,8 +5,7 @@
"0": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.sizes:md5,a57c401f27ae5133823fb09fb21c8a3c"
]
@@ -14,8 +13,7 @@
"1": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
]
@@ -29,8 +27,7 @@
"fai": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
]
@@ -41,8 +38,7 @@
"sizes": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.sizes:md5,a57c401f27ae5133823fb09fb21c8a3c"
]
@@ -52,7 +48,7 @@
]
}
],
- "timestamp": "2023-10-17T10:20:42.652464"
+ "timestamp": "2024-01-17T17:48:35.562918"
},
"test_custom_getchromsizes_bgzip": {
"content": [
@@ -60,8 +56,7 @@
"0": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.sizes:md5,a57c401f27ae5133823fb09fb21c8a3c"
]
@@ -69,8 +64,7 @@
"1": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
]
@@ -78,8 +72,7 @@
"2": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474"
]
@@ -90,8 +83,7 @@
"fai": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
]
@@ -99,8 +91,7 @@
"gzi": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474"
]
@@ -108,8 +99,7 @@
"sizes": [
[
{
- "id": "test",
- "single_end": false
+ "id": "test"
},
"genome.fasta.gz.sizes:md5,a57c401f27ae5133823fb09fb21c8a3c"
]
@@ -119,6 +109,6 @@
]
}
],
- "timestamp": "2023-10-17T10:22:25.185203"
+ "timestamp": "2024-01-17T17:49:02.562311"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/fastp/tests/main.nf.test b/modules/nf-core/fastp/tests/main.nf.test
index 17dce8ac..fa7e5b4d 100644
--- a/modules/nf-core/fastp/tests/main.nf.test
+++ b/modules/nf-core/fastp/tests/main.nf.test
@@ -19,11 +19,10 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:true ],
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
- ]
-
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -89,11 +88,10 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:true ],
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
- ]
-
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -135,12 +133,11 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
-
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -220,12 +217,11 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
-
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -266,10 +262,10 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [ [ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) ]
- ]
-
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -336,10 +332,10 @@ nextflow_process {
save_trimmed_fail = false
save_merged = false
- input[0] = [ [ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) ]
- ]
-
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -380,9 +376,10 @@ nextflow_process {
save_trimmed_fail = true
save_merged = false
- input[0] = [ [ id:'test', single_end:true ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -440,13 +437,11 @@ nextflow_process {
save_trimmed_fail = true
save_merged = false
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- [
- file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)
- ]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -519,11 +514,11 @@ nextflow_process {
adapter_fasta = []
save_trimmed_fail = false
save_merged = true
-
- input[0] = [ [ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -613,10 +608,11 @@ nextflow_process {
save_trimmed_fail = false
save_merged = true
- input[0] = [ [ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
@@ -653,14 +649,15 @@ nextflow_process {
}
process {
"""
- adapter_fasta = file("https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/fastp/adapters.fasta", checkIfExists: true)
+ adapter_fasta = Channel.of([ file(params.modules_testdata_base_path + 'delete_me/fastp/adapters.fasta', checkIfExists: true) ])
save_trimmed_fail = false
save_merged = true
- input[0] = [ [ id:'test', single_end:false ], // meta map
- [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
input[1] = adapter_fasta
input[2] = save_trimmed_fail
input[3] = save_merged
diff --git a/modules/nf-core/fastp/tests/main.nf.test.snap b/modules/nf-core/fastp/tests/main.nf.test.snap
index 1b7d2419..6a71b680 100644
--- a/modules/nf-core/fastp/tests/main.nf.test.snap
+++ b/modules/nf-core/fastp/tests/main.nf.test.snap
@@ -12,7 +12,7 @@
"{id=test, single_end=false}"
]
],
- "timestamp": "2023-12-21T09:44:37.202512"
+ "timestamp": "2024-01-17T18:07:15.398827"
},
"fastp test_fastp_interleaved_json": {
"content": [
@@ -26,7 +26,7 @@
]
]
],
- "timestamp": "2023-10-17T11:04:45.794175881"
+ "timestamp": "2024-01-17T18:08:06.123035"
},
"test_fastp_paired_end_merged-for_stub_match": {
"content": [
@@ -42,7 +42,7 @@
"{id=test, single_end=false}"
]
],
- "timestamp": "2023-12-21T09:53:45.237014"
+ "timestamp": "2024-01-17T18:10:13.467574"
},
"test_fastp_single_end_json": {
"content": [
@@ -56,7 +56,7 @@
]
]
],
- "timestamp": "2023-10-17T11:04:10.566343705"
+ "timestamp": "2024-01-17T18:06:00.223817"
},
"versions": {
"content": [
@@ -64,7 +64,7 @@
"versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02"
]
],
- "timestamp": "2023-10-17T11:04:10.582076024"
+ "timestamp": "2024-01-17T18:06:00.248422"
},
"test_fastp_interleaved-for_stub_match": {
"content": [
@@ -76,7 +76,7 @@
"{id=test, single_end=true}"
]
],
- "timestamp": "2023-12-21T09:48:43.148485"
+ "timestamp": "2024-01-17T18:08:06.127974"
},
"test_fastp_single_end-for_stub_match": {
"content": [
@@ -88,7 +88,7 @@
"{id=test, single_end=true}"
]
],
- "timestamp": "2023-12-21T09:20:07.254788"
+ "timestamp": "2024-01-17T18:06:00.244202"
},
"test_fastp_single_end_trim_fail_json": {
"content": [
@@ -102,6 +102,6 @@
]
]
],
- "timestamp": "2023-10-17T11:05:00.379878948"
+ "timestamp": "2024-01-17T18:08:41.942317"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test
index b9e8f926..70edae4d 100644
--- a/modules/nf-core/fastqc/tests/main.nf.test
+++ b/modules/nf-core/fastqc/tests/main.nf.test
@@ -3,24 +3,20 @@ nextflow_process {
name "Test Process FASTQC"
script "../main.nf"
process "FASTQC"
+
tag "modules"
tag "modules_nfcore"
tag "fastqc"
- test("Single-Read") {
+ test("sarscov2 single-end [fastq]") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id: 'test', single_end:true ],
- [
- file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)
- ]
- ]
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
"""
}
}
@@ -28,82 +24,189 @@ nextflow_process {
then {
assertAll (
{ assert process.success },
+
// NOTE The report contains the date inside it, which means that the md5sum is stable per day, but not longer than that. So you can't md5sum it.
// looks like this:
// https://github.com/nf-core/modules/pull/3903#issuecomment-1743620039
- { assert process.out.html.get(0).get(1) ==~ ".*/test_fastqc.html" },
- { assert path(process.out.html.get(0).get(1)).getText().contains("
File type | Conventional base calls |
") },
- { assert snapshot(process.out.versions).match("versions") },
- { assert process.out.zip.get(0).get(1) ==~ ".*/test_fastqc.zip" }
+
+ { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" },
+ { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" },
+ { assert path(process.out.html[0][1]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_single") }
+ )
+ }
+ }
+
+ test("sarscov2 paired-end [fastq]") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id: 'test', single_end: false], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ]
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+
+ { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" },
+ { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" },
+ { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" },
+ { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" },
+ { assert path(process.out.html[0][1][0]).text.contains("File type | Conventional base calls |
") },
+ { assert path(process.out.html[0][1][1]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_paired") }
+ )
+ }
+ }
+
+ test("sarscov2 interleaved [fastq]") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id: 'test', single_end: false], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true)
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+
+ { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" },
+ { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" },
+ { assert path(process.out.html[0][1]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_interleaved") }
)
}
}
-// TODO
-// //
-// // Test with paired-end data
-// //
-// workflow test_fastqc_paired_end {
-// input = [
-// [id: 'test', single_end: false], // meta map
-// [
-// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
-// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)
-// ]
-// ]
-
-// FASTQC ( input )
-// }
-
-// //
-// // Test with interleaved data
-// //
-// workflow test_fastqc_interleaved {
-// input = [
-// [id: 'test', single_end: false], // meta map
-// file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true)
-// ]
-
-// FASTQC ( input )
-// }
-
-// //
-// // Test with bam data
-// //
-// workflow test_fastqc_bam {
-// input = [
-// [id: 'test', single_end: false], // meta map
-// file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)
-// ]
-
-// FASTQC ( input )
-// }
-
-// //
-// // Test with multiple samples
-// //
-// workflow test_fastqc_multiple {
-// input = [
-// [id: 'test', single_end: false], // meta map
-// [
-// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
-// file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true),
-// file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true),
-// file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true)
-// ]
-// ]
-
-// FASTQC ( input )
-// }
-
-// //
-// // Test with custom prefix
-// //
-// workflow test_fastqc_custom_prefix {
-// input = [
-// [ id:'mysample', single_end:true ], // meta map
-// file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)
-// ]
-
-// FASTQC ( input )
-// }
+
+ test("sarscov2 paired-end [bam]") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id: 'test', single_end: false], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true)
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+
+ { assert process.out.html[0][1] ==~ ".*/test_fastqc.html" },
+ { assert process.out.zip[0][1] ==~ ".*/test_fastqc.zip" },
+ { assert path(process.out.html[0][1]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_bam") }
+ )
+ }
+ }
+
+ test("sarscov2 multiple [fastq]") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id: 'test', single_end: false], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test2_2.fastq.gz', checkIfExists: true) ]
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+
+ { assert process.out.html[0][1][0] ==~ ".*/test_1_fastqc.html" },
+ { assert process.out.html[0][1][1] ==~ ".*/test_2_fastqc.html" },
+ { assert process.out.html[0][1][2] ==~ ".*/test_3_fastqc.html" },
+ { assert process.out.html[0][1][3] ==~ ".*/test_4_fastqc.html" },
+ { assert process.out.zip[0][1][0] ==~ ".*/test_1_fastqc.zip" },
+ { assert process.out.zip[0][1][1] ==~ ".*/test_2_fastqc.zip" },
+ { assert process.out.zip[0][1][2] ==~ ".*/test_3_fastqc.zip" },
+ { assert process.out.zip[0][1][3] ==~ ".*/test_4_fastqc.zip" },
+ { assert path(process.out.html[0][1][0]).text.contains("File type | Conventional base calls |
") },
+ { assert path(process.out.html[0][1][1]).text.contains("File type | Conventional base calls |
") },
+ { assert path(process.out.html[0][1][2]).text.contains("File type | Conventional base calls |
") },
+ { assert path(process.out.html[0][1][3]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_multiple") }
+ )
+ }
+ }
+
+ test("sarscov2 custom_prefix") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [ id:'mysample', single_end:true ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true)
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+
+ { assert process.out.html[0][1] ==~ ".*/mysample_fastqc.html" },
+ { assert process.out.zip[0][1] ==~ ".*/mysample_fastqc.zip" },
+ { assert path(process.out.html[0][1]).text.contains("File type | Conventional base calls |
") },
+
+ { assert snapshot(process.out.versions).match("fastqc_versions_custom_prefix") }
+ )
+ }
+ }
+
+ test("sarscov2 single-end [fastq] - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [ id: 'test', single_end:true ],
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll (
+ { assert process.success },
+ { assert snapshot(process.out.html.collect { file(it[1]).getName() } +
+ process.out.zip.collect { file(it[1]).getName() } +
+ process.out.versions ).match("fastqc_stub") }
+ )
+ }
+ }
+
}
diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap
index 636a32ce..86f7c311 100644
--- a/modules/nf-core/fastqc/tests/main.nf.test.snap
+++ b/modules/nf-core/fastqc/tests/main.nf.test.snap
@@ -1,10 +1,88 @@
{
- "versions": {
+ "fastqc_versions_interleaved": {
"content": [
[
"versions.yml:md5,e1cc25ca8af856014824abd842e93978"
]
],
- "timestamp": "2023-10-09T23:40:54+0000"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:40:07.293713"
+ },
+ "fastqc_stub": {
+ "content": [
+ [
+ "test.html",
+ "test.zip",
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:31:01.425198"
+ },
+ "fastqc_versions_multiple": {
+ "content": [
+ [
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:40:55.797907"
+ },
+ "fastqc_versions_bam": {
+ "content": [
+ [
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:40:26.795862"
+ },
+ "fastqc_versions_single": {
+ "content": [
+ [
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:39:27.043675"
+ },
+ "fastqc_versions_paired": {
+ "content": [
+ [
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:39:47.584191"
+ },
+ "fastqc_versions_custom_prefix": {
+ "content": [
+ [
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-01-31T17:41:14.576531"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/gunzip/tests/main.nf.test b/modules/nf-core/gunzip/tests/main.nf.test
index d0317922..6406008e 100644
--- a/modules/nf-core/gunzip/tests/main.nf.test
+++ b/modules/nf-core/gunzip/tests/main.nf.test
@@ -15,10 +15,11 @@ nextflow_process {
}
process {
"""
- input[0] = [
- [],
- file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true)
+ ]
+ )
"""
}
}
diff --git a/modules/nf-core/kraken2/kraken2/tests/main.nf.test b/modules/nf-core/kraken2/kraken2/tests/main.nf.test
index 4cf63e2f..4c513021 100644
--- a/modules/nf-core/kraken2/kraken2/tests/main.nf.test
+++ b/modules/nf-core/kraken2/kraken2/tests/main.nf.test
@@ -2,10 +2,11 @@ nextflow_process {
name "Test Process KRAKEN2_KRAKEN2"
script "../main.nf"
process "KRAKEN2_KRAKEN2"
- tag "kraken2"
- tag "kraken2/kraken2"
tag "modules"
tag "modules_nfcore"
+ tag "untar"
+ tag "kraken2"
+ tag "kraken2/kraken2"
setup {
run("UNTAR") {
diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml
index bc0bdb5b..7625b752 100644
--- a/modules/nf-core/multiqc/environment.yml
+++ b/modules/nf-core/multiqc/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::multiqc=1.18
+ - bioconda::multiqc=1.19
diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test
index c2dad217..d0438eda 100644
--- a/modules/nf-core/multiqc/tests/main.nf.test
+++ b/modules/nf-core/multiqc/tests/main.nf.test
@@ -7,12 +7,9 @@ nextflow_process {
tag "modules_nfcore"
tag "multiqc"
- test("MULTIQC: FASTQC") {
+ test("sarscov2 single-end [fastqc]") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)])
@@ -26,20 +23,17 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert path(process.out.report.get(0)).exists() },
- { assert path(process.out.data.get(0)).exists() },
- { assert path(process.out.versions.get(0)).getText().contains("multiqc") }
+ { assert process.out.report[0] ==~ ".*/multiqc_report.html" },
+ { assert process.out.data[0] ==~ ".*/multiqc_data" },
+ { assert snapshot(process.out.versions).match("versions") }
)
}
}
- test("MULTIQC: FASTQC and a config file") {
+ test("sarscov2 single-end [fastqc] [config]") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)])
@@ -53,9 +47,35 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert path(process.out.report.get(0)).exists() },
- { assert path(process.out.data.get(0)).exists() },
- { assert path(process.out.versions.get(0)).getText().contains("multiqc") }
+ { assert process.out.report[0] ==~ ".*/multiqc_report.html" },
+ { assert process.out.data[0] ==~ ".*/multiqc_data" },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("sarscov2 single-end [fastqc] - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz_fastqc_zip'], checkIfExists: true)])
+ input[1] = []
+ input[2] = []
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.report.collect { file(it).getName() } +
+ process.out.data.collect { file(it).getName() } +
+ process.out.plots.collect { file(it).getName() } +
+ process.out.versions ).match() }
)
}
diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap
new file mode 100644
index 00000000..d37e7304
--- /dev/null
+++ b/modules/nf-core/multiqc/tests/main.nf.test.snap
@@ -0,0 +1,21 @@
+{
+ "versions": {
+ "content": [
+ [
+ "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d"
+ ]
+ ],
+ "timestamp": "2024-01-09T23:02:49.911994"
+ },
+ "sarscov2 single-end [fastqc] - stub": {
+ "content": [
+ [
+ "multiqc_report.html",
+ "multiqc_data",
+ "multiqc_plots",
+ "versions.yml:md5,14e9a2661241abd828f4f06a7b5c222d"
+ ]
+ ],
+ "timestamp": "2024-01-09T23:03:14.524346"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/picard/markduplicates/tests/main.nf.test b/modules/nf-core/picard/markduplicates/tests/main.nf.test
index b2bba094..c5a29b4b 100644
--- a/modules/nf-core/picard/markduplicates/tests/main.nf.test
+++ b/modules/nf-core/picard/markduplicates/tests/main.nf.test
@@ -9,23 +9,23 @@ nextflow_process {
tag "picard"
tag "picard/markduplicates"
- test("sarscov2 - bam, fasta, fai - sorted bam") {
+ test("sarscov2 [unsorted bam]") {
when {
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)
- ]
- input[1] = [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
- input[2] = [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true)
- ]
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)
+ ])
"""
}
}
@@ -33,32 +33,30 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(
- file(process.out.bam[0][1]).name,
- path(process.out.metrics.get(0).get(1)).readLines()[0..2],
- process.out.versions
- ).match() }
+ { assert snapshot(file(process.out.bam[0][1]).name).match("unsorted_bam_name") },
+ { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("unsorted_bam_metrics") },
+ { assert snapshot(process.out.versions).match("unsorted_bam_versions") }
)
}
}
- test("sarscov2 - bam, fasta, fai - unsorted bam") {
+ test("sarscov2 [sorted bam]") {
when {
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true)
- ]
- input[1] = [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
- input[2] = [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true)
- ]
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)
+ ])
"""
}
}
@@ -66,32 +64,30 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(
- file(process.out.bam[0][1]).name,
- path(process.out.metrics.get(0).get(1)).readLines()[0..2],
- process.out.versions
- ).match() }
+ { assert snapshot(file(process.out.bam[0][1]).name).match("sorted_bam_name") },
+ { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("sorted_bam_metrics") },
+ { assert snapshot(process.out.versions).match("sorted_bam_versions") }
)
}
}
- test("homo_sapiens - cram, fasta, fai") {
+ test("homo_sapiens [cram]") {
when {
process {
"""
- input[0] = [
+ input[0] = Channel.of([
[ id:'test', single_end:false ], // meta map
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)
- ]
- input[1] = [
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
[ id:'genome' ],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
- ]
- input[2] = [
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
[ id:'genome' ],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
- ]
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ])
"""
}
}
@@ -99,13 +95,10 @@ nextflow_process {
then {
assertAll(
{ assert process.success },
- { assert snapshot(
- file(process.out.bam[0][1]).name,
- path(process.out.metrics.get(0).get(1)).readLines()[0..2],
- process.out.versions
- ).match() }
+ { assert snapshot(file(process.out.bam[0][1]).name).match("cram_name") },
+ { assert snapshot(path(process.out.metrics.get(0).get(1)).readLines()[0..2]).match("cram_metrics") },
+ { assert snapshot(process.out.versions).match("cram_versions") }
)
}
}
-
}
diff --git a/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap
index cd788a4d..31c9130d 100644
--- a/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap
+++ b/modules/nf-core/picard/markduplicates/tests/main.nf.test.snap
@@ -1,44 +1,74 @@
{
- "sarscov2 - bam, fasta, fai - unsorted bam": {
+ "sorted_bam_versions": {
"content": [
- "test.marked.bam",
- [
- "## htsjdk.samtools.metrics.StringHeader",
- "# MarkDuplicates --INPUT test.paired_end.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false",
- "## htsjdk.samtools.metrics.StringHeader"
- ],
[
"versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17"
]
],
- "timestamp": "2023-11-28T10:50:37.735339781"
+ "timestamp": "2024-01-19T10:26:45.092349"
},
- "homo_sapiens - cram, fasta, fai": {
+ "unsorted_bam_name": {
+ "content": [
+ "test.marked.bam"
+ ],
+ "timestamp": "2024-01-19T10:26:28.100755"
+ },
+ "cram_metrics": {
"content": [
- "test.marked.bam",
[
"## htsjdk.samtools.metrics.StringHeader",
"# MarkDuplicates --INPUT test.paired_end.sorted.cram --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false",
"## htsjdk.samtools.metrics.StringHeader"
- ],
- [
- "versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17"
]
],
- "timestamp": "2023-11-28T10:50:48.897954543"
+ "timestamp": "2024-01-19T10:27:03.253071"
},
- "sarscov2 - bam, fasta, fai - sorted bam": {
+ "sorted_bam_metrics": {
"content": [
- "test.marked.bam",
[
"## htsjdk.samtools.metrics.StringHeader",
"# MarkDuplicates --INPUT test.paired_end.sorted.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false",
"## htsjdk.samtools.metrics.StringHeader"
- ],
+ ]
+ ],
+ "timestamp": "2024-01-19T10:26:45.086503"
+ },
+ "cram_name": {
+ "content": [
+ "test.marked.bam"
+ ],
+ "timestamp": "2024-01-19T10:27:03.241617"
+ },
+ "cram_versions": {
+ "content": [
[
"versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17"
]
],
- "timestamp": "2023-11-28T10:50:26.591387512"
+ "timestamp": "2024-01-19T10:27:03.26989"
+ },
+ "unsorted_bam_versions": {
+ "content": [
+ [
+ "versions.yml:md5,b699af51b1956f3810f8a7c066e0ab17"
+ ]
+ ],
+ "timestamp": "2024-01-19T10:26:28.159071"
+ },
+ "unsorted_bam_metrics": {
+ "content": [
+ [
+ "## htsjdk.samtools.metrics.StringHeader",
+ "# MarkDuplicates --INPUT test.paired_end.bam --OUTPUT test.marked.bam --METRICS_FILE test.marked.MarkDuplicates.metrics.txt --ASSUME_SORT_ORDER queryname --REFERENCE_SEQUENCE genome.fasta --MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP 50000 --MAX_FILE_HANDLES_FOR_READ_ENDS_MAP 8000 --SORTING_COLLECTION_SIZE_RATIO 0.25 --TAG_DUPLICATE_SET_MEMBERS false --REMOVE_SEQUENCING_DUPLICATES false --TAGGING_POLICY DontTag --CLEAR_DT true --DUPLEX_UMI false --FLOW_MODE false --FLOW_QUALITY_SUM_STRATEGY false --USE_END_IN_UNPAIRED_READS false --USE_UNPAIRED_CLIPPED_END false --UNPAIRED_END_UNCERTAINTY 0 --FLOW_SKIP_FIRST_N_FLOWS 0 --FLOW_Q_IS_KNOWN_END false --FLOW_EFFECTIVE_QUALITY_THRESHOLD 15 --ADD_PG_TAG_TO_READS true --REMOVE_DUPLICATES false --ASSUME_SORTED false --DUPLICATE_SCORING_STRATEGY SUM_OF_BASE_QUALITIES --PROGRAM_RECORD_ID MarkDuplicates --PROGRAM_GROUP_NAME MarkDuplicates --READ_NAME_REGEX --OPTICAL_DUPLICATE_PIXEL_DISTANCE 100 --MAX_OPTICAL_DUPLICATE_SET_SIZE 300000 --VERBOSITY INFO --QUIET false --VALIDATION_STRINGENCY STRICT --COMPRESSION_LEVEL 5 --MAX_RECORDS_IN_RAM 500000 --CREATE_INDEX false --CREATE_MD5_FILE false --help false --version false --showHidden false --USE_JDK_DEFLATER false --USE_JDK_INFLATER false",
+ "## htsjdk.samtools.metrics.StringHeader"
+ ]
+ ],
+ "timestamp": "2024-01-19T10:26:28.143979"
+ },
+ "sorted_bam_name": {
+ "content": [
+ "test.marked.bam"
+ ],
+ "timestamp": "2024-01-19T10:26:45.080116"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/samtools/flagstat/environment.yml b/modules/nf-core/samtools/flagstat/environment.yml
index 5efae053..dd0b5c19 100644
--- a/modules/nf-core/samtools/flagstat/environment.yml
+++ b/modules/nf-core/samtools/flagstat/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/idxstats/environment.yml b/modules/nf-core/samtools/idxstats/environment.yml
index 2401db0f..de3ed47e 100644
--- a/modules/nf-core/samtools/idxstats/environment.yml
+++ b/modules/nf-core/samtools/idxstats/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml
index 296ed99e..81f09391 100644
--- a/modules/nf-core/samtools/index/environment.yml
+++ b/modules/nf-core/samtools/index/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/sort/environment.yml b/modules/nf-core/samtools/sort/environment.yml
index cd50868c..f4064b72 100644
--- a/modules/nf-core/samtools/sort/environment.yml
+++ b/modules/nf-core/samtools/sort/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/stats/environment.yml b/modules/nf-core/samtools/stats/environment.yml
index b89ce647..b45ba90c 100644
--- a/modules/nf-core/samtools/stats/environment.yml
+++ b/modules/nf-core/samtools/stats/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml
index 99aa69d0..73ce7999 100644
--- a/modules/nf-core/samtools/view/environment.yml
+++ b/modules/nf-core/samtools/view/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml
index d6917da3..0c9cbb10 100644
--- a/modules/nf-core/untar/environment.yml
+++ b/modules/nf-core/untar/environment.yml
@@ -1,9 +1,11 @@
name: untar
+
channels:
- conda-forge
- bioconda
- defaults
+
dependencies:
- - conda-forge::sed=4.7
- conda-forge::grep=3.11
+ - conda-forge::sed=4.7
- conda-forge::tar=1.34
diff --git a/modules/nf-core/untar/tests/main.nf.test b/modules/nf-core/untar/tests/main.nf.test
index d40db13d..679e83c7 100644
--- a/modules/nf-core/untar/tests/main.nf.test
+++ b/modules/nf-core/untar/tests/main.nf.test
@@ -16,7 +16,7 @@ nextflow_process {
}
process {
"""
- input[0] = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ]
+ input[0] = [ [], file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/db/kraken2.tar.gz', checkIfExists: true) ]
"""
}
}
@@ -30,28 +30,6 @@ nextflow_process {
}
- test("test_untar_different_output_path") {
-
- when {
- params {
- outdir = "$outputDir"
- }
- process {
- """
- input[0] = [ [], file(params.test_data['homo_sapiens']['illumina']['test_flowcell'], checkIfExists: true) ]
- """
- }
- }
-
- then {
- assertAll (
- { assert process.success },
- { assert snapshot(process.out.untar).match("test_untar_different_output_path") },
- )
- }
-
- }
-
test("test_untar_onlyfiles") {
when {
@@ -60,7 +38,7 @@ nextflow_process {
}
process {
"""
- input[0] = [ [], file(params.test_data['generic']['tar']['tar_gz'], checkIfExists: true) ]
+ input[0] = [ [], file(params.modules_testdata_base_path + 'generic/tar/hello.tar.gz', checkIfExists: true) ]
"""
}
}
diff --git a/modules/nf-core/untar/tests/main.nf.test.snap b/modules/nf-core/untar/tests/main.nf.test.snap
index 146c8678..ace42576 100644
--- a/modules/nf-core/untar/tests/main.nf.test.snap
+++ b/modules/nf-core/untar/tests/main.nf.test.snap
@@ -1,483 +1,4 @@
{
- "test_untar_different_output_path": {
- "content": [
- [
- [
- [
-
- ],
- [
- [
- [
- [
- [
- [
- "s_1_1101.bcl:md5,ad01889e2ff43e2f194224e20bdb600c",
- "s_1_1101.stats:md5,4bbbf103454b37fbc3138fadf1b4446b"
- ],
- [
- "s_1_1101.bcl:md5,565384bbe67a694dfd690bae6d1d30c2",
- "s_1_1101.stats:md5,55e5abd8f129ff38ef169873547abdb8"
- ],
- [
- "s_1_1101.bcl:md5,650fa58a630a9148835ba79e323d4237",
- "s_1_1101.stats:md5,77403669ca1b05340c390dff64425c1e"
- ],
- [
- "s_1_1101.bcl:md5,54471c9e97299cd141e202e204637702",
- "s_1_1101.stats:md5,67b14c9a89b7f8556674a7524d5cfb2d"
- ],
- [
- "s_1_1101.bcl:md5,74e4f929fc7476c380fd9d741ddb6700",
- "s_1_1101.stats:md5,5730a4c35463eaa12a06b6758710b98c"
- ],
- [
- "s_1_1101.bcl:md5,c785f472f4350c120c02c888c8189590",
- "s_1_1101.stats:md5,fee4ec63895ea81007e06ee6a36ba5e0"
- ],
- [
- "s_1_1101.bcl:md5,b7ea50bb25f08d43c301741d77050a9b",
- "s_1_1101.stats:md5,fa7c68f3122c74d14364e6f7b011af70"
- ],
- [
- "s_1_1101.bcl:md5,9d5087dc4bcae39d66486363d4f68ecf",
- "s_1_1101.stats:md5,23cdceee4d82c4b8e7c60018b9276ace"
- ],
- [
- "s_1_1101.bcl:md5,581e0c5ee94e8f2de14b2b1d8e777530",
- "s_1_1101.stats:md5,9a3536d573c97f66bb56b49463612607"
- ],
- [
- "s_1_1101.bcl:md5,296fc026bb34c67bbe2b44845fe0d1de",
- "s_1_1101.stats:md5,a7f57a7770fb9c5ae2a0fb1ef403ec4f"
- ],
- [
- "s_1_1101.bcl:md5,2a3ca15531556c36d10d132a9e051de8",
- "s_1_1101.stats:md5,2d0bcdb0a1b51d3d79e415db2ab2d3b1"
- ],
- [
- "s_1_1101.bcl:md5,1150d46a2ccd4ac58aee0585d3e4ffd7",
- "s_1_1101.stats:md5,2e97550bd5b5864ffd0565bb7a3f6d40"
- ],
- [
- "s_1_1101.bcl:md5,0b85c4b3da0de95e7b862d849c5333ae",
- "s_1_1101.stats:md5,6eab9746fbeb783b0cd70398f44e0c1a"
- ],
- [
- "s_1_1101.bcl:md5,e0e9c91f4698804d7a6d1058ef68b34f",
- "s_1_1101.stats:md5,790022cdc7878a02b2ebd166e1ddf0a7"
- ],
- [
- "s_1_1101.bcl:md5,38cd0ad4de359e651c8ac0d5777ea625",
- "s_1_1101.stats:md5,a1b1d5ea5371d326abb029774483c5e6"
- ],
- [
- "s_1_1101.bcl:md5,b0ddc05c4012ccba24e712a1cfec748f",
- "s_1_1101.stats:md5,af3d232f839d720f76f40ba06caa2987"
- ],
- [
- "s_1_1101.bcl:md5,af32fcc5dc3b836cf7a5ba3db85a75dd",
- "s_1_1101.stats:md5,f93f2c09bd4e486c74a5f6e2040f7296"
- ],
- [
- "s_1_1101.bcl:md5,54b7428e037ca87816107647d4a3d9db",
- "s_1_1101.stats:md5,e5ac77a72cd7bed5e9bf03cccda0e48c"
- ],
- [
- "s_1_1101.bcl:md5,fc8b4eacd493bf3d0b20bc23998dc7ff",
- "s_1_1101.stats:md5,190315e159e2f4bc4c057ded7470dc52"
- ],
- [
- "s_1_1101.bcl:md5,9484ecffda489927fce424ac6a44fa9d",
- "s_1_1101.stats:md5,0825feeb457ecc9efcf6f8526ba32311"
- ],
- [
- "s_1_1101.bcl:md5,eec59e21036e31c95ce1e847bfb0a9c4",
- "s_1_1101.stats:md5,9acc13f63c98e5a8445e7be70d49222b"
- ],
- [
- "s_1_1101.bcl:md5,a9fb24476f87cba4fba68e2b3c3f2c07",
- "s_1_1101.stats:md5,dc0aa7db9790733291c3e6480ca2a0fc"
- ],
- [
- "s_1_1101.bcl:md5,ed950b3e82c500927c2e236c9df005c6",
- "s_1_1101.stats:md5,dccb71ec47d1f9d33a192da6d5660a45"
- ],
- [
- "s_1_1101.bcl:md5,b3e992025e995ca56b5ea2820144ef47",
- "s_1_1101.stats:md5,a6a829bf2cffb26ac5d9dc3012057699"
- ],
- [
- "s_1_1101.bcl:md5,89edc726a5a4e0b4ff8ca3899ed0232b",
- "s_1_1101.stats:md5,5b9b4fd8110577a59b82d0c419519d29"
- ],
- [
- "s_1_1101.bcl:md5,4dc696149169f232c451225f563cb5cd",
- "s_1_1101.stats:md5,d3514a71ea3adc60e2943c6b8f6e2598"
- ],
- [
- "s_1_1101.bcl:md5,35b992d0318afb7c825ceaa31b0755e6",
- "s_1_1101.stats:md5,2826093acc175c16c3795de7c4ca8f07"
- ],
- [
- "s_1_1101.bcl:md5,7bc927f56a362e49c00b5d76ee048901",
- "s_1_1101.stats:md5,e47d862b795fd6b88a31d7d482ab22f6"
- ],
- [
- "s_1_1101.bcl:md5,84742233ff2a651626fe9036f27f7cb2",
- "s_1_1101.stats:md5,b78fad11d3c50bc76b722cdc03e3028b"
- ],
- [
- "s_1_1101.bcl:md5,3935341c86263a7938e8c49620ef39f8",
- "s_1_1101.stats:md5,cc6585b2daac5354073d150874da9704"
- ],
- [
- "s_1_1101.bcl:md5,3627f4fd548bf6e64aaf08fba3a342be",
- "s_1_1101.stats:md5,120ae4831ae004ff7d16728aef36e82f"
- ],
- [
- "s_1_1101.bcl:md5,07631014bc35124149fabd80ef19f933",
- "s_1_1101.stats:md5,eadd63d91f47cc6db6b6f0a967a23927"
- ],
- [
- "s_1_1101.bcl:md5,a1149c80415dc2f34d768eeb397c43fb",
- "s_1_1101.stats:md5,ca89a9def67611a9151c6ce685b7cce1"
- ],
- [
- "s_1_1101.bcl:md5,eb5f71d4741d2f40618756bc72eaf8b4",
- "s_1_1101.stats:md5,90f48501e735e5915b843478e23d1ae2"
- ],
- [
- "s_1_1101.bcl:md5,9bf270fe3f6add1a591ebc24fff10078",
- "s_1_1101.stats:md5,a4e429671d4098034293c638aa655e16"
- ],
- [
- "s_1_1101.bcl:md5,219bedcbd24bae54fe4cf05dae05282c",
- "s_1_1101.stats:md5,dd97525b65b68207137d51fcf19132c7"
- ],
- [
- "s_1_1101.bcl:md5,5163bc00a68fd57ae50cae0b76350892",
- "s_1_1101.stats:md5,b606a5368eff1f012f3ea5d11ccdf2e0"
- ],
- [
- "s_1_1101.bcl:md5,fc429195a5af59a59e0cc4c48e6c05ea",
- "s_1_1101.stats:md5,d809aa19698053f90d639da4dcad8008"
- ],
- [
- "s_1_1101.bcl:md5,383340219a1dd77076a092a64a71a7e4",
- "s_1_1101.stats:md5,b204a5cf256378679ffc906c15cc1bae"
- ],
- [
- "s_1_1101.bcl:md5,0c369540d3e24696cf1f9c55bab69315",
- "s_1_1101.stats:md5,a2bc69a4031a22ce9621dcc623a0bf4b"
- ],
- [
- "s_1_1101.bcl:md5,3127abc8016ba8eb954f8f8015dff387",
- "s_1_1101.stats:md5,5deafff31150b7bf757f814e49a53bc2"
- ],
- [
- "s_1_1101.bcl:md5,045f40c82de676bafec3d59f91376a7a",
- "s_1_1101.stats:md5,890700edc20687c090ef52248c7884b1"
- ],
- [
- "s_1_1101.bcl:md5,78af269aa2b39a1d765703f0a4739a86",
- "s_1_1101.stats:md5,303cf457aa1543a8208544f694cbc531"
- ],
- [
- "s_1_1101.bcl:md5,0ab8c781959b783b62888e9274364a46",
- "s_1_1101.stats:md5,2605b0e8322f83aa4d0dae5da4ec7a7a"
- ],
- [
- "s_1_1101.bcl:md5,d0cf823ffe352e8b3f75d589544ab617",
- "s_1_1101.stats:md5,efa3c0e01e3db71e12fd961cb2d03739"
- ],
- [
- "s_1_1101.bcl:md5,db4ca4ab7a01e03c246f9160c3758d82",
- "s_1_1101.stats:md5,f61550d9e4a90df6b860e68f41f82f60"
- ],
- [
- "s_1_1101.bcl:md5,1af39a2c7e5ff20ece91cb8160b51d17",
- "s_1_1101.stats:md5,d0e20879afcaf6dfcd88c73f1c5c78cf"
- ],
- [
- "s_1_1101.bcl:md5,4cf7123bb0fffcd79266df03aef01665",
- "s_1_1101.stats:md5,29bff4075109a121b087116b58d7e927"
- ],
- [
- "s_1_1101.bcl:md5,aa9980428cb60cd6320f4b48f4dd0d74",
- "s_1_1101.stats:md5,6b0e20bde93133117a8d1a6df3d6f37b"
- ],
- [
- "s_1_1101.bcl:md5,0f6e440374e15b9b491d52fb83a8adfe",
- "s_1_1101.stats:md5,55cb5eb0ecdabd23dca39ab8c4607598"
- ],
- [
- "s_1_1101.bcl:md5,2c645d7bdaddaa403f6e304d36df9e4b",
- "s_1_1101.stats:md5,53acf33d21f832779b400c2447386ce4"
- ],
- [
- "s_1_1101.bcl:md5,3bbf0863b423b770c879203644420206",
- "s_1_1101.stats:md5,579bdc7293cac8c3d7407249cacf4c25"
- ],
- [
- "s_1_1101.bcl:md5,6658a08409e81d29cfeb2d096b491985",
- "s_1_1101.stats:md5,bb559ffbea46d612f9933cefa84c4c03"
- ],
- [
- "s_1_1101.bcl:md5,1700d9a13d3d4f7643af2943ef838acb",
- "s_1_1101.stats:md5,f01cb6050ebfb15da1e0399ebd791eb4"
- ],
- [
- "s_1_1101.bcl:md5,1ac7aa9ffae25eb103f755f33e4a39c6",
- "s_1_1101.stats:md5,0b9d45d7929ccf336d5e5b95373ed3c2"
- ],
- [
- "s_1_1101.bcl:md5,812a97af2e983a53226e18c75190b06c",
- "s_1_1101.stats:md5,d2410c7b0e506dab2972e77e2398de1e"
- ],
- [
- "s_1_1101.bcl:md5,c981e8e4dcc434956c2b86159da268bc",
- "s_1_1101.stats:md5,e9c826e85361ce673f1f248786c9a611"
- ],
- [
- "s_1_1101.bcl:md5,88e09e99a0a4ef3357b203a41b22f77c",
- "s_1_1101.stats:md5,ef06f2e5ad667bbd383f9ed6a05b7b42"
- ],
- [
- "s_1_1101.bcl:md5,461c8b146fc8a7938be38689978ecd09",
- "s_1_1101.stats:md5,65115693935da66f9791b27136e22fb0"
- ],
- [
- "s_1_1101.bcl:md5,c7b827df5ce20e0f21916fe60860ca3f",
- "s_1_1101.stats:md5,87be73613aeb507847f94d3cac5bb30a"
- ],
- [
- "s_1_1101.bcl:md5,7c4cc3dc9c8a1b0f15917b282dfb40ce",
- "s_1_1101.stats:md5,bdd9181fa89debbfafe7b6ea3e064065"
- ],
- [
- "s_1_1101.bcl:md5,19f4debaf91e118aca8934517179ac33",
- "s_1_1101.stats:md5,1143082719e136241d21b14a6b19b8a2"
- ],
- [
- "s_1_1101.bcl:md5,38aa256ad2d697d84b0b2c0e876a3eba",
- "s_1_1101.stats:md5,64dd82f03df23f7f437eede2671ed4fe"
- ],
- [
- "s_1_1101.bcl:md5,b7929970378949571fed922c1b8cab32",
- "s_1_1101.stats:md5,3d6d7985a41629fe196e4342d7fe36aa"
- ],
- [
- "s_1_1101.bcl:md5,fb2ed0bf6e89d79624ee78754e773491",
- "s_1_1101.stats:md5,f34940810ff255aee79953496a12716d"
- ],
- [
- "s_1_1101.bcl:md5,4f8a8311f5f9c3a7629c1a973a7b280e",
- "s_1_1101.stats:md5,4fd7cd28c09f4e152e7c2ad1ab541cd2"
- ],
- [
- "s_1_1101.bcl:md5,9eb46c903d0344e25af51f88cc311d60",
- "s_1_1101.stats:md5,df3abd5f620d9e7f99496098d9fd3f7f"
- ],
- [
- "s_1_1101.bcl:md5,3ecbc17f3660e2014b58d7fe70ae62d5",
- "s_1_1101.stats:md5,8e89a13c85a6d6ab3ccd251b66d1f165"
- ],
- [
- "s_1_1101.bcl:md5,5d59cc2499a77791233a64f73fe82894",
- "s_1_1101.stats:md5,32ec99cd400f4b80cb26e2fa8e07ece0"
- ],
- [
- "s_1_1101.bcl:md5,1c052da47b9ae8554388f0fa3aade482",
- "s_1_1101.stats:md5,d23f438772673688aa7bc92421dc6dce"
- ],
- [
- "s_1_1101.bcl:md5,1a52bd4f23130c0c96bc967ccd448a2b",
- "s_1_1101.stats:md5,9b597e3388d59ef1f61aba30ac90ea79"
- ],
- [
- "s_1_1101.bcl:md5,8a1e84b79cf3f80794c20e3a0cc84688",
- "s_1_1101.stats:md5,9561f7b6ef4b1849afc72b2bb49792bd"
- ],
- [
- "s_1_1101.bcl:md5,75c00111051f3fa95d04286823cb9109",
- "s_1_1101.stats:md5,1fe786cdf8181767deafbd60b3c76610"
- ],
- [
- "s_1_1101.bcl:md5,529255d8deee0873ed5565e6d1a2ebda",
- "s_1_1101.stats:md5,3fa7f467e97a75880f32d17b7429d316"
- ],
- [
- "s_1_1101.bcl:md5,ea4d960e3d9355d2149da71b88a21df4",
- "s_1_1101.stats:md5,2540fe65586e8e800c1ddd8cddd1e8cd"
- ],
- [
- "s_1_1101.bcl:md5,0dfe1fd92a2dce2f23119aa483429744",
- "s_1_1101.stats:md5,78257b2169fb9f0cf40966e06e847e86"
- ],
- [
- "s_1_1101.bcl:md5,f692ddc9aa3ab849271d07c666d0b3b9",
- "s_1_1101.stats:md5,aa2ec6a3e3a9c116e34fe74a21e6459e"
- ],
- [
- "s_1_1101.bcl:md5,29cc4c239eae7c871c9a1adf92ebdb98",
- "s_1_1101.stats:md5,263184813090acd740a5bf25304aed3a"
- ],
- [
- "s_1_1101.bcl:md5,e005af6a84925e326afbfe264241f047",
- "s_1_1101.stats:md5,b6fb20868eebaffcc19daa694a449795"
- ],
- [
- "s_1_1101.bcl:md5,02f1a699b1ba9967accccf99a7af3d24",
- "s_1_1101.stats:md5,4f007efacecaf26dc0e0231aede28754"
- ],
- [
- "s_1_1101.bcl:md5,df308c72a2dcc655cd95e98f5457187a",
- "s_1_1101.stats:md5,130c4b07f4c14030bab012824cbe34da"
- ],
- [
- "s_1_1101.bcl:md5,f3ce10d8d2406b72355023bfa8c96822",
- "s_1_1101.stats:md5,2638f4db393ed5b699ec2ce59ff0ec19"
- ],
- [
- "s_1_1101.bcl:md5,cc2f6d675ad1593ff96f734b172d249e",
- "s_1_1101.stats:md5,f5b13f1e1ababc9e1a7a73b0b993cbf1"
- ],
- [
- "s_1_1101.bcl:md5,7938a0b21448305a951b023b1845b3a7",
- "s_1_1101.stats:md5,fcd57511adabfc3ba1ac045165330006"
- ],
- [
- "s_1_1101.bcl:md5,44879bc6a38df1fee8def61868115041",
- "s_1_1101.stats:md5,517e20e4b58a8023a37f9af62e0e2036"
- ],
- [
- "s_1_1101.bcl:md5,8749611e62406a7d2f34c610a55e56af",
- "s_1_1101.stats:md5,8ccf24b3676ef84f2e513be8f2a9f3d1"
- ],
- [
- "s_1_1101.bcl:md5,a9846a037611cda3721958088f714c0e",
- "s_1_1101.stats:md5,6438fa5a1892f328cab1605a95d80a3b"
- ],
- [
- "s_1_1101.bcl:md5,d6c4a2a726496476eb826532f974ed5f",
- "s_1_1101.stats:md5,8c2c65b5e8b00dbf61ada65252aeb266"
- ],
- [
- "s_1_1101.bcl:md5,be3dde6cae7dd85855a6bf295ebfacfe",
- "s_1_1101.stats:md5,93bc13f3b0749b2b8d8bcb0b1199f4f0"
- ],
- [
- "s_1_1101.bcl:md5,7c64514735a6cf1565b60647edd17d20",
- "s_1_1101.stats:md5,4a0aa6c49b24f876415e5878cef7f805"
- ],
- [
- "s_1_1101.bcl:md5,3983b4043bc9df4b505202a5134ccf03",
- "s_1_1101.stats:md5,1c9d9a8558adc1279ca27c96bc1b9758"
- ],
- [
- "s_1_1101.bcl:md5,a0b8d77f116ec95975f9253dcb768136",
- "s_1_1101.stats:md5,c3992b786756e7ec42f65ef4b13b50d4"
- ],
- [
- "s_1_1101.bcl:md5,43c95ba35d06bb7c57fbd16f3d1cfd6c",
- "s_1_1101.stats:md5,3cb69d04698c39f97f962e5bf1eea7f0"
- ],
- [
- "s_1_1101.bcl:md5,3dbeea0cad7052f19f53ff6f19dd4d90",
- "s_1_1101.stats:md5,58bbc8254f0f5f4a244531e8e9c12a04"
- ],
- [
- "s_1_1101.bcl:md5,da56d088996376c898d855b6cd0a7dfc",
- "s_1_1101.stats:md5,9f2d78af6908ce1576b89cdc059844ff"
- ],
- [
- "s_1_1101.bcl:md5,7b641a5565f095e9a6ffcad9e4305033",
- "s_1_1101.stats:md5,3ada06c59b4fb41b83ab6abd0979e9fc"
- ],
- [
- "s_1_1101.bcl:md5,a3843d397a01d51657825bb652c191e5",
- "s_1_1101.stats:md5,19341e52a4bfc7d9d48e9d2acc68c519"
- ],
- [
- "s_1_1101.bcl:md5,048e3ebfc8efeb8012def6b741c9060d",
- "s_1_1101.stats:md5,88bd38deca1e87d700effab1fd099565"
- ],
- [
- "s_1_1101.bcl:md5,b340db0e07e829dd5da22371916a1a9e",
- "s_1_1101.stats:md5,e44cfaddcc4ffb968e5b1a2f41ac48a5"
- ],
- [
- "s_1_1101.bcl:md5,e6011ec6eabbc2b8792deb283c621ce0",
- "s_1_1101.stats:md5,090875dcd1a431af24bc631333f089c4"
- ],
- [
- "s_1_1101.bcl:md5,a08f216e3352345031ed100ec4245082",
- "s_1_1101.stats:md5,97b949ef4b96219e1369f673cf5f8a6c"
- ],
- [
- "s_1_1101.bcl:md5,b43337c76fb037dfcf5f8f7bcb3618e5",
- "s_1_1101.stats:md5,ddef585805e79951f69d23ab7354f69b"
- ],
- [
- "s_1_1101.bcl:md5,8c61fd004104397b360855e058bbf1bf",
- "s_1_1101.stats:md5,0f8d253816d594dcfea3ccf48c826401"
- ],
- [
- "s_1_1101.bcl:md5,594d06310d328b188aa0b3edfff22cb2",
- "s_1_1101.stats:md5,3160bf271b39aeb7590e4fd2984710ba"
- ],
- [
- "s_1_1101.bcl:md5,4c9eada67c9d55437211d83e111961d5",
- "s_1_1101.stats:md5,2901b46ab16ec4863d30e4c84ec29c97"
- ],
- [
- "s_1_1101.bcl:md5,e03971ae5282f0accc0c1b7374d9ef1b",
- "s_1_1101.stats:md5,60d2a19ce59bf70a21a28555484cead8"
- ],
- [
- "s_1_1101.bcl:md5,e1c6f7a06e63d149895d3e48e63df155",
- "s_1_1101.stats:md5,44beb10af847ea3dddaf06dda7031126"
- ],
- [
- "s_1_1101.bcl:md5,960a99bf29a8f9d936e9b8582d46c9c6",
- "s_1_1101.stats:md5,544cd1a7aaaa841914b40ece43399334"
- ],
- [
- "s_1_1101.bcl:md5,5706679f349fd4a6b6313bc2c41c7a42",
- "s_1_1101.stats:md5,627eea844b26dae033848c2f9f69177b"
- ],
- [
- "s_1_1101.bcl:md5,21da5abc4b0402bbac14b5ab998b0b4f",
- "s_1_1101.stats:md5,515bd140b095ad90473ca7a9a69877ab"
- ],
- "s_1_1101.control:md5,08a72e2198ae95150718e8adf011d105",
- "s_1_1101.filter:md5,3a72bc73b323c8cb0ac5bfeb62d98989"
- ]
- ],
- [
- "s_1_1101.locs:md5,0827ea802e5257cc5b20e757a33d4c98"
- ],
- "RTAConfiguration.xml:md5,c7d6e257bc374f142dc64b9d2281d4c9",
- "config.xml:md5,9a4cc7ec01fefa2f1ce9bcb45bbad6e9"
- ]
- ],
- [
- "ControlMetricsOut.bin:md5,6d77b38d0793a6e1ce1e85706e488953",
- "CorrectedIntMetricsOut.bin:md5,2bbf84d3be72734addaa2fe794711434",
- "ErrorMetricsOut.bin:md5,38c88def138e9bb832539911affdb286",
- "ExtractionMetricsOut.bin:md5,7497c3178837eea8f09350b5cd252e99",
- "IndexMetricsOut.bin:md5,d41d8cd98f00b204e9800998ecf8427e",
- "QMetricsOut.bin:md5,7e9f198d53ebdfbb699a5f94cf1ed51c",
- "TileMetricsOut.bin:md5,83891751ec1c91a425a524b476b6ca3c"
- ],
- "RunInfo.xml:md5,03038959f4dd181c86bc97ae71fe270a"
- ]
- ]
- ]
- ],
- "timestamp": "2023-10-18T11:56:39.562418"
- },
"test_untar_onlyfiles": {
"content": [
[
diff --git a/nextflow.config b/nextflow.config
index 60c7dec0..2127d17f 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -162,6 +162,7 @@ profiles {
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
+ channels = ['conda-forge', 'bioconda', 'defaults']
apptainer.enabled = false
// Increase time available to build Conda environment
conda.createTimeout = "120 min"
diff --git a/pyproject.toml b/pyproject.toml
index 0d62beb6..7d08e1c8 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,10 +1,13 @@
-# Config file for Python. Mostly used to configure linting of bin/check_samplesheet.py with Black.
+# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff.
# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation.
-[tool.black]
+[tool.ruff]
line-length = 120
-target_version = ["py37", "py38", "py39", "py310"]
+target-version = "py38"
+select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"]
+cache-dir = "~/.cache/ruff"
-[tool.isort]
-profile = "black"
-known_first_party = ["nf_core"]
-multi_line_output = 3
+[tool.ruff.isort]
+known-first-party = ["nf_core"]
+
+[tool.ruff.per-file-ignores]
+"__init__.py" = ["E402", "F401"]
diff --git a/subworkflows/nf-core/bam_markduplicates_picard/main.nf b/subworkflows/nf-core/bam_markduplicates_picard/main.nf
index 6e3df332..de8130fb 100644
--- a/subworkflows/nf-core/bam_markduplicates_picard/main.nf
+++ b/subworkflows/nf-core/bam_markduplicates_picard/main.nf
@@ -26,13 +26,9 @@ workflow BAM_MARKDUPLICATES_PICARD {
ch_bam_bai = PICARD_MARKDUPLICATES.out.bam
.join(SAMTOOLS_INDEX.out.bai, by: [0], remainder: true)
.join(SAMTOOLS_INDEX.out.csi, by: [0], remainder: true)
- .map {
- meta, bam, bai, csi ->
- if (bai) {
- [ meta, bam, bai ]
- } else {
- [ meta, bam, csi ]
- }
+ .map{meta, bam, bai, csi ->
+ if (bai) [ meta, bam, bai ]
+ else [ meta, bam, csi ]
}
BAM_STATS_SAMTOOLS ( ch_bam_bai, ch_fasta )
diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test
index e721f30c..d8d24290 100644
--- a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test
+++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test
@@ -17,24 +17,24 @@ nextflow_workflow {
tag "samtools/idxstats"
tag "samtools/index"
tag "samtools/stats"
-
- test("homo_sapiens - bam") {
+
+ test("sarscov2 - bam") {
when {
workflow {
"""
- input[0] = [
- [ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)
- ]
- input[1] = [
+ input[0] = Channel.of([
+ [ id:'test', single_end: false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
- input[2] = [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
[ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true)
- ]
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)
+ ])
"""
}
}
@@ -48,7 +48,7 @@ nextflow_workflow {
path(workflow.out.flagstat[0][1]),
path(workflow.out.idxstats[0][1]),
path(workflow.out.stats[0][1]),
- ).match("homo_sapiens - bam") },
+ ).match("sarscov2 - bam") },
{ assert path(workflow.out.metrics.get(0).get(1)).getText().contains("97") }
)
}
@@ -59,17 +59,18 @@ nextflow_workflow {
when {
workflow {
"""
- input[0] = [
- [ id:'test', single_end:false ], // meta map
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
- ]
- input[2] = [
+ input[0] = Channel.of([
+ [ id:'test' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
[ id:'genome' ],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
- ]
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ])
"""
}
}
diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap
index b1907385..a208d101 100644
--- a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap
+++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap
@@ -9,7 +9,7 @@
],
"timestamp": "2023-12-05T17:45:12.484869"
},
- "homo_sapiens - bam": {
+ "sarscov2 - bam": {
"content": [
"test.bam:md5,3091fe6ba1b7530f382fe40b9fd8f45b",
"test.bam.bai:md5,4d3ae8d013444b55e17aa0149a2ab404",
@@ -19,4 +19,4 @@
],
"timestamp": "2023-12-05T17:43:58.582652"
}
-}
\ No newline at end of file
+}
diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test
index 59b749d8..75b5b934 100644
--- a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test
+++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test
@@ -24,12 +24,14 @@ nextflow_workflow {
}
workflow {
"""
- input[0] = [ [ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.bam', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
@@ -54,12 +56,14 @@ nextflow_workflow {
}
workflow {
"""
- input[0] = [ [ id:'test', single_end:false ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap
index 77afbf17..c159eef3 100644
--- a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap
+++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap
@@ -39,7 +39,7 @@
]
]
],
- "timestamp": "2023-12-04T11:06:50.951881479"
+ "timestamp": "2024-01-18T17:10:02.818694"
},
"test_bam_sort_stats_samtools_paired_end_stats": {
"content": [
@@ -67,7 +67,7 @@
]
]
],
- "timestamp": "2023-10-22T20:25:58.451364604"
+ "timestamp": "2024-01-18T17:10:02.84631"
},
"test_bam_sort_stats_samtools_single_end_flagstats": {
"content": [
@@ -81,6 +81,6 @@
]
]
],
- "timestamp": "2023-10-22T20:25:58.416859285"
+ "timestamp": "2024-01-18T17:10:02.829756"
}
}
\ No newline at end of file
diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test
index 97210890..c8b21f28 100644
--- a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test
+++ b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test
@@ -20,13 +20,15 @@ nextflow_workflow {
}
workflow {
"""
- input[0] = [ [ id:'test', single_end:true ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
@@ -49,13 +51,15 @@ nextflow_workflow {
}
workflow {
"""
- input[0] = [ [ id:'test', single_end:true ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true),
- file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
@@ -78,13 +82,15 @@ nextflow_workflow {
}
workflow {
"""
- input[0] = [ [ id:'test', single_end:false ], // meta map
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
- ]
- input[1] = [ [ id:'genome' ],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
- ]
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'genome' ],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ])
"""
}
}
diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap
index d3af1376..8bf0d379 100644
--- a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap
+++ b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap
@@ -25,7 +25,7 @@
]
]
],
- "timestamp": "2023-12-04T11:07:13.965061942"
+ "timestamp": "2024-01-18T17:17:27.704335"
},
"test_bam_stats_samtools_paired_end_flagstats": {
"content": [
@@ -39,7 +39,7 @@
]
]
],
- "timestamp": "2023-11-06T09:31:11.668517251"
+ "timestamp": "2024-01-18T17:17:27.717482"
},
"test_bam_stats_samtools_single_end_flagstats": {
"content": [
@@ -95,7 +95,7 @@
]
]
],
- "timestamp": "2023-11-06T09:31:11.68246157"
+ "timestamp": "2024-01-18T17:17:27.726719"
},
"test_bam_stats_samtools_single_end_idxstats": {
"content": [