From ad016b169b220aa01c0d733673036c8e61e8e9ff Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Fri, 4 Sep 2020 17:54:29 +0200 Subject: [PATCH] a lot --- CellData.py | 33 +- Figures_results.py | 129 ++++++ Fitter.py | 124 ++--- ModelFit.py | 2 +- analysis.py | 113 +---- cell_overview.py | 8 +- find_thresholds_for_spike_detection.py | 4 +- glm_prediction.py | 76 +++ random_models.py | 103 +++++ redetect_fi_curve.py | 609 +++++++++++++++++++++++++ run_Fitter.py | 4 +- save_model_fits_as_csv.py | 45 ++ test.py | 202 -------- thesis/Masterthesis.aux | 16 +- thesis/Masterthesis.bbl | 6 + thesis/Masterthesis.blg | 62 +-- thesis/Masterthesis.log | 51 +-- thesis/Masterthesis.pdf | Bin 328132 -> 327767 bytes thesis/Masterthesis.synctex.gz | Bin 73777 -> 73452 bytes thesis/Masterthesis.tex | 48 +- 20 files changed, 1158 insertions(+), 477 deletions(-) create mode 100644 Figures_results.py create mode 100644 glm_prediction.py create mode 100644 random_models.py create mode 100644 redetect_fi_curve.py create mode 100644 save_model_fits_as_csv.py diff --git a/CellData.py b/CellData.py index 6afbf7a..9bb6213 100644 --- a/CellData.py +++ b/CellData.py @@ -70,7 +70,7 @@ class CellData: self.base_traces = None self.base_spikes = None - # self.fi_traces = None + self.fi_traces = None self.fi_intensities = None self.fi_spiketimes = None self.fi_trans_amplitudes = None @@ -155,11 +155,10 @@ class CellData: return isis def get_fi_traces(self): - raise NotImplementedError("CellData:get_fi_traces():\n" + - "Getting the Fi-Traces currently overflows the RAM and causes swapping! Reimplement if really needed!") - # if self.fi_traces is None: - # self.fi_traces = self.parser.get_fi_curve_traces() - # return self.fi_traces + if self.fi_traces is None: + warn("Fi traces not sorted in the same way as the spiketimes!!!") + self.fi_traces = self.parser.get_fi_curve_traces() + return self.fi_traces def get_fi_spiketimes(self): self.__read_fi_spiketimes_info__() @@ -170,7 +169,8 @@ class CellData: return self.fi_intensities def get_fi_contrasts(self): - self.__read_fi_spiketimes_info__() + if self.fi_intensities is None: + self.__read_fi_spiketimes_info__() contrast = [] for i in range(len(self.fi_intensities)): @@ -296,8 +296,23 @@ class CellData: if self.fi_spiketimes is None: self.fi_trans_amplitudes, self.fi_intensities, self.fi_spiketimes = self.parser.get_fi_curve_spiketimes() - # self.fi_intensities, self.fi_spiketimes, self.fi_trans_amplitudes = hf.merge_similar_intensities( - # intensities, spiketimes, trans_amplitudes) + if os.path.exists(self.get_data_path() + "/redetected_spikes.npy"): + print("overwriting fi_spiketimes with redetected ones.") + contrasts = self.get_fi_contrasts() + spikes = np.load(self.get_data_path() + "/redetected_spikes.npy", allow_pickle=True) + trace_contrasts_idx = np.load(self.get_data_path() + "/fi_traces_contrasts.npy", allow_pickle=True) + trace_max_similarity = np.load(self.get_data_path() + "/fi_traces_contrasts_similarity.npy", allow_pickle=True) + spiketimes = [] + for i in range(len(contrasts)): + contrast_list = [] + + for j in range(len(trace_contrasts_idx)): + if trace_contrasts_idx[j] == i and trace_max_similarity[j][0] > trace_max_similarity[j][1] + 0.15: + contrast_list.append(spikes[j]) + + spiketimes.append(contrast_list) + + self.fi_spiketimes = spiketimes def __read_sam_info__(self): if self.sam_spiketimes is None: diff --git a/Figures_results.py b/Figures_results.py new file mode 100644 index 0000000..4922395 --- /dev/null +++ b/Figures_results.py @@ -0,0 +1,129 @@ +import numpy as np +import matplotlib.pyplot as plt +from analysis import get_fit_info, get_behaviour_values, calculate_percent_errors + + +def main(): + dir_path = "results/final_1/" + fits_info = get_fit_info(dir_path) + + cell_behaviour, model_behaviour = get_behaviour_values(fits_info) + # behaviour_overview_pairs(cell_behaviour, model_behaviour) + + # errors = calculate_percent_errors(fits_info) + # create_boxplots(errors) + + +def create_boxplots(errors): + + labels = ["{}_n:{}".format(k, len(errors[k])) for k in sorted(errors.keys())] + for k in sorted(errors.keys()): + print("{}: median %-error: {:.2f}".format(k, np.median(errors[k]))) + y_values = [errors[k] for k in sorted(errors.keys())] + + plt.boxplot(y_values) + plt.xticks(np.arange(1, len(y_values)+1, 1), labels, rotation=45) + plt.tight_layout() + plt.show() + plt.close() + + +def behaviour_overview_pairs(cell_behaviour, model_behaviour): + # behaviour_keys = ["Burstiness", "coefficient_of_variation", "serial_correlation", + # "vector_strength", "f_inf_slope", "f_zero_slope", "baseline_frequency"] + + pairs = [("baseline_frequency", "vector_strength", "serial_correlation"), + ("Burstiness", "coefficient_of_variation"), + ("f_inf_slope", "f_zero_slope")] + + for pair in pairs: + cell = [] + model = [] + for behaviour in pair: + cell.append(cell_behaviour[behaviour]) + model.append(model_behaviour[behaviour]) + overview_pair(cell, model, pair) + + +def overview_pair(cell, model, titles): + fig = plt.figure(figsize=(8, 6)) + + columns = len(cell) + + # Add a gridspec with two rows and two columns and a ratio of 2 to 7 between + # the size of the marginal axes and the main axes in both directions. + # Also adjust the subplot parameters for a square plot. + gs = fig.add_gridspec(2, columns, width_ratios=[5] * columns, height_ratios=[3, 7], + left=0.1, right=0.9, bottom=0.1, top=0.9, + wspace=0.2, hspace=0.05) + + for i in range(len(cell)): + ax = fig.add_subplot(gs[1, i]) + ax_histx = fig.add_subplot(gs[0, i], sharex=ax) + scatter_hist(cell[i], model[i], ax, ax_histx, titles[i]) + + plt.tight_layout() + plt.show() + + +def grouped_error_overview_behaviour_dist(cell_behaviours, model_behaviours): + # start with a square Figure + fig = plt.figure(figsize=(12, 12)) + + rows = 4 + columns = 2 + # Add a gridspec with two rows and two columns and a ratio of 2 to 7 between + # the size of the marginal axes and the main axes in both directions. + # Also adjust the subplot parameters for a square plot. + gs = fig.add_gridspec(rows*2, columns, width_ratios=[5]*columns, height_ratios=[3, 7] * rows, + left=0.1, right=0.9, bottom=0.1, top=0.9, + wspace=0.2, hspace=0.5) + + for i, behaviour in enumerate(sorted(cell_behaviours.keys())): + col = int(np.floor(i / rows)) + row = i - rows*col + ax = fig.add_subplot(gs[row*2 + 1, col]) + ax_histx = fig.add_subplot(gs[row*2, col]) + + # use the previously defined function + scatter_hist(cell_behaviours[behaviour], model_behaviours[behaviour], ax, ax_histx, behaviour) + + # plt.tight_layout() + plt.show() + + +def scatter_hist(cell_values, model_values, ax, ax_histx, behaviour, ax_histy=None): + # copied from matplotlib + + # no labels + ax_histx.tick_params(axis="cell_values", labelbottom=False) + # ax_histy.tick_params(axis="model_values", labelleft=False) + + # the scatter plot: + ax.scatter(cell_values, model_values) + + minimum = min(min(cell_values), min(model_values)) + maximum = max(max(cell_values), max(model_values)) + ax.plot((minimum, maximum), (minimum, maximum), color="grey") + + ax.set_xlabel("cell") + ax.set_ylabel("model") + + # now determine nice limits by hand: + binwidth = 0.25 + xymax = max(np.max(np.abs(cell_values)), np.max(np.abs(model_values))) + lim = (int(xymax/binwidth) + 1) * binwidth + + bins = np.arange(-lim, lim + binwidth, binwidth) + ax_histx.hist(cell_values, color="blue", alpha=0.5) + ax_histx.hist(model_values, color="orange", alpha=0.5) + # ax_histx.set_xticklabels([]) + # ax_histx.set_xticks(ax.get_xticks()) + # ax_histx.set_xlim(ax.get_xlim()) + ax_histx.set_title(behaviour) + + # ax_histy.hist(y, bins=bins, orientation='horizontal') + + +if __name__ == '__main__': + main() diff --git a/Fitter.py b/Fitter.py index b8c0b56..2e81c96 100644 --- a/Fitter.py +++ b/Fitter.py @@ -294,68 +294,68 @@ class Fitter: return error_f0_curve - def calculate_f0_curve_error_new(self, model, fi_curve_model): - buffer = 0.05 - test_duration = 0.05 - - times, freqs = fi_curve_model.get_mean_time_and_freq_traces() - freq_prediction = np.array(freqs[self.f_zero_curve_contrast_idx]) - time_prediction = np.array(times[self.f_zero_curve_contrast_idx]) - - if len(time_prediction) == 0: - return 200 - stimulus_start = fi_curve_model.get_stimulus_start() - time_prediction[0] - - model_start_idx = int((stimulus_start - buffer) / model.get_sampling_interval()) - model_end_idx = int((stimulus_start + buffer + test_duration) / model.get_sampling_interval()) - - if len(time_prediction) == 0 or len(time_prediction) < model_end_idx \ - or time_prediction[0] > fi_curve_model.get_stimulus_start(): - error_f0_curve = 200 - return error_f0_curve - - model_curve = np.array(freq_prediction[model_start_idx:model_end_idx]) - - # prepare cell frequency_curve: - - stimulus_start = self.recording_times[1] - self.f_zero_curve_time[0] - cell_start_idx = int((stimulus_start - buffer) / self.data_sampling_interval) - cell_end_idx = int((stimulus_start - buffer + test_duration) / self.data_sampling_interval) - - if round(model.get_sampling_interval() % self.data_sampling_interval, 4) == 0: - step_cell = int(round(model.get_sampling_interval() / self.data_sampling_interval)) - else: - raise ValueError("Model sampling interval is not a multiple of data sampling interval.") - - cell_curve = self.f_zero_curve_freq[cell_start_idx:cell_end_idx:step_cell] - cell_time = self.f_zero_curve_time[cell_start_idx:cell_end_idx:step_cell] - cell_curve_std = np.std(self.f_zero_curve_freq) - model_curve_std = np.std(freq_prediction) - - model_limit = self.baseline_freq + model_curve_std - cell_limit = self.baseline_freq + cell_curve_std - - cell_full_precicion = np.array(self.f_zero_curve_freq[cell_start_idx:cell_end_idx]) - cell_points_above = cell_full_precicion > cell_limit - cell_area_above = sum(cell_full_precicion[cell_points_above]) * self.data_sampling_interval - - model_points_above = model_curve > model_limit - model_area_above = sum(model_curve[model_points_above]) * model.get_sampling_interval() - - # plt.close() - # plt.plot(cell_time, cell_curve, color="blue") - # plt.plot((cell_time[0], cell_time[-1]), (cell_limit, cell_limit), - # color="lightblue", label="area: {:.2f}".format(cell_area_above)) - # - # plt.plot(time_prediction[model_start_idx:model_end_idx], model_curve, color="orange") - # plt.plot((time_prediction[model_start_idx], time_prediction[model_end_idx]), (model_limit, model_limit), - # color="red", label="area: {:.2f}".format(model_area_above)) - # plt.legend() - # plt.title("Error: {:.2f}".format(abs(model_area_above - cell_area_above) / 0.02)) - # plt.savefig("./figures/f_zero_curve_error_{}.png".format(time.strftime("%H:%M:%S"))) - # plt.close() - - return abs(model_area_above - cell_area_above) + # def calculate_f0_curve_error_new(self, model, fi_curve_model): + # buffer = 0.05 + # test_duration = 0.05 + # + # times, freqs = fi_curve_model.get_mean_time_and_freq_traces() + # freq_prediction = np.array(freqs[self.f_zero_curve_contrast_idx]) + # time_prediction = np.array(times[self.f_zero_curve_contrast_idx]) + # + # if len(time_prediction) == 0: + # return 200 + # stimulus_start = fi_curve_model.get_stimulus_start() - time_prediction[0] + # + # model_start_idx = int((stimulus_start - buffer) / model.get_sampling_interval()) + # model_end_idx = int((stimulus_start + buffer + test_duration) / model.get_sampling_interval()) + # + # if len(time_prediction) == 0 or len(time_prediction) < model_end_idx \ + # or time_prediction[0] > fi_curve_model.get_stimulus_start(): + # error_f0_curve = 200 + # return error_f0_curve + # + # model_curve = np.array(freq_prediction[model_start_idx:model_end_idx]) + # + # # prepare cell frequency_curve: + # + # stimulus_start = self.recording_times[1] - self.f_zero_curve_time[0] + # cell_start_idx = int((stimulus_start - buffer) / self.data_sampling_interval) + # cell_end_idx = int((stimulus_start - buffer + test_duration) / self.data_sampling_interval) + # + # if round(model.get_sampling_interval() % self.data_sampling_interval, 4) == 0: + # step_cell = int(round(model.get_sampling_interval() / self.data_sampling_interval)) + # else: + # raise ValueError("Model sampling interval is not a multiple of data sampling interval.") + # + # cell_curve = self.f_zero_curve_freq[cell_start_idx:cell_end_idx:step_cell] + # cell_time = self.f_zero_curve_time[cell_start_idx:cell_end_idx:step_cell] + # cell_curve_std = np.std(self.f_zero_curve_freq) + # model_curve_std = np.std(freq_prediction) + # + # model_limit = self.baseline_freq + model_curve_std + # cell_limit = self.baseline_freq + cell_curve_std + # + # cell_full_precicion = np.array(self.f_zero_curve_freq[cell_start_idx:cell_end_idx]) + # cell_points_above = cell_full_precicion > cell_limit + # cell_area_above = sum(cell_full_precicion[cell_points_above]) * self.data_sampling_interval + # + # model_points_above = model_curve > model_limit + # model_area_above = sum(model_curve[model_points_above]) * model.get_sampling_interval() + # + # # plt.close() + # # plt.plot(cell_time, cell_curve, color="blue") + # # plt.plot((cell_time[0], cell_time[-1]), (cell_limit, cell_limit), + # # color="lightblue", label="area: {:.2f}".format(cell_area_above)) + # # + # # plt.plot(time_prediction[model_start_idx:model_end_idx], model_curve, color="orange") + # # plt.plot((time_prediction[model_start_idx], time_prediction[model_end_idx]), (model_limit, model_limit), + # # color="red", label="area: {:.2f}".format(model_area_above)) + # # plt.legend() + # # plt.title("Error: {:.2f}".format(abs(model_area_above - cell_area_above) / 0.02)) + # # plt.savefig("./figures/f_zero_curve_error_{}.png".format(time.strftime("%H:%M:%S"))) + # # plt.close() + # + # return abs(model_area_above - cell_area_above) def calculate_list_error(fit, reference): diff --git a/ModelFit.py b/ModelFit.py index d496917..ebc08c3 100644 --- a/ModelFit.py +++ b/ModelFit.py @@ -11,7 +11,7 @@ import functions as fu import matplotlib.pyplot as plt -def get_best_fit(folder_path, use_comparable_error=True): +def get_best_fit(folder_path, use_comparable_error=False): min_err = np.inf min_item = "" for item in os.listdir(folder_path): diff --git a/analysis.py b/analysis.py index 0f2601c..3fbe4f5 100644 --- a/analysis.py +++ b/analysis.py @@ -31,36 +31,16 @@ def main(): fits_info = get_fit_info(dir_path) total_fits = len(fits_info) - for cell in sorted(fits_info.keys()): - model_values = fits_info[cell][1] - - # if model_values["vector_strength"] < 0.4: - # del fits_info[cell] - # print("excluded because of vs") - # - # elif model_values["f_inf_slope"] / fits_info[cell][2]["f_inf_slope"] > 2: - # del fits_info[cell] - # print("f_inf bad") - # - # elif abs((model_values["baseline_frequency"] / fits_info[cell][2]["baseline_frequency"]) - 1) > 0.05: - # del fits_info[cell] - # print("baseline freq bad") - # - # elif fits_info[cell][2]["Burstiness"] == 0 or abs((model_values["Burstiness"] / fits_info[cell][2]["Burstiness"]) - 1) > 0.65: - # del fits_info[cell] - # print("burstiness bad") - - # plot_overview_plus_hist(fits_info) - + cell_behaviour, model_behaviour = get_behaviour_values(fits_info) print("'good' fits of total fits: {} / {}".format(len(fits_info), total_fits)) errors = calculate_percent_errors(fits_info) - create_boxplots(errors) - labels, corr_values, corrected_p_values = behaviour_correlations(fits_info, model_values=False) - create_correlation_plot(labels, corr_values, corrected_p_values) - labels, corr_values, corrected_p_values = parameter_correlations(fits_info) - create_correlation_plot(labels, corr_values, corrected_p_values) + # labels, corr_values, corrected_p_values = behaviour_correlations(fits_info, model_values=False) + # create_correlation_plot(labels, corr_values, corrected_p_values) + # + # labels, corr_values, corrected_p_values = parameter_correlations(fits_info) + # create_correlation_plot(labels, corr_values, corrected_p_values) create_parameter_distributions(get_parameter_values(fits_info)) cell_b, model_b = get_behaviour_values(fits_info) @@ -204,87 +184,6 @@ def create_correlation_plot(labels, correlations, p_values): plt.show() -def create_boxplots(errors): - - labels = ["{}_n:{}".format(k, len(errors[k])) for k in sorted(errors.keys())] - for k in sorted(errors.keys()): - print("{}: median %-error: {:.2f}".format(k, np.median(errors[k]))) - y_values = [errors[k] for k in sorted(errors.keys())] - - plt.boxplot(y_values) - plt.xticks(np.arange(1, len(y_values)+1, 1), labels, rotation=45) - plt.tight_layout() - plt.show() - plt.close() - - -def plot_overview_plus_hist(fits_info): - pairs = {} - for cell in sorted(fits_info.keys()): - for behaviour in fits_info[cell][1].keys(): - if behaviour not in pairs.keys(): - pairs[behaviour] = [[], []] - - # model_value - pairs[behaviour][1].append(fits_info[cell][1][behaviour]) - # cell value - pairs[behaviour][0].append(fits_info[cell][2][behaviour]) - - for behaviour in pairs.keys(): - error_overview_with_behaviour_dist(pairs[behaviour][0], pairs[behaviour][1], behaviour) - - -def error_overview_with_behaviour_dist(x, y, title): - # definitions for the axes - left, width = 0.1, 0.65 - bottom, height = 0.1, 0.65 - spacing = 0.005 - - rect_scatter = [left, bottom, width, height] - rect_histx = [left, bottom + height + spacing, width, 0.2] - rect_histy = [left + width + spacing, bottom, 0.2, height] - - # start with a square Figure - fig = plt.figure(figsize=(8, 8)) - - ax = fig.add_axes(rect_scatter) - ax_histx = fig.add_axes(rect_histx, sharex=ax) - ax_histy = None # fig.add_axes(rect_histy, sharey=ax) - - # use the previously defined function - scatter_hist(x, y, ax, ax_histx, ax_histy) - plt.title(title) - plt.show() - - -def scatter_hist(cell_values, model_values, ax, ax_histx, ax_histy): - # copied from matplotlib - - # no labels - ax_histx.tick_params(axis="cell_values", labelbottom=False) - # ax_histy.tick_params(axis="model_values", labelleft=False) - - # the scatter plot: - ax.scatter(cell_values, model_values) - - minimum = min(min(cell_values), min(model_values)) - maximum = max(max(cell_values), max(model_values)) - ax.plot((minimum, maximum), (minimum, maximum), color="grey") - - ax.set_xlabel("cell value") - ax.set_ylabel("model value") - - # now determine nice limits by hand: - binwidth = 0.25 - xymax = max(np.max(np.abs(cell_values)), np.max(np.abs(model_values))) - lim = (int(xymax/binwidth) + 1) * binwidth - - bins = np.arange(-lim, lim + binwidth, binwidth) - ax_histx.hist(cell_values, color="blue", alpha=0.5) - ax_histx.hist(model_values, color="orange", alpha=0.5) - # ax_histy.hist(y, bins=bins, orientation='horizontal') - - def create_parameter_distributions(par_values): fig, axes = plt.subplots(4, 2) diff --git a/cell_overview.py b/cell_overview.py index e795159..e87bc9b 100644 --- a/cell_overview.py +++ b/cell_overview.py @@ -13,8 +13,8 @@ def main(): # plot_visualizations("cells/") # full_overview("cells/master_table.csv", "cells/") - # recalculate_saved_preanalysis("data/final/") - metadata_analysis("data/final/") + recalculate_saved_preanalysis("data/final/") + # metadata_analysis("data/final/") pass @@ -85,9 +85,9 @@ def count_with_dict(dictionary, key): return dictionary - def recalculate_saved_preanalysis(data_folder): - for cell_data in icelldata_of_dir(data_folder, test_for_v1_trace=True): + for cell_data in icelldata_of_dir(data_folder, test_for_v1_trace=False): + print(cell_data.get_data_path()) baseline = BaselineCellData(cell_data) baseline.save_values(cell_data.get_data_path()) diff --git a/find_thresholds_for_spike_detection.py b/find_thresholds_for_spike_detection.py index e9fd296..eac3144 100644 --- a/find_thresholds_for_spike_detection.py +++ b/find_thresholds_for_spike_detection.py @@ -25,7 +25,7 @@ def precalculate_baseline_spiketimes(): thresholds_dict[name] = [thresh, min_length, step_size] - for cell_data in icelldata_of_dir("data/final/"): + for cell_data in icelldata_of_dir("data/final/", test_for_v1_trace=False): name = os.path.basename(cell_data.get_data_path()) if name not in thresholds_dict.keys(): @@ -36,7 +36,7 @@ def precalculate_baseline_spiketimes(): min_length = thresholds_dict[name][1] split_step_size = thresholds_dict[name][2] - cell_data.get_base_spikes(threshold=thresh, min_length=min_length, split_step=split_step_size) + cell_data.get_base_spikes(threshold=thresh, min_length=min_length, split_step=split_step_size, re_calculate=True) def choose_thresholds(): diff --git a/glm_prediction.py b/glm_prediction.py new file mode 100644 index 0000000..69f7696 --- /dev/null +++ b/glm_prediction.py @@ -0,0 +1,76 @@ + +from ModelFit import get_best_fit +import numpy as np +import os +import pandas +import matplotlib.pyplot as plt +import statsmodels.api as sm + + +def main(): + + + folder = "results/final_1/" + # input len(cells) x len(variables) 2D array + variable_order = ['Burstiness', 'baseline_frequency', 'coefficient_of_variation', + 'f_inf_slope', 'f_zero_slope', 'serial_correlation', 'vector_strength'] + behaviour, error = get_variables(folder, variable_order) + + df_behaviour = pandas.DataFrame(behaviour, columns=variable_order) + # print(df) + gamma_glm = sm.GLM(error, df_behaviour, sm.families.Gamma()) + fitted_model = gamma_glm.fit() + + params = fitted_model.params + p_values = fitted_model.pvalues + print(p_values) + predicted = fitted_model.predict() + # for i in range(len(predicted)): + # print("err: {:.2f} - {:.2f} prediction".format(error[i], predicted[i])) + print(fitted_model.summary()) + + + pass + + +def get_variables(folder, order): + variables = [] + error_values = [] + for cell in sorted(os.listdir(folder)): + fit = get_best_fit(folder + cell) + error = fit.get_error_value() + error_values.append(error) + cell_behaviour, _ = fit.get_behaviour_values() + cell_behaviour_variables = [] + + for b in order: + cell_behaviour_variables.append(cell_behaviour[b]) + + variables.append(np.array(cell_behaviour_variables, dtype=np.float64)) + + return np.array(variables), np.array(error_values, dtype=np.float64) + + +def till_shorthand(): + # logit_GLM = sm.GLM(df[ < result >], df[ < params >], family = sm.families.Binomial()) + # fitted_model = logit_GLM.fit() + # + # fitted_model.predict() + # # --> gets you the predicted values for df[] based on the fitted model + # + # + # fitted_model.params + # # --> coeff of params(sorted by input) + # + # fitted_model.pvalues + # # --> selbsterklärend + # + # fitted_model.summary() + # # ODER + # fitted_model.summary2() + # # --> überblick über das gefittete model + pass + + +if __name__ == '__main__': + main() diff --git a/random_models.py b/random_models.py new file mode 100644 index 0000000..62d7946 --- /dev/null +++ b/random_models.py @@ -0,0 +1,103 @@ + +import numpy as np +import os +import matplotlib.pyplot as plt +from scipy.optimize import curve_fit + +from ModelFit import get_best_fit +import functions as fu + + +def main(): + folder = "results/final_1/" + + param_values = get_parameter_distributions(folder) + plot_distributions(param_values) + pass + + +def plot_distributions(param_values): + bin_number = 30 + fig, axes = plt.subplots(len(param_values.keys()), 2) + + for i, key in enumerate(sorted(param_values.keys())): + + # normal hist: + values = param_values[key] + normal, n_bins, patches = axes[i, 0].hist(values, bins=bin_number, density=True) + axes[i, 0].set_title(key) + + # fit gauss: + bin_width = np.mean(np.diff(n_bins)) + middle_of_bins = n_bins + bin_width / 2 + axes[i, 0].plot(middle_of_bins[:-1], normal, 'o') + try: + n_gauss_pars = fit_gauss(middle_of_bins[:-1], normal) + x = np.arange(min(param_values[key]), max(param_values[key]), + (max(param_values[key]) - min(param_values[key])) / 100) + axes[i, 0].plot(x, fu.gauss(x, n_gauss_pars[0], n_gauss_pars[1], n_gauss_pars[2])) + except RuntimeError as e: + pass + + # log transformed: + if key != "v_offset": + log_values = np.log(np.array(param_values[key])) + log_trans, l_bins, patches = axes[i, 1].hist(log_values, bins=bin_number, density=True) + bin_width = np.mean(np.diff(l_bins)) + middle_of_bins = l_bins + bin_width / 2 + axes[i, 1].plot(middle_of_bins[:-1], log_trans, 'o') + try: + l_gauss_pars = fit_gauss(middle_of_bins[:-1], log_trans) + x = np.arange(min(log_values), max(log_values), + (max(log_values) - min(log_values)) / 100) + axes[i, 1].plot(x, fu.gauss(x, l_gauss_pars[0], l_gauss_pars[1], l_gauss_pars[2])) + except RuntimeError as e: + pass + + + + + + + + plt.tight_layout() + plt.show() + plt.close() + + +def fit_gauss(x_values, y_values): + mean_v = np.mean(x_values) + std_v = np.std(x_values) + amp = max(y_values) + popt, pcov = curve_fit(fu.gauss, x_values, y_values, p0=(amp, mean_v, std_v)) + + return popt + +def get_parameter_distributions(folder, param_keys=None): + if param_keys is None: + param_keys = ["v_offset", 'input_scaling', 'dend_tau', 'tau_a', 'delta_a', + 'refractory_period', 'noise_strength', 'mem_tau'] + parameter_values = {} + + for key in param_keys: + parameter_values[key] = [] + + for cell in sorted(os.listdir(folder)): + fit = get_best_fit(folder + cell) + + final_params = fit.get_final_parameters() + + for key in param_keys: + parameter_values[key].append(final_params[key]) + + return parameter_values + + + + + + + + +if __name__ == '__main__': + main() diff --git a/redetect_fi_curve.py b/redetect_fi_curve.py new file mode 100644 index 0000000..002beb8 --- /dev/null +++ b/redetect_fi_curve.py @@ -0,0 +1,609 @@ + + +from CellData import CellData +from DataParserFactory import DatParser +import pyrelacs.DataLoader as Dl +import helperFunctions as hF +from thunderfish.eventdetection import detect_peaks + +import os +import numpy as np +import matplotlib.pyplot as plt + +TEST_SIMILARITY = True +REDETECT_SPIKES = True + +TOP_PERCENTILE = 95 +BOTTOM_PERCENTILE = 5 +FACTOR = 0.5 + +# strange_cells: + +# 2012-07-12-ap-invivo-1 # cell with a few traces with max similarity < 0.1 +# 2012-12-13-af-invivo-1 # cell with MANY traces with max similarity < 0.1 +# 2012-12-21-ak-invivo-1 # a few +# 2012-12-21-an-invivo-1 # a few +# 2013-02-21-ae-invivo-1 # " +# 2013-02-21-ag-invivo-1 # " + +# 2014-06-06-ac-invivo-1 # alot below 0.4 but a good bit above the 2nd max + + +def main(): + test_fi_trace() + quit() + + # find_and_save_best_threshold() + # quit() + + directory = "data/final/" + skip_to = False + skip_to_cell = "2012-12-13-af-invivo-1" + threshold_file_path = "data/fi_thresholds.tsv" + thresholds_dict = load_fi_thresholds(threshold_file_path) + + for cell in sorted(os.listdir(directory)): + # if cell != "2014-01-10-ab-invivo-1": + # continue + if skip_to: + if cell == skip_to_cell: + skip_to = False + else: + continue + + cell_dir = directory + cell # "data/final/2012-04-20-af-invivo-1/" + print(cell_dir) + + cell_data = CellData(cell_dir) + before = cell_data.get_delay() + after = cell_data.get_after_stimulus_duration() + # parser = DatParser(cell_dir) + + if os.path.exists(cell_dir + "/redetected_spikes.npy") and not REDETECT_SPIKES: + spikes = np.load(cell_dir + "/redetected_spikes.npy", allow_pickle=True) + traces = np.load(cell_dir + "/fi_time_v1_traces.npy", allow_pickle=True) + else: + step = cell_data.get_sampling_interval() + threshold_pair = thresholds_dict[cell] + spikes, traces = get_redetected_spikes(cell_dir, before, after, step, threshold_pair) + np.save(cell_dir + "/redetected_spikes.npy", spikes, allow_pickle=True) + np.save(cell_dir + "/fi_time_v1_traces.npy", traces, allow_pickle=True) + print("redetection finished") + + if os.path.exists(cell_dir + "/fi_traces_contrasts.npy") and not TEST_SIMILARITY: + trace_contrasts = np.load(cell_dir + "/fi_traces_contrasts.npy", allow_pickle=True) + trace_max_similarity = np.load(cell_dir + "/fi_traces_contrasts_similarity.npy", allow_pickle=True) + + else: + cell_spiketrains = cell_data.get_fi_spiketimes() + + # plt.plot(traces[0][0], traces[0][1]) + # plt.eventplot(cell_spiketrains[0][0], colors="black", lineoffsets=max(traces[0][1]) + 1) + # plt.eventplot(spikes[0], colors="black", lineoffsets=max(traces[0][1]) + 2) + # plt.show() + # plt.close() + + # unsorted_cell_spiketimes = get_unsorted_spiketimes(cell_dir + "/fispikes1.dat") + + trace_contrasts = np.zeros(len(traces), dtype=np.int) - 1 + trace_max_similarity = np.zeros((len(traces), 2)) - 1 + for i, spiketrain in enumerate(spikes): + + similarity, max_idx, maxima = find_matching_spiketrain(spiketrain, cell_spiketrains, cell_data.get_sampling_interval()) + + trace_contrasts[i] = max_idx[0] + trace_max_similarity[i] = maxima + # if trace_max_similarity[i] <= 0.05: + # step = cell_data.get_sampling_interval() + # test_detected_spiketimes(traces[i], spiketrain, cell_spiketrains[max_idx[0]], step) + + np.save(cell_dir + "/fi_traces_contrasts.npy", trace_contrasts, allow_pickle=True) + np.save(cell_dir + "/fi_traces_contrasts_similarity.npy", trace_max_similarity, allow_pickle=True) + print("similarity test finished") + + # step_size = cell_data.get_sampling_interval() + # steps = np.arange(0, 100.1, 0.5) + # percentiles_arr = np.zeros((len(traces), len(steps))) + # for i, trace_pair in enumerate(traces): + # v1_part = trace_pair[1][-int(np.rint(0.6/step_size)):] + # percentiles = np.percentile(np.array(v1_part) - np.median(v1_part), steps) + # percentiles_arr[i, :] = percentiles + # plt.plot(steps, percentiles) + + # mean_perc = np.mean(percentiles_arr, axis=0) + + # plt.plot(steps, mean_perc) + # plt.show() + # plt.close() + # bins = np.arange(0, 1.001, 0.05) + # plt.hist(trace_max_similarity, bins=bins) + # plt.show() + # plt.close() + # + # + # step_size = cell_data.get_sampling_interval() + # cell_spiketrains = cell_data.get_fi_spiketimes() + # contrasts = cell_data.get_fi_contrasts() + # tested_contrasts = [] + # for i, redetected in enumerate(spikes): + # idx = trace_contrasts[i] + # if idx not in tested_contrasts: + # print("Contrast: {:.3f}".format(contrasts[idx])) + # test_detected_spiketimes(traces[i], redetected, cell_spiketrains[idx], step_size) + # tested_contrasts.append(idx) + + +def test_fi_trace(): + # cell = "2012-12-13-af-invivo-1" + # cell = "2012-07-12-ap-invivo-1" + data_dir = "data/final/" + + full_count = 0 + contrast_trials_below_three = 0 + differences_max_second_max = [] + for cell in sorted(os.listdir(data_dir)): + cell_dir = data_dir + cell + # print(cell) + cell_data = CellData(cell_dir) + step_size = cell_data.get_sampling_interval() + spiketimes = cell_data.get_fi_spiketimes() + # trials = [len(x) for x in spiketimes] + # total = sum(trials) + spikes = np.load(cell_dir + "/redetected_spikes.npy", allow_pickle=True) + # print("Cell data total: {} vs {} # traces".format(total, len(spikes))) + + traces = np.load(cell_dir + "/fi_time_v1_traces.npy", allow_pickle=True) + trace_contrasts = np.load(cell_dir + "/fi_traces_contrasts.npy", allow_pickle=True) + trace_max_similarity = np.load(cell_dir + "/fi_traces_contrasts_similarity.npy", allow_pickle=True) + count_good = 0 + count_bad = 0 + + threshold_file_path = "data/fi_thresholds.tsv" + + # thresholds_dict = load_fi_thresholds(threshold_file_path) + # spikes, traces = get_redetected_spikes(cell_dir, 0.2, 0.8, cell_data.get_sampling_interval(), thresholds_dict[cell]) + # print("No preduration:", len(traces)) + + contrast_trials = {} + for i in range(len(traces)): + differences_max_second_max.append((trace_max_similarity[i][0] - trace_max_similarity[i][1])/ trace_max_similarity[i][0]) + + if trace_max_similarity[i][0] > trace_max_similarity[i][1] + 0.15 and trace_max_similarity[i][0] < trace_max_similarity[i][1] + 0.2: + print("max sim: {:.2f}, {:.2f}".format(trace_max_similarity[i][0], trace_max_similarity[i][1])) + + if trace_max_similarity[i][0] > trace_max_similarity[i][1] + 0.15: + count_good += 1 + if trace_contrasts[i] not in contrast_trials: + contrast_trials[trace_contrasts[i]] = 0 + contrast_trials[trace_contrasts[i]] += 1 + continue + + + count_bad += 1 + + + + + + + # count_bad += 1 + # event_offset = max(traces[i][1]) + 0.5 + # fig, axes = plt.subplots(2, 1, sharex="all") + # axes[0].plot(traces[i][0], traces[i][1]) + # axes[0].eventplot(spikes[i], lineoffsets=event_offset, colors="black") + # + # similarity, max_idx, maxima = find_matching_spiketrain(spikes[i], spiketimes, step_size) + # axes[0].eventplot(spiketimes[max_idx[0]][max_idx[1]], lineoffsets=event_offset + 1, colors="orange") + # + # # for o, st in enumerate(spiketimes[trace_contrasts[i]]): + # # axes[0].eventplot(st, lineoffsets=event_offset + 1 + o*1, colors="orange") + # + # time, v1, eod, local_eod, stimulus = get_ith_trace(cell_dir, i) + # axes[1].plot(time, local_eod) + # + # plt.show() + # plt.close() + + + + # t, f = hF.calculate_time_and_frequency_trace(spikes[-1], cell_data.get_sampling_interval()) + # plt.plot(t, f) + # plt.eventplot(spikes[-1], lineoffsets=max(traces[-1][1]) + 0.5) + # plt.show() + # plt.close() + + if count_bad > 0: + + over_seven = 0 + below_three = 0 + for key in contrast_trials.keys(): + if contrast_trials[key] >= 7: + over_seven += 1 + if contrast_trials[key] < 3: + below_three += 1 + + if over_seven < 7: + full_count += 1 + print(cell) + print(contrast_trials) + print("good:", count_good, "bad:", count_bad) + if below_three > 1: + contrast_trials_below_three += 1 + + # print("good:", count_good, "bad:", count_bad) + + print("Cells less than 7 trials in seven contrasts:", full_count) + print("Cells less than 3 trials in a contrast:", contrast_trials_below_three) + + +def get_ith_trace(cell_dir, i): + count = 0 + for info, key, time, x in Dl.iload_traces(cell_dir, repro="FICurve", before=0.2, after=0.8): + + if '----- Control --------------------------------------------------------' in info[0].keys(): + pre_duration = float( + info[0]["----- Pre-Intensities ------------------------------------------------"]["preduration"][:-2]) + if pre_duration != 0: + continue + elif "preduration" in info[0].keys(): + pre_duration = float(info[0]["preduration"][:-2]) + if pre_duration != 0: + continue + elif len(info) == 2 and "preduration" in info[1].keys(): + pre_duration = float(info[1]["preduration"][:-2]) + if pre_duration != 0: + continue + + if count < i: + count += 1 + continue + # print(count) + + # time, v1, eod, local_eod, stimulus + # print(info) + # print(key) + + v1 = x[0] + eod = x[1] + local_eod = x[2] + stimulus = x[3] + + return time, v1, eod, local_eod, stimulus + + +def load_fi_thresholds(threshold_file_path): + thresholds_dict = {} + + if os.path.exists(threshold_file_path): + with open(threshold_file_path, "r") as threshold_file: + for line in threshold_file: + line = line.strip() + line = line.split('\t') + name = line[0] + bottom_percentile = float(line[1]) + top_percentile = float(line[2]) + + thresholds_dict[name] = [bottom_percentile, top_percentile] + # print("Already done:", name) + + return thresholds_dict + + +def find_and_save_best_threshold(): + base_path = "data/final/" + threshold_file_path = "data/fi_thresholds.tsv" + re_choose_thresholds = False + + thresholds_dict = load_fi_thresholds(threshold_file_path) + + count = 0 + for item in sorted(os.listdir(base_path)): + if item in thresholds_dict.keys() and not re_choose_thresholds: + continue + count += 1 + + print("cells to do:", count) + + for item in sorted(os.listdir(base_path)): + if item in thresholds_dict.keys() and not re_choose_thresholds and not thresholds_dict[item][0] < 10: + print("Already done:", item) + continue + + cell_dir = base_path + item + # starting assumptions: + standard_top_percentile = 95 + threshold_pairs = [(40, 95), (50, 95), (60, 95)] + colors = ["blue", "orange", "red"] + + if "thresholds" in item: + continue + + print(item) + item_path = base_path + item + cell_data = CellData(item_path) + step_size = cell_data.get_sampling_interval() + + trace_pairs = np.load(cell_dir + "/fi_time_v1_traces.npy", allow_pickle=True) + trace_contrasts = np.load(cell_dir + "/fi_traces_contrasts.npy", allow_pickle=True) + trace_max_similarity = np.load(cell_dir + "/fi_traces_contrasts_similarity.npy", allow_pickle=True) + + example_trace_pairs = [] + example_contrasts = [] + + for i, trace_pair in enumerate(trace_pairs): + if trace_contrasts[i] not in example_contrasts: + example_contrasts.append(trace_contrasts[i]) + example_trace_pairs.append(trace_pair) + + example_contrasts, example_trace_pairs = zip(*sorted(zip(example_contrasts, example_trace_pairs))) + + stop = False + + print("Thresholds are:\n ") + for i in range(len(threshold_pairs)): + print("{}: {} - {}".format(i, colors[i], threshold_pairs[i])) + + plot_test_thresholds(example_trace_pairs, threshold_pairs, colors, step_size) + + response = input("Choose: 'ok', 'stop', or a number (bottom threshold 0-100)") + + while True: + if response == "stop": + stop = True + break + elif response.lower().startswith("ok"): + parts = response.split(" ") + if len(parts) == 1: + print("please specify an index:") + response = input("Choose: 'ok', 'stop', or a number (bottom threshold 0-100)") + continue + try: + threshold_idx = int(parts[1]) + break + except: + print("{} could not be parsed as number or ok please try again.".format(response)) + print("Thresholds are:\n ") + for i in range(len(threshold_pairs)): + print("{}: {} - {}".format(i, colors[i], threshold_pairs[i])) + + response = input("Choose: 'ok', 'stop', or a number (bottom threshold 0-100)") + + try: + parts = response.strip().split(",") + if len(parts) == 1: + extra_pair = (float(parts[0]), standard_top_percentile) + elif len(parts) == 2: + extra_pair = (float(parts[0]), float(parts[1])) + else: + raise ValueError() + + except ValueError as e: + print("{} could not be parsed as number or ok please try again.".format(response)) + print("Thresholds are:\n ") + for i in range(len(threshold_pairs)): + print("{}: {} - {}".format(i, colors[i], threshold_pairs[i])) + + response = input("Choose: 'ok', 'stop', or a number (bottom threshold 0-100) or two numbers: bot, top") + continue + + plot_test_thresholds(example_trace_pairs, threshold_pairs, colors, step_size, extra_pair=extra_pair) + + print("Thresholds are:\n ") + for i in range(len(threshold_pairs)): + print("{}: {} - {}".format(i, colors[i], threshold_pairs[i])) + + response = input("Choose: 'ok', 'stop', or a number (bottom threshold 0-100)") + + if stop: + break + + if threshold_idx < len(threshold_pairs): + thresholds_dict[item] = [threshold_pairs[threshold_idx][0], threshold_pairs[threshold_idx][1]] + else: + thresholds_dict[item] = [extra_pair[0], extra_pair[1]] + + with open(threshold_file_path, "w") as threshold_file: + for name in sorted(thresholds_dict.keys()): + line = name + "\t" + line += str(thresholds_dict[name][0]) + "\t" + line += str(thresholds_dict[name][1]) + "\t" + threshold_file.write(line + "\n") + + +def plot_test_thresholds(trace_pairs, threshold_pairs, colors, step_size, extra_pair=None): + + ncols = int(np.ceil(len(trace_pairs) / 4)) + nrows = int(np.ceil(len(trace_pairs) / ncols)) + + fig, axes = plt.subplots(nrows, ncols, sharex="all", figsize=(12, 12)) + + for i, (time, v1) in enumerate(trace_pairs): + line_offset = 0 + c = i % ncols + r = int(np.floor(i / ncols)) + + v1_max = np.max(v1) + v1_median = np.median(v1) + + axes[r, c].plot(time, v1) + axes[r, c].plot((time[0], time[-1]), (v1_median, v1_median), color="black") + + v1_part = v1[-int(0.6/step_size):] + + if extra_pair is not None: + threshold = np.percentile(v1_part, extra_pair[1]) - np.percentile(v1_part, extra_pair[0]) + axes[r, c].plot((time[0], time[-1]), (v1_median+threshold, v1_median+threshold), color="black") + peaks, _ = detect_peaks(v1, threshold=threshold) + spikes = [time[idx] for idx in peaks] + axes[r, c].eventplot(spikes, colors="black", lineoffsets=v1_max + line_offset) + line_offset += 1 + + for j, (bot_perc, top_perc) in enumerate(threshold_pairs): + threshold = np.percentile(v1_part, top_perc) - np.percentile(v1_part, bot_perc) + axes[r, c].plot((time[0], time[-1]), (v1_median + threshold, v1_median + threshold), color=colors[j]) + peaks, _ = detect_peaks(v1, threshold=threshold) + spikes = [time[idx] for idx in peaks] + axes[r, c].eventplot(spikes, colors=colors[j], lineoffsets=v1_max + line_offset) + line_offset += 1 + + plt.show() + plt.close() + + +def test_detected_spiketimes(traces, redetected, spiketimes, step): + time = traces[0] + v1 = traces[1] + plt.plot(traces[0], traces[1]) + plt.eventplot(redetected, colors="red", lineoffsets=max(traces[1]) + 1) + median = np.median(traces[1]) + last_600_ms = int(np.rint(0.6 / step)) + threshold_last_600 = np.percentile(v1[-last_600_ms:], TOP_PERCENTILE) - np.percentile(v1[-last_600_ms:], BOTTOM_PERCENTILE) * FACTOR + threshold_normal = np.percentile(v1, 94.5) - np.percentile(v1, 50) + print("threshold full time : {:.2f}".format(threshold_normal)) + print("threshold last 600 ms: {:.2f}".format(threshold_last_600)) + peaks, _ = detect_peaks(v1, threshold=threshold_last_600) + redetected_current_values = [time[idx] for idx in peaks] + + plt.eventplot(redetected_current_values, colors="green", lineoffsets=max(traces[1]) + 2) + + plt.plot((traces[0][0], traces[0][-1]), (median, median), color="black") + plt.plot((traces[0][0], traces[0][-1]), (median+threshold_normal, median+threshold_normal), color="black") + plt.plot((traces[0][0], traces[0][-1]), (median+threshold_last_600, median+threshold_last_600), color="grey") + for i, spiketrain in enumerate(spiketimes): + plt.eventplot(spiketrain, colors="black", lineoffsets=max(traces[1]) + 3 + i) + + plt.show() + plt.close() + + +def plot_percentiles(trace): + steps = np.arange(0, 100.1, 0.5) + percentiles = np.percentile(trace, steps) + + plt.plot(steps, percentiles) + plt.show() + plt.close() + + +def get_unsorted_spiketimes(fi_file): + spiketimes = [] + for metadata, key, data in Dl.iload(fi_file): + spike_time_data = data[:, 0] / 1000 + spiketimes.append(spike_time_data) + return spiketimes + + +def find_matching_spiketrain(redetected, cell_spiketrains, step_size): + # redetected_idices = [int(np.rint(s / step_size)) for s in redetected] + spikes_dict = {} + for s in redetected: + idx = int(np.rint(s / step_size)) + spikes_dict[idx] = True + spikes_dict[idx+1] = True + spikes_dict[idx-1] = True + similarity = np.zeros((len(cell_spiketrains), max([len(contrast_list) for contrast_list in cell_spiketrains]))) + maximum = -1 + max_idx = (-1, -1) + for i, contrast_list in enumerate(cell_spiketrains): + for j, cell_spiketrain in enumerate(contrast_list): + + count = 0 + cell_spike_indices = [int(np.rint(s / step_size)) for s in cell_spiketrain] + + # plt.plot(cell_spiketrain, cell_spike_indices, '.') + # plt.plot(redetected, redetected_idices, '.') + # plt.show() + # plt.close() + + for spike in cell_spiketrain: + idx = int(np.rint(spike / step_size)) + if idx in spikes_dict: + count += 1 + similarity[i, j] = count / len(cell_spiketrain) + if similarity[i, j] > maximum: + maximum = similarity[i, j] + max_idx = (i, j) + + # plt.imshow(similarity) + # plt.show() + # plt.close() + flattened = similarity.flatten() + sorted_flattened = sorted(flattened) + second_max = sorted_flattened[-2] + if maximum < 0.5: + print("Identification: max_sim: {:.2f} vs {:.2f} second max; Diff: {} worked".format(maximum, second_max, maximum - second_max)) + return similarity, max_idx, (maximum, second_max) + + +def get_redetected_spikes(cell_dir, before, after, step, threshold_pair): + spikes_list = [] + traces = [] + count = 1 + for info, key, time, x in Dl.iload_traces(cell_dir, repro="FICurve", before=before, after=after): + # print(count) + + if '----- Control --------------------------------------------------------' in info[0].keys(): + pre_duration = float( + info[0]["----- Pre-Intensities ------------------------------------------------"]["preduration"][:-2]) + if pre_duration != 0: + continue + elif "preduration" in info[0].keys(): + pre_duration = float(info[0]["preduration"][:-2]) + if pre_duration != 0: + continue + elif len(info) == 2 and "preduration" in info[1].keys(): + pre_duration = float(info[1]["preduration"][:-2]) + if pre_duration != 0: + continue + count += 1 + + # time, v1, eod, local_eod, stimulus + # print(key) + # print(info) + v1 = x[0] + # percentiles = np.arange(0.0, 101, 1) + # plt.plot(percentiles, np.percentile(v1, percentiles)) + # plt.show() + # plt.close() + + if len(v1) > 15/step: + print("Skipping Fi-Curve trace longer than 15 seconds!") + continue + if len(v1) > 3/step: + print("Warning: A FI-Curve trace is longer than 3 seconds.") + + if after < 0.8: + print("Why the f is the after stimulus time shorter than 0.8s ???") + raise ValueError("Safety error: check where the after stimulus time comes from.") + + last_about_600_ms = int(np.rint((after-0.2)/step)) + top = np.percentile(v1[-last_about_600_ms:], threshold_pair[1]) + bottom = np.percentile(v1[-last_about_600_ms:], threshold_pair[0]) + threshold = (top - bottom) + + peaks, _ = detect_peaks(v1, threshold=threshold) + spikes = [time[idx] for idx in peaks] + spikes_list.append(np.array(spikes)) + # eod = x[1] + # local_eod = x[2] + stimulus = x[3] + # if count % 5 == 0: + # plt.eventplot(spikes, colors="black", lineoffsets=max(v1) + 1) + # plt.plot(time, v1) + # median = np.median(v1) + # plt.plot((time[0], time[-1]), (median, median), color="grey") + # plt.plot((time[0], time[-1]), (median+threshold, median+threshold), color="grey") + # plt.show() + # plt.close() + + # print(key[5]) + # if "rectangle" not in key[5] and "FICurve" not in key[5][35]: + # raise ValueError("No value in key 5 is rectangle:") + + traces.append([np.array(time), np.array(v1)]) + + return np.array(spikes_list), traces + + +if __name__ == '__main__': + main() diff --git a/run_Fitter.py b/run_Fitter.py index 4b6c461..df10e12 100644 --- a/run_Fitter.py +++ b/run_Fitter.py @@ -16,9 +16,9 @@ import multiprocessing as mp # SAVE_DIRECTORY = "./results/invivo_results/" -SAVE_DIRECTORY = "./results/final_1/" +SAVE_DIRECTORY = "./results/final_2/" # SAVE_DIRECTORY_BEST = "./results/invivo_best/" -SAVE_DIRECTORY_BEST = "./results/final_1_best/" +SAVE_DIRECTORY_BEST = "./results/final_2_best/" # [bf, vs, sc, cv, isi_hist, bursty, f_inf, f_inf_slope, f_zero, f_zero_slope, f0_curve] ERROR_WEIGHTS = (2, 2, 1, 1, 0, 1, 1, 1, 0, 1) diff --git a/save_model_fits_as_csv.py b/save_model_fits_as_csv.py new file mode 100644 index 0000000..36fca43 --- /dev/null +++ b/save_model_fits_as_csv.py @@ -0,0 +1,45 @@ + +from ModelFit import get_best_fit, ModelFit +import os + + +def main(): + + dir = "results/final_1/" + + cells = [] + eod_freqs = [] + parameters = [] + + for cell in sorted(os.listdir(dir)): + cell_dir = dir + cell + + model = get_best_fit(cell_dir, use_comparable_error=False) + cells.append(cell) + eod_freqs.append(model.get_cell_data().get_eod_frequency()) + parameters.append(model.get_final_parameters()) + + save_csv(dir + "models.csv", cells, eod_freqs, parameters) + + +def save_csv(file, cells, eod_freqs, parameters): + keys = sorted(parameters[0].keys()) + with open(file, "w") as file: + header = "cell,eod_frequency" + for k in keys: + header += ",{}".format(k) + file.write(header + "\n") + + for i in range(len(cells)): + line = "{},{:.2f}".format(cells[i], eod_freqs[i]) + for k in keys: + line += ",{}".format(parameters[i][k]) + file.write(line + "\n") + + +if __name__ == '__main__': + main() + + + + diff --git a/test.py b/test.py index 3595e02..a245ae5 100644 --- a/test.py +++ b/test.py @@ -17,208 +17,6 @@ from scipy.signal import find_peaks from thunderfish.eventdetection import threshold_crossing_times, threshold_crossings, detect_peaks -folder = "./results/invivo-1/" -for cell in os.listdir(folder): - fit = get_best_fit(os.path.join(folder, cell), use_comparable_error=False) - model = fit.get_model() - baseline = BaselineModel(model, eod_frequency=fit.get_cell_data().get_eod_frequency(), trials=3) - baseline.plot_serial_correlation(3) - continue - cell_data = fit.get_cell_data() - model = fit.get_model() - fi = FICurveModel(model, np.arange(-0.5, 0.6, 0.1), cell_data.get_eod_frequency()) - - times, freq = fi.get_mean_time_and_freq_traces() - - for i in range(len(times)): - plt.plot(freq[i]) - - plt.plot(fi.indices_f_zero[i], [fi.f_zero_frequencies[i]]*len(fi.indices_f_zero[i]), "o") - plt.plot(fi.indices_f_baseline[i], 2*[fi.f_baseline_frequencies[i]]) - plt.plot(fi.indices_f_inf[i], 2*[fi.f_inf_frequencies[i]]) - plt.show() - plt.close() - - # fit.generate_master_plot("./results/invivo-1_best/") - - -# fit.generate_master_plot() -quit() - -for item in os.listdir(folder): - fit_path = os.path.join(folder, item) - - fit = ModelFit(fit_path) - print(fit.get_fit_routine_error()) - fit.generate_master_plot() - - -quit() - - -def indices_of_peaks_of_distribution(y_values, stepsize_ms, eod_freq): - eod_freq_ms = eod_freq / 1000 - distance = int(0.75*eod_freq_ms / stepsize_ms) - print(distance*stepsize_ms) - peaks, _ = find_peaks(np.array(y_values), distance=distance) - - return peaks - - -def remove_close_peaks(maxima_idx, peaks, closeness=2): - to_del = [] - maxima_idx = list(maxima_idx) - for idx in maxima_idx: - for i in range(-1*closeness,closeness+1, 1): - if 0 <= idx + i < len(peaks): - if peaks[idx+i] > peaks[idx]: - to_del.append(idx) - break - - for val in to_del: - maxima_idx.remove(val) - - return maxima_idx - - -def find_local_maxima(values): - local_max_idx = [] - for i in range(len(values)): - maxima = True - for j in (-1, 1): - if 0 <= i+j < len(values): - if values[i+j] > values[i]: - maxima = False - break - else: - continue - if maxima: - local_max_idx.append(i) - - return local_max_idx - - -def rms(array): - square = np.array(array)**2 - return np.sqrt(np.mean(square)) - - -def perc_smaller_value(isis, value): - isis = np.array(isis) - fullfilled = isis < value - - return np.sum(fullfilled) / len(fullfilled) - -cell_datas = [] # [CellData("data/invivo/2014-12-03-ad-invivo-1/")] -for cell_data in icelldata_of_dir("data/invivo/", test_for_v1_trace=False): - cell_datas.append(cell_data) -for cell_data in icelldata_of_dir("data/invivo_bursty/"): - cell_datas.append(cell_data) - -burstiness = [] - -for cell_data in cell_datas: - base = BaselineCellData(cell_data) - burstiness.append(base.get_burstiness()) -cell_data_idx = np.arange(0, len(cell_datas), 1) -burstiness, cell_data_idx = (list(t) for t in zip(*sorted(zip(burstiness, cell_data_idx)))) - -for i in range(len(burstiness)): - base = BaselineCellData(cell_datas[cell_data_idx[i]]) - isis = np.array(base.get_interspike_intervals()) * 1000 - bins = np.arange(0, 30.1, 0.2) - plt.hist(isis, bins=bins) - plt.title(str(burstiness[i])) - plt.show() - - -quit() -for cell_data in cell_datas: - base = BaselineCellData(cell_data) - isis = np.array(base.get_interspike_intervals()) * 1000 - eod_freq = cell_data.get_eod_frequency() - - bins = np.arange(0, 30.1, 0.2) - # y_values = plt.hist(isis, bins=bins, cumulative=True, density=True, alpha=0.5) - # y_values2 = plt.hist(isis, bins=bins, density=True) - - value = perc_smaller_value(isis, 2.5/(eod_freq/1000)) * np.mean(isis) - dif_mean_median.append(value) - # plt.title("Diff % < 2.5eod / mean= {:.2f}".format(value)) - # peaks, _ = detect_peaks(y_values[0], 0.5*np.std(y_values[0])) - - - # hist_x = bins[peaks] - # hist_peaks = y_values[0][peaks] - # plt.plot(hist_x, hist_peaks, '+') - # plt.plot([2.5/(eod_freq/1000)]*2, (0, 1), ":", color="black") - # plt.plot([np.median(isis)]*2, (0, 1), "--", color="darkblue") - # plt.plot([np.mean(isis)]*2, (0, 1), "--", color="darkgreen") - # plt.plot([rms(isis)]*2, (0, 1), "--", color="red") - - if value < 1: - cells_sorted["below_one"].append(cell_data) - elif value < 3: - cells_sorted["below_three"].append(cell_data) - else: - cells_sorted["other"].append(cell_data) - -count = 0 -for cell_data in cells_sorted["below_one"]: - count += 1 - if count <= 10: - base = BaselineCellData(cell_data) - isis = np.array(base.get_interspike_intervals()) * 1000 - eod_freq = cell_data.get_eod_frequency() - value = perc_smaller_value(isis, 2.5 / (eod_freq / 1000)) * np.mean(isis) - - bins = np.arange(0, 30.1, 0.2) - plt.title("Value < 1: {:.2f}".format(value)) - plt.hist(isis, bins=bins, density=True) - plt.show() - plt.close() -count = 0 -for cell_data in cells_sorted["below_three"]: - count += 1 - if count <= 10: - base = BaselineCellData(cell_data) - isis = np.array(base.get_interspike_intervals()) * 1000 - eod_freq = cell_data.get_eod_frequency() - value = perc_smaller_value(isis, 2.5 / (eod_freq / 1000)) * np.mean(isis) - - bins = np.arange(0, 30.1, 0.2) - plt.title("1 < Value < 3: {:.2f}".format(value)) - plt.hist(isis, bins=bins, density=True) - plt.show() - plt.close() - -count = 0 -for cell_data in cells_sorted["other"]: - count += 1 - if count <= 10: - base = BaselineCellData(cell_data) - isis = np.array(base.get_interspike_intervals()) * 1000 - eod_freq = cell_data.get_eod_frequency() - value = perc_smaller_value(isis, 2.5 / (eod_freq / 1000)) * np.mean(isis) - - bins = np.arange(0, 30.1, 0.2) - plt.title("Value >=3: {:.2f}".format(value)) - plt.hist(isis, bins=bins, density=True) - plt.show() - plt.close() - - -print("< one:", len(cells_sorted["below_one"])) -print("< three:", len(cells_sorted["below_three"])) -print("< more:", len(cells_sorted["other"])) - -quit() - - -for cell_data in icelldata_of_dir("data/"): - baseline = get_baseline_class(cell_data) - - baseline.get_burstiness() \ No newline at end of file diff --git a/thesis/Masterthesis.aux b/thesis/Masterthesis.aux index 3fc06c6..cd606fc 100755 --- a/thesis/Masterthesis.aux +++ b/thesis/Masterthesis.aux @@ -32,8 +32,8 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Cell recordings}{5}{subsection.4.1}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Stimulus Protocols}{6}{subsection.4.2}} \newlabel{eq:am_generation}{{1}{6}{Stimulus Protocols}{equation.4.1}{}} -\newlabel{fig:stim_examples}{{2}{6}{Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle a part of the recording multiplied with the AM, a step with a contrast of 130\% between 0 and 50\,ms (marked in \todo {color}). At the bottom the resulting stimulus trace when the AM is added to the EOD. This example stimulus is for visualization purposes 50\,ms short. During the measurements the stimulus was 0.4\,s or 1\,s long}{figure.2}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle a part of the recording multiplied with the AM, a step with a contrast of 130\% between 0 and 50\tmspace +\thinmuskip {.1667em}ms (marked in {\color {red}(TODO: color)}). At the bottom the resulting stimulus trace when the AM is added to the EOD. This example stimulus is for visualization purposes 50\tmspace +\thinmuskip {.1667em}ms short. During the measurements the stimulus was 0.4\tmspace +\thinmuskip {.1667em}s or 1\tmspace +\thinmuskip {.1667em}s long. }}{6}{figure.2}} +\newlabel{fig:stim_examples}{{2}{6}{Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle: EOD recording multiplied with the AM, with a step from 0 to a contrast of 30\,\% between 0 and 50\,ms (marked in \todo {color}). At the bottom the resulting stimulus trace when the AM is added to the EOD. \todo {Umformulieren}}{figure.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle: EOD recording multiplied with the AM, with a step from 0 to a contrast of 30\tmspace +\thinmuskip {.1667em}\% between 0 and 50\tmspace +\thinmuskip {.1667em}ms (marked in {\color {red}(TODO: color)}). At the bottom the resulting stimulus trace when the AM is added to the EOD. {\color {red}(TODO: Umformulieren)}}}{6}{figure.2}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Cell Characteristics}{6}{subsection.4.3}} \newlabel{eq:CV}{{2}{7}{Cell Characteristics}{equation.4.2}{}} \newlabel{eq:VS}{{3}{7}{Cell Characteristics}{equation.4.3}{}} @@ -42,6 +42,7 @@ \newlabel{fig:f_point_detection}{{3}{8}{\todo {place right in text}On the left: The averaged response of a cell to a step in EOD amplitude. The beginning (at 0\,s) and end (at 1\,s) of the stimulus are marked by the gray lines. The detected values for the onset ($f_0$) and steady-state ($f_{inf}$) response are marked in \todo {color}. $f_0$ is detected as the highest deviation from the mean frequency before the stimulus while $f_{inf}$ is the average frequency in the 0.1\,s time window, 25\,ms before the end of the stimulus. On the right: The fi-curve visualizes the onset and steady-state response of the neuron for different stimuli contrasts. In \todo {color} the detected onset responses and the fitted Boltzmann, in \todo {color} the detected steady-state response and the linear fit}{figure.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Leaky Integrate and Fire Model}{8}{subsection.4.4}} \citation{benda2010linear} +\citation{benda2005spike} \newlabel{eq:basic_voltage_dynamics}{{5}{9}{Leaky Integrate and Fire Model}{equation.4.5}{}} \newlabel{eq:adaption_dynamics}{{6}{9}{Leaky Integrate and Fire Model}{equation.4.6}{}} \newlabel{eq:currents_lifac}{{7}{9}{Leaky Integrate and Fire Model}{equation.4.7}{}} @@ -55,11 +56,12 @@ \@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Fitting of the Model}{11}{subsection.4.5}} \citation{gao2012implementing} \bibdata{citations} -\bibcite{benda2010linear}{{1}{2010}{{Benda et~al.}}{{}}} -\bibcite{gao2012implementing}{{2}{2012}{{Gao and Han}}{{}}} -\bibcite{todd1999identification}{{3}{1999}{{Todd and Andrews}}{{}}} -\bibcite{walz2013Phd}{{4}{2013}{{Walz}}{{}}} -\bibcite{walz2014static}{{5}{2014}{{Walz et~al.}}{{}}} +\bibcite{benda2005spike}{{1}{2005}{{Benda et~al.}}{{}}} +\bibcite{benda2010linear}{{2}{2010}{{Benda et~al.}}{{}}} +\bibcite{gao2012implementing}{{3}{2012}{{Gao and Han}}{{}}} +\bibcite{todd1999identification}{{4}{1999}{{Todd and Andrews}}{{}}} +\bibcite{walz2013Phd}{{5}{2013}{{Walz}}{{}}} +\bibcite{walz2014static}{{6}{2014}{{Walz et~al.}}{{}}} \bibstyle{apalike} \@writefile{toc}{\contentsline {section}{\numberline {5}Results}{12}{section.5}} \@writefile{toc}{\contentsline {section}{\numberline {6}Discussion}{12}{section.6}} diff --git a/thesis/Masterthesis.bbl b/thesis/Masterthesis.bbl index 01aab29..a0e01f6 100644 --- a/thesis/Masterthesis.bbl +++ b/thesis/Masterthesis.bbl @@ -1,5 +1,11 @@ \begin{thebibliography}{} +\bibitem[Benda et~al., 2005]{benda2005spike} +Benda, J., Longtin, A., and Maler, L. (2005). +\newblock Spike-frequency adaptation separates transient communication signals + from background oscillations. +\newblock {\em Journal of Neuroscience}, 25(9):2312--2321. + \bibitem[Benda et~al., 2010]{benda2010linear} Benda, J., Maler, L., and Longtin, A. (2010). \newblock Linear versus nonlinear signal transmission in neuron models with diff --git a/thesis/Masterthesis.blg b/thesis/Masterthesis.blg index 2044722..ab77a23 100644 --- a/thesis/Masterthesis.blg +++ b/thesis/Masterthesis.blg @@ -1,46 +1,46 @@ -This is BibTeX, Version 0.99d (TeX Live 2017/Debian) -Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 +This is BibTeX, Version 0.99d (TeX Live 2015/Debian) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 The top-level auxiliary file: Masterthesis.aux The style file: apalike.bst Database file #1: citations.bib -You've used 5 entries, +You've used 6 entries, 1935 wiz_defined-function locations, - 508 strings with 4630 characters, -and the built_in function-call counts, 1968 in all, are: -= -- 199 -> -- 69 + 517 strings with 4845 characters, +and the built_in function-call counts, 2415 in all, are: += -- 244 +> -- 87 < -- 3 -+ -- 24 -- -- 22 -* -- 176 -:= -- 346 -add.period$ -- 15 -call.type$ -- 5 -change.case$ -- 35 -chr.to.int$ -- 5 -cite$ -- 5 -duplicate$ -- 68 -empty$ -- 140 -format.name$ -- 31 -if$ -- 375 ++ -- 30 +- -- 28 +* -- 219 +:= -- 422 +add.period$ -- 18 +call.type$ -- 6 +change.case$ -- 43 +chr.to.int$ -- 6 +cite$ -- 6 +duplicate$ -- 82 +empty$ -- 172 +format.name$ -- 38 +if$ -- 461 int.to.chr$ -- 1 int.to.str$ -- 0 -missing$ -- 4 -newline$ -- 28 -num.names$ -- 15 -pop$ -- 24 +missing$ -- 5 +newline$ -- 33 +num.names$ -- 18 +pop$ -- 30 preamble$ -- 1 -purify$ -- 36 +purify$ -- 44 quote$ -- 0 -skip$ -- 53 +skip$ -- 63 stack$ -- 0 -substring$ -- 168 -swap$ -- 5 +substring$ -- 211 +swap$ -- 6 text.length$ -- 0 text.prefix$ -- 0 top$ -- 0 -type$ -- 30 +type$ -- 36 warning$ -- 0 -while$ -- 18 +while$ -- 22 width$ -- 0 -write$ -- 67 +write$ -- 80 diff --git a/thesis/Masterthesis.log b/thesis/Masterthesis.log index 58443c3..a532555 100755 --- a/thesis/Masterthesis.log +++ b/thesis/Masterthesis.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2018.11.12) 1 SEP 2020 15:07 +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2018.11.12) 4 SEP 2020 10:57 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -520,12 +520,9 @@ LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available File: figures/p_unit_example.png Graphic file (type png) -Package pdftex.def Info: figures/p_unit_example.png used on input line 129. +Package pdftex.def Info: figures/p_unit_example.png used on input line 133. (pdftex.def) Requested size: 409.71692pt x 409.73999pt. [3] [4 <./figures/p_unit_example.png>] -(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-32.def -File: uni-32.def 2013/05/13 UCS: Unicode data U+2000..U+20FF -) (/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-34.def File: uni-34.def 2013/05/13 UCS: Unicode data U+2200..U+22FF ) [5] @@ -533,57 +530,57 @@ File: uni-34.def 2013/05/13 UCS: Unicode data U+2200..U+22FF File: figures/amGeneration.pdf Graphic file (type pdf) -Package pdftex.def Info: figures/amGeneration.pdf used on input line 188. +Package pdftex.def Info: figures/amGeneration.pdf used on input line 192. (pdftex.def) Requested size: 204.85846pt x 204.86006pt. File: figures/amGeneration.pdf Graphic file (type pdf) -Package pdftex.def Info: figures/amGeneration.pdf used on input line 188. +Package pdftex.def Info: figures/amGeneration.pdf used on input line 192. (pdftex.def) Requested size: 204.85846pt x 204.86006pt. File: figures/amGeneration.pdf Graphic file (type pdf) -Package pdftex.def Info: figures/amGeneration.pdf used on input line 188. +Package pdftex.def Info: figures/amGeneration.pdf used on input line 192. (pdftex.def) Requested size: 204.85846pt x 204.86006pt. [6 <./figures/amGeneration.pdf>] - + File: figures/f_point_detection.png Graphic file (type png) -Package pdftex.def Info: figures/f_point_detection.png used on input line 264. +Package pdftex.def Info: figures/f_point_detection.png used on input line 267. (pdftex.def) Requested size: 301.37201pt x 208.5021pt. [7] [8 <./figures/f_point_detection.png>] - + File: figures/model_comparison.pdf Graphic file (type pdf) -Package pdftex.def Info: figures/model_comparison.pdf used on input line 312. +Package pdftex.def Info: figures/model_comparison.pdf used on input line 315. (pdftex.def) Requested size: 346.89867pt x 346.89867pt. [9] - + File: figures/stimulus_development.pdf Graphic file (type pdf) Package pdftex.def Info: figures/stimulus_development.pdf used on input line 33 -0. +3. (pdftex.def) Requested size: 260.17401pt x 260.17401pt. [10 <./figures/model_comparison.pdf>] [11 <./figures/stimulus_development.pdf>] (./Masterthesis.bbl) -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 412. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 414. [12] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 412. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 414. (./Masterthesis.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 412. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 412. +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 414. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 414. Package rerunfilecheck Info: File `Masterthesis.out' has not changed. (rerunfilecheck) Checksum: 7A3ACD7CD7DC89195072057BF8EFCD4A;622. -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 412. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 414. ) Here is how much of TeX's memory you used: - 11126 strings out of 493029 - 158645 string characters out of 6136233 - 267205 words of memory out of 5000000 - 14484 multiletter control sequences out of 15000+600000 + 10879 strings out of 493029 + 155891 string characters out of 6136233 + 264880 words of memory out of 5000000 + 14239 multiletter control sequences out of 15000+600000 9214 words of font info for 33 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 37i,16n,38p,1246b,551s stack positions out of 5000i,500n,10000p,200000b,80000s @@ -598,10 +595,10 @@ ublic/amsfonts/cm/cmr8.pfb> -Output written on Masterthesis.pdf (13 pages, 328132 bytes). +Output written on Masterthesis.pdf (13 pages, 327767 bytes). PDF statistics: - 341 PDF objects out of 1000 (max. 8388607) - 218 compressed objects within 3 object streams - 49 named destinations out of 1000 (max. 500000) + 345 PDF objects out of 1000 (max. 8388607) + 222 compressed objects within 3 object streams + 50 named destinations out of 1000 (max. 500000) 114 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/thesis/Masterthesis.pdf b/thesis/Masterthesis.pdf index 2ab279f057d4fed3d87f457a2f44a793913f5b4f..1621ec85349fea9254f9e1442bc7fae59c4e6f7c 100644 GIT binary patch delta 52869 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

S9R9b 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 B4PF2M delta 53292 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ʛ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 z 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 literal 73777 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 diff --git a/thesis/Masterthesis.tex b/thesis/Masterthesis.tex index dd11524..57a65b8 100755 --- a/thesis/Masterthesis.tex +++ b/thesis/Masterthesis.tex @@ -117,6 +117,10 @@ Außerdem erkläre ich, dass die eingereichte Arbeit weder vollständig noch in \section{Introduction} + + + + %\begin{figure}[H] %\floatbox[{\capbeside\thisfloatsetup{capbesideposition={left,top},capbesidewidth=0.49\textwidth}}]{figure}[\FBwidth] %{\caption{\label{fig:p_unit_example} Example behavior of a p-unit with a high baseline firing rate. Baseline Firing: A 100\,ms voltage trace of the recording with spikes marked by the black lines. ISI-histogram: The histogram of the ISI with the x-axis in EOD periods, showing the phase locking of the firing. Serial Correlation: The serial correlation of the ISI showing a negative correlation for lags one and two. Step Response: The response of the p-unit to a step increase in EOD amplitude. In \todo{color} the averaged frequency over 10 trials and in \todo{color} smoothed with an running average with a window of 10\,ms. The p-unit strongly reacts to the onset of the stimulus but very quickly adapts to the new stimulus and then shows a steady state response. FI-Curve: The fi-curve visualizes the onset and steady-state response of the neuron for different step sizes (contrasts). In \todo{color} the detected onset responses and the fitted Boltzmann, in %\todo{color} the detected steady-state response and the linear fit.}} @@ -150,16 +154,16 @@ Außerdem erkläre ich, dass die eingereichte Arbeit weder vollständig noch in % EOD-freq: min 601.09, mean 753.09, max 928.45, std 82.30 % Sizes: min 11.00, mean 15.78, max 25.00, std 3.48 -The cell recordings for this master thesis were collected as part of other previous studies (\cite{walz2013Phd}, \citep{walz2014static})\todo{ref other studies} and is described there but will also be repeated below. The recordings of 457 p-units were inspected. Of those 88 fulfilled the basic necessary requirements: including a measurement of at least 30 seconds of the baseline behavior and containing at least 7 different contrasts with each at least 7 trials for the FI-Curve (see below \todo{ref fi-curve? }). After pre-analysis of those cells an additional 13 cells were excluded because of analysis difficulties. +The cell recordings for this master thesis were collected as part of other previous studies (\cite{walz2013Phd}, \citep{walz2014static})\todo{ref other studies} and the recording procedure is described there but will also be repeated below. The recordings of altogether 457 p-units were inspected. Of those 88 fulfilled basic necessary requirements: including a measurement of at least 30 seconds of baseline behavior and containing at least 7 different contrasts with each at least 7 trials for the f-I curve (see below \todo{ref fi-curve? }). After pre-analysis of those cells an additional 15 cells were excluded because of spike detection difficulties. -The 75 used cells came from 32 \AptLepto (brown ghost knifefish). The fish were between 11-25\,cm long (15.78 $\pm$ 3.48\,cm) and their electric organ discharge (EOD) frequencies were between 601-928\,Hz (753.1 $\pm$ 82.3\,Hz). The gender of the fish was not determined. +The 73 used cells came from 32 \AptLepto (brown ghost knifefish). The fish were between 11--25\,cm long (15.8 $\pm$ 3.5\,cm) and their electric organ discharge (EOD) frequencies ranged between 601 and 928\,Hz (753 $\pm$ 82\,Hz). The sex of the fish was not determined. -The in vivo intracellular recordings of P-unit electroreceptors were done in the lateral line nerve . The fish were anesthetized with MS-222 (100-130 mg/l; PharmaQ; Fordingbridge, UK) and the part of the skin covering the lateral line just behind the skull was removed, while the area was anesthetized with Lidocaine (2\%; bela-pharm; Vechta, Germany). The fish were immobilized for the recordings with Tubocurarine (Sigma-Aldrich; Steinheim, Germany, 25–50\,$\mu l$ of 5\,mg/ml solution) and placed in the experimental tank (47 $\times$ 42 $\times$ 12\,cm) filled with water from the fish's home tank with a conductivity of about 300$\mu$\,S/cm and the temperature was around 28°C. -All experimental protocols were approved and complied with national and regional laws (files: no. 55.2-1-54-2531-135-09 and Regierungspräsidium Tübingen no. ZP 1/13 and no. ZP 1/16 \todo{andere antrags nummern so richtig ?}) -For the recordings a standard glass mircoelectrode (borosilicate; 1.5 mm outer diameter; GB150F-8P, Science Products, Hofheim, Germany) was used. They were pulled to a resistance of 50-100\,M$\Omega$ using Model P-97 from Sutter Instrument Co. (Novato, CA, USA) and filled with 1\,M KCl solution. The electrodes were controlled using microdrives (Luigs-Neumann; Ratingen, Germany) and the potentials recorded with the bridge mode of the SEC-05 amplifier (npi-electronics GmbH, Tamm, Germany) and lowpass filtered at 10 kHz. +The in vivo intracellular recordings of P-unit electroreceptors were done in the lateral line nerve. The fish were anesthetized with MS-222 (100-130 mg/l; PharmaQ; Fordingbridge, UK) and the part of the skin covering the lateral line just behind the skull was removed, while the area was anesthetized with Lidocaine (2\%; bela-pharm; Vechta, Germany). The fish were immobilized for the recordings with Tubocurarine (Sigma-Aldrich; Steinheim, Germany, 25--50\,$\mu l$ of 5\,mg/ml solution) and placed in the experimental tank (47 $\times$ 42 $\times$ 12\,cm) filled with water from the fish's home tank with a conductivity of about 300$\mu$\,S/cm and the temperature was around 28°C. +All experimental protocols were approved and complied with national and regional laws (files: no. 55.2-1-54-2531-135-09 and Regierungspräsidium Tübingen no. ZP 1/13 and no. ZP 1/16) +For the recordings a standard glass mircoelectrode (borosilicate; 1.5 mm outer diameter; GB150F-8P, Science Products, Hofheim, Germany) was used. They were pulled to a resistance of 50--100\,M$\Omega$ using Model P-97 from Sutter Instrument Co. (Novato, CA, USA) and filled with 1\,M KCl solution. The electrodes were controlled using microdrives (Luigs-Neumann; Ratingen, Germany) and the potentials recorded with the bridge mode of the SEC-05 amplifier (npi-electronics GmbH, Tamm, Germany) and lowpass filtered at 10 kHz. During the recording spikes were detected online using the peak detection algorithm from \cite{todd1999identification}. It uses a dynamically adjusted threshold value above the previously detected trough. To detect spikes through changes in amplitude the threshold was set to 50\% of the amplitude of a detected spike while keeping the threshold above a minimum set to be higher than the noise level based on a histogram of all peak amplitudes. Trials with bad spike detection were removed from further analysis. -The fish's EOD was recorded using using two vertical carbon rods (11\,cm long, 8\,mm diameter) positioned in front of the head and behind its tail. The signal was amplified 200 to 500 times and band-pass filtered (3 − 1500 Hz passband, DPA2-FX, npi-electronics, Tamm, Germany). The electrodes were placed on iso-potential lines of the stimulus field to reduce the interference of the stimulus in the recording. All signals were digitized using a data acquisition board (PCI-6229; National Instruments, Austin TX, USA) at a sampling rate of 20-100\,kHz (54 cells at 20\,kHz, 20 at 100\,kHz and 1 at 40\,kHz) +The fish's EOD was recorded using two vertical carbon rods (11\,cm long, 8\,mm diameter) positioned in front of the head and behind its tail. The signal was amplified 200 to 500 times and band-pass filtered (3 − 1500 Hz passband, DPA2-FX, npi-electronics, Tamm, Germany). The electrodes were placed on iso-potential lines of the stimulus field to reduce the interference of the stimulus in the recording. All signals were digitized using a data acquisition board (PCI-6229; National Instruments, Austin TX, USA) at a sampling rate of 20--100\,kHz (54 cells at 20\,kHz, 20 at 100\,kHz and 1 at 40\,kHz) The recording and stimulation was done using the ephys, efield, and efish plugins of the software RELACS (\href{www.relacs.net}{www.relacs.net}). It allowed the online spike and EOD detection, pre-analysis and visualization and ran on a Debian computer. @@ -171,25 +175,25 @@ The recording and stimulation was done using the ephys, efield, and efish plugin % image of SAM stimulus The stimuli used during the recordings were presented from two vertical carbon rods (30 cm long, 8 mm diameter) as stimulus electrodes. They were positioned at either side of the fish parallel to its longitudinal axis. The stimuli were computer generated, attenuated and isolated (Attenuator: ATN-01M, Isolator: ISO-02V, npi-electronics, Tamm, Germany) and then send to the stimulus electrodes. -For this work two types of recordings were made with all cells: baseline recordings and amplitude step recordings for the frequency-Intensity curve (FI-Curve). +For this work two types of recordings were made with all cells: baseline recordings and amplitude step recordings for the frequency-Intensity curve (f-I curve). The 'stimulus' for the baseline recording is purely the EOD field the fish produces itself with no external stimulus. -The amplitude step stimulus here is a step in EOD amplitude. To be able to cause an amplitude modulation (AM) in the fish's EOD , the EOD was recorded and the multiplied with the modulation (see fig. \ref{fig:stim_examples}). This modified EOD can then be presented at the right phase with the stimulus electrodes, causing constructive interference and adding the used amplitude modulation to the EOD (Fig. \ref{fig:stim_examples}). This stimuli construction as seen in equation \ref{eq:am_generation} works for any AM as long as the EOD of the fish is stable. +The amplitude step stimulus here is a step in EOD amplitude. To be able to cause an amplitude modulation (AM) in the fish's EOD , the EOD was recorded and multiplied with the modulation (see fig. \ref{fig:stim_examples}). This modified EOD can then be presented at the right phase with the stimulus electrodes, causing constructive interference and adding the used amplitude modulation to the EOD (Fig. \ref{fig:stim_examples}). This stimuli construction as seen in equation~\ref{eq:am_generation} works for any AM as long as the EOD of the fish is stable. \begin{equation} -Stimulus = EOD(t) + AM(t) * EOD(t) \todo{acceptable?} +V_{Stim}(t) = EOD(t)(1 + AM(t)) \label{eq:am_generation} \end{equation} \begin{figure}[H] \floatbox[{\capbeside\thisfloatsetup{capbesideposition={left, center}, capbesidewidth=0.45\textwidth}}]{figure}[\FBwidth] -{\caption{\label{fig:stim_examples} Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle a part of the recording multiplied with the AM, a step with a contrast of 130\% between 0 and 50\,ms (marked in \todo{color}). At the bottom the resulting stimulus trace when the AM is added to the EOD. This example stimulus is for visualization purposes 50\,ms short. During the measurements the stimulus was 0.4\,s or 1\,s long. }} +{\caption{\label{fig:stim_examples} Example of the stimulus construction. At the top a recording of the fish's EOD. In the middle: EOD recording multiplied with the AM, with a step from 0 to a contrast of 30\,\% between 0 and 50\,ms (marked in \todo{color}). At the bottom the resulting stimulus trace when the AM is added to the EOD. \todo{Umformulieren}}} {\includegraphics[width=0.45\textwidth]{figures/amGeneration.pdf}} \end{figure} -The step stimuli all consisted of a delay of 0.2\,s followed by a 0.4\,s (n=68) or 1\,s (n=7) long step and a 0.8\,s long recovery time. The contrast range measured was for the most cells 80-120\% of EOD amplitude. Some cells were measured in a larger range up to 20-180\%. In the range at least 7 contrasts were measured with at least 7 trials, but again many cells were measured with more contrasts and trials. The additionally measured contrasts were used for the model if they had at least 3 trials. +All step stimuli consisted of a delay of 0.2\,s followed by a 0.4\,s (n=68) or 1\,s (n=7) long step and a 0.8\,s long recovery time. The contrast range measured was for the most cells 80--120\% of EOD amplitude. Some cells were measured in a larger range up to 20--180\%. In the range at least 7 contrasts were measured with at least 7 trials, but again many cells were measured with more contrasts and trials. The additionally measured contrasts were used for the model if they had at least 3 trials. %That means for every cell the FI-Curve was measured at at least 7 Points each with at least 7 trials. If more contrasts were measured during the recording the additional information was used as long as there were at least 3 trials available. %All presentations had 0.2\,s delay at the start and then started the stimulus at time 0. The step stimulus was presented for 0.4\,s (7 cells) or 1\,s(68 cells) and followed by 0.8\,s time for the cell to recover back to baseline. @@ -221,36 +225,35 @@ The step stimuli all consisted of a delay of 0.2\,s followed by a 0.4\,s (n=68) \subsection{Cell Characteristics} -The cells were characterized by ten parameters: 6 for the baseline and 4 for the fi-curve. -For the baseline the mean frequency was calculated by dividing the number of spikes in the recording by the recording time. Then the set of all interspike intervals (ISI) $T$ of the spikes in the recording further parameter was calculated and the other parameters were calculated from it. - -The coefficient of variation (CV) is defined as the standard deviation (STD) of $T$ divided by the mean ISI, see equation \ref{eq:CV} with angled brackets as the averaging operator. +The cells were characterized by ten parameters: 6 for the baseline and 4 for the f-I curve. +For the baseline the mean firing rate was calculated by dividing the number of spikes in the recording by the recording time. Then the set of all interspike intervals (ISI) $T$ was computed and further parameters were calculated from it. +The coefficient of variation \begin{equation} CV = \frac{STD(T)}{\langle T \rangle} \label{eq:CV} \end{equation} +is defined as the standard deviation (STD) of $T$ divided by the mean ISI, see equation \ref{eq:CV} with angled brackets as the averaging operator. The vector strength (VS) is a measure of how strong the cell locks to a phase of the EOD. It was calculated as seen in Eq. \ref{eq:VS}, by placing each spike on a unit circle depending on the relative spike time $t_i$ of how much time has passed since the start of the current EOD period in relation to the EOD period length. This set of vectors is then averaged and the absolute value of this average vector describes the VS. If the VS is zero the spikes happen equally in all phases of the EOD while if it is one all spikes happen at the exact same phase of the EOD. \begin{equation} -p(\omega) = \frac{1}{n} \sum_n e^{iwt_i} +vs = |\frac{1}{n} \sum_n e^{iwt_i}| \label{eq:VS} \end{equation} -The serial correlation with lag x ($SC_x$) of $T$ is a measure how the ISI $T_i$ (the i-th ISI) influences the $T_{i+x}$ the ISI with a lag of x intervals. This is calculated as, +The serial correlation with lag k ($SC_k$) of $T$ is a measure how the ISI $T_i$ (the $i$-th ISI) influences the $T_{i+k}$ the ISI with a lag of x intervals. This is calculated as, \begin{equation} -SC_x = \frac{\langle (T_{i} - \langle T \rangle)(T_{i+x} - \langle T \rangle) \rangle}{\sqrt{\langle (T_i - \langle T \rangle)^2 \rangle}\sqrt{\langle (T_{i+x} - \langle T \rangle)^2 \rangle}} +SC_k = \frac{\langle (T_{i} - \langle T \rangle)(T_{i+k} - \langle T \rangle) \rangle}{\sqrt{\langle (T_i - \langle T \rangle)^2 \rangle}\sqrt{\langle (T_{i+k} - \langle T \rangle)^2 \rangle}} \label{eq:SC} \end{equation} - with the angled brackets again the averaging operator. -Finally the ISI-histogram was calculated within a range of 0-50\,ms and a bin size of 0.1\,ms and the burstiness was calculated as the percentage of ISI smaller than 2.5 EOD periods multiplied by the average ISI. This gives a rough measure of how how often a cell fires in the immediately following EOD periods compared to its average firing frequency. With a cell being more bursty the higher the percentage of small ISI and the lower the mean firing frequency of the cell. +Finally the ISI-histogram was calculated within a range of 0--50\,ms and a bin size of 0.1\,ms. The burstiness was calculated as the percentage of ISI smaller than 2.5 EOD periods multiplied by the average ISI. This gives a rough measure of how how often a cell fires in the immediately following EOD periods compared to its average firing frequency. With a cell being more bursty the higher the percentage of small ISI and the lower the mean firing frequency of the cell. %burstiness: \todo{how to write as equation, ignore and don't show an equation?} @@ -289,7 +292,7 @@ The next slightly more complex model is the leaky integrate-and-fire (LIF) model \label{eq:basic_voltage_dynamics} \end{equation} -To reproduce this behavior the model needs some form of memory of previous spikes. There are two main ways this can be added to the model as an adaptive current or a dynamic threshold. The biophysical mechanism of the adaption in p-units is unknown because the cell bodies are not accessible for intra-cellular recordings. Following the results of \cite{benda2010linear} a negative adaptive current was chosen, because the dynamic threshold causes divisive adaption instead of the subtractive adaption of p-units \todo{reference}. This results in an leaky integrate-and-fire model with adaption current (LIFAC) (fig. \ref{fig:model_comparison} LIFAC). The added adaptive current follow the dynamics: +To reproduce this behavior the model needs some form of memory of previous spikes. There are two main ways this can be added to the model as an adaptive current or a dynamic threshold. The biophysical mechanism of the adaption in p-units is unknown because the cell bodies are not accessible for intra-cellular recordings. Following the results of \cite{benda2010linear} a negative adaptive current was chosen, because the dynamic threshold causes divisive adaption instead of the subtractive adaption of p-units \citep{benda2005spike}. This results in an leaky integrate-and-fire model with adaption current (LIFAC) (fig. \ref{fig:model_comparison} LIFAC). The added adaptive current follow the dynamics: \begin{equation} \tau_A \frac{dI_A}{dt} = -I_A + \Delta_A \sum \delta (t) @@ -305,7 +308,7 @@ It is modeled as an exponential decay with the time constant $\tau_A$ and a stre The stimulus current $I_{Input}$, the bias current $I_{Bias}$ and the already discussed adaption current $I_A$. Note that in this p-unit model all currents are measured in mV because as mentioned above the cell body is not accessible for intra-cellular recordings and as such the membrane resistance $R_m$ is unknown \todo{ref mem res p-units}. $I_{Input}$ is the current of the stimulus, an amplitude modulated sine wave mimicking the frequency EOD. This stimulus is then rectified to model the receptor synapse and low-pass filtered with a time constant of $\tau_{dend}$ to simulate the low-pass filter properties of the dendrite (fig. \ref{fig:stim_development}). Afterwards it is multiplied with $\alpha$ a cell specific gain factor. This gain factor has the unit of cm because the $I_{Input}$ stimulus represents the EOD with a unit of mV/cm. $I_{Bias}$ is the bias current that causes the cells spontaneous spiking. -Finally noise and an absolute refractory period were added to the model. The noise $\xi$ is drawn in from a Gaussian noise with values between 0 and 1 and divided by $\sqrt{\Delta t}$ to get a noise which autocorrelation function is independent of the simulation step size $\Delta t$. The implemented form of the absolute refractory period $t_{ref}$ keeps the model voltage at zero for the duration of $t_{ref}$ after a spike. +Finally noise and an absolute refractory period were added to the model. The noise $\xi$ is drawn in from a Gaussian noise distribution and divided by $\sqrt{\Delta t}$ to get a noise which autocorrelation function is independent of the simulation step size $\Delta t$. The implemented form of the absolute refractory period $t_{ref}$ keeps the model voltage at zero for the duration of $t_{ref}$ after a spike. \begin{figure}[H] @@ -369,7 +372,6 @@ The error of the VS, CV, SC, and burstiness was calculated as the scaled absolut \begin{equation} err_i = |x^M_i - x^C_i| * c_i \end{equation} - with $x^M_i$ the model value for the characteristic $i$, $x^C_i$ the corresponding cell value and $c_i$ a scaling factor that is the same for all cells but different between characteristics. The scaling factor was used to make all errors a similar size. The error for the slope of the $f_{inf}$ fit was the scaled relative difference: