cerberus-neuro: cell-type classifier (v0)

Brightfield-only 4-class cell-type classifier on the Broad NeuroPainting Cell Painting dataset. Part of the cerberus-neuro project, which trains task-specific models on a shared ResNet34 architecture for cell-type classification, organelle soft-segmentation, and disease-state classification.

This is the cell-type single-task model, shipped as Phase 0.5 of the v0 plan. The encoder is initialized from ImageNet1K_V1 weights with conv1 adapted to 1-channel brightfield input via mean-across-RGB-channels. Trained end-to-end with discriminative learning rates.

Inputs

  • 1-channel brightfield image, 256x256, 16-bit normalized to [0, 1]

Outputs

4-class softmax over {0: stem (iPSC), 1: progen (NPC), 2: neuron, 3: astro (astrocyte)}.

Validation results

Best-epoch validation accuracy: 0.9905 (epoch 4). Trained for 5 epochs on the v0 16k-crop subset (48 wells per cell type, 9 sites per well, top-12 cell-rich tiles per site, well-level 80/20 train/val split).

epoch train_loss train_acc val_loss val_acc
0 0.4545 0.8220 0.0981 0.9651
1 0.2157 0.9249 0.2085 0.9286
2 0.1640 0.9494 0.1329 0.9553
3 0.1238 0.9602 0.0448 0.9795
4 0.1165 0.9623 0.0256 0.9905

Training recipe

  • ResNet34 encoder, ImageNet1K_V1 pretrained, conv1 adapted for 1-channel input via mean-across-RGB.
  • ClassifierHead: AdaptiveAvgPool2d -> Linear(512, 4).
  • AdamW, encoder LR 3e-5, head LR 3e-4 (discriminative, 0.1x ratio).
  • Cosine annealing over total_steps; AMP autocast + GradScaler; gradient norm clip at 1.0.
  • Batch size 64, num_workers 8, prefetch_factor 4.
  • D4 dihedral augmentation (rotation x flip) applied identically across all 6 channels per crop.
  • Cell-aware tile selection: top-12 256x256 patches per site by CellProfiler centroid count.

Loading

import torch
from huggingface_hub import hf_hub_download
from cerberus_neuro.model import CellTypeOnlyModel

ckpt_path = hf_hub_download('patrickjreed/cerberus-neuro-cell-type-v0', 'best.pt')
ckpt = torch.load(ckpt_path, map_location='cpu', weights_only=False)

model = CellTypeOnlyModel(in_channels=1, n_classes=4, pretrained_encoder=False)
model.load_state_dict(ckpt['model'])
model.eval()

Limitations

  • Trained on Broad NeuroPainting only (cpg0038); may not transfer to other Cell Painting protocols without fine-tuning.
  • Trained on 20x acquisition; behavior on 63x is not characterized.
  • Data subset is 48 wells per cell type — strong validation but not exhaustive across the full cohort.
  • 4-way classification only; does not predict disease state or fluorescence.

Citation and related work

  • Tegtmeyer et al., Nat Commun (2025), 10.1038/s41467-025-61547-x. The NeuroPainting dataset.
  • Lyu, Alonso, Pinto. Cerberus: A Multi-headed Network for Brain Tumor Segmentation, BrainLes 2020. The shared-encoder + multi-head architectural pattern this model is part of.

License

MIT.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support