ezmsg.simbiophys.dnss#
DNSS (Digital Neural Signal Simulator) signal generation.
- class DNSSLFPProducer(*args, **kwargs)[source]#
Bases:
BaseClockDrivenProducer[DNSSLFPSettings,DNSSLFPState]Produces DNSS LFP signal synchronized to clock ticks.
Each clock tick produces a block of LFP data based on the sample rate (fs) and chunk size (n_time) settings. All channels receive identical LFP values.
- class DNSSLFPSettings(fs=30000, n_time=None, n_ch=256, pattern='spike', mode='hdmi')[source]#
Bases:
ClockDrivenSettingsSettings for DNSS LFP producer.
- __init__(fs=30000, n_time=None, n_ch=256, pattern='spike', mode='hdmi')#
- class DNSSLFPUnit(*args, settings=None, **kwargs)[source]#
Bases:
BaseClockDrivenUnit[DNSSLFPSettings,DNSSLFPProducer]Unit for generating DNSS LFP from clock input.
- Parameters:
settings (Settings | None)
- SETTINGS#
alias of
DNSSLFPSettings
- lfp_generator(pattern='spike', mode='hdmi', fs=30000)[source]#
Generator yielding LFP samples for the DNSS pattern.
This is a send-able generator. After priming with next(), use send(n_samples) to get LFP values for the next n_samples window. The generator maintains internal state tracking the current sample position.
- Parameters:
- Yields:
1D array of LFP values (same for all channels).
- Return type:
Generator[ndarray[tuple[Any,...],dtype[float64]],int,None]
Example
gen = lfp_generator(fs=30000) next(gen) # Prime the generator lfp = gen.send(30000) # Get 1 second of LFP lfp = gen.send(15000) # Get next 0.5 seconds
- class DNSSSpikeProducer(*args, **kwargs)[source]#
Bases:
BaseClockDrivenProducer[DNSSSpikeSettings,DNSSSpikeState]Produces DNSS spike signal synchronized to clock ticks.
Each clock tick produces a block of spike data as sparse COO arrays based on the sample rate (fs) and chunk size (n_time) settings.
- class DNSSSpikeSettings(fs=30000, n_time=None, n_ch=256, mode='hdmi')[source]#
Bases:
ClockDrivenSettingsSettings for DNSS spike producer.
- __init__(fs=30000, n_time=None, n_ch=256, mode='hdmi')#
- class DNSSSpikeUnit(*args, settings=None, **kwargs)[source]#
Bases:
BaseClockDrivenUnit[DNSSSpikeSettings,DNSSSpikeProducer]Unit for generating DNSS spikes from clock input.
- Parameters:
settings (Settings | None)
- SETTINGS#
alias of
DNSSSpikeSettings
- spike_event_generator(mode='hdmi', n_chans=4)[source]#
Generator yielding spike event indices for the DNSS pattern.
This is a send-able generator. After priming with next(), use send(n_samples) to get spikes for the next n_samples window. The generator maintains internal state tracking the current sample position.
- Parameters:
- Yields:
Tuple of (coords, waveform_ids) –
coords: Shape (2, n_spikes) array of [sample_indices, channel_indices]
waveform_ids: Waveform shape identifiers (1, 2, or 3)
- Return type:
Generator[tuple[ndarray[tuple[Any,...],dtype[int64]],ndarray[tuple[Any,...],dtype[int64]]],int,None]
Example
gen = spike_event_generator() next(gen) # Prime the generator coords, waveforms = gen.send(30000) # Get spikes in first 30000 samples coords, waveforms = gen.send(15000) # Get spikes in next 15000 samples
- class DNSSSynth(*args, settings=None, **kwargs)[source]#
Bases:
CollectionDNSS Signal Synthesizer.
A Collection that generates combined DNSS spike and LFP signals. Uses a common Clock to synchronize: - Spike generation (sparse events with waveform insertion) - LFP generation (sum of sinusoids)
The final output is the sum of spike waveforms and LFP signal.
- Network flow:
Clock -> {SpikeGenerator, LFPGenerator} SpikeGenerator -> KernelInserter -> Add.A LFPGenerator -> Add.B Add -> OUTPUT
- Parameters:
settings (Settings | None)
- ADD = <ezmsg.sigproc.math.add.Add object>#
- CLOCK = <ezmsg.baseproc.clock.Clock object>#
- KERNEL_INSERT = <ezmsg.event.kernel_insert.SparseKernelInserterUnit object>#
- LFP = <ezmsg.simbiophys.dnss.lfp.DNSSLFPUnit object>#
- OUTPUT_SIGNAL = OutputStream:unlocated[<class 'ezmsg.util.messages.axisarray.AxisArray'>](self.num_buffers=32, self.force_tcp=False)#
- SETTINGS#
alias of
DNSSSynthSettings
- SPIKE = <ezmsg.simbiophys.dnss.spike.DNSSSpikeUnit object>#
- class DNSSSynthSettings(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')[source]#
Bases:
SettingsSettings for DNSS Synthesizer.
- __init__(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')#
Modules
# LFP |
|
Produce data mimicking Blackrock Neurotech's Digital Neural Signal Simulator |
|
DNSS Synthesizer - Combined spike and LFP signal generation. |
|
Spike waveforms matching Blackrock Neurotech's DNSS |