summaryrefslogtreecommitdiff
path: root/pyspike/psth.py
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/psth.py
parentea61fc2ed03e42b3ea159b7ef7886d005c90e29f (diff)
first version of psth profile
Diffstat (limited to 'pyspike/psth.py')
-rw-r--r--pyspike/psth.py27
1 files changed, 27 insertions, 0 deletions
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))