einarolafsson's picture
Upload README.md with huggingface_hub
4eabd84 verified
|
Raw History Blame
4.33 kB
---
license: mit
tags:
- cellpose
- segmentation
- toxoplasma
- microscopy
- spacr
library_name: spacr
pipeline_tag: image-segmentation
---
# Toxoplasma PV v1
Segments *Toxoplasma gondii* parasitophorous vacuoles from a parasite stain (anti-Toxoplasma-biotin, or DsRed in the PV lumen). Round 2.
> **Superseded.** [Toxoplasma PV v2 (round 5)](https://huggingface.co/einarolafsson/toxoplasma-pv-segmentation-cpsam-r5) is trained on 556 images against this model's 229 and is 5-fold cross-validated. Prefer v2 for new work; v1 remains here for reproducibility.
- **Architecture:** Cellpose-SAM (cpsam_v2)
- **Model Zoo key:** `toxoplasma_pv_v1`
- **Checkpoint:** `cpsam_v2_toxo_r2`
- **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.
```bash
pip install spacr
```
### Model Zoo (GUI)
Launch the GUI and open the **Model Zoo**:
```bash
spacr
```
Find **Toxoplasma PV v1** 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)
```python
from spacr import model_zoo
entry = next(e for e in model_zoo.catalogue() if e.key == "toxoplasma_pv_v1")
path = model_zoo.install(entry, dest="~/spacr_models")
print(path) # verified local checkpoint
```
### Mask generation
Point spaCR's mask generation at the downloaded checkpoint:
```python
from spacr.core import preprocess_generate_masks
settings = {
"src": "/path/to/images",
"pathogen": "cellpose",
"pathogen_model": str(path), # the checkpoint fetched above
"pathogen_diameter": 12,
}
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
| model | train | train obj. | test | test obj. | CV | F1 @ IoU 0.5 | AJI | Dice | final train loss | final val loss | val - train | best epoch |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| stock cpsam_v2 (no fine-tuning) | β€” | β€” | 11 | not recorded | β€” | 0.7130 | 0.4260 | β€” | β€” | β€” | β€” | β€” |
| **this model (round 2)** | 229 | not recorded | 11 | not recorded | no | **0.8640** | 0.8090 | β€” | not recorded | not recorded | β€” | 100 / 100 |
Scored on 11 held-out in-house wells at IoU 0.5. On the current literature set, whose truth leans toward this model's lineage, it ties stock Cellpose-SAM on detection (F1 0.403 against 0.400).
Superseded by [Toxoplasma PV v2 (round 5)](https://huggingface.co/einarolafsson/toxoplasma-pv-segmentation-cpsam-r5), which is trained on 556 images and 5-fold cross-validated.
*Objects are reference (ground-truth) objects. Object counts and the per-epoch loss history were not recorded for this run, so those columns and the training curves are unavailable; the scores are the ones its own run reported.*
## Training data
229 training images from 2 datasets β€” round 1's 104 plus 125 newly curated RH and
ME49 fields β€” of *Toxoplasma* tachyzoite parasitophorous vacuoles stained with goat
anti-Toxoplasma-biotin, and tachyzoites expressing DsRed in the PV lumen.
100 epochs, base `cpsam_v2`.
## Files in this repository
| path | what |
|---|---|
| `cpsam_v2_toxo_r2` | the checkpoint |
| `metadata.txt` | the checkpoint |
| `round2.log` | the checkpoint |
| `round2_heldout_metrics.csv` | the checkpoint |
| `round2_vs_round1.csv` | the checkpoint |
| `train_report.json` | the checkpoint |
| `vanilla_vs_finetuned.json` | the checkpoint |
## Limitations
- Accuracy falls sharply above IoU 0.8 β€” suited to counting and area rather than precise morphometry.
- The held-out literature scorecard is pending a stock-seeded re-curation.
- Superseded by Toxoplasma PV v2 (round 5).
## 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