einarolafsson/cross-channel-nuclei-from-cellmask-cpsam
Cross-channel nuclei-from-cellmask (Cellpose-SAM)
Segments nuclei from the host cell mask channel alone — no nuclear stain required. A cross-channel model: it is given the cell image and predicts where the nuclei are, freeing the DAPI/Hoechst channel for another marker.
- Architecture: Cellpose-SAM (cpsam_v2)
- Model Zoo key:
nuclei_from_cellmask_v1 - Checkpoint:
nuclei_from_cellmask - Trained by: einarolafsson
Use it in spaCR
This model is distributed through the spaCR Model Zoo. spaCR is an open-source package for spatial phenotype analysis of CRISPR screens and microscopy images.
pip install spacrModel Zoo (GUI)
Launch the GUI and open the Model Zoo:
spacrFind Cross-channel nuclei-from-cellmask (Cellpose-SAM) in the model list and press Download. The Model Zoo verifies the checkpoint's SHA-256 after download, so a truncated or substituted file is rejected rather than silently used.
Model Zoo (Python)
from spacr import model_zoo
entry = next(e for e in model_zoo.catalogue() if e.key == "nuclei_from_cellmask_v1")
path = model_zoo.install(entry, dest="~/spacr_models")
print(path) # verified local checkpointMask generation
Point spaCR's mask generation at the downloaded checkpoint:
from spacr.core import preprocess_generate_masks
settings = {
"src": "/path/to/images",
"nucleus": "cellpose",
"nucleus_model": str(path), # the checkpoint fetched above
"nucleus_diameter": 20,
}
preprocess_generate_masks(settings)In the GUI the same thing is under Make masks — choose the downloaded model in the Cellpose model field for the relevant object.
API: :func:spacr.core.preprocess_generate_masks, :func:spacr.spacr_cellpose.generate_masks_from_imgs
Performance
Scored on a well-grouped held-out split — no well appears in both train and test.
Per host cell line:
Objects are reference (ground-truth) objects. Training-set object counts and the per-epoch history were not preserved for this run, so the loss columns and training curves are unavailable.
Training data
Well-grouped split shared with the other cross-channel models, so no well leaks across train and test. 100 epochs from stock cpsam_v2, AdamW, lr 1e-5, weight decay 0.1.
Environment
Files in this repository
Limitations
- The held-out split is used for checkpoint selection, so it is validation data rather than a fully independent test set.
- Targets are automatic reference labels rather than hand-drawn ground truth.
- Predicts nuclei positions from cell morphology — expect degraded accuracy on unusual or highly confluent morphologies.
Links
- spaCR on GitHub: https://github.com/EinarOlafsson/spacr
- Model Zoo API:
spacr.model_zoo—catalogue(),install(),fetch(),verify() - Mask generation API:
spacr.core.preprocess_generate_masks - Issues and questions: https://github.com/EinarOlafsson/spacr/issues
