diff --git a/.editorconfig b/.editorconfig
index b78de6e65..63eff3a4f 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -22,3 +22,11 @@ indent_size = unset
[/assets/email*]
indent_size = unset
+
+# ignore Readme
+[README.md]
+indent_style = unset
+
+# ignore python
+[*.{py}]
+indent_style = unset
diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml
index 44e9ee6ac..7c4ed7698 100644
--- a/.github/workflows/awsfulltest.yml
+++ b/.github/workflows/awsfulltest.yml
@@ -31,7 +31,7 @@ jobs:
}
profiles: test_full
- - 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 f7007b7f2..a3bd3d644 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 00f205457..236bc6f6f 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/clean-up.yml b/.github/workflows/clean-up.yml
index 694e90ecb..e37cfda5c 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 000000000..8611458a7
--- /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 355402cb8..499c3a23f 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/eager/actions/runs/${{ github.run_id }}) for more details.
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 905c58e44..81cd098e9 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 0bbcd30f2..147bcd10c 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-announcments.yml b/.github/workflows/release-announcements.yml
similarity index 96%
rename from .github/workflows/release-announcments.yml
rename to .github/workflows/release-announcements.yml
index 6ad339277..21ac3f068 100644
--- a/.github/workflows/release-announcments.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 acf726953..363d5b1d4 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/.nf-core.yml b/.nf-core.yml
index 3805dc81c..5721c4b64 100644
--- a/.nf-core.yml
+++ b/.nf-core.yml
@@ -1 +1,6 @@
repository_type: pipeline
+
+lint:
+ nextflow_config:
+ - config_defaults:
+ - params.contamination_estimation_angsd_hapmap
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 0c31cdb99..af57081f6 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 e1d6f58e8..ea3cd1b6e 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
-# 
-
-**A fully reproducible and state-of-the-art ancient DNA analysis pipeline.**
+
+
+
+
+
+
[](https://github.com/nf-core/eager/actions?query=workflow%3A%22nf-core+CI%22)
[](https://github.com/nf-core/eager/actions?query=workflow%3A%22nf-core+linting%22)[](https://nf-co.re/eager/results)[](https://doi.org/10.5281/zenodo.1465061)
diff --git a/assets/email_template.html b/assets/email_template.html
index 36bfc9c8d..2b66b754d 100644
--- a/assets/email_template.html
+++ b/assets/email_template.html
@@ -12,7 +12,7 @@
-nf-core/eager v${version}
+nf-core/eager ${version}
Run Name: $runName
<% if (!success){
diff --git a/assets/email_template.txt b/assets/email_template.txt
index 377b1600f..85674ed41 100644
--- a/assets/email_template.txt
+++ b/assets/email_template.txt
@@ -4,7 +4,7 @@
|\\ | |__ __ / ` / \\ |__) |__ } {
| \\| | \\__, \\__/ | \\ |___ \\`-._,-`-,
`._,._,'
- nf-core/eager v${version}
+ nf-core/eager ${version}
----------------------------------------------------
Run Name: $runName
diff --git a/assets/nf-core-eager_logo_light.png b/assets/nf-core-eager_logo_light.png
index f7c3062e4..2bfef8fac 100644
Binary files a/assets/nf-core-eager_logo_light.png and b/assets/nf-core-eager_logo_light.png differ
diff --git a/docs/images/nf-core-eager_logo_dark.png b/docs/images/nf-core-eager_logo_dark.png
index d7110dd0c..81767fc5f 100644
Binary files a/docs/images/nf-core-eager_logo_dark.png and b/docs/images/nf-core-eager_logo_dark.png differ
diff --git a/docs/images/nf-core-eager_logo_light.png b/docs/images/nf-core-eager_logo_light.png
index f7c3062e4..218fdd221 100644
Binary files a/docs/images/nf-core-eager_logo_light.png and b/docs/images/nf-core-eager_logo_light.png differ
diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy
index 101617614..62978d94a 100755
--- a/lib/WorkflowMain.groovy
+++ b/lib/WorkflowMain.groovy
@@ -24,7 +24,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) {
@@ -35,6 +35,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) {
@@ -60,4 +62,16 @@ class WorkflowMain {
}
return null
}
+
+ //
+ // 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 805c8bb5e..000000000
Binary files a/lib/nfcore_external_java_deps.jar and /dev/null differ
diff --git a/main.nf b/main.nf
index 5f430007b..1c1f6d937 100644
--- a/main.nf
+++ b/main.nf
@@ -44,7 +44,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 0ab6be9f5..ec6b53515 100644
--- a/modules.json
+++ b/modules.json
@@ -7,212 +7,212 @@
"nf-core": {
"adapterremoval": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "5add1e8e11af620c779462936ce8bbcc1abcef2d",
"installed_by": ["modules"]
},
"angsd/contamination": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde",
"installed_by": ["bam_docounts_contamination_angsd"]
},
"angsd/docounts": {
"branch": "master",
- "git_sha": "bd9e43646a9435d2f62ce4a777ae88ef10ec922d",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["bam_docounts_contamination_angsd"]
},
"bamutil/trimbam": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"bbmap/bbduk": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"bedtools/coverage": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "1d1cb7bfef6cf67fbc7faafa6992ad8bdc3045b3",
"installed_by": ["modules"]
},
"bedtools/maskfasta": {
"branch": "master",
- "git_sha": "516189e968feb4ebdd9921806988b4c12b4ac2dc",
+ "git_sha": "3b248b84694d1939ac4bb33df84bf6233a34d668",
"installed_by": ["modules"]
},
"bowtie2/align": {
"branch": "master",
- "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220",
+ "git_sha": "3c77ca9aac783e76c3614a06db3bfe4fef619bde",
"installed_by": ["modules"]
},
"bowtie2/build": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "1fea64f5132a813ec97c1c6d3a74e0aee7142b6d",
"installed_by": ["modules"]
},
"bwa/aln": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["fastq_align_bwaaln"]
},
"bwa/index": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"bwa/mem": {
"branch": "master",
- "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220",
- "installed_by": ["fastq_align_bwa"]
+ "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
+ "installed_by": ["modules"]
},
"bwa/sampe": {
"branch": "master",
- "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220",
+ "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
"installed_by": ["fastq_align_bwaaln"]
},
"bwa/samse": {
"branch": "master",
- "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220",
+ "git_sha": "a64788f5ad388f1d2ac5bd5f1f3f8fc81476148c",
"installed_by": ["fastq_align_bwaaln"]
},
"cat/fastq": {
"branch": "master",
- "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e",
+ "git_sha": "02fd5bd7275abad27aad32d5c852e0a9b1b98882",
"installed_by": ["modules"]
},
"custom/dumpsoftwareversions": {
"branch": "master",
- "git_sha": "bba7e362e4afead70653f84d8700588ea28d0f9e",
+ "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93",
"installed_by": ["modules"]
},
"damageprofiler": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"dedup": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"endorspy": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"falco": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"fastp": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "c9488585ce7bd35ccd2a30faa2371454c8112fb9",
"installed_by": ["modules"]
},
"fastqc": {
"branch": "master",
- "git_sha": "65ad3e0b9a4099592e1102e92e10455dc661cf53",
+ "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c",
"installed_by": ["modules"]
},
"gunzip": {
"branch": "master",
- "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e",
+ "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208",
"installed_by": ["modules"]
},
"mapdamage2": {
"branch": "master",
- "git_sha": "0591cad3d725d5c21337f72e638507abf709f75e",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"mtnucratio": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"multiqc": {
"branch": "master",
- "git_sha": "4ab13872435962dadc239979554d13709e20bf29",
+ "git_sha": "8ec825f465b9c17f9d83000022995b4f7de6fe93",
"installed_by": ["modules"]
},
"picard/createsequencedictionary": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "20b0918591d4ba20047d7e13e5094bcceba81447",
"installed_by": ["modules"]
},
"picard/markduplicates": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ec833ac4c29db6005d18baccf3306f557c46b006",
"installed_by": ["modules"]
},
"pmdtools/filter": {
"branch": "master",
- "git_sha": "c8e35eb2055c099720a75538d1b8adb3fb5a464c",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"preseq/ccurve": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "575e1bc54b083fb15e7dd8b5fcc40bea60e8ce83",
"installed_by": ["modules"]
},
"preseq/lcextrap": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "9a88058962c0ee1715f2ad0e017c37e0cd75e532",
"installed_by": ["modules"]
},
"prinseqplusplus": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
},
"qualimap/bamqc": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "6b0e4fe14ca1b12e131f64608f0bbaf36fd11451",
"installed_by": ["modules"]
},
"samtools/faidx": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/fastq": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/flagstat": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/idxstats": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/index": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
- "installed_by": ["fastq_align_bwaaln", "bam_split_by_region"]
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
+ "installed_by": ["bam_split_by_region", "fastq_align_bwaaln"]
},
"samtools/merge": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/sort": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
"installed_by": ["modules"]
},
"samtools/view": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
- "installed_by": ["modules", "bam_split_by_region"]
+ "git_sha": "ce0b1aed7d504883061e748f492a31bf44c5777c",
+ "installed_by": ["bam_split_by_region", "modules"]
},
"seqkit/split2": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"]
}
}
@@ -221,17 +221,17 @@
"nf-core": {
"bam_docounts_contamination_angsd": {
"branch": "master",
- "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653",
+ "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f",
"installed_by": ["subworkflows"]
},
"bam_split_by_region": {
"branch": "master",
- "git_sha": "a9784afdd5dcda23b84e64db75dc591065d64653",
+ "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f",
"installed_by": ["subworkflows"]
},
"fastq_align_bwaaln": {
"branch": "master",
- "git_sha": "e2c81fea3daeacfa190f78d2b82f82361b734507",
+ "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f",
"installed_by": ["subworkflows"]
}
}
diff --git a/modules/nf-core/adapterremoval/environment.yml b/modules/nf-core/adapterremoval/environment.yml
new file mode 100644
index 000000000..1737b14b8
--- /dev/null
+++ b/modules/nf-core/adapterremoval/environment.yml
@@ -0,0 +1,7 @@
+name: adapterremoval
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::adapterremoval=2.3.2
diff --git a/modules/nf-core/adapterremoval/main.nf b/modules/nf-core/adapterremoval/main.nf
index 29aac1c01..d128d3242 100644
--- a/modules/nf-core/adapterremoval/main.nf
+++ b/modules/nf-core/adapterremoval/main.nf
@@ -2,7 +2,7 @@ process ADAPTERREMOVAL {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::adapterremoval=2.3.2"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/adapterremoval:2.3.2--hb7ba0dd_0' :
'biocontainers/adapterremoval:2.3.2--hb7ba0dd_0' }"
diff --git a/modules/nf-core/adapterremoval/meta.yml b/modules/nf-core/adapterremoval/meta.yml
index 77273f605..2deb613b5 100644
--- a/modules/nf-core/adapterremoval/meta.yml
+++ b/modules/nf-core/adapterremoval/meta.yml
@@ -11,7 +11,6 @@ tools:
homepage: https://github.com/MikkelSchubert/adapterremoval
documentation: https://adapterremoval.readthedocs.io
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -26,17 +25,8 @@ input:
pattern: "*.{fq,fastq,fq.gz,fastq.gz}"
- adapterlist:
type: file
- description: Optional text file containing list of adapters to look for for removal
- with one adapter per line. Otherwise will look for default adapters (see
- AdapterRemoval man page), or can be modified to remove user-specified
- adapters via ext.args.
-
+ description: Optional text file containing list of adapters to look for for removal with one adapter per line. Otherwise will look for default adapters (see AdapterRemoval man page), or can be modified to remove user-specified adapters via ext.args.
output:
- - meta:
- type: map
- description: |
- Groovy Map containing sample information
- e.g. [ id:'test', single_end:false ]
- singles_truncated:
type: file
description: |
@@ -50,20 +40,13 @@ output:
Adapter trimmed FastQ files of reads that did not pass filtering
thresholds.
pattern: "*.discarded.fastq.gz"
- - pair1_truncated:
+ - paired_truncated:
type: file
description: |
- Adapter trimmed R1 FastQ files of paired-end reads that did not merge
- with their respective R2 pair due to long templates. The respective pair
- is stored in 'pair2_truncated'.
- pattern: "*.pair1.truncated.fastq.gz"
- - pair2_truncated:
- type: file
- description: |
- Adapter trimmed R2 FastQ files of paired-end reads that did not merge
- with their respective R1 pair due to long templates. The respective pair
- is stored in 'pair1_truncated'.
- pattern: "*.pair2.truncated.fastq.gz"
+ Adapter trimmed R{1,2} FastQ files of paired-end reads that did not merge
+ with their respective R{1,2} pair due to long templates. The respective pair
+ is stored in 'pair{1,2}_truncated'.
+ pattern: "*.pair{1,2}.truncated.fastq.gz"
- collapsed:
type: file
description: |
@@ -76,7 +59,12 @@ output:
Collapsed FastQ of paired-end reads that successfully merged with their
respective R1 pair and were trimmed of adapter due to sufficient overlap.
pattern: "*.collapsed.truncated.fastq.gz"
- - log:
+ - paired_interleaved:
+ type: file
+ description: |
+ Write paired-end reads to a single file, interleaving mate 1 and mate 2 reads
+ pattern: "*.paired.fastq.gz"
+ - settings:
type: file
description: AdapterRemoval log file
pattern: "*.settings"
@@ -84,7 +72,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@maxibor"
- "@jfy133"
+maintainers:
+ - "@maxibor"
+ - "@jfy133"
diff --git a/modules/nf-core/angsd/contamination/environment.yml b/modules/nf-core/angsd/contamination/environment.yml
new file mode 100644
index 000000000..57a572761
--- /dev/null
+++ b/modules/nf-core/angsd/contamination/environment.yml
@@ -0,0 +1,7 @@
+name: angsd_contamination
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::angsd=0.940
diff --git a/modules/nf-core/angsd/contamination/main.nf b/modules/nf-core/angsd/contamination/main.nf
index 354076999..b33171b31 100644
--- a/modules/nf-core/angsd/contamination/main.nf
+++ b/modules/nf-core/angsd/contamination/main.nf
@@ -2,7 +2,7 @@ process ANGSD_CONTAMINATION {
tag "$meta.id"
label 'process_low'
- conda "bioconda::angsd=0.940"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/angsd:0.939--h468462d_0':
'biocontainers/angsd:0.939--h468462d_0' }"
@@ -27,7 +27,7 @@ process ANGSD_CONTAMINATION {
-a ${icounts} \
-h ${hapmap_file} \
-p ${task.cpus} \
- 2> ${prefix}.txt
+ 2> >(tee ${prefix}.txt >&2)
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/angsd/contamination/meta.yml b/modules/nf-core/angsd/contamination/meta.yml
index e0c6bec87..dc01c90c0 100644
--- a/modules/nf-core/angsd/contamination/meta.yml
+++ b/modules/nf-core/angsd/contamination/meta.yml
@@ -11,8 +11,7 @@ tools:
documentation: "http://www.popgen.dk/angsd/"
tool_dev_url: "https://github.com/ANGSD/angsd"
doi: "10.1186/s12859-014-0356-4"
- licence: "['GPL v3, MIT']"
-
+ licence: ["GPL v3", "MIT"]
input:
- meta:
type: map
@@ -26,7 +25,6 @@ input:
- hapmap_file:
type: file
description: A list of variable sites to look for heterozygosity.
-
output:
- meta:
type: map
@@ -41,6 +39,7 @@ output:
type: file
description: Contamination estimation output.
pattern: "*.txt"
-
authors:
- "@jbv2"
+maintainers:
+ - "@jbv2"
diff --git a/modules/nf-core/angsd/docounts/environment.yml b/modules/nf-core/angsd/docounts/environment.yml
new file mode 100644
index 000000000..ebaa9ed2c
--- /dev/null
+++ b/modules/nf-core/angsd/docounts/environment.yml
@@ -0,0 +1,7 @@
+name: angsd_docounts
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::angsd=0.939
diff --git a/modules/nf-core/angsd/docounts/main.nf b/modules/nf-core/angsd/docounts/main.nf
index 0c6543101..33cc40425 100644
--- a/modules/nf-core/angsd/docounts/main.nf
+++ b/modules/nf-core/angsd/docounts/main.nf
@@ -2,7 +2,7 @@ process ANGSD_DOCOUNTS {
tag "$meta.id"
label 'process_low'
- conda "bioconda::angsd=0.939"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/angsd:0.939--h468462d_0':
'biocontainers/angsd:0.939--h468462d_0' }"
diff --git a/modules/nf-core/angsd/docounts/meta.yml b/modules/nf-core/angsd/docounts/meta.yml
index 658b9edc8..8381091f9 100644
--- a/modules/nf-core/angsd/docounts/meta.yml
+++ b/modules/nf-core/angsd/docounts/meta.yml
@@ -13,7 +13,6 @@ tools:
tool_dev_url: "https://github.com/ANGSD/angsd"
doi: "10.1186/s12859-014-0356-4"
licence: "['GPL v3, MIT']"
-
input:
- meta:
type: map
@@ -32,7 +31,6 @@ input:
type: file
description: File with individual quality score thresholds
pattern: "*"
-
output:
- meta:
type: map
@@ -67,6 +65,7 @@ output:
type: file
description: Internal format for dumping binary single chrs. Useful for ANGSD contamination
pattern: "*.icnts.gz"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/bamutil/trimbam/environment.yml b/modules/nf-core/bamutil/trimbam/environment.yml
new file mode 100644
index 000000000..d9b10c2a4
--- /dev/null
+++ b/modules/nf-core/bamutil/trimbam/environment.yml
@@ -0,0 +1,7 @@
+name: bamutil_trimbam
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bamutil=1.0.15
diff --git a/modules/nf-core/bamutil/trimbam/main.nf b/modules/nf-core/bamutil/trimbam/main.nf
index 0a1f112fa..c29dfe0f2 100644
--- a/modules/nf-core/bamutil/trimbam/main.nf
+++ b/modules/nf-core/bamutil/trimbam/main.nf
@@ -2,7 +2,7 @@ process BAMUTIL_TRIMBAM {
tag "$meta.id"
label 'process_single'
- conda "bioconda::bamutil=1.0.15"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bamutil:1.0.15--h2e03b76_1' :
'biocontainers/bamutil:1.0.15--h2e03b76_1' }"
diff --git a/modules/nf-core/bamutil/trimbam/meta.yml b/modules/nf-core/bamutil/trimbam/meta.yml
index 29f8c951f..f40a7e5d7 100644
--- a/modules/nf-core/bamutil/trimbam/meta.yml
+++ b/modules/nf-core/bamutil/trimbam/meta.yml
@@ -14,7 +14,6 @@ tools:
tool_dev_url: https://github.com/statgen/bamUtil
doi: "10.1101/gr.176552.114"
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -31,7 +30,6 @@ input:
- trim_right:
type: integer
description: Number of bases to trim off the right-hand side of a read. Reverse strands are reversed before trimming.
-
output:
- meta:
type: map
@@ -46,6 +44,7 @@ output:
type: file
description: Trimmed but unsorted BAM file
pattern: "*.bam"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/bbmap/bbduk/environment.yml b/modules/nf-core/bbmap/bbduk/environment.yml
new file mode 100644
index 000000000..1221474cd
--- /dev/null
+++ b/modules/nf-core/bbmap/bbduk/environment.yml
@@ -0,0 +1,7 @@
+name: bbmap_bbduk
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bbmap=39.01
diff --git a/modules/nf-core/bbmap/bbduk/main.nf b/modules/nf-core/bbmap/bbduk/main.nf
index 001e27d4d..6453afc68 100644
--- a/modules/nf-core/bbmap/bbduk/main.nf
+++ b/modules/nf-core/bbmap/bbduk/main.nf
@@ -2,7 +2,7 @@ process BBMAP_BBDUK {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bbmap=39.01"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bbmap:39.01--h5c4e2a8_0':
'biocontainers/bbmap:39.01--h5c4e2a8_0' }"
diff --git a/modules/nf-core/bbmap/bbduk/meta.yml b/modules/nf-core/bbmap/bbduk/meta.yml
index c17199186..9a1f05628 100644
--- a/modules/nf-core/bbmap/bbduk/meta.yml
+++ b/modules/nf-core/bbmap/bbduk/meta.yml
@@ -10,9 +10,7 @@ tools:
description: BBMap is a short read aligner, as well as various other bioinformatic tools.
homepage: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
-
licence: ["UC-LBL license (see package)"]
-
input:
- meta:
type: map
@@ -28,7 +26,6 @@ input:
type: file
description: |
Reference files containing adapter and/or contaminant sequences for sequence kmer matching
-
output:
- meta:
type: map
@@ -47,6 +44,7 @@ output:
type: file
description: Bbduk log file
pattern: "*bbduk.log"
-
authors:
- "@MGordon09"
+maintainers:
+ - "@MGordon09"
diff --git a/modules/nf-core/bedtools/coverage/environment.yml b/modules/nf-core/bedtools/coverage/environment.yml
new file mode 100644
index 000000000..016caf015
--- /dev/null
+++ b/modules/nf-core/bedtools/coverage/environment.yml
@@ -0,0 +1,7 @@
+name: bedtools_coverage
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bedtools=2.31.1
diff --git a/modules/nf-core/bedtools/coverage/main.nf b/modules/nf-core/bedtools/coverage/main.nf
index 5d2e27f09..c507aa112 100644
--- a/modules/nf-core/bedtools/coverage/main.nf
+++ b/modules/nf-core/bedtools/coverage/main.nf
@@ -2,10 +2,10 @@ process BEDTOOLS_COVERAGE {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bedtools=2.30.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--h468198e_3':
- 'biocontainers/bedtools:2.30.0--h468198e_3' }"
+ 'https://depot.galaxyproject.org/singularity/bedtools:2.31.1--hf5e1c6e_0' :
+ 'biocontainers/bedtools:2.31.1--hf5e1c6e_0' }"
input:
tuple val(meta), path(input_A), path(input_B)
diff --git a/modules/nf-core/bedtools/coverage/meta.yml b/modules/nf-core/bedtools/coverage/meta.yml
index bb9098717..7c5648566 100644
--- a/modules/nf-core/bedtools/coverage/meta.yml
+++ b/modules/nf-core/bedtools/coverage/meta.yml
@@ -15,8 +15,7 @@ tools:
documentation: "https://bedtools.readthedocs.io/en/latest/content/bedtools-suite.html"
tool_dev_url: "https://github.com/arq5x/bedtools2"
doi: "10.1093/bioinformatics/btq033"
- licence: "['GPL v2', 'MIT']"
-
+ licence: ["GPL v2", "MIT"]
input:
- meta:
type: map
@@ -38,7 +37,6 @@ input:
in the input files for use with the -sorted option.
When `genome_file` is provided, `-sorted` option is added to the command.
pattern: "*.{fai,txt,chromsizes}"
-
output:
- meta:
type: map
@@ -53,6 +51,7 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@priyanka-surana"
+maintainers:
+ - "@priyanka-surana"
diff --git a/modules/nf-core/bedtools/maskfasta/environment.yml b/modules/nf-core/bedtools/maskfasta/environment.yml
index 55ce727a7..71d18917d 100644
--- a/modules/nf-core/bedtools/maskfasta/environment.yml
+++ b/modules/nf-core/bedtools/maskfasta/environment.yml
@@ -1,6 +1,7 @@
+name: bedtools_maskfasta
channels:
- conda-forge
- bioconda
- defaults
dependencies:
- - bioconda::bedtools=2.30.0
+ - bioconda::bedtools=2.31.1
diff --git a/modules/nf-core/bedtools/maskfasta/main.nf b/modules/nf-core/bedtools/maskfasta/main.nf
index 2239eda5c..9511a8d85 100644
--- a/modules/nf-core/bedtools/maskfasta/main.nf
+++ b/modules/nf-core/bedtools/maskfasta/main.nf
@@ -2,10 +2,10 @@ process BEDTOOLS_MASKFASTA {
tag "$meta.id"
label 'process_single'
- conda 'modules/nf-core/bedtools/maskfasta/environment.yml'
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0' :
- 'biocontainers/bedtools:2.30.0--hc088bd4_0' }"
+ 'https://depot.galaxyproject.org/singularity/bedtools:2.31.1--hf5e1c6e_0' :
+ 'biocontainers/bedtools:2.31.1--hf5e1c6e_0' }"
input:
tuple val(meta), path(bed)
diff --git a/modules/nf-core/bowtie2/align/environment.yml b/modules/nf-core/bowtie2/align/environment.yml
new file mode 100644
index 000000000..d2796359a
--- /dev/null
+++ b/modules/nf-core/bowtie2/align/environment.yml
@@ -0,0 +1,9 @@
+name: bowtie2_align
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bowtie2=2.5.2
+ - bioconda::samtools=1.18
+ - conda-forge::pigz=2.6
diff --git a/modules/nf-core/bowtie2/align/main.nf b/modules/nf-core/bowtie2/align/main.nf
index 311a1505e..8c405ee38 100644
--- a/modules/nf-core/bowtie2/align/main.nf
+++ b/modules/nf-core/bowtie2/align/main.nf
@@ -2,10 +2,10 @@ process BOWTIE2_ALIGN {
tag "$meta.id"
label "process_high"
- conda "bioconda::bowtie2=2.4.4 bioconda::samtools=1.16.1 conda-forge::pigz=2.6"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' :
- 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:a0ffedb52808e102887f6ce600d092675bf3528a-0' }"
+ 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' :
+ 'biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:f70b31a2db15c023d641c32f433fb02cd04df5a6-0' }"
input:
tuple val(meta) , path(reads)
@@ -14,10 +14,10 @@ process BOWTIE2_ALIGN {
val sort_bam
output:
- tuple val(meta), path("*.bam") , emit: bam
- tuple val(meta), path("*.log") , emit: log
- tuple val(meta), path("*fastq.gz"), emit: fastq, optional:true
- path "versions.yml" , emit: versions
+ tuple val(meta), path("*.{bam,sam}"), emit: aligned
+ tuple val(meta), path("*.log") , emit: log
+ tuple val(meta), path("*fastq.gz") , emit: fastq, optional:true
+ path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
@@ -38,6 +38,8 @@ process BOWTIE2_ALIGN {
}
def samtools_command = sort_bam ? 'sort' : 'view'
+ def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/
+ def extension = (args2 ==~ extension_pattern) ? (args2 =~ extension_pattern)[0][2].toLowerCase() : "bam"
"""
INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/\\.rev.1.bt2\$//"`
@@ -50,8 +52,8 @@ process BOWTIE2_ALIGN {
--threads $task.cpus \\
$unaligned \\
$args \\
- 2> ${prefix}.bowtie2.log \\
- | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam -
+ 2> >(tee ${prefix}.bowtie2.log >&2) \\
+ | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.${extension} -
if [ -f ${prefix}.unmapped.fastq.1.gz ]; then
mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz
@@ -68,4 +70,30 @@ process BOWTIE2_ALIGN {
pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' )
END_VERSIONS
"""
+
+ stub:
+ def args2 = task.ext.args2 ?: ""
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ def extension_pattern = /(--output-fmt|-O)+\s+(\S+)/
+ def extension = (args2 ==~ extension_pattern) ? (args2 =~ extension_pattern)[0][2].toLowerCase() : "bam"
+ def create_unmapped = ""
+ if (meta.single_end) {
+ create_unmapped = save_unaligned ? "touch ${prefix}.unmapped.fastq.gz" : ""
+ } else {
+ create_unmapped = save_unaligned ? "touch ${prefix}.unmapped_1.fastq.gz && touch ${prefix}.unmapped_2.fastq.gz" : ""
+ }
+
+ """
+ touch ${prefix}.${extension}
+ touch ${prefix}.bowtie2.log
+ ${create_unmapped}
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//')
+ samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
+ pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' )
+ END_VERSIONS
+ """
+
}
diff --git a/modules/nf-core/bowtie2/align/meta.yml b/modules/nf-core/bowtie2/align/meta.yml
index c8e9a0012..e66811d05 100644
--- a/modules/nf-core/bowtie2/align/meta.yml
+++ b/modules/nf-core/bowtie2/align/meta.yml
@@ -46,10 +46,10 @@ input:
description: use samtools sort (true) or samtools view (false)
pattern: "true or false"
output:
- - bam:
+ - aligned:
type: file
- description: Output BAM file containing read alignments
- pattern: "*.{bam}"
+ description: Output BAM/SAM file containing read alignments
+ pattern: "*.{bam,sam}"
- versions:
type: file
description: File containing software versions
@@ -65,3 +65,6 @@ output:
authors:
- "@joseespinosa"
- "@drpatelh"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
diff --git a/modules/nf-core/bowtie2/build/environment.yml b/modules/nf-core/bowtie2/build/environment.yml
new file mode 100644
index 000000000..22bbfc374
--- /dev/null
+++ b/modules/nf-core/bowtie2/build/environment.yml
@@ -0,0 +1,7 @@
+name: bowtie2_build
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bowtie2=2.5.2
diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf
index 566a4accd..9e2e0e5e2 100644
--- a/modules/nf-core/bowtie2/build/main.nf
+++ b/modules/nf-core/bowtie2/build/main.nf
@@ -2,10 +2,10 @@ process BOWTIE2_BUILD {
tag "$fasta"
label 'process_high'
- conda "bioconda::bowtie2=2.4.4"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/bowtie2:2.4.4--py39hbb4e92a_0' :
- 'biocontainers/bowtie2:2.4.4--py39hbb4e92a_0' }"
+ 'https://depot.galaxyproject.org/singularity/bowtie2:2.5.2--py39h6fed5c7_0' :
+ 'biocontainers/bowtie2:2.5.2--py39h6fed5c7_0' }"
input:
tuple val(meta), path(fasta)
@@ -27,4 +27,16 @@ process BOWTIE2_BUILD {
bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//')
END_VERSIONS
"""
+
+ stub:
+ """
+ mkdir bowtie2
+ touch bowtie2/${fasta.baseName}.{1..4}.bt2
+ touch bowtie2/${fasta.baseName}.rev.{1,2}.bt2
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//')
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml
index 0240224d5..2d6879919 100644
--- a/modules/nf-core/bowtie2/build/meta.yml
+++ b/modules/nf-core/bowtie2/build/meta.yml
@@ -41,3 +41,6 @@ output:
authors:
- "@joseespinosa"
- "@drpatelh"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
diff --git a/modules/nf-core/bwa/aln/environment.yml b/modules/nf-core/bwa/aln/environment.yml
new file mode 100644
index 000000000..c63d9e1f6
--- /dev/null
+++ b/modules/nf-core/bwa/aln/environment.yml
@@ -0,0 +1,7 @@
+name: bwa_aln
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bwa=0.7.17
diff --git a/modules/nf-core/bwa/aln/main.nf b/modules/nf-core/bwa/aln/main.nf
index 012e02963..a537797d1 100644
--- a/modules/nf-core/bwa/aln/main.nf
+++ b/modules/nf-core/bwa/aln/main.nf
@@ -2,7 +2,7 @@ process BWA_ALN {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bwa=0.7.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bwa:0.7.17--h5bf99c6_8' :
'biocontainers/bwa:0.7.17--h5bf99c6_8' }"
diff --git a/modules/nf-core/bwa/aln/meta.yml b/modules/nf-core/bwa/aln/meta.yml
index f4cc8f33d..08eb5381e 100644
--- a/modules/nf-core/bwa/aln/meta.yml
+++ b/modules/nf-core/bwa/aln/meta.yml
@@ -18,7 +18,6 @@ tools:
documentation: http://bio-bwa.sourceforge.net/
doi: "10.1093/bioinformatics/btp324"
licence: ["GPL-3.0-or-later"]
-
input:
- meta:
type: map
@@ -39,7 +38,6 @@ input:
type: file
description: BWA genome index files
pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}"
-
output:
- meta:
type: map
@@ -54,6 +52,7 @@ output:
type: file
description: Single or paired SA coordinate files
pattern: "*.sai"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/bwa/index/environment.yml b/modules/nf-core/bwa/index/environment.yml
new file mode 100644
index 000000000..5d3cb3231
--- /dev/null
+++ b/modules/nf-core/bwa/index/environment.yml
@@ -0,0 +1,7 @@
+name: bwa_index
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bwa=0.7.17
diff --git a/modules/nf-core/bwa/index/main.nf b/modules/nf-core/bwa/index/main.nf
index 8d2e56d9b..24b5a2ea9 100644
--- a/modules/nf-core/bwa/index/main.nf
+++ b/modules/nf-core/bwa/index/main.nf
@@ -2,7 +2,7 @@ process BWA_INDEX {
tag "$fasta"
label 'process_single'
- conda "bioconda::bwa=0.7.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bwa:0.7.17--hed695b0_7' :
'biocontainers/bwa:0.7.17--hed695b0_7' }"
@@ -18,13 +18,14 @@ process BWA_INDEX {
task.ext.when == null || task.ext.when
script:
- def args = task.ext.args ?: ''
+ def prefix = task.ext.prefix ?: "${fasta.baseName}"
+ def args = task.ext.args ?: ''
"""
mkdir bwa
bwa \\
index \\
$args \\
- -p bwa/${fasta.baseName} \\
+ -p bwa/${prefix} \\
$fasta
cat <<-END_VERSIONS > versions.yml
@@ -34,14 +35,15 @@ process BWA_INDEX {
"""
stub:
+ def prefix = task.ext.prefix ?: "${fasta.baseName}"
"""
mkdir bwa
- touch bwa/genome.amb
- touch bwa/genome.ann
- touch bwa/genome.bwt
- touch bwa/genome.pac
- touch bwa/genome.sa
+ touch bwa/${prefix}.amb
+ touch bwa/${prefix}.ann
+ touch bwa/${prefix}.bwt
+ touch bwa/${prefix}.pac
+ touch bwa/${prefix}.sa
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/bwa/index/meta.yml b/modules/nf-core/bwa/index/meta.yml
index 2c6cfcd79..730628d00 100644
--- a/modules/nf-core/bwa/index/meta.yml
+++ b/modules/nf-core/bwa/index/meta.yml
@@ -40,3 +40,6 @@ output:
authors:
- "@drpatelh"
- "@maxulysse"
+maintainers:
+ - "@drpatelh"
+ - "@maxulysse"
diff --git a/modules/nf-core/bwa/mem/environment.yml b/modules/nf-core/bwa/mem/environment.yml
new file mode 100644
index 000000000..c5b2a9ce5
--- /dev/null
+++ b/modules/nf-core/bwa/mem/environment.yml
@@ -0,0 +1,9 @@
+name: bwa_mem
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bwa=0.7.17
+ # renovate: datasource=conda depName=bioconda/samtools
+ - samtools=1.18
diff --git a/modules/nf-core/bwa/mem/main.nf b/modules/nf-core/bwa/mem/main.nf
index d2f85dafe..a3a829943 100644
--- a/modules/nf-core/bwa/mem/main.nf
+++ b/modules/nf-core/bwa/mem/main.nf
@@ -2,10 +2,10 @@ process BWA_MEM {
tag "$meta.id"
label 'process_high'
- conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' :
- 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }"
+ 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' :
+ 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' }"
input:
tuple val(meta), path(reads)
@@ -40,4 +40,16 @@ process BWA_MEM {
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
END_VERSIONS
"""
+
+ stub:
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ """
+ touch ${prefix}.bam
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ bwa: \$(echo \$(bwa 2>&1) | sed 's/^.*Version: //; s/Contact:.*\$//')
+ samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/bwa/mem/meta.yml b/modules/nf-core/bwa/mem/meta.yml
index 62357bf8d..440fb1f9c 100644
--- a/modules/nf-core/bwa/mem/meta.yml
+++ b/modules/nf-core/bwa/mem/meta.yml
@@ -53,3 +53,6 @@ output:
authors:
- "@drpatelh"
- "@jeremy1805"
+maintainers:
+ - "@drpatelh"
+ - "@jeremy1805"
diff --git a/modules/nf-core/bwa/sampe/environment.yml b/modules/nf-core/bwa/sampe/environment.yml
new file mode 100644
index 000000000..84eee3486
--- /dev/null
+++ b/modules/nf-core/bwa/sampe/environment.yml
@@ -0,0 +1,8 @@
+name: bwa_sampe
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bwa=0.7.17
+ - bioconda::samtools=1.18
diff --git a/modules/nf-core/bwa/sampe/main.nf b/modules/nf-core/bwa/sampe/main.nf
index 45bfffb6d..8b0f51d5e 100644
--- a/modules/nf-core/bwa/sampe/main.nf
+++ b/modules/nf-core/bwa/sampe/main.nf
@@ -2,10 +2,10 @@ process BWA_SAMPE {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' :
- 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }"
+ 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' :
+ 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' }"
input:
tuple val(meta), path(reads), path(sai)
diff --git a/modules/nf-core/bwa/sampe/meta.yml b/modules/nf-core/bwa/sampe/meta.yml
index 0cefb96eb..48a0737f0 100644
--- a/modules/nf-core/bwa/sampe/meta.yml
+++ b/modules/nf-core/bwa/sampe/meta.yml
@@ -19,7 +19,6 @@ tools:
documentation: http://bio-bwa.sourceforge.net/
doi: "10.1093/bioinformatics/btp324"
licence: ["GPL-3.0-or-later"]
-
input:
- meta:
type: map
@@ -43,7 +42,6 @@ input:
type: directory
description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX
pattern: "bwa/"
-
output:
- meta:
type: map
@@ -58,6 +56,7 @@ output:
type: file
description: BAM file
pattern: "*.bam"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/bwa/samse/environment.yml b/modules/nf-core/bwa/samse/environment.yml
new file mode 100644
index 000000000..a3b33d5df
--- /dev/null
+++ b/modules/nf-core/bwa/samse/environment.yml
@@ -0,0 +1,8 @@
+name: bwa_samse
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bwa=0.7.17
+ - bioconda::samtools=1.18
diff --git a/modules/nf-core/bwa/samse/main.nf b/modules/nf-core/bwa/samse/main.nf
index 38752ed8d..8de45bf40 100644
--- a/modules/nf-core/bwa/samse/main.nf
+++ b/modules/nf-core/bwa/samse/main.nf
@@ -2,10 +2,10 @@ process BWA_SAMSE {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bwa=0.7.17 bioconda::samtools=1.16.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' :
- 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:219b6c272b25e7e642ae3ff0bf0c5c81a5135ab4-0' }"
+ 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' :
+ 'biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:9c0128851101dafef65cef649826d2dbe6bedd7e-0' }"
input:
tuple val(meta), path(reads), path(sai)
diff --git a/modules/nf-core/bwa/samse/meta.yml b/modules/nf-core/bwa/samse/meta.yml
index 1deab21b6..a366a24b2 100644
--- a/modules/nf-core/bwa/samse/meta.yml
+++ b/modules/nf-core/bwa/samse/meta.yml
@@ -10,7 +10,6 @@ keywords:
- map
- sam
- bam
-
tools:
- bwa:
description: |
@@ -20,7 +19,6 @@ tools:
documentation: http://bio-bwa.sourceforge.net/
doi: "10.1093/bioinformatics/btp324"
licence: ["GPL-3.0-or-later"]
-
input:
- meta:
type: map
@@ -44,7 +42,6 @@ input:
type: directory
description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX
pattern: "bwa/"
-
output:
- meta:
type: map
@@ -59,6 +56,7 @@ output:
type: file
description: BAM file
pattern: "*.bam"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/cat/fastq/environment.yml b/modules/nf-core/cat/fastq/environment.yml
new file mode 100644
index 000000000..bff93add0
--- /dev/null
+++ b/modules/nf-core/cat/fastq/environment.yml
@@ -0,0 +1,7 @@
+name: cat_fastq
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - conda-forge::sed=4.7
diff --git a/modules/nf-core/cat/fastq/main.nf b/modules/nf-core/cat/fastq/main.nf
index 5021e6fcb..3d963784c 100644
--- a/modules/nf-core/cat/fastq/main.nf
+++ b/modules/nf-core/cat/fastq/main.nf
@@ -2,7 +2,7 @@ process CAT_FASTQ {
tag "$meta.id"
label 'process_single'
- conda "conda-forge::sed=4.7"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'nf-core/ubuntu:20.04' }"
diff --git a/modules/nf-core/cat/fastq/meta.yml b/modules/nf-core/cat/fastq/meta.yml
index 8a39e309f..db4ac3c79 100644
--- a/modules/nf-core/cat/fastq/meta.yml
+++ b/modules/nf-core/cat/fastq/meta.yml
@@ -34,7 +34,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@joseespinosa"
- "@drpatelh"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml
index f0c63f698..9b3272bc1 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 7685b33cd..f2187611c 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 eec1db10a..b1e1630bb 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 4274ed57a..5f59a936d 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/damageprofiler/environment.yml b/modules/nf-core/damageprofiler/environment.yml
new file mode 100644
index 000000000..e91d4077c
--- /dev/null
+++ b/modules/nf-core/damageprofiler/environment.yml
@@ -0,0 +1,7 @@
+name: damageprofiler
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::damageprofiler=1.1
diff --git a/modules/nf-core/damageprofiler/main.nf b/modules/nf-core/damageprofiler/main.nf
index 401f58d6e..98a2db223 100644
--- a/modules/nf-core/damageprofiler/main.nf
+++ b/modules/nf-core/damageprofiler/main.nf
@@ -2,7 +2,7 @@ process DAMAGEPROFILER {
tag "$meta.id"
label 'process_single'
- conda "bioconda::damageprofiler=1.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/damageprofiler:1.1--hdfd78af_2' :
'biocontainers/damageprofiler:1.1--hdfd78af_2' }"
diff --git a/modules/nf-core/damageprofiler/meta.yml b/modules/nf-core/damageprofiler/meta.yml
index b41aeb8d1..8a9307f1a 100644
--- a/modules/nf-core/damageprofiler/meta.yml
+++ b/modules/nf-core/damageprofiler/meta.yml
@@ -19,7 +19,6 @@ tools:
tool_dev_url: https://github.com/Integrative-Transcriptomics/DamageProfiler
doi: "10.1093/bioinformatics/btab190"
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -42,7 +41,6 @@ input:
type: file
description: OPTIONAL text file with list of target reference headers
pattern: "*.{txt}"
-
output:
- versions:
type: file
@@ -52,6 +50,7 @@ output:
type: dir
description: DamageProfiler results directory
pattern: "*/*"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/dedup/environment.yml b/modules/nf-core/dedup/environment.yml
new file mode 100644
index 000000000..e3e386614
--- /dev/null
+++ b/modules/nf-core/dedup/environment.yml
@@ -0,0 +1,7 @@
+name: dedup
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::dedup=0.12.8
diff --git a/modules/nf-core/dedup/main.nf b/modules/nf-core/dedup/main.nf
index 0cfb2522d..f08ef5d8e 100644
--- a/modules/nf-core/dedup/main.nf
+++ b/modules/nf-core/dedup/main.nf
@@ -2,7 +2,7 @@ process DEDUP {
tag "$meta.id"
label 'process_single'
- conda "bioconda::dedup=0.12.8"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/dedup:0.12.8--hdfd78af_1' :
'biocontainers/dedup:0.12.8--hdfd78af_1' }"
diff --git a/modules/nf-core/dedup/meta.yml b/modules/nf-core/dedup/meta.yml
index 17cf4e260..3a6265878 100644
--- a/modules/nf-core/dedup/meta.yml
+++ b/modules/nf-core/dedup/meta.yml
@@ -15,7 +15,6 @@ tools:
tool_dev_url: https://github.com/apeltzer/DeDup
doi: "10.1186/s13059-016-0918-z"
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -26,7 +25,6 @@ input:
type: file
description: BAM/SAM file
pattern: "*.{bam,sam}"
-
output:
- meta:
type: map
@@ -53,6 +51,7 @@ output:
type: file
description: Dedup log information
pattern: "*log"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/endorspy/environment.yml b/modules/nf-core/endorspy/environment.yml
new file mode 100644
index 000000000..ce790813a
--- /dev/null
+++ b/modules/nf-core/endorspy/environment.yml
@@ -0,0 +1,7 @@
+name: endorspy
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::endorspy=1.3
diff --git a/modules/nf-core/endorspy/main.nf b/modules/nf-core/endorspy/main.nf
index 60e687f69..dd17819d3 100644
--- a/modules/nf-core/endorspy/main.nf
+++ b/modules/nf-core/endorspy/main.nf
@@ -2,7 +2,7 @@ process ENDORSPY {
tag "$meta.id"
label 'process_low'
- conda "bioconda::endorspy=1.3"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/endorspy:1.3--hdfd78af_0':
'biocontainers/endorspy:1.3--hdfd78af_0' }"
diff --git a/modules/nf-core/endorspy/meta.yml b/modules/nf-core/endorspy/meta.yml
index e529fc9b2..d1a363e01 100644
--- a/modules/nf-core/endorspy/meta.yml
+++ b/modules/nf-core/endorspy/meta.yml
@@ -13,7 +13,6 @@ tools:
tool_dev_url: "https://github.com/aidaanva/endorS.py"
doi: "10.7717/peerj.10947"
licence: "['GPL v3']"
-
input:
- meta:
type: map
@@ -29,7 +28,6 @@ input:
- stats_deduplicated:
type: file
description: output of samtools flagstat in a txt file, whereby duplicate removal has been performed on the input reads
-
output:
- meta:
type: map
@@ -44,6 +42,7 @@ output:
type: file
description: file with the endogenous DNA calculation tailored for multiQC
pattern: "*_mqc.json"
-
authors:
- "@aidaanva"
+maintainers:
+ - "@aidaanva"
diff --git a/modules/nf-core/falco/environment.yml b/modules/nf-core/falco/environment.yml
new file mode 100644
index 000000000..eeedb5b73
--- /dev/null
+++ b/modules/nf-core/falco/environment.yml
@@ -0,0 +1,7 @@
+name: falco
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::falco=1.2.1
diff --git a/modules/nf-core/falco/main.nf b/modules/nf-core/falco/main.nf
index 73e796092..ab060542b 100644
--- a/modules/nf-core/falco/main.nf
+++ b/modules/nf-core/falco/main.nf
@@ -3,7 +3,7 @@ process FALCO {
label 'process_single'
- conda "bioconda::falco=1.2.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/falco:1.2.1--h867801b_3':
'biocontainers/falco:1.2.1--h867801b_3' }"
diff --git a/modules/nf-core/falco/meta.yml b/modules/nf-core/falco/meta.yml
index 638464910..71f69e91b 100644
--- a/modules/nf-core/falco/meta.yml
+++ b/modules/nf-core/falco/meta.yml
@@ -8,12 +8,9 @@ keywords:
tools:
- fastqc:
description: "falco is a drop-in C++ implementation of FastQC to assess the quality of sequence reads."
-
homepage: "https://falco.readthedocs.io/"
documentation: "https://falco.readthedocs.io/"
-
licence: "['GPL v3']"
-
input:
- meta:
type: map
@@ -49,3 +46,5 @@ output:
pattern: "versions.yml"
authors:
- "@lucacozzuto"
+maintainers:
+ - "@lucacozzuto"
diff --git a/modules/nf-core/fastp/environment.yml b/modules/nf-core/fastp/environment.yml
new file mode 100644
index 000000000..70389e664
--- /dev/null
+++ b/modules/nf-core/fastp/environment.yml
@@ -0,0 +1,7 @@
+name: fastp
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::fastp=0.23.4
diff --git a/modules/nf-core/fastp/main.nf b/modules/nf-core/fastp/main.nf
index 2ca2d3ee0..2a3b679e3 100644
--- a/modules/nf-core/fastp/main.nf
+++ b/modules/nf-core/fastp/main.nf
@@ -2,10 +2,10 @@ process FASTP {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::fastp=0.23.2"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/fastp:0.23.2--h79da9fb_0' :
- 'biocontainers/fastp:0.23.2--h79da9fb_0' }"
+ 'https://depot.galaxyproject.org/singularity/fastp:0.23.4--h5f740d0_0' :
+ 'biocontainers/fastp:0.23.4--h5f740d0_0' }"
input:
tuple val(meta), path(reads)
@@ -45,7 +45,7 @@ process FASTP {
$adapter_list \\
$fail_fastq \\
$args \\
- 2> ${prefix}.fastp.log \\
+ 2> >(tee ${prefix}.fastp.log >&2) \\
| gzip -c > ${prefix}.fastp.fastq.gz
cat <<-END_VERSIONS > versions.yml
@@ -66,7 +66,7 @@ process FASTP {
$adapter_list \\
$fail_fastq \\
$args \\
- 2> ${prefix}.fastp.log
+ 2> >(tee ${prefix}.fastp.log >&2)
cat <<-END_VERSIONS > versions.yml
"${task.process}":
@@ -91,7 +91,7 @@ process FASTP {
--thread $task.cpus \\
--detect_adapter_for_pe \\
$args \\
- 2> ${prefix}.fastp.log
+ 2> >(tee ${prefix}.fastp.log >&2)
cat <<-END_VERSIONS > versions.yml
"${task.process}":
@@ -99,4 +99,22 @@ process FASTP {
END_VERSIONS
"""
}
+
+ stub:
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ def is_single_output = task.ext.args?.contains('--interleaved_in') || meta.single_end
+ def touch_reads = is_single_output ? "${prefix}.fastp.fastq.gz" : "${prefix}_1.fastp.fastq.gz ${prefix}_2.fastp.fastq.gz"
+ def touch_merged = (!is_single_output && save_merged) ? "touch ${prefix}.merged.fastq.gz" : ""
+ """
+ touch $touch_reads
+ touch "${prefix}.fastp.json"
+ touch "${prefix}.fastp.html"
+ touch "${prefix}.fastp.log"
+ $touch_merged
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ fastp: \$(fastp --version 2>&1 | sed -e "s/fastp //g")
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/fastp/meta.yml b/modules/nf-core/fastp/meta.yml
index 197ea7ca6..c22a16abd 100644
--- a/modules/nf-core/fastp/meta.yml
+++ b/modules/nf-core/fastp/meta.yml
@@ -33,7 +33,6 @@ input:
- save_merged:
type: boolean
description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz`
-
output:
- meta:
type: map
@@ -71,3 +70,6 @@ output:
authors:
- "@drpatelh"
- "@kevinmenden"
+maintainers:
+ - "@drpatelh"
+ - "@kevinmenden"
diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test
index b9e8f926e..70edae4d9 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 636a32cea..86f7c3115 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/environment.yml b/modules/nf-core/gunzip/environment.yml
new file mode 100644
index 000000000..25910b340
--- /dev/null
+++ b/modules/nf-core/gunzip/environment.yml
@@ -0,0 +1,7 @@
+name: gunzip
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - conda-forge::sed=4.7
diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf
index e7189d2fb..468a6f287 100644
--- a/modules/nf-core/gunzip/main.nf
+++ b/modules/nf-core/gunzip/main.nf
@@ -2,7 +2,7 @@ process GUNZIP {
tag "$archive"
label 'process_single'
- conda "conda-forge::sed=4.7"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'nf-core/ubuntu:20.04' }"
@@ -21,10 +21,14 @@ process GUNZIP {
def args = task.ext.args ?: ''
gunzip = archive.toString() - '.gz'
"""
- gunzip \\
- -f \\
+ # Not calling gunzip itself because it creates files
+ # with the original group ownership rather than the
+ # default one for that user / the work directory
+ gzip \\
+ -cd \\
$args \\
- $archive
+ $archive \\
+ > $gunzip
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml
index 4cdcdf4c4..231034f2f 100644
--- a/modules/nf-core/gunzip/meta.yml
+++ b/modules/nf-core/gunzip/meta.yml
@@ -33,3 +33,7 @@ authors:
- "@joseespinosa"
- "@drpatelh"
- "@jfy133"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
+ - "@jfy133"
diff --git a/modules/nf-core/mapdamage2/environment.yml b/modules/nf-core/mapdamage2/environment.yml
new file mode 100644
index 000000000..92be8ef3e
--- /dev/null
+++ b/modules/nf-core/mapdamage2/environment.yml
@@ -0,0 +1,7 @@
+name: mapdamage2
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::mapdamage2=2.2.1
diff --git a/modules/nf-core/mapdamage2/main.nf b/modules/nf-core/mapdamage2/main.nf
index 488444df0..ef472f4a7 100644
--- a/modules/nf-core/mapdamage2/main.nf
+++ b/modules/nf-core/mapdamage2/main.nf
@@ -2,10 +2,10 @@ process MAPDAMAGE2 {
tag "$meta.id"
label 'process_single'
- conda "bioconda::mapdamage2=2.2.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mapdamage2:2.2.1--pyr40_0' :
- 'quay.io/biocontainers/mapdamage2:2.2.1--pyr40_0' }"
+ 'biocontainers/mapdamage2:2.2.1--pyr40_0' }"
input:
tuple val(meta), path(bam)
diff --git a/modules/nf-core/mapdamage2/meta.yml b/modules/nf-core/mapdamage2/meta.yml
index 8cca9f6a4..884e520af 100644
--- a/modules/nf-core/mapdamage2/meta.yml
+++ b/modules/nf-core/mapdamage2/meta.yml
@@ -1,5 +1,4 @@
name: mapdamage2
-
description: Computational framework for tracking and quantifying DNA damage patterns among ancient DNA sequencing reads generated by Next-Generation Sequencing platforms.
keywords:
- ancient DNA
@@ -15,7 +14,6 @@ tools:
tool_dev_url: https://github.com/ginolhac/mapDamage
doi: "10.1093/bioinformatics/btt193"
licence: ["MIT"]
-
input:
- meta:
type: map
@@ -28,7 +26,6 @@ input:
type: file
description: Fasta file, the reference the input BAM was mapped against
pattern: "*.{fasta}"
-
output:
- meta:
type: map
@@ -109,6 +106,7 @@ output:
type: directory
description: Folder created when --plot-only, --rescale and --stats-only flags are passed.
pattern: "*/"
-
authors:
- "@darcy220606"
+maintainers:
+ - "@darcy220606"
diff --git a/modules/nf-core/mtnucratio/environment.yml b/modules/nf-core/mtnucratio/environment.yml
new file mode 100644
index 000000000..98919877b
--- /dev/null
+++ b/modules/nf-core/mtnucratio/environment.yml
@@ -0,0 +1,7 @@
+name: mtnucratio
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::mtnucratio=0.7
diff --git a/modules/nf-core/mtnucratio/main.nf b/modules/nf-core/mtnucratio/main.nf
index 4f675e05f..e980efbed 100644
--- a/modules/nf-core/mtnucratio/main.nf
+++ b/modules/nf-core/mtnucratio/main.nf
@@ -2,7 +2,7 @@ process MTNUCRATIO {
tag "$meta.id"
label 'process_single'
- conda "bioconda::mtnucratio=0.7"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mtnucratio:0.7--hdfd78af_2' :
'biocontainers/mtnucratio:0.7--hdfd78af_2' }"
diff --git a/modules/nf-core/mtnucratio/meta.yml b/modules/nf-core/mtnucratio/meta.yml
index b8cdef364..6c289720d 100644
--- a/modules/nf-core/mtnucratio/meta.yml
+++ b/modules/nf-core/mtnucratio/meta.yml
@@ -16,7 +16,6 @@ tools:
tool_dev_url: https://github.com/apeltzer/MTNucRatioCalculator
doi: "10.1186/s13059-016-0918-z"
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -30,7 +29,6 @@ input:
- mt_id:
type: string
description: Identifier of the contig/chromosome of interest (e.g. chromosome, contig) as in the aligned against reference FASTA file, e.g. mt or chrMT for mitochondria
-
output:
- meta:
type: map
@@ -49,6 +47,7 @@ output:
type: file
description: JSON file, containing metadata map with sample name, tool name and version, and metrics as in txt file
pattern: "*.json"
-
authors:
- "@louperelo"
+maintainers:
+ - "@louperelo"
diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml
index bc0bdb5b6..7625b7520 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/main.nf b/modules/nf-core/multiqc/main.nf
index 00cc48d27..1b9f7c431 100644
--- a/modules/nf-core/multiqc/main.nf
+++ b/modules/nf-core/multiqc/main.nf
@@ -3,8 +3,8 @@ process MULTIQC {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.18--pyhdfd78af_0' :
- 'biocontainers/multiqc:1.18--pyhdfd78af_0' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.19--pyhdfd78af_0' :
+ 'biocontainers/multiqc:1.19--pyhdfd78af_0' }"
input:
path multiqc_files, stageAs: "?/*"
@@ -43,7 +43,7 @@ process MULTIQC {
stub:
"""
- touch multiqc_data
+ mkdir multiqc_data
touch multiqc_plots
touch multiqc_report.html
diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml
index f1aa660eb..45a9bc35e 100644
--- a/modules/nf-core/multiqc/meta.yml
+++ b/modules/nf-core/multiqc/meta.yml
@@ -1,4 +1,3 @@
-# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json
name: multiqc
description: Aggregate results from bioinformatics analyses across many samples into a single report
keywords:
diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test
index c2dad217c..d0438eda6 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 000000000..d37e73040
--- /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/createsequencedictionary/environment.yml b/modules/nf-core/picard/createsequencedictionary/environment.yml
new file mode 100644
index 000000000..f3554628b
--- /dev/null
+++ b/modules/nf-core/picard/createsequencedictionary/environment.yml
@@ -0,0 +1,7 @@
+name: picard_createsequencedictionary
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::picard=3.1.1
diff --git a/modules/nf-core/picard/createsequencedictionary/main.nf b/modules/nf-core/picard/createsequencedictionary/main.nf
index d07cc6736..a1eb8bed5 100644
--- a/modules/nf-core/picard/createsequencedictionary/main.nf
+++ b/modules/nf-core/picard/createsequencedictionary/main.nf
@@ -2,10 +2,10 @@ process PICARD_CREATESEQUENCEDICTIONARY {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::picard=3.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' :
- 'biocontainers/picard:3.0.0--hdfd78af_1' }"
+ 'https://depot.galaxyproject.org/singularity/picard:3.1.1--hdfd78af_0' :
+ 'biocontainers/picard:3.1.1--hdfd78af_0' }"
input:
tuple val(meta), path(fasta)
diff --git a/modules/nf-core/picard/createsequencedictionary/meta.yml b/modules/nf-core/picard/createsequencedictionary/meta.yml
index 3e04159d8..0cb79cfe5 100644
--- a/modules/nf-core/picard/createsequencedictionary/meta.yml
+++ b/modules/nf-core/picard/createsequencedictionary/meta.yml
@@ -12,7 +12,6 @@ tools:
documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036712531-CreateSequenceDictionary-Picard-
tool_dev_url: https://github.com/broadinstitute/picard
licence: ["MIT"]
-
input:
- meta:
type: map
@@ -23,7 +22,6 @@ input:
type: file
description: The reference fasta file
pattern: "*.fasta"
-
output:
- meta:
type: map
@@ -34,12 +32,15 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
- - dict:
+ - reference_dict:
type: file
description: picard dictionary file
pattern: "*.{dict}"
-
authors:
- "@sateeshperi"
- "@mjcipriano"
- "@hseabolt"
+maintainers:
+ - "@sateeshperi"
+ - "@mjcipriano"
+ - "@hseabolt"
diff --git a/modules/nf-core/picard/markduplicates/environment.yml b/modules/nf-core/picard/markduplicates/environment.yml
new file mode 100644
index 000000000..58b795f54
--- /dev/null
+++ b/modules/nf-core/picard/markduplicates/environment.yml
@@ -0,0 +1,7 @@
+name: picard_markduplicates
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::picard=3.1.1
diff --git a/modules/nf-core/picard/markduplicates/main.nf b/modules/nf-core/picard/markduplicates/main.nf
index 7ba8448f7..80930cc41 100644
--- a/modules/nf-core/picard/markduplicates/main.nf
+++ b/modules/nf-core/picard/markduplicates/main.nf
@@ -2,15 +2,15 @@ process PICARD_MARKDUPLICATES {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::picard=3.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' :
- 'biocontainers/picard:3.0.0--hdfd78af_1' }"
+ 'https://depot.galaxyproject.org/singularity/picard:3.1.1--hdfd78af_0' :
+ 'biocontainers/picard:3.1.1--hdfd78af_0' }"
input:
tuple val(meta), path(bam)
- path fasta
- path fai
+ tuple val(meta2), path(fasta)
+ tuple val(meta3), path(fai)
output:
tuple val(meta), path("*.bam") , emit: bam
@@ -30,6 +30,9 @@ process PICARD_MARKDUPLICATES {
} else {
avail_mem = (task.memory.mega*0.8).intValue()
}
+
+ if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!"
+
"""
picard \\
-Xmx${avail_mem}M \\
@@ -48,6 +51,7 @@ process PICARD_MARKDUPLICATES {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
+ if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!"
"""
touch ${prefix}.bam
touch ${prefix}.bam.bai
diff --git a/modules/nf-core/picard/markduplicates/meta.yml b/modules/nf-core/picard/markduplicates/meta.yml
index 3f2357bbf..1ab90c075 100644
--- a/modules/nf-core/picard/markduplicates/meta.yml
+++ b/modules/nf-core/picard/markduplicates/meta.yml
@@ -25,10 +25,20 @@ input:
type: file
description: BAM file
pattern: "*.{bam,cram,sam}"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'genome' ]
- fasta:
type: file
description: Reference genome fasta file
pattern: "*.{fasta,fa}"
+ - meta3:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'genome' ]
- fai:
type: file
description: Reference genome fasta index
@@ -58,3 +68,8 @@ output:
authors:
- "@drpatelh"
- "@projectoriented"
+ - "@ramprasadn"
+maintainers:
+ - "@drpatelh"
+ - "@projectoriented"
+ - "@ramprasadn"
diff --git a/modules/nf-core/pmdtools/filter/environment.yml b/modules/nf-core/pmdtools/filter/environment.yml
new file mode 100644
index 000000000..591722d7b
--- /dev/null
+++ b/modules/nf-core/pmdtools/filter/environment.yml
@@ -0,0 +1,7 @@
+name: pmdtools_filter
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::pmdtools=0.60
diff --git a/modules/nf-core/pmdtools/filter/main.nf b/modules/nf-core/pmdtools/filter/main.nf
index 8802152e8..5f8554500 100644
--- a/modules/nf-core/pmdtools/filter/main.nf
+++ b/modules/nf-core/pmdtools/filter/main.nf
@@ -2,10 +2,10 @@ process PMDTOOLS_FILTER {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::pmdtools=0.60"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pmdtools:0.60--hdfd78af_5' :
- 'quay.io/biocontainers/pmdtools:0.60--hdfd78af_5' }"
+ 'biocontainers/pmdtools:0.60--hdfd78af_5' }"
input:
tuple val(meta), path(bam), path (bai)
diff --git a/modules/nf-core/pmdtools/filter/meta.yml b/modules/nf-core/pmdtools/filter/meta.yml
index 58d562bfb..3d8d4de99 100644
--- a/modules/nf-core/pmdtools/filter/meta.yml
+++ b/modules/nf-core/pmdtools/filter/meta.yml
@@ -13,7 +13,6 @@ tools:
tool_dev_url: https://github.com/pontussk/PMDtools
doi: "10.1073/pnas.1318934111"
licence: ["GPL v3"]
-
input:
- meta:
type: map
@@ -35,7 +34,6 @@ input:
type: file
description: FASTA file
pattern: "*.{fa,fasta}"
-
output:
- meta:
type: map
@@ -50,6 +48,7 @@ output:
type: file
description: Filtered BAM file
pattern: "*.bam"
-
authors:
- "@alexandregilardet"
+maintainers:
+ - "@alexandregilardet"
diff --git a/modules/nf-core/preseq/ccurve/environment.yml b/modules/nf-core/preseq/ccurve/environment.yml
new file mode 100644
index 000000000..d05e5ff31
--- /dev/null
+++ b/modules/nf-core/preseq/ccurve/environment.yml
@@ -0,0 +1,7 @@
+name: preseq_ccurve
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::preseq=3.1.2
diff --git a/modules/nf-core/preseq/ccurve/main.nf b/modules/nf-core/preseq/ccurve/main.nf
index 095d8b43c..dd7806890 100644
--- a/modules/nf-core/preseq/ccurve/main.nf
+++ b/modules/nf-core/preseq/ccurve/main.nf
@@ -3,7 +3,7 @@ process PRESEQ_CCURVE {
label 'process_single'
label 'error_ignore'
- conda "bioconda::preseq=3.1.2"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2':
'biocontainers/preseq:3.1.2--h445547b_2' }"
diff --git a/modules/nf-core/preseq/ccurve/meta.yml b/modules/nf-core/preseq/ccurve/meta.yml
index 07d345850..f804b0669 100644
--- a/modules/nf-core/preseq/ccurve/meta.yml
+++ b/modules/nf-core/preseq/ccurve/meta.yml
@@ -10,9 +10,7 @@ tools:
homepage: http://smithlabresearch.org/software/preseq/
documentation: http://smithlabresearch.org/wp-content/uploads/manual.pdf
tool_dev_url: https://github.com/smithlabcode/preseq
-
licence: ["GPL"]
-
input:
- meta:
type: map
@@ -23,7 +21,6 @@ input:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
-
output:
- meta:
type: map
@@ -42,7 +39,9 @@ output:
type: file
description: Log file containing stderr produced by Preseq
pattern: "*.{log}"
-
authors:
- "@drpatelh"
- - "@Emiller88"
+ - "@edmundmiller"
+maintainers:
+ - "@drpatelh"
+ - "@edmundmiller"
diff --git a/modules/nf-core/preseq/lcextrap/environment.yml b/modules/nf-core/preseq/lcextrap/environment.yml
new file mode 100644
index 000000000..57b8b9c67
--- /dev/null
+++ b/modules/nf-core/preseq/lcextrap/environment.yml
@@ -0,0 +1,7 @@
+name: preseq_lcextrap
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::preseq=3.1.2
diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf
index 12546f0a2..ebbf215f0 100644
--- a/modules/nf-core/preseq/lcextrap/main.nf
+++ b/modules/nf-core/preseq/lcextrap/main.nf
@@ -3,7 +3,7 @@ process PRESEQ_LCEXTRAP {
label 'process_single'
label 'error_ignore'
- conda "bioconda::preseq=3.1.2"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2':
'biocontainers/preseq:3.1.2--h445547b_2' }"
diff --git a/modules/nf-core/preseq/lcextrap/meta.yml b/modules/nf-core/preseq/lcextrap/meta.yml
old mode 100755
new mode 100644
index 1391961c8..c00fa8eef
--- a/modules/nf-core/preseq/lcextrap/meta.yml
+++ b/modules/nf-core/preseq/lcextrap/meta.yml
@@ -10,9 +10,7 @@ tools:
homepage: http://smithlabresearch.org/software/preseq/
documentation: http://smithlabresearch.org/wp-content/uploads/manual.pdf
tool_dev_url: https://github.com/smithlabcode/preseq
-
licence: ["GPL"]
-
input:
- meta:
type: map
@@ -23,7 +21,6 @@ input:
type: file
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
-
output:
- meta:
type: map
@@ -42,7 +39,9 @@ output:
type: file
description: Log file containing stderr produced by Preseq
pattern: "*.{log}"
-
authors:
- "@drpatelh"
- - "@Emiller88"
+ - "@edmundmiller"
+maintainers:
+ - "@drpatelh"
+ - "@edmundmiller"
diff --git a/modules/nf-core/prinseqplusplus/environment.yml b/modules/nf-core/prinseqplusplus/environment.yml
new file mode 100644
index 000000000..5ab5a1266
--- /dev/null
+++ b/modules/nf-core/prinseqplusplus/environment.yml
@@ -0,0 +1,7 @@
+name: prinseqplusplus
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::prinseq-plus-plus=1.2.3
diff --git a/modules/nf-core/prinseqplusplus/main.nf b/modules/nf-core/prinseqplusplus/main.nf
index 63b2c7237..6981445ec 100644
--- a/modules/nf-core/prinseqplusplus/main.nf
+++ b/modules/nf-core/prinseqplusplus/main.nf
@@ -2,7 +2,7 @@ process PRINSEQPLUSPLUS {
tag "$meta.id"
label 'process_low'
- conda "bioconda::prinseq-plus-plus=1.2.3"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/prinseq-plus-plus:1.2.3--hc90279e_1':
'biocontainers/prinseq-plus-plus:1.2.3--hc90279e_1' }"
diff --git a/modules/nf-core/prinseqplusplus/meta.yml b/modules/nf-core/prinseqplusplus/meta.yml
index 8155df93f..ca8542ff6 100644
--- a/modules/nf-core/prinseqplusplus/meta.yml
+++ b/modules/nf-core/prinseqplusplus/meta.yml
@@ -13,7 +13,6 @@ tools:
tool_dev_url: "https://github.com/Adrian-Cantu/PRINSEQ-plus-plus"
doi: "10.7287/peerj.preprints.27553v1"
licence: "['GPL v2']"
-
input:
- meta:
type: map
@@ -25,7 +24,6 @@ input:
description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end
data, respectively.
-
output:
- meta:
type: map
@@ -55,6 +53,7 @@ output:
description: |
Verbose level 2 STDOUT information in a log file
pattern: "*.log"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/qualimap/bamqc/environment.yml b/modules/nf-core/qualimap/bamqc/environment.yml
new file mode 100644
index 000000000..3f30d0cd3
--- /dev/null
+++ b/modules/nf-core/qualimap/bamqc/environment.yml
@@ -0,0 +1,7 @@
+name: qualimap_bamqc
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::qualimap=2.3
diff --git a/modules/nf-core/qualimap/bamqc/main.nf b/modules/nf-core/qualimap/bamqc/main.nf
index fef7307a0..8140e143e 100644
--- a/modules/nf-core/qualimap/bamqc/main.nf
+++ b/modules/nf-core/qualimap/bamqc/main.nf
@@ -2,10 +2,10 @@ process QUALIMAP_BAMQC {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::qualimap=2.2.2d"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/qualimap:2.2.2d--1' :
- 'biocontainers/qualimap:2.2.2d--1' }"
+ 'https://depot.galaxyproject.org/singularity/qualimap:2.3--hdfd78af_0' :
+ 'biocontainers/qualimap:2.3--hdfd78af_0' }"
input:
tuple val(meta), path(bam)
diff --git a/modules/nf-core/qualimap/bamqc/meta.yml b/modules/nf-core/qualimap/bamqc/meta.yml
index 303532eb7..7756d4975 100644
--- a/modules/nf-core/qualimap/bamqc/meta.yml
+++ b/modules/nf-core/qualimap/bamqc/meta.yml
@@ -36,7 +36,7 @@ output:
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- results:
- type: dir
+ type: directory
description: Qualimap results dir
pattern: "*/*"
- versions:
@@ -45,3 +45,5 @@ output:
pattern: "versions.yml"
authors:
- "@phue"
+maintainers:
+ - "@phue"
diff --git a/modules/nf-core/samtools/faidx/environment.yml b/modules/nf-core/samtools/faidx/environment.yml
new file mode 100644
index 000000000..4807ba5f7
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_faidx
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/faidx/main.nf b/modules/nf-core/samtools/faidx/main.nf
index 4dd0e5b0b..d34616276 100644
--- a/modules/nf-core/samtools/faidx/main.nf
+++ b/modules/nf-core/samtools/faidx/main.nf
@@ -2,18 +2,20 @@ process SAMTOOLS_FAIDX {
tag "$fasta"
label 'process_single'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(fasta)
+ tuple val(meta2), path(fai)
output:
- tuple val(meta), path ("*.fai"), emit: fai
- tuple val(meta), path ("*.gzi"), emit: gzi, optional: true
- path "versions.yml" , emit: versions
+ tuple val(meta), path ("*.{fa,fasta}") , emit: fa , optional: true
+ tuple val(meta), path ("*.fai") , emit: fai, optional: true
+ tuple val(meta), path ("*.gzi") , emit: gzi, optional: true
+ path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
@@ -23,8 +25,8 @@ process SAMTOOLS_FAIDX {
"""
samtools \\
faidx \\
- $args \\
- $fasta
+ $fasta \\
+ $args
cat <<-END_VERSIONS > versions.yml
"${task.process}":
@@ -33,8 +35,12 @@ process SAMTOOLS_FAIDX {
"""
stub:
+ def match = (task.ext.args =~ /-o(?:utput)?\s(.*)\s?/).findAll()
+ def fastacmd = match[0] ? "touch ${match[0][1]}" : ''
"""
+ ${fastacmd}
touch ${fasta}.fai
+
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml
index fe2fe9a17..e189af28f 100644
--- a/modules/nf-core/samtools/faidx/meta.yml
+++ b/modules/nf-core/samtools/faidx/meta.yml
@@ -3,6 +3,7 @@ description: Index FASTA file
keywords:
- index
- fasta
+ - faidx
tools:
- samtools:
description: |
@@ -17,12 +18,21 @@ input:
- meta:
type: map
description: |
- Groovy Map containing sample information
- e.g. [ id:'test', single_end:false ]
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
- fasta:
type: file
description: FASTA file
pattern: "*.{fa,fasta}"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
+ - fai:
+ type: file
+ description: FASTA index file
+ pattern: "*.{fai}"
output:
- meta:
type: map
@@ -45,3 +55,7 @@ authors:
- "@drpatelh"
- "@ewels"
- "@phue"
+maintainers:
+ - "@drpatelh"
+ - "@ewels"
+ - "@phue"
diff --git a/modules/nf-core/samtools/fastq/environment.yml b/modules/nf-core/samtools/fastq/environment.yml
new file mode 100644
index 000000000..f42b346ac
--- /dev/null
+++ b/modules/nf-core/samtools/fastq/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_fastq
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/fastq/main.nf b/modules/nf-core/samtools/fastq/main.nf
index 15d89769a..7e52c3e40 100644
--- a/modules/nf-core/samtools/fastq/main.nf
+++ b/modules/nf-core/samtools/fastq/main.nf
@@ -2,10 +2,10 @@ process SAMTOOLS_FASTQ {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(input)
@@ -13,7 +13,7 @@ process SAMTOOLS_FASTQ {
output:
tuple val(meta), path("*_{1,2}.fastq.gz") , optional:true, emit: fastq
- tuple val(meta), path("*_interleaved.fastq.gz"), optional:true, emit: interleaved
+ tuple val(meta), path("*_interleaved.fastq") , optional:true, emit: interleaved
tuple val(meta), path("*_singleton.fastq.gz") , optional:true, emit: singleton
tuple val(meta), path("*_other.fastq.gz") , optional:true, emit: other
path "versions.yml" , emit: versions
@@ -24,7 +24,7 @@ process SAMTOOLS_FASTQ {
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
- def output = ( interleave && ! meta.single_end ) ? "> ${prefix}_interleaved.fastq.gz" :
+ def output = ( interleave && ! meta.single_end ) ? "> ${prefix}_interleaved.fastq" :
meta.single_end ? "-1 ${prefix}_1.fastq.gz -s ${prefix}_singleton.fastq.gz" :
"-1 ${prefix}_1.fastq.gz -2 ${prefix}_2.fastq.gz -s ${prefix}_singleton.fastq.gz"
"""
diff --git a/modules/nf-core/samtools/fastq/meta.yml b/modules/nf-core/samtools/fastq/meta.yml
index b1a1ed384..c4002a45d 100644
--- a/modules/nf-core/samtools/fastq/meta.yml
+++ b/modules/nf-core/samtools/fastq/meta.yml
@@ -15,7 +15,6 @@ tools:
documentation: http://www.htslib.org/doc/samtools.html
doi: 10.1093/bioinformatics/btp352
licence: ["MIT"]
-
input:
- meta:
type: map
@@ -29,7 +28,6 @@ input:
- interleave:
type: boolean
description: Set true for interleaved fastq file
-
output:
- meta:
type: map
@@ -56,7 +54,9 @@ output:
type: file
description: Compressed FASTQ file with reads with either both READ1 and READ2 flags set or unset
pattern: "*_other.fastq.gz"
-
authors:
- "@priyanka-surana"
- "@suzannejin"
+maintainers:
+ - "@priyanka-surana"
+ - "@suzannejin"
diff --git a/modules/nf-core/samtools/flagstat/environment.yml b/modules/nf-core/samtools/flagstat/environment.yml
new file mode 100644
index 000000000..dd0b5c196
--- /dev/null
+++ b/modules/nf-core/samtools/flagstat/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_flagstat
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf
index eb7e72fc6..f1893d7cc 100644
--- a/modules/nf-core/samtools/flagstat/main.nf
+++ b/modules/nf-core/samtools/flagstat/main.nf
@@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT {
tag "$meta.id"
label 'process_single'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(bam), path(bai)
@@ -32,4 +32,15 @@ process SAMTOOLS_FLAGSTAT {
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
END_VERSIONS
"""
+
+ stub:
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ """
+ touch ${prefix}.flagstat
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/samtools/flagstat/meta.yml b/modules/nf-core/samtools/flagstat/meta.yml
index 954225dfc..97991358e 100644
--- a/modules/nf-core/samtools/flagstat/meta.yml
+++ b/modules/nf-core/samtools/flagstat/meta.yml
@@ -47,3 +47,5 @@ output:
pattern: "versions.yml"
authors:
- "@drpatelh"
+maintainers:
+ - "@drpatelh"
diff --git a/modules/nf-core/samtools/idxstats/environment.yml b/modules/nf-core/samtools/idxstats/environment.yml
new file mode 100644
index 000000000..de3ed47e8
--- /dev/null
+++ b/modules/nf-core/samtools/idxstats/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_idxstats
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf
index a257d7002..00d916bbf 100644
--- a/modules/nf-core/samtools/idxstats/main.nf
+++ b/modules/nf-core/samtools/idxstats/main.nf
@@ -2,10 +2,10 @@ process SAMTOOLS_IDXSTATS {
tag "$meta.id"
label 'process_single'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(bam), path(bai)
@@ -33,4 +33,16 @@ process SAMTOOLS_IDXSTATS {
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
END_VERSIONS
"""
+
+ stub:
+ def prefix = task.ext.prefix ?: "${meta.id}"
+
+ """
+ touch ${prefix}.idxstats
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/samtools/idxstats/meta.yml b/modules/nf-core/samtools/idxstats/meta.yml
index dda87e1ee..344e92a3f 100644
--- a/modules/nf-core/samtools/idxstats/meta.yml
+++ b/modules/nf-core/samtools/idxstats/meta.yml
@@ -48,3 +48,5 @@ output:
pattern: "versions.yml"
authors:
- "@drpatelh"
+maintainers:
+ - "@drpatelh"
diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml
new file mode 100644
index 000000000..81f093915
--- /dev/null
+++ b/modules/nf-core/samtools/index/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_index
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf
index 0b20aa4bb..8ad18fdc2 100644
--- a/modules/nf-core/samtools/index/main.nf
+++ b/modules/nf-core/samtools/index/main.nf
@@ -2,10 +2,10 @@ process SAMTOOLS_INDEX {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(input)
diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml
index 8bd2fa6fb..01a4ee03e 100644
--- a/modules/nf-core/samtools/index/meta.yml
+++ b/modules/nf-core/samtools/index/meta.yml
@@ -51,3 +51,7 @@ authors:
- "@drpatelh"
- "@ewels"
- "@maxulysse"
+maintainers:
+ - "@drpatelh"
+ - "@ewels"
+ - "@maxulysse"
diff --git a/modules/nf-core/samtools/merge/environment.yml b/modules/nf-core/samtools/merge/environment.yml
new file mode 100644
index 000000000..14f7e9aa3
--- /dev/null
+++ b/modules/nf-core/samtools/merge/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_merge
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/merge/main.nf b/modules/nf-core/samtools/merge/main.nf
index c0a6ecdaa..e104b90a6 100644
--- a/modules/nf-core/samtools/merge/main.nf
+++ b/modules/nf-core/samtools/merge/main.nf
@@ -2,20 +2,21 @@ process SAMTOOLS_MERGE {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(input_files, stageAs: "?/*")
- path fasta
- path fai
+ tuple val(meta2), path(fasta)
+ tuple val(meta3), path(fai)
output:
tuple val(meta), path("${prefix}.bam") , optional:true, emit: bam
tuple val(meta), path("${prefix}.cram"), optional:true, emit: cram
tuple val(meta), path("*.csi") , optional:true, emit: csi
+ tuple val(meta), path("*.crai") , optional:true, emit: crai
path "versions.yml" , emit: versions
@@ -43,10 +44,14 @@ process SAMTOOLS_MERGE {
"""
stub:
+ def args = task.ext.args ?: ''
prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}"
def file_type = input_files instanceof List ? input_files[0].getExtension() : input_files.getExtension()
+ def index_type = file_type == "bam" ? "csi" : "crai"
+ def index = args.contains("--write-index") ? "touch ${prefix}.${index_type}" : ""
"""
touch ${prefix}.${file_type}
+ ${index}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/samtools/merge/meta.yml b/modules/nf-core/samtools/merge/meta.yml
index 644b768b5..2e8f3dbbb 100644
--- a/modules/nf-core/samtools/merge/meta.yml
+++ b/modules/nf-core/samtools/merge/meta.yml
@@ -25,13 +25,23 @@ input:
type: file
description: BAM/CRAM file
pattern: "*.{bam,cram,sam}"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'genome' ]
- fasta:
- type: optional file
- description: Reference file the CRAM was created with
+ type: file
+ description: Reference file the CRAM was created with (optional)
pattern: "*.{fasta,fa}"
+ - meta3:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'genome' ]
- fai:
- type: optional file
- description: Index of the reference file the CRAM was created with
+ type: file
+ description: Index of the reference file the CRAM was created with (optional)
pattern: "*.fai"
output:
- meta:
@@ -55,8 +65,19 @@ output:
type: file
description: BAM index file (optional)
pattern: "*.csi"
+ - crai:
+ type: file
+ description: CRAM index file (optional)
+ pattern: "*.crai"
authors:
- "@drpatelh"
- "@yuukiiwa "
- "@maxulysse"
- "@FriederikeHanssen"
+ - "@ramprasadn"
+maintainers:
+ - "@drpatelh"
+ - "@yuukiiwa "
+ - "@maxulysse"
+ - "@FriederikeHanssen"
+ - "@ramprasadn"
diff --git a/modules/nf-core/samtools/sort/environment.yml b/modules/nf-core/samtools/sort/environment.yml
new file mode 100644
index 000000000..f4064b720
--- /dev/null
+++ b/modules/nf-core/samtools/sort/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_sort
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf
index 1e5181d41..4a666d42e 100644
--- a/modules/nf-core/samtools/sort/main.nf
+++ b/modules/nf-core/samtools/sort/main.nf
@@ -2,10 +2,10 @@ process SAMTOOLS_SORT {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(bam)
@@ -21,13 +21,11 @@ process SAMTOOLS_SORT {
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
- def sort_memory = (task.memory.mega/task.cpus).intValue()
if ("$bam" == "${prefix}.bam") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!"
"""
samtools sort \\
$args \\
-@ $task.cpus \\
- -m ${sort_memory}M \\
-o ${prefix}.bam \\
-T $prefix \\
$bam
diff --git a/modules/nf-core/samtools/sort/meta.yml b/modules/nf-core/samtools/sort/meta.yml
index 073284316..2200de72f 100644
--- a/modules/nf-core/samtools/sort/meta.yml
+++ b/modules/nf-core/samtools/sort/meta.yml
@@ -46,3 +46,6 @@ output:
authors:
- "@drpatelh"
- "@ewels"
+maintainers:
+ - "@drpatelh"
+ - "@ewels"
diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml
new file mode 100644
index 000000000..73ce79993
--- /dev/null
+++ b/modules/nf-core/samtools/view/environment.yml
@@ -0,0 +1,8 @@
+name: samtools_view
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.18
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf
index b87369e52..0b5a29121 100644
--- a/modules/nf-core/samtools/view/main.nf
+++ b/modules/nf-core/samtools/view/main.nf
@@ -2,14 +2,14 @@ process SAMTOOLS_VIEW {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
- 'biocontainers/samtools:1.17--h00cdaf9_0' }"
+ 'https://depot.galaxyproject.org/singularity/samtools:1.18--h50ea8bc_1' :
+ 'biocontainers/samtools:1.18--h50ea8bc_1' }"
input:
tuple val(meta), path(input), path(index)
- path fasta
+ tuple val(meta2), path(fasta)
path qname
output:
@@ -53,10 +53,19 @@ process SAMTOOLS_VIEW {
"""
stub:
+ def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
+ def file_type = args.contains("--output-fmt sam") ? "sam" :
+ args.contains("--output-fmt bam") ? "bam" :
+ args.contains("--output-fmt cram") ? "cram" :
+ input.getExtension()
+ if ("$input" == "${prefix}.${file_type}") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!"
+
+ def index = args.contains("--write-index") ? "touch ${prefix}.csi" : ""
+
"""
- touch ${prefix}.bam
- touch ${prefix}.cram
+ touch ${prefix}.${file_type}
+ ${index}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/samtools/view/meta.yml b/modules/nf-core/samtools/view/meta.yml
index 769160332..3dadafae7 100644
--- a/modules/nf-core/samtools/view/meta.yml
+++ b/modules/nf-core/samtools/view/meta.yml
@@ -26,12 +26,17 @@ input:
description: BAM/CRAM/SAM file
pattern: "*.{bam,cram,sam}"
- index:
- type: optional file
- description: BAM.BAI/BAM.CSI/CRAM.CRAI file
+ type: file
+ description: BAM.BAI/BAM.CSI/CRAM.CRAI file (optional)
pattern: "*.{.bai,.csi,.crai}"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
- fasta:
- type: optional file
- description: Reference file the CRAM was created with
+ type: file
+ description: Reference file the CRAM was created with (optional)
pattern: "*.{fasta,fa}"
- qname:
type: file
@@ -77,3 +82,8 @@ authors:
- "@joseespinosa"
- "@FriederikeHanssen"
- "@priyanka-surana"
+maintainers:
+ - "@drpatelh"
+ - "@joseespinosa"
+ - "@FriederikeHanssen"
+ - "@priyanka-surana"
diff --git a/modules/nf-core/seqkit/split2/environment.yml b/modules/nf-core/seqkit/split2/environment.yml
new file mode 100644
index 000000000..3b10d62f3
--- /dev/null
+++ b/modules/nf-core/seqkit/split2/environment.yml
@@ -0,0 +1,7 @@
+name: seqkit_split2
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::seqkit=2.1.0
diff --git a/modules/nf-core/seqkit/split2/main.nf b/modules/nf-core/seqkit/split2/main.nf
index 0cd092628..ae6dd7186 100644
--- a/modules/nf-core/seqkit/split2/main.nf
+++ b/modules/nf-core/seqkit/split2/main.nf
@@ -2,7 +2,7 @@ process SEQKIT_SPLIT2 {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::seqkit=2.1.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/seqkit:2.1.0--h9ee0642_0' :
'biocontainers/seqkit:2.1.0--h9ee0642_0' }"
diff --git a/modules/nf-core/seqkit/split2/meta.yml b/modules/nf-core/seqkit/split2/meta.yml
index ac386066f..e23b13426 100644
--- a/modules/nf-core/seqkit/split2/meta.yml
+++ b/modules/nf-core/seqkit/split2/meta.yml
@@ -37,3 +37,5 @@ output:
pattern: "versions.yml"
authors:
- "@FriederikeHanssen"
+maintainers:
+ - "@FriederikeHanssen"
diff --git a/nextflow.config b/nextflow.config
index ca4d07611..d1c7a992c 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -155,7 +155,7 @@ params {
contamination_estimation_angsd_range_to = 154900000
contamination_estimation_angsd_mapq = 30
contamination_estimation_angsd_minq = 30
- contamination_estimation_angsd_hapmap = "${baseDir}/assets/angsd_resources/HapMapChrX.gz"
+ contamination_estimation_angsd_hapmap = "${projectDir}/assets/angsd_resources/HapMapChrX.gz"
// MtNucRatio
run_mtnucratio = false
@@ -213,7 +213,7 @@ try {
}
// Load nf-core/eager custom profiles from different institutions.
-// Warning: Uncomment only if a pipeline-specific instititutional config already exists on nf-core/configs!
+// Warning: Uncomment only if a pipeline-specific institutional config already exists on nf-core/configs!
try {
includeConfig "${params.custom_config_base}/pipeline/eager.config"
} catch (Exception e) {
@@ -239,6 +239,7 @@ profiles {
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
+ channels = ['conda-forge', 'bioconda', 'defaults']
apptainer.enabled = false
}
mamba {
@@ -259,10 +260,10 @@ profiles {
shifter.enabled = false
charliecloud.enabled = false
apptainer.enabled = false
- runOptions = '-u $(id -u):$(id -g)'
+ docker.runOptions = '-u $(id -u):$(id -g)'
}
arm {
- docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64'
+ docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64'
}
singularity {
singularity.enabled = true
diff --git a/nextflow_schema.json b/nextflow_schema.json
index 38abbccf9..e5d457165 100644
--- a/nextflow_schema.json
+++ b/nextflow_schema.json
@@ -60,21 +60,18 @@
},
"fasta_fai": {
"type": "string",
- "default": "None",
"description": "Path to samtools FASTA index (typically ending in '.fai'). If not supplied will be made for you.",
"help_text": "If you want to use a pre-existing `samtools faidx` index, use this to specify the required FASTA index file for the selected reference genome. This should be generated by samtools faidx and has a file suffix of `.fai`.",
"fa_icon": "fas fa-address-book"
},
"fasta_dict": {
"type": "string",
- "default": "None",
"description": "Path to picard sequence dictionary file (typically ending in '.dict'). If not supplied will be made for you.",
"help_text": "If you want to use a pre-existing `picard CreateSequenceDictionary` dictionary file, use this to specify the required `.dict` file for the selected reference genome.",
"fa_icon": "fas fa-address-book"
},
"fasta_mapperindexdir": {
"type": "string",
- "default": "None",
"description": "Path to directory containing index files of the FASTA for a given mapper.",
"help_text": "For most people this will likely be the same directory that contains the file you provided to `--fasta`.\n\nIf you want to use pre-existing `bwa index` indices, the directory should contain files ending in '.amb' '.ann' '.bwt'. If you want to use pre-existing `bowtie2 build` indices, the directory should contain files ending in'.1.bt2', '.2.bt2', '.rev.1.bt2'. \n\nIn any case do not include the files themselves in the path. nf-core/eager will automagically detect the index files by searching for the FASTA filename with the corresponding `bwa index`/`bowtie2 build` file suffixes. If not supplied, the indices will be generated for you.\n\n"
},
@@ -95,7 +92,7 @@
"type": "string",
"format": "directory-path",
"description": "Directory / URL base for iGenomes references.",
- "default": "s3://ngi-igenomes/igenomes",
+ "default": "s3://ngi-igenomes/igenomes/",
"fa_icon": "fas fa-cloud-download-alt",
"hidden": true
},
@@ -356,21 +353,18 @@
},
"preprocessing_adapter1": {
"type": "string",
- "default": "None",
"description": "Specify the nucleotide sequence for the forward read/R1.",
"fa_icon": "fas fa-grip-lines",
"help_text": "Specify a nucleotide sequence for the forward read/R1.\n\nIf not modified by the user, the default for the particular preprocessing tool will be used. Therefore, to turn off adapter trimming use `--preprocessing_skipadaptertrim`.\n\n> Modifies AdapterRemoval parameter: `--adapter1`\n> Modifies fastp parameter: `--adapter_sequence`"
},
"preprocessing_adapter2": {
"type": "string",
- "default": "None",
"description": "Specify the nucleotide sequence for the forward read/R2.",
"fa_icon": "fas fa-grip-lines",
"help_text": "Specify a nucleotide sequence for the forward read/R2.\n\nIf not modified by the user, the default for the particular preprocessing tool will be used. To turn off adapter trimming use `--preprocessing_skipadaptertrim`.\n\n> Modifies AdapterRemoval parameter: `--adapter2`\n> Modifies fastp parameter: `--adapter_sequence_r2`"
},
"preprocessing_adapterlist": {
"type": "string",
- "default": "None",
"description": "Specify a list of all possible adapters to trim. Overrides --preprocessing_adapter1/2. Formats: .txt (AdapterRemoval) or .fasta. (fastp).",
"help_text": "Allows to supply a file with a list of adapter (combinations) to remove from all files. \n\nOverrides the `--preprocessing_adapter1`/`--preprocessing_adapter2` parameters . \n\nNote that the two tools have slightly different behaviours.\n\nFor AdapterRemoval this consists of a two column table with a `.txt` extension: first column represents forward strand, second column for reverse strand. You must supply all possibly combinations, one per line, and this list is applied to all files. Only Adapters in this list will be screened for and removed. See AdapterRemoval documentation for more information.\n\nFor fastp this consists of a standard FASTA format with a `.fasta`/`.fa`/`.fna`/`.fas` extension. The adapter sequence in this file should be at least 6bp long, otherwise it will be skipped. fastp first will perform auto-detection of reads and will be removed , and then _additionally_ adapters present in the FASTA file one by one will be removed.\n\n> Modifies AdapterRemoval parameter: `--adapter-list`\n> Modifies fastp parameter: `--adapter_fasta`",
"fa_icon": "fas fa-list"
@@ -478,7 +472,7 @@
},
"mapping_tool": {
"type": "string",
- "default": "bowtie2",
+ "default": "bwaaln",
"enum": ["bwaaln", "bwamem", "bowtie2", "circularmapper"],
"description": "Specify which mapper to use.",
"help_text": "Specify which mapping tool to use. Options are BWA aln ('`bwaaln`'), BWA mem ('`bwamem`'), circularmapper ('`circularmapper`'), or bowtie2 ('`bowtie2`'). BWA aln is the default and highly suited for short-read ancient DNA. BWA mem can be quite useful for modern DNA, but is rarely used in projects for ancient DNA. CircularMapper enhances the mapping procedure to circular references, using the BWA algorithm but utilizing a extend-remap procedure (see Peltzer et al 2016, Genome Biology for details). Bowtie2 is similar to BWA aln, and has recently been suggested to provide slightly better results under certain conditions ([Poullet and Orlando 2020](https://doi.org/10.3389/fevo.2020.00105)), as well as providing extra functionality (such as FASTQ trimming).\n\nMore documentation can be seen for each tool under:\n\n- [BWA aln](http://bio-bwa.sourceforge.net/bwa.shtml#3)\n- [BWA mem](http://bio-bwa.sourceforge.net/bwa.shtml#3)\n- [CircularMapper](https://circularmapper.readthedocs.io/en/latest/contents/userguide.html)\n- [Bowtie2](http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml#command-line)",
@@ -1108,7 +1102,7 @@
},
"contamination_estimation_angsd_hapmap": {
"type": "string",
- "default": "${baseDir}/assets/angsd_resources/HapMapChrX.gz",
+ "default": "${projectDir}/assets/angsd_resources/HapMapChrX.gz",
"description": "Path to HapMap file of chromosome for contamination estimation..",
"help_text": "The haplotype map, or \"HapMap\", records the location of haplotype blocks and their tag SNPs.",
"fa_icon": "fas fa-map"
diff --git a/pyproject.toml b/pyproject.toml
index 0d62beb6f..7d08e1c8e 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/local/bamfiltering.nf b/subworkflows/local/bamfiltering.nf
index ac42b97e1..28979e1c6 100644
--- a/subworkflows/local/bamfiltering.nf
+++ b/subworkflows/local/bamfiltering.nf
@@ -48,7 +48,7 @@ workflow FILTER_BAM {
// Generate BAM file of quality filtered and mapped-only reads,
// optionally retaining unmapped reads, defined in modules.config
- SAMTOOLS_VIEW_BAM_FILTERING ( ch_bam_for_qualityfilter, [], [] ) // fasta isn't needed until we support CRAM
+ SAMTOOLS_VIEW_BAM_FILTERING ( ch_bam_for_qualityfilter, [[], []], [] ) // fasta isn't needed until we support CRAM
ch_versions = ch_versions.mix( SAMTOOLS_VIEW_BAM_FILTERING.out.versions.first() )
SAMTOOLS_FILTER_INDEX ( SAMTOOLS_VIEW_BAM_FILTERING.out.bam )
diff --git a/subworkflows/local/deduplicate.nf b/subworkflows/local/deduplicate.nf
index 8a58becb5..db24a3c07 100644
--- a/subworkflows/local/deduplicate.nf
+++ b/subworkflows/local/deduplicate.nf
@@ -71,8 +71,8 @@ workflow DEDUPLICATE {
.multiMap{
ignore_me, meta, bam, bai, meta2, fasta, fasta_fai ->
bam: [ meta, bam ]
- fasta: fasta
- fasta_fai: fasta_fai
+ fasta: [ meta2, fasta ]
+ fasta_fai: [ meta2, fasta_fai ]
}
// Dedup each bam
@@ -117,8 +117,8 @@ workflow DEDUPLICATE {
// bam here is a list of bams
ignore_me, meta, bam, meta2, fasta, fasta_fai ->
bam: [ meta, bam ]
- fasta: fasta
- fasta_fai: fasta_fai
+ fasta: [ meta2, fasta ]
+ fasta_fai: [ meta2, fasta_fai ]
}
// Merge the bams for each region into one bam
diff --git a/subworkflows/local/map.nf b/subworkflows/local/map.nf
index 734e3ab5d..cd2371c1f 100644
--- a/subworkflows/local/map.nf
+++ b/subworkflows/local/map.nf
@@ -33,32 +33,30 @@ workflow MAP {
meta, reads ->
new_meta = meta.clone()
new_meta.shard_number = reads.getName().replaceAll(/.*(part_\d+).(?:fastq|fq).gz/, '$1')
- [ new_meta, reads ]
+ [ new_meta, reads ]
}
.groupTuple()
-
+
ch_input_for_mapping = sharded_reads
.combine(index)
.multiMap {
meta, reads, meta2, index ->
new_meta = meta.clone()
- new_meta.reference = meta2.id
- reads: [ new_meta, reads ]
+ new_meta.reference = meta2.id
+ reads: [ new_meta, reads ]
index: [ meta2, index ]
}
} else {
-
ch_input_for_mapping = reads
.combine(index)
.multiMap {
meta, reads, meta2, index ->
new_meta = meta.clone()
- new_meta.reference = meta2.id
- reads: [ new_meta, reads ]
+ new_meta.reference = meta2.id
+ reads: [ new_meta, reads ]
index: [ meta2, index ]
}
-
}
if ( params.mapping_tool == 'bwaaln' ) {
@@ -107,7 +105,7 @@ workflow MAP {
BOWTIE2_ALIGN ( ch_input_for_mapping.reads, ch_input_for_mapping.index, false, true )
ch_versions = ch_versions.mix ( BOWTIE2_ALIGN.out.versions.first() )
- ch_mapped_lane_bam = BOWTIE2_ALIGN.out.bam
+ ch_mapped_lane_bam = BOWTIE2_ALIGN.out.aligned
SAMTOOLS_INDEX_BT2 ( ch_mapped_lane_bam )
ch_versions = ch_versions.mix(SAMTOOLS_INDEX_BT2.out.versions.first())
@@ -124,12 +122,11 @@ workflow MAP {
.groupTuple()
.branch {
meta, bam ->
- println(bam.size())
merge: bam.size() > 1
skip: true
}
- SAMTOOLS_MERGE_LANES ( ch_input_for_lane_merge.merge, [], [] )
+ SAMTOOLS_MERGE_LANES ( ch_input_for_lane_merge.merge, [[], []], [[], []] )
ch_versions.mix( SAMTOOLS_MERGE_LANES.out.versions )
// Then mix back merged and single lane libraries for everything downstream
diff --git a/subworkflows/local/metagenomics_complexityfilter.nf b/subworkflows/local/metagenomics_complexityfilter.nf
index 2ec5f01a3..b93cebd81 100644
--- a/subworkflows/local/metagenomics_complexityfilter.nf
+++ b/subworkflows/local/metagenomics_complexityfilter.nf
@@ -26,4 +26,4 @@ workflow METAGENOMICS_COMPLEXITYFILTER {
emit:
fastq = ch_reads_for_metagenomics
versions = ch_versions
-}
\ No newline at end of file
+}
diff --git a/subworkflows/local/reference_indexing_multi.nf b/subworkflows/local/reference_indexing_multi.nf
index c7c79e052..69ba0f490 100644
--- a/subworkflows/local/reference_indexing_multi.nf
+++ b/subworkflows/local/reference_indexing_multi.nf
@@ -119,7 +119,7 @@ ch_input_from_referencesheet = ch_splitreferencesheet_for_branch
remainder: [ meta, fasta, dict, mapper_index, circular_target ] // we drop fai here as we are going to make it
}
- SAMTOOLS_FAIDX ( ch_faidx_input.faidx )
+ SAMTOOLS_FAIDX ( ch_faidx_input.faidx, [ [], [] ] )
ch_version = ch_versions.mix( SAMTOOLS_FAIDX.out.versions )
// Rejoin output channel with main reference indicies channel elements
diff --git a/subworkflows/local/reference_indexing_single.nf b/subworkflows/local/reference_indexing_single.nf
index 161d8e91b..56fa87431 100644
--- a/subworkflows/local/reference_indexing_single.nf
+++ b/subworkflows/local/reference_indexing_single.nf
@@ -36,7 +36,7 @@ workflow REFERENCE_INDEXING_SINGLE {
// Generate FAI if not supplied, and if supplied generate meta ID
if ( !fasta_fai ) {
- ch_fasta_fai = SAMTOOLS_FAIDX ( ch_ungz_ref ).fai.map{[ [id: clean_name - '.fai'], it[1] ] }
+ ch_fasta_fai = SAMTOOLS_FAIDX ( ch_ungz_ref, [ [], [] ] ).fai.map{[ [id: clean_name - '.fai'], it[1] ] }
ch_versions = ch_versions.mix( SAMTOOLS_FAIDX.out.versions.first())
} else {
ch_fasta_fai = Channel.fromPath(fasta_fai).map{[[id: clean_name], it ]}
diff --git a/subworkflows/nf-core/bam_docounts_contamination_angsd/meta.yml b/subworkflows/nf-core/bam_docounts_contamination_angsd/meta.yml
index 360372b3f..07a913060 100644
--- a/subworkflows/nf-core/bam_docounts_contamination_angsd/meta.yml
+++ b/subworkflows/nf-core/bam_docounts_contamination_angsd/meta.yml
@@ -6,7 +6,7 @@ keywords:
- bam
- contamination
- docounts
-modules:
+components:
- angsd/docounts
- angsd/contamination
input:
@@ -40,3 +40,5 @@ output:
pattern: "versions.yml"
authors:
- "@scarlhoff"
+maintainers:
+ - "@scarlhoff"
diff --git a/subworkflows/nf-core/bam_split_by_region/main.nf b/subworkflows/nf-core/bam_split_by_region/main.nf
index ce9393863..0ec700b14 100644
--- a/subworkflows/nf-core/bam_split_by_region/main.nf
+++ b/subworkflows/nf-core/bam_split_by_region/main.nf
@@ -45,7 +45,7 @@ workflow BAM_SPLIT_BY_REGION {
.map{ meta, bam, bai, regions, chrom -> [ meta + [ genomic_region:chrom ], bam, bai ] }
// The specified region is put into ext.args2 from the meta. See nextflow.config of the subworkflow.
- SAMTOOLS_VIEW(ch_bam_for_splitting, [], [])
+ SAMTOOLS_VIEW(ch_bam_for_splitting, [[],[]], [])
ch_versions = ch_versions.mix(SAMTOOLS_VIEW.out.versions.first())
//
diff --git a/subworkflows/nf-core/bam_split_by_region/meta.yml b/subworkflows/nf-core/bam_split_by_region/meta.yml
index dcbdfecc9..d97ea76c4 100644
--- a/subworkflows/nf-core/bam_split_by_region/meta.yml
+++ b/subworkflows/nf-core/bam_split_by_region/meta.yml
@@ -7,7 +7,7 @@ keywords:
- sam
- cram
- index
-modules:
+components:
- samtools/view
- samtools/index
input:
@@ -31,6 +31,7 @@ output:
description: |
Files containing software versions
Structure: [ path(versions.yml) ]
-
authors:
- "@TCLamnidis"
+maintainers:
+ - "@TCLamnidis"
diff --git a/subworkflows/nf-core/fastq_align_bwaaln/meta.yml b/subworkflows/nf-core/fastq_align_bwaaln/meta.yml
index c38effd13..5ba46651d 100644
--- a/subworkflows/nf-core/fastq_align_bwaaln/meta.yml
+++ b/subworkflows/nf-core/fastq_align_bwaaln/meta.yml
@@ -1,5 +1,5 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json
-name: "fastq_align_bwaaln_samtools"
+name: "fastq_align_bwaaln"
description: Align FASTQ files against reference genome with the bwa aln short-read aligner producing a sorted and indexed BAM files
keywords:
- bwa
@@ -8,7 +8,7 @@ keywords:
- bwa
- align
- map
-modules:
+components:
- bwa/aln
- bwa/sampe
- bwa/samse
@@ -26,7 +26,6 @@ input:
Structure: [ val(meta), path(index) ]
A directory containing bwa aln reference indices as from `bwa index`
Contains files ending in extensions such as .amb, .ann, .bwt etc.
-
output:
- bam:
description: |
@@ -49,3 +48,5 @@ output:
Structure: [ path(versions.yml) ]
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/workflows/eager.nf b/workflows/eager.nf
index 89a39b252..79d58d28b 100644
--- a/workflows/eager.nf
+++ b/workflows/eager.nf
@@ -584,6 +584,13 @@ workflow.onComplete {
}
}
+workflow.onError {
+ if (workflow.errorReport.contains("Process requirement exceeds available memory")) {
+ println("🛑 Default resources exceed availability 🛑 ")
+ println("💡 See here on how to configure pipeline: https://nf-co.re/docs/usage/configuration#tuning-workflow-resources 💡")
+ }
+}
+
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
THE END