mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-11-10 20:23:10 +00:00
Merge branch 'master' into maxquant
This commit is contained in:
commit
74a1c1400e
1369 changed files with 28607 additions and 6985 deletions
|
@ -8,5 +8,5 @@ trim_trailing_whitespace = true
|
|||
indent_size = 4
|
||||
indent_style = space
|
||||
|
||||
[*.{yml,yaml}]
|
||||
[*.{md,yml,yaml}]
|
||||
indent_size = 2
|
||||
|
|
5
.github/CONTRIBUTING.md
vendored
5
.github/CONTRIBUTING.md
vendored
|
@ -16,7 +16,9 @@ Contributions to the code are even more welcome ;)
|
|||
If you'd like to write some code for nf-core/modules, the standard workflow is as follows:
|
||||
|
||||
1. Check that there isn't already an issue about your idea in the [nf-core/modules issues](https://github.com/nf-core/modules/issues) to avoid duplicating work
|
||||
* If there isn't one already, please create one so that others know you're working on this
|
||||
|
||||
- If there isn't one already, please create one so that others know you're working on this
|
||||
|
||||
2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/modules repository](https://github.com/nf-core/modules) to your GitHub account
|
||||
3. When adding a module file, follow the [guidelines](https://github.com/nf-core/modules#adding-a-new-module-file)
|
||||
4. Ensure that [tests are working locally](https://github.com/nf-core/modules#running-tests-locally)
|
||||
|
@ -40,7 +42,6 @@ These tests are run both with the latest available version of `Nextflow` and als
|
|||
|
||||
For further information/help, please consult the [nf-core/modules README](https://github.com/nf-core/modules) and don't hesitate to get in touch on the nf-core Slack [#modules](https://nfcore.slack.com/channels/modules) channel ([join our Slack here](https://nf-co.re/join/slack)).
|
||||
|
||||
|
||||
### Images and figures
|
||||
|
||||
For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines).
|
||||
|
|
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
64
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,64 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Report something that is broken or incorrect
|
||||
title: "[BUG]"
|
||||
---
|
||||
|
||||
<!--
|
||||
# nf-core/module bug report
|
||||
|
||||
Hi there!
|
||||
|
||||
Thanks for telling us about a problem with the modules.
|
||||
Please delete this text and anything that's not relevant from the template below:
|
||||
-->
|
||||
|
||||
## Check Documentation
|
||||
|
||||
I have checked the following places for your error:
|
||||
|
||||
- [ ] [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)
|
||||
- [ ] [nf-core/module documentation](https://github.com/nf-core/modules/blob/master/README.md)
|
||||
|
||||
## Description of the bug
|
||||
|
||||
<!-- A clear and concise description of what the bug is. -->
|
||||
|
||||
## Steps to reproduce
|
||||
|
||||
Steps to reproduce the behaviour:
|
||||
|
||||
1. Command line: <!-- [e.g. `nextflow run ...`] -->
|
||||
2. See error: <!-- [Please provide your error message] -->
|
||||
|
||||
## Expected behaviour
|
||||
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
## Log files
|
||||
|
||||
Have you provided the following extra information/files:
|
||||
|
||||
- [ ] The command used to run the module
|
||||
- [ ] The `.nextflow.log` file <!-- this is a hidden file in the directory where you launched the module -->
|
||||
|
||||
## System
|
||||
|
||||
- Hardware: <!-- [e.g. HPC, Desktop, Cloud...] -->
|
||||
- Executor: <!-- [e.g. slurm, local, awsbatch...] -->
|
||||
- OS: <!-- [e.g. CentOS Linux, macOS, Linux Mint...] -->
|
||||
- Version <!-- [e.g. 7, 10.13.6, 18.3...] -->
|
||||
|
||||
## Nextflow Installation
|
||||
|
||||
- Version: <!-- [e.g. 19.10.0] -->
|
||||
|
||||
## Container engine
|
||||
|
||||
- Engine: <!-- [e.g. Conda, Docker, Singularity or Podman] -->
|
||||
- version: <!-- [e.g. 1.0.0] -->
|
||||
- Image tag: <!-- [e.g. nfcore/module:2.6] -->
|
||||
|
||||
## Additional context
|
||||
|
||||
<!-- Add any other context about the problem here. -->
|
52
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
52
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
name: Bug report
|
||||
description: Report something that is broken or incorrect
|
||||
labels: bug
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Have you checked the docs?
|
||||
description: I have checked the following places for my error
|
||||
options:
|
||||
- label: "[nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)"
|
||||
required: true
|
||||
- label: "[nf-core modules documentation](https://nf-co.re/docs/contributing/modules)"
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description of the bug
|
||||
description: A clear and concise description of what the bug is.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: command_used
|
||||
attributes:
|
||||
label: Command used and terminal output
|
||||
description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal.
|
||||
render: console
|
||||
placeholder: |
|
||||
$ nextflow run ...
|
||||
|
||||
Some output where something broke
|
||||
|
||||
- type: textarea
|
||||
id: files
|
||||
attributes:
|
||||
label: Relevant files
|
||||
description: |
|
||||
Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed.
|
||||
Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files.
|
||||
|
||||
- type: textarea
|
||||
id: system
|
||||
attributes:
|
||||
label: System information
|
||||
description: |
|
||||
* Nextflow version _(eg. 21.10.3)_
|
||||
* Hardware _(eg. HPC, Desktop, Cloud)_
|
||||
* Executor _(eg. slurm, local, awsbatch)_
|
||||
* Container engine and version: _(e.g. Docker 1.0.0, Singularity, Conda, Podman, Shifter or Charliecloud)_
|
||||
* OS and version: _(eg. CentOS Linux, macOS, Ubuntu 22.04)_
|
||||
* Image tag: <!-- [e.g. nfcore/cellranger:2.6] -->
|
32
.github/ISSUE_TEMPLATE/feature_request.md
vendored
32
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for nf-core/modules
|
||||
title: "[FEATURE]"
|
||||
---
|
||||
|
||||
<!--
|
||||
# nf-core/modules feature request
|
||||
|
||||
Hi there!
|
||||
|
||||
Thanks for suggesting a new feature for the modules!
|
||||
Please delete this text and anything that's not relevant from the template below:
|
||||
-->
|
||||
|
||||
## Is your feature request related to a problem? Please describe
|
||||
|
||||
<!-- A clear and concise description of what the problem is. -->
|
||||
|
||||
<!-- e.g. [I'm always frustrated when ...] -->
|
||||
|
||||
## Describe the solution you'd like
|
||||
|
||||
<!-- A clear and concise description of what you want to happen. -->
|
||||
|
||||
## Describe alternatives you've considered
|
||||
|
||||
<!-- A clear and concise description of any alternative solutions or features you've considered. -->
|
||||
|
||||
## Additional context
|
||||
|
||||
<!-- Add any other context about the feature request here. -->
|
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
name: Feature request
|
||||
description: Suggest an idea for nf-core/modules
|
||||
labels: feature
|
||||
title: "[FEATURE]"
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Is your feature request related to a problem? Please describe
|
||||
description: A clear and concise description of what the bug is.
|
||||
placeholder: |
|
||||
<!-- e.g. [I'm always frustrated when ...] -->
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Describe the solution you'd like
|
||||
description: A clear and concise description of the solution you want to happen.
|
||||
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Describe alternatives you've considered
|
||||
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
- type: textarea
|
||||
id: additional_context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context about the feature request here.
|
26
.github/ISSUE_TEMPLATE/new_module.md
vendored
26
.github/ISSUE_TEMPLATE/new_module.md
vendored
|
@ -1,26 +0,0 @@
|
|||
---
|
||||
name: New module
|
||||
about: Suggest a new module for nf-core/modules
|
||||
title: "new module: TOOL/SUBTOOL"
|
||||
label: new module
|
||||
---
|
||||
|
||||
<!--
|
||||
# nf-core/modules new module suggestion
|
||||
|
||||
Hi there!
|
||||
|
||||
Thanks for suggesting a new module for the modules!
|
||||
Please delete this text and anything that's not relevant from the template below:
|
||||
|
||||
Replace TOOL with the bioconda name for the tool in the following text, so that the link is functional.
|
||||
|
||||
Replace TOOL/SUBTOOL in the issue title so that it's understandable.
|
||||
-->
|
||||
|
||||
I think it would be good to have a module for [TOOL](https://bioconda.github.io/recipes/TOOL/README.html)
|
||||
|
||||
- [ ] This module does not exist yet with the [`nf-core modules list`](https://github.com/nf-core/tools#list-modules) command
|
||||
- [ ] There is no [open pull request](https://github.com/nf-core/modules/pulls) for this module
|
||||
- [ ] There is no [open issue](https://github.com/nf-core/modules/issues) for this module
|
||||
- [ ] If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module
|
36
.github/ISSUE_TEMPLATE/new_module.yml
vendored
Normal file
36
.github/ISSUE_TEMPLATE/new_module.yml
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
name: New module
|
||||
description: Suggest a new module for nf-core/modules
|
||||
title: "new module: TOOL/SUBTOOL"
|
||||
labels: new module
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing module for this?
|
||||
description: This module does not exist yet with the [`nf-core modules list`](https://github.com/nf-core/tools#list-modules) command
|
||||
options:
|
||||
- label: I have searched for the existing module
|
||||
required: true
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an open PR for this?
|
||||
description: There is no [open pull request](https://github.com/nf-core/modules/pulls) for this module
|
||||
options:
|
||||
- label: I have searched for existing PRs
|
||||
required: true
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an open issue for this?
|
||||
description: There is no [open issue](https://github.com/nf-core/modules/issues) for this module
|
||||
options:
|
||||
- label: I have searched for existing issues
|
||||
required: true
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Are you going to work on this?
|
||||
description: If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module
|
||||
options:
|
||||
- label: If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module
|
||||
required: false
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -27,6 +27,6 @@ Closes #XXX <!-- If this PR fixes an issue, please link it here! -->
|
|||
- [ ] Add a resource `label`
|
||||
- [ ] Use BioConda and BioContainers if possible to fulfil software requirements.
|
||||
- Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky:
|
||||
- [ ] `PROFILE=docker pytest --tag <MODULE> --symlink --keep-workflow-wd`
|
||||
- [ ] `PROFILE=singularity pytest --tag <MODULE> --symlink --keep-workflow-wd`
|
||||
- [ ] `PROFILE=conda pytest --tag <MODULE> --symlink --keep-workflow-wd`
|
||||
- [ ] `PROFILE=docker pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware`
|
||||
- [ ] `PROFILE=singularity pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware`
|
||||
- [ ] `PROFILE=conda pytest --tag <MODULE> --symlink --keep-workflow-wd --git-aware`
|
||||
|
|
58
.github/workflows/code-linting.yml
vendored
58
.github/workflows/code-linting.yml
vendored
|
@ -5,51 +5,31 @@ on:
|
|||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
|
||||
jobs:
|
||||
Markdown:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "10"
|
||||
|
||||
- name: Install markdownlint
|
||||
run: npm install -g markdownlint-cli
|
||||
|
||||
- name: Run Markdownlint
|
||||
run: markdownlint ${GITHUB_WORKSPACE} -c ${GITHUB_WORKSPACE}/.markdownlint.yml
|
||||
|
||||
EditorConfig:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "10"
|
||||
|
||||
- name: Install editorconfig-checker
|
||||
run: npm install -g editorconfig-checker
|
||||
|
||||
- name: Run ECLint check
|
||||
run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test)
|
||||
|
||||
YAML:
|
||||
Prettier:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install NodeJS
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: "10"
|
||||
uses: actions/setup-node@v2
|
||||
|
||||
- name: Install yaml-lint
|
||||
run: npm install -g yaml-lint
|
||||
- name: Install Prettier
|
||||
run: npm install -g prettier
|
||||
|
||||
- name: Run yaml-lint
|
||||
run: yamllint $(find ${GITHUB_WORKSPACE} -type f -name "*.yaml" -or -name "*.yml")
|
||||
- name: Run Prettier --check
|
||||
run: prettier --check .
|
||||
|
||||
EditorConfig:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v2
|
||||
|
||||
- name: Install editorconfig-checker
|
||||
run: npm install -g editorconfig-checker
|
||||
|
||||
- name: Run ECLint check
|
||||
run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test)
|
||||
|
|
10
.github/workflows/pytest-workflow.yml
vendored
10
.github/workflows/pytest-workflow.yml
vendored
|
@ -86,17 +86,13 @@ jobs:
|
|||
# Test the module
|
||||
- name: Run pytest-workflow
|
||||
# only use one thread for pytest-workflow to avoid race condition on conda cache.
|
||||
run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof
|
||||
run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes
|
||||
|
||||
- name: Output log on failure
|
||||
if: failure()
|
||||
run: |
|
||||
echo "======> log.out <======="
|
||||
cat /home/runner/pytest_workflow_*/*/log.out
|
||||
echo
|
||||
echo
|
||||
echo "======> log.err <======="
|
||||
cat /home/runner/pytest_workflow_*/*/log.err
|
||||
sudo apt install bat > /dev/null
|
||||
batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err}
|
||||
|
||||
- name: Upload logs on failure
|
||||
if: failure()
|
||||
|
|
|
@ -4,7 +4,7 @@ vscode:
|
|||
extensions: # based on nf-core.nf-core-extensionpack
|
||||
- codezombiech.gitignore # Language support for .gitignore files
|
||||
# - cssho.vscode-svgviewer # SVG viewer
|
||||
- davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code
|
||||
- esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code
|
||||
- eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed
|
||||
- EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files
|
||||
- Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
# Markdownlint configuration file
|
||||
default: true
|
||||
line-length: false
|
||||
no-multiple-blanks: 0
|
||||
blanks-around-headers: false
|
||||
blanks-around-lists: false
|
||||
header-increment: false
|
||||
no-duplicate-header:
|
||||
siblings_only: true
|
||||
ul-indent:
|
||||
indent: 4
|
16
.prettierignore
Normal file
16
.prettierignore
Normal file
|
@ -0,0 +1,16 @@
|
|||
includes/Maven_Pro/
|
||||
|
||||
# gitignore
|
||||
.nextflow*
|
||||
work/
|
||||
results/
|
||||
test_output/
|
||||
output/
|
||||
.DS_Store
|
||||
*.code-workspace
|
||||
tests/data/
|
||||
.screenrc
|
||||
.*.sw?
|
||||
__pycache__
|
||||
*.pyo
|
||||
*.pyc
|
1
.prettierrc.yml
Normal file
1
.prettierrc.yml
Normal file
|
@ -0,0 +1 @@
|
|||
printWidth: 120
|
|
@ -133,7 +133,7 @@ We have written a helper command in the `nf-core/tools` package that uses the Gi
|
|||
|
||||
## Adding new modules
|
||||
|
||||
If you wish to contribute a new module, please see the documentation on the [nf-core website](https://nf-co.re/developers/adding_modules).
|
||||
If you wish to contribute a new module, please see the documentation on the [nf-core website](https://nf-co.re/developers/modules#writing-a-new-module-reference).
|
||||
|
||||
> Please be kind to our code reviewers and submit one pull request per module :)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ tools:
|
|||
documentation: http://abacas.sourceforge.net/documentation.html
|
||||
tool_dev_url: None
|
||||
doi: "10.1093/bioinformatics/btp347"
|
||||
licence: ['GPL v2-or-later']
|
||||
licence: ["GPL v2-or-later"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
34
modules/abricate/run/main.nf
Normal file
34
modules/abricate/run/main.nf
Normal file
|
@ -0,0 +1,34 @@
|
|||
process ABRICATE_RUN {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::abricate=1.0.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/abricate%3A1.0.1--ha8f3691_1':
|
||||
'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(assembly)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.txt"), emit: report
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
abricate \\
|
||||
$assembly \\
|
||||
$args \\
|
||||
--threads $task.cpus > ${prefix}.txt
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
abricate: \$(echo \$(abricate --version 2>&1) | sed 's/^.*abricate //' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
43
modules/abricate/run/meta.yml
Normal file
43
modules/abricate/run/meta.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
name: abricate_run
|
||||
description: Screen assemblies for antimicrobial resistance against multiple databases
|
||||
keywords:
|
||||
- bacteria
|
||||
- assembly
|
||||
- antimicrobial reistance
|
||||
tools:
|
||||
- abricate:
|
||||
description: Mass screening of contigs for antibiotic resistance genes
|
||||
homepage: https://github.com/tseemann/abricate
|
||||
documentation: https://github.com/tseemann/abricate
|
||||
tool_dev_url: https://github.com/tseemann/abricate
|
||||
doi: ""
|
||||
licence: ["GPL v2", "GPL v2"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- assembly:
|
||||
type: file
|
||||
description: FASTA, GenBank or EMBL formatted file
|
||||
pattern: "*.{fa,fasta,fna,fa.gz,fasta.gz,fna.gz,gbk,gbk.gz,embl,embl.gz}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- report:
|
||||
type: file
|
||||
description: Tab-delimited report of results
|
||||
pattern: "*.{txt}"
|
||||
|
||||
authors:
|
||||
- "@rpetit3"
|
33
modules/abricate/summary/main.nf
Normal file
33
modules/abricate/summary/main.nf
Normal file
|
@ -0,0 +1,33 @@
|
|||
process ABRICATE_SUMMARY {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::abricate=1.0.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/abricate%3A1.0.1--ha8f3691_1':
|
||||
'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(reports)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.txt"), emit: report
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
abricate \\
|
||||
--summary \\
|
||||
$reports > ${prefix}.txt
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
abricate: \$(echo \$(abricate --version 2>&1) | sed 's/^.*abricate //' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
43
modules/abricate/summary/meta.yml
Normal file
43
modules/abricate/summary/meta.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
name: abricate_summary
|
||||
description: Screen assemblies for antimicrobial resistance against multiple databases
|
||||
keywords:
|
||||
- bacteria
|
||||
- assembly
|
||||
- antimicrobial reistance
|
||||
tools:
|
||||
- abricate:
|
||||
description: Mass screening of contigs for antibiotic resistance genes
|
||||
homepage: https://github.com/tseemann/abricate
|
||||
documentation: https://github.com/tseemann/abricate
|
||||
tool_dev_url: https://github.com/tseemann/abricate
|
||||
doi: ""
|
||||
licence: ["GPL v2", "GPL v2"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- assembly:
|
||||
type: file
|
||||
description: FASTA, GenBank or EMBL formatted file
|
||||
pattern: "*.{fa,fasta,fna,fa.gz,fasta.gz,fna.gz,gbk,gbk.gz,embl,embl.gz}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- summary:
|
||||
type: file
|
||||
description: Tab-delimited report of aggregated results
|
||||
pattern: "*.{txt}"
|
||||
|
||||
authors:
|
||||
- "@rpetit3"
|
|
@ -9,10 +9,16 @@ process ADAPTERREMOVAL {
|
|||
|
||||
input:
|
||||
tuple val(meta), path(reads)
|
||||
path(adapterlist)
|
||||
|
||||
output:
|
||||
tuple val(meta), path('*.fastq.gz'), emit: reads
|
||||
tuple val(meta), path('*.log') , emit: log
|
||||
tuple val(meta), path("${prefix}.truncated.fastq.gz") , optional: true, emit: singles_truncated
|
||||
tuple val(meta), path("${prefix}.discarded.fastq.gz") , optional: true, emit: discarded
|
||||
tuple val(meta), path("${prefix}.pair{1,2}.truncated.fastq.gz") , optional: true, emit: paired_truncated
|
||||
tuple val(meta), path("${prefix}.collapsed.fastq.gz") , optional: true, emit: collapsed
|
||||
tuple val(meta), path("${prefix}.collapsed.truncated.fastq.gz") , optional: true, emit: collapsed_truncated
|
||||
tuple val(meta), path("${prefix}.paired.fastq.gz") , optional: true, emit: paired_interleaved
|
||||
tuple val(meta), path('*.settings') , emit: settings
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
|
@ -20,38 +26,29 @@ process ADAPTERREMOVAL {
|
|||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def list = adapterlist ? "--adapter-list ${adapterlist}" : ""
|
||||
prefix = task.ext.prefix ?: "${meta.id}"
|
||||
|
||||
if (meta.single_end) {
|
||||
"""
|
||||
AdapterRemoval \\
|
||||
--file1 $reads \\
|
||||
$args \\
|
||||
--basename $prefix \\
|
||||
--threads $task.cpus \\
|
||||
--settings ${prefix}.log \\
|
||||
--output1 ${prefix}.trimmed.fastq.gz \\
|
||||
$adapterlist \\
|
||||
--basename ${prefix} \\
|
||||
--threads ${task.cpus} \\
|
||||
--seed 42 \\
|
||||
--gzip \\
|
||||
--gzip
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g")
|
||||
END_VERSIONS
|
||||
"""
|
||||
} else if (!meta.single_end && !meta.collapse) {
|
||||
"""
|
||||
AdapterRemoval \\
|
||||
--file1 ${reads[0]} \\
|
||||
--file2 ${reads[1]} \\
|
||||
$args \\
|
||||
--basename $prefix \\
|
||||
--threads $task.cpus \\
|
||||
--settings ${prefix}.log \\
|
||||
--output1 ${prefix}.pair1.trimmed.fastq.gz \\
|
||||
--output2 ${prefix}.pair2.trimmed.fastq.gz \\
|
||||
--seed 42 \\
|
||||
--gzip \\
|
||||
ensure_fastq() {
|
||||
if [ -f "\${1}" ]; then
|
||||
mv "\${1}" "\${1::-3}.fastq.gz"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ensure_fastq '${prefix}.truncated.gz'
|
||||
ensure_fastq '${prefix}.discarded.gz'
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
|
@ -63,15 +60,28 @@ process ADAPTERREMOVAL {
|
|||
AdapterRemoval \\
|
||||
--file1 ${reads[0]} \\
|
||||
--file2 ${reads[1]} \\
|
||||
--collapse \\
|
||||
$args \\
|
||||
--basename $prefix \\
|
||||
$adapterlist \\
|
||||
--basename ${prefix} \\
|
||||
--threads $task.cpus \\
|
||||
--settings ${prefix}.log \\
|
||||
--seed 42 \\
|
||||
--gzip \\
|
||||
--gzip
|
||||
|
||||
ensure_fastq() {
|
||||
if [ -f "\${1}" ]; then
|
||||
mv "\${1}" "\${1::-3}.fastq.gz"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
ensure_fastq '${prefix}.truncated.gz'
|
||||
ensure_fastq '${prefix}.discarded.gz'
|
||||
ensure_fastq '${prefix}.pair1.truncated.gz'
|
||||
ensure_fastq '${prefix}.pair2.truncated.gz'
|
||||
ensure_fastq '${prefix}.collapsed.gz'
|
||||
ensure_fastq '${prefix}.collapsed.truncated.gz'
|
||||
ensure_fastq '${prefix}.paired.gz'
|
||||
|
||||
cat *.collapsed.gz *.collapsed.truncated.gz > ${prefix}.merged.fastq.gz
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g")
|
||||
|
|
|
@ -10,22 +10,9 @@ tools:
|
|||
description: The AdapterRemoval v2 tool for merging and clipping reads.
|
||||
homepage: https://github.com/MikkelSchubert/adapterremoval
|
||||
documentation: https://adapterremoval.readthedocs.io
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false, collapse:false ]
|
||||
- reads:
|
||||
type: file
|
||||
description: |
|
||||
List of input FastQ files of size 1 and 2 for single-end and paired-end data,
|
||||
respectively.
|
||||
pattern: "*.{fq,fastq,fg.gz,fastq.gz}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
|
@ -34,13 +21,65 @@ output:
|
|||
- reads:
|
||||
type: file
|
||||
description: |
|
||||
List of input adapter trimmed FastQ files of size 1 or 2 for
|
||||
single-end or collapsed data and paired-end data, respectively.
|
||||
pattern: "*.{fastq.gz}"
|
||||
List of input FastQ files of size 1 and 2 for single-end and paired-end data,
|
||||
respectively.
|
||||
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.
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- singles_truncated:
|
||||
type: file
|
||||
description: |
|
||||
Adapter trimmed FastQ files of either single-end reads, or singleton
|
||||
'orphaned' reads from merging of paired-end data (i.e., one of the pair
|
||||
was lost due to filtering thresholds).
|
||||
pattern: "*.truncated.fastq.gz"
|
||||
- discarded:
|
||||
type: file
|
||||
description: |
|
||||
Adapter trimmed FastQ files of reads that did not pass filtering
|
||||
thresholds.
|
||||
pattern: "*.discarded.fastq.gz"
|
||||
- pair1_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"
|
||||
- collapsed:
|
||||
type: file
|
||||
description: |
|
||||
Collapsed FastQ of paired-end reads that successfully merged with their
|
||||
respective R1 pair but were not trimmed.
|
||||
pattern: "*.collapsed.fastq.gz"
|
||||
- collapsed_truncated:
|
||||
type: file
|
||||
description: |
|
||||
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:
|
||||
type: file
|
||||
description: AdapterRemoval log file
|
||||
pattern: "*.log"
|
||||
pattern: "*.settings"
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
|
@ -48,3 +87,4 @@ output:
|
|||
|
||||
authors:
|
||||
- "@maxibor"
|
||||
- "@jfy133"
|
||||
|
|
38
modules/adapterremovalfixprefix/main.nf
Normal file
38
modules/adapterremovalfixprefix/main.nf
Normal file
|
@ -0,0 +1,38 @@
|
|||
def VERSION = '0.05'
|
||||
|
||||
process ADAPTERREMOVALFIXPREFIX {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::adapterremovalfixprefix=0.0.5" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/adapterremovalfixprefix:0.0.5--hdfd78af_2':
|
||||
'quay.io/biocontainers/adapterremovalfixprefix:0.0.5--hdfd78af_2' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(fastq)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.fq.gz"), emit: fixed_fastq
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
if ("$fastq" == "${prefix}.fq.gz") error "Input and output names are the same, set prefix in module configuration to disambiguate!"
|
||||
|
||||
"""
|
||||
AdapterRemovalFixPrefix \\
|
||||
$fastq \\
|
||||
$args \\
|
||||
| gzip > ${prefix}.fq.gz
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
adapterremovalfixprefix: $VERSION
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
43
modules/adapterremovalfixprefix/meta.yml
Normal file
43
modules/adapterremovalfixprefix/meta.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
name: adapterremovalfixprefix
|
||||
description: Fixes prefixes from AdapterRemoval2 output to make sure no clashing read names are in the output. For use with DeDup.
|
||||
keywords:
|
||||
- adapterremoval
|
||||
- fastq
|
||||
- dedup
|
||||
tools:
|
||||
- adapterremovalfixprefix:
|
||||
description: Fixes adapter removal prefixes to make sure no clashing read names are in the output.
|
||||
homepage: https://github.com/apeltzer/AdapterRemovalFixPrefix
|
||||
documentation: None
|
||||
tool_dev_url: https://github.com/apeltzer/AdapterRemovalFixPrefix
|
||||
doi: "10.1186/s13059-016-0918-z"
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- fastq:
|
||||
type: file
|
||||
description: FASTQ file from AdapterRemoval2
|
||||
pattern: "*.{fq.gz,fastq.gz}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- fixed_fastq:
|
||||
type: file
|
||||
description: FASTQ file with fixed read prefixes for DeDup
|
||||
pattern: "*.{fq.gz}"
|
||||
|
||||
authors:
|
||||
- "@jfy133"
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: https://github.com/VishnuRaghuram94/AgrVATE
|
||||
tool_dev_url: https://github.com/VishnuRaghuram94/AgrVATE
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
41
modules/amplify/predict/main.nf
Normal file
41
modules/amplify/predict/main.nf
Normal file
|
@ -0,0 +1,41 @@
|
|||
def VERSION = '1.0.3' // Version information not provided by tool
|
||||
|
||||
process AMPLIFY_PREDICT {
|
||||
tag "$meta.id"
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::amplify=1.0.3" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/amplify:1.0.3--py36hdfd78af_0':
|
||||
'quay.io/biocontainers/amplify:1.0.3--py36hdfd78af_0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(faa)
|
||||
path(model_dir)
|
||||
|
||||
output:
|
||||
tuple val(meta), path('*.tsv'), emit: tsv
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def custom_model_dir = model_dir ? "-md ${model_dir}" : ""
|
||||
"""
|
||||
AMPlify \\
|
||||
$args \\
|
||||
${custom_model_dir} \\
|
||||
-s '${faa}'
|
||||
|
||||
#rename output, because tool includes date and time in name
|
||||
mv *.tsv ${prefix}.tsv
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
AMPlify: $VERSION
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
47
modules/amplify/predict/meta.yml
Normal file
47
modules/amplify/predict/meta.yml
Normal file
|
@ -0,0 +1,47 @@
|
|||
name: "amplify_predict"
|
||||
description: AMPlify is an attentive deep learning model for antimicrobial peptide prediction.
|
||||
keywords:
|
||||
- antimicrobial peptides
|
||||
- AMPs
|
||||
- prediction
|
||||
- model
|
||||
tools:
|
||||
- "amplify":
|
||||
description: "Attentive deep learning model for antimicrobial peptide prediction"
|
||||
homepage: "https://github.com/bcgsc/AMPlify"
|
||||
documentation: "https://github.com/bcgsc/AMPlify"
|
||||
tool_dev_url: "https://github.com/bcgsc/AMPlify"
|
||||
doi: "https://doi.org/10.1186/s12864-022-08310-4"
|
||||
licence: "['GPL v3']"
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- faa:
|
||||
type: file
|
||||
description: amino acid sequences fasta
|
||||
pattern: "*.{fa,fa.gz,faa,faa.gz,fasta,fasta.gz}"
|
||||
- model_dir:
|
||||
type: directory
|
||||
description: Directory of where models are stored (optional)
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- tsv:
|
||||
type: file
|
||||
description: amino acid sequences with prediction (AMP, non-AMP) and probability scores
|
||||
pattern: "*.{tsv}"
|
||||
|
||||
authors:
|
||||
- "@louperelo"
|
|
@ -24,7 +24,7 @@ tools:
|
|||
documentation: "https://github.com/keyfm/amps"
|
||||
tool_dev_url: "https://github.com/keyfm/amps"
|
||||
doi: "10.1186/s13059-019-1903-0"
|
||||
licence: ['GPL >=3']
|
||||
licence: ["GPL >=3"]
|
||||
|
||||
input:
|
||||
- maltextract_results:
|
||||
|
|
55
modules/amrfinderplus/run/main.nf
Normal file
55
modules/amrfinderplus/run/main.nf
Normal file
|
@ -0,0 +1,55 @@
|
|||
process AMRFINDERPLUS_RUN {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::ncbi-amrfinderplus=3.10.23" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/ncbi-amrfinderplus%3A3.10.23--h17dc2d4_0':
|
||||
'quay.io/biocontainers/ncbi-amrfinderplus:3.10.23--h17dc2d4_0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(fasta)
|
||||
path db
|
||||
|
||||
output:
|
||||
tuple val(meta), path("${prefix}.tsv") , emit: report
|
||||
tuple val(meta), path("${prefix}-mutations.tsv"), emit: mutation_report, optional: true
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def is_compressed = fasta.getName().endsWith(".gz") ? true : false
|
||||
prefix = task.ext.prefix ?: "${meta.id}"
|
||||
organism_param = meta.containsKey("organism") ? "--organism ${meta.organism} --mutation_all ${prefix}-mutations.tsv" : ""
|
||||
fasta_name = fasta.getName().replace(".gz", "")
|
||||
fasta_param = "-n"
|
||||
if (meta.containsKey("is_proteins")) {
|
||||
if (meta.is_proteins) {
|
||||
fasta_param = "-p"
|
||||
}
|
||||
}
|
||||
"""
|
||||
if [ "$is_compressed" == "true" ]; then
|
||||
gzip -c -d $fasta > $fasta_name
|
||||
fi
|
||||
|
||||
mkdir amrfinderdb
|
||||
tar xzvf $db -C amrfinderdb
|
||||
|
||||
amrfinder \\
|
||||
$fasta_param $fasta_name \\
|
||||
$organism_param \\
|
||||
$args \\
|
||||
--database amrfinderdb \\
|
||||
--threads $task.cpus > ${prefix}.tsv
|
||||
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
amrfinderplus: \$(amrfinder --version)
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
51
modules/amrfinderplus/run/meta.yml
Normal file
51
modules/amrfinderplus/run/meta.yml
Normal file
|
@ -0,0 +1,51 @@
|
|||
name: amrfinderplus_run
|
||||
description: Identify antimicrobial resistance in gene or protein sequences
|
||||
keywords:
|
||||
- bacteria
|
||||
- fasta
|
||||
- antibiotic resistance
|
||||
tools:
|
||||
- amrfinderplus:
|
||||
description: AMRFinderPlus finds antimicrobial resistance and other genes in protein or nucleotide sequences.
|
||||
homepage: https://github.com/ncbi/amr/wiki
|
||||
documentation: https://github.com/ncbi/amr/wiki
|
||||
tool_dev_url: https://github.com/ncbi/amr
|
||||
doi: "10.1038/s41598-021-91456-0"
|
||||
licence: ["Public Domain"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- fasta:
|
||||
type: file
|
||||
description: Nucleotide or protein sequences in FASTA format
|
||||
pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}"
|
||||
- db:
|
||||
type: file
|
||||
description: A compressed tarball of the AMRFinderPlus database to query
|
||||
pattern: "*.tar.gz"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- report:
|
||||
type: file
|
||||
description: AMRFinder+ final report
|
||||
pattern: "*.tsv"
|
||||
- mutation_report:
|
||||
type: file
|
||||
description: Report of organism-specific point-mutations
|
||||
pattern: "*-mutations.tsv"
|
||||
|
||||
authors:
|
||||
- "@rpetit3"
|
29
modules/amrfinderplus/update/main.nf
Normal file
29
modules/amrfinderplus/update/main.nf
Normal file
|
@ -0,0 +1,29 @@
|
|||
process AMRFINDERPLUS_UPDATE {
|
||||
tag "update"
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::ncbi-amrfinderplus=3.10.23" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/ncbi-amrfinderplus%3A3.10.23--h17dc2d4_0':
|
||||
'quay.io/biocontainers/ncbi-amrfinderplus:3.10.23--h17dc2d4_0' }"
|
||||
|
||||
output:
|
||||
path "amrfinderdb.tar.gz", emit: db
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
"""
|
||||
mkdir amrfinderdb
|
||||
amrfinder_update -d amrfinderdb
|
||||
tar czvf amrfinderdb.tar.gz -C \$(readlink amrfinderdb/latest) ./
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
amrfinderplus: \$(amrfinder --version)
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
37
modules/amrfinderplus/update/meta.yml
Normal file
37
modules/amrfinderplus/update/meta.yml
Normal file
|
@ -0,0 +1,37 @@
|
|||
name: amrfinderplus_update
|
||||
description: Identify antimicrobial resistance in gene or protein sequences
|
||||
keywords:
|
||||
- bacteria
|
||||
- fasta
|
||||
- antibiotic resistance
|
||||
tools:
|
||||
- amrfinderplus:
|
||||
description: AMRFinderPlus finds antimicrobial resistance and other genes in protein or nucleotide sequences.
|
||||
homepage: https://github.com/ncbi/amr/wiki
|
||||
documentation: https://github.com/ncbi/amr/wiki
|
||||
tool_dev_url: https://github.com/ncbi/amr
|
||||
doi: "10.1038/s41598-021-91456-0"
|
||||
licence: ["Public Domain"]
|
||||
|
||||
input:
|
||||
- input_not_required:
|
||||
type: null
|
||||
description: module does not have an input
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- db:
|
||||
type: file
|
||||
description: The latest AMRFinder+ database in a compressed tarball
|
||||
pattern: "*.tar.gz"
|
||||
|
||||
authors:
|
||||
- "@rpetit3"
|
68
modules/antismash/antismashlite/main.nf
Normal file
68
modules/antismash/antismashlite/main.nf
Normal file
|
@ -0,0 +1,68 @@
|
|||
process ANTISMASH_ANTISMASHLITE {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' :
|
||||
'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }"
|
||||
|
||||
containerOptions {
|
||||
workflow.containerEngine == 'singularity' ?
|
||||
"-B $antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" :
|
||||
workflow.containerEngine == 'docker' ?
|
||||
"-v \$PWD/$antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" :
|
||||
''
|
||||
}
|
||||
|
||||
input:
|
||||
tuple val(meta), path(sequence_input)
|
||||
path(databases)
|
||||
path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml).
|
||||
path(gff)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file
|
||||
tuple val(meta), path("${prefix}/{css,images,js}") , emit: html_accessory_files
|
||||
tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html
|
||||
tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt
|
||||
tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast
|
||||
tuple val(meta), path("${prefix}/svg/knownclusterblast*.svg") , optional: true, emit: svg_files_knownclusterblast
|
||||
tuple val(meta), path("${prefix}/*.gbk") , emit: gbk_input
|
||||
tuple val(meta), path("${prefix}/*.json") , emit: json_results
|
||||
tuple val(meta), path("${prefix}/*.log") , emit: log
|
||||
tuple val(meta), path("${prefix}/*.zip") , emit: zip
|
||||
tuple val(meta), path("${prefix}/*region*.gbk") , emit: gbk_results
|
||||
tuple val(meta), path("${prefix}/clusterblastoutput.txt") , optional: true, emit: clusterblastoutput
|
||||
tuple val(meta), path("${prefix}/index.html") , emit: html
|
||||
tuple val(meta), path("${prefix}/knownclusterblastoutput.txt") , optional: true, emit: knownclusterblastoutput
|
||||
tuple val(meta), path("${prefix}/regions.js") , emit: json_sideloading
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}"
|
||||
gff_flag = "--genefinding-gff3 ${gff}"
|
||||
|
||||
"""
|
||||
## We specifically do not include annotations (--genefinding-tool none) as
|
||||
## this should be run as a separate module for versioning purposes
|
||||
antismash \\
|
||||
$args \\
|
||||
$gff_flag \\
|
||||
-c $task.cpus \\
|
||||
--output-dir $prefix \\
|
||||
--genefinding-tool none \\
|
||||
--logfile $prefix/${prefix}.log \\
|
||||
--databases $databases \\
|
||||
$sequence_input
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
antismash-lite: \$(antismash --version | sed 's/antiSMASH //')
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
128
modules/antismash/antismashlite/meta.yml
Normal file
128
modules/antismash/antismashlite/meta.yml
Normal file
|
@ -0,0 +1,128 @@
|
|||
name: antismash_antismashlite
|
||||
description: |
|
||||
antiSMASH allows the rapid genome-wide identification, annotation
|
||||
and analysis of secondary metabolite biosynthesis gene clusters.
|
||||
keywords:
|
||||
- secondary metabolites
|
||||
- BGC
|
||||
- biosynthetic gene cluster
|
||||
- genome mining
|
||||
- NRPS
|
||||
- RiPP
|
||||
- antibiotics
|
||||
- prokaryotes
|
||||
- bacteria
|
||||
- eukaryotes
|
||||
- fungi
|
||||
- antismash
|
||||
|
||||
tools:
|
||||
- antismashlite:
|
||||
description: "antiSMASH - the antibiotics and Secondary Metabolite Analysis SHell"
|
||||
homepage: "https://docs.antismash.secondarymetabolites.org"
|
||||
documentation: "https://docs.antismash.secondarymetabolites.org"
|
||||
tool_dev_url: "https://github.com/antismash/antismash"
|
||||
doi: "10.1093/nar/gkab335"
|
||||
licence: "['AGPL v3']"
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- sequence_input:
|
||||
type: file
|
||||
description: nucleotide sequence file (annotated)
|
||||
pattern: "*.{gbk, gb, gbff, genbank, embl, fasta, fna}"
|
||||
- databases:
|
||||
type: directory
|
||||
description: downloaded AntiSMASH databases e.g. data/databases
|
||||
pattern: "*/"
|
||||
- antismash_dir:
|
||||
type: directory
|
||||
description: |
|
||||
A local copy of an AntiSMASH installation folder. This is required when running with
|
||||
docker and singularity (not required for conda), due to attempted 'modifications' of
|
||||
files during database checks in the installation directory, something that cannot
|
||||
be done in immutable docker/singularity containers. Therefore, a local installation
|
||||
directory needs to be mounted (including all modified files from the downloading step)
|
||||
to the container as a workaround.
|
||||
pattern: "*/"
|
||||
- gff:
|
||||
type: file
|
||||
pattern: "*.gff"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- clusterblast_file:
|
||||
type: file
|
||||
description: Output of ClusterBlast algorithm
|
||||
pattern: "clusterblast/*_c*.txt"
|
||||
- html_accessory_files:
|
||||
type: directory
|
||||
description: Accessory files for the HTML output
|
||||
pattern: "{css/,images/,js/}"
|
||||
- knownclusterblast_html:
|
||||
type: file
|
||||
description: Tables with MIBiG hits in HTML format
|
||||
pattern: "knownclusterblast/region*/ctg*.html"
|
||||
- knownclusterblast_txt:
|
||||
type: file
|
||||
description: Tables with MIBiG hits
|
||||
pattern: "knownclusterblast/*_c*.txt"
|
||||
- svg_files_clusterblast:
|
||||
type: file
|
||||
description: SVG images showing the % identity of the aligned hits against their queries
|
||||
pattern: "svg/clusterblast*.svg"
|
||||
- svg_files_knownclusterblast:
|
||||
type: file
|
||||
description: SVG images showing the % identity of the aligned hits against their queries
|
||||
pattern: "svg/knownclusterblast*.svg"
|
||||
- gbk_input:
|
||||
type: file
|
||||
description: Nucleotide sequence and annotations in GenBank format; converted from input file
|
||||
pattern: "*.gbk"
|
||||
- json_results:
|
||||
type: file
|
||||
description: Nucleotide sequence and annotations in JSON format; converted from GenBank file (gbk_input)
|
||||
pattern: "*.json"
|
||||
- log:
|
||||
type: file
|
||||
description: Contains all the logging output that antiSMASH produced during its run
|
||||
pattern: "*.log"
|
||||
- zip:
|
||||
type: file
|
||||
description: Contains a compressed version of the output folder in zip format
|
||||
pattern: "*.zip"
|
||||
- gbk_results:
|
||||
type: file
|
||||
description: Nucleotide sequence and annotations in GenBank format; one file per antiSMASH hit
|
||||
pattern: "*region*.gbk"
|
||||
- clusterblastoutput:
|
||||
type: file
|
||||
description: Raw BLAST output of known clusters previously predicted by antiSMASH using the built-in ClusterBlast algorithm
|
||||
pattern: "clusterblastoutput.txt"
|
||||
- html:
|
||||
type: file
|
||||
description: Graphical web view of results in HTML format
|
||||
patterN: "index.html"
|
||||
- knownclusterblastoutput:
|
||||
type: file
|
||||
description: Raw BLAST output of known clusters of the MIBiG database
|
||||
pattern: "knownclusterblastoutput.txt"
|
||||
- json_sideloading:
|
||||
type: file
|
||||
description: Sideloaded annotations of protoclusters and/or subregions (see antiSMASH documentation "Annotation sideloading")
|
||||
pattern: "regions.js"
|
||||
|
||||
authors:
|
||||
- "@jasmezz"
|
56
modules/antismash/antismashlitedownloaddatabases/main.nf
Normal file
56
modules/antismash/antismashlitedownloaddatabases/main.nf
Normal file
|
@ -0,0 +1,56 @@
|
|||
process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES {
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' :
|
||||
'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }"
|
||||
|
||||
/*
|
||||
These files are normally downloaded/created by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH.
|
||||
Reason: Upon execution, the tool checks if certain database files are present within the container and if not, it tries to create them in /usr/local/bin, for which only root user has write permissions. Mounting those database files with this module prevents the tool from trying to create them.
|
||||
These files are also emitted as output channels in this module to enable the antismash-lite module to use them as mount volumes to the docker/singularity containers.
|
||||
*/
|
||||
|
||||
containerOptions {
|
||||
workflow.containerEngine == 'singularity' ?
|
||||
"-B $database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css,$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection,$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" :
|
||||
workflow.containerEngine == 'docker' ?
|
||||
"-v \$PWD/$database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css -v \$PWD/$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection -v \$PWD/$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" :
|
||||
''
|
||||
}
|
||||
|
||||
input:
|
||||
path database_css
|
||||
path database_detection
|
||||
path database_modules
|
||||
|
||||
output:
|
||||
path("antismash_db") , emit: database
|
||||
path("antismash_dir"), emit: antismash_dir
|
||||
path "versions.yml", emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
conda = params.enable_conda
|
||||
"""
|
||||
download-antismash-databases \\
|
||||
--database-dir antismash_db \\
|
||||
$args
|
||||
|
||||
if [[ $conda = false ]]; \
|
||||
then \
|
||||
cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir; \
|
||||
else \
|
||||
cp -r \$(python -c 'import antismash;print(antismash.__file__.split("/__")[0])') antismash_dir; \
|
||||
fi
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
antismash-lite: \$(antismash --version | sed 's/antiSMASH //')
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
60
modules/antismash/antismashlitedownloaddatabases/meta.yml
Normal file
60
modules/antismash/antismashlitedownloaddatabases/meta.yml
Normal file
|
@ -0,0 +1,60 @@
|
|||
name: antismash_antismashlitedownloaddatabases
|
||||
description: antiSMASH allows the rapid genome-wide identification, annotation and analysis of secondary metabolite biosynthesis gene clusters. This module downloads the antiSMASH databases.
|
||||
keywords:
|
||||
- secondary metabolites
|
||||
- BGC
|
||||
- biosynthetic gene cluster
|
||||
- genome mining
|
||||
- NRPS
|
||||
- RiPP
|
||||
- antibiotics
|
||||
- prokaryotes
|
||||
- bacteria
|
||||
- eukaryotes
|
||||
- fungi
|
||||
- antismash
|
||||
- database
|
||||
tools:
|
||||
- antismash:
|
||||
description: antiSMASH - the antibiotics and Secondary Metabolite Analysis SHell
|
||||
homepage: https://docs.antismash.secondarymetabolites.org
|
||||
documentation: https://docs.antismash.secondarymetabolites.org
|
||||
tool_dev_url: https://github.com/antismash/antismash
|
||||
doi: "10.1093/nar/gkab335"
|
||||
licence: ["AGPL v3"]
|
||||
|
||||
input:
|
||||
- database_css:
|
||||
type: directory
|
||||
description: |
|
||||
antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines.
|
||||
pattern: "css"
|
||||
- database_detection:
|
||||
type: directory
|
||||
description: |
|
||||
antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines.
|
||||
pattern: "detection"
|
||||
- database_modules:
|
||||
type: directory
|
||||
description: |
|
||||
antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines.
|
||||
pattern: "modules"
|
||||
|
||||
output:
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
|
||||
- database:
|
||||
type: directory
|
||||
description: Download directory for antiSMASH databases
|
||||
pattern: "antismash_db"
|
||||
- antismash_dir:
|
||||
type: directory
|
||||
description: |
|
||||
antismash installation folder which is being modified during the antiSMASH database downloading step. The modified files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database and installation folder in pipelines.
|
||||
pattern: "antismash_dir"
|
||||
|
||||
authors:
|
||||
- "@jasmezz"
|
|
@ -2,15 +2,20 @@ process ARRIBA {
|
|||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::arriba=2.1.0" : null)
|
||||
conda (params.enable_conda ? "bioconda::arriba=2.2.1" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/arriba:2.1.0--h3198e80_1' :
|
||||
'quay.io/biocontainers/arriba:2.1.0--h3198e80_1' }"
|
||||
'https://depot.galaxyproject.org/singularity/arriba:2.2.1--hecb563c_2' :
|
||||
'quay.io/biocontainers/arriba:2.2.1--hecb563c_2' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bam)
|
||||
path fasta
|
||||
path gtf
|
||||
path blacklist
|
||||
path known_fusions
|
||||
path structural_variants
|
||||
path tags
|
||||
path protein_domains
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.fusions.tsv") , emit: fusions
|
||||
|
@ -23,7 +28,12 @@ process ARRIBA {
|
|||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def blacklist = (args.contains('-b')) ? '' : '-f blacklist'
|
||||
def blacklist = blacklist ? "-b $blacklist" : "-f blacklist"
|
||||
def known_fusions = known_fusions ? "-k $known_fusions" : ""
|
||||
def structural_variants = structural_variants ? "-d $structual_variants" : ""
|
||||
def tags = tags ? "-t $tags" : ""
|
||||
def protein_domains = protein_domains ? "-p $protein_domains" : ""
|
||||
|
||||
"""
|
||||
arriba \\
|
||||
-x $bam \\
|
||||
|
@ -32,6 +42,10 @@ process ARRIBA {
|
|||
-o ${prefix}.fusions.tsv \\
|
||||
-O ${prefix}.fusions.discarded.tsv \\
|
||||
$blacklist \\
|
||||
$known_fusions \\
|
||||
$structural_variants \\
|
||||
$tags \\
|
||||
$protein_domains \\
|
||||
$args
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
|
@ -39,4 +53,14 @@ process ARRIBA {
|
|||
arriba: \$(arriba -h | grep 'Version:' 2>&1 | sed 's/Version:\s//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
|
||||
stub:
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
echo stub > ${prefix}.fusions.tsv
|
||||
echo stub > ${prefix}.fusions.discarded.tsv
|
||||
|
||||
echo "${task.process}:" > versions.yml
|
||||
echo ' arriba: 2.2.1' >> versions.yml
|
||||
"""
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ tools:
|
|||
documentation: https://arriba.readthedocs.io/en/latest/
|
||||
tool_dev_url: https://github.com/suhrig/arriba
|
||||
doi: "10.1101/gr.257246.119"
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
@ -30,6 +30,26 @@ input:
|
|||
type: file
|
||||
description: Annotation GTF file
|
||||
pattern: "*.{gtf}"
|
||||
- blacklist:
|
||||
type: file
|
||||
description: Blacklist file
|
||||
pattern: "*.{tsv}"
|
||||
- known_fusions:
|
||||
type: file
|
||||
description: Known fusions file
|
||||
pattern: "*.{tsv}"
|
||||
- structural_variants:
|
||||
type: file
|
||||
description: Structural variants file
|
||||
pattern: "*.{tsv}"
|
||||
- tags:
|
||||
type: file
|
||||
description: Tags file
|
||||
pattern: "*.{tsv}"
|
||||
- protein_domains:
|
||||
type: file
|
||||
description: Protein domains file
|
||||
pattern: "*.{gff3}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
|
@ -51,4 +71,4 @@ output:
|
|||
pattern: "*.{fusions.discarded.tsv}"
|
||||
|
||||
authors:
|
||||
- "@praveenraj2018"
|
||||
- "@praveenraj2018,@rannick"
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: https://artic.readthedocs.io/en/latest/
|
||||
tool_dev_url: https://github.com/artic-network/fieldbioinformatics
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -13,7 +13,8 @@ process ARTIC_MINION {
|
|||
path sequencing_summary
|
||||
path ("primer-schemes/${scheme}/V${scheme_version}/${scheme}.reference.fasta")
|
||||
path ("primer-schemes/${scheme}/V${scheme_version}/${scheme}.scheme.bed")
|
||||
path medaka_model
|
||||
path medaka_model_file
|
||||
val medaka_model_string
|
||||
val scheme
|
||||
val scheme_version
|
||||
|
||||
|
@ -44,7 +45,7 @@ process ARTIC_MINION {
|
|||
if (args.tokenize().contains('--medaka')) {
|
||||
fast5 = ""
|
||||
summary = ""
|
||||
model = file(medaka_model).exists() ? "--medaka-model ./$medaka_model" : "--medaka-model $medaka_model"
|
||||
model = medaka_model_file ? "--medaka-model ./$medaka_model_file" : "--medaka-model $medaka_model_string"
|
||||
}
|
||||
def hd5_plugin_path = task.ext.hd5_plugin_path ? "export HDF5_PLUGIN_PATH=" + task.ext.hd5_plugin_path : "export HDF5_PLUGIN_PATH=/usr/local/lib/python3.6/site-packages/ont_fast5_api/vbz_plugin"
|
||||
"""
|
||||
|
|
|
@ -12,7 +12,7 @@ tools:
|
|||
documentation: https://artic.readthedocs.io/en/latest/
|
||||
tool_dev_url: https://github.com/artic-network/fieldbioinformatics
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
@ -42,11 +42,16 @@ input:
|
|||
bed files containing coordinates of each primer in the scheme,
|
||||
relative to the reference genome
|
||||
pattern: "*.{scheme.bed}"
|
||||
- medaka_model:
|
||||
- medaka_model_file:
|
||||
type: file
|
||||
description: |
|
||||
Medaka model to use (if option --medaka is set)
|
||||
pattern: "*.*"
|
||||
Medaka model file to use (if option --medaka is set)
|
||||
pattern: "*.hdf5"
|
||||
- medaka_model_string:
|
||||
type: value
|
||||
description: |
|
||||
Medaka model string to use (if option --medaka is set)
|
||||
pattern: "*"
|
||||
- scheme:
|
||||
type: value
|
||||
description: Name of the primer scheme
|
||||
|
|
155
modules/ascat/main.nf
Normal file
155
modules/ascat/main.nf
Normal file
|
@ -0,0 +1,155 @@
|
|||
process ASCAT {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::ascat=3.0.0 bioconda::cancerit-allelecount-4.3.0": null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:dfe5aaa885de434adb2b490b68972c5840c6d761-0':
|
||||
'quay.io/biocontainers/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:dfe5aaa885de434adb2b490b68972c5840c6d761-0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(input_normal), path(index_normal), path(input_tumor), path(index_tumor)
|
||||
path(allele_files)
|
||||
path(loci_files)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*png"), emit: png
|
||||
tuple val(meta), path("*cnvs.txt"), emit: cnvs
|
||||
tuple val(meta), path("*purityploidy.txt"), emit: purityploidy
|
||||
tuple val(meta), path("*segments.txt"), emit: segments
|
||||
path "versions.yml", emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def gender = args.gender ? "$args.gender" : "NULL"
|
||||
def genomeVersion = args.genomeVersion ? "$args.genomeVersion" : "NULL"
|
||||
def purity = args.purity ? "$args.purity" : "NULL"
|
||||
def ploidy = args.ploidy ? "$args.ploidy" : "NULL"
|
||||
def gc_files = args.gc_files ? "$args.gc_files" : "NULL"
|
||||
|
||||
def minCounts_arg = args.minCounts ? ",minCounts = $args.minCounts" : ""
|
||||
def chrom_names_arg = args.chrom_names ? ",chrom_names = $args.chrom_names" : ""
|
||||
def min_base_qual_arg = args.min_base_qual ? ",min_base_qual = $args.min_base_qual" : ""
|
||||
def min_map_qual_arg = args.min_map_qual ? ",min_map_qual = $args.min_map_qual" : ""
|
||||
def ref_fasta_arg = args.ref_fasta ? ",ref.fasta = '$args.ref_fasta'" : ""
|
||||
def skip_allele_counting_tumour_arg = args.skip_allele_counting_tumour ? ",skip_allele_counting_tumour = $args.skip_allele_counting_tumour" : ""
|
||||
def skip_allele_counting_normal_arg = args.skip_allele_counting_normal ? ",skip_allele_counting_normal = $args.skip_allele_counting_normal" : ""
|
||||
|
||||
|
||||
|
||||
"""
|
||||
#!/usr/bin/env Rscript
|
||||
library(RColorBrewer)
|
||||
library(ASCAT)
|
||||
options(bitmapType='cairo')
|
||||
|
||||
|
||||
#prepare from BAM files
|
||||
ascat.prepareHTS(
|
||||
tumourseqfile = "$input_tumor",
|
||||
normalseqfile = "$input_normal",
|
||||
tumourname = "Tumour",
|
||||
normalname = "Normal",
|
||||
allelecounter_exe = "alleleCounter",
|
||||
alleles.prefix = "$allele_files",
|
||||
loci.prefix = "$loci_files",
|
||||
gender = "$gender",
|
||||
genomeVersion = "$genomeVersion",
|
||||
nthreads = $task.cpus
|
||||
$minCounts_arg
|
||||
$chrom_names_arg
|
||||
$min_base_qual_arg
|
||||
$min_map_qual_arg
|
||||
$ref_fasta_arg
|
||||
$skip_allele_counting_tumour_arg
|
||||
$skip_allele_counting_normal_arg
|
||||
)
|
||||
|
||||
|
||||
#Load the data
|
||||
ascat.bc = ascat.loadData(
|
||||
Tumor_LogR_file = "Tumour_tumourLogR.txt",
|
||||
Tumor_BAF_file = "Tumour_normalBAF.txt",
|
||||
Germline_LogR_file = "Tumour_normalLogR.txt",
|
||||
Germline_BAF_file = "Tumour_normalBAF.txt",
|
||||
genomeVersion = "$genomeVersion",
|
||||
gender = "$gender"
|
||||
)
|
||||
|
||||
#optional GC wave correction
|
||||
if(!is.null($gc_files)){
|
||||
ascat.bc = ascat.GCcorrect(ascat.bc, $gc_files)
|
||||
}
|
||||
|
||||
#Plot the raw data
|
||||
ascat.plotRawData(ascat.bc)
|
||||
|
||||
#Segment the data
|
||||
ascat.bc = ascat.aspcf(ascat.bc)
|
||||
|
||||
#Plot the segmented data
|
||||
ascat.plotSegmentedData(ascat.bc)
|
||||
|
||||
#Run ASCAT to fit every tumor to a model, inferring ploidy, normal cell contamination, and discrete copy numbers
|
||||
#If psi and rho are manually set:
|
||||
if (!is.null($purity) && !is.null($ploidy)){
|
||||
ascat.output <- ascat.runAscat(ascat.bc, gamma=1, rho_manual=$purity, psi_manual=$ploidy)
|
||||
} else if(!is.null($purity) && is.null($ploidy)){
|
||||
ascat.output <- ascat.runAscat(ascat.bc, gamma=1, rho_manual=$purity)
|
||||
} else if(!is.null($ploidy) && is.null($purity)){
|
||||
ascat.output <- ascat.runAscat(ascat.bc, gamma=1, psi_manual=$ploidy)
|
||||
} else {
|
||||
ascat.output <- ascat.runAscat(ascat.bc, gamma=1)
|
||||
}
|
||||
|
||||
#Write out segmented regions (including regions with one copy of each allele)
|
||||
write.table(ascat.output[["segments"]], file=paste0("$prefix", ".segments.txt"), sep="\t", quote=F, row.names=F)
|
||||
|
||||
#Write out CNVs in bed format
|
||||
cnvs=ascat.output[["segments"]][2:6]
|
||||
write.table(cnvs, file=paste0("$prefix",".cnvs.txt"), sep="\t", quote=F, row.names=F, col.names=T)
|
||||
|
||||
#Write out purity and ploidy info
|
||||
summary <- tryCatch({
|
||||
matrix(c(ascat.output[["aberrantcellfraction"]], ascat.output[["ploidy"]]), ncol=2, byrow=TRUE)}, error = function(err) {
|
||||
# error handler picks up where error was generated
|
||||
print(paste("Could not find optimal solution: ",err))
|
||||
return(matrix(c(0,0),nrow=1,ncol=2,byrow = TRUE))
|
||||
}
|
||||
)
|
||||
colnames(summary) <- c("AberrantCellFraction","Ploidy")
|
||||
write.table(summary, file=paste0("$prefix",".purityploidy.txt"), sep="\t", quote=F, row.names=F, col.names=T)
|
||||
|
||||
#version export. Have to hardcode process name and software name because
|
||||
#won't run inside an R-block
|
||||
version_file_path="versions.yml"
|
||||
f <- file(version_file_path,"w")
|
||||
writeLines("ASCAT:", f)
|
||||
writeLines(" ascat: 3.0.0",f)
|
||||
close(f)
|
||||
"""
|
||||
|
||||
|
||||
stub:
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
echo stub > ${prefix}.cnvs.txt
|
||||
echo stub > ${prefix}.purityploidy.txt
|
||||
echo stub > ${prefix}.segments.txt
|
||||
echo stub > Tumour.ASCATprofile.png
|
||||
echo stub > Tumour.ASPCF.png
|
||||
echo stub > Tumour.germline.png
|
||||
echo stub > Tumour.rawprofile.png
|
||||
echo stub > Tumour.sunrise.png
|
||||
echo stub > Tumour.tumour.png
|
||||
|
||||
echo 'ASCAT:' > versions.yml
|
||||
echo ' ascat: 3.0.0' >> versions.yml
|
||||
"""
|
||||
|
||||
|
||||
}
|
92
modules/ascat/meta.yml
Normal file
92
modules/ascat/meta.yml
Normal file
|
@ -0,0 +1,92 @@
|
|||
name: ascat
|
||||
description: copy number profiles of tumour cells.
|
||||
keywords:
|
||||
- sort
|
||||
tools:
|
||||
- ascat:
|
||||
description: ASCAT is a method to derive copy number profiles of tumour cells, accounting for normal cell admixture and tumour aneuploidy. ASCAT infers tumour purity (the fraction of tumour cells) and ploidy (the amount of DNA per tumour cell), expressed as multiples of haploid genomes from SNP array or massively parallel sequencing data, and calculates whole-genome allele-specific copy number profiles (the number of copies of both parental alleles for all SNP loci across the genome).
|
||||
homepage: None
|
||||
documentation: None
|
||||
tool_dev_url: https://github.com/Crick-CancerGenomics/ascat
|
||||
doi: "10.1093/bioinformatics/btaa538"
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- args:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. Parameters must be set between quotes. (optional) parameters can be removed from the map, if they are not set. For default values, please check the documentation above.
|
||||
|
||||
```
|
||||
{
|
||||
[
|
||||
"gender": "XX",
|
||||
"genomeVersion": "hg19"
|
||||
"purity": (optional),
|
||||
"ploidy": (optional),
|
||||
"gc_files": (optional),
|
||||
"minCounts": (optional),
|
||||
"chrom_names": (optional),
|
||||
"min_base_qual": (optional),
|
||||
"min_map_qual": (optional),
|
||||
"ref_fasta": (optional),
|
||||
"skip_allele_counting_tumour": (optional),
|
||||
"skip_allele_counting_normal": (optional)
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- input_normal:
|
||||
type: file
|
||||
description: BAM/CRAM/SAM file
|
||||
pattern: "*.{bam,cram,sam}"
|
||||
- index_normal:
|
||||
type: file
|
||||
description: index for normal_bam
|
||||
pattern: "*.{bai}"
|
||||
- input_tumor:
|
||||
type: file
|
||||
description: BAM/CRAM/SAM file
|
||||
pattern: "*.{bam,cram,sam}"
|
||||
- index_tumor:
|
||||
type: file
|
||||
description: index for tumor_bam
|
||||
pattern: "*.{bai}"
|
||||
- allele_files:
|
||||
type: file
|
||||
description: allele files for ASCAT. Can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS
|
||||
- loci_files:
|
||||
type: file
|
||||
description: loci files for ASCAT. Can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- png:
|
||||
type: file
|
||||
description: ASCAT plots
|
||||
pattern: "*.{png}"
|
||||
- purityploidy:
|
||||
type: file
|
||||
description: purity and ploidy data
|
||||
pattern: "*.purityploidy.txt"
|
||||
- segments:
|
||||
type: file
|
||||
description: segments data
|
||||
pattern: "*.segments.txt"
|
||||
authors:
|
||||
- "@aasNGC"
|
||||
- "@lassefolkersen"
|
||||
- "@FriederikeHanssen"
|
||||
- "@maxulysse"
|
|
@ -10,7 +10,7 @@ tools:
|
|||
documentation: https://github.com/rpetit3/assembly-scan
|
||||
tool_dev_url: https://github.com/rpetit3/assembly-scan
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -9,7 +9,7 @@ tools:
|
|||
documentation: https://github.com/ParkerLab/ataqv/blob/master/README.rst
|
||||
tool_dev_url: https://github.com/ParkerLab/ataqv
|
||||
doi: "https://doi.org/10.1016/j.cels.2020.02.009"
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -2,10 +2,10 @@ process BAKTA {
|
|||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::bakta=1.2.2" : null)
|
||||
conda (params.enable_conda ? "bioconda::bakta=1.4.0" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/bakta:1.2.2--pyhdfd78af_0' :
|
||||
'quay.io/biocontainers/bakta:1.2.2--pyhdfd78af_0' }"
|
||||
'https://depot.galaxyproject.org/singularity/bakta:1.4.0--pyhdfd78af_1' :
|
||||
'quay.io/biocontainers/bakta:1.4.0--pyhdfd78af_1' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(fasta)
|
||||
|
@ -23,6 +23,7 @@ process BAKTA {
|
|||
tuple val(meta), path("${prefix}.hypotheticals.tsv"), emit: hypotheticals_tsv
|
||||
tuple val(meta), path("${prefix}.hypotheticals.faa"), emit: hypotheticals_faa
|
||||
tuple val(meta), path("${prefix}.tsv") , emit: tsv
|
||||
tuple val(meta), path("${prefix}.txt") , emit: txt
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
|
@ -61,6 +62,7 @@ process BAKTA {
|
|||
touch ${prefix}.hypotheticals.tsv
|
||||
touch ${prefix}.hypotheticals.faa
|
||||
touch ${prefix}.tsv
|
||||
touch ${prefix}.txt
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
name: bakta
|
||||
description: Rapid annotation of bacterial genomes & plasmids.
|
||||
description: Annotation of bacterial genomes (isolates, MAGs) and plasmids
|
||||
keywords:
|
||||
- annotation
|
||||
- fasta
|
||||
- prokaryote
|
||||
- bacteria
|
||||
tools:
|
||||
- bakta:
|
||||
description: Rapid & standardized annotation of bacterial genomes & plasmids.
|
||||
description: Rapid & standardized annotation of bacterial genomes, MAGs & plasmids.
|
||||
homepage: https://github.com/oschwengers/bakta
|
||||
documentation: https://github.com/oschwengers/bakta
|
||||
tool_dev_url: https://github.com/oschwengers/bakta
|
||||
doi: "10.1099/mgen.0.000685"
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
@ -29,7 +29,7 @@ input:
|
|||
Path to the Bakta database
|
||||
- proteins:
|
||||
type: file
|
||||
description: FASTA file of trusted proteins to first annotate from (optional)
|
||||
description: FASTA/GenBank file of trusted proteins to first annotate from (optional)
|
||||
- prodigal_tf:
|
||||
type: file
|
||||
description: Training file to use for Prodigal (optional)
|
||||
|
@ -44,6 +44,10 @@ output:
|
|||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- txt:
|
||||
type: file
|
||||
description: genome statistics and annotation summary
|
||||
pattern: "*.txt"
|
||||
- tsv:
|
||||
type: file
|
||||
description: annotations as simple human readble tab separated values
|
||||
|
@ -74,7 +78,7 @@ output:
|
|||
pattern: "*.ffn"
|
||||
- hypotheticals_tsv:
|
||||
type: file
|
||||
description: further information on hypothetical protein CDS as simple human readble tab separated values
|
||||
description: additional information on hypothetical protein CDS as simple human readble tab separated values
|
||||
pattern: "*.hypotheticals.tsv"
|
||||
- hypotheticals_faa:
|
||||
type: file
|
||||
|
@ -83,3 +87,4 @@ output:
|
|||
|
||||
authors:
|
||||
- "@rpetit3"
|
||||
- "@oschwengers"
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
homepage: https://github.com/maxibor/bamAlignCleaner
|
||||
documentation: https://github.com/maxibor/bamAlignCleaner
|
||||
tool_dev_url: https://github.com/maxibor/bamAlignCleaner
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -10,14 +10,15 @@ keywords:
|
|||
|
||||
tools:
|
||||
- bamcmp:
|
||||
description: Bamcmp is a tool for deconvolving host and graft reads, using two bam files. Reads should be mapped to two genomes, and the mapped,
|
||||
description:
|
||||
Bamcmp is a tool for deconvolving host and graft reads, using two bam files. Reads should be mapped to two genomes, and the mapped,
|
||||
sorted bam files supplied to the tool. It is highly recommended to use the "-s as" option not the "-s mapq" option, else
|
||||
reads which multimap to the contamination genome will be spuriously kept.
|
||||
homepage: https://github.com/CRUKMI-ComputationalBiology/bamcmp
|
||||
documentation: https://github.com/CRUKMI-ComputationalBiology/bamcmp
|
||||
tool_dev_url: https://github.com/CRUKMI-ComputationalBiology/bamcmp
|
||||
doi: "10.1158/1541-7786.MCR-16-0431"
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -19,7 +19,7 @@ tools:
|
|||
documentation: https://github.com/pezmaster31/bamtools/wiki
|
||||
tool_dev_url: http://github.com/pezmaster31/bamtools
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -2,10 +2,10 @@ process BAMTOOLS_SPLIT {
|
|||
tag "$meta.id"
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::bamtools=2.5.1" : null)
|
||||
conda (params.enable_conda ? "bioconda::bamtools=2.5.2" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/bamtools:2.5.1--h9a82719_9' :
|
||||
'quay.io/biocontainers/bamtools:2.5.1--h9a82719_9' }"
|
||||
'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hd03093a_0' :
|
||||
'quay.io/biocontainers/bamtools:2.5.2--hd03093a_0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bam)
|
||||
|
@ -20,10 +20,14 @@ process BAMTOOLS_SPLIT {
|
|||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def input_list = bam.collect{"-in $it"}.join(' ')
|
||||
"""
|
||||
bamtools \\
|
||||
merge \\
|
||||
$input_list \\
|
||||
| bamtools \\
|
||||
split \\
|
||||
-in $bam \\
|
||||
-stub $prefix \\
|
||||
$args
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
documentation: https://github.com/pezmaster31/bamtools/wiki
|
||||
tool_dev_url: http://github.com/pezmaster31/bamtools
|
||||
doi: ""
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
@ -23,7 +23,7 @@ input:
|
|||
e.g. [ id:'test', single_end:false ]
|
||||
- bam:
|
||||
type: file
|
||||
description: A BAM file to split
|
||||
description: A list of one or more BAM files to merge and then split
|
||||
pattern: "*.bam"
|
||||
|
||||
output:
|
||||
|
@ -43,3 +43,4 @@ output:
|
|||
|
||||
authors:
|
||||
- "@sguizard"
|
||||
- "@matthdsm"
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
documentation: https://genome.sph.umich.edu/wiki/BamUtil:_trimBam
|
||||
tool_dev_url: https://github.com/statgen/bamUtil
|
||||
doi: "10.1101/gr.176552.114"
|
||||
licence: ['GPL v3']
|
||||
licence: ["GPL v3"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
Bandage - a Bioinformatics Application for Navigating De novo Assembly Graphs Easily
|
||||
homepage: https://github.com/rrwick/Bandage
|
||||
documentation: https://github.com/rrwick/Bandage
|
||||
licence: ['GPL-3.0-or-later']
|
||||
licence: ["GPL-3.0-or-later"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -2,10 +2,10 @@ process BBMAP_ALIGN {
|
|||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.13 pigz=2.6" : null)
|
||||
conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.15.1 pigz=2.6" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' :
|
||||
'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' }"
|
||||
'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' :
|
||||
'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(fastq)
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
|
||||
tool_dev_url: None
|
||||
doi: ""
|
||||
licence: ['UC-LBL license (see package)']
|
||||
licence: ["UC-LBL license (see package)"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
|
||||
tool_dev_url: None
|
||||
doi: ""
|
||||
licence: ['UC-LBL license (see package)']
|
||||
licence: ["UC-LBL license (see package)"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -12,7 +12,7 @@ tools:
|
|||
documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
|
||||
tool_dev_url: None
|
||||
doi: ""
|
||||
licence: ['UC-LBL license (see package)']
|
||||
licence: ["UC-LBL license (see package)"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/
|
||||
tool_dev_url: None
|
||||
doi: ""
|
||||
licence: ['UC-LBL license (see package)']
|
||||
licence: ["UC-LBL license (see package)"]
|
||||
|
||||
input:
|
||||
- fasta:
|
||||
|
|
39
modules/bbmap/pileup/main.nf
Normal file
39
modules/bbmap/pileup/main.nf
Normal file
|
@ -0,0 +1,39 @@
|
|||
process BBMAP_PILEUP {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.15.1 pigz=2.6" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' :
|
||||
'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bam)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.stats.txt"), emit: covstats
|
||||
tuple val(meta), path("*.hist.txt") , emit: hist
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
pileup.sh \\
|
||||
-Xmx${task.memory.toGiga()}g \\
|
||||
in=${bam} \\
|
||||
out=${prefix}.coverage.stats.txt \\
|
||||
hist=${prefix}.coverage.hist.txt \\
|
||||
$args
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bbmap: \$(bbversion.sh)
|
||||
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
|
||||
pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
47
modules/bbmap/pileup/meta.yml
Normal file
47
modules/bbmap/pileup/meta.yml
Normal file
|
@ -0,0 +1,47 @@
|
|||
name: "bbmap_pileup"
|
||||
description: Calculates per-scaffold or per-base coverage information from an unsorted sam or bam file.
|
||||
keywords:
|
||||
- fasta
|
||||
- genome
|
||||
- coverage
|
||||
tools:
|
||||
- bbmap:
|
||||
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/
|
||||
tool_dev_url: "https://github.com/BioInfoTools/BBMap/blob/master/sh/pileup.sh"
|
||||
doi: ""
|
||||
licence: ["UC-LBL license (see package)"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- bam:
|
||||
type: file
|
||||
description: BAM/CRAM/SAM file
|
||||
pattern: "*.{bam,cram,sam}"
|
||||
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- stats:
|
||||
type: file
|
||||
description: Per-scaffold coverage info
|
||||
pattern: "*.stats.txt"
|
||||
- hist:
|
||||
type: file
|
||||
description: "Histogram of # occurrences of each depth level"
|
||||
pattern: "*.hist.txt"
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
|
||||
authors:
|
||||
- "@Emiller88"
|
42
modules/bcftools/annotate/main.nf
Normal file
42
modules/bcftools/annotate/main.nf
Normal file
|
@ -0,0 +1,42 @@
|
|||
process BCFTOOLS_ANNOTATE {
|
||||
tag "$meta.id"
|
||||
label 'process_low'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::bcftools=1.15" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
|
||||
'https://depot.galaxyproject.org/singularity/bcftools:1.15--haf5b3da_0':
|
||||
'quay.io/biocontainers/bcftools:1.15--haf5b3da_0' }"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(input)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*_annotated.vcf.gz"), optional:true , emit: vcf
|
||||
tuple val(meta), path("*_annotated.bcf") , optional:true , emit: bcf
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
|
||||
def matcher = input ==~ /\S+\.*vcf\.\S*/
|
||||
def output_suffix = matcher ? "vcf.gz" : "bcf"
|
||||
def output_type_compressed = matcher ? "z" : "b"
|
||||
"""
|
||||
bcftools \\
|
||||
annotate \\
|
||||
$args \\
|
||||
--output ${prefix}_annotated.${output_suffix} \\
|
||||
--output-type $output_type_compressed \\
|
||||
--threads $task.cpus \\
|
||||
$input
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
45
modules/bcftools/annotate/meta.yml
Normal file
45
modules/bcftools/annotate/meta.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
name: bcftools_annotate
|
||||
description: Add or remove annotations.
|
||||
keywords:
|
||||
- bcftools
|
||||
- annotate
|
||||
- vcf
|
||||
- remove
|
||||
- add
|
||||
tools:
|
||||
- annotate:
|
||||
description: Add or remove annotations.
|
||||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: https://samtools.github.io/bcftools/bcftools.html#annotate
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- input:
|
||||
type: files
|
||||
description: Query VCF or BCF file, can be either uncompressed or compressed
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- vcf:
|
||||
type: file
|
||||
description: Compressed annotated VCF file
|
||||
pattern: "*_annotated.vcf.gz"
|
||||
- bcf:
|
||||
type: file
|
||||
description: Compressed annotated BCF file
|
||||
pattern: "*_annotated.bcf"
|
||||
authors:
|
||||
- "@projectoriented"
|
|
@ -13,7 +13,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
documentation: https://samtools.github.io/bcftools/howtos/index.html
|
||||
tool_dev_url: https://github.com/samtools/bcftools
|
||||
doi: "10.1093/gigascience/giab008"
|
||||
licence: ['MIT', 'GPL-3.0-or-later']
|
||||
licence: ["MIT", "GPL-3.0-or-later"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -34,4 +34,15 @@ process BCFTOOLS_NORM {
|
|||
bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
|
||||
stub:
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
touch ${prefix}.vcf.gz
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -12,7 +12,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://samtools.github.io/bcftools/bcftools.html#reheader
|
||||
doi: 10.1093/gigascience/giab008
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
tool_dev_url: https://github.com/samtools/bcftools
|
||||
doi: "10.1093/bioinformatics/btp352"
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
|
@ -12,7 +12,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -41,4 +41,15 @@ process BCFTOOLS_VIEW {
|
|||
bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
|
||||
stub:
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
touch ${prefix}.vcf.gz
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ tools:
|
|||
homepage: http://samtools.github.io/bcftools/bcftools.html
|
||||
documentation: http://www.htslib.org/doc/bcftools.html
|
||||
doi: 10.1093/bioinformatics/btp352
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
2
modules/bclconvert/.gitignore
vendored
Normal file
2
modules/bclconvert/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
bcl-convert
|
||||
*.rpm
|
15
modules/bclconvert/Dockerfile
Normal file
15
modules/bclconvert/Dockerfile
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Dockerfile to create container with bcl-convert
|
||||
# Push to nfcore/bclconvert:<VER>
|
||||
|
||||
FROM debian:bullseye-slim
|
||||
LABEL authors="Matthias De Smet <matthias.desmet@ugent.be>" \
|
||||
description="Docker image containing bcl-convert"
|
||||
# Disclaimer: this container is not provided nor supported by Illumina
|
||||
# 'ps' command is need by some nextflow executions to collect system stats
|
||||
# Install procps and clean apt cache
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
procps \
|
||||
&& apt-get clean -y && rm -rf /var/lib/apt/lists/*
|
||||
COPY bcl-convert /usr/local/bin/bcl-convert
|
||||
RUN chmod +x /usr/local/bin/bcl-convert
|
30
modules/bclconvert/LICENSE
Normal file
30
modules/bclconvert/LICENSE
Normal file
|
@ -0,0 +1,30 @@
|
|||
ILLUMINA END-USER SOFTWARE LICENSE AGREEMENT
|
||||
|
||||
IMPORTANT-READ CAREFULLY. THIS IS A LICENSE AGREEMENT THAT YOU ARE REQUIRED TO ACCEPT BEFORE, DOWNLOADING, INSTALLING AND USING ANY SOFTWARE MADE AVAILABLE FROM THE ILLUMINA SUPPORT CENTER (https://support.illumina.com).
|
||||
|
||||
CAREFULLY READ ALL THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT BEFORE PROCEEDING WITH DOWNLOADING, INSTALLING, AND/OR USING THE SOFTWARE. YOU ARE NOT PERMITTED TO DOWNLOAD, INSTALL, AND/OR USE THE SOFTWARE UNTIL YOU HAVE AGREED TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. YOU REPRESENT AND WARRANT THAT YOU ARE DULY AUTHORIZED TO ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT ON BEHALF OF YOUR EMPLOYER.
|
||||
|
||||
Software made available through the Illumina Support Center is licensed, not sold, to you. Your license to each software program made available through the Illumina Support Center is subject to your prior acceptance of either this Illumina End-User Software License Agreement (“Agreement”), or a custom end user license agreement (“Custom EULA”), if one is provided with the software. Any software that is subject to this Agreement is referred to herein as the “Software.” By accepting this Agreement, you agree the terms and conditions of this Agreement will apply to and govern any and all of your downloads, installations, and uses of each Illumina software program made available through the Illumina Support Center, except that your download, installation, and use of any software provided with a Custom EULA will be governed by the terms and conditions of the Custom EULA.
|
||||
|
||||
This Agreement is made and entered into by and between Illumina, Inc., a Delaware corporation, having offices at 5200 Illumina Way, San Diego, CA 92122 (“Illumina”) and you as the end-user of the Software (hereinafter, “Licensee” or “you”). All software, firmware, and associated media, printed materials, and online and electronic documentation, including any updates or upgrades thereof, made available through the Illumina Support Center (collectively, “Software”) provided to Licensee are for use solely by Licensee and the provisions herein WILL apply with respect to such Software.
|
||||
|
||||
License Grant. Subject to the terms and conditions of this Agreement, Illumina grants to Licensee, under the following terms and conditions, a personal, non-exclusive, revocable, non-transferable, non-sublicensable license, for its internal end-use purposes only, in the ordinary course of Licensee’s business to use the Software in executable object code form only, solely at the Licensee’s facility to, install and use the Software on a single computer accessible only by Licensee (and not on any public network or server), where the single computer is owned, leased, or otherwise substantially controlled by Licensee, for the purpose of processing and analyzing data generated from an Illumina genetic sequencing instrument owned and operated solely by Licensee (the “Product”). In the case of Software provided by Illumina in non-compiled form, Illumina grants Licensee a personal, non-exclusive, non-sublicenseable, restricted right to compile, install, and use one copy of the Software solely for processing and analyzing data generated from the Product.
|
||||
License Restrictions. Except as expressly permitted in Section 1, Licensee may not make, have made, import, use, copy, reproduce, distribute, display, publish, sell, re-sell, lease, or sub-license the Software, in whole or in part, except as expressly provided for in this Agreement. Licensee may not modify, improve, translate, reverse engineer, decompile, disassemble, or create derivative works of the Software or otherwise attempt to (a) defeat, avoid, by-pass, remove, deactivate, or otherwise circumvent any software protection mechanisms in the Software including, without limitation, any such mechanism used to restrict or control the functionality of the Software, or (b) derive the source code or the underlying ideas, algorithms, structure, or organization form of the Software. Licensee will not allow, at any time, including during and after the term of the license, the Software or any portions or copies thereof in any form to become available to any third parties. Licensee may use the Software solely with genomic data that is generated using the Product; Licensee may not use the Software with any data generated from other products or instruments. Licensee may not use the Software to perform any data analysis services for any third party.
|
||||
Ownership. The Software is protected by United States and international intellectual property laws. All right, title, and interest in and to the Software (including associated intellectual property rights) are and will remain vested in Illumina or Illumina’s affiliated companies or licensors. Licensee acknowledges that no rights, license or interest to any Illumina trademarks are granted hereunder. Licensee acknowledges that unauthorized reproduction or distribution of the Software, or any portion of it, may result in severe civil and criminal penalties. Illumina reserves all rights in and to the Software not expressly granted to Licensee under this Agreement.
|
||||
Upgrades/Updates. Illumina may, at its sole discretion, provide updates or upgrades to the Software. In that case, Licensee WILL have the same rights and obligations under such updates or upgrades as it has for the versions of the Software initially provided to Licensee hereunder. Licensee recognizes that Illumina is not obligated to provide any upgrades or updates to, or support for, the Software.
|
||||
Data Integrity/Loss. Licensee is responsible for the integrity and availability, including preventing the loss of data that Licensee generates, uses, analyzes, manages, or stores in connection with or through its use of the Software, including without limitation, investigating and implementing industry appropriate policies and procedures regarding the provision of access to Licensee’s data, monitoring access and use of Licensee’s data, conducting routine backups and archiving of Licensee’s data, and ensuring the adequacy of anti-virus software. Accordingly, Licensee agrees that Illumina is not responsible for any inability to access, loss or corruption of data as a result of Licensee’s use of the Software, and Illumina has no liability to Licensee in connection with such inability to access, loss or corruption of data.
|
||||
Term of License. This Agreement will be in effect from the time Licensee expressly accepts the terms and conditions of this license, or otherwise installs the Software, thereby accepting the terms and conditions contained herein, and will remain in effect until terminated. This license will otherwise terminate upon the conditions set forth in this Agreement, if revoked by Illumina, or if Licensee fails to comply with any term or condition of this Agreement including failure to pay any applicable license fee. Licensee agrees upon termination of this Agreement for any reason to immediately discontinue use of and un-install the Software and destroy all copies of the Software in its possession and/or under its control, and return or destroy, at Illumina’s option, any compact disks, floppy disks or other media provided by Illumina storing the Software thereon (together with any authorized copies thereof), as well as any documentation associated therewith
|
||||
Limited Warranty. Illumina warrants that, for a period of 6 months from the date of download or installation of the Software by Licensee, the Software will perform in all material respects in accordance with the accompanying documentation available on the Illumina Support Center. EXCEPT AND TO THE EXTENT EXPRESSLY PROVIDED IN THE FOREGOING, AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, THE SOFTWARE IS PROVIDED “AS IS” AND ILLUMINA EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS REGARDING THE SOFTWARE AND RESULTS GENERATED BY THE SOFTWARE, INCLUDING WITHOUT LIMITATION, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALL OTHER EXPRESS OR IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABLE QUALITY, NON-INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE, AND THOSE ARISING BY STATUTE OR OTHERWISE IN LAW OR FROM A COURSE OF DEALING OR USAGE OF TRADE. ILLUMINA DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET LICENSEE"S REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE ERROR FREE OR UNINTERRUPTED.
|
||||
Limitation of Liability.
|
||||
(a) ILLUMINA’S ENTIRE LIABILITY AND LICENSEE"S EXCLUSIVE REMEDY UNDER THE LIMITED WARRANTY PROVISION OF SECTION 7 ABOVE WILL BE, AT ILLUMINA’S OPTION, EITHER (i) RETURN OF THE PRICE PAID FOR THE SOFTWARE, OR (ii) REPAIR OR REPLACEMENT OF THE PORTIONS OF THE SOFTWARE THAT DO NOT COMPLY WITH ILLUMINA’S LIMITED WARRANTY. THIS LIMITED WARRANTY IS VOID AND ILLUMINA WILL HAVE NO LIABILITY AT ALL IF FAILURE OF THE SOFTWARE TO COMPLY WITH ILLUMINA LIMITED WARRANTY HAS RESULTED FROM: (w) FAILURE TO USE THE SOFTWARE IN ACCORDANCE WITH ILLUMINA’S THEN CURRENT USER MANUAL OR THIS AGREEMENT; (x) ACCIDENT, ABUSE, OR MISAPPLICATION; (y) PRODUCTS OR EQUIPMENT NOT SPECIFIED BY ILLUMINA AS BEING COMPATIBLE WITH THE SOFTWARE; OR (z) IF LICENSEE HAS NOT NOTIFIED ILLUMINA IN WRITING OF THE DEFECT WITHIN THE ABOVE WARRANTY PERIOD.
|
||||
|
||||
(b) TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL ILLUMINA BE LIABLE UNDER ANY THEORY OF CONTRACT, TORT, STRICT LIABILITY OR OTHER LEGAL OR EQUITABLE THEORY FOR ANY PERSONAL INJURY OR ANY INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, EVEN IF ILLUMINA HAS BEEN ADVISED OF THE POSSIBILITY THEREOF INCLUDING, WITHOUT LIMITATION, LOST PROFITS, LOST DATA, INTERRUPTION OF BUSINESS, LOST BUSINESS REVENUE, OTHER ECONOMIC LOSS, OR ANY LOSS OF RECORDED DATA ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE. EXCEPT AND TO THE EXTENT EXPRESSLY PROVIDED IN SECTION 7 AND 8(a) ABOVE OR AS OTHERWISE PERMITTED BY LAW, IN NO EVENT WILL ILLUMINA’S TOTAL LIABILITY TO LICENSEE FOR ALL DAMAGES (OTHER THAN AS MAY BE REQUIRED BY APPLICABLE LAW IN CASES INVOLVING PERSONAL INJURY) EXCEED THE AMOUNT OF $500 USD. THE FOREGOING LIMITATIONS WILL APPLY EVEN IF THE ABOVE STATED REMEDY FAILS OF ITS ESSENTIAL PURPOSE.
|
||||
|
||||
Survival. The limitations of liability and ownership rights of Illumina contained herein and Licensee’s obligations following termination of this Agreement WILL survive the termination of this Agreement for any reason.
|
||||
Research Use Only. The Software is labeled with a For Research Use Only or similar labeling statement and the performance characteristics of the Software have not been established and the Software is not for use in diagnostic procedures. Licensee acknowledges and agrees that (i) the Software has not been approved, cleared, or licensed by the United States Food and Drug Administration or any other regulatory entity whether foreign or domestic for any specific intended use, whether research, commercial, diagnostic, or otherwise, and (ii) Licensee must ensure it has any regulatory approvals that are necessary for Licensee’s intended uses of the Software. Licensee will comply with all applicable laws and regulations when using and maintaining the Software.
|
||||
General. Licensee may not sublicense, assign, share, pledge, rent or transfer any of its rights under this Agreement in relation to the Software or any portion thereof including documentation. Illumina reserves the right to change this Agreement at any time. When Illumina makes any changes, Illumina will provide the updated Agreement, or a link to it, on Illumina’s website (www.illumina.com) and such updated Agreement WILL become effective immediately. Licensee’s continued access to or use of the Software represents Licensee’s agreement to any revised Agreement. If one or more provisions of this Agreement are found to be invalid or unenforceable, this Agreement WILL not be rendered inoperative but the remaining provisions WILL continue in full force and effect. This Agreement constitutes the entire agreement between the parties with respect to the subject matter of this Agreement and merges all prior communications except that a “hard-copy” form of licensing agreement relating to the Software previously agreed to in writing by Illumina and Licensee WILL supersede and govern in the event of any conflicting provisions.
|
||||
Governing Law. This Agreement WILL be governed by and construed in accordance with the laws of the state of California, USA, without regard to its conflicts of laws principles, and independent of where a suit or action hereunder may be filed.
|
||||
U.S. Government End Users. If Licensee is a branch agency or instrumentality of the United States Government, the following provision applies. The Software is a “commercial item” as that term is defined at 48 C.F.R. 2.101, consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 or 48 C.F.R. 227.7202 (as applicable). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4, all United States Government end users acquire the Software with only those rights set forth herein.
|
||||
Contact. Any questions regarding legal rights, duties, obligations, or restrictions associated with the software hereunder should be directed to Illumina, Inc., 5200 Illumina Way, San Diego, CA 92122, Attention: Legal Department, Phone: (858) 202-4500, Fax: (858) 202-4599, web site: www.illumina.com <http://www.illumina.com>.
|
||||
Third Party Components. The Software may include third party software (“Third Party Programs”). Some of the Third Party Programs are available under open source or free software licenses. The License Agreement accompanying the Licensed Software does not alter any rights or obligations Licensee may have under those open source or free software licenses. The licenses that govern the terms and conditions of use of the Third Party Programs included in the Licensed Software are provided in the READ ME provided with the Software. The READ ME also contains copyright statements for the various open source software components (or portions thereof) that are distributed with the Licensed Software.
|
||||
END OF END-USER SOFTWARE LICENSE AGREEMENT.
|
17
modules/bclconvert/README.md
Normal file
17
modules/bclconvert/README.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Updating the docker container and making a new module release
|
||||
|
||||
bcl-convert is a commercial tool from Illumina. The container provided for the bcl-convert nf-core module is not provided nor supported by Illumina. Updating the bcl-convert versions in the container and pushing the update to Dockerhub needs to be done manually.
|
||||
|
||||
1. Navigate to the appropriate download page. - [BCL Convert](https://support.illumina.com/sequencing/sequencing_software/bcl-convert/downloads.html): download the rpm of the desired bcl-convert version with `curl` or `wget`.
|
||||
2. Unpack the RPM package using `rpm2cpio bcl-convert-*.rpm | cpio -i --make-directories`. Place the executable located in `<unpack_dir>/usr/bin/bcl-convert` in the same folder where the Dockerfile lies.
|
||||
3. Create and test the container:
|
||||
|
||||
```bash
|
||||
docker build . -t nfcore/bclconvert:<VERSION>
|
||||
```
|
||||
|
||||
4. Access rights are needed to push the container to the Dockerhub nfcore organization, please ask a core team member to do so.
|
||||
|
||||
```bash
|
||||
docker push nfcore/bclconvert:<VERSION>
|
||||
```
|
81
modules/bclconvert/main.nf
Normal file
81
modules/bclconvert/main.nf
Normal file
|
@ -0,0 +1,81 @@
|
|||
process BCLCONVERT {
|
||||
tag '$samplesheet'
|
||||
label 'process_high'
|
||||
|
||||
if (params.enable_conda) {
|
||||
exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers."
|
||||
}
|
||||
container "nfcore/bclconvert:3.9.3"
|
||||
|
||||
input:
|
||||
path samplesheet
|
||||
path run_dir
|
||||
|
||||
output:
|
||||
path "*.fastq.gz" ,emit: fastq
|
||||
path "Reports/*.{csv,xml,bin}" ,emit: reports
|
||||
path "Logs/*.{log,txt}" ,emit: logs
|
||||
path "InterOp/*.bin" ,emit: interop
|
||||
path "versions.yml" ,emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
|
||||
"""
|
||||
bcl-convert \
|
||||
$args \\
|
||||
--output-directory . \\
|
||||
--bcl-input-directory ${run_dir} \\
|
||||
--sample-sheet ${samplesheet} \\
|
||||
--bcl-num-parallel-tiles ${task.cpus}
|
||||
|
||||
mkdir InterOp
|
||||
cp ${run_dir}/InterOp/*.bin InterOp/
|
||||
mv Reports/*.bin InterOp/
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bclconvert: \$(bcl-convert -V 2>&1 | head -n 1 | sed 's/^.*Version //')
|
||||
END_VERSIONS
|
||||
"""
|
||||
|
||||
stub:
|
||||
"""
|
||||
echo "sample1_S1_L001_R1_001" > sample1_S1_L001_R1_001.fastq.gz
|
||||
echo "sample1_S1_L001_R2_001" > sample1_S1_L001_R2_001.fastq.gz
|
||||
echo "sample1_S1_L002_R1_001" > sample1_S1_L002_R1_001.fastq.gz
|
||||
echo "sample1_S1_L002_R2_001" > sample1_S1_L002_R2_001.fastq.gz
|
||||
echo "sample2_S2_L001_R1_001" > sample2_S2_L001_R1_001.fastq.gz
|
||||
echo "sample2_S2_L001_R2_001" > sample2_S2_L001_R2_001.fastq.gz
|
||||
echo "sample2_S2_L002_R1_001" > sample2_S2_L002_R1_001.fastq.gz
|
||||
echo "sample2_S2_L002_R2_001" > sample2_S2_L002_R2_001.fastq.gz
|
||||
|
||||
mkdir Reports
|
||||
echo "Adapter_Metrics" > Reports/Adapter_Metrics.csv
|
||||
echo "Demultiplex_Stats" > Reports/Demultiplex_Stats.csv
|
||||
echo "fastq_list" > Reports/fastq_list.csv
|
||||
echo "Index_Hopping_Counts" > Reports/Index_Hopping_Counts.csv
|
||||
echo "IndexMetricsOut" > Reports/IndexMetricsOut.bin
|
||||
echo "Quality_Metrics" > Reports/Quality_Metrics.csv
|
||||
echo "RunInfo" > Reports/RunInfo.xml
|
||||
echo "SampleSheet" > Reports/SampleSheet.csv
|
||||
echo "Top_Unknown_Barcodes" > Reports/Top_Unknown_Barcodes.csv
|
||||
|
||||
mkdir Logs
|
||||
echo "Errors" > Logs/Errors.log
|
||||
echo "FastqComplete" > Logs/FastqComplete.txt
|
||||
echo "Info" > Logs/Info.log
|
||||
echo "Warnings" > Logs/Warnings.log
|
||||
|
||||
mkdir InterOp/
|
||||
echo "InterOp" > InterOp/InterOp.bin
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bclconvert: \$(bcl-convert -V 2>&1 | head -n 1 | sed 's/^.*Version //')
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
45
modules/bclconvert/meta.yml
Normal file
45
modules/bclconvert/meta.yml
Normal file
|
@ -0,0 +1,45 @@
|
|||
name: "bclconvert"
|
||||
description: Demultiplex Illumina BCL files
|
||||
keywords:
|
||||
- demultiplex
|
||||
- illumina
|
||||
- fastq
|
||||
tools:
|
||||
- "bclconvert":
|
||||
description: "Demultiplex Illumina BCL files"
|
||||
homepage: "https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html"
|
||||
documentation: "https://support-docs.illumina.com/SW/BCL_Convert/Content/SW/FrontPages/BCL_Convert.htm"
|
||||
licence: "ILLUMINA"
|
||||
|
||||
input:
|
||||
- samplesheet:
|
||||
type: file
|
||||
description: "Input samplesheet"
|
||||
pattern: "*.{csv}"
|
||||
- run_dir:
|
||||
type: directory
|
||||
description: "Input run directory containing RunInfo.xml and BCL data"
|
||||
|
||||
output:
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
- fastq:
|
||||
type: file
|
||||
description: Demultiplexed FASTQ files
|
||||
pattern: "*.{fastq.gz}"
|
||||
- reports:
|
||||
type: file
|
||||
description: Demultiplexing Reports
|
||||
pattern: "Reports/*.{csv,xml}"
|
||||
- logs:
|
||||
type: file
|
||||
description: Log files
|
||||
pattern: "Logs/*.{log,txt}"
|
||||
- interop:
|
||||
type: file
|
||||
description: Interop files
|
||||
pattern: "Interop/*.{bin}"
|
||||
authors:
|
||||
- "@matthdsm"
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/complement.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/complement.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -9,7 +9,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/genomecov.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -9,7 +9,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/intersect.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- bed:
|
||||
type: file
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/intersect.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -11,7 +11,7 @@ tools:
|
|||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/makewindows.html
|
||||
tool_dev_url: None
|
||||
doi: "10.1093/bioinformatics/btq033"
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -9,7 +9,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/intersect.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/merge.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/slop.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -8,7 +8,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/sort.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
|
|
|
@ -10,7 +10,7 @@ tools:
|
|||
description: |
|
||||
A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types.
|
||||
documentation: https://bedtools.readthedocs.io/en/latest/content/tools/subtract.html
|
||||
licence: ['MIT']
|
||||
licence: ["MIT"]
|
||||
|
||||
input:
|
||||
- meta:
|
||||
|
|
36
modules/biobambam/bammarkduplicates2/main.nf
Normal file
36
modules/biobambam/bammarkduplicates2/main.nf
Normal file
|
@ -0,0 +1,36 @@
|
|||
process BIOBAMBAM_BAMMARKDUPLICATES2 {
|
||||
tag "$meta.id"
|
||||
label 'process_medium'
|
||||
|
||||
conda (params.enable_conda ? "bioconda::biobambam=2.0.183" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/biobambam:2.0.183--h9f5acd7_1' : 'quay.io/biocontainers/biobambam:2.0.183--h9f5acd7_1'}"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bam)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.bam") , emit: bam
|
||||
tuple val(meta), path("*.metrics.txt"), emit: metrics
|
||||
path "versions.yml" , emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
"""
|
||||
bammarkduplicates2 \\
|
||||
$args \\
|
||||
I=$bam \\
|
||||
O=${prefix}.bam \\
|
||||
M=${prefix}.metrics.txt \\
|
||||
tmpfile=$prefix \\
|
||||
markthreads=$task.cpus
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bammarkduplicates2: \$(echo \$(bammarkduplicates2 --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
44
modules/biobambam/bammarkduplicates2/meta.yml
Normal file
44
modules/biobambam/bammarkduplicates2/meta.yml
Normal file
|
@ -0,0 +1,44 @@
|
|||
name: biobambam_bammarkduplicates2
|
||||
description: Locate and tag duplicate reads in a BAM file
|
||||
keywords:
|
||||
- markduplicates
|
||||
- bam
|
||||
- cram
|
||||
tools:
|
||||
- biobambam:
|
||||
description: |
|
||||
biobambam is a set of tools for early stage alignment file processing.
|
||||
homepage: https://gitlab.com/german.tischler/biobambam2
|
||||
documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md
|
||||
doi: 10.1186/1751-0473-9-13
|
||||
licence: ["GPL v3"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- bam:
|
||||
type: file
|
||||
description: BAM/CRAM file
|
||||
pattern: "*.{bam,cram}"
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- bam:
|
||||
type: file
|
||||
description: BAM file with duplicate reads marked/removed
|
||||
pattern: "*.{bam}"
|
||||
- metrics:
|
||||
type: file
|
||||
description: Duplicate metrics file generated by biobambam
|
||||
pattern: "*.{metrics.txt}"
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
authors:
|
||||
- "@muffato"
|
46
modules/biobambam/bamsormadup/main.nf
Normal file
46
modules/biobambam/bamsormadup/main.nf
Normal file
|
@ -0,0 +1,46 @@
|
|||
process BIOBAMBAM_BAMSORMADUP {
|
||||
tag "$meta.id"
|
||||
label "process_medium"
|
||||
|
||||
conda (params.enable_conda ? "bioconda::biobambam=2.0.183" : null)
|
||||
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/biobambam:2.0.183--h9f5acd7_1' : 'quay.io/biocontainers/biobambam:2.0.183--h9f5acd7_1'}"
|
||||
|
||||
input:
|
||||
tuple val(meta), path(bams)
|
||||
path(fasta)
|
||||
|
||||
output:
|
||||
tuple val(meta), path("*.{bam,cram}") ,emit: bam
|
||||
tuple val(meta), path("*.bam.bai") ,optional:true, emit: bam_index
|
||||
tuple val(meta), path("*.metrics.txt") ,emit: metrics
|
||||
path "versions.yml" ,emit: versions
|
||||
|
||||
when:
|
||||
task.ext.when == null || task.ext.when
|
||||
|
||||
script:
|
||||
def args = task.ext.args ?: ''
|
||||
def prefix = task.ext.prefix ?: "${meta.id}"
|
||||
def suffix = args.contains("outputformat=cram") ? "cram" : "bam"
|
||||
def input_string = bams.join(" I=")
|
||||
|
||||
if (args.contains("outputformat=cram") && reference == null) error "Reference required for CRAM output."
|
||||
|
||||
"""
|
||||
bamcat \\
|
||||
I=${input_string} \\
|
||||
level=0 \\
|
||||
| bamsormadup \\
|
||||
$args \\
|
||||
M=${prefix}.metrics.txt \\
|
||||
tmpfile=$prefix \\
|
||||
threads=$task.cpus \\
|
||||
> ${prefix}.${suffix}
|
||||
|
||||
cat <<-END_VERSIONS > versions.yml
|
||||
"${task.process}":
|
||||
bamcat: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' )
|
||||
bamsormadup: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' )
|
||||
END_VERSIONS
|
||||
"""
|
||||
}
|
52
modules/biobambam/bamsormadup/meta.yml
Normal file
52
modules/biobambam/bamsormadup/meta.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
name: biobambam_bamsormadup
|
||||
description: Parallel sorting and duplicate marking
|
||||
keywords:
|
||||
- markduplicates
|
||||
- sort
|
||||
- bam
|
||||
- cram
|
||||
tools:
|
||||
- biobambam:
|
||||
description: |
|
||||
biobambam is a set of tools for early stage alignment file processing.
|
||||
homepage: https://gitlab.com/german.tischler/biobambam2
|
||||
documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md
|
||||
doi: 10.1186/1751-0473-9-13
|
||||
licence: ["GPL v3"]
|
||||
input:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- bams:
|
||||
type: file
|
||||
description: List containing 1 or more bam files
|
||||
- fasta:
|
||||
type: file
|
||||
description: Reference genome in FASTA format (optional)
|
||||
pattern: "*.{fa,fasta}"
|
||||
output:
|
||||
- meta:
|
||||
type: map
|
||||
description: |
|
||||
Groovy Map containing sample information
|
||||
e.g. [ id:'test', single_end:false ]
|
||||
- bam:
|
||||
type: file
|
||||
description: BAM/CRAM file with duplicate reads marked/removed
|
||||
pattern: "*.{bam,cram}"
|
||||
- bam_index:
|
||||
type: file
|
||||
description: BAM index file
|
||||
pattern: "*.{bai}"
|
||||
- metrics:
|
||||
type: file
|
||||
description: Duplicate metrics file generated by biobambam
|
||||
pattern: "*.{metrics.txt}"
|
||||
- versions:
|
||||
type: file
|
||||
description: File containing software versions
|
||||
pattern: "versions.yml"
|
||||
authors:
|
||||
- "@matthdsm"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue