ezmsg.simbiophys.dnss.synth#

DNSS Synthesizer - Combined spike and LFP signal generation.

Classes

class DNSSSynth(*args, settings=None, **kwargs)[source]#

Bases: Collection

DNSS 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)

SETTINGS#

alias of DNSSSynthSettings

OUTPUT_SIGNAL = OutputStream:unlocated[<class 'ezmsg.util.messages.axisarray.AxisArray'>](self.num_buffers=32, self.force_tcp=False)#
CLOCK = <ezmsg.baseproc.clock.Clock object>#
SPIKE = <ezmsg.simbiophys.dnss.spike.DNSSSpikeUnit object>#
KERNEL_INSERT = <ezmsg.event.kernel_insert.SparseKernelInserterUnit object>#
LFP = <ezmsg.simbiophys.dnss.lfp.DNSSLFPUnit object>#
ADD = <ezmsg.sigproc.math.add.Add object>#
configure()[source]#

A lifecycle hook that runs when the Collection is instantiated. This is the best place to call Unit.apply_settings() on each member Unit of the Collection.

Return type:

None

network()[source]#

Override this method and have the definition return a NetworkDefinition which defines how InputStream and OutputStream from member Unit s will be connected.

Return type:

Iterable[Tuple[Union[Stream, str], Union[Stream, str]]]

class DNSSSynthSettings(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')[source]#

Bases: Settings

Settings for DNSS Synthesizer.

Parameters:
n_time: int = 600#

600 = 20ms at 30kHz).

Type:

Number of samples per block (default

n_ch: int = 256#

Number of channels.

lfp_pattern: str = 'spike'#

“spike” or “other”.

Type:

LFP pattern

mode: str = 'hdmi'#

“hdmi” reproduces HDMI bugs, “pedestal_norm” or “pedestal_wide” for analog.

Type:

Mode

__init__(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')#
Parameters:
Return type:

None

class DNSSSynthSettings(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')[source]#

Bases: Settings

Settings for DNSS Synthesizer.

Parameters:
n_time: int = 600#

600 = 20ms at 30kHz).

Type:

Number of samples per block (default

n_ch: int = 256#

Number of channels.

lfp_pattern: str = 'spike'#

“spike” or “other”.

Type:

LFP pattern

mode: str = 'hdmi'#

“hdmi” reproduces HDMI bugs, “pedestal_norm” or “pedestal_wide” for analog.

Type:

Mode

__init__(n_time=600, n_ch=256, lfp_pattern='spike', mode='hdmi')#
Parameters:
Return type:

None

class DNSSSynth(*args, settings=None, **kwargs)[source]#

Bases: Collection

DNSS 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)

SETTINGS#

alias of DNSSSynthSettings

OUTPUT_SIGNAL = OutputStream:unlocated[<class 'ezmsg.util.messages.axisarray.AxisArray'>](self.num_buffers=32, self.force_tcp=False)#
CLOCK = <ezmsg.baseproc.clock.Clock object>#
SPIKE = <ezmsg.simbiophys.dnss.spike.DNSSSpikeUnit object>#
KERNEL_INSERT = <ezmsg.event.kernel_insert.SparseKernelInserterUnit object>#
LFP = <ezmsg.simbiophys.dnss.lfp.DNSSLFPUnit object>#
ADD = <ezmsg.sigproc.math.add.Add object>#
configure()[source]#

A lifecycle hook that runs when the Collection is instantiated. This is the best place to call Unit.apply_settings() on each member Unit of the Collection.

Return type:

None

network()[source]#

Override this method and have the definition return a NetworkDefinition which defines how InputStream and OutputStream from member Unit s will be connected.

Return type:

Iterable[Tuple[Union[Stream, str], Union[Stream, str]]]