Expand description
What a domain plugin adds to the core app (electrophysiology: dspk-app-synapse). The core
works on any multichannel signal; a plugin brings its domain:
| Extension | The core asks | e.g. electrophysiology |
|---|---|---|
SourceOpener | open this file (before dspk-io’s generic formats) | SpikeGLX, NWB, with probes |
ChannelLayout | how channels group, what to call them | shanks, site positions |
AppPlugin::synthetic | a recording made up on demand | drifting units, noise, hum |
AppPlugin::trace_overlay | what to draw over the traces of a window | spikes coloured by unit |
AppPlugin::workspace | the body of a workspace tab | Sorting |
AppPlugin::recording_epochs | the epochs a recording file holds | NWB /intervals (epochs, trials) |
AppPlugin::aligned | what to show in Analytics around a set of events | units: raster and PETH |
AppPlugin::panel, AppPlugin::view_section | a panel on the right side bar, for the active view | Sorting: the linked sorting, units, Sort… |
| per-view data in the session document | views[i].plugins.<id> (any JSON) | the linked .sorting.zarr |
Plugins are compiled in (Rust has no stable plugin ABI): the dspk-app binary registers the
ones it is built with (register) before the app starts. Programs under another licence
(the GPL sorters) stay separate processes a plugin runs; they are never linked.
Structs§
- Channel
Group - Channel
Layout - Channels in groups (e.g. the shanks of a probe) and a label per channel (e.g. its site).
- Layers
- What a view’s data holds beyond its continuous signal (traces and heatmaps need only the signal): spike times (the Spikes layer) and units (the Raster layer).
- Overlay
Mark - Overlay
Unit - Raster
- Spike rows for a raster view: per unit its colour, label and spike times (session seconds) in the window.
- Raster
Row - Trace
Overlay - What to draw over a window of traces: per unit its colour and channels, and marks (spans of
session time) of those units. With
dim, the traces themselves are drawn faint so the marks stand out.
Traits§
- AppPlugin
- A domain plugin. Every method has a default: a plugin implements what it adds.
- Source
Opener - Opens the files of a domain’s formats.
Functions§
- layers
- What the installed plugins can draw for session view
view, together. - layout
- The channel layout of source
idofpath, from the opener that reads it. - open
- Source
idofpath(None: the file’s default source). - open_
source - Source
idofpath, by the opener that listed it. - plugins
- The registered plugins (none when
registerwas not called: tests, a core-only build). - register
- Registers the plugins the app is built with (once, before it starts).
- sources
path’s sources: the first plugin that reads the file, else dspk-io’s generic formats.- synthetic
- A synthetic recording from the first plugin that makes one.