MetaCell / MetaCell/nwb-explorer
Real-time plot preview to NWBDataInterface summary
- Dominant language
- JavaScript
- Stars
- 27
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
With the preview view can have a glance of what it's in the plots. The aggregated plot must be generated on the backend side as a png or svg (latter preferred) and take and group all the one dimensional time series within the given NWBContainer.
We can have more than one group with the following clustering rules:
- Same time span
- Same unit of measure
In order to avoid long process we are sub sampling the data to a maximum of 200 points per plot (configurable).
The previews should be generated asynchronously from the geppetto model and in parallel in order to speed up the process.
How to implement:
- We make the clustering within the geppetto model. Each cluster is sent to the frontend within a specific object containing the paths of the time series to be previewed and aggregated. We can use a CompositeType named "PlotPreview"
- The frontend creates a img object for each preview with the src attribute corresponding to the REST api creating the preview (the browser will take care of the rest).
- The backend generates the image with Matplotlib (or holoviews) and returns the bytes af if it were downloaded
The result should look similar to Allen's site previews (http://celltypes.brain-map.org/mouse/thumbnail/ephys_trace?id=313862022). No need of axes specifications and labels.
Target size: 300x150.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the geppetto model, the frontend preview objects, and the REST API boundary described in the issue. Confirm how time-series clusters and paths move between them, then examine the backend image-generation entry point using Matplotlib. Done means asynchronous previews aggregate eligible series, respect clustering and sampling rules, and render at the requested target size.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, matplotlib
- Domain
- api, backend, data-visualization, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100