Edge cases#

Audience: computational users + power users
Time: 10–20 minutes
What you’ll learn:

  • Edge cases that commonly break or mislead figure exports

  • How to recognize “this export is not trustworthy”

  • Practical workarounds for pathological states (0 visible points, huge legends, smoke/fog)

Prerequisites:

  • A dataset loaded


Data/state edge cases#

Exporting with 0 visible points (all cells filtered out)#

What you may see:

  • an empty plot region (no points),

  • axes/legend/title may still render,

  • the exported artifact is “valid” but scientifically meaningless unless intentional.

How to handle:

Exporting tiny groups (rare populations, single-cell highlights)#

Common failure mode: the “important” points disappear in an optimized export or become visually insignificant.

Best practices:

  • Use Emphasize selection (mute non-selected points) rather than relying on the rare points being obvious.

  • Avoid Optimized vector if the exact presence of rare points matters; prefer Hybrid or PNG.

  • Increase plot size so single points are visible and anti-aliasing is not lost.

NaN/Inf and invalid values#

If positions/colors contain NaN/Inf:

  • some points can be skipped during rendering,

  • axis bounds can be computed incorrectly (or fall back to a default range),

  • downstream tools may behave unpredictably for SVG.

If you see odd axes or missing regions:

  • verify your exported dataset does not contain NaN/Inf in embeddings,

  • try exporting a smaller subset or a different view to isolate the issue.

Missing/renamed/deleted fields#

Exports rely on the active color-by field and its legend model. If the field was renamed/removed (or differs across snapshot views):

  • the legend can be missing or not shared in multi-panel exports,

  • your export may not match what you thought you were exporting.

Workarounds:

  • confirm the active field immediately before exporting,

  • for multiview exports, keep the same active field across panels when you need a shared legend,

  • export panels individually when each panel uses a different field.


Scale edge cases (big dataset, huge legends)#

Millions of points (SVG size explosion)#

If you have hundreds of thousands to millions of visible points:

  • Full vector SVG can become enormous and slow or impossible to open.

Recommended approach:

  • Use Hybrid SVG or PNG.

  • If you need a fully vector file, use Optimized vector and explicitly disclose point reduction when appropriate.

Category explosion (legend overflow)#

Categorical legends with hundreds/thousands of categories often produce:

  • unreadable figures,

  • huge file sizes,

  • legends that dominate the layout.

Strategies:

  • Switch legend position to Bottom (more space).

  • Disable legend for the figure and mention in the caption how to interpret colors.

  • Reduce categories upstream (merge, filter, or focus on a subset) if scientifically appropriate.

Many views/snapshots (multi-panel export too large/slow)#

Multi-panel export can become huge when you combine:

  • many panels,

  • large plot sizes,

  • and high DPI PNG export.

Strategies:

  • Export fewer panels at a time.

  • Reduce DPI for drafts (150 DPI), then re-export final at 300 DPI.

  • Increase overall plot size only as needed so each panel remains readable.


Rendering edge cases (smoke/fog/overlays)#

3D shader-accurate points and SVG limitations#

Pure SVG circles cannot represent certain “shader-accurate” point appearances (e.g., 3D sphere shading). Cellucid may:

  • automatically switch SVG export to Hybrid (raster points + vector annotations), and/or

  • warn that fidelity may degrade if WebGL2 is unavailable.

If you need the exported points to match the on-screen appearance:

  • export PNG or Hybrid SVG,

  • export from a browser/environment with WebGL2 available.

Depth ordering in dense 3D views#

If points look “inside out” or layering seems wrong:

  • ensure Depth sort is enabled for export.

Axes interpretation in 3D#

In 3D orbit mode, axes are reported in camera-space coordinates:

  • useful for orientation,

  • not the same as “UMAP_1/UMAP_2” in the strict embedding coordinate sense.

If you need axes that correspond to embedding coordinates, export a 2D/planar view.

Connectivity overlay not exported#

Even if connectivity lines are visible in the viewer, exports currently include:

  • the point layer (and related point-based overlays),

  • not the connectivity edges.

If edges are essential for your figure, capture them via another workflow and document how they were generated.


Environment edge cases#

WebGL2 / GPU differences#

PNG and Hybrid SVG exports try to use WebGL2 for shader-accurate point rendering. If WebGL2 is unavailable or restricted (common in locked-down environments):

  • exports can fall back to simpler rendering (flatter dots),

  • you may see fidelity warnings.

Fonts and text layout differences#

SVG exports reference font families. If the font is missing on another machine:

  • the editor substitutes a font,

  • text widths change and legends may shift.

Mitigations:

  • use common fonts (Arial/Helvetica),

  • or convert text to outlines during final figure production (after you are confident in the layout).

Browser download restrictions#

If clicking Export does nothing:

  • your browser may be blocking downloads (popup/download settings),

  • a corporate browser policy may restrict file creation,

  • extensions can interfere.

Try:

  • an incognito window,

  • a different browser,

  • exporting a small PNG first as a “download sanity check”.

Privacy/provenance surprises#

Exports can include:

  • dataset names/ids in filenames,

  • embedded metadata that may include source URLs or local dataset paths.

If you plan to share figures publicly, review Metadata and provenance for inspection/stripping workflows.


Screenshot placeholder (you will replace later)#

Placeholder screenshot for exporting with 0 visible points.

Edge cases like “all cells filtered out” should be explicitly visible in export preview/output.#


Next steps#