summaryrefslogtreecommitdiff
path: root/examples/multivariate.py
blob: e9579a5a04fb386deb02d85de8f7fbe26b36e0f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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))