Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
92 changes: 92 additions & 0 deletions modules/msk/facets/2.0.10/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
process FACETS {
tag "$meta.id"
label 'process_medium'

container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'docker://ghcr.io/mskcc-omics-workflows/facets_tools:2.0.10':
'ghcr.io/mskcc-omics-workflows/facets_tools:2.0.10' }"


input:

tuple val(meta), path(snp_pileup), val(legacy_output_mode) // [ meta, ${prefix}.snp_pileup.gz, false]


output:
tuple val(meta), path("*purity_diplogR.adjusted.seg") , emit: purity_adjusted_seg
tuple val(meta), path("*purity_diplogR.unadjusted.seg") , emit: purity_unadjusted_seg
tuple val(meta), path("*_purity.?d*") , emit: purity_r_data
tuple val(meta), path("*_purity*png") , emit: purity_png
tuple val(meta), path("*_purity.out") , emit: purity_out, optional: true
tuple val(meta), path("*_purity.cncf.txt") , emit: purity_cncf_txt, optional: true
tuple val(meta), path("*_hisens_diplogR.adjusted.seg") , emit: hisens_adjusted_seg
tuple val(meta), path("*_hisens_diplogR.unadjusted.seg") , emit: hisens_unadjusted_seg
tuple val(meta), path("*_hisens*png") , emit: hisens_png
tuple val(meta), path("*_hisens.out") , emit: hisens_out, optional: true
tuple val(meta), path("*_hisens.cncf.txt") , emit: hisens_cncf_txt, optional: true
tuple val(meta), path("*.qc.txt") , emit: qc_txt
tuple val(meta), path("*.gene_level.txt") , emit: gene_level_txt
tuple val(meta), path("*.arm_level.txt") , emit: arm_level_txt
tuple val(meta), path("${meta.id}.txt") , emit: output_txt, optional: true
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 legacy_output_arg = legacy_output_mode ? '--legacy-output TRUE' : ''

"""
/usr/bin/facets-suite/run-facets-wrapper.R \
${args} \
${legacy_output_arg} \
--sample-id ${prefix} \
--counts-file ${snp_pileup}

cat <<-END_VERSIONS > versions.yml
"${task.process}":
facets_suite: \$(Rscript -e "packageVersion('facetsSuite')" | grep -oP "\\d+.\\d+.\\d+")
facets: \$(Rscript -e "packageVersion('facets')" | grep -oP "\\d+.\\d+.\\d+")
r: \$(R --version | grep -oP '(?<=R version ).*(?=\\()')
pctGCdata: \$(Rscript -e "packageVersion('pctGCdata')" | grep -oP "\\d+.\\d+.\\d+")
END_VERSIONS
"""

stub:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}_purity_diplogR.adjusted.seg
touch ${prefix}_purity_diplogR.unadjusted.seg
touch ${prefix}_purity.CNCF.png
touch ${prefix}_purity.png
touch ${prefix}_purity.cncf.txt
touch ${prefix}_purity.Rdata
touch ${prefix}_purity.rds
touch ${prefix}_purity.out
touch ${prefix}_hisens_diplogR.adjusted.seg
touch ${prefix}_hisens_diplogR.unadjusted.seg
touch ${prefix}_hisens.CNCF.png
touch ${prefix}_hisens.png
touch ${prefix}_hisens.cncf.txt
touch ${prefix}_hisens.Rdata
touch ${prefix}_hisens.rds
touch ${prefix}_hisens.out
touch ${prefix}.qc.txt
touch ${prefix}.gene_level.txt
touch ${prefix}.arm_level.txt
touch ${prefix}.txt



cat <<-END_VERSIONS > versions.yml
"${task.process}":
facets_suite: \$(Rscript -e "packageVersion('facetsSuite')" | grep -oP "\\d+.\\d+.\\d+")
facets: \$(Rscript -e "packageVersion('facets')" | grep -oP "\\d+.\\d+.\\d+")
r: \$(R --version | grep -oP '(?<=R version ).*(?=\\()')
pctGCdata: \$(Rscript -e "packageVersion('pctGCdata')" | grep -oP "\\d+.\\d+.\\d+")
END_VERSIONS
"""
}
209 changes: 209 additions & 0 deletions modules/msk/facets/2.0.10/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json
name: "facets"
description:
Algorithm to implement Fraction and Allele specific Copy number Estimate
from Tumor/normal Sequencing.
keywords:
- facets
- pileup
- Allele specific
- Copy number
tools:
- "facets-suite":
description: "An R package with functions to run"
homepage: "https://github.com/mskcc/facets-suite"
documentation: "https://github.com/mskcc/facets-suite"
licence: ["MIT"]
identifier: biotools:facets
- "facets":
description:
"Algorithm to implement Fraction and Allele specific Copy number
Estimate from Tumor/normal Sequencing."
homepage: "https://github.com/mskcc/facets"
documentation: "https://github.com/mskcc/facets"
doi: "10.1093/nar/gkw520"

identifier: biotools:facets
input:
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- snp_pileup:
type: file
description: The pileup file
pattern: "*.snp_pileup.gz"
- legacy_output_mode:
type: boolean
description: Flag to run Facets in legacy output mode
output:
- purity_adjusted_seg:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*purity_diplogR.adjusted.seg":
type: file
description: The purity adjusted seg file
pattern: "*purity_diplogR.adjusted.seg"
- purity_unadjusted_seg:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*purity_diplogR.unadjusted.seg":
type: file
description: The purity unadjusted seg file
pattern: "*purity_diplogR.unadjusted.seg"
- purity_r_data:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_purity.?d*":
type: file
description: The purity R data file
pattern: "*_purity.?d*"
- purity_png:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_purity*png":
type: file
description: The purity png file. In legacy output the file would match *.CNCF.png
pattern: "*_purity*png"
- purity_out:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_purity.out":
type: file
description: The purity out file. Only in legacy output mode.
pattern: "*_purity.out"
- purity_cncf_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_purity.cncf.txt":
type: file
description: The purity cncf file. Only in legacy output mode.
pattern: "*_purity.cncf.txt"
- hisens_adjusted_seg:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*hisens_diplogR.adjusted.seg":
type: file
description: The hisens adjusted seg file
pattern: "*hisens_diplogR.adjusted.seg"
- hisens_unadjusted_seg:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*hisens_diplogR.unadjusted.seg":
type: file
description: The hisens unadjusted seg file
pattern: "*hisens_diplogR.unadjusted.seg"
- hisens_r_data:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_hisens.?d*":
type: file
description: The hisens R data file
pattern: "*_hisens.?d*"
- hisens_png:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_hisens*png":
type: file
description: The hisens png file. In legacy output the file would match *.CNCF.png
pattern: "*_hisens*png"
- hisens_out:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_hisens.out":
type: file
description: The hisense out file. Only in legacy output mode.
pattern: "*_hisens.out"
- hisens_cncf_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*_hisens.cncf.txt":
type: file
description: The hisens cncf file. Only in legacy output mode.
pattern: "*_hisens.cncf.txt"
- qc_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*.qc.txt":
type: file
description: The qc file
pattern: "*.qc.txt"
- gene_level_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*.gene_level.txt":
type: file
description: The gene level file
pattern: "*.gene_level.txt"
- arm_level_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- "*.arm_level.txt":
type: file
description: The arm level file
pattern: "*.arm_level.txt"
- output_txt:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'pair_id' ]`
- ${meta.id}.txt:
type: file
description: The facets output log file. Format [id].txt
pattern: "*.txt"
- versions:
- versions.yml:
type: file
description: File containing software versions
pattern: "versions.yml"
authors:
- "@nikhil"
maintainers:
- "@nikhil"
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@ nextflow_process {
tag "modules_nfcore"
tag "modules_msk"
tag "facets"
tag "facets/2.0.10"
tag "snppileup"

test("facets - pileup - legacy output") {

setup {
run("SNPPILEUP"){
script "../../snppileup/main.nf"
script "../../../snppileup/main.nf"
process {
"""
meta = [ id:'test' ] // meta map
Expand All @@ -42,9 +43,7 @@ nextflow_process {
when {
process {
"""
meta = [ id:'test' ] // meta map
input[0] = SNPPILEUP.out.pileup.collect{ meta, pileup -> pileup }.map{ pileup -> [meta, pileup, true]}

input[0] = SNPPILEUP.out.pileup.map{ meta1, pileup -> [meta1, pileup, true] }
"""

}
Expand All @@ -63,9 +62,9 @@ nextflow_process {

setup {
run("SNPPILEUP"){
script "../../snppileup/main.nf"
script "../../../snppileup/main.nf"
process {
"""
"""
meta = [ id:'test' ] // meta map
input[0] = [
meta,
Expand All @@ -89,12 +88,9 @@ nextflow_process {

when {
process {
"""
meta = [ id:'test' ] // meta map
input[0] = SNPPILEUP.out.pileup.collect{ meta, pileup -> pileup }.map{ pileup -> [meta, pileup, false]}

"""

input[0] = SNPPILEUP.out.pileup.map{ meta1, pileup -> [meta1, pileup, false] }
"""
}
}

Expand Down
Loading
Loading