Skip to content

Defining the scope #2

@kushalkolar

Description

@kushalkolar

I think this is perhaps the most important thing to start with. What types of visualizations do we want to support?

We look at this for some ideas and try to have at least everything they have: https://github.com/holoviz-topics/neuro

The vague idea of our scope is simultaneous visualization of calcium/electrophysiology data integrated with behavioral data. Maybe we can build a list of all the visual elements that are possible here (feel free to edit this issue and add to the list):

calcium imaging video

  • unlimited size
  • multiple FOV
  • with spatial footprints
    • shown as contours or transparent overlays

calcium or ephys traces

  • as lines
    • support thousands in a line stack
      • subsample if extremely large since line rendering is expensive
      • if the entire line-stack shows subsampled data, use a LinearRegionSelector to zoom-in on sections and show the selected region in another subplot. Sync any graphic features between the full-graphic and selection-graphic (maybe later we can provide a way in fpl to auto-support this, perhaps implemented in LinearRegionSelector?).
  • colors based on a categorical feature (ex. behavior states)
  • as a heatmap, also have the option to use a LinearRegionSelector or RectangleRegionSelector

behavior video

  • overlay entire track as a line
    • display a single track (ex. center of mass) or all tracks (ex. head, tail, paws etc.)
    • allow making a window of time around the current timepoint visible (alpha = 1) and the rest transparent
    • if multiple tracks are displayed (ex. paw, tail), easy way to choose alpha for each
    • auto-sync with calcium/ephys using pynapple magic 🍍 🪄
    • BallSlider to allow scrolling through time by moving the mouse along the tracks.
      • If there are mutliple tracks, maybe use a keyboard key to denote the "active" track for the BallSlider

Downstream analysis, ex: PCA, behavior (velocity? etc.)

  • All downstream analysis results should be converted to a pynapple array and have a time axis so they can be synchronized with all other visualizations.
  • Allow user to display downstream analysis with a graphic of their choice, line, linestack, heatmap, scatter or video, and the corresponding tools are auto-available for each. Ex. if it's a PCA they could use line(s) and a BallSlider
    • This might help us create a base abstraction from which all the visualization are made

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions