JMA-LMO Analyses suite



JMA-LMO Analyses suite

Content

1 Introduction 4

2 Technical documentation 4

2.1 Recording structure 4

2.2 Install suite 9

2.3 Launcher console 9

3 Application list 10

3.1 Selecting a recording 11

3.2 Group spikes by ISI and correlate 12

3.2.1 Description 12

3.2.2 How to launch it 13

3.2.3 Usage 13

3.2.4 Saving some results 14

3.2.5 A practical example 14

3.2.6 Development (files, resources, toolboxes …) 14

3.3 Burst detector 16

3.3.1 Description 16

3.3.2 How to launch it 16

3.3.3 Usage 16

3.3.4 Saving some results 17

3.3.5 An practical example 18

3.3.6 Development (files, resources, toolboxes …) 18

3.4 Event cross-correlation 19

3.4.1 Description 19

3.4.2 How to launch it 19

3.4.3 Usage 19

3.4.4 Saving the correlation as an analysis 22

3.4.5 An practical example 22

3.4.6 Development (files, resources, toolboxes …) 22

3.5 Recording visor 23

3.5.1 Description 23

3.5.2 How to launch it 23

3.5.3 Usage 23

3.5.4 Development (files, resources, toolboxes …) 24

Introduction

This suite contains a set of applications which performs several analyses of recorded signals (crude and net information).

Technical documentation

The data were acquired using and a multi-electrode system (Thomas Recordings).

MatLab is used as scientific framework to develop the analysis. The reasons are obvious, besides being the most common framework in the laboratory.

1 Recording structure

The whole set of application of this suite uses a common structure to represent the sampled data: the recording.

This is highly necessary in order to establish a common behaviour for the treatment of the data. This structure will abstract the suite from the details of original data and its acquisition. Thus, every application will deal with the recording in the same way.

Due to this, a high level software layer, called convertingLayer, contains several modules of functions that know how to interpret the data depending on the source of those. Thus, per each kind of sampling made, it has to exist a module in this layer that converts the native data to this recording structure. The logic structure of this layer is as follows (see figure 2.1-a):

| |

|Picture 2.1-a |

This layer provides also a function that enables the user to use the different modules to convert its data to a recording. This function is called JMALMO_selectRecording.m. This function is merely a front end graphic interface that has the role of gateway for the user to access the convertingLayer.

It is necessary to say that, in order to maintain a coherent behaviour, there is a module that "converts" a recording into a recording (this is: to read a recording from a MatLab file). Thus, there is a homogeneous way to select a recording. If the user wants to work with some data, the most recommended way is by using of JMALMO_selectRecording function, which will offer all the options, including, continuing with a previously converted recording.

The recording structure is described in the table 2.1-a:

|Table 2.1-a |

|descName |

| |

|This is a string that has a short description of the recording. It will be the name of the recording in a list of recordings. |

| |

|events |

| |

|Vector of events. Each event is represented by a struct which will be show in the table 2.1-b. |

| |

|lastUpdate |

| |

|This is a timestamp of the last update of this recording. Every time that the recording changes and is saved, the user should to |

|update this field. |

| |

|analyses |

| |

|This field is a vector of analyses. Each analysis is represented by a struct which will be shown in the table 2.1-d. |

| |

|comments |

| |

|This field is a cellstring array that contains the comments that the user wants to specify. |

| |

|stimulus |

| |

|This field contains a numeric value that represents the kind of stimulus that was shown. The different values are represented by |

|a set of constants which they are the next: |

| |

|K.STIMULUS.SN (=1) |

|K.STIMULUS.OR (=2) |

|K.STIMULUS.XC (=3) |

|K.STIMULUS.RS (=4) |

|K.STIMULUS.VLUT (=5) |

|K.STIMULUS.NM (=6) |

|K.STIMULUS.NOT_RECOGNISED (=-1) |

| |

| |

|filesPath |

| |

|It has the path of the original files when they were converted. |

| |

|networks |

| |

|It is a vector of networks. Every element provides information the directed graph that represents a neural network. |

| |

|rawChannels |

| |

|It is a vector of raw channels. Every element is presented by a struct that will contain all the data related to it. The |

|structure will be shown in the table 2.1-e. |

| |

|Table 2.1-a |

The event structure has the following fields:

|Table 2.1-b |

|label |

| |

|It contains the identification label of the event. |

| |

|kind |

| |

|It is a numerical value. It identifies the event kind. The current kinds are represent by constants and the values are the |

|following: |

| |

|K.EVENT_KINDS.STIMULUS_TIMEMARK (= 1) |

|K.EVENT_KINDS.RAW (= 2) |

|K.EVENT_KINDS.ISI_EVENT (= 3) |

|K.EVENT_KINDS.BURST (= 4) |

|K.EVENT_KINDS.SPIKE2_SUBCHANNEL (= 5) |

|K.EVENT_KINDS.SPIKE2_SPIKECHANNEL (= 6) |

| |

| |

|timeMarks |

| |

|This is a vector that contains the time marks of this event. Their interpretation depends on the kind of event. |

| |

|comments |

| |

|This field is a cell-string array that contains the comments that the user wants to specify. |

| |

|config |

| |

|This field is a struct that contains specific information about the event. Its structure depends on the kind of event. See next |

|table (Table 2.1-c) |

| |

|Table 2.1-b |

|Table 2.1-c |

| |

|The config field of the event structure can have the following fields if ... |

|... the kind of event is RAW: |

|sourceFile |

| |

|The source file where the data was in its native format. |

| |

| |

|... the kind of event is ISI_EVENT: |

|ISIVector |

| |

|It is a vector that contains the inter-spike-interval used to create this event. |

| |

|correlatedEventIndex |

| |

|It is the source event that produced this subset of events (the original event that contains the current event). Note that an |

|ISI_EVENT is a subset of events of an original event. |

| |

|analysisSource |

| |

|Not used |

| |

|creationDate |

| |

|This is a timestamp of creation date of the event. |

| |

|PerformedBy |

| |

|The one that create the event. |

| |

| |

|... the kind of event is BURST: |

|originalEventIndex |

| |

|It is the original event where the bursts were detected and extracted |

| |

|maxBurstLenght |

| |

|Maximum length of a spike train to be considered as a burst |

| |

|interDeltaTime |

| |

|Maximum time lasted between two spikes of a spike train to be considered as part of a burst |

| |

|previousDeltaTime |

| |

|Minimum time lasted between the first spike of a train to the previous spike (if it exists) to consider that the train is a |

|burst. |

| |

|AnalysisSource |

| |

|Not used. |

| |

|creationDate |

| |

|This is a timestamp of creation date of the event. |

| |

|performedBy |

| |

|The one that create the event. |

| |

| |

|... the kind of event is ISI_SPIKE2_SUBCHANNEL: |

|sourceFile |

| |

|The source file where the data was in its native format |

| |

|shape |

| |

|Matrix of NxM cardinality where the N indicates the shape length and M the quantity of shapes. It contains the amplitude of the |

|signal. |

|---------M-------- |

|| S S S S S S ··· S |

|| H H H H H H ··· H |

|| A A A A A A ··· A |

|N P P P P P P ··· P |

|| E E E E E E ··· E |

|| · · · · · · · |

|| 1 2 3 4 5 6 ··· M |

| |

| |

|timeStep |

| |

|time elapsed between a sample and the next (timeStep = 1/SampFreq) |

| |

| |

|... the kind of event is SPIKE2_SPIKECHANNEL: |

|sourceFile |

| |

|The source file where the data was in its native format |

| |

|threshold |

| |

|The value that the signal crossed that creates a timeMark. |

| |

|channelScanned |

| |

|The channel that was scanned to cross the threshold |

| |

|Table 2.1-c |

The analyses structure has the following fields:

|Table 2.1-d |

|kind |

| |

|It is a numerical value. It identifies the event kind. The current kinds are represent by constants and the values are the |

|following: |

| |

|K.ANALISYS_KIND.CROSS_CORRELATIONS (= 1) |

| |

| |

|creationDate |

| |

|This is a timestamp of creation date of the analysis. |

| |

|comments |

| |

|This field is a cellstring array that contains the comments that the user wants to specify. |

| |

|config |

| |

|This field is a struct that contains specific information about the configuration used to make the analysis. Its structure |

|depends on the kind of analysis, but by now, the only analysis recognised is CROSS_CORRELATIONS (See file JMALMO_Constants.m). |

| |

|data |

| |

|This field is a struct that contains specific results of the analysis. Its structure depends on the kind of analysis. |

| |

| |

|The config field of the event structure can have the following fields if ... |

| |

|... the kind of analysis is CROSS_CORRELATIONS: |

|binSize |

| |

|Is the number of ms that a bin contains. |

| |

|previousBins: |

| |

|It is the number of bins previous to every timemark to make the cross-correlation. |

| |

|posteriorBins |

| |

|It is the number of bins previous to every timemark to make the cross-correlation. |

| |

|eventList |

| |

|This is the list of events used for to make the cross-correlation. |

| |

|Table 2.1-d |

The rawChannels structure has the following fields:

|Table 2.1-e |

|Kind |

| |

|It is a numerical value. It identifies the channel kind. The current kinds are represent by constants and the values are the |

|following: |

| |

|K.RAWCHANNEL_KINDS.SPIKE2 (= 1) |

|K.RAWCHANNEL_KINDS.MCRACK (=2) |

|K.RAWCHANNEL_KINDS.NOT_RECOGNISED (=-1) |

| |

| |

|label |

| |

|This is a simple label to identify the channel. |

| |

|sourceFile |

| |

|This is the file name from where the channel was extracted. |

| |

|Interval |

| |

|This is the interval time between two values in the values vector (expressed in milliseconds). |

| |

|Values |

| |

|The values of the waveform of the read channel. |

| |

|startTime |

| |

|This is the time delay of the channel, if it applies. |

| |

|maxValue |

| |

|This is the maximum value of the waveform (taking in account the absolute values) |

| |

|maxPotential |

| |

|If the channel comes from a spike2 file, is always 5. |

| |

|config |

| |

|It is an structure that will change depending on the kind of the channel. In channels coming from Spike2, has just one field that|

|is header (that contains the header of this channel). |

| |

|Table 2.1-e |

|Table 2.1-f |

| |

|Table 2.1-f |

2 Install suite

To install this suite, the folder that contains the suite must be added to the MatLab path with all the subfolders.

3 Launcher console

There is a launcher console to make easier the access to the analyses. It is shown by the command JMALMOLauncherConsole and its appearance is as the figure 2.3-a shows:

|[pic] |

|Picture 2.3-a |

Application list

The list of application is the next:

- Group spikes by ISI and correlate (Button 1)

- Burst detector (Button 2)

- Event Cross-Correlation (Button 3)

- Network Builder (Button 4. Not yet implemented)

- Granger Utility (Button 5. Not yet implemented)

- Recording Visor (Button 6)

- Event visor (Button 7)

- Channel visor – event detector (Button 8)

- MC Rack event detector (Button 9. Not yet implemented)

1 Selecting a recording

As in previous sections has been said, the suite has a recording structure to deal with the data. Every time that any application of the suite opens a recording the application asks for the format of the data to run the proper reading module (see the figure 3.1-a). By now, there are three formats accepted: a raw format, which is an old format from previous work; the matlab format, which is the standard one the application is dealing with; and spike2 format, files with the extension *.smr (it is needed also its “brother” *.s2c)

| |

|[pic] |

|Picture 3.1-a |

| |[pic] |

|[pic] | |

|Picture 3.1-b |Picture 3.1-c |

The spike2 and matlab formats are straight forward to operate with: just select the file. But the raw format is more complicated. The user has to select a folder (Picture 3.1-b) that contains files with the extension *.eXX and *.et and same prefix (name without the extension)

The file *.et contains information about the stimulus timemarks.

Every *.eXX file contains the spike timemarks of a neuron. The first X means the number of electrode and the second X a neuron. This is because an electrode could record spikes from the different neurons. For building these files some previous clustering was performed and each cluster was identified by a number and a rest.

For example, if from the electrode 3 the clustering produced 4 clusters and a remaining set of spikes, the number of files from this electrode will be 5 and their names would be:

