summaryrefslogtreecommitdiff
path: root/pyspike
diff options
context:
space:
mode:
authorMario Mulansky <mario.mulansky@gmx.net>2015-02-03 16:40:55 +0100
committerMario Mulansky <mario.mulansky@gmx.net>2015-02-03 16:40:55 +0100
commit7989b2d337a0e5d2e0223d7fdec73833ff47c7bb (patch)
tree6d4fcfd1cf8ab3743ff023d361414d6c967d88e0 /pyspike
parentea61fc2ed03e42b3ea159b7ef7886d005c90e29f (diff)
first version of psth profile
Diffstat (limited to 'pyspike')
-rw-r--r--pyspike/__init__.py3
-rw-r--r--pyspike/cython/python_backend.py1
-rw-r--r--pyspike/psth.py27
3 files changed, 29 insertions, 2 deletions
diff --git a/pyspike/__init__.py b/pyspike/__init__.py
index 945dd4e..4d3f9f6 100644
--- a/pyspike/__init__.py
+++ b/pyspike/__init__.py
@@ -4,7 +4,7 @@ Copyright 2014-2015, Mario Mulansky <mario.mulansky@gmx.net>
Distributed under the BSD License
"""
-__all__ = ["isi_distance", "spike_distance", "spike_sync",
+__all__ = ["isi_distance", "spike_distance", "spike_sync", "psth",
"spikes", "PieceWiseConstFunc", "PieceWiseLinFunc",
"DiscreteFunc"]
@@ -18,6 +18,7 @@ from spike_distance import spike_profile, spike_distance, spike_profile_multi,\
spike_distance_multi, spike_distance_matrix
from spike_sync import spike_sync_profile, spike_sync,\
spike_sync_profile_multi, spike_sync_multi, spike_sync_matrix
+from psth import psth
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/cython/python_backend.py b/pyspike/cython/python_backend.py
index 481daf9..4efefc5 100644
--- a/pyspike/cython/python_backend.py
+++ b/pyspike/cython/python_backend.py
@@ -482,4 +482,3 @@ def add_discrete_function_python(x1, y1, mp1, x2, y2, mp2):
# the last value is again the end of the interval
# only use the data that was actually filled
return x_new[:index+1], y_new[:index+1], mp_new[:index+1]
-
diff --git a/pyspike/psth.py b/pyspike/psth.py
new file mode 100644
index 0000000..8516460
--- /dev/null
+++ b/pyspike/psth.py
@@ -0,0 +1,27 @@
+"""
+
+Module containing functions to compute the PSTH profile
+
+Copyright 2015, Mario Mulansky <mario.mulansky@gmx.net>
+
+Distributed under the BSD License
+"""
+
+import numpy as np
+from pyspike import PieceWiseConstFunc
+
+
+# Computes the Peristimulus time histogram of a set of spike trains
+def psth(spike_trains, bin_size):
+
+ bins = int((spike_trains[0][-1] - spike_trains[0][0]) / bin_size)
+
+ N = len(spike_trains)
+ combined_spike_train = spike_trains[0][1:-1]
+ for i in xrange(1, len(spike_trains)):
+ combined_spike_train = np.append(combined_spike_train,
+ spike_trains[i][1:-1])
+
+ vals, edges = np.histogram(combined_spike_train, bins, density=False)
+ bin_size = edges[1]-edges[0]
+ return PieceWiseConstFunc(edges, vals/(N*bin_size))