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
18 changes: 18 additions & 0 deletions assets/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ html {
font-size: 90%;
}

/* Header logo: make site mark compact in top nav */
a.mr-2 > img {
max-height: 1.75rem !important;
max-width: 1.75rem !important;
}

/* Logo dark/light switching.
Congo toggles a .dark class on <html> via JS — the native
prefers-color-scheme media query inside <picture> tags does not respond
Expand Down Expand Up @@ -131,3 +137,15 @@ html.dark .hero-pill-green { background: #052e16 !important; border-color: #16
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; }

/* Header breakpoint override:
Use hamburger menu up to 900px (instead of Congo's default 640px). */
@media (max-width: 900px) {
#menu-button {
display: block !important;
}

header nav > ul.hidden.sm\:flex {
display: none !important;
}
}
Binary file added assets/img/cytomining-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 6 additions & 1 deletion config/_default/menus.en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
weight = 10

[[main]]
name = "Experimental tools"
name = "Roadmap"
pageRef = "experimental"
weight = 20

Expand All @@ -18,6 +18,11 @@
pageRef = "about"
weight = 40

[[main]]
name = "People"
pageRef = "people"
weight = 50


[[main]]
name = "Contact"
Expand Down
3 changes: 2 additions & 1 deletion config/_default/params.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ enableCodeCopy = false
showRecent = false

[header]
layout = "fixed"
layout = "hybrid"
logo = "img/cytomining-logo.png"

[footer]
showCopyright = true
Expand Down
5 changes: 4 additions & 1 deletion content/experimental/_index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
---
title: "Experimental"
title: "Roadmap"
description: "Tools under active development in the WayScience organization, forming the foundation of the next Cytomining ecosystem."
url: /roadmap/
aliases:
- /experimental/
---

The following tools are under active development in the [WayScience](https://github.com/WayScience) organization and form the backbone of the Cytomining roadmap.
3 changes: 3 additions & 0 deletions content/experimental/buscar.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ problem: "Population-level hit calling averages away cell-to-cell variation, hid
showDate: false
showAuthor: false
logoUrl: "https://raw.githubusercontent.com/WayScience/buscar/main/logo/just-icon.png"
githubRepo: "WayScience/buscar"
---

<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">

{{< 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 Down
3 changes: 3 additions & 0 deletions content/experimental/iceberg-bioimage.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ problem: "Raw bioimaging archives have no standard catalog — finding, versioni
showDate: false
showAuthor: false
logoUrl: "https://raw.githubusercontent.com/WayScience/iceberg-bioimage/main/docs/src/_static/iceberg-bioimage-logo.png"
githubRepo: "WayScience/iceberg-bioimage"
---

<img src="https://raw.githubusercontent.com/WayScience/iceberg-bioimage/main/docs/src/_static/iceberg-bioimage-logo.png" alt="iceberg-bioimage logo" width="400">

{{< 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
7 changes: 5 additions & 2 deletions content/experimental/ome-arrow.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ description: "Image storage — stores microscopy images alongside metadata and
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."
showDate: false
showAuthor: false
logoUrl: "https://raw.githubusercontent.com/WayScience/OME-arrow/main/docs/src/_static/ome-arrow-logo.png"
logoUrl: "https://raw.githubusercontent.com/wayscience/ome-arrow/main/docs/src/_static/ome-arrow-with-text.png?raw=true"
githubRepo: "WayScience/OME-arrow"
---

<img src="https://raw.githubusercontent.com/WayScience/OME-arrow/main/docs/src/_static/ome-arrow-logo.png" alt="OME-arrow logo" width="400">
<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">

{{< 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.

Expand Down
3 changes: 3 additions & 0 deletions content/experimental/zedprofiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@ problem: "Classical profiling tools only extract 2D features, leaving organoid a
showDate: false
showAuthor: false
logoUrl: "https://raw.githubusercontent.com/WayScience/ZedProfiler/main/logo/logo.png"
githubRepo: "WayScience/zedprofiler"
---

<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">

{{< 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
51 changes: 51 additions & 0 deletions content/people/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
title: People
description: Contributors, governance, code of conduct, and security stance for the Cytomining community.
showDate: false
showAuthor: false
layout: simple
---

The Cytomining ecosystem is maintained by a distributed community of contributors across academia and industry.

## Contributors

- Browse contributors and maintainers in the [Cytomining GitHub organization](https://github.com/cytomining)
- See organization members directly in the [People directory](https://github.com/orgs/cytomining/people)
- Explore project-level contribution history in each repository's contributors graph

We welcome issues, bug reports, documentation improvements, and pull requests from the broader community.

## 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.

- **Stewardship:** Repositories are maintained by designated maintainers in the `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.
- **Scope and ownership:** Changes are reviewed by maintainers closest to the affected project area, as defined by recent commits and other relevant ecosystem initiatives.
- **Openness:** Design direction, roadmap changes, and tradeoffs are discussed in public whenever possible.
- **Evolution:** Governance expectations are updated incrementally as the community and project complexity grow.

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.

## Code of Conduct

Participation in Cytomining spaces is expected to follow the organization-wide Code of Conduct:

- [Cytomining Organization Code of Conduct](https://github.com/cytomining/.github/blob/main/CODE_OF_CONDUCT.md)

All contributors and community members are expected to uphold a respectful, inclusive, and professional environment.

## Security Stance

We take security seriously across our software and community operations.

- [Cytomining Organization Security Policy](https://github.com/cytomining/.github/blob/main/SECURITY.md)
- If you discover a potential vulnerability, please report it responsibly through GitHub security reporting mechanisms where available
- Avoid opening public issues for unpatched security vulnerabilities
- We aim to triage and respond to credible reports quickly and transparently

For repository-specific security guidance, check each project's `SECURITY.md` (when present) and GitHub Security tabs.
2 changes: 2 additions & 0 deletions content/tools/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ description: Production-ready tools for image-based profiling bioinformatics.
---

The Cytomining ecosystem provides a suite of production-ready tools for every stage of the image-based profiling workflow.

For upcoming capabilities and in-progress projects, see the [Roadmap](https://cytomining.github.io/experimental/), which includes our experimental tools under active development.
4 changes: 4 additions & 0 deletions content/tools/copairs.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,12 @@ title: copairs
description: Downstream evaluation — measures how reproducibly perturbation profiles retrieve their matched replicates, quantifying profile quality and similarity.
showDate: false
showAuthor: false
pypiPackage: copairs
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 Down
4 changes: 4 additions & 0 deletions content/tools/cosmicqc.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ description: Quality control step — flags and removes low-quality cells before
showDate: false
showAuthor: false
logoUrl: https://raw.githubusercontent.com/cytomining/coSMicQC/main/media/logo/just-icon.png
pypiPackage: cosmicqc
githubRepo: cytomining/coSMicQC
---

<img class="logo-light" src="https://raw.githubusercontent.com/cytomining/coSMicQC/main/media/logo/with-text-for-light-bg.png" alt="coSMicQC logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/cytomining/coSMicQC/main/media/logo/with-text-for-dark-bg.png" alt="coSMicQC logo" width="400">

{{< 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.

Expand Down
4 changes: 4 additions & 0 deletions content/tools/cytodataframe.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ description: "Interactive exploration — view and inspect morphology profiles a
showDate: false
showAuthor: false
logoUrl: https://raw.githubusercontent.com/cytomining/CytoDataFrame/main/logo/just-icon.png
pypiPackage: cytodataframe
githubRepo: cytomining/CytoDataFrame
---

<img class="logo-light" src="https://raw.githubusercontent.com/cytomining/CytoDataFrame/main/logo/with-text-for-light-bg.png" alt="CytoDataFrame logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/cytomining/CytoDataFrame/main/logo/with-text-for-dark-bg.png" alt="CytoDataFrame logo" width="400">

{{< 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:**
Expand Down
4 changes: 4 additions & 0 deletions content/tools/cytotable.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ description: Upstream ingestion — converts raw CellProfiler, DeepProfiler, and
showDate: false
showAuthor: false
logoUrl: https://raw.githubusercontent.com/cytomining/CytoTable/main/logo/just-icon.png
pypiPackage: cytotable
githubRepo: cytomining/CytoTable
---

<img class="logo-light" src="https://raw.githubusercontent.com/cytomining/CytoTable/main/logo/with-text-for-light-bg.png" alt="CytoTable logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/cytomining/CytoTable/main/logo/with-text-for-dark-bg.png" alt="CytoTable logo" width="400">

{{< tool-badges >}}

`CytoTable` harmonizes output from different high-content image analysis tools — including CellProfiler, `DeepProfiler`, and IN Carta — into a single, analysis-ready format.
It scales to large datasets using Apache Parquet, DuckDB, and Parsl under the hood.

Expand Down
3 changes: 3 additions & 0 deletions content/tools/deepprofiler.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@ title: DeepProfiler
description: Alternative feature extraction — deep learning embeddings from raw microscopy images, bypassing classical segmentation-and-measurement pipelines.
showDate: false
showAuthor: false
githubRepo: cytomining/DeepProfiler
---

<img src="https://raw.githubusercontent.com/cytomining/DeepProfiler/master/figures/logo/banner.png" alt="DeepProfiler logo" width="400">

{{< 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.

Expand Down
4 changes: 4 additions & 0 deletions content/tools/pycytominer.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,15 @@ description: "Core processing pipeline — aggregates, normalizes, and feature-s
showDate: false
showAuthor: false
logoUrl: https://raw.githubusercontent.com/cytomining/pycytominer/main/logo/just-icon.png
pypiPackage: pycytominer
githubRepo: cytomining/pycytominer
---

<img class="logo-light" src="https://raw.githubusercontent.com/cytomining/pycytominer/main/logo/with-text-for-light-bg.png" alt="Pycytominer logo" width="400">
<img class="logo-dark" src="https://raw.githubusercontent.com/cytomining/pycytominer/main/logo/with-text-for-dark-bg.png" alt="Pycytominer logo" width="400">

{{< 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.

Expand Down
1 change: 1 addition & 0 deletions layouts/_partials/article-link.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ <h3 class="flex items-center text-xl font-semibold">
{{ partial "extend-article-link.html" . }}
{{ end }}
</h3>
{{ partial "tool-badges.html" (dict "page" . "scope" "list") }}
<div class="text-sm text-neutral-500 dark:text-neutral-400">
{{ partial "article-meta.html" . }}
</div>
Expand Down
35 changes: 35 additions & 0 deletions layouts/_partials/tool-badges.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{{- $page := . -}}
{{- $scope := "single" -}}
{{- if reflect.IsMap . -}}
{{- $page = .page -}}
{{- $scope = .scope | default "single" -}}
{{- end -}}
{{- $isTools := eq $page.Section "tools" -}}
{{- $isExperimental := eq $page.Section "experimental" -}}
{{- if and (or $isTools $isExperimental) (or $page.Params.pypiPackage $page.Params.githubRepo) -}}
<div class="tool-badges" style="display: flex; flex-wrap: nowrap; align-items: center; gap: 3px; font-size: 0; line-height: 0;">
{{- if $isTools -}}
{{- with $page.Params.pypiPackage -}}
<img src="https://img.shields.io/pypi/v/{{ . }}" alt="PyPI version for {{ . }}" loading="lazy" />
{{- end -}}
{{- end -}}
{{- with $page.Params.githubRepo -}}
<img src="https://img.shields.io/github/stars/{{ . }}" alt="GitHub stars for {{ . }}" loading="lazy" />
{{- end -}}
{{- if and $isTools (ne $scope "list") -}}
{{- with $page.Params.pypiPackage -}}
<img src="https://img.shields.io/pypi/dm/{{ . }}?label=PyPI%20downloads" alt="PyPI monthly downloads for {{ . }}" loading="lazy" />
<img src="https://img.shields.io/pepy/dt/{{ . }}?label=total%20downloads" alt="Total downloads for {{ . }}" loading="lazy" />
{{- end -}}
{{- with $page.Params.githubRepo -}}
<img src="https://img.shields.io/github/forks/{{ . }}" alt="GitHub forks for {{ . }}" loading="lazy" />
{{- end -}}
{{- end -}}
</div>
<style>
.tool-badges img {
display: inline-block;
vertical-align: middle;
}
</style>
{{- end -}}
8 changes: 6 additions & 2 deletions layouts/experimental/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div class="mx-auto max-w-prose py-8">

{{/* Header */}}
<h1 class="hero-fade-1 text-4xl font-extrabold mb-2">Experimental Tools</h1>
<h1 class="hero-fade-1 text-4xl font-extrabold mb-2">Roadmap</h1>
<p class="hero-fade-2" style="color: #6b7280; font-size: 1.05rem; margin-bottom: 2.5rem; line-height: 1.65;">
Next-generation tools under active development in the <a href="https://github.com/WayScience" style="color: inherit; text-decoration: underline; text-decoration-color: #d1d5db;">WayScience</a> organization,
forming the foundation of the Cytomining roadmap.
Expand All @@ -21,7 +21,11 @@ <h1 class="hero-fade-1 text-4xl font-extrabold mb-2">Experimental Tools</h1>

{{/* Tool list */}}
<div class="hero-fade-4">
<h2 style="font-size: 1.15rem; font-weight: 700; margin-bottom: 0.25rem;">Tools</h2>
<h2 style="font-size: 1.15rem; font-weight: 700; margin-bottom: 0.25rem;">Experimental tools</h2>
<p style="color: #6b7280; font-size: 0.95rem; margin-bottom: 1rem;">
These tools are under active development in the <a href="https://github.com/WayScience" style="color: inherit; text-decoration: underline; text-decoration-color: #d1d5db;">WayScience</a> organization.
For production-ready tools, see the <a href="/tools/" style="color: inherit; text-decoration: underline; text-decoration-color: #d1d5db;">Tools page</a>.
</p>
{{ range .Pages }}
{{ partial "article-link.html" . }}
{{ end }}
Expand Down
2 changes: 1 addition & 1 deletion layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ <h1 style="font-size: 2.5rem; font-weight: 800; letter-spacing: -0.02em; margin:
<a href="/tools/" class="hero-btn-primary" style="display: inline-block; background: #2563eb; color: white; font-weight: 600; font-size: 0.9rem; padding: 0.65rem 1.4rem; border-radius: 8px; text-decoration: none;">
Explore tools →
</a>
<a href="/experimental/" class="hero-btn-outline" style="display: inline-block; background: transparent; color: #374151; font-weight: 600; font-size: 0.9rem; padding: 0.65rem 1.4rem; border-radius: 8px; text-decoration: none; border: 1.5px solid #d1d5db;">
<a href="/roadmap/" class="hero-btn-outline" style="display: inline-block; background: transparent; color: #374151; font-weight: 600; font-size: 0.9rem; padding: 0.65rem 1.4rem; border-radius: 8px; text-decoration: none; border: 1.5px solid #d1d5db;">
Experimental tools
</a>
</div>
Expand Down
1 change: 1 addition & 0 deletions layouts/shortcodes/tool-badges.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ partial "tool-badges.html" (dict "page" .Page "scope" "single") }}
6 changes: 0 additions & 6 deletions themes/congo/layouts/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,5 @@ <h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutra
{{ end }}
</section>
{{ partial "pagination.html" . }}
{{ else }}
<section class="prose mt-10 dark:prose-invert">
<p class="border-t py-8">
<em>{{ i18n "list.no_articles" | emojify }}</em>
</p>
</section>
{{ end }}
{{ end }}
Loading