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
15 changes: 14 additions & 1 deletion .github/workflows/link-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
33 changes: 33 additions & 0 deletions assets/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
12 changes: 6 additions & 6 deletions content/about/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,29 +7,29 @@ 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.
Packages are downloaded thousands of times per month via [PyPI] download statistics (https://pypistats.org/).

## 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.
Comment thread
gwaybio marked this conversation as resolved.

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.
4 changes: 3 additions & 1 deletion content/contact/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
5 changes: 4 additions & 1 deletion content/experimental/buscar.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/buscar/main/logo/just-ico
githubRepo: "WayScience/buscar"
---

<a href="https://github.com/WayScience/buscar" target="_blank" rel="external">
<img class="logo-light" src="https://raw.githubusercontent.com/WayScience/buscar/main/logo/with-text-for-light-bg.png" alt="buscar logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/WayScience/buscar/main/logo/with-text-for-dark-bg.png" alt="buscar logo" width="400">
</a>

{{< 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.
Expand All @@ -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)**
3 changes: 3 additions & 0 deletions content/experimental/iceberg-bioimage.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/iceberg-bioimage/main/doc
githubRepo: "WayScience/iceberg-bioimage"
---

<a href="https://github.com/WayScience/iceberg-bioimage" target="_blank" rel="external">
<img src="https://raw.githubusercontent.com/WayScience/iceberg-bioimage/main/docs/src/_static/iceberg-bioimage-logo.png" alt="iceberg-bioimage logo" width="400">
</a>

{{< 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.
Expand Down
3 changes: 3 additions & 0 deletions content/experimental/ome-arrow.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@ logoUrl: "https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_
githubRepo: "WayScience/OME-arrow"
---

<a href="https://github.com/WayScience/OME-arrow" target="_blank" rel="external">
<img src="https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/ome-arrow-with-text.png?raw=true" alt="OME-arrow logo" width="400">
</a>

{{< 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.
Expand Down
3 changes: 3 additions & 0 deletions content/experimental/zedprofiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ logoUrl: "https://raw.githubusercontent.com/WayScience/ZedProfiler/main/logo/log
githubRepo: "WayScience/zedprofiler"
---

<a href="https://github.com/WayScience/ZedProfiler" target="_blank" rel="external">
<img class="logo-light" src="https://raw.githubusercontent.com/WayScience/ZedProfiler/main/logo/with-text-for-light-bg.png" alt="ZEDprofiler logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/WayScience/ZedProfiler/main/logo/with-text-for-dark-bg.png" alt="ZEDprofiler logo" width="400">
</a>

{{< 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.
Expand Down
12 changes: 6 additions & 6 deletions content/media/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
29 changes: 27 additions & 2 deletions content/people/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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:
Expand Down
5 changes: 3 additions & 2 deletions content/tools/copairs.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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

<div style="border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.25rem; margin: 1.5rem 0;">
<div class="publication-card" style="border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.25rem; margin: 1.5rem 0;">
<div style="margin-bottom: 0.5rem;">
<span style="background: #2563eb; color: white; padding: 0.2rem 0.7rem; border-radius: 9999px; font-size: 0.78rem; font-weight: 600;">Nature Communications · 2025</span>
</div>
Expand Down
Loading
Loading