From 4c0bde583324297f1a6738154f95da5b5dca0727 Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Fri, 11 Sep 2020 17:20:50 +0200 Subject: [PATCH] add convolve freq calculation --- helperFunctions.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/helperFunctions.py b/helperFunctions.py index 36c0415..dbcfb32 100644 --- a/helperFunctions.py +++ b/helperFunctions.py @@ -187,6 +187,21 @@ def calculate_isi_frequency_trace(spiketimes, sampling_interval, time_in_ms=Fals return full_frequency +def gaussian_kernel(sigma, dt): + x = np.arange(-4. * sigma, 4. * sigma, dt) + y = np.exp(-0.5 * (x / sigma) ** 2) / np.sqrt(2. * np.pi) / sigma + return y + + +def calculate_gauss_convolve_freq(spiketimes, duration, sampling_interval, gauss_sigma): + binary = np.zeros(int(np.rint(duration / sampling_interval))) + g = gaussian_kernel(gauss_sigma, sampling_interval) + for s in spiketimes: + binary[int(np.rint(s / sampling_interval))] = 1 + rate = np.convolve(binary, g, mode='same') + return rate + + def calculate_time_and_frequency_trace(spiketimes, sampling_interval, time_in_ms=False): if len(spiketimes) < 2: return [0], [0]