Skip to content

Commit

Permalink
new module: riboWaltz (#5549)
Browse files Browse the repository at this point in the history
* added initial files

* linting passed

* add ribowaltz nf-test

* prettier formatting fix

* formatting fixes

* remaining formatting fixes

* added missing newline

* renamed best offset output name

* address review comments

* remove trailing whitespace

* added comments to params
  • Loading branch information
iraiosub authored May 2, 2024
1 parent 2876a02 commit ab52553
Show file tree
Hide file tree
Showing 7 changed files with 1,073 additions and 0 deletions.
9 changes: 9 additions & 0 deletions modules/nf-core/ribowaltz/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json
name: "ribowaltz"
channels:
- conda-forge
- bioconda
- defaults
dependencies:
- "bioconda::ribowaltz=2.0"
50 changes: 50 additions & 0 deletions modules/nf-core/ribowaltz/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
process RIBOWALTZ {
tag "$meta.id"
label 'process_medium'

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ribowaltz:2.0--r43hdfd78af_0':
'biocontainers/ribowaltz:2.0--r43hdfd78af_0' }"

input:
tuple val(meta), path(bam)
tuple val(meta2), path(gtf)
tuple val(meta3), path(fasta)

output:
tuple val(meta), path("*.best_offset.txt") , emit: best_offset , optional: true
tuple val(meta), path("*.psite_offset.tsv{,.gz}") , emit: offset , optional: true
tuple val(meta), path("offset_plot/*") , emit: offset_plot , optional: true
tuple val(meta), path("*.psite.tsv{,.gz}") , emit: psites , optional: true
tuple val(meta), path("*.codon_coverage_rpf.tsv{,.gz}") , emit: codon_coverage_rpf , optional: true
tuple val(meta), path("*.codon_coverage_psite.tsv{,.gz}") , emit: codon_coverage_psite , optional: true
tuple val(meta), path("*.cds_coverage_psite.tsv{,.gz}") , emit: cds_coverage , optional: true
tuple val(meta), path("*nt_coverage_psite.tsv{,.gz}") , emit: cds_window_coverage , optional: true
tuple val(meta), path("ribowaltz_qc/*.pdf") , emit: ribowaltz_qc , optional: true
path "versions.yml" , emit: versions

when:
task.ext.when == null || task.ext.when

script:
template 'ribowaltz.r'

stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}.best_offset.txt
touch ${prefix}.psite_offset.tsv
touch ${prefix}.psite.tsv
touch ${prefix}.codon_coverage_rpf.tsv
touch ${prefix}.codon_coverage_psite.tsv
touch ${prefix}.cds_coverage_psite.tsv
mkdir -p offset_plot/${prefix} && touch offset_plot/${prefix}/29.pdf
mkdir -p ribowaltz_qc && touch ribowaltz_qc/${prefix}.metaprofile_psite.pdf
cat <<-END_VERSIONS > versions.yml
"${task.process}":
bioconductor-ribowaltz: \$(Rscript -e "library(riboWaltz); cat(as.character(packageVersion('riboWaltz')))")
END_VERSIONS
"""
}
97 changes: 97 additions & 0 deletions modules/nf-core/ribowaltz/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json
name: "ribowaltz"
description: Calculation of optimal P-site offsets, diagnostic analysis and visual inspection of ribosome profiling data
keywords:
- sort
- example
- genomics
tools:
- "ribowaltz":
description: "Calculation of optimal P-site offsets, diagnostic analysis and visual inspection of ribosome profiling data."
homepage: "https://github.com/LabTranslationalArchitectomics/riboWaltz"
documentation: "https://github.com/LabTranslationalArchitectomics/riboWaltz"
tool_dev_url: "https://github.com/LabTranslationalArchitectomics/riboWaltz"
doi: "10.1371/journal.pcbi.1006169"
licence: ["MIT"]

input:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- meta2:
type: map
description: |
Map containing reference information for the reference genome GTF file
e.g. `[ id:'Ensembl human v.111' ]`
- meta3:
type: map
description: |
Map containing reference information for the reference genome FASTA file
e.g. `[ id:'Ensembl human v.111' ]`
- bam:
type: file
description: Transcriptome BAM file
pattern: "*.{bam}"
- gtf:
type: file
description: GTF file of reference genome
pattern: "*.{gtf.gz,gtf}"
- fasta:
type: file
description: FASTA file of reference genome
pattern: "*.{fasta,fa,fasta.gz,fa.gz}"

output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- best_offset:
type: file
description: Text file with the extremity used for the offset correction step and the best offset for each sample (optional, in case no offsets could be determined, usually because no reads pass filtering criteria)
pattern: "*.best_offset.txt"
- offset:
type: file
description: TSV file containing P-site offsets for each read length (optional, in case no offsets could be determined, usually because no reads pass filtering criteria)
pattern: "*.psite_offset.tsv.gz"
- offset_plot:
type: file
description: P-site offset plots for each read length (otional)
pattern: "offset_plot/*"
- psites:
type: file
description: TSV file containing P-site transcriptomic coordinates and information for each alignment (optional)
pattern: "*.psite.tsv.gz"
- codon_coverage_rpf:
type: file
description: TSV file with codon-level RPF coverage for each transcript (optional)
pattern: "*.codon_coverage_rpf.tsv.gz"
- codon_coverage_psite:
type: file
description: TSV file with codon-level P-site coverage for each transcript (optional)
pattern: "*.codon_coverage_psite.tsv.gz"
- cds_coverage:
type: file
description: TSV file with CDS P-site in-frame counts for each transcript (optional)
pattern: "*.cds_coverage_psite.tsv.gz"
- cds_window_coverage:
type: file
description: TSV file with CDS P-site in-frame counts for each transcript, excluding P-sites within defined distances to start and stop codons (defined by passing --exclude_start and --exclude_stop with the number of nucleotides) (optional)
pattern: "*nt_coverage_psite.tsv.gz"
- ribowaltz_qc:
type: file
description: riboWaltz diagnostic plots (optional)
pattern: "ribowaltz_qc/*"
- versions:
type: file
description: File containing software versions
pattern: "versions.yml"

authors:
- "@iraiosub"
maintainers:
- "@iraiosub"
Loading

0 comments on commit ab52553

Please sign in to comment.