summaryrefslogtreecommitdiff
path: root/examples/multivariate.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/multivariate.py')
-rw-r--r--examples/multivariate.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/multivariate.py b/examples/multivariate.py
new file mode 100644
index 0000000..e9579a5
--- /dev/null
+++ b/examples/multivariate.py
@@ -0,0 +1,51 @@
+""" Example for the multivariate spike distance
+
+Copyright 2014, Mario Mulansky <mario.mulansky@gmx.net>
+
+"""
+from __future__ import print_function
+import time
+import pyspike as spk
+
+
+def time_diff_in_ms(start, end):
+ """ Returns the time difference end-start in ms.
+ """
+ return (end-start)*1000
+
+
+t_start = time.clock()
+
+# load the data
+time_loading = time.clock()
+spike_trains = spk.load_spike_trains_from_txt("PySpike_testdata.txt",
+ edges=(0, 4000))
+t_loading = time.clock()
+
+print("Number of spike trains: %d" % len(spike_trains))
+num_of_spikes = sum([len(spike_trains[i])
+ for i in range(len(spike_trains))])
+print("Number of spikes: %d" % num_of_spikes)
+
+# calculate the multivariate spike distance
+f = spk.spike_profile(spike_trains)
+
+t_spike = time.clock()
+
+# print the average
+avrg = f.avrg()
+print("Spike distance from average: %.8f" % avrg)
+
+t_avrg = time.clock()
+
+# compute average distance directly, should give the same result as above
+spike_dist = spk.spike_distance(spike_trains)
+print("Spike distance directly: %.8f" % spike_dist)
+
+t_dist = time.clock()
+
+print("Loading: %9.1f ms" % time_diff_in_ms(t_start, t_loading))
+print("Computing profile: %9.1f ms" % time_diff_in_ms(t_loading, t_spike))
+print("Averaging: %9.1f ms" % time_diff_in_ms(t_spike, t_avrg))
+print("Computing distance: %9.1f ms" % time_diff_in_ms(t_avrg, t_dist))
+print("Total: %9.1f ms" % time_diff_in_ms(t_start, t_dist))