From 7be95e0274658562e82767d644ca87ebc449fa3b Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 11:46:57 -0600 Subject: [PATCH 1/6] minor fixes to tighten --- assets/css/custom.css | 33 +++++++++ content/about/_index.md | 8 +-- content/contact/_index.md | 4 +- content/experimental/buscar.md | 6 +- content/experimental/iceberg-bioimage.md | 5 +- content/experimental/ome-arrow.md | 5 +- content/experimental/zedprofiler.md | 4 ++ content/media/_index.md | 12 ++-- content/people/_index.md | 28 +++++++- content/tools/copairs.md | 3 +- content/tools/cosmicqc.md | 7 +- content/tools/cytodataframe.md | 3 + content/tools/cytotable.md | 9 ++- content/tools/deepprofiler.md | 7 +- content/tools/pycytominer.md | 5 +- layouts/_partials/article-link.html | 87 +++++++++++++++--------- layouts/_partials/tool-badges.html | 26 +++++-- layouts/index.html | 1 + layouts/shortcodes/github-button.html | 9 +++ 19 files changed, 197 insertions(+), 65 deletions(-) create mode 100644 layouts/shortcodes/github-button.html diff --git a/assets/css/custom.css b/assets/css/custom.css index be36570..7cba22d 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -138,6 +138,39 @@ html.dark .hero-btn-primary { background: #3b82f6 !important; } html.dark .hero-btn-outline { border-color: #374151 !important; color: #d1d5db !important; } html.dark .hero-secondary-link { color: #6b7280 !important; border-bottom-color: #374151 !important; } +/* Inline code: remove Congo's visible backtick pseudo-elements, style like standard markdown */ +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before, +.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { + content: "" !important; +} +.prose :where(code):not(:where(pre *, [class~="not-prose"], [class~="not-prose"] *)) { + background: #f3f4f6; + color: #374151; + padding: 0.15em 0.4em; + border-radius: 3px; + font-weight: 400; + font-size: 0.875em; +} +html.dark .prose :where(code):not(:where(pre *, [class~="not-prose"], [class~="not-prose"] *)) { + background: #374151; + color: #e5e7eb; +} + +/* Publication card dark mode */ +html.dark .publication-card { + background: #1f2937 !important; + border-color: #374151 !important; +} +html.dark .publication-card p[style*="color: #374151"] { + color: #e5e7eb !important; +} +html.dark .publication-card p[style*="color: #6b7280"] { + color: #9ca3af !important; +} +html.dark .publication-card a { + color: #93c5fd !important; +} + /* Header breakpoint override: Use hamburger menu up to 900px (instead of Congo's default 640px). */ @media (max-width: 900px) { diff --git a/content/about/_index.md b/content/about/_index.md index 5a695ce..d9a90fc 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -13,7 +13,7 @@ Experimental and emerging tools are developed under the [WayScience GitHub organ ## Impact Cytomining tools have been adopted across academia and industry for large-scale drug discovery and functional genomics. -`Pycytominer` underpins some of the largest publicly available image-based profiling datasets, including the [JUMP Cell Painting dataset](https://jump-cellpainting.broadinstitute.org/) (over 136,000 chemical and genetic perturbations profiled across 12 partner sites) the [LINCS Drug Repurposing](https://github.com/broadinstitute/lincs-cell-painting) Cell Painting dataset, and the [EU-OPENSCREEN](https://www.eu-openscreen.eu/) Bioactive Compound Set profiled across multiple imaging sites. +[`Pycytominer`](/tools/pycytominer/) underpins some of the largest publicly available image-based profiling datasets, including the [JUMP Cell Painting dataset](https://jump-cellpainting.broadinstitute.org/) (over 136,000 chemical and genetic perturbations profiled across 12 partner sites) the [LINCS Drug Repurposing](https://github.com/broadinstitute/lincs-cell-painting) Cell Painting dataset, and the [EU-OPENSCREEN](https://www.eu-openscreen.eu/) Bioactive Compound Set profiled across multiple imaging sites. It has also processed many of the 31+ datasets in the [Cell Painting Gallery](https://broadinstitute.github.io/cellpainting-gallery/). The foundational [Caicedo et al. 2017](https://doi.org/10.1038/nmeth.4397) review has accumulated over 670 citations, and individual tool papers have together been cited more than 150 times since 2024. @@ -21,15 +21,15 @@ Packages are downloaded thousands of times per month via [PyPI] download statist ## History -The ecosystem traces its roots to the [Imaging Platform](https://www.broadinstitute.org/imaging) at the Broad Institute, where early contributors including Anne Carpenter, Shantanu Singh, Allen Goodman, and others developed `cytominer`, an R package for processing high-content imaging data. +The ecosystem traces its roots to the [Imaging Platform](https://www.broadinstitute.org/imaging) at the Broad Institute, where early contributors including Anne Carpenter, Shantanu Singh, Allen Goodman, and others developed [`cytominer`](https://github.com/cytomining/cytominer), an R package for processing high-content imaging data. In 2016, members of this community co-founded the [CytoData Society](https://www.cytodata.org/) to unite researchers across academia and industry around image-based profiling. The following year, the team contributed the landmark [Caicedo et al. 2017](https://doi.org/10.1038/nmeth.4397) review in _Nature Methods_ that established the field's foundational analysis standards. -Since 2021, the [Way Lab](https://www.waysciencelab.com/) has driven a major expansion of the ecosystem โ€” migrating from R to Python with `Pycytominer` and building a modern infrastructure stack including `CytoTable` and `coSMicQC`. +Since 2021, the [Way Lab](https://www.waysciencelab.com/) has driven a major expansion of the ecosystem โ€” migrating from R to Python with [`Pycytominer`](/tools/pycytominer/) and building a modern infrastructure stack including [`CytoTable`](/tools/cytotable/) and [`coSMicQC`](/tools/cosmicqc/). In 2026, members of the CytoData community published an updated review, [Serrano et al.](https://doi.org/10.1038/s44320-026-00197-7) in _Molecular Systems Biology_, surveying progress and new challenges in image-based profiling. Today, Cytomining tools are used by research groups worldwide for drug discovery, functional genomics, and cell biology. ## Community -We are proud members of the [CytoData](https://www.cytodata.org/) community, which hosts an annual symposium bringing together researchers and developers working on image-based profiling. +We are proud members of the [CytoData](https://www.cytodata.org/) community and the [CytoData Society](https://www.cytodata.org/about/), which hosts an annual symposium bringing together researchers and developers working on image-based profiling. diff --git a/content/contact/_index.md b/content/contact/_index.md index deb0aaa..b069a78 100644 --- a/content/contact/_index.md +++ b/content/contact/_index.md @@ -3,6 +3,8 @@ title: Contact description: Get in touch with the Cytomining community. --- -- ๐Ÿ’ฌ Join the conversation on our [Discourse forums](https://forum.image.sc/) +- ๐ŸŽฎ Join us on [Discord](https://discord.gg/dgEDz6xzfJ) +- ๐Ÿ’ฌ Ask a question at [image.sc](https://forum.image.sc/) - ๐Ÿ“ซ Subscribe to the [CytoData mailing list](https://www.cytodata.org/contact/) +- ๐Ÿ”ฌ Join the [SBI2 community](https://sbi2.org/) - ๐Ÿ› Report issues on [GitHub](https://github.com/cytomining) diff --git a/content/experimental/buscar.md b/content/experimental/buscar.md index 1d8b577..f53a25d 100644 --- a/content/experimental/buscar.md +++ b/content/experimental/buscar.md @@ -8,11 +8,14 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/buscar/main/logo/just-ico githubRepo: "WayScience/buscar" --- + buscar logo buscar logo + {{< tool-badges >}} + `buscar` scores perturbations directly on single-cell distributions using Earth Mover's Distance, preserving heterogeneity throughout hit calling. **Problem:** Population-level hit calling averages away biologically meaningful cell-to-cell variation, making heterogeneous responses and rare subpopulations invisible to standard metrics. @@ -23,6 +26,7 @@ githubRepo: "WayScience/buscar" - Score perturbation efficacy via Earth Mover's Distance - Assess specificity with off-target scoring to reduce false positives - Preserve single-cell heterogeneity throughout hit calling -- Integrates directly with `Pycytominer`, `coSMicQC`, and `CytoTable` workflows +- Integrates directly with [`Pycytominer`](/tools/pycytominer/), [`coSMicQC`](/tools/cosmicqc/), and [`CytoTable`](/tools/cytotable/) workflows **[View on GitHub โ†’](https://github.com/WayScience/buscar)** + diff --git a/content/experimental/iceberg-bioimage.md b/content/experimental/iceberg-bioimage.md index ef08100..050ef44 100644 --- a/content/experimental/iceberg-bioimage.md +++ b/content/experimental/iceberg-bioimage.md @@ -8,10 +8,13 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/iceberg-bioimage/main/doc githubRepo: "WayScience/iceberg-bioimage" --- + iceberg-bioimage logo + {{< tool-badges >}} + `iceberg-bioimage` scans any image store into a versioned Apache Iceberg catalog that directly exports Cytomining-compatible Parquet warehouses. **Problem:** Raw bioimaging archives have no standard catalog โ€” finding, versioning, and joining images to downstream data requires bespoke scripts per lab. @@ -24,4 +27,4 @@ githubRepo: "WayScience/iceberg-bioimage" - Validate profile tables against microscopy join contracts - Supports Zarr, OME-TIFF, and Parquet source formats -**[View documentation โ†’](https://wayscience.github.io/iceberg-bioimage/)** ยท **[View on GitHub โ†’](https://github.com/WayScience/iceberg-bioimage)** +**[View documentation โ†’](https://wayscience.github.io/iceberg-bioimage/)** diff --git a/content/experimental/ome-arrow.md b/content/experimental/ome-arrow.md index f94a945..92d10f1 100644 --- a/content/experimental/ome-arrow.md +++ b/content/experimental/ome-arrow.md @@ -8,10 +8,13 @@ logoUrl: "https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_ githubRepo: "WayScience/OME-arrow" --- + OME-arrow logo + {{< tool-badges >}} + `OME-arrow` embeds images as first-class columns in Apache Arrow tables, so features, metadata, and pixel data travel together and can be queried or exported as tensors. **Problem:** Images and feature tables live in separate systems โ€” linking a numeric outlier back to its source cell requires error-prone manual joins across formats. @@ -24,4 +27,4 @@ githubRepo: "WayScience/OME-arrow" - Tensor-focused output compatible with PyTorch, JAX, and DLPack - Visualization integrations for matplotlib, PyVista, and Napari -**[View documentation โ†’](https://wayscience.github.io/ome-arrow/)** ยท **[View on GitHub โ†’](https://github.com/WayScience/OME-arrow)** +**[View documentation โ†’](https://wayscience.github.io/ome-arrow/)** diff --git a/content/experimental/zedprofiler.md b/content/experimental/zedprofiler.md index 82a43da..7f1ccd9 100644 --- a/content/experimental/zedprofiler.md +++ b/content/experimental/zedprofiler.md @@ -8,11 +8,14 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/ZedProfiler/main/logo/log githubRepo: "WayScience/zedprofiler" --- + ZEDprofiler logo ZEDprofiler logo + {{< tool-badges >}} + `ZEDprofiler` extracts morphological features directly from 3D volumetric images, including anisotropic voxel spacing correction โ€” no GPU required. **Problem:** Classical profiling tools extract only 2D features, leaving organoid, cleared-tissue, and z-stack experiments without a CPU-efficient extractor. @@ -26,3 +29,4 @@ githubRepo: "WayScience/zedprofiler" - CPU-optimized for high-throughput processing without GPU dependency **[View on GitHub โ†’](https://github.com/WayScience/zedprofiler)** + diff --git a/content/media/_index.md b/content/media/_index.md index 8f829d1..5acdf20 100644 --- a/content/media/_index.md +++ b/content/media/_index.md @@ -42,24 +42,24 @@ showAuthor: false #### Peer-reviewed -- **CytoTable ([tool page](https://cytomining.github.io/tools/cytotable/)):** Bunten, D. et al. Scalable data harmonization for single-cell image-based profiling with CytoTable. +- **CytoTable ([tool page](https://cytomining.github.io/tools/cytotable/) ยท [GitHub](https://github.com/cytomining/CytoTable)):** Bunten, D. et al. Scalable data harmonization for single-cell image-based profiling with CytoTable. *Patterns* **7**, 101514 (2026). [doi:10.1016/j.patter.2026.101514](https://doi.org/10.1016/j.patter.2026.101514) -- **Pycytominer ([tool page](https://cytomining.github.io/tools/pycytominer/)):** Serrano, E. et al. Reproducible image-based profiling with Pycytominer. +- **Pycytominer ([tool page](https://cytomining.github.io/tools/pycytominer/) ยท [GitHub](https://github.com/cytomining/pycytominer)):** Serrano, E. et al. Reproducible image-based profiling with Pycytominer. *Nat. Methods* **22**, 677โ€“680 (2025). [doi:10.1038/s41592-025-02611-8](https://doi.org/10.1038/s41592-025-02611-8) -- **copairs ([tool page](https://cytomining.github.io/tools/copairs/)):** Kalinin, A.A. et al. A versatile information retrieval framework for evaluating profile strength and similarity. +- **copairs ([tool page](https://cytomining.github.io/tools/copairs/) ยท [GitHub](https://github.com/cytomining/copairs)):** Kalinin, A.A. et al. A versatile information retrieval framework for evaluating profile strength and similarity. *Nat. Commun.* **16**, 5181 (2025). [doi:10.1038/s41467-025-60306-2](https://doi.org/10.1038/s41467-025-60306-2) -- **DeepProfiler ([tool page](https://cytomining.github.io/tools/deepprofiler/)):** Moshkov, N. et al. Learning representations for image-based profiling of perturbations. +- **DeepProfiler ([tool page](https://cytomining.github.io/tools/deepprofiler/) ยท [GitHub](https://github.com/cytomining/DeepProfiler)):** Moshkov, N. et al. Learning representations for image-based profiling of perturbations. *Nat. Commun.* **15**, 1594 (2024). [doi:10.1038/s41467-024-45999-1](https://doi.org/10.1038/s41467-024-45999-1) #### Preprints -- **buscar ([tool page](https://cytomining.github.io/experimental/buscar/)):** Serrano, E., Li, W.S. & Way, G.P. Single-cell hit calling in high-content imaging screens with Buscar. +- **buscar ([tool page](https://cytomining.github.io/experimental/buscar/) ยท [GitHub](https://github.com/WayScience/buscar)):** Serrano, E., Li, W.S. & Way, G.P. Single-cell hit calling in high-content imaging screens with Buscar. *bioRxiv* (2026). [doi:10.64898/2026.04.15.718737](https://doi.org/10.64898/2026.04.15.718737) -- **coSMicQC ([tool page](https://cytomining.github.io/tools/cosmicqc/)):** Tomkinson, J. et al. Stellar quality control for single-cell image-based profiling with coSMicQC. +- **coSMicQC ([tool page](https://cytomining.github.io/tools/cosmicqc/) ยท [GitHub](https://github.com/cytomining/coSMicQC)):** Tomkinson, J. et al. Stellar quality control for single-cell image-based profiling with coSMicQC. *bioRxiv* (2025). [doi:10.1101/2025.10.14.682427](https://doi.org/10.1101/2025.10.14.682427) diff --git a/content/people/_index.md b/content/people/_index.md index 51fac0a..154a3f2 100644 --- a/content/people/_index.md +++ b/content/people/_index.md @@ -19,9 +19,9 @@ We welcome issues, bug reports, documentation improvements, and pull requests fr ## Governance Cytomining uses a lightweight governance model centered on maintainers and public decision-making. -We keep policy concise and bias toward transparent, repository-native workflows over heavy process. +We keep policy concise and transparent. -- **Stewardship:** Repositories are maintained by designated maintainers in the `Cytomining` organization. +- **Stewardship:** Repositories are maintained by designated maintainers in the [`Cytomining`](https://github.com/cytomining) organization. - **Decision-making:** Day-to-day technical decisions happen in public issues, pull requests, and our public [Discord](https://discord.gg/dgEDz6xzfJ). - **Consensus first:** Maintainers seek rough consensus from active contributors before merging impactful changes. - **Escalation path:** When consensus is unclear, maintainers make a final call, document rationale, and revisit with new evidence. @@ -31,6 +31,30 @@ We keep policy concise and bias toward transparent, repository-native workflows This reflects how the organization operates today and is intentionally compact so contributors can understand how decisions get made without navigating a large policy surface. +### Organizational structure + +The Cytomining ecosystem spans two GitHub organizations with distinct roles. + +The [**cytomining**](https://github.com/cytomining) organization hosts production-ready tools that have reached stable APIs, published documentation, test coverage, and community adoption. +Tools here are maintained collaboratively by contributors from the [Way Lab](https://www.waysciencelab.com/) at the University of Colorado Anschutz and the broader image-based profiling community. + +The [**WayScience**](https://github.com/WayScience) organization serves as an incubator for next-generation tools under active development. +It is the primary home for roadmap work: tools here are experimental, may have unstable APIs, and have not yet graduated into [`cytomining`](https://github.com/cytomining). + +The two organizations are complementary. +[`WayScience`](https://github.com/WayScience) is where new ideas are prototyped and validated; [`cytomining`](https://github.com/cytomining) is where they become community infrastructure. +Core production tools ([`Pycytominer`](/tools/pycytominer/), [`CytoTable`](/tools/cytotable/), [`coSMicQC`](/tools/cosmicqc/), [`copairs`](/tools/copairs/), [`DeepProfiler`](/tools/deepprofiler/), [`CytoDataFrame`](/tools/cytodataframe/)) live in [`cytomining`](https://github.com/cytomining). +Roadmap tools ([`buscar`](/experimental/buscar/), [`OME-arrow`](/experimental/ome-arrow/), [`iceberg-bioimage`](/experimental/iceberg-bioimage/), [`ZEDprofiler`](/experimental/zedprofiler/)) live in [`WayScience`](https://github.com/WayScience) until they are ready to graduate. + +### Graduation process + +A tool is considered ready to migrate from [`WayScience`](https://github.com/WayScience) into [`cytomining`](https://github.com/cytomining) when it meets the following criteria: + +- **Stable API** โ€” no breaking changes anticipated in the near term; a versioned release has been tagged +- **Documentation** โ€” a published documentation site covering installation, usage, and API reference +- **Test coverage** โ€” a CI-passing test suite with meaningful coverage of core functionality +- **Publication or preprint** โ€” a citable reference describing the tool's design and validation + ## Code of Conduct Participation in Cytomining spaces is expected to follow the organization-wide Code of Conduct: diff --git a/content/tools/copairs.md b/content/tools/copairs.md index 8845d46..bd360e9 100644 --- a/content/tools/copairs.md +++ b/content/tools/copairs.md @@ -9,6 +9,7 @@ githubRepo: cytomining/copairs {{< tool-badges >}} + `copairs` is a Python package for evaluating the quality of morphology profiles by measuring how well a perturbation's profile can be retrieved relative to controls. It implements mean Average Precision (mAP) and related metrics widely used in the image-based profiling community. @@ -23,7 +24,7 @@ It implements mean Average Precision (mAP) and related metrics widely used in th ## Publication -
+
Nature Communications ยท 2025
diff --git a/content/tools/cosmicqc.md b/content/tools/cosmicqc.md index 6e1db91..2fdffe1 100644 --- a/content/tools/cosmicqc.md +++ b/content/tools/cosmicqc.md @@ -8,11 +8,14 @@ pypiPackage: cosmicqc githubRepo: cytomining/coSMicQC --- + coSMicQC logo coSMicQC logo + {{< tool-badges >}} + `coSMicQC` (Single-cell Morphology Quality Control) identifies and removes low-quality cells from image-based profiling datasets before downstream analysis. It catches common problems such as over-segmented nuclei, poorly segmented cells, and imaging artifacts. @@ -21,13 +24,13 @@ It catches common problems such as over-segmented nuclei, poorly segmented cells - Flag over-segmented, under-segmented, and poorly focused cells - Apply threshold-based or z-score-based QC criteria - Generate summary reports of QC outcomes -- Integrate seamlessly with `CytoTable` and `Pycytominer` workflows +- Integrate seamlessly with [`CytoTable`](/tools/cytotable/) and [`Pycytominer`](/tools/pycytominer/) workflows **[View documentation โ†’](https://cytomining.github.io/coSMicQC/)** ## Publication -
+
bioRxiv Preprint ยท 2025
diff --git a/content/tools/cytodataframe.md b/content/tools/cytodataframe.md index 50ac204..26f03dc 100644 --- a/content/tools/cytodataframe.md +++ b/content/tools/cytodataframe.md @@ -8,11 +8,14 @@ pypiPackage: cytodataframe githubRepo: cytomining/CytoDataFrame --- + CytoDataFrame logo CytoDataFrame logo + {{< tool-badges >}} + `CytoDataFrame` extends the familiar pandas DataFrame interface to let researchers view and analyze single-cell morphology profiles alongside their corresponding microscopy images and segmentation masks โ€” all within a Jupyter notebook. **Key capabilities:** diff --git a/content/tools/cytotable.md b/content/tools/cytotable.md index 6caf4e3..a0da42d 100644 --- a/content/tools/cytotable.md +++ b/content/tools/cytotable.md @@ -8,12 +8,15 @@ pypiPackage: cytotable githubRepo: cytomining/CytoTable --- + CytoTable logo CytoTable logo + {{< tool-badges >}} -`CytoTable` harmonizes output from different high-content image analysis tools โ€” including CellProfiler, `DeepProfiler`, and IN Carta โ€” into a single, analysis-ready format. + +`CytoTable` harmonizes output from different high-content image analysis tools โ€” including CellProfiler, [`DeepProfiler`](/tools/deepprofiler/), and IN Carta โ€” into a single, analysis-ready format. It scales to large datasets using Apache Parquet, DuckDB, and Parsl under the hood. **Key capabilities:** @@ -21,13 +24,13 @@ It scales to large datasets using Apache Parquet, DuckDB, and Parsl under the ho - Convert CellProfiler SQLite, CSV, and other formats into Parquet - Harmonize schema differences across analysis tools - Scale to datasets with millions of single cells -- Produce outputs compatible with `Pycytominer` and AnnData workflows +- Produce outputs compatible with [`Pycytominer`](/tools/pycytominer/) and AnnData workflows **[View documentation โ†’](https://cytomining.github.io/CytoTable/)** ## Publication -
+
Patterns (Cell Press) ยท 2026
diff --git a/content/tools/deepprofiler.md b/content/tools/deepprofiler.md index 66711b6..3d32efa 100644 --- a/content/tools/deepprofiler.md +++ b/content/tools/deepprofiler.md @@ -6,10 +6,13 @@ showAuthor: false githubRepo: cytomining/DeepProfiler --- + DeepProfiler logo + {{< tool-badges >}} + `DeepProfiler` uses deep neural networks to extract morphological features directly from raw microscopy images, bypassing traditional segmentation-and-measurement pipelines. It is designed for high-throughput screens where deep learning representations outperform classical feature sets. @@ -18,13 +21,13 @@ It is designed for high-throughput screens where deep learning representations o - Train and apply convolutional neural networks for feature extraction - Support for EfficientNet, ResNet, and custom architectures - Crop and embed single cells from large microscopy images -- Produce embeddings compatible with `Pycytominer` and downstream profiling workflows +- Produce embeddings compatible with [`Pycytominer`](/tools/pycytominer/) and downstream profiling workflows **[View on GitHub โ†’](https://github.com/cytomining/DeepProfiler)** ## Publication -
+
Nature Communications ยท 2024
diff --git a/content/tools/pycytominer.md b/content/tools/pycytominer.md index 3e3b7aa..b72e3bd 100644 --- a/content/tools/pycytominer.md +++ b/content/tools/pycytominer.md @@ -8,11 +8,14 @@ pypiPackage: pycytominer githubRepo: cytomining/pycytominer --- + Pycytominer logo Pycytominer logo + {{< tool-badges >}} + `Pycytominer` is the core Python package in the Cytomining ecosystem. It provides a clean, composable API for processing single-cell morphology profiles produced by tools like CellProfiler. @@ -28,7 +31,7 @@ It provides a clean, composable API for processing single-cell morphology profil ## Publication -
+
Nature Methods ยท 2025
diff --git a/layouts/_partials/article-link.html b/layouts/_partials/article-link.html index 5c144b7..0f68b2d 100644 --- a/layouts/_partials/article-link.html +++ b/layouts/_partials/article-link.html @@ -31,42 +31,63 @@
{{- end }}
-

- {{/* Inline icon before title */}} - {{ with .Params.logoUrl }} - {{ $.Title }} icon - {{ end }} - {{ with .Params.externalUrl }} -
+

+ {{/* Left side: icon + title */}} + + {{ with .Params.logoUrl }} + {{ with $.Params.githubRepo }} + + {{ $.Title }} icon + + {{ else }} + {{ $.Title }} icon + {{ end }} + {{ end }} + {{ with .Params.externalUrl }} +
+ {{ $.Title | emojify }} + + + + +
+ {{ else }} {{ $.Title | emojify }} - {{ .Title | emojify }} - - - -

- {{ else }} - {{ .Title | emojify }} - {{ end }} - {{ if and .Draft .Site.Params.article.showDraftLabel }} -
- {{ partial "badge.html" (i18n "article.draft" | emojify) }} -
- {{ end }} - {{ if templates.Exists "_partials/extend-article-link.html" }} - {{ partial "extend-article-link.html" . }} + {{ end }} + {{ if and .Draft .Site.Params.article.showDraftLabel }} +
+ {{ partial "badge.html" (i18n "article.draft" | emojify) }} +
+ {{ end }} + {{ if templates.Exists "_partials/extend-article-link.html" }} + {{ partial "extend-article-link.html" . }} + {{ end }} + + {{/* Right side: PyPI version + stars badge */}} + {{ if or .Params.pypiPackage .Params.githubRepo }} + + {{ with .Params.pypiPackage }} + PyPI version for {{ . }} + {{ end }} + {{ with .Params.githubRepo }} + + GitHub stars for {{ . }} + + {{ end }} + {{ end }}

{{ partial "tool-badges.html" (dict "page" . "scope" "list") }} diff --git a/layouts/_partials/tool-badges.html b/layouts/_partials/tool-badges.html index 6cc4590..c1e63f1 100644 --- a/layouts/_partials/tool-badges.html +++ b/layouts/_partials/tool-badges.html @@ -8,21 +8,33 @@ {{- $isExperimental := eq $page.Section "experimental" -}} {{- if and (or $isTools $isExperimental) (or $page.Params.pypiPackage $page.Params.githubRepo) -}}
- {{- if $isTools -}} + {{- if and $isTools (ne $scope "list") -}} {{- with $page.Params.pypiPackage -}} - PyPI version for {{ . }} + + PyPI version for {{ . }} + {{- end -}} {{- end -}} - {{- with $page.Params.githubRepo -}} - GitHub stars for {{ . }} + {{- if ne $scope "list" -}} + {{- with $page.Params.githubRepo -}} + + GitHub stars for {{ . }} + + {{- end -}} {{- end -}} {{- if and $isTools (ne $scope "list") -}} {{- with $page.Params.pypiPackage -}} - PyPI monthly downloads for {{ . }} - Total downloads for {{ . }} + + PyPI monthly downloads for {{ . }} + + + Total downloads for {{ . }} + {{- end -}} {{- with $page.Params.githubRepo -}} - GitHub forks for {{ . }} + + GitHub forks for {{ . }} + {{- end -}} {{- end -}}
diff --git a/layouts/index.html b/layouts/index.html index 67d6b58..ea43dff 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -58,6 +58,7 @@

image.sc forum Contributors CytoData community + SBI2

diff --git a/layouts/shortcodes/github-button.html b/layouts/shortcodes/github-button.html new file mode 100644 index 0000000..88eb926 --- /dev/null +++ b/layouts/shortcodes/github-button.html @@ -0,0 +1,9 @@ +{{- $repo := .Page.Params.githubRepo -}} +{{- with $repo -}} + + + View on GitHub + +{{- end -}} From 9a298b605433a16fab79066e66880d05bee49b4b Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 11:49:59 -0600 Subject: [PATCH 2/6] remove old file --- layouts/shortcodes/github-button.html | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 layouts/shortcodes/github-button.html diff --git a/layouts/shortcodes/github-button.html b/layouts/shortcodes/github-button.html deleted file mode 100644 index 88eb926..0000000 --- a/layouts/shortcodes/github-button.html +++ /dev/null @@ -1,9 +0,0 @@ -{{- $repo := .Page.Params.githubRepo -}} -{{- with $repo -}} - - - View on GitHub - -{{- end -}} From 5d78bb967fb28ba5561767b9828ab52435956549 Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 11:53:59 -0600 Subject: [PATCH 3/6] add view on github --- content/experimental/iceberg-bioimage.md | 2 +- content/experimental/ome-arrow.md | 2 +- content/tools/copairs.md | 2 +- content/tools/cosmicqc.md | 2 +- content/tools/cytodataframe.md | 2 +- content/tools/cytotable.md | 2 +- content/tools/pycytominer.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/content/experimental/iceberg-bioimage.md b/content/experimental/iceberg-bioimage.md index 050ef44..0b366cc 100644 --- a/content/experimental/iceberg-bioimage.md +++ b/content/experimental/iceberg-bioimage.md @@ -27,4 +27,4 @@ githubRepo: "WayScience/iceberg-bioimage" - Validate profile tables against microscopy join contracts - Supports Zarr, OME-TIFF, and Parquet source formats -**[View documentation โ†’](https://wayscience.github.io/iceberg-bioimage/)** +**[View documentation โ†’](https://wayscience.github.io/iceberg-bioimage/)** ยท **[View on GitHub โ†’](https://github.com/WayScience/iceberg-bioimage)** diff --git a/content/experimental/ome-arrow.md b/content/experimental/ome-arrow.md index 92d10f1..43c8b60 100644 --- a/content/experimental/ome-arrow.md +++ b/content/experimental/ome-arrow.md @@ -27,4 +27,4 @@ githubRepo: "WayScience/OME-arrow" - Tensor-focused output compatible with PyTorch, JAX, and DLPack - Visualization integrations for matplotlib, PyVista, and Napari -**[View documentation โ†’](https://wayscience.github.io/ome-arrow/)** +**[View documentation โ†’](https://wayscience.github.io/ome-arrow/)** ยท **[View on GitHub โ†’](https://github.com/WayScience/OME-arrow)** diff --git a/content/tools/copairs.md b/content/tools/copairs.md index bd360e9..0d20af4 100644 --- a/content/tools/copairs.md +++ b/content/tools/copairs.md @@ -20,7 +20,7 @@ It implements mean Average Precision (mAP) and related metrics widely used in th - Evaluate intra- vs. inter-group morphological similarity - Scale efficiently to large screening datasets -**[View documentation โ†’](https://cytomining.github.io/copairs/)** +**[View documentation โ†’](https://cytomining.github.io/copairs/)** ยท **[View on GitHub โ†’](https://github.com/cytomining/copairs)** ## Publication diff --git a/content/tools/cosmicqc.md b/content/tools/cosmicqc.md index 2fdffe1..a43036e 100644 --- a/content/tools/cosmicqc.md +++ b/content/tools/cosmicqc.md @@ -26,7 +26,7 @@ It catches common problems such as over-segmented nuclei, poorly segmented cells - Generate summary reports of QC outcomes - Integrate seamlessly with [`CytoTable`](/tools/cytotable/) and [`Pycytominer`](/tools/pycytominer/) workflows -**[View documentation โ†’](https://cytomining.github.io/coSMicQC/)** +**[View documentation โ†’](https://cytomining.github.io/coSMicQC/)** ยท **[View on GitHub โ†’](https://github.com/cytomining/coSMicQC)** ## Publication diff --git a/content/tools/cytodataframe.md b/content/tools/cytodataframe.md index 26f03dc..c5ccd21 100644 --- a/content/tools/cytodataframe.md +++ b/content/tools/cytodataframe.md @@ -25,4 +25,4 @@ githubRepo: cytomining/CytoDataFrame - Overlay segmentation masks for quality inspection - Built on top of pandas for full compatibility with existing workflows -**[View documentation โ†’](https://cytomining.github.io/CytoDataFrame/)** +**[View documentation โ†’](https://cytomining.github.io/CytoDataFrame/)** ยท **[View on GitHub โ†’](https://github.com/cytomining/CytoDataFrame)** diff --git a/content/tools/cytotable.md b/content/tools/cytotable.md index a0da42d..5bbf532 100644 --- a/content/tools/cytotable.md +++ b/content/tools/cytotable.md @@ -26,7 +26,7 @@ It scales to large datasets using Apache Parquet, DuckDB, and Parsl under the ho - Scale to datasets with millions of single cells - Produce outputs compatible with [`Pycytominer`](/tools/pycytominer/) and AnnData workflows -**[View documentation โ†’](https://cytomining.github.io/CytoTable/)** +**[View documentation โ†’](https://cytomining.github.io/CytoTable/)** ยท **[View on GitHub โ†’](https://github.com/cytomining/CytoTable)** ## Publication diff --git a/content/tools/pycytominer.md b/content/tools/pycytominer.md index b72e3bd..53fe4c1 100644 --- a/content/tools/pycytominer.md +++ b/content/tools/pycytominer.md @@ -27,7 +27,7 @@ It provides a clean, composable API for processing single-cell morphology profil - Select high-quality features and remove noise - Output analysis-ready profiles in standard formats -**[View documentation โ†’](https://pycytominer.readthedocs.io/)** +**[View documentation โ†’](https://pycytominer.readthedocs.io/)** ยท **[View on GitHub โ†’](https://github.com/cytomining/pycytominer)** ## Publication From 4b1a84a06b1b243ab92cb21c455bc76f735f2345 Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 15:17:49 -0600 Subject: [PATCH 4/6] respond to comments and pass check --- .github/workflows/link-check.yaml | 1 + content/about/_index.md | 8 ++++---- content/experimental/buscar.md | 1 - content/experimental/zedprofiler.md | 1 - content/people/_index.md | 13 +++++++------ 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/link-check.yaml b/.github/workflows/link-check.yaml index 4409876..6f11bb6 100644 --- a/.github/workflows/link-check.yaml +++ b/.github/workflows/link-check.yaml @@ -20,6 +20,7 @@ jobs: --verbose --no-progress --exclude-path node_modules + --exclude "^/" --exclude "^https://forum\\.image\\.sc/" --exclude "^https://www\\.broadinstitute\\.org/" --exclude "^https://www\\.eu-openscreen\\.eu/" diff --git a/content/about/_index.md b/content/about/_index.md index d9a90fc..4a9743d 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -7,7 +7,7 @@ showAuthor: false Cytomining is an open-source software ecosystem for single-cell image-based profiling โ€” the practice of measuring thousands of cell morphology features from microscopy images to understand how cells respond to genetic, chemical, or environmental perturbations. -Core tools are maintained under the [cytomining GitHub organization](https://github.com/cytomining) by [contributors](https://github.com/orgs/cytomining/people) from the [Way Lab](https://www.waysciencelab.com/) at the University of Colorado Anschutz Medical Campus and beyond. +Core tools are maintained under the [Cytomining GitHub organization](https://github.com/cytomining) by [contributors](https://github.com/orgs/cytomining/people) from the [Way Lab](https://www.waysciencelab.com/) at the University of Colorado Anschutz Medical Campus and beyond. Experimental and emerging tools are developed under the [WayScience GitHub organization](https://github.com/WayScience) before graduating into the core ecosystem. ## Impact @@ -26,10 +26,10 @@ The ecosystem traces its roots to the [Imaging Platform](https://www.broadinstit In 2016, members of this community co-founded the [CytoData Society](https://www.cytodata.org/) to unite researchers across academia and industry around image-based profiling. The following year, the team contributed the landmark [Caicedo et al. 2017](https://doi.org/10.1038/nmeth.4397) review in _Nature Methods_ that established the field's foundational analysis standards. -Since 2021, the [Way Lab](https://www.waysciencelab.com/) has driven a major expansion of the ecosystem โ€” migrating from R to Python with [`Pycytominer`](/tools/pycytominer/) and building a modern infrastructure stack including [`CytoTable`](/tools/cytotable/) and [`coSMicQC`](/tools/cosmicqc/). +Since 2021, the [Way Lab](https://www.waysciencelab.com/) has driven a major expansion of the ecosystem โ€” migrating from R to Python with [`Pycytominer`](/tools/pycytominer/) and building a modern infrastructure stack including [`CytoTable`](/tools/cytotable/), [`coSMicQC`](/tools/cosmicqc/), and others. In 2026, members of the CytoData community published an updated review, [Serrano et al.](https://doi.org/10.1038/s44320-026-00197-7) in _Molecular Systems Biology_, surveying progress and new challenges in image-based profiling. Today, Cytomining tools are used by research groups worldwide for drug discovery, functional genomics, and cell biology. -## Community +## Communities -We are proud members of the [CytoData](https://www.cytodata.org/) community and the [CytoData Society](https://www.cytodata.org/about/), which hosts an annual symposium bringing together researchers and developers working on image-based profiling. +We are proud members of the [CytoData Society](https://www.cytodata.org/) and [The Society of Biomolecular Imaging and Informatics](https://sbi2.org/), which hosts an annual symposium bringing together researchers and developers working on image-based profiling. diff --git a/content/experimental/buscar.md b/content/experimental/buscar.md index f53a25d..a823ba0 100644 --- a/content/experimental/buscar.md +++ b/content/experimental/buscar.md @@ -29,4 +29,3 @@ githubRepo: "WayScience/buscar" - Integrates directly with [`Pycytominer`](/tools/pycytominer/), [`coSMicQC`](/tools/cosmicqc/), and [`CytoTable`](/tools/cytotable/) workflows **[View on GitHub โ†’](https://github.com/WayScience/buscar)** - diff --git a/content/experimental/zedprofiler.md b/content/experimental/zedprofiler.md index 7f1ccd9..7786bbe 100644 --- a/content/experimental/zedprofiler.md +++ b/content/experimental/zedprofiler.md @@ -29,4 +29,3 @@ githubRepo: "WayScience/zedprofiler" - CPU-optimized for high-throughput processing without GPU dependency **[View on GitHub โ†’](https://github.com/WayScience/zedprofiler)** - diff --git a/content/people/_index.md b/content/people/_index.md index 154a3f2..caef077 100644 --- a/content/people/_index.md +++ b/content/people/_index.md @@ -33,26 +33,27 @@ This reflects how the organization operates today and is intentionally compact s ### Organizational structure -The Cytomining ecosystem spans two GitHub organizations with distinct roles. +The Cytomining ecosystem currently spans two GitHub organizations with distinct roles. The [**cytomining**](https://github.com/cytomining) organization hosts production-ready tools that have reached stable APIs, published documentation, test coverage, and community adoption. Tools here are maintained collaboratively by contributors from the [Way Lab](https://www.waysciencelab.com/) at the University of Colorado Anschutz and the broader image-based profiling community. The [**WayScience**](https://github.com/WayScience) organization serves as an incubator for next-generation tools under active development. -It is the primary home for roadmap work: tools here are experimental, may have unstable APIs, and have not yet graduated into [`cytomining`](https://github.com/cytomining). +It is the primary home for roadmap work: tools here are experimental, may have unstable APIs, and have not yet graduated into [`Cytomining`](https://github.com/cytomining). The two organizations are complementary. -[`WayScience`](https://github.com/WayScience) is where new ideas are prototyped and validated; [`cytomining`](https://github.com/cytomining) is where they become community infrastructure. -Core production tools ([`Pycytominer`](/tools/pycytominer/), [`CytoTable`](/tools/cytotable/), [`coSMicQC`](/tools/cosmicqc/), [`copairs`](/tools/copairs/), [`DeepProfiler`](/tools/deepprofiler/), [`CytoDataFrame`](/tools/cytodataframe/)) live in [`cytomining`](https://github.com/cytomining). +[`WayScience`](https://github.com/WayScience) is where new ideas are prototyped and validated; [`Cytomining`](https://github.com/cytomining) is where they become community infrastructure. +Core production tools ([`Pycytominer`](/tools/pycytominer/), [`CytoTable`](/tools/cytotable/), [`coSMicQC`](/tools/cosmicqc/), [`copairs`](/tools/copairs/), [`DeepProfiler`](/tools/deepprofiler/), [`CytoDataFrame`](/tools/cytodataframe/)) live in [`Cytomining`](https://github.com/cytomining). Roadmap tools ([`buscar`](/experimental/buscar/), [`OME-arrow`](/experimental/ome-arrow/), [`iceberg-bioimage`](/experimental/iceberg-bioimage/), [`ZEDprofiler`](/experimental/zedprofiler/)) live in [`WayScience`](https://github.com/WayScience) until they are ready to graduate. ### Graduation process -A tool is considered ready to migrate from [`WayScience`](https://github.com/WayScience) into [`cytomining`](https://github.com/cytomining) when it meets the following criteria: +A tool is considered ready to migrate from [`WayScience`](https://github.com/WayScience) (or any other repository from other organizations) into [`Cytomining`](https://github.com/cytomining) when it meets the following criteria: +- **Within scope** โ€” the tool must be purpose-built for scientists who perform image-based profiling. - **Stable API** โ€” no breaking changes anticipated in the near term; a versioned release has been tagged - **Documentation** โ€” a published documentation site covering installation, usage, and API reference -- **Test coverage** โ€” a CI-passing test suite with meaningful coverage of core functionality +- **Test coverage** โ€” a CI-passing test suite with meaningful coverage (>80%) of core functionality - **Publication or preprint** โ€” a citable reference describing the tool's design and validation ## Code of Conduct From 55237bab38ab93ce2c81d12751c92eeccd4df68a Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 15:21:53 -0600 Subject: [PATCH 5/6] fix link check --- .github/workflows/link-check.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/link-check.yaml b/.github/workflows/link-check.yaml index 6f11bb6..8d4e989 100644 --- a/.github/workflows/link-check.yaml +++ b/.github/workflows/link-check.yaml @@ -19,13 +19,14 @@ jobs: args: >- --verbose --no-progress + --scheme https --exclude-path node_modules - --exclude "^/" --exclude "^https://forum\\.image\\.sc/" --exclude "^https://www\\.broadinstitute\\.org/" --exclude "^https://www\\.eu-openscreen\\.eu/" --exclude "^https://doi\\.org/" --exclude "^https://gohugo\\.io/installation/" + --exclude "^https://sbi2\\.org/" 'content/**/*.md' '*.md' fail: true From 263bb8b5c514635946378fcfaed8c5f48270dbfc Mon Sep 17 00:00:00 2001 From: Gregory Way Date: Wed, 3 Jun 2026 15:27:15 -0600 Subject: [PATCH 6/6] setup hugo first --- .github/workflows/link-check.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/link-check.yaml b/.github/workflows/link-check.yaml index 8d4e989..51c058b 100644 --- a/.github/workflows/link-check.yaml +++ b/.github/workflows/link-check.yaml @@ -11,15 +11,26 @@ jobs: steps: - name: Checkout uses: actions/checkout@v6 + with: + submodules: true + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v3 + with: + hugo-version: latest + extended: true + + - name: Build site + run: hugo --minify - name: Check links with lychee uses: lycheeverse/lychee-action@v2 with: - # Check all Markdown files in content/ and the root-level docs + # Check all Markdown files; --root-dir resolves root-relative links against built site args: >- --verbose --no-progress - --scheme https + --root-dir ./public --exclude-path node_modules --exclude "^https://forum\\.image\\.sc/" --exclude "^https://www\\.broadinstitute\\.org/"