Skip to content
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

Feature/exe 1732 update to pixelator 0.17.1 #90

20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,26 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [[1.2.0](https://github.com/nf-core/pixelator/releases/tag/1.1.0)] - 2024-05-??
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the link is outdated on this, right?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, good catch!


### Enhancements & fixes

- [[PR #90](https://github.com/nf-core/pixelator/pull/90)] - Update pixelator to 0.17.1
- [[PR #90](https://github.com/nf-core/pixelator/pull/90)] - Add `pixelator single-cell layout` command
- [[PR #90](https://github.com/nf-core/pixelator/pull/90)] - `graph` step is now using `process_high` as it's resource tag

### Software dependencies

| Dependency | Old version | New version |
| ----------- | ----------- | ----------- |
| `pixelator` | 0.16.2 | 0.17.1 |

> **NB:** Dependency has been **updated** if both old and new version information is present.
>
> **NB:** Dependency has been **added** if just the new version information is present.
>
> **NB:** Dependency has been **removed** if new version information isn't present.

## [[1.1.0](https://github.com/nf-core/pixelator/releases/tag/1.1.0)] - 2024-03-29

### Enhancements & fixes
Expand Down
14 changes: 12 additions & 2 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -133,15 +133,25 @@ process {
params.compute_polarization ? "--compute-polarization" : '',
params.compute_colocalization ? "--compute-colocalization" : '',
params.use_full_bipartite ? "--use-full-bipartite " : '',
params.polarization_normalization ? "--polarization-normalization ${params.polarization_normalization}" : '',
params.polarization_binarization ? "--polarization-binarization" : '',
params.polarization_min_marker_count ? "--polarization-min-marker-count ${params.polarization_min_marker_count}" : '',
params.polarization_transformation ? "--polarization-transformation ${params.polarization_transformation}" : '',
params.colocalization_transformation ? "--colocalization-transformation ${params.colocalization_transformation}" : '',
params.polarization_n_permutations ? "--polarization-n-permutations ${params.polarization_n_permutations}" : '',
(params.colocalization_neighbourhood_size instanceof Integer) ? "--colocalization-neighbourhood-size ${params.colocalization_neighbourhood_size}" : '',
(params.colocalization_n_permutations instanceof Integer) ? "--colocalization-n-permutations ${params.colocalization_n_permutations}" : '',
(params.colocalization_min_region_count instanceof Integer) ? "--colocalization-min-region-count ${params.colocalization_min_region_count}" : '',
].join(' ').trim()
}

withName: PIXELATOR_LAYOUT {
ext.when = { !params.skip_layout }
ext.args = [
params.no_node_marker_counts ? "--no-node-marker-counts" : '',
params.layout_algorithm ? "--layout-algorithm ${params.layout_algorithm} " : '',
].join(' ').trim()
}


withName: PIXELATOR_REPORT {
ext.when = { !params.skip_report }
}
Expand Down
6 changes: 6 additions & 0 deletions conf/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,10 @@ params {
colocalization_min_region_count = 0
colocalization_n_permutations = 10
colocalization_neighbourhood_size = 1

// For now skip the layout step since it is very slow on these
// small test datasets
skip_layout = true
// using this since the default pmds_3d does not work on very small graphs
layout_algorithm = "fruchterman_reingold_3d"
}
28 changes: 26 additions & 2 deletions docs/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ newly recovered components are stored in a file (components_recovered.csv).
- `pixelator`

- `annotate`
- `<sample-id>.dataset.pxl`
- `<sample-id>.annotated.dataset.pxl`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

annotated -> annotate

Let's use the stage name instead of a participle.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your right, it should be annotate.

- `<sample-id>.meta.json`: Command invocation metadata.
- `<sample-id>.rank_vs_size.png`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These PNG files are not produced AFAIK

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also true!

- `<sample-id>.raw_components_metrics.csv`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are csv.gz instead

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch! I will update all this things in an incoming PR.

Expand All @@ -193,7 +193,7 @@ edgelist to find putative cells, and it will generate a pxl file containing the

- `analysis`

- `<sample-id>.dataset.pxl`: PXL file with the analysis results added to it.
- `<sample-id>.analysis.dataset.pxl`: PXL file with the analysis results added to it.
- `<sample-id>.meta.json`: Command invocation metadata.
- `<sample-id>.report.json`: Statistics for the analysis step.

Expand All @@ -214,6 +214,30 @@ Currently, the following analysis are performed:
Each analysis can be disabled by using respectively `--compute_polarization false` or `--compute_colocalization false`.
This entire step can also be skipped using the `--skip_analysis` option.

### Compute layouts for visualization

<details markdown="1">
<summary>Output files</summary>

- `pixelator`

- `layout`

- `<sample-id>.layout.dataset.pxl`: PXL file with the layout results added to it.
- `<sample-id>.meta.json`: Command invocation metadata.
- `<sample-id>.report.json`: Statistics for the layout step.

- `logs`
- `<sample-id>.pixelator-layout.log`: pixelator log output.

</details>

This step uses the `pixelator single-cell layout` command.
It will generate precomputed layouts that can be used to visualize cells
as part of the downstream analysis.

This entire step can also be skipped using the `--skip_layout` option.

### Generate reports

<details markdown="1">
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/collect_metadata.nf
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ process PIXELATOR_COLLECT_METADATA {
label 'process_single'
cache false

conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:

Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/list_options.nf
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ process PIXELATOR_LIST_OPTIONS {
label 'process_single'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

output:
path "design_options.txt" , emit: designs
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/amplicon/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ process PIXELATOR_AMPLICON {
label 'process_low'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(reads)
Expand Down
7 changes: 3 additions & 4 deletions modules/local/pixelator/single-cell/analysis/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@ process PIXELATOR_ANALYSIS {
tag "$meta.id"
label 'process_medium'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(data)
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/annotate/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ process PIXELATOR_ANNOTATE {
label 'process_medium'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(dataset), path(panel_file), val(panel)
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/collapse/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ process PIXELATOR_COLLAPSE {
tag "$meta.id"
label 'process_medium'

conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(reads), path(panel_file), val(panel)
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/demux/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ process PIXELATOR_DEMUX {
label 'process_medium'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(reads), path(panel_file), val(panel)
Expand Down
8 changes: 4 additions & 4 deletions modules/local/pixelator/single-cell/graph/main.nf
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
process PIXELATOR_GRAPH {
tag "$meta.id"
label 'process_medium'
label 'process_high'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(edge_list)
Expand Down
47 changes: 47 additions & 0 deletions modules/local/pixelator/single-cell/layout/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
process PIXELATOR_LAYOUT {
tag "$meta.id"
label 'process_medium'


conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(data)

output:
tuple val(meta), path("layout/*dataset.pxl") , emit: dataset
tuple val(meta), path("layout/*report.json") , emit: report_json
tuple val(meta), path("layout/*.meta.json") , emit: metadata
tuple val(meta), path("layout/*") , emit: all_results
tuple val(meta), path("*pixelator-layout.log"), emit: log

path "versions.yml" , emit: versions

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

script:

prefix = task.ext.prefix ?: "${meta.id}"
def args = task.ext.args ?: ''

"""
pixelator \\
--cores $task.cpus \\
--log-file ${prefix}.pixelator-layout.log \\
--verbose \\
single-cell \\
layout \\
--output . \\
$args \\
$data

cat <<-END_VERSIONS > versions.yml
"${task.process}":
pixelator: \$(echo \$(pixelator --version 2>/dev/null) | sed 's/pixelator, version //g' )
END_VERSIONS
"""
}
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/qc/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ process PIXELATOR_QC {
label 'process_medium'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(reads)
Expand Down
6 changes: 3 additions & 3 deletions modules/local/pixelator/single-cell/report/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ process PIXELATOR_REPORT {
label 'process_low'


conda "bioconda::pixelator=0.16.2"
conda "bioconda::pixelator=0.17.1"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/pixelator:0.16.2--pyhdfd78af_0' :
'biocontainers/pixelator:0.16.2--pyhdfd78af_0' }"
'https://depot.galaxyproject.org/singularity/pixelator:0.17.1--pyhdfd78af_0' :
'biocontainers/pixelator:0.17.1--pyhdfd78af_0' }"

input:
tuple val(meta), path(panel_file), val(panel)
Expand Down
10 changes: 8 additions & 2 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,22 @@ params {
compute_polarization = true
compute_colocalization = true
use_full_bipartite = false
polarization_normalization = "clr"
polarization_binarization = false
polarization_transformation = "log1p"
polarization_min_marker_count = 5
polarization_n_permutations = 50
colocalization_transformation = "log1p"
colocalization_neighbourhood_size = 1
colocalization_n_permutations = 50
colocalization_min_region_count = 5

// layout options
no_node_marker_counts = false
layout_algorithm = "pmds_3d"

// skip options
skip_report = false
skip_analysis = false
skip_layout = false

// Main pixelator container override
pixelator_container = null
Expand Down
48 changes: 38 additions & 10 deletions nextflow_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -256,21 +256,28 @@
"description": "Use the bipartite graph instead of the one-node projection when computing polarization, coabundance and colocalization scores",
"type": "boolean"
},
"polarization_normalization": {
"description": "Which approach to use to normalize the antibody counts.",
"help_text": "- `raw`: use the raw counts.\n- `CLR`: use the CLR-transformed counts.\n- `denoise`: use CLR-transformed counts and subtract the counts of control antibodies",
"polarization_transformation": {
"description": "Which transformation to use for the antibody counts when calculating polarity scores.",
"help_text": "- `raw`: use the raw counts.\n- `log1p`: use the log1p-transformed counts.\n",
"type": "string",
"enum": ["raw", "clr", "denoise"],
"default": "clr"
"enum": ["raw", "log1p"],
"default": "log1p"
},
"polarization_binarization": {
"fa_icon": "fas binary",
"description": "Transform the antibody counts to 0-1 (binarize) when computing polarization",
"type": "boolean"
"polarization_n_permutations": {
"type": "integer",
"description": "Set the number of permutations use to compute the empirical z- and p-values for the polarity score",
"default": 50,
"minimum": 5
},
"polarization_min_marker_count": {
"type": "integer",
"description": "The minimum number of counts of a marker to calculate the polarity score in the component",
"default": 5,
"minimum": 2
},
"colocalization_transformation": {
"type": "string",
"enum": ["raw", "clr", "log1p", "relative"],
"enum": ["raw", "log1p", "rate-diff"],
"default": "log1p",
"description": "Select the type of transformation to use on the node by antibody counts matrix when computing colocalization"
},
Expand All @@ -294,6 +301,27 @@
}
}
},
"layout_options": {
"title": "Options for pixelator layout command.",
"type": "object",
"properties": {
"skip_layout": {
"description": "Skip layout step",
"type": "boolean"
},
"no_node_marker_counts": {
"description": "Skip adding marker counts to the layout.",
"type": "boolean",
"default": false
},
"layout_algorithm": {
"description": "Select a layout algorithm to use. This can be specified as a comma separated list to compute multiple layouts. Possible values are: fruchterman_reingold, fruchterman_reingold_3d, kamada_kawai, kamada_kawai_3d, pmds, pmds_3d",
"type": "string",
"pattern": "(\\S+)?(,\\S+)*",
"default": "pmds_3d"
}
}
},
"report_options": {
"title": "Options for pixelator report command.",
"type": "object",
Expand Down
Loading
Loading