Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ template:
name: molkart
org: nf-core
outdir: .
version: 1.2.0dev
version: 1.2.0
5 changes: 1 addition & 4 deletions assets/multiqc_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ custom_logo_url: https://github.com/nf-core/molkart/
custom_logo_title: "nf-core/molkart"

report_comment: >
This report has been generated by the <a href="https://github.com/nf-core/molkart/tree/dev"
target="_blank">nf-core/molkart</a> analysis pipeline. For information about how
to interpret these results, please see the <a href="https://nf-co.re/molkart/dev/docs/output"
target="_blank">documentation</a>.
This report has been generated by the <a href="https://github.com/nf-core/molkart/releases/tag/1.2.0" target="_blank">nf-core/molkart</a> analysis pipeline. For information about how to interpret these results, please see the <a href="https://nf-co.re/molkart/1.2.0/docs/output" target="_blank">documentation</a>.
report_section_order:
segmentation_stats:
order: 800
Expand Down
5 changes: 1 addition & 4 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,6 @@ profiles {
}
arm64 {
process.arch = 'arm64'
// TODO https://github.com/nf-core/modules/issues/6694
// For now if you're using arm64 you have to use wave for the sake of the maintainers
// wave profile
apptainer.ociAutoPull = true
singularity.ociAutoPull = true
wave.enabled = true
Expand Down Expand Up @@ -291,7 +288,7 @@ manifest {
mainScript = 'main.nf'
defaultBranch = 'master'
nextflowVersion = '!>=25.04.0'
version = '1.2.0dev'
version = '1.2.0'
doi = 'https://doi.org/10.5281/zenodo.10650748'
}

Expand Down
24 changes: 12 additions & 12 deletions ro-crate-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
{
"@id": "./",
"@type": "Dataset",
"creativeWorkStatus": "InProgress",
"datePublished": "2025-10-16T13:38:38+00:00",
"creativeWorkStatus": "Stable",
"datePublished": "2025-10-26T18:00:32+00:00",
"description": "<h1>\n <picture>\n <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/images/nf-core-molkart_logo_dark.png\">\n <img alt=\"nf-core/molkart\" src=\"docs/images/nf-core-molkart_logo_light.png\">\n </picture>\n</h1>\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new/nf-core/molkart)\n[![GitHub Actions CI Status](https://github.com/nf-core/molkart/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/molkart/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/molkart/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/molkart/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/molkart/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.10650748-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.10650748)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.04.0-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-3.4.1-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/3.4.1)\n\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/molkart)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23molkart-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/molkart)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/molkart** is a pipeline for processing Molecular Cartography data from Resolve Bioscience (combinatorial FISH). It takes as input a table of FISH spot positions (x,y,z,gene), a corresponding DAPI image (`TIFF` format) and optionally an additional staining image in the `TIFF` format. nf-core/molkart performs end-to-end processing of the data including image processing, QC filtering of spots, cell segmentation, spot-to-cell assignment and reports quality metrics such as the spot assignment rate, average spots per cell and segmentation mask size ranges.\n\n<p align=\"center\">\n <img title=\"Molkart Workflow\" src=\"docs/images/molkart_workflow.png\" width=100%>\n</p>\n\nImage preprocessing\n\n- Fill the grid pattern in provided images ([`Mindagap`](https://github.com/ViriatoII/MindaGap))\n- Optionally apply contrast-limited adaptive histogram equalization\n- If a second (membrane) image is present, combine images into a multichannel stack (if required for segmentation)\n\nCell segmentation\n\n- Apply cell segmentation based on provided images, available options are: - [`Cellpose`](https://www.cellpose.org/) - [`Mesmer`](https://deepcell.readthedocs.io/en/master/API/deepcell.applications.html#mesmer) - [`ilastik`](https://www.ilastik.org/) - [`Stardist`](https://github.com/stardist/stardist)\n- Filter cells based on cell size to remove artifacts\n\nSpot processing\n\n- Find duplicated spots near grid lines ([`Mindagap`](https://github.com/ViriatoII/MindaGap))\n- Assign spots to segmented cells\n\nQuality control\n\n- Create quality-control metrics specific to this pipeline\n- provide them to ([`MultiQC`](http://multiqc.info/)) to create a report\n\n## Usage\n\n:::note\nIf you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/usage/installation) on how\nto set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/usage/introduction#how-to-run-a-pipeline)\nwith `-profile test` before running the workflow on actual data.\n:::\n\nFirst, prepare a samplesheet with your input data that looks as follows:\n\n`samplesheet.csv`:\n\n```csv\nsample,nuclear_image,spot_locations,membrane_image\nsample0,sample0_DAPI.tiff,sample0_spots.txt,sample0_WGA.tiff\n```\n\nEach row represents an FOV (field-of-view). Columns represent the sample ID (all must be unique), the path to the respective nuclear image, the spot table, and optionally the path to the respective membrane image (or any additional image to improve segmentation).\n\nNow, you can run the pipeline using all default values with:\n\n```bash\nnextflow run nf-core/molkart \\\n -profile <docker/singularity/.../institute> \\\n --input samplesheet.csv \\\n --outdir <OUTDIR>\n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/usage/getting_started/configuration#custom-configuration-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/molkart/usage) and the [parameter documentation](https://nf-co.re/molkart/parameters).\n\n## Pipeline output\n\nThe pipeline outputs a matched cell-by-transcript table based on deduplicated spots and segmented cells, as well as preprocessing and segmentation intermediaries.\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/molkart/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/molkart/output).\n\n## Credits\n\nnf-core/molkart was originally written by Kresimir Bestak, Florian Wuennemann.\n\nWe thank [Maxime U Garcia](https://github.com/maxulysse) for his assistance and support in the development of this pipeline.\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](.github/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#molkart` channel](https://nfcore.slack.com/channels/molkart) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\nIf you use nf-core/molkart for your analysis, please cite it using the following doi: [10.5281/zenodo.10650749](https://doi.org/10.5281/zenodo.10650749)\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n",
"hasPart": [
{
Expand Down Expand Up @@ -105,7 +105,7 @@
},
"mentions": [
{
"@id": "#5df3b29a-dab4-42f7-8eaf-08d6503be7ad"
"@id": "#42e6be1b-cc76-4b5b-a080-b187b3d8f677"
}
],
"name": "nf-core/molkart"
Expand Down Expand Up @@ -137,11 +137,11 @@
"@id": "#flowuenne@gmail.com"
},
{
"@id": "#kbestak@gmail.com"
"@id": "#86408271+kbestak@users.noreply.github.com"
}
],
"dateCreated": "",
"dateModified": "2025-10-16T13:38:38Z",
"dateModified": "2025-10-26T18:00:32Z",
"dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/",
"keywords": [
"nf-core",
Expand Down Expand Up @@ -169,10 +169,10 @@
},
"url": [
"https://github.com/nf-core/molkart",
"https://nf-co.re/molkart/dev/"
"https://nf-co.re/molkart/1.2.0/"
],
"version": [
"1.2.0dev"
"1.2.0"
]
},
{
Expand All @@ -188,11 +188,11 @@
"version": "!>=25.04.0"
},
{
"@id": "#5df3b29a-dab4-42f7-8eaf-08d6503be7ad",
"@id": "#42e6be1b-cc76-4b5b-a080-b187b3d8f677",
"@type": "TestSuite",
"instance": [
{
"@id": "#87079020-d198-48cf-bbbe-6f523267e2e9"
"@id": "#d4089106-d164-4be7-9821-0046ded862a6"
}
],
"mainEntity": {
Expand All @@ -201,7 +201,7 @@
"name": "Test suite for nf-core/molkart"
},
{
"@id": "#87079020-d198-48cf-bbbe-6f523267e2e9",
"@id": "#d4089106-d164-4be7-9821-0046ded862a6",
"@type": "TestInstance",
"name": "GitHub Actions workflow for testing nf-core/molkart",
"resource": "repos/nf-core/molkart/actions/workflows/nf-test.yml",
Expand Down Expand Up @@ -346,9 +346,9 @@
"name": "Florian Wuennemann"
},
{
"@id": "#kbestak@gmail.com",
"@id": "#86408271+kbestak@users.noreply.github.com",
"@type": "Person",
"email": "kbestak@gmail.com",
"email": "86408271+kbestak@users.noreply.github.com",
"name": "Kre\u0161imir Be\u0161tak"
}
]
Expand Down
4 changes: 2 additions & 2 deletions tests/default.nf.test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"tifffile": "2022.4.8"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -123,6 +123,6 @@
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T14:28:30.864747147"
"timestamp": "2025-10-26T22:59:02.887763208"
}
}
30 changes: 15 additions & 15 deletions tests/main.nf.test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"molkart_spot2cell": "0.1.0"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -107,7 +107,7 @@
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T14:24:54.225979124"
"timestamp": "2025-10-26T22:35:20.772225588"
},
"Two channels, stardist, mesmer, cellpose, clahe - stub": {
"content": [
Expand Down Expand Up @@ -150,7 +150,7 @@
"tifffile": "2022.4.8"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -214,7 +214,7 @@
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T14:26:31.741217039"
"timestamp": "2025-10-26T22:36:57.356349985"
},
"Nuclear channel, stardist, mesmer and cellpose, without clahe": {
"content": [
Expand Down Expand Up @@ -251,7 +251,7 @@
"tifffile": "2022.4.8"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -328,7 +328,7 @@
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T14:24:02.305513242"
"timestamp": "2025-10-26T22:34:16.345279697"
},
"Skip mindagap - clahe - cellpose": {
"content": [
Expand Down Expand Up @@ -356,7 +356,7 @@
"molkart_spot2cell": "0.1.0"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -411,7 +411,7 @@
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T14:25:40.562743911"
"timestamp": "2025-10-26T22:36:05.905295847"
},
"Create training subset": {
"content": [
Expand All @@ -433,7 +433,7 @@
"molkartqc": "0.1.0"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -471,10 +471,10 @@
]
],
"meta": {
"nf-test": "0.9.2",
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-10-26T12:34:56.873043294"
"timestamp": "2025-10-26T22:36:29.896471646"
},
"Create training subset - stub": {
"content": [
Expand All @@ -499,7 +499,7 @@
"molkartqc": "0.1.0"
},
"Workflow": {
"nf-core/molkart": "v1.2.0dev"
"nf-core/molkart": "v1.2.0"
}
},
[
Expand Down Expand Up @@ -536,9 +536,9 @@
]
],
"meta": {
"nf-test": "0.9.2",
"nextflow": "24.10.5"
"nf-test": "0.9.3",
"nextflow": "25.04.6"
},
"timestamp": "2025-04-01T15:44:02.134133452"
"timestamp": "2025-10-26T22:37:15.75294997"
}
}