Analysis of Dynamic Interactions


State-space analysis of dynamic interactions
Histogram Optimization | Kernel Optimization | Dynamic Interactions | Last Update 2012-06-13 16:50 |

 
STATE-SPACE METHOD
- Original paper
- Illustration
- Presentation
- Matlab Code
 
Links
- Histogram Optimization
- Kernel Optimization
- HOME Page
 
Tweet by author
 
Share |






Shimazaki, Amari, Brown, and Gruen. PLoS Comput Biol 8(3): e1002385. Open Access

Goal

This web page explains the analysis tool developed for visualizing time-dependent, coopeartive activities of multiple neurons in the brain. The method sequentially estimates time-varying interactions of neurons from their spiking activities. In addition to pairwise interactions, dynamics of higher-order interactions, i.e., a collectively interactive state of the population, can be analyzed. The method will be useful to reveal time-varying interactions of arbitrary elements described by binary states, e.g., on/off, up/down, active/inactive, etc.

 

recent activities

2012 June 20

Workshop on neural information flow

Tracking dynamic neural interactions in awake behaving animals

Hideaki Shimazaki, RIKEN Brain Science Institute

Neurons embedded in a network are correlated, and can produce synchronous spiking activities with millisecond precision. It is likely that these correlated activities organize dynamically during behavior and cognition, and this may be independent from spike rates of individual neurons. Consequently current analysis tools must be extended so that they can directly estimate time-varying neural interactions. The log-linear model is known to be useful for analysis of the correlated spiking activities but is limited to stationary data. In our approach, we developed a `state-space log-linear model’ that can estimate ever-changing neural interactions: this method is an extension of the familiar Kalman filter which can track system’s parameters as used in, e.g., automotive navigation systems. We applied this method to three neurons recorded from the primary motor cortex of a monkey engaged in a delayed motor task (data from Riehle et al., Science,1997). We found that depending on the behavioral demands of the task these neurons dynamically organized into a group which was characterized by the presence of higher-order (triple-wise) interaction. There was, however, no noticeable change in their firing rates. These results demonstrate that time-varying higher-order analysis allows us to detect subsets of correlated neurons that may belong to a larger set of neurons comprising a cell assembly.

This is a collaboration work with Shun-ichi Amari (RIKEN), Emery N. Brown (MIT), and Sonja Gruen (Julich). Original paper: Shimazaki et al., PLoS CB 8(3): e1002385

 

Original paper

Download full paper
Shimazaki H., Amari S., Brown E. N., and Gruen S., State-space Analysis of Time-varying Higher-order Spike Correlation for Multiple Neural Spike Train Data.
PLoS Computational Biology 8(3): e1002385. [Open Access: link]

Original manuscript

pdf Short paper
Shimazaki H., Amari S., Brown E. N., and Gruen S: State-space Analysis on Time-varying Correlations in Parallel Spike Sequences, Proc. IEEE ICASSP2009, 3501-3504.

 

Presentation

 

Code

matlab The codes are written in Matlab (Mathworks Inc.).

Please contact me () if you are interested in using the codes. I would like to have feedbacks to improves the tools before I put it open repository. ->

GitHub The codes are now available at GitHub. http://github.com/shimazaki/dynamic_corr

Snapshot of analysis of three simulated neurons

 

Higher-order interactions and their dynamics

Neurons are communicating each other, and jointly work to accomplish their task. When we look at the population of the neurons, there may be a collective state that many neurons interact as a whole, the state that is explained by higher-order interactions. Since it resembles people's activities in our society, here we explain the higher-order interactions, using an example from Twitter.

If a twitter user tweets more than once in a 2-minutes window, we consider the user is active in that period, and use a vertical bar to represent the active state. Otherwise, the user is inactive. Suppose two twitter users independently tweet, and then started conversation, the activities may look like...

It is possible that two users tweet almost simultaneously even if they tweet independently. That event is refered to as a chance coincidence. If they simultaneously tweet more frequently than the chance level, we conclude that these two users are `correlated'.

The above example explains a pair-wise interaction among two users. In the analysis of population, there may be a collective state of interactions, that can be revealed only by looking at the population as a whole. This state is described using the 'higher-order' interactions.

What are the higher-order interactions? We start from a peculiar example. Suppose many people tweet independently each other. Suppose then, all of sudden they tweet simultaneously. The twitter activities may look like...

tweet_hoc

Such activities require higher-order interactions to explain. Why? The synchronous event is a rare event. If you pick up a pair from the population, you can not discern them from a chance coincidence of two users: Their frequency is as low as a chance coincidence of the two users. Nevertheless, if you look at the population, the synchronous event that all users join is not likely to happen by chance. You need higher-order analysis to detect the sparse, yet synchronous events that many users join. More specifically, higher-order interactions explain collective activities of many elements (users) that can not be explained by the occurrence rates of each elements and their pairwise correlations.

What can causes the higher-order activities? Well, there are many mechanisms that can lead to higher-order interactions. It is possible that the users interact each other to produce higher-order interactions. Another mechanism is an apparent interaction due to an unobserved common input to the population. If a certain striking event happens, e.g., announcement of British royal marriage, people are driven by the same event, and tweet simultaneously. It may be thus possible to detect occurrence of an external event by looking at the higher-order activities of users.

Why do we need a time-resolved method? The answer is simple. The frequencies of tweets vary in a day. Accordingly, the occurrence frequency of chance coincidence changes. Thus we need to adjust significance level of occurrence rate of synchronous events. Additionally, the pair and higher-order interactions may also vary in time. The method described in the PLoS CB sequentially estimate the dynamics of higher-order interactions on top of the time-varying occurrence frequencies of individual events.

The tweet bird icons are designed by chethstudios.

 

 

Presentations

IEEE ICASSP 2009

 

Cosyne09 Poster

 

Links

Links to co-authors' pages

Prof. Sonja Gruen @ Juelich Research Center link

Prof. Shun-ichi Amari @ RIKEN Brain Science Institute link

Prof. Emery N. Brown @ MIT, Massachusettes General Hospital link

 

 

Tutorials on Matlab code

matlabHow to use the matlab codes.

  1. Download the codes at GitHub (https://github.com/shimazaki/code/zipball/master). Expand the zip file.
  2. Launch Matlab. Go to `example' directory in `ssloglin' directory.
  3. type: load example.mat
  4. type: example

Input data structure

data.

raw.

  • N: Number of neurons.
    n: Number of trials.
    D: Sampling resolution [s]
    T: Observation length [s]
    xs: Cell array of N neurons with n trials.
    miss: time point of data aquisition failure.
    ext: time stamp of external triger.

data.

raw.

  • N: 3
    n: 300
    D: 1.0000e-003
    T: 0.5000
    xs: {{1x300 cell} {1x300 cell} {1x300 cell}}
    miss: []
    ext: []

Output d ata structure

data.

model.

  • struct.
    • N: Number of neurons.
    • R: Order of interactions in the model.
    • D: Bin-width [s].
    • n: Number of trials.
  • binary.
    • n: Number of trials.
      d: Dimension of the log-linear model.
      K: Number of bins.
      y: [dxK] Observed joint synchrony rate.
      y_mean: [dx1] Average of y.
      * id: [2^NxN] spike patterns.
      *order: [2^Nx1]
      ext: [1xK]
      miss: [1xK]
      TH: [dxd]
  • init.
    • em_max_iteration: 200
    • state.
      • Q:
        F:
        G:
    • hyper. : Initial values of hyper-parameters.
      • mu: [dx1]
        sig: [dxd]
        F: [dxd]
        Q: [dxd]
        G: [1x70]
  • param.
    • onestep. : One-step predicition density
      • theta: [dxK] mean vector
        W: [dxdxK] covariance matrix
        diagW: [dxK]
        iW: [dxdxK]
    • filter. : Fileter density
      • theta: [dxK] mean vector
        W: [dxdxK] covariance matrix
        diagW: [dxK]
    • smoother. : Smoother density
      • theta: [dxK] mean vector
        W: [dxdxK] covariance matrix
        diagW: [dxK]
        sv2: [dxdx(K-1)]
        diagsv2: [dx(K-1)]
        A: [dxdx(K-1)]
        phi: [1xK]
        eta: [dxK]
        *p: [dxK]
    • hyper
      • Q: [dxd]
        F: [dxd]
        G: [1x70]
        mu: [dx1]
        sig: [dxd]
    • stat
      • dim:
        logL: log marginal likelihood.
        AIC: Akaike Information Criterion.
        AICc: Corrected AIC
        BIC: Bayesian IC.

 

data.

model.

  • struct.
    • N: 3
    • R: [1 2 3]
    • D: 0.0030
    • n: 36
  • binary.
    • n: 200
      d: 7
      K: 500
      y: [7x500 double]
      y_mean: [7x1 double]
      id: [7x3 double]
      order: [7x1 double]
      ext: [1x500 double]
      miss: [1x500 double]
      TH: [8x8 double]
  • init.
    • em_max_iteration: 200
    • state.
      • Q: 1
        F: 0
        G: 0
    • hyper.
      • mu: [7x1 double]
        sig: [7x7 double]
        F: [7x7 double]
        Q: [7x7 double]
        G: [1x70 double]
  • param.
    • onestep.
      • theta: [7x500 double]
        W: [7x7x500 double]
        diagW: [7x500 double]
        iW: [7x7x500 double]
    • filter.
      • theta: [7x500 double]
        W: [7x7x500 double]
        diagW: [7x500 double]
    • smoother.
      • theta: [7x500 double]
        W: [7x7x500 double]
        diagW: [7x500 double]
        sv2: [7x7x499 double]
        diagsv2: [7x499 double]
        A: [7x7x499 double]
        phi: [1x500 double]
        eta: [7x500 double]
        p: [8x500 double]
    • hyper
      • Q: [7x7 double]
        F: [7x7 double]
        G: [1x70 double]
        mu: [7x1 double]
        sig: [7x7 double]
    • stat
      • dim: 35
        logL: -3.6078e+004
        AIC: 7.2227e+004
        AICc: 7.2242e+004
        BIC: 7.2342e+004