MetaCell / MetaCell/nwb-explorer

Real-time plot preview to NWBDataInterface summary

Open
#51 0 comments 0 reactions 0 assignees View on GitHub
PRIORITY: Low
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.