Skip to content

Multi-session: allow specifying the SpikeGLX stream once for all sessions #1085

Description

@rly

Summary

In the multi-session conversion workflow, the SpikeGLX (and any interface with a required non-path parameter such as stream_id) must have its stream entered separately on the Source Data page for every session. Because most users use the same stream across all sessions, this is tedious and error-prone as the session count grows.

Current behavior

  • stream_id is a required free-text string in neuroconv's SpikeGLX source schema (e.g. imec0.ap).
  • With locate_data enabled, the Locate Data (Path Expansion) page collects per-interface shared settings (base_directory, format_string_path) and auto-locates files across sessions, but it does not collect the stream.
  • The Source Data page then renders one form per located session, each requiring stream_id, so the same value is typed once per session.

A "set once" path already exists via the Edit Default Values button on the Source Data page (its global modal keeps stream_id), but it is hard to discover: a small header icon on a later page, with little suggesting that it can set the stream for all sessions.

Proposed change

Surface the shared non-path source-data fields (e.g. stream_id) on the Locate Data page, next to base_directory / format_string_path, backed by the same project.SourceData globals that Edit Default Values already writes. This keeps a single source of truth, lets the stream be set once where users expect it (right after autocomplete locates files), and keeps per-session override behavior.

Scope:

  • For each interface on the Locate Data page, pull its required non-path properties from globalState.schema.source_data and add them to that interface's generated schema.
  • In beforeSave, route those values into globalState.project.SourceData[interface] (not into the neuroconv/locate payload, which rejects unknown props).
  • Keep Edit Default Values as the fallback/override editor, since the Locate Data page only exists when locate_data is enabled.

Relevant files: src/electron/frontend/core/components/pages/guided-mode/data/GuidedPathExpansion.js, src/electron/frontend/core/components/pages/guided-mode/data/GuidedSourceData.js.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestinterfaceAdd support for a specific NeuroConv interface / converter

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions