Skip to content

feat(component): stripped-down React component package for Option 4#233

Draft
inodb wants to merge 6 commits intocBioPortal:mainfrom
inodb:cell-explorer-option4
Draft

feat(component): stripped-down React component package for Option 4#233
inodb wants to merge 6 commits intocBioPortal:mainfrom
inodb:cell-explorer-option4

Conversation

@inodb
Copy link
Copy Markdown
Member

@inodb inodb commented Apr 24, 2026

Summary

Introduces @cbioportal-cell-explorer/component — a thin wrapper around the highperformer viewer exposing a single <CellExplorer> React component with a minimal props surface (url, filterConfig). Designed for embedding in cbioportal-frontend per option 4 of cBioPortal/cbioportal#12126.

  • New package under packages/component/
  • Single exported component + types (MappedColumnSpec, CellExplorerFilterConfig, CellExplorerProps)
  • Vite lib-mode build; React + react-dom as peer deps
  • pnpm-lock.yaml updated; no changeset yet (prototype)

The standalone packages/app/ is unchanged — the component will be wired in later so upstream CI keeps exercising it.

Blocked on

Companion PR

Status

Draft — prototype quality. No npm publish yet; consumer uses a vendored pnpm pack tarball locally.

Test plan

  • pnpm build the component package
  • Consume from cbioportal-frontend via vendored pnpm pack tarball
  • Viewer mounts against the public zarr (msk_spectrum_tme_2022) and renders UMAP cells
  • Decide on scoped vs unscoped npm name, add changeset, publish

🤖 Generated with Claude Code

Copilot AI and others added 6 commits April 23, 2026 21:34
Lets the host (e.g. cBioPortal) pass a {patientId: value} mapping plus
a reference obs column (e.g. donor_id) to color cells by data that only
lives in the host's database — clinical attributes, ID-based groupings,
etc. The mapping is expanded to cell-level via the obs column join key,
stored as a virtual obs column, and appears in the color-by dropdown
alongside native zarr columns.

- schema: add MappedColumnSchema and optional mappedColumns field
- store: add mappedColumnData Map + registerMappedColumns action; teach
  selectObsColumn to resolve virtual columns without going to zarr
- applyConfig: register mapped columns in phase 3a (before color-by)
- openDataset: preserve already-registered mapped-column labels when the
  async obsColumns() fetch completes, fixing a race where the fetch
  overwrote the label list

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduces @cbioportal-cell-explorer/component — a thin wrapper around the
highperformer viewer that exposes a single <CellExplorer> React component
with a minimal props surface (url, filterConfig). Designed for embedding in
cbioportal-frontend per option 4 of cBioPortal/cbioportal#12126.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
inodb added a commit to inodb/cbioportal-frontend that referenced this pull request Apr 24, 2026
…z for Netlify

Replaces the file:../cbioportal-cell-explorer/... sibling-path dep with a
committed pnpm-pack tarball at vendor/cbioportal-cell-explorer-component-0.0.1.tgz.
The sibling-path form only resolved on a local multi-worktree checkout —
Netlify's deploy preview only has this repo, so pnpm install would fail.

The tarball is produced from the same source as cBioPortal/cbioportal-cell-explorer#233;
refresh it with:

  pnpm -F @cbioportal-cell-explorer/component pack --pack-destination …/cbioportal-frontend/vendor/

Prototype workflow — will be replaced by a real npm dep once the component
package is published.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants