BBBC038 2018 Data Science Bowl Outlines of Every Nucleus
Draw one polygon per nucleus on ten real images from the CC0 2018 Data Science Bowl set, with Cellpose fine-tuning that writes outlines back as pre-labels.
Get This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/science/microscopy/dsb2018-nucleus-outlines
potato start config.yamlAbout this dataset
The 2018 Data Science Bowl dataset (BBBC038) was assembled by the Broad Institute Imaging Platform from images contributed by many laboratories. The dataset holds 841 2D light microscopy images with 37,333 manually annotated nuclei from more than 30 experiments, 22 cell types, and fluorescent and histology stains. The images and annotations are released under CC0.
The original annotations are one mask per nucleus, with no pixel in two masks. Expert biologists made the masks with an assisted superpixel tool or by outlining nuclei in GIMP, and each annotation was made by one expert biologist and reviewed by the others. The design adapts that protocol to the browser. Annotators draw one polygon per nucleus with the polygon tool, with zoom and pan for crowded fields. The ten sample images are real stage 1 training images, and no masks are included.
The model_training block uses the cellpose trainer, which fine-tunes Cellpose on the polygons annotators drew and predicts nucleus polygons for images nobody has outlined, written back as pre-labels to correct. Local image files are read, so the images ship in media/. The sam-finetune trainer is also available and fine-tunes only SAM's mask decoder, to turn boxes from an earlier detection run into outlines, and does not detect nuclei.
- Images
- 841 in total (670 training, 65 first-stage test, 106 second-stage test)
- Annotated nuclei
- 37,333 (29,464 in the training set)
- Experiments
- 31, covering 22 cell types and 15 image resolutions
- Sample images
- 10 real stage 1 training images
- Licence
- CC0
Configuration File
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# 2018 Data Science Bowl nuclei (BBBC038): outline every nucleus
#
# Dataset: BBBC038v1, Kaggle 2018 Data Science Bowl, Broad Bioimage Benchmark Collection
# URL: https://bbbc.broadinstitute.org/BBBC038
# Licence: CC0 (images and Broad Imaging Platform annotations)
# Paper: Caicedo, J. C., Goodman, A., Karhohs, K. W., Cimini, B. A., Ackerman, J.,
# Haghighi, M., Heng, C., Becker, T., Doan, M., McQuin, C., Rohban, M., Singh, S.,
# and Carpenter, A. E. (2019). Nucleus segmentation across imaging experiments:
# the 2018 Data Science Bowl. Nature Methods 16(12), 1247-1253.
# @article{Caicedo_2019, title={Nucleus segmentation across imaging experiments: the 2018 Data Science Bowl},
# volume={16}, DOI={10.1038/s41592-019-0612-7}, number={12}, journal={Nature Methods},
# year={2019}, pages={1247-1253}}
# DOI: 10.1038/s41592-019-0612-7
#
# Protocol quotes (BBBC038 page, "Description" and "Ground truth"):
# "Each mask contains one nucleus. Masks are not allowed to overlap (no pixel
# belongs to two masks)."
# "The ground truth and annotations were originally created by the Broad Imaging
# Platform using a combination of GIMP and a web-based annotation tool created
# internally."
# Paper, Methods: annotators "manually delineated each object in the images" with
# an assisted superpixel tool or with GIMP, "coloring individual pixels outlining
# each nucleus".
# Label: one class, nucleus. One outline per nucleus, no overlaps.
#
# Sample items: ten real images from stage1_train (CC0), shipped in media/ with
# their ImageIds in media/LICENSE-media.txt. No masks are included.
#
# Adaptations:
# - Annotators draw polygons in the browser. The original masks were per-pixel
# (GIMP) or superpixel-assisted (internal tool), not polygons.
# - The Potato polygon tool replaces both original tools. The task is one label
# (nucleus) instead of a pixel mask per nucleus.
# - Images were re-saved as 8-bit RGB PNG; pixel values are unchanged.
#
# Model training (admin page /admin/training, admin key below):
# cellpose (primary) fine-tunes Cellpose on the polygons annotators drew
# (each image's outlines become an instance label image) and predicts
# nucleus polygons for images nobody has outlined. It reads local image
# files only, which is why the images are in media/. Cellpose's pretrained
# weights come with the Cellpose authors' own terms. Needs: pip install cellpose
# sam-finetune is the second option. It fine-tunes only SAM's mask decoder,
# to turn boxes into outlines, and outlines the boxes an earlier detection
# run wrote back. It does not touch SAM's image encoder and does not detect
# nuclei by itself. Needs: pip install 'potato-annotation[train-vision]'
# Predictions come back as prelabels annotators correct.
#
# Run:
# potato start config.yaml -p 8000
annotation_task_name: "BBBC038 nucleus outlines"
task_dir: "."
media_directory: media
data_files:
- "sample-data.json"
item_properties:
id_key: "id"
text_key: "image_url"
output_annotation_dir: "annotation_output"
export_annotation_format: jsonl
user_config:
allow_all_users: true
users: []
require_password: false
admin_api_key: "demo-admin-key"
annotation_instructions: |
Outline every nucleus in the image with the polygon tool. Draw one polygon per
nucleus and do not let two polygons overlap. Zoom in for small or crowded
nuclei, and pan with the hand tool or by dragging.
annotation_schemes:
- annotation_type: image_annotation
name: nuclei
description: "Outline each nucleus with one polygon. Outlines must not overlap."
source_field: image_url
tools:
- polygon
labels:
- name: nucleus
color: "#E6194B"
key_value: "1"
min_annotations: 1
zoom_enabled: true
pan_enabled: true
model_training:
enabled: true
writeback:
schemas: ["nuclei"]
include_unlabeled: true
min_confidence: 0.5
trainer_params:
cellpose:
base_model: nuclei
epochs: 50
Sample Data
[
{
"id": "dsb_001",
"image_url": "/media/dsb_001.png",
"image_width": 256,
"image_height": 256,
"bbbc038_image_id": "00071198d059ba7f5914a526d124d28e6d010c92466da21d4a04cd5413362552"
},
{
"id": "dsb_002",
"image_url": "/media/dsb_002.png",
"image_width": 256,
"image_height": 256,
"bbbc038_image_id": "3b75fc03a1d12b29bd2870eb1f6fdb44174dbd1118dfc11c31f127bd87bd27ef"
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/science/microscopy/dsb2018-nucleus-outlines
potato start config.yamlDataset & paper
Caicedo et al., Nature Methods 2019
- Paper DOI
- 10.1038/s41592-019-0612-7
Citation (BibTeX)
@article{Caicedo_2019,
title = {Nucleus segmentation across imaging experiments: the 2018 Data Science Bowl},
author = {Caicedo, Juan C. and Goodman, Allen and Karhohs, Kyle W. and Cimini, Beth A. and Ackerman, Jeanelle and Haghighi, Marzieh and Heng, CherKeng and Becker, Tim and Doan, Minh and McQuin, Claire and Rohban, Mohammad and Singh, Shantanu and Carpenter, Anne E.},
journal = {Nature Methods},
volume = {16},
number = {12},
pages = {1247--1253},
year = {2019},
month = oct,
publisher = {Springer Science and Business Media LLC},
doi = {10.1038/s41592-019-0612-7}
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an Issue(opens in a new tab)Related Designs
NuInsSeg Nucleus and Ambiguous Area Outlines in H&E Histology
Outline nuclei and mark ambiguous areas with polygons on ten real H&E patches, with Cellpose fine-tuning that writes outlines back as pre-labels.
Human Protein Atlas Subcellular Localization Across 28 Labels
Select every compartment a protein localizes to on four-channel microscopy images, using 28 HPA labels. The ten sample images are synthetic and illustrative.
BRACS Breast Lesion Regions on a Gigapixel Whole-Slide Image
Outline and label breast lesion regions with seven BRACS categories in the deep-zoom viewer, then train a tiled Mask R-CNN. The sample slide is illustrative.