From 017893e782d1747e1f031131077a40a48f882e86 Mon Sep 17 00:00:00 2001 From: Mario Mulansky Date: Mon, 11 May 2015 14:32:48 +0200 Subject: treatment of empty spike trains in isi functions --- pyspike/SpikeTrain.py | 10 ++++++++++ pyspike/isi_distance.py | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'pyspike') diff --git a/pyspike/SpikeTrain.py b/pyspike/SpikeTrain.py index a02b7ab..9127b60 100644 --- a/pyspike/SpikeTrain.py +++ b/pyspike/SpikeTrain.py @@ -48,3 +48,13 @@ class SpikeTrain(object): """ return SpikeTrain(self.spikes.copy(), [self.t_start, self.t_end]) + + def get_spikes_non_empty(self): + """Returns the spikes of this spike train with auxiliary spikes in case + of empty spike trains. + """ + if len(self.spikes) < 2: + return np.unique(np.insert([self.t_start, self.t_end], 1, + self.spikes)) + else: + return self.spikes diff --git a/pyspike/isi_distance.py b/pyspike/isi_distance.py index 2a1ed3a..5ea555d 100644 --- a/pyspike/isi_distance.py +++ b/pyspike/isi_distance.py @@ -41,7 +41,8 @@ Falling back to slow python backend.") from cython.python_backend import isi_distance_python \ as isi_profile_impl - times, values = isi_profile_impl(spike_train1.spikes, spike_train2.spikes, + times, values = isi_profile_impl(spike_train1.get_spikes_non_empty(), + spike_train2.get_spikes_non_empty(), spike_train1.t_start, spike_train1.t_end) return PieceWiseConstFunc(times, values) @@ -73,7 +74,9 @@ def isi_distance(spike_train1, spike_train2, interval=None): try: from cython.cython_distances import isi_distance_cython \ as isi_distance_impl - return isi_distance_impl(spike_train1.spikes, spike_train2.spikes, + + return isi_distance_impl(spike_train1.get_spikes_non_empty(), + spike_train2.get_spikes_non_empty(), spike_train1.t_start, spike_train1.t_end) except ImportError: # Cython backend not available: fall back to profile averaging -- cgit v1.2.3