summaryrefslogtreecommitdiff
path: root/pyspike/cython/cython_profiles.pyx
diff options
context:
space:
mode:
authorMario Mulansky <mario.mulansky@gmx.net>2015-09-09 17:51:03 +0200
committerMario Mulansky <mario.mulansky@gmx.net>2018-06-02 12:58:46 -0700
commita5e6a12a619cb9528a4cf7f3ef8f082e5eb877c2 (patch)
tree7afedd9d3dc9697a7fcfdf904dc62d5196a56c9a /pyspike/cython/cython_profiles.pyx
parent66bf08417c651d1c0d96cb980571efb2043d7f1a (diff)
added SPIKE-Sync based filtering
new function filter_by_spike_sync removes spikes that have a multi-variate Spike Sync value below some threshold not yet fully tested, python backend missing.
Diffstat (limited to 'pyspike/cython/cython_profiles.pyx')
-rw-r--r--pyspike/cython/cython_profiles.pyx31
1 files changed, 31 insertions, 0 deletions
diff --git a/pyspike/cython/cython_profiles.pyx b/pyspike/cython/cython_profiles.pyx
index 4a42cdb..fe08cb7 100644
--- a/pyspike/cython/cython_profiles.pyx
+++ b/pyspike/cython/cython_profiles.pyx
@@ -450,3 +450,34 @@ def coincidence_profile_cython(double[:] spikes1, double[:] spikes2,
c[1] = 1
return st, c, mp
+
+
+############################################################
+# coincidence_single_profile_cython
+############################################################
+def coincidence_single_profile_cython(double[:] spikes1, double[:] spikes2,
+ double t_start, double t_end, double max_tau):
+
+ cdef int N1 = len(spikes1)
+ cdef int N2 = len(spikes2)
+ cdef int j = -1
+ cdef double[:] c = np.zeros(N1) # coincidences
+ cdef double interval = t_end - t_start
+ cdef double tau
+ for i in xrange(N1):
+ while j < N2-1 and spikes2[j+1] < spikes1[i]:
+ j += 1
+ tau = get_tau(spikes1, spikes2, i, j, interval, max_tau)
+ print i, j, spikes1[i], spikes2[j], tau
+ if j > -1 and spikes1[i]-spikes2[j] < tau:
+ # current spike in st1 is coincident
+ c[i] = 1
+ if j < N2-1:
+ j += 1
+ tau = get_tau(spikes1, spikes2, i, j, interval, max_tau)
+ print i, j, spikes1[i], spikes2[j], tau
+ if spikes2[j]-spikes1[i] < tau:
+ # current spike in st1 is coincident
+ c[i] = 1
+
+ return c