Spike Hound v1.2 Suite of Software Tools for Data Acquisition & Experiment Control Software Oscilloscope & Data Logger, Stimulus Pulse & Component Function Generator Output Digital I/O Signal Conditioning, Visualization, & Cross‐Correlation Real Time Event Detection & Analysis Open Source Release User’s Manual ©2010 Gus K Lott III, PhD Neurobiological Instrumentation Engineer Howard Hughes Medical Institute 19700 Helix Dr., Ashburn, VA 20147 lottg@janelia.hhmi.org guslott@yarcom.com April 11, 2010 Introduction Spike Hound (formerly “g‐PRIME”) is a data acquisition and real time analysis package designed for use in physiology labs where continuous multi‐channel data is acquired and discrete events are analyzed. The software allows for connection to a broad range of popular data acquisition hardware from high end, calibrated data acquisition boards to the sound card in your computer. Spike Hound allows for signal visualization, real‐ time filter applications, audio output, and data logging with meta‐ data. Spike Hound replaces and exceeds the functionality of several classical bench‐top tools including the oscilloscope and arbitrary function generator. Spike Hound offers many powerful features for scientific visualization with a user friendly interface developed in a feedback process with neurophysiology researchers and students at the university level. This software is written in the Matlab® scientific programming environment, but is compiled as a stand‐alone program (Windows ONLY) and does not require a Matlab® license. As such, it supports all of the hardware supported by the Matlab Data Acquisition Toolbox®. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 2 Contents 1. Installation & Supported Hardware 1.1. Sound Card, Parallel Port 1.2. Custom Adaptors from Other Vendors 2. Connecting to Input Hardware, Visualizing, & Recording Data 2.1. Selecting an Input Device 2.2. Adding Channels 2.3. Visualizing Data 2.3.1. Zooming, Offsetting, Listening to & Pausing a Channel 2.4. Time Controls (Sampling Rate, Sweep Width, & Trigger Modes) 2.5. Recording Data 2.6. Experiment Meta‐Data Notes 2.7. Saving/Loading a Scope Session 2.8. Advanced Input & Visualization Controls 2.9. NIDAQ Signal Routing 3. Stimulus Generation 3.1. Connecting to an Output Device 3.2. Configuring the Output Interface 3.3. Pulse Train Generation 3.3.1. Manually Configured Constant Amplitude 3.3.2. Script Driven Variable Amplitude/Duration 3.4. Component Function Generator 4. Digital I/O 4.1. Connecting to a Device 4.2. Adding a Line or Port In/Out 4.3. Configuring & Logging Digital Data 4.4. Synchronizing with Raw Analog Data Logging, Digital Data Format 5. Live Signal Conditioning, Event Detection & Analysis 5.1. Connecting to a Signal Source 5.2. Fourier Spectrum & Spectrogram 5.3. Low & High Pass Filters, Notch Filters 5.4. Two Level Thresholding & Event Detection 5.4.1. Invert, Rectify, Window Center & Width 5.5. Event Analysis Parameters 5.6. Thresholding Within the Analysis Space 6. Multi‐Channel Correlation (Event Triggered Average) 6.1. Selecting a Target 6.2. Trigger Location, Correlation Center, Display Configuration 6.3. Correlation Auto‐Reset Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 4 4 4 5 5 5 5 5 7 8 8 9 9 10 11 11 11 11 11 12 13 14 14 14 15 15 16 16 17 17 18 18 19 19 20 20 20 21 3 Installation Three Easy Steps to Your Spike Hound Installation 1. Install the Matlab Component Runtimes version 7.7 (MCRInstaller.exe) 2. Install the LabView Run‐time Engine version 7.1 (LVRunTimeEng.exe) This step may be skipped if you do not wish to run the NIDAQ signal routing algorithm in the advanced menu 3. Unzip spikeHound.exe & spikeHound.ctf into a directory. Double click spikeHound.exe You may create a shortcut to spikeHound.exe and place that anywhere on your computer (such as your desktop) Supported Hardware Spike Hound supports all hardware supported by the Matlab Data Acquisition Toolbox as of version 2.11. Supported hardware includes data acquisition systems from: Acqiris, ADLINK, Advantech, Agilent, CONTEC, Data Translation, g.tec, IOTech, Keithley Instruments, Measurement Computing, National Instruments, United Electronic Industries, VXI Technology Sound Card, Parallel Port In addition to the above vendors, Spike Hound supports Analog Input and Output using the Windows sound card interface for the sound card in your computer. Modern sound cards are remarkably efficient and many extend to sampling rates at ultrasonic frequencies allowing for many applications in research/educational physiology for virtually no cost. Caveats to remember are that most sound cards have a relatively high (5+kHz) lowest possible sampling rate and they are generally AC‐coupled inputs (no DC signals) with uncharacterized input filters. But the “volume” controls act as a pre‐ amplifier for your signal and any differential voltage can be fed into the microphone port via a mini‐phono connector to interface a data source with your computer for no extra cost. The parallel port on many modern computers may also be used as a digital I/O interface. Custom Adaptors from Other Vendors If your hardware is not natively supported by the data acquisition toolbox, the vendor may write a Matlab data acquisition adaptor which allows Spike Hound to interface with the device. Your vendor may offer this with the hardware they provide. If your vendor provides a data acquisition toolbox adaptor for Matlab, simply drop the adaptor DLL file into the Spike Hound directory and Spike Hound will automatically detect and register it at start‐up. Details on custom adaptor authoring are provided by Matlab and require advanced programming skills. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 4 Connecting to Input Hardware Selecting an Input Device When Spike Hound initializes, it will scan your computer for available data acquisition devices and create an interface list in the “Input” menu. Devices will be separated into categories by vendor/driver and the currently selected interface will have a check next to its name. If the input device you connect to also has the capacity to generate analog signals, you will be prompted to connect to the device’s output for the stimulus/signal generation features offered by Spike Hound. Adding Channels Below the main scope window is the “Available Channels” section of the interface controls. If it is not displayed, click the “Chan” select button at the lower left of the green scope window. You may give the channel a name or simply click the add button and a name will be generated for you. The color for the display trace for your channel may be modified by clicking the button labeled “Color” before adding the channel to your scope. In order to change the name or color of a trace, the channel must be removed and re‐added with the new properties. Visualizing Data in the Main Scope Scaling and Placing a channel in the Scope Any channel in the scope window may be moved for parallel visualization with other channels and it may be scaled in order to visualize larger or smaller signals. You may only modify one channel at a time and that channel must be selected by clicking on it in the “Active Channels” interface panel. The Channel Display Controls for the currently selected channel will appear to the right of the “Active Channels” interface box. Zoom in/out on a single channel by scrolling the mouse wheel or selecting a value in the “Volts per Division” select box Move a Channel vertically in the scope by clicking on the channel’s name and dragging it vertically. Subtract DC Visually from a signal to remove DC offsets such as resting potentials for visualization only. External Gain may be specified and the trace in the scope window will be scaled to demonstrate a pre‐amplification level for your signal. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 5 ADC Input Range corresponds to the preamplifier settings in the ADC board you are connected to. Setting this range determines the max and min voltages that may be converted. This setting controls the quantization level for your system. Listening to a Channel on Your Computer Speakers You may attempt to output the channel as audio on your system’s sound card (i.e. in order to hear spikes or other signal content of interest). Simply click the “Listen” check‐ box in the “Active Channels” interface panel and Spike Hound will attempt to output the channel as audio on your system sound card. Select a different channel and spike hound will automatically switch the audio output to your computer speakers. Volume on the “Listen” audio output is proportional to the signal size in the scope window. Max volume on your speakers corresponds to the full range of the current scope for that channel. So if your scope was set to 1V per division, any signals above 5V would be clipped on your speakers. Remember that you can further increase volume on your speakers (the volume knob) or in the Windows sound configuration utility. There may be problems with generation if your sound card does not support the same sample rate as your data acquisition device. You may hear a popping sound as the software generates a signal at a different rate from which it is acquiring the data. No interpolation was implemented (in order to match sample rates) due to computation overhead. If you have issues with this, and you want a smoother sound output, it is recommended that you acquiring using standard sound card sampling rates such as 11025 and 22050 and 44100 Hz. Pausing & Visualizing a Channel If you wish to pause a streaming channel in order to capture what is currently displayed on your scope or to assist in visualizing your data, click the gray “Pause” button in the upper right of the scope window. This same feature is available in the Live Data Analysis tools. If you wish to save the raw scope contents to a Matlab (.mat) file, select the green “.MAT” button in the upper right of the scope window. This is different than the data logging features and only applies to the current scope contents. For raw data logging, the Spike Hound recording features should be used. You may also extract the contents of the scope window to a separate figure for comparison or to export to a graphics file such as a JPEG or TIFF using the maroon square button. All trace windows have a maroon button that can be used to export the trace contents to a window for export/comparison. Right Click the maroon button to send the data to an active extraction window for multiple trace overlay. Click the Rainbow button in the extracted figure to open up a property editor for the extracted trace and the axis that contains it. You can modify trace color, width, and data markers to generate publication quality graphics. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 6 Time Controls – Sample Rate and Sweep Width Sample rate and sweep width is controlled for all input channels from the “Time” interface panel. Simply modify the values here to change the scope display. An unsupported value will be replaced with the nearest available sample rate for your interface device. Trigger Modes There are several trigger modes for the input interface in Spike Hound just as you would find in a modern digital oscilloscope. 1. Continuous This mode simply streams data continuously into the scope and is supported by all input interfaces. 2. Manual Manual trigger mode will acquire one “full span” of input data upon a manual click of the “Trigger” button in the “Trigger” interface panel 3. Channel Software Level based triggering. Select a channel source from the pop‐up menu and either enter a voltage level or drag the threshold bar in the main scope window to select a trigger level. When the voltage on the input channel passes that level, a single “Full Span” of input data will be acquired. 4. External (HWDigital) Supported by several National Instruments (NIDAQmx) Devices, a hardware pin can be used to trigger a “full span” sweep on a TTL pulse (5V). Generally, the default external trigger is PFI0 and may be set in the NIDAQ advanced configuration tools in Spike Hound. 5. Stimulus (Software) If you don’t wish to devote a channel to a trigger signal or your board does not support the HWDigital trigger mode, this mode issues a software trigger whenever a pulse train is triggered from the “Pulse Train Stimulus Generation” output interface in Spike Hound. Pre‐Trigger Data in Manual and Channel Trigger Modes In the upper left of the scope window is a “T” indicating the location of zero time. Click and drag this T to place the zero time point in the scope window. Upon acquisition of a manual or channel based sweep trigger, the scope will display pre‐trigger event data to allow you to visualize what preceded your trigger event. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 7 Recording Data Data Logging in Spike Hound streams raw sampled data from your interface device to a file on your hard disk. Regardless of your visualization settings, Spike Hound will stream the actual voltage levels from your interface to file. 1. Specify a File Name Click the “File Name…” button in the record controls interface and specify a file name. No file name (other than temp.daq) will ever be overwritten. Iterated file names will be generated. The “Open Dir” button to the right of the file name select button will open the current directory in windows explorer so you may modify files that you are logging without having to search down to that directory manually. 2. Select a Trigger Mode See Previous Section on trigger modes. Any trigger mode is supported during data logging. A single file will log several trigger events and you must manually stop the recording in any mode other than continuous. If a fixed duration is set, continuous triggering will end the acquisition session at the end of the set elapsed time. Any other trigger mode will acquire the “fixed duration” amount of data after each trigger and the session must be manually ended. 3. Select a Record Duration You may record indefinitely (until you manually stop the recording or you run out of disk) or you may indicate a specific period of time (in seconds) to record and Spike Hound will stop after the specified time. 4. Hit the “Record Start” Button That’s all. The interface will prevent specific parameter changes (gray out) during logging, but channel visualization will be available. Note that “Subtract DC” and “External Gain” visualization data will NOT be logged to file. Experiment Meta‐Data Notepad The “Metadata” button in the “Record” interface panel will open an editable notepad style text box that allows for information to be logged with your saved data. This is an ideal place to enter experiment parameters associated with your specific experiment run. If the metadata pad has contents when you hit the record button, this information will be stored in a text file with the same name as your save data file combined with the “_info” extension. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 8 Saving a Scope Connection State Once you have several channels added to your interface and a variety of setup parameters in place, you may wish to save this state information for loading the next time you open Spike Hound. Save Current Scope State using the option in the “Advanced” menu The scope state saved in file name “default.mat” will automatically load when you open Spike Hound. Any other saved state may be loaded from the “Advanced” drop down menu at the top of the scope window. Load a Scope Connection State As with state saving, any saved connection state may be manually loaded using the option in the “Advanced” drop down menu. Advanced Input & Display Controls Input Configuration There are many advanced control parameters that the user may modify beyond the basics generally used in every-day recording. Many of these options may be accessed from the “Input Cfg” button at the bottom left of the main scope window. Input Type – Modify the state of your board input channels. Generally this allows for “single ended” or “differential” recording modes supported by your specific system. Input Clock Source – Bypass the “sample rate” property for the board input and use an external clock source to control your system’s sample rate. For NIDAQ boards (in next section), this external clock signal is provided on the “InExternalXXXClockSource” Channel configurable from the NIDAQ controls. Channel Skew – This refers to the rate at which the system jumps between channels in a multiplexed acquisition system. For non-simultaneous sample boards, an internal multiplexer rapidly jumps between input channels to convert the voltage levels. The Skew determines the time between jumps and relates to sub-sample phase measurements. Generally you will use either “minimum” (requires calibration for accurate phase measurements at frequencies near the nyquist) or “equisample” which divides the steps up evenly within the sample period. NIDAQ Specific Conifgurations For National Instruments ® data acquisition systems, Spike Hound offers many specific controls for board systems. Internal clock rates may be linked to an external source pin on the National Instruments interface. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 9 InHwDigitalTriggerSource – This parameter sets the source line for “External (HWDigital)” trigger mode. The line set here will initiate a sweep trigger upon a TTL low to high transition. InExternalSampleClockSource – Sets the pin used to control the sampling of individual channels in a single scan of all channels on a non-simultaneous sample system (see Channel Skew in previous section). (Must set “Input Clock Source” parameter to external) InExternalScanClockSource – Sets the input pin to drive a single sample acquisition from all connected channels. For example, link the output clock signal to this pin to synchronize stimulus presentation with data acquisition on a sample per sample basis. (Must set “Input Clock Source” parameter to external) NIDAQ Signal Routing Spike Hound offers a feature not currently available in the Matlab Data Acquisition Toolbox®. You may access the full signal routing features of the National Instruments DAQ boards to link any number of clock signals to external pins to synchronize a single board or to connect clock signals between multiple systems running Spike Hound or other data acquisition software. The “NI DAQmx signal routing” interface is accessible through the option of the same name in the “Advanced” drop down menu in the main scope figure. You may select any input channel available for your system and rout it to any target pin on any other system supported. You may also disconnect a previously established connection. There is no way to poll the state of internal connections, so you must manually track connection states internal to your board as you apply them. These internal connection states will not be saved using the state saving option in the advanced menu. Advanced Graphics Controls In addition to advanced input configuration, visualization of input channels may be optimized for your system using hardware acceleration and the scope may be extracted for full screen visualization. Full Screen Scope Mode – Selecting this option from the “Advanced” menu will extract the scope portion of the active channels into its own window which can be maximized to fill your computer screen for visualization. Measure off Active Trace – This option allows for a line to be drawn on the scope between two points giving a rough estimate of waveform size parameters. Just select this option and click and drag on the scope window to measure. Graphics Acceleration – This advanced control allows for graphics rendering to be offloaded to your PC video card using OpenGL rendering where supported. This drop down menu lists all available graphics acceleration settings for your system. Note that if you select hardware graphics acceleration, the overlay may only work on your main monitor (not a secondary monitor). This may allow for visualization of many more channels with less software strain. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 10 Stimulus Generation Connecting to an Output interface If you did not automatically connect to an output interface when you connected to your input hardware, you may select your output interface in an identical manner to input selection using the “Output” drop down menu in the main scope figure. The currently selected interface will have a check mark next to it. Output Interface Configuration Once connected, a variety of configuration parameters are available to Spike Hound. They are accessible from the “Signal Generation” control interface through the “Output” button to the bottom left of the main scope window. Sample Rate – The sample rate may be configured for your output device just as with the input interface. Output Range – Defines the quantization level for your specific board as well as the maximum and minimum voltage values your system is capable of generating. Clock Source – As with the input interface control, this parameter allows you to set an external clock source for your signal generation (bypassing the sample rate property). Output clock source is configurable for NIDAQ systems using the “OutExternalClockSource” property in the NIDAQ Configuration panel. In this configuration panel, you may also access the Pulse Train Generation or Component Function Generator subsystems in Spike Hound. Stimulus Pulse Train Generator Spike Hound offers a graphical signal generation system that allows for the production of stimulus pulse trains useful for a variety of physiological experiments in electrophysiology including voltage clamp current measurements and cell/synapse potentiation studies using rapidly repeated stimulus. The pulse train interface allows for single shot or repeated stimuli to be constructed or for arbitrary pulse trains with varying amplitudes to be loaded from a script file. Manually Configured Constant Amplitude Pulse Train Generation o By selecting the “One Pulse,” “Two Pulses,” or “Tetanic” stimulus options, the user may generate a series of pulses on a single output channel of their output interface. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 11 o This mode requires two output channels available on the output subsystem. The first channel (generally channel 0) contains the pulse train and the second channel contains a short TTL trigger pulse that may be used to synchronize a variety of systems with the stimulus waveform. o Waveform shape controls include: Pulse Duration – Global pulse width for all pulses Delay 1 – Delay from TTL Trigger before initiation of pulse 1 Delay 2 – Delay from initiation of pulse 1 to initiation of pulse 2 Tetanus Duration – Length of time to present a tetanic pulse train Tetanus Interval – Delay between initiation of tetanus pulses Delay 3 – Delay between final tetanic pulse and post-tetanic pulse Amplitude – Constant amplitude for all pulses o The generated pulse train may be triggered in a single shot via the “Trigger” button in the Stimulus interface or the system will loop the stimulus indefinitely on a repeat interval defined in the stimulus subsystem. Script Driven Variable Amplitude Pulse Train Generation Complex pulse trains with varying amplitudes and durations may be generated through a scripting language interface described below and should be saved as “.txt” files #Spike Hound example stimulus script file for arbitrary pulse generation #Comments preceded by "#" #Stimulus output will default to zero at all time regions not specified #format is amplitude in volts, initiation time (sec), duration (sec), #if TTL trigger pulse (2nd channel) is issued at beginning of interval (1 or 0) 0.1,0.1,0.01,1 0.2,0.2,0.05,1 0.3,0.3,0.05,1 0.4,0.4,0.05,1 0.5,0.4,0.05,1 0.6,0.5,0.05,1 0.7,0.6,0.5,1 0.8,1.2,0.05,1 0.9,1.8,0.05,1 1.0,1.9,0.5,1 0.0,2.0,1.00,1 #any comment will be ignored when the file is loaded. #Any blank line spaces will be ignored. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 12 Arbitrary Component Function Generator Spike Hound offers a powerful multi-component function generator for signal generation, testing, and system calibration. The function generator allows for the construction of a multi-component signal and for generation and modification of component parameters in streaming mode. The component signal is generated as the signal is being continuously fed to the output subsystem allowing for a smooth multi-frequency signal with no popping at loop edges for true white noise application and for seamless component parameter modification while running. Functions Available: Sine Wave, Square Wave, Triangle Wave, White Noise, Global DC Offset Creating a Component Function Adding Components A function may be pieced together by selecting a function type from the drop down menu and clicking the “Add” button. This will create a signal component and add it to your current function. Selecting that function name in the list box will bring up the parameter controls for that function. The parameter controls display the signal as if it were generated on a “sample and hold” analog output system (this is how most signal generators work). You will be able to see digitization levels increase in size as the frequency of the signal approaches half of your system’s sample rate (the Nyquist rate). Increasing the system output rate will create smoother signals. Removing Components Individual elements may be removed from your component signal by selecting them in the component list box and clicking the remove button. The entire interface may be reset by selecting the “clear all” interface. Generating the Signal The component function may be generated by clicking the “Generate Signal” button in the function generator control panel under the display trace of the component signal. The subsystem generates a signal in real time, so if the computer is overloaded with other tasks, the signal generation may not keep up with function outputting and the system might stop. Simply reactivate the function generator to restart output. This Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 13 should only happen in extreme processor loading cases. This behavior is necessary to prevent edge popping from different frequencies in the component signal and for individual parameter modification within the signal in semi-real-time. Digital I/O In addition to analog input and output subsystems, Spike Hound gives the user full access to software logged digital input lines for experiment control, process synchronization, and data collection. Digital I/O configuration is accessed via the “Digital IO” button to the bottom left of the main scope window. Spike Hound does not currently offer support for clocked digital I/O (available on systems such as the National Instruments “M-series” DAQ boards) for high bandwidth communications protocols, but this is slated for a future Spike Hound release. Connecting to a Device In the pop-up menu in the Digital I/O subsystem control panel, the user has access to any supported interface for software driven digital line states. Connect to the selected Digital I/O interface by clicking the “Connect” button. Adding a Line or Port Digital I/O systems are broken into ports with a common “data direction” amongst all lines within that port. Port direction support is listed in the “Entire Port” option in the line selection drop down list or the “In” and “Out” buttons will be active based on support of a single selected channel. Select either an entire port or a single line and select a data direction by clicking on the “In” or “Out” button to the right of the line selection pop-up menu. This will activate the Digital I/O subsystem and generate graphical buttons indicating line state for an individual port pin (red = 1, grey = 0). The state of the input port pins are updated graphically every 100ms (10Hz) and the output pin is updated immediately upon pressing the associated button. The port/line label on input pins is grayed and the buttons are not modifiable by the user while output pin label text is black and the buttons are clickable to change port parameters. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 14 Configuring and Logging Data The user may log digital data in synchronization with analog input data logging and they may furthermore choose to log only changes in digital port states. It should be noted that this logging is entirely software driven and as such will not create as periodic of a data structure as with the hardware clocked analog-input subsystems. Time stamps, however, are saved for each logged value providing you with an accurate time reference relative to your logged analog data. Note that log frequencies greater than 100Hz will begin to be limited due to operating system lag and other processing on your system. Spike Hound will attempt to reach your target sample rate, but in any case, time stamps in the logged data file should always be used to measure sample times. Select a Log Rate o Set a recording rate in the indicated box below the port selection pop-up menu. Select a Log File o Set a log target file-name by clicking the button to the right of the log rate input box. If you are linking your digital data logging with analog input recording, this parameter will be automatically overwritten with a file name based on your recording file name included with an “_dio” extension much as the meta-data is stored. Log Changes Only o The user may only be interested in locations where digital data changed on the input ports and selecting this parameter will log ONLY data to file if the current state is different from the previous state in any way. This eliminates much redundancy in digital data. Link with Recording o As mentioned previously, this option allows the user to software synchronize analog data logging with digital data logging. Digital Data Format Data is stored in a column based format. The first line is a Matlab clock vector indicating absolute data and time of data acquisition initiation and the subsequent lines represent elapsed time followed by the state of each port in the order in which they were added. Example File Logged at 50Hz: 2008 1 2 11 0.18800 0 1 0.20400 1 1 0.23500 0 0 0.25000 0 1 0.26600 1 1 0.28200 0 0 0.31300 1 0 0.32900 1 1 0.36000 0 0 0.37500 1 0 52 54.671 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 15 Live Signal Conditioning Spike Hound enables a wide variety of real-time signal conditioning tools for data visualization. These tools are accessed via the “Live Data Analysis” button in the upper right of the main scope window. This spawns a new figure containing all analysis tools and decoupled from the data logging features (i.e. data logging will only ever stream raw samples to file and not filtered data). These tools are designed to assist in experiment setup and control. For example, you might advance a recording electrode into electrically active tissue and monitor spike behavior or time correlated spikes to a given reference event in order to determine location in tissue. Connecting & Visualizing a Signal Source Select the raw channel from the “Select Channel” drop down menu in the analysis window. The currently selected channel is automatically activated when the analysis features are opened. You may have any number of instances of the same channel open for application of different filters or for visualization on different zoom or time scales. Zoom on a trace using the mouse wheel or by selecting a “voltage range” from the pop up menu Move a trace vertically in the display window by grabbing the “+” overlaying the left end of the trace and dragging it with the mouse Increase the time width of a trace by selecting a value in the “time scale” popup menu under the trace. Pause trace display by activating the pause button in the upper right of the yellow analysis menu Listen to the filtered signal by clicking the “Listen” button in the upper right of the yellow analysis panel. This will output the band pass filtered signal to the sound card just as the “Listen” feature in the main scope display Remove the Analyzed Channel by clicking the “x” button in the upper right of the yellow panel Resize the Analysis Window just as you would any window figure to increase visualization area for individual channels Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 16 Fourier Spectrum and Spectrogram Spike Hound, offers tools for frequency spectrum visualization of analyzed signals. Both a 50ms window sweep FFT (Fast Fourier Transform) and 50ms window by 5 second width spectrogram are available for spectral visualization of these signals. In the following example figures, the Spike Hound function generator was used to generate sine waves at three frequencies (500, 1200, & 2400Hz) along with background noise. Note that frequency is displayed on the vertical axis in the spectrogram and on the horizontal axis for the FFT. Activating frequency display modes deactivates any active analysis or correlation activity (settings will remain). Access the Fourier Spectrum visualization tools through the “Spectrogram” and “FFT” buttons in the bottom left of each active channel analysis area. Applying Built-In Filters Spike Hound offers several built-in fixed frequency filters (third order “Butterworth” high and low pass filters). Access these filters (along with many analysis settings) from a context menu by right clicking the axis containing the data trace. In future versions, available filters will be user configurable and the user will have the ability to construct custom filters. In addition to the low and high pass filters, there is a -6dB IIR notch filter set at 60Hz with a Q-factor of 15. This is useful for removing line noise from 60Hz power systems such as those found in the US. The total spectrum of applied filters (amplitude and phase) may be visualized from the context menu as well using the “Display Total Filter Spectrum” option. This will create a window containing a plot of the amplitude response of your current filter settings. Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 17 Threshold Based Event Detection Window based event detection is implemented in Spike Hound in order to assist in identification of signals of interest. A fixed threshold level is set, and when the signal level exceeds this threshold, an event is detected. A window of time is blocked off around the threshold cross and both pre and post event data are gathered and analyzed. These events can be further limited by a second amplitude level threshold or separate result based thresholds in both Energy Density and Peak Frequency spaces. Resulting events can be visualized or used as triggers for a spike triggered cross correlation between the current channel and any analyzed or raw signal trace available in the Spike Hound space. Setting a Threshold & Detecting Events Activate a threshold by clicking the “Threshold 1” or “Threshold 2” check boxes under the data trace. A black threshold line will appear in the analysis trace window and may be dragged vertically relative to the trace. Spike Hound will automatically detect if your threshold is placed below or above the mean value of the trace and use this information to cast the detection limit in the negative or positive going direction. Add a second threshold to reject events which exceed this second level. Defining a Window Width and Center Location The width of the detection window may be set in the “Window” box underneath the data trace. This defines the width of the red event overlay window. This window value will define the minimum distance between detected events. In order to capture data both before and after a threshold cross (i.e. to acquire full waveform shape), a window center may be set at discrete positions relative to the threshold. The window center option is accessible from the context menu acquired by right clicking within the data display axis. The user may select from four window center values: 0%, 25%, 50%, and 75%. This places the threshold cross at a fixed percent distance into the window. If the user were to select 25% window center and a window width of 10ms, when an event was detected, Spike Hound would capture 2.5ms before the event and 7.5ms after the event. Spike Hound would also detect a second event following the currently detected event a minimum of 7.5ms after the current threshold cross. The data trace may also be inverted (180 degree phase shift) or it may be rectified (does not visually appear) in order to detect both positive and negative going threshold Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 18 crosses with a single threshold level. These options are available in the context menu below the filter parameters. Analysis Parameters for Individual Events Spike Hound offers 7 different analysis parameters for visualization in a two dimensional space. These values are selectable from drop down menus to the right of the analysis axis (activated via the “Analysis” button in the bottom right of the channel analysis panel. Available analysis parameters for each axis include: Event Time – The time of the event threshold crossing Rate/Interval – The inter-event rate and interval Max/Min – Maximum and minimum voltage amplitude in the window region Peak FFT Component – Maximum frequency component of the Fourier transform of the event window. This is generally proportional to spike width or signal derivative. Faster spikes will score higher on this axis. Energy Density – A much cleaner amplitude measurement than “Max” or “Min” value. This represents the sum of the amplitude components of the FFT divided by the number of points in the window. This produces a relatively constant term for noise sources in the signal as long as the noise is identical from window to window. Analysis Parameter Thresholding Events may be further rejected by setting threshold levels in both Energy Density and Peak Frequency spaces in the analysis window. Activate an energy threshold by selecting Energy Density or Peak frequency for the “Y-Axis Metric” in the analysis display and clicking the “parameter Threshold” checkbox in the upper right of the analysis area. This will activate two dragable traces in the current analysis window that you can use to set. Thresholding in peak frequency space may be useful, for example, to reject slower spikes and accept faster spikes even if the faster spike amplitude exceeds that of the slower spike or if the amplitude of spikes is changing through the recording while maintaining a constant pulse width. Thresholding in energy density space is a way of cleanly separating similar amplitude spikes who’s amplitudes are difficult to separate through simple amplitude thresholding due to noise sources (ED is a relative noise free amplitude measurement). Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 19 Multi‐Channel Correlation (Event Triggered Average) Spike Hound allows for comparison of event timing between two signal sources or within a single signal source. Events that are detected may be used to generate a running average of a window on a separate channel. Over time, uncorrelated signal sources will average to zero and correlated events will rise out of the noise. This tool is an extremely powerful component of the Spike Hound arsenal allowing for cross-channel correlation with any set of active signals (analyzed or raw scope traces) in the Spike Hound space. Illustrated in this figure is the analysis of data from an intracellular electrode (bottom) in a muscle and an extracellular electrode (top) attached to a nerve bundle innervating the muscle. The detected spikes are cross correlated for a spike triggered average yielding an image of a compound post synaptic potential (top center) and two or three distinct amplitude classes of spikes are clear (top right). Selecting a Target Activate the Correlation mode by clicking the “Correlation” button in the bottom of the yellow analysis channel panel. Right click the correlation axis to activate a control context menu in order to add and modify traces. Activate Channel – Select this channel to activate a cross correlation trace with any signal (filtered or raw) in the current Spike Hound space. Trigger Location – The user may choose to activate the correlation sweep off of the threshold crossing time point, the time point of the maximum amplitude of the signal, or the time point of the minimum amplitude of the signal. This Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 20 functionality is useful to center your time correlation on an event with a changing amplitude. Selecting “max amplitude” creates a much more stable time reference if the signal amplitude is changing (thus causing a different threshold cross time for subsequent signals). Center Window on Event – This option does just as it says. The correlation window (specified in the “window” editable text field under the correlation trace) is centered on the event target point specified in the “trigger location” field. This allows the user to see activity that may be time correlated with past events. Hide Text Labels – Removes the text label from the correlation field display if it covers a portion of the signal of interest. Change Trace Color – Right click on the text label for a given trace to activate a dialog that will change the trace color to separate correlation traces Zoom Correlation Traces – Use the mouse scroll wheel to zoom in on active correlation traces all at once Move Correlation Traces Vertically – Click the trace text label and drag it vertically in the correlation axis to offset it relative to the other traces. Auto-Reset Correlation Traces In addition to manually resetting trace correlation, the user may specify a time period for trace resetting. This may be useful if the user is seeking within a target tissue for signals of interest and does not wish to free a hand to manually click the correlation reset option. Setting a correlation time here will allow the user to just watch the screen in a given location for results and then move to the next area if none are detected. Setting the correlation reset to a zero or negative value will deactivate the autoreset feature. %EOF Spike Hound v1.2 Open Source Release Gus K Lott III, PhD 21