Measurements of Synchrony?

Moderator: wwlytton

Post Reply
Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Measurements of Synchrony?

Post by Bill Connelly » Fri Jul 03, 2009 1:06 am

Hi,

So with Teds help, I've got a lovely interneuron network making 40Hz oscillations. Now I'm planning on doing cruel things to it, and seeing what that does to the quality of the oscillations. I'm only used to the slice arena, where you'd use a spike triggered averaged from cell 1 to cell 2 to measure how strong the oscillation is.

However, in a large scale network, there must be a better way to measure synchrony. Does anyone know of one?

--EDIT--
This is one I came up with. It varies from -1 for a completely random network, to 1, for a completely synchronous (all cells fire within 1ms of eachother) network. I'd love to know if people thought this was a robust metric or not. It would require some slight modification if you were dealing with networks of hetrogenous cells, but otherwise it seems quite good.

Code: Select all

// Assume you have a network of cells ncells long
// You the data for when cell i fires it jth action potential in the 2D array AP_cell_num[i][j]
// You have the number of action potentials cell j fires during the simulation in the vector forcellAPnum.x(j)

// For ever action potential, you compare it to the temporally nearest action potential in every other cell
// If the action potential you compare to is within 1ms you add 1 to the system score
// if the compared action potential is not within 1ms you subtract 1 from the system score
// (you exclude the 1st and last action potential from each cell because you can not know whether the other action potentials are the nearest
// without an action potential before and after each event to compare it to)

// You divide the system score by the number of spikes in the network (-2 because you loose the first and last events)
// Finally you devide that by (ncells*ncells-ncells) as I believe this is the number of possible comparisons (you never compare a cell to itself).

systemScore=0

for n=0, ncells-1 {
  for i=0, forcellAPnum.x(n)-1 {
    for m=0, ncells-1 {
      for j=0, forcellAPnum.x(m)-1 {
        if (n!=m) {
          matchingAP=AP_cell_num[n][i]
        
          previousAP=AP_cell_num[m][j-1]
          thisAP=AP_cell_num[m][j]
          nextAP=AP_cell_num[m][j+1]
          
          lagtopreviousAP=abs(matchingAP-previousAP)
          lagtothisAP=abs(matchingAP-thisAP)
          lagtonextAP=abs(matchingAP-nextAP)
          if(j-1>=0 && nextAP!=0) { //ignore the first and last events
            if(lagtopreviousAP>lagtothisAP && lagtonextAP>lagtothisAP) { //if the event in the other cell is the closest to this one
                if(matchingAP-thisAP>-1 && matchingAP-thisAP<=0) { //is it within 1msec of the matchingAP
                systemScore+=1
              } else {
                systemScore-=1
              }
             j = forcellAPnum.x(m)-1 // once the nearest AP is compared, skip to next AP
            }
          } 
        }
      }
    }
  }
}

APpercells=0
for i = 0, ncells-1 {
  APpercells += forcellAPnum.x(i)
}
APpercells/=ncells
print "Average action potentials per cell = ", APpercells
print "Synch score = ", (systemScore/(APpercells-2))/(ncells*ncells-ncells)

wwlytton
Posts: 64
Joined: Wed May 18, 2005 10:37 pm
Contact:

Re: Measurements of Synchrony?

Post by wwlytton » Fri Jul 03, 2009 11:21 am

Paul Tiesinga has a large number of sync measures and other ways of interpreting population spike patterns

eg

mean ISI for neuron n is tauN, CV is (stdev of tauNi)/<tauN>
associate a particular interval statistic with the midpoint of the ISI
The interspike interval of the combined set of network spikes is tau_v=t_{v+1} - t_v
Note that these interspike intervals are between different neurons. The coefficient
of variation is CV_P = sqrt{<tau_v^2>_v - <tau_v>_v^2/<tau_v>_v} <>_v denotes ave
over all intervals


Rapid temporal modulation of synchrony by competition in cortical interneuron
networks PHE Tiesinga & TJ Sejnwoski

also see

Discovering Spike Patterns in Neuronal Responses
Jean-Marc Fellous, Paul H. E. Tiesinga, Peter J. Thomas, and Terrence J. Sejnowski
The Journal of Neuroscience, 2004, 24(12):2989-3001

J Neurophysiol 91: 194-205, 2004.
Influence of Ionic Conductances on Spike Timing Reliability of Cortical
Neurons for Suprathreshold Rhythmic Inputs
Susanne Schreiber,1,5 Jean-Marc Fellous,2 Paul Tiesinga,1,3 and Terrence J. Sejnowski1,2,4

Methods for finding and validating neural spike patterns
Neurocomputing, 69:1362-1365, 2006
J. Vincent Toups and Paul H.E. Tiesinga

Tiesinga PH, Jose JV. (2000) Spiking statistics in noisy hippocampal interneurons
Neurocomputing 26-27 299-304.

Tiesinga PH, Jose JV. (2000) Synchronous clusters in a noisy inhibitory neural network.
Journal Computational Neuroscience 9 49-65

Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Measurements of Synchrony?

Post by Bill Connelly » Sun Jul 05, 2009 4:38 am

Currently I'm trying to work on measure proposed by Dr. David Golomb

http://www.scholarpedia.org/article/Syn ... l_networks

However it doesn't seem to be working.

Assuming I've got a vector storing the average membrane potential of the cells in the network in averageCell
Also, I've got a vector storing the membrane potential of every cell n in the network in cellV[n]

Then the synchrony score proposed in that article should be

Code: Select all

AvVar = averageCell.sumsq()/averageCell.size() - averageCell.mean()*averageCell.mean()

for n=0, n<ncells-1 {
  cellVar.x(n)=cellV[n].sumsq()/cellV[n].size() - cellV[n].mean()*cellV[n].mean()
}

syncScore = AvVar/cellVar.mean()
Right? Golomb says it should vary betwen 0 and 1, but my network gets 13. Any idea on what I'm doing wrong?

ted
Site Admin
Posts: 5570
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Measurements of Synchrony?

Post by ted » Sun Jul 05, 2009 12:15 pm

The first term on the RHS of your formula for AvVar should take dt into account. Ditto for the formula for cellVar.

Bill Connelly
Posts: 86
Joined: Thu May 22, 2008 11:54 pm
Location: Australian National University

Re: Measurements of Synchrony?

Post by Bill Connelly » Sun Jul 05, 2009 4:28 pm

Actually I found the problem. Its the fact that dt was getting reset by neuron halfway through the script, so arrays were different lengths.

Post Reply