Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GOAL] Support Range Annotations #35

Open
droumis opened this issue Jun 6, 2023 · 0 comments
Open

[GOAL] Support Range Annotations #35

droumis opened this issue Jun 6, 2023 · 0 comments
Labels
eeg eeg-viewer eeg-viewer workflow ephys ephys-viewer ephys-viewer workflow

Comments

@droumis
Copy link
Collaborator

droumis commented Jun 6, 2023

Summary and Links

  • annotation (lead: @hoxbro)
  • Use holonote for roi/annotation management
  • Potential extension: UI integration into the Bokeh toolbar.

Relevant Workflows

  • ephys viewer
  • eeg viewer
  • spike raster

Inspiration:

  • MNE timespan annotations.. Our 1D annotations should be able to cover the functionality on this tutorial.
  • CaImAn spatial annotation (contours) renderer
  • SpatialData package polygon annotations

Requirements

  • Add/remove individual annotations
    • Add
      • Programmatically
      • UI:
        • Drag inside the data-view to create annotations with the description currently selected, or If there is none selected, can add a new description for the yet uncategorized annotations.
        • editing the table
    • Remove
      • Programmatically
      • UI:
        • right-clicking on an individual annotation, or all selected, for an option to remove
        • editing the table
  • Edit individual annotation range
    • Programmatically
    • UI:
      • dragging them or their boundaries
      • editing the table (ideally with optional dial widgets in each value cell)
      • auto merge overlapping annotation ranges of same description
  • Add/remove/edit description (aka tag / label)
    • Edit the description of one single annotation or all annotations of the currently selected kind
    • Remove description removes all annotations of the input or selected description
    • ability to assign multiple descriptions to the same annotated range
      Styling
    • Auto-color-code any annotations based on description
  • Labels on annotations OR some way to easily derive a legend/color-key from the annotation table
    • image
      Behavior
  • Synchronized annotations across a HoloViews container (overlay, layout)
    • example: annotations need to be linked across eeg-viewer and its minimap
      • image
  • Synchronized annotations across plots in different notebook cells
  • Shift-select of multiple annotations (for batch actions)
  • Live-updating table UI of annotation - (ID, dimN-start, dimN-end, description(s))
    • Ideally as a click & type-editable tabulator-like pane
  • Often, the duration of annotations for a given description will be consistent (e.g. 1 second), so we need some way to create annotations just based on start/onset and a defined duration
  • Here is an example of how annotations are stored for MNE.. it contains original time then onset, duration, and description fields
# MNE-Annotations
# orig_time : 2009-08-12 16:15:00
# onset, duration, description
0.0,4.2,T0
4.2,4.1,T2
8.3,4.2,T0
12.5,4.1,T1
16.6,4.2,T0
20.8,4.1,T1
24.9,4.2,T0
@droumis droumis converted this from a draft issue Jun 6, 2023
@droumis droumis added eeg-viewer eeg-viewer workflow eeg ephys-viewer ephys-viewer workflow ephys labels Jun 6, 2023
@droumis droumis moved this from Todo to GOAL in CZI R5 neuro Jan 4, 2024
@droumis droumis removed the status in CZI R5 neuro Jan 4, 2024
@droumis droumis changed the title GOAL: Annotation handling [GOAL] Annotation handling Apr 5, 2024
@droumis droumis changed the title [GOAL] Annotation handling [GOAL] Support Range Annotations Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
eeg eeg-viewer eeg-viewer workflow ephys ephys-viewer ephys-viewer workflow
Projects
Status: No status
Development

No branches or pull requests

2 participants