add rectify, cv, serial correlation

This commit is contained in:
a.ott 2020-01-24 13:36:12 +01:00
parent 357c09d3dd
commit 2256800e33

View File

@ -3,6 +3,8 @@ import pyrelacs.DataLoader as dl
import numpy as np import numpy as np
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from warnings import warn from warnings import warn
import scipy.stats
def get_subfolder_paths(basepath): def get_subfolder_paths(basepath):
subfolders = [] subfolders = []
@ -212,4 +214,35 @@ def plot_frequency_curve(cell_data, save_path: str = None, indices: list = None)
plt.show() plt.show()
else: else:
plt.savefig(save_path + "mean_frequency_curves.png") plt.savefig(save_path + "mean_frequency_curves.png")
plt.close() plt.close()
def rectify(x):
if x < 0:
return 0
return x
def calculate_coefficient_of_variation(spiketimes: list) -> float:
# CV (stddev of ISI divided by mean ISI (np.diff(spiketimes))
isi = np.diff(spiketimes)
std = np.std(isi)
mean = np.mean(isi)
return std/mean
def calculate_serial_correlation(spiketimes: list, max_lag: int) -> list:
isi = np.diff(spiketimes)
if len(spiketimes) < max_lag + 1:
raise ValueError("Given list to short, with given max_lag")
cor = []
for lag in range(max_lag):
lag = lag + 1
first = isi[:-lag]
second = isi[lag:]
cor.append(np.corrcoef(first, second)[0][1])
return cor