Skip to content

docs(tutorial): restore the napari screenshot cells and result images - #53

Closed
xuefei-wang wants to merge 1 commit into
masterfrom
docs/restore-tutorial-visualization
Closed

docs(tutorial): restore the napari screenshot cells and result images#53
xuefei-wang wants to merge 1 commit into
masterfrom
docs/restore-tutorial-visualization

Conversation

@xuefei-wang

Copy link
Copy Markdown
Collaborator

Problem

A user reports that the tutorial "stripped out the important steps to run/visualize the results," comparing against 616d4b5.

They're right. The v0.1.0 monorepo merge (4a2d7ba) replaced both napari screenshot cells and both embedded result images with prose:

The image and segmentation layers appear directly in the interactive Napari viewer. Static documentation builds do not execute or embed GUI screenshots.

So the tutorial's two visual payoffs — the multiplexed image with the CellSAM segmentation overlaid, and the per-cell-type label layers — disappeared from the rendered page. Both "Visualizing results" sections now end with no output at all.

Why the premise was wrong

napari does render headlessly (Xvfb + llvmpipe), and that is how the currently-deployed site was built. https://vanvalenlab.github.io/deepcell-types/site/tutorial.html still serves both images today:

  • _static/_generated/napari_img_and_segmentation.png
  • _static/_generated/napari_celltype_layers.png

The repo source and the published build had silently diverged. This restores the source to match the build that actually works.

Change

Restores the two hide-cell nim.screenshot(...) cells and the two <img> embeds. Docs-only; no code touched.

Verification

  • jupytext parses the tutorial: 45 cells / 24 code cells, 2 screenshot cells, 2 image embeds
  • pytest: 470 passed, 1 skipped
  • Resulting docs/site/tutorial.md is byte-identical to the version that produced the live site, apart from one unrelated abstention-wording sentence left untouched

Not addressed here

The same report also says the model won't run. Everything testable offline is healthy — pip install git+...@master resolves (incl. deepcell_auth from git), the deepcell-auth manifest maps 2026-06-15 to models/deepcell-types_2026-06-15_resmlp.pt / b819a7e0…, and predict() runs fine against that checkpoint on this branch. The one link that can't be checked without a token is whether the bucket actually serves an asset with that hash. Tracking separately.

Separately: gh-pages was last built 2026-07-12, which predates the deepcell-auth migration (#47, 2026-07-30) — the published site should be rebuilt from master once this lands.

The v0.1.0 monorepo merge replaced both napari screenshot cells and the two
embedded result images with the prose "Static documentation builds do not
execute or embed GUI screenshots." The tutorial's two visual payoffs -- the
multiplexed image with the CellSAM segmentation overlaid, and the per-cell-type
label layers -- therefore vanished from the rendered page, leaving the
"Visualizing results" sections with no output at all.

The premise was wrong: napari renders headlessly under Xvfb + llvmpipe, which
is how the currently-deployed site was built -- it still serves both
_static/_generated/*.png. Restore the two `hide-cell` screenshot cells and the
<img> embeds so the repo source matches the build that actually works.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qvo32Wvq8EHyA9jmFCXuXi
@xuefei-wang

Copy link
Copy Markdown
Collaborator Author

Superseded by #55 — closing as redundant.

#55 contains this PR's changes verbatim: the same two hide-cell nim.screenshot(...) cells and the same two <img> embeds for napari_img_and_segmentation.png and napari_celltype_layers.png. Verified by diffing this branch against #55's head — the only differences are #55's additional empty-mask guard; nothing from this PR appears as a removal.

Both changes were validated together on an integration branch merging the two (clean auto-merge, and a content no-op for docs/site/tutorial.md since #55 is a superset). A full docs build was run with the whole pipeline executing for real — remote zarr read, cellSAM segmentation, predict, and both napari screenshots — build succeeded with no cell errors and both images rendering with real content.

That build also confirmed this PR's central premise: napari does render headlessly, so the screenshot cells belong in the source. It needs Xvfb plus a real GLX context (Qt's offscreen platform provides none) and Mesa llvmpipe.

One follow-up on the rebuild note at the end of this PR's description: the from-scratch run surfaced a bug in #55's new guard cell, fixed in 47160acint(mask.max()) reported the largest label ID (4644) rather than the cell count (1743), because cellSAM's labels are not contiguous. It only reproduces on a real cellSAM run; the archive's precomputed mask has contiguous labels, so the two numbers agree there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant