Spike2 is an excellent tool for general purpose capture and analysis of experiment data. However, it can also control your experiment and respond to changes in the incoming data.
Stimulate - Control - Respond
Spike2 can generate stimulus sequencing and complex experiment control in real time during data capture using its built-in output sequencer and a CED 1401 interface. To ensure accuracy, digital and analogue output timing is controlled directly by the 1401 and does not rely on the host PC. Additional control is available when using the Spike2 script language.
Build waveform profiles and generate digital outputs in an easy-to-use graphical editor
Use output pulses to trigger current, voltage and magnetic stimulators while simultaneously recording and analysing responses
Control stimulus generators and switch between stimulus protocols at the click of a button or press of a key
Output serial-line data using the script language to control external equipment such as audiometers or TMS units for deep brain stimulation
Automatically control the sequencing of stimulus protocol outputs in real-time based on changes in incoming waveform and event data
Stimulus generation and on-line measurement of evoked response
Output sequencer
The sequencer controls up to 8 waveform and 16 digital outputs from a CED 1401 interface. A graphical editor gives a user-friendly display of the selected outputs for fast and easy creation of stimulus protocols. There is also a text editor which gives direct access to the sequencer instruction code for more complex output and control requirements.
Drag-and-drop pulses from a palette onto output tracks in the editor
Modify pulse timing and amplitudes quickly and easily
Use digital pulses and pulse trains to trigger external devices
Generate variable amplitude square pulses, sine waves and voltage ramps to control external equipment
Combine pulses such as square waves and ramps for ramp-and-hold
Control variable intensity stimuli such as temperature, current and voltage
Output user-defined waveforms, pre-recorded and imported data for control and stimulation
Define pulse protocols as separate sections in the output sequencer and link them together for automated stimulus sequencing
Copy pulse information between sections to quickly set up a series of similar stimulus protocols
Make use of control statements such as loops and branches and randomise delays and stimuli
Record digital input states directly to a marker channel and generate codes to flag events
Read digital input and sampled waveform values directly and branch on the result if a given condition is met
Graphical sequence editor
Waveform output
In addition to generating voltage pulses, ramps and cosine waves through the DACs, Spike2 can also play arbitrary waveforms.
Play waveforms from up to 4 outputs
Start and stop playing waveforms from a toolbar button, keyboard press or in response to external triggers
Cycle waveform output and link multiple waveform sections
Dual waveform output of cricket song data and tone pip
Stimulus sequencing
Pulse outputs can be defined as separate sections in the output sequencer, allowing the user to define many different pulse protocols. The sequencing of outputs can be controlled manually or automated using the control commands available from the sequencer or script language.
Manually control sequencing with the press of a key
Automate stimulus sequencing by using control commands including branches and loops
Respond to changes in waveform or event data
Implement random delays and branches with set probabilities
Control using the text editor
The text editor gives full access to all capabilities of the output sequencer. As well as the standard instructions for general digital and analogue output control, the text editor can make more efficient use of flow-of-control statements and has a number of additional commands for specialist operations. The text editor allows the user to set variables and expressions for sequencer instructions in place of fixed values.
Custom pulse generation from a script and text sequence
Script language and sequencer interaction
The output sequencer can be controlled interactively or automatically using the built-in control commands. However, there are times when it is necessary to read and update output values in real time. For this kind of situation the output sequencer can be controlled by the Spike2 script language.
A script interacts with the sequencer by sending and receiving variables which represent waveform amplitudes, digital states and timing values. Larger blocks of data, such as a list of pre-recorded spike intervals for stimulus output or a series of event times calculated to produce a linear frequency ramp, can be transferred using the built-in sequencer table.
As an example, in S1-S2 heart pacing protocols where the interval between pulses is progressively reduced until it reaches a defined time or the stimulus induces arrhythmia, a script and sequence combination can provide complete experiment control. The sequencer controls the real-time generation and timing of the pacing pulses while the script acts as a high level 'supervisor', allowing user interaction and updating the sequencer values in response to changes in the incoming data. Once arrhythmia is detected, the script automatically stops the stimulus output.
Example of S1 - S2 stimulus protocol generated using a script and text sequence
CED hardware
Use of the output sequencer requires one of the family of 1401 intelligent laboratory interfaces.