MetaCell / MetaCell/nwb-explorer

Simple component to show Dynamic Tables

Open
#61 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

The NWB specification specifies different kinds of data in dynamic tables, i.e. tables in which the columns can be set programmatically.
The content of a Dynamic table can be any: usually strings, numbers or references to other nwb objects (for instance, an epoch may reference time series objects).

For this first version, we don't do anything fancy with references: we simply display the table with the string representation of the object.

- [ ] Implement a backend method on the model interpreter that creates a specific CompositeType for DynamicTable objects.
- [ ] Write a unit test for the above method
- [ ] Add logic to the ModelInterpreter that while sweeping the file adds fields of type DynamicTable to the model
- [ ] Implement React component on the frontend

There are many different examples of dynamic tables in the [nwb test data](https://drive.google.com/drive/folders/1g1CpnoMd9s9L-sHBWVyklp3-xJcLGeFt?usp=sharing); use test_Units.nwb to start. See also https://docs.google.com/spreadsheets/d/1BK7rIA3XoKHV2HhkwoMgq5E6iBGyoQ26LlTiAWT8O4w/edit#gid=0

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the ModelInterpreter and the test_Units.nwb data to understand how dynamic tables are represented and swept into the model. Implement and test the backend CompositeType handling, add dynamic-table fields during the file sweep, and build the React component that displays values using their string representation; completion means all four checklist items are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react
Domain
backend, frontend, full-stack
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.