diff --git a/.github/workflows/link-check.yaml b/.github/workflows/link-check.yaml
index 4409876..51c058b 100644
--- a/.github/workflows/link-check.yaml
+++ b/.github/workflows/link-check.yaml
@@ -11,20 +11,33 @@ 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
+ --root-dir ./public
--exclude-path node_modules
--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
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..4a9743d 100644
--- a/content/about/_index.md
+++ b/content/about/_index.md
@@ -7,13 +7,13 @@ 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
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/), [`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, 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/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..a823ba0 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"
---
+
+
{{< 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,6 @@ 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..0b366cc 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"
---
+
+
{{< 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.
diff --git a/content/experimental/ome-arrow.md b/content/experimental/ome-arrow.md
index f94a945..43c8b60 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"
---
+
+
{{< 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.
diff --git a/content/experimental/zedprofiler.md b/content/experimental/zedprofiler.md
index 82a43da..7786bbe 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"
---
+
+
{{< 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.
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..caef077 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,31 @@ 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 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).
+
+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) (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 (>80%) 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..0d20af4 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.
@@ -19,11 +20,11 @@ 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
-
+
{{< 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/)**
+**[View documentation โ](https://cytomining.github.io/coSMicQC/)** ยท **[View on GitHub โ](https://github.com/cytomining/coSMicQC)**
## Publication
-
+
{{< 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:**
@@ -22,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 6caf4e3..5bbf532 100644
--- a/content/tools/cytotable.md
+++ b/content/tools/cytotable.md
@@ -8,12 +8,15 @@ pypiPackage: cytotable
githubRepo: cytomining/CytoTable
---
+
+
{{< 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/)**
+**[View documentation โ](https://cytomining.github.io/CytoTable/)** ยท **[View on GitHub โ](https://github.com/cytomining/CytoTable)**
## Publication
-
+
{{< 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
-
+
{{< 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.
@@ -24,11 +27,11 @@ 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
-