Skip to content

[Proposal] Refactor behavioral neurodata types #616

@rly

Description

@rly

Documenting this topic briefly after @bendichter @oruebel and I discussed this today.

We are not a fan of how SpatialSeries objects are labeled/tagged/identified as position data, direction data, eye tracking data, or pupil tracking data based on what container (Position, CompassDirection, EyeTracking, PupilTracking) contains the SpatialSeries. This means that to interpret a SpatialSeries, you need to look at what Container the SpatialSeries is in. In addition, the units of measurement and 2nd axis of the data array are different based on which type of spatial series data is represented. This structure and extra level of hierarchy is confusing for both data curators and data reusers.

Similar for LFP containing ElectricalSeries objects and DfOverF containing RoiResponseSeries objects. Also these container objects usually contain only one instance.

We believe this container-as-label structure was carried over from NWB 1.0, and after years of use and feedback from users, we believe that it would be better to represent these data differently, even if they share common elements. There should just be a separate SpatialSeries-like neurodata type for each of these four use cases without a need for a container object except perhaps for grouping related objects together (depending on use-case). The new types could be related through inheritance (e.g., with a BaseSpatialSeries type) or tags (#531) if desired.

Related historical discussions:

This is a larger-level change that should probably be discussed with the NWB TAB.

Metadata

Metadata

Assignees

No one assigned

    Labels

    category: proposalproposed enhancements or new featurescompatibility: breaking changefixes or enhancements that will break schema compatabilitypriority: lowalternative solution already working and/or relevant to only specific user(s)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions