diff options
author | Mario Mulansky <mario.mulansky@gmx.net> | 2015-01-20 10:47:27 +0100 |
---|---|---|
committer | Mario Mulansky <mario.mulansky@gmx.net> | 2015-01-20 10:47:27 +0100 |
commit | cce93ecbb1c961ab075a4924a42543483ffffb77 (patch) | |
tree | 1d8d2cf15fb3fdc065b9bc204886a25e43958297 /pyspike | |
parent | f2d742c06fd013a013c811593257b67502ea9486 (diff) |
added spike sync matrix
Diffstat (limited to 'pyspike')
-rw-r--r-- | pyspike/__init__.py | 4 | ||||
-rw-r--r-- | pyspike/distances.py | 62 | ||||
-rw-r--r-- | pyspike/function.py | 1 |
3 files changed, 55 insertions, 12 deletions
diff --git a/pyspike/__init__.py b/pyspike/__init__.py index 1b18569..55687e6 100644 --- a/pyspike/__init__.py +++ b/pyspike/__init__.py @@ -10,9 +10,9 @@ from function import PieceWiseConstFunc, PieceWiseLinFunc, \ DiscreteFunction, average_profile from distances import isi_profile, isi_distance, \ spike_profile, spike_distance, \ - spike_sync_profile, spike_sync_distance, \ + spike_sync_profile, spike_sync, \ isi_profile_multi, isi_distance_multi, isi_distance_matrix, \ spike_profile_multi, spike_distance_multi, spike_distance_matrix, \ - spike_sync_profile_multi + spike_sync_profile_multi, spike_sync_multi, spike_sync_matrix from spikes import add_auxiliary_spikes, load_spike_trains_from_txt, \ spike_train_from_string, merge_spike_trains, generate_poisson_spikes diff --git a/pyspike/distances.py b/pyspike/distances.py index 0f0efa9..8a14a8d 100644 --- a/pyspike/distances.py +++ b/pyspike/distances.py @@ -152,10 +152,10 @@ Falling back to slow python backend.") ############################################################ -# spike_sync_distance +# spike_sync ############################################################ -def spike_sync_distance(spikes1, spikes2): - return spike_sync_profile(spikes1, spikes2).avrg() +def spike_sync(spikes1, spikes2, interval=None): + return spike_sync_profile(spikes1, spikes2).avrg(interval) ############################################################ @@ -314,6 +314,28 @@ def spike_profile_multi(spike_trains, indices=None): ############################################################ +# spike_distance_multi +############################################################ +def spike_distance_multi(spike_trains, indices=None, interval=None): + """ Computes the multi-variate spike distance for a set of spike trains. + That is the time average of the multi-variate spike profile: + S_{spike} = \int_0^T 2/((N(N-1)) sum_{<i,j>} S_{spike}^{i, j} dt + where the sum goes over all pairs <i,j> + + :param spike_trains: list of spike trains + :param indices: list of indices defining which spike trains to use, + if None all given spike trains are used (default=None) + :type indices: list or None + :param interval: averaging interval given as a pair of floats, if None + the average over the whole function is computed. + :type interval: Pair of floats or None. + :returns: The averaged spike distance S. + :rtype: double + """ + return spike_profile_multi(spike_trains, indices).avrg(interval) + + +############################################################ # spike_profile_multi ############################################################ def spike_sync_profile_multi(spike_trains, indices=None): @@ -341,11 +363,9 @@ def spike_sync_profile_multi(spike_trains, indices=None): ############################################################ # spike_distance_multi ############################################################ -def spike_distance_multi(spike_trains, indices=None, interval=None): - """ Computes the multi-variate spike distance for a set of spike trains. - That is the time average of the multi-variate spike profile: - S_{spike} = \int_0^T 2/((N(N-1)) sum_{<i,j>} S_{spike}^{i, j} dt - where the sum goes over all pairs <i,j> +def spike_sync_multi(spike_trains, indices=None, interval=None): + """ Computes the multi-variate spike synchronization value for a set of + spike trains. :param spike_trains: list of spike trains :param indices: list of indices defining which spike trains to use, @@ -354,10 +374,10 @@ def spike_distance_multi(spike_trains, indices=None, interval=None): :param interval: averaging interval given as a pair of floats, if None the average over the whole function is computed. :type interval: Pair of floats or None. - :returns: The averaged spike distance S. + :returns: The averaged spike synchronization value SYNC. :rtype: double """ - return spike_profile_multi(spike_trains, indices).avrg(interval) + return spike_sync_profile_multi(spike_trains, indices).avrg(interval) ############################################################ @@ -433,3 +453,25 @@ def spike_distance_matrix(spike_trains, indices=None, interval=None): """ return _generic_distance_matrix(spike_trains, spike_distance, indices, interval) + + +############################################################ +# spike_sync_matrix +############################################################ +def spike_sync_matrix(spike_trains, indices=None, interval=None): + """ Computes the time averaged spike-synchronization value of all pairs of + spike-trains. + + :param spike_trains: list of spike trains + :param indices: list of indices defining which spike trains to use, + if None all given spike trains are used (default=None) + :type indices: list or None + :param interval: averaging interval given as a pair of floats, if None + the average over the whole function is computed. + :type interval: Pair of floats or None. + :returns: 2D array with the pair wise time spike synchronization values + :math:`SYNC_{ij}` + :rtype: np.array + """ + return _generic_distance_matrix(spike_trains, spike_sync, + indices, interval) diff --git a/pyspike/function.py b/pyspike/function.py index 62b0e2c..e0dadf6 100644 --- a/pyspike/function.py +++ b/pyspike/function.py @@ -429,6 +429,7 @@ class DiscreteFunction(object): """ def get_indices(ival): + """ Retuns the indeces surrounding the given interval""" start_ind = np.searchsorted(self.x, ival[0], side='right') end_ind = np.searchsorted(self.x, ival[1], side='left') assert start_ind > 0 and end_ind < len(self.x), \ |