Skip to content

Adding nf-core sparsesignatures module #8567

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 36 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c3c7d68
adding nf-core module sparsesignatures
Katerina10-cloud May 26, 2025
7186102
adding nf-core sparsesignatures module
Katerina10-cloud May 26, 2025
b06daf4
fixing snapshot stability + docker container version typo
Katerina10-cloud May 26, 2025
6cb2ca0
fixing seed_val for reproducibility
Katerina10-cloud May 27, 2025
25fdc6b
update main.nf.test script to handle unstable files
Katerina10-cloud May 27, 2025
1475499
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
24997f3
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
5baa9e5
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
c00629a
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
759dbd7
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
dbcca95
updating main.nf.test script skipping in CI when using the docker pro…
Katerina10-cloud May 27, 2025
51efc59
update main scripts + skip docker profile in nf-test.config
Katerina10-cloud May 28, 2025
8e17709
skipping CI docker test
Katerina10-cloud May 28, 2025
f4fdf3a
update test .config file
Katerina10-cloud May 28, 2025
c13775a
skip singularity CI test
Katerina10-cloud May 28, 2025
88fe1fc
skip docker CI test
Katerina10-cloud May 28, 2025
db60762
enaible singularity github test
Katerina10-cloud May 29, 2025
577d1d6
minor updates label typo
Katerina10-cloud May 29, 2025
4a2e384
update tools in meta.yml
Katerina10-cloud May 29, 2025
ebb53ce
Update .github/skip_nf_test.json
Katerina10-cloud Jun 3, 2025
1bc1b05
Update modules/nf-core/sparsesignatures/meta.yml
Katerina10-cloud Jun 3, 2025
88fe96a
fix emit alignment
Katerina10-cloud Jun 3, 2025
4c5b7d6
update meta.yml
Katerina10-cloud Jun 3, 2025
684be91
fix templates/main_script.R
Katerina10-cloud Jun 3, 2025
152961a
last updates
Katerina10-cloud Jun 3, 2025
a20e850
Merge branch 'master' into sparsesignatures
SPPearce Jun 4, 2025
4750e8d
minor update parse_args function
Katerina10-cloud Jun 5, 2025
5ac9b31
Merge branch 'nf-core:master' into sparsesignatures
Katerina10-cloud Jun 5, 2025
9e8c835
remove extra parameters in main_script.R
Katerina10-cloud Jun 6, 2025
b489c2a
Merge branch 'nf-core:master' into sparsesignatures
Katerina10-cloud Jun 6, 2025
af4ce16
Update modules/nf-core/sparsesignatures/templates/main_script.R
Katerina10-cloud Jun 13, 2025
9b87939
Merge branch 'nf-core:master' into sparsesignatures
Katerina10-cloud Jun 13, 2025
fdd9e07
swapping to use the newer module args setup
Katerina10-cloud Jun 13, 2025
74cf5cc
adding test for genome GRCh37
Katerina10-cloud Jun 14, 2025
c63009c
Merge branch 'nf-core:master' into sparsesignatures
Katerina10-cloud Jun 14, 2025
787469e
fixing assert snapshot mismatch
Katerina10-cloud Jun 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/skip_nf_test.json
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,10 @@
"subworkflows/nf-core/fastq_align_bamcmp_bwa",
"subworkflows/nf-core/fastq_align_bwa"
],
"docker": ["modules/nf-core/parabricks", "subworkflows/nf-core/deepvariant/tests/equality"],
"docker": ["modules/nf-core/parabricks",
"modules/nf-core/sparsesignatures",
"subworkflows/nf-core/deepvariant/tests/equality"
],
"singularity": [
"modules/nf-core/bases2fastq",
"modules/nf-core/deepvariant/rundeepvariant",
Expand Down
11 changes: 11 additions & 0 deletions modules/nf-core/sparsesignatures/environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
channels:
- conda-forge
- bioconda

dependencies:
- bioconda::bioconductor-bsgenome.hsapiens.1000genomes.hs37d5=0.99.1
- bioconda::bioconductor-bsgenome.hsapiens.ucsc.hg38=1.4.5
- bioconda::bioconductor-sparsesignatures=2.16.0
- conda-forge::r-dplyr=1.1.4
- conda-forge::r-patchwork=1.3.0
- conda-forge::r-tidyr=1.3.1
46 changes: 46 additions & 0 deletions modules/nf-core/sparsesignatures/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
process SPARSE_SIGNATURES {
tag "$meta.id"
label "process_low_long"
label "error_retry"

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-d410175e2fbd9c47aa685bb5dfb87cfad76d408b:a995bb98b7122825523ffed7ae131cb006e56cbe-0':
'biocontainers/mulled-v2-d410175e2fbd9c47aa685bb5dfb87cfad76d408b:a995bb98b7122825523ffed7ae131cb006e56cbe-0' }"

input:
tuple val(meta), path(tsv_join, stageAs: '*.tsv')

output:
tuple val(meta), path("*_mut_counts.rds"), emit: signatures_mutCounts_rds
tuple val(meta), path("*_cv_means_mse.rds"), emit: signatures_cv_rds
tuple val(meta), path("*_best_params_config.rds"), emit: signatures_bestConf_rds
tuple val(meta), path("*_nmf_Lasso_out.rds"), emit: signatures_nmfOut_rds
tuple val(meta), path("*_plot_all.rds"), emit: signatures_plot_rds
tuple val(meta), path("*_plot_all.pdf"), emit: signatures_plot_pdf
path "versions.yml", emit: versions

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

script:
template "main_script.R"

stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}_mut_counts.rds
touch ${prefix}_cv_means_mse.rds
touch ${prefix}_best_params_config.rds
touch ${prefix}_nmf_Lasso_out.rds
touch ${prefix}_plot_all.rds
touch ${prefix}_plot_all.pdf

cat <<-END_VERSIONS > versions.yml
"${task.process}":
bioconductor-sparsesignatures: \$(Rscript -e "library(SparseSignatures); cat(as.character(packageVersion('SparseSignatures')))")
bioconductor-bsgenome.hsapiens.1000genomes.hs37d5: \$(Rscript -e "library(BSgenome.Hsapiens.1000genomes.hs37d5); cat(as.character(packageVersion('BSgenome.Hsapiens.1000genomes.hs37d5')))")
bioconductor-bsgenome.hsapiens.ucsc.hg38: \$(Rscript -e "library(BSgenome.Hsapiens.UCSC.hg38); cat(as.character(packageVersion('BSgenome.Hsapiens.UCSC.hg38')))")
END_VERSIONS
"""
}
111 changes: 111 additions & 0 deletions modules/nf-core/sparsesignatures/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: sparse_signatures
description: mutational signature deconvolution of cancer cells
keywords:
- mutational signatures
- SBS
- bs genome reference
tools:
- sparsesignatures:
description: SparseSignatures is an R-based computational framework which performs
de novo extraction, inference, interpretation, or deconvolution of mutational
counts of a large number of patients.
documentation: https://www.bioconductor.org/packages/release/bioc/html/SparseSignatures.html
tool_dev_url: https://github.com/danro9685/SparseSignatures/tree/master?tab=readme-ov-file
doi: "10.1371/journal.pcbi.1009119"
licence: ["Apache-2.0"]
identifier: biotools:sparsesignatures
- bsgenome.hsapiens.1000genomes.hs37d5:
description: Reference Genome Sequence (hs37d5), based on NCBI GRCh37
documentation: https://bioconductor.org/packages/3.8/data/annotation/html/BSgenome.Hsapiens.1000genomes.hs37d5.html
doi: "10.1038/s41467-022-29271-y"
licence: ["Artistic-2.0"]
identifier: biotools:bsgenome.hsapiens.1000genomes.hs37d5
- bsgenome.hsapiens.ucsc.hg38:
description: Full genomic sequences for Homo sapiens (UCSC genome hg38)
documentation: https://bioconductor.org/packages/3.16/data/annotation/html/BSgenome.Hsapiens.UCSC.hg38.html
doi: "10.18129/B9.bioc.BSgenome.Hsapiens.UCSC.hg38"
licence: ["Artistic-2.0"]
identifier: biotools:bsgenome.hsapiens.ucsc.hg38
input:
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'sample1' ]
- tsv_join:
type: file
description: joint tsv file with validated mutations by CNAqc
pattern: "*.{tsv}"
output:
- signatures_mutCounts_rds:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_mut_counts.rds":
type: file
description: File containing mutational counts across samples/patients
pattern: "*{_mut_counts.rds}"
- signatures_cv_rds:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_cv_means_mse.rds":
type: file
description: File containing cross-validation results
pattern: "*{_cv_means_mse.rds}"
- signatures_bestConf_rds:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_best_params_config.rds":
type: file
description: File containing best parameters configuration (numer of signatures (K) and lambda)
pattern: "*{_best_params_config.rds}"
- signatures_nmfOut_rds:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_nmf_Lasso_out.rds":
type: file
description: File containing the results of nmf LASSO fit (signatures and exposures)
pattern: "*{_nmf_Lasso_out.rds}"
- signatures_plot_rds:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_plot_all.rds":
type: file
description: File containig the data to generate plots
pattern: "*{_plot_all.rds}"
- signatures_plot_pdf:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'test' ]
- "*_plot_all.pdf":
type: file
description: File containing the generated plots
pattern: "*{_plot_all.pdf}"
- versions:
- versions.yml:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@Katerina10-cloud"
- "@elena-buscaroli"
maintainers:
- "@Katerina10-cloud"
- "@elena-buscaroli"

Loading
Loading