• recording.e31 ( spike set from cluster 1 of electrode 3

• recording.e32 ( spike set from cluster 2 of electrode 3

• recording.e33 ( spike set from cluster 3 of electrode 3

• recording.e34 ( spike set from cluster 4 of electrode 3

• recording.e35 ( remaining set of spikes that don´t seem to be part of any cluster (possible noise or just unidentified spikes...)

Once the folder has been selected, a third dialog (picture 3.1-c) will appear showing a list of the groups of recordings the folder contains with the amount of files for each one. This is a list of the files prefixes that the folder contains with the extensions *.et and *.eXX. The related picture shows that the selected folder contained 11 files with the prefix c11al2 and extensions *.et and *.eXX; 11 files with the prefix c11bl2, and so on... All of them are susceptible to be a proper recording.

2 Group spikes by ISI and correlate

1 Description

This analysis consists in correlate some spikes of a channel (selected by the previous Inter Spike Interval - ISI; since now, pISIspikes( previous ISI spikes) to all the spikes of a channel (the same channel of another). See the picture 3.2-a for a visual explanation.

|[pic] |

|Picture 3.2-a |

This task is performed in two steps: first, perform a statistical counting of ISIs; and second, select the spikes of which previous ISI is a range of values and correlate with a channel.

2 How to launch it

There are two ways to access to this analysis, by typing FE_groupByISI on the command window of MatLab, or through the first button on the JMA-LMO Launching Console.

3 Usage

First the user has to select a recording. Then, the form is filled with the events (and its number of spikes) of that recording and some other data.

Selecting the channel 1, the upper axis updates showing the occurrence (Y axis) of every ISIs (X axis), also the Inter Spike Interval list is fulfilled with the ISIs next their occurrence.

Selecting a set of ISIs of the ISI list (by holding the shift key), the event 2 or the window bounds, the lower axis is updated showing a bars diagram that represents the probability (Y axis goes through the [0,1] interval) of an spike of channel 2 occurs in the temporal window (regarding previous and posterior window parameters) that surrounds every pISIspikes of the channel 1.

The interface is as the picture 3.2-b shows below:

| |

|[pic] |

|Picture 3.2-b |

Notes:

- Several ISIs can be selected by pressing the CTRL key while the user clicks on the list.

- The limits of the lower axis are 0 and 1, but the upper bound can modified using the bar placed on the right of this axis.

- There is a log scale switch for the upper axis above its.

- A preview of all of the ISI spikes and the cross-correlations can be get by clicking on the labelled buttons.

4 Saving some results

A new event can be saved if a set of spikes from the ISI group seems interesting and it is wanted to be used in further analyses. This can be done by clicking in the button Save Results to Recording, then the application will ask for a folder where to update the recording or to save a new one if there is none in it.

Despite the fact that the second spike of every event is the interesting, the two timemarks will be stored, so the new event will retain the whole information, as well as the configuration used for generating this result: Inter Spike Interval vector, previous and posterior windows.

5 A practical example

To see a practical example follow the steps described in the point 3.2.3 by taking the subfolder .\1.Data\960213\EVENT\ and then selecting the group c11dor.

6 Development (files, resources, toolboxes …)

In the suite folder, the subfolder .\0.Scripts\1.GroupByISIAndCorrelationWithChannel\ contains folders backEnd and frontend where there are the analyses themselves and the user interface files, respectively. Besides the file selectRecording.m is used from the .\0.Scripts\0.Utils\. The picture 3.2-c shows the set of files that is used in this analysis.

|.\ 0.Scripts |

|0.Utils |

|selectRecording.m |

|1.GroupByISIAndCorrelationWithEvent |

|backend |

|ISICorrelation.m |

|crossCorrelation.m |

|getTimeMarksFromISI.m |

|frontEnd |

|FE_groupByISIAndCorrelate.m |

|FE_groupByISIAndCorrelate.fig |

|Picture 3.2-c |

3 Burst detector

1 Description

This analysis is made to detect bursts in a channel. A burst is a set of consecutive spikes that complies with these three constraints:

- The time between the first spike and the previous one is greater than a value (prevΔt).

- The time between the consecutive spikes of it is less than a value (interΔt).

- The number of spikes that complies with the previous rules is greater than a value (minSpikesPerBurst).

See the picture 3.3-a for a visual explanation:

|[pic] |

|Picture 3.3-a |

Also, another parameter has been included to accurate more the analysis. It controls the maximum amount of spikes that can have a burst (perhaps a burst too long is not interested in some analysis)

3 How to launch it

There are two ways to access to this analysis, by typing FE_BurstDetector on the command window of MatLab, or through the second button on the JMA-LMO Launching Console.

4 Usage

First the user has to select recording. Then the form is filled with the events (and its number of spikes) of that recording and some other data.

The lower axis is a temporal window to explore the selected event (upper line) and the spikes of the detected bursts from that event (lower line) regarding the values of the parameters prevΔt, interΔt and minSpikesPerBurst.

Some controls have been designed to explore this window: the applied zoom on the explorer window is set by window width parameter and its scroll is controlled by a scroll bar. Also, there are some fetching controls for spikes and burst that go backward and forward through the time-line.

Some output statistics parameters are calculated within the detecting task: quantity of detected bursts, percent of burst spikes in the channel ([pic]) and the spikes per burst average (see the orange dashed region in the picture 3.3-b).

The interface is as the picture 3.3-b shows below:

| |

|[pic] |

|Picture 3.3-b |

5 Saving some results

A new event can be saved if the set of burst from this analysis seems interesting and it is wanted to be used in further analyses. This can be done by clicking in the button “Add bursts as a new event” button. Then the application will ask for a folder where to update the recording or to save a new one if there is none in it.

All information about the burst (spike timemarks of every burst and the configuration settings) will be saved in the new event.

6 An practical example

To see a practical example follow the steps described in the point 3.3.3 by taking the subfolder .\1.Data\960213\EVENT\ and then by selecting the group c11dor.

7 Development (files, resources, toolboxes …)

In the suite folder, the subfolder .\0-Scripts\2-BurstDetector\ contains the folders backEnd and frontEnd where the analyses themselves are located and the user interface files, respectively. Besides the file selectRecording.m is used from the .\0-Scripts\0-Utils\. The picture 3.2.5-a shows the set of files that is used in this analysis.

|.\ 0.Scripts |

|0.Utils |

|selectRecording.m |

|2.BurstSpikesSplitting |

|backend |

|splitBursts.m |

|frontEnd |

|FE_BurstDetector.m |

|FE_ BurstDetector.fig |

|2-splittingBurst.jpg |

|Picture 3.3-c |

4 Event cross-correlation

1 Description

This analysis makes simple cross-correlations between events of the same recording in the way all with all.

2 How to launch it

There are two ways to access to this analysis, by typing FE_EventsCrossCorrelation on the command window of MatLab, or through the third button on the JMA-LMO Launching Console.

3 Usage

The interface is as the picture 3.4-a shows below:

|[pic] |

|Picture 3.4-a |

By selecting a recording the event list is filled. Select (holding the ctrl key) a set of events regarding the user criterion as well as the settings for the correlation and then click on Analyse button. After some progression messages, the correlations will appears (see picture 3.4-b for an example).

|[pic] |

|Picture 3.4-b |

It depends on the kind of stimulus of this recording, the cross correlation can include a shuffling method for checking spurious correlations. If the stimulus is OR or XC (orientated bars or preferred orientation bars respectively) then the shuffling will be done and shown in red correlations.

A correlation is reliable if the associated shuffled correlation is flat or close to the baseline. But if a shuffled correlation turns out to be significant then the associated non-shuffled correlation could not be reliable because can be caused by an artefact. But it is not conclusive and the interaction between the two involved events should be treated carefully before doing any assumption.

The way that the correlations are shown is not a mere figure and has two tools to make more analyses. The first one is simple: by clicking on an axis with the left mouse button this axis is marked as interesting (a yellow square appears in the top-right corner of the axis).

The second one is a more complex analysis and it is available if the shuffled correlation was performed.

It is launched by clicking with the right mouse button on an axis. Thus the following form will appear (see picture 3.4-c) asking for some parameters:

|[pic] |

|Picture 3.4-c |

These parameters make some measurements trying to find out the significance of the correlation. The method is the following:

a) A threshold (let´s call it shufflingThreshold) is made by the value kSTD and the standard deviation of the shuffling correlation. This, if the cross correlation raises over the shufflingThreshold for a minimum number of bins given by minBins parameter, the cross correlation can be significant.

b) If the cross correlations turns out to be significant, then a new threshold is calculated (let´s call it powerThreshold) as the value given by the kH parameter multiplied by the maximum value of the smoothed correlation (using the smoothSpan parameter). This value will give the cutting value for getting the area of the correlation above it. This area is the correlation significance (in the applications the value is called PowerValue)

For an example, see the picture 3.4-d with the results applied to a correlation with the parameters shown in the picture 3.4-c.

|[pic] |

|Picture 3.4-d |

The data obtained from this analysis will be held associated to the correlation and can be recalled by clicking again with the right button on the same axis.

4 Saving the correlation as an analysis

A cross correlation can be saved by the button labelled with “”. Then the application will ask for a path where to update an existing recording or to create a new one if it doesn´t exist.

5 An practical example

To play with this application, use the data from the folder by taking the subfolder .\1.Data\970121\XC and then by selecting the group c111cxc.

6 Development (files, resources, toolboxes …)

In the suite folder, the subfolder .\0-Scripts\ 3.EventsCrossCorrelation\ contains the folders backEnd and frontEnd where the analyses themselves are located and the user interface files, respectively. Besides the file selectRecording.m is used from the .\0-Scripts\0-Utils\. The picture 3.4-e shows the set of files that is used in this analysis

|.\ 0-Scripts |

|0-Utils |

|selectRecording.m |

|3.EventsCrossCorrelation |

|backend |

|JMALMO_correlateEventToEvents.m |

|eventsCrossCorrelation.m |

| |

|frontEnd |

|FE_EventsCrossCorrelation.m |

|FE_EventsCrossCorrelation.fig |

|JMALMO_EventCorrelationResultViewer.m |

|JMALMO_EventCorrelationResultViewer.fig |

|Picture 3.4-e |

5 Recording visor

1 Description

This application is just a recording visor where the different data (events, raw channels, analysis, etc...) are saved on it.

2 How to launch it

There are two ways to access to this analysis, by typing FE_RecordingVisor on the command window of MatLab, or through the sixth button on the JMA-LMO Launching Console.

3 Usage

It is very straight forward to use the visor, just select the proper element and click on the view button. The interface is as the picture 3.5-a shows below:

|[pic] |

|Picture 3.5-a |

4 Development (files, resources, toolboxes …)

In the suite folder, the subfolder .\0-Scripts\6-RecordingVisor\ contains the folders backEnd and frontEnd where the analyses themselves are located and the user interface files, respectively. As this is a very wide application, since uses all the analysis visors, it uses files from all the suite. The picture 3.5-b shows the basic set of files that is used in this analysis.

|.\ 0-Scripts |

|0-Utils |

|selectRecording.m |

|6-RecordingVisor |

|backend |

|frontEnd |

|FE_RecordingVisor.m |

|FE_RecordingVisor.fig |

|Picture 3.5-b |

[pic][pic]

-----------------------

JMA-LMO Analyses suite

[pic][?] |-&'>?@\]^_klm‡üéÛüÀ¬¡–¡‡|‡tpt`Q`F7Fj?hÅ5÷U[pic]mHnHu[pic]?hÙ}?mHnHu[pic]hÙ}?PJmHnHsH tH u[pic]hJ4¬hÙ}?0JmHnHsH u[pic]hÅ5÷jhÅ5÷U[pic]hÖCzhÆ

LmH sH jhÖCzhÅ5÷U[pic]mH sH hÖCzha[?]?mH sH hÖCzhiH*mH sH &ho)B*CJ aJ mHnHphļ–tH

u[pic]5jhÅ5÷hÅ5÷B*CJ U[pic]aJ mHnHphļ–tH

u[pic]jh SU[pic]mHnHu[pic]$jhÅ5Joaquin Marquez Bugella

2011

Burst Detector

ISI Correlation

Network Builder

Event Cross Correlation

Recording

Struct

Spike2 module

DataWave module

MC Rack module

Clampex module

time ++

Channel X

Channel Y

Spikes which previous ISI is n ms

Correlation of selected spikes of Channel X with spikes of channel Y

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download