From f08f962bf3c349737687b2d97386b618a27b448c Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Mon, 7 Dec 2020 10:19:26 +0100 Subject: [PATCH] various --- DataParserFactory.py | 96 ++------ Figures_results.py | 221 ++++++++++++++++-- Sam.py | 11 +- sam_experiments.py | 186 +++++++++++---- stimuli/SinusAmplitudeModulation.py | 46 +--- test.py | 70 +----- tests/consistency_correlations_removed_1.pdf | Bin 0 -> 19169 bytes tests/consistency_correlations_removed_2.pdf | Bin 0 -> 19213 bytes tests/consistency_correlations_removed_3.pdf | Bin 0 -> 20167 bytes tests/consistency_correlations_removed_4.pdf | Bin 0 -> 20162 bytes thesis/Masterthesis.pdf | Bin 762685 -> 762768 bytes thesis/Masterthesis.tex | 2 +- .../fit_adaption_comparison_with_ratio.pdf | Bin 0 -> 20944 bytes thesis/figures/parameter_correlations.pdf | Bin 20139 -> 20139 bytes .../scaled_to_800_parameter_distributions.pdf | Bin 28033 -> 28010 bytes 15 files changed, 370 insertions(+), 262 deletions(-) create mode 100644 tests/consistency_correlations_removed_1.pdf create mode 100644 tests/consistency_correlations_removed_2.pdf create mode 100644 tests/consistency_correlations_removed_3.pdf create mode 100644 tests/consistency_correlations_removed_4.pdf create mode 100644 thesis/figures/fit_adaption_comparison_with_ratio.pdf diff --git a/DataParserFactory.py b/DataParserFactory.py index 0d145bc..36a1f80 100644 --- a/DataParserFactory.py +++ b/DataParserFactory.py @@ -291,15 +291,22 @@ class DatParser(AbstractParser): else: print("DataParser Dat: Unknown time notation:", key[1][0]) if len(metadata) != 0: + if not "----- Stimulus -------------------------------------------------------" in metadata[0].keys(): + eod_freq = float(metadata[0]["EOD rate"][:-2]) # in Hz + trans_amplitude = metadata[0]["trans. amplitude"][:-2] # in mV - stimulus_dict = metadata[0]["----- Stimulus -------------------------------------------------------"] - analysis_dict = metadata[0]["----- Analysis -------------------------------------------------------"] - eod_freq = float(metadata[0]["EOD rate"][:-2]) # in Hz - trans_amplitude = metadata[0]["trans. amplitude"][:-2] # in mV + duration = float(metadata[0]["duration"][:-2]) * factor # normally saved in ms? so change it with the factor + contrast = float(metadata[0]["contrast"][:-1]) # in percent + delta_f = float(metadata[0]["deltaf"][:-2]) + else: + stimulus_dict = metadata[0]["----- Stimulus -------------------------------------------------------"] + analysis_dict = metadata[0]["----- Analysis -------------------------------------------------------"] + eod_freq = float(metadata[0]["EOD rate"][:-2]) # in Hz + trans_amplitude = metadata[0]["trans. amplitude"][:-2] # in mV - duration = float(stimulus_dict["duration"][:-2]) * factor # normally saved in ms? so change it with the factor - contrast = float(stimulus_dict["contrast"][:-1]) # in percent - delta_f = float(stimulus_dict["deltaf"][:-2]) + duration = float(stimulus_dict["duration"][:-2]) * factor # normally saved in ms? so change it with the factor + contrast = float(stimulus_dict["contrast"][:-1]) # in percent + delta_f = float(stimulus_dict["deltaf"][:-2]) # delta_f = metadata[0]["true deltaf"] # contrast = metadata[0]["true contrast"] @@ -427,77 +434,6 @@ class DatParser(AbstractParser): # if not exists(self.sam_file): # raise RuntimeError(self.sam_file + " file doesn't exist!") -# MODEL PARSER: ------------------------------ - - -class ModelParser(AbstractParser): - - def __init__(self, model: AbstractModel): - self.model = model - - def cell_get_metadata(self): - raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") - - def get_baseline_traces(self): - raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") - - def get_fi_curve_traces(self): - if not self.model.simulates_voltage_trace(): - raise NotImplementedError("Model doesn't simulated voltage traces!") - - traces = [] - for stimulus in self.model.get_stimuli_for_fi_curve(): - self.model.simulate(stimulus, self.model.total_stimulation_time_fi_curve) - traces.append(self.model.get_voltage_trace()) - - return traces - - def get_fi_curve_spiketimes(self): - if not self.model.simulates_spiketimes(): - raise NotImplementedError("Model doesn't simulated spiketimes!") - - all_spiketimes = [] - for stimulus in self.model.get_stimuli_for_fi_curve(): - self.model.simulate(stimulus, self.model.total_stimulation_time_fi_curve) - all_spiketimes.append(self.model.get_spiketimes()) - - return all_spiketimes - - def get_fi_frequency_traces(self): - if not self.model.simulates_frequency(): - raise NotImplementedError("Model doesn't simulated frequency!") - - frequency_traces = [] - for stimulus in self.model.get_stimuli_for_fi_curve(): - self.model.simulate(stimulus, self.model.total_stimulation_time_fi_curve) - frequency_traces.append(self.model.get_frequency()) - - return frequency_traces - - def get_sampling_interval(self): - self.model.get_sampling_interval() - - def get_recording_times(self): - raise NotImplementedError("NOT YET OVERRIDDEN FROM ABSTRACT CLASS") - - def traces_available(self) -> bool: - return self.model.simulates_voltage_trace() - - def spiketimes_available(self) -> bool: - return self.model.simulates_spiketimes() - - def frequencies_available(self) -> bool: - return self.model.simulates_frequency() - -# TODO #################################### - -class NixParser(AbstractParser): - - def __init__(self, nix_file_path): - self.file_path = nix_file_path - warn("NIX PARSER: NOT YET IMPLEMENTED!") -# TODO #################################### - def get_parser(data_path) -> AbstractParser: data_format = __test_for_format__(data_path) @@ -505,9 +441,9 @@ def get_parser(data_path) -> AbstractParser: if data_format == DAT_FORMAT: return DatParser(data_path) elif data_format == NIX_FORMAT: - return NixParser(data_path) + raise NotImplementedError("DataParserFactory:get_parser(data_path): nix format doesn't have a parser yet") elif data_format == MODEL: - return ModelParser(data_path) + raise NotImplementedError("DataParserFactory:get_parser(data_path): Model doesn't have a parser yet") elif data_format == UNKNOWN: raise TypeError("DataParserFactory:get_parser(data_path):\nCannot determine type of data for:" + data_path) diff --git a/Figures_results.py b/Figures_results.py index ff58234..b02bf82 100644 --- a/Figures_results.py +++ b/Figures_results.py @@ -9,6 +9,7 @@ from FiCurve import FICurveModel, FICurveCellData from CellData import CellData import functions as fu import Figure_constants as consts +from scipy.stats import pearsonr from matplotlib.ticker import FormatStrFormatter @@ -39,18 +40,19 @@ def main(): # quit() fits_info = get_filtered_fit_info(dir_path, filter=True) + # visualize_tested_correlations(fits_info) + quit() print("Cells left:", len(fits_info)) - # cell_behaviour, model_behaviour = get_behaviour_values(fits_info) + cell_behaviour, model_behaviour = get_behaviour_values(fits_info) # plot_cell_model_comp_baseline(cell_behaviour, model_behaviour) # plot_cell_model_comp_burstiness(cell_behaviour, model_behaviour) - # plot_cell_model_comp_adaption(cell_behaviour, model_behaviour) - + plot_cell_model_comp_adaption(cell_behaviour, model_behaviour) - # behaviour_correlations_plot(fits_info) + behaviour_correlations_plot(fits_info) parameter_correlation_plot(fits_info) # # create_parameter_distributions(get_parameter_values(fits_info)) - create_parameter_distributions(get_parameter_values(fits_info, scaled=True, goal_eodf=800), "scaled_to_800_") + # create_parameter_distributions(get_parameter_values(fits_info, scaled=True, goal_eodf=800), "scaled_to_800_") # errors = calculate_percent_errors(fits_info) # create_boxplots(errors) @@ -82,6 +84,142 @@ def run_all_images(): example_bad_fi_fits(dir_path) +def visualize_tested_correlations(fits_info): + + for leave_out in range(1, 11, 1): + significance_count, total_count, labels = test_correlations(fits_info, leave_out, model_values=False) + percentages = significance_count / total_count + border = total_count * 0.01 + fig = plt.figure(tight_layout=True, figsize=consts.FIG_SIZE_MEDIUM_WIDE) + gs = gridspec.GridSpec(2, 2, width_ratios=(1, 1), height_ratios=(5, 0.5), hspace=0.5, wspace=0.4, left=0.2) + + ax = fig.add_subplot(gs[0, 0]) + # We want to show all ticks... + + ax.imshow(percentages) + ax.set_xticks(np.arange(len(labels))) + ax.set_xticklabels([behaviour_titles[l] for l in labels]) + # remove frame: + ax.spines['top'].set_visible(False) + ax.spines['right'].set_visible(False) + # ... and label them with the respective list entries + ax.set_yticks(np.arange(len(labels))) + ax.set_yticklabels([behaviour_titles[l] for l in labels]) + + ax.set_title("Percent: removed {}".format(leave_out)) + + # Rotate the tick labels and set their alignment. + plt.setp(ax.get_xticklabels(), rotation=45, ha="right", + rotation_mode="anchor") + + # Loop over data dimensions and create text annotations. + for i in range(len(labels)): + for j in range(len(labels)): + if percentages[i, j] > 0.5: + text = ax.text(j, i, "{:.2f}".format(percentages[i, j]), ha="center", va="center", + color="black", size=6) + else: + text = ax.text(j, i, "{:.2f}".format(percentages[i, j]), ha="center", va="center", + color="white", size=6) + + ax = fig.add_subplot(gs[0, 1]) + ax.imshow(percentages) + ax.set_xticks(np.arange(len(labels))) + ax.set_xticklabels([behaviour_titles[l] for l in labels]) + # remove frame: + ax.spines['top'].set_visible(False) + ax.spines['right'].set_visible(False) + # ... and label them with the respective list entries + ax.set_yticks(np.arange(len(labels))) + ax.set_yticklabels([behaviour_titles[l] for l in labels]) + + ax.set_title("Counts - removed {}".format(leave_out)) + + # Rotate the tick labels and set their alignment. + plt.setp(ax.get_xticklabels(), rotation=45, ha="right", + rotation_mode="anchor") + + # Loop over data dimensions and create text annotations. + for i in range(len(labels)): + for j in range(len(labels)): + if percentages[i, j] > 0.5: + text = ax.text(j, i, "{:.0f}".format(significance_count[i, j]), ha="center", va="center", + color="black", size=6) + else: + text = ax.text(j, i, "{:.0f}".format(significance_count[i, j]), ha="center", va="center", + color="white", size=6) + + + ax_col = fig.add_subplot(gs[1, :]) + data = [np.arange(0, 1.001, 0.01)] * 10 + ax_col.set_xticks([0, 25, 50, 75, 100]) + ax_col.set_xticklabels([0, 0.25, 0.5, 0.75, 1]) + ax_col.set_yticks([]) + ax_col.imshow(data) + ax_col.set_xlabel("Correlation Coefficients") + + + plt.tight_layout() + plt.savefig("figures/consistency_correlations_removed_{}.pdf".format(leave_out)) + + +def test_correlations(fits_info, left_out, model_values=False): + bv_cell, bv_model = get_behaviour_values(fits_info) + # eod_frequencies = [fits_info[cell][3] for cell in sorted(fits_info.keys())] + if model_values: + behaviour_values = bv_model + else: + behaviour_values = bv_cell + + labels = ["baseline_frequency", "serial_correlation", "vector_strength", "coefficient_of_variation", + "Burstiness", "f_inf_slope", "f_zero_slope"] # , "eodf"] + significance_counts = np.zeros((len(labels), len(labels))) + correction_factor = sum(range(len(labels))) + total_count = 0 + for mask in iall_masks(len(behaviour_values["f_inf_slope"]), left_out): + total_count += 1 + idx = np.ones(len(behaviour_values["f_inf_slope"]), dtype=np.int32) + for masked in mask: + idx[masked] = 0 + for i in range(len(labels)): + for j in range(len(labels)): + if j > i: + continue + idx = np.array(idx, dtype=np.bool) + values_i = np.array(behaviour_values[labels[i]])[idx] + values_j = np.array(behaviour_values[labels[j]])[idx] + c, p = pearsonr(values_i, values_j) + if p*correction_factor < 0.05: + significance_counts[i, j] += 1 + + return significance_counts, total_count, labels + + +def iall_masks(values_count: int, left_out: int): + mask = np.array(range(left_out)) + + while True: + if mask[0] == values_count - left_out + 1: + break + yield mask + + mask[-1] += 1 + + if mask[-1] >= values_count: + idx_to_start = 0 + for i in range(left_out-1): + if mask[-1 - i] >= values_count-i: + mask[-1 - (i+1)] += 1 + idx_to_start -= 1 + else: + break + while idx_to_start < 0: + # print("i:", idx_to_start, "mask:", mask) + mask[idx_to_start] = mask[idx_to_start -1] + 1 + idx_to_start += 1 + # print("i:", idx_to_start, "mask:", mask, "end") + + def dend_tau_and_ref_effect(): cells = ["2012-12-21-am-invivo-1", "2014-03-19-ad-invivo-1", "2014-03-25-aa-invivo-1"] cell_type = ["no burster", "burster", "strong burster"] @@ -147,10 +285,7 @@ def create_parameter_distributions(par_values, prefix=""): x_labels = ["[cm]", "[mV]", "[ms]", r"[mV$\sqrt{s}$]", "[ms]", "[mVms]", "[ms]", "[ms]"] axes_flat = axes.flatten() for i, l in enumerate(labels): - min_v = min(par_values[l]) * 0.95 - max_v = max(par_values[l]) * 1.05 - step = (max_v - min_v) / 20 - bins = np.arange(min_v, max_v+step, step) + bins = calculate_bins(par_values[l], 20) if "ms" in x_labels[i]: bins *= 1000 par_values[l] = np.array(par_values[l]) * 1000 @@ -582,19 +717,17 @@ def plot_cell_model_comp_burstiness(cell_behavior, model_behaviour): def plot_cell_model_comp_adaption(cell_behavior, model_behaviour): - fig = plt.figure(figsize=consts.FIG_SIZE_MEDIUM_WIDE) - + fig = plt.figure(figsize=(8, 4)) + gs = fig.add_gridspec(2, 3, width_ratios=[5, 5, 5], height_ratios=[3, 7], + left=0.1, right=0.95, bottom=0.1, top=0.9, + wspace=0.4, hspace=0.3) # ("f_inf_slope", "f_zero_slope") # 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. - mpl.rc("axes.formatter", limits=(-5, 2)) - gs = fig.add_gridspec(2, 2, width_ratios=[5, 5], height_ratios=[3, 7], - left=0.1, right=0.9, bottom=0.1, top=0.9, - wspace=0.3, hspace=0.3) + mpl.rc("axes.formatter", limits=(-5, 3)) num_of_bins = 20 - cmap = 'jet' - cell_bursting = cell_behavior["Burstiness"] + # baseline freq plot: i = 0 cell = cell_behavior["f_inf_slope"] @@ -607,7 +740,7 @@ def plot_cell_model_comp_adaption(cell_behavior, model_behaviour): ax = fig.add_subplot(gs[1, i]) ax_histx = fig.add_subplot(gs[0, i], sharex=ax) - scatter_hist(cell, model, ax, ax_histx, behaviour_titles["f_inf_slope"], bins) # , cmap, cell_bursting) + scatter_hist(cell, model, ax, ax_histx, behaviour_titles["f_inf_slope"], bins) ax.set_xlabel(r"Cell [Hz]") ax.set_ylabel(r"Model [Hz]") ax_histx.set_ylabel("Count") @@ -619,12 +752,11 @@ def plot_cell_model_comp_adaption(cell_behavior, model_behaviour): idx = np.array(cell) < 25000 cell = np.array(cell)[idx] model = np.array(model)[idx] - cell_bursting = np.array(cell_bursting)[idx] idx = np.array(model) < 25000 cell = np.array(cell)[idx] model = np.array(model)[idx] - cell_bursting = np.array(cell_bursting)[idx] + print("removed {} values from f_zero_slope plot.".format(length_before - len(cell))) minimum = min(min(cell), min(model)) @@ -634,21 +766,52 @@ def plot_cell_model_comp_adaption(cell_behavior, model_behaviour): ax = fig.add_subplot(gs[1, i]) ax_histx = fig.add_subplot(gs[0, i], sharex=ax) - scatter_hist(cell, model, ax, ax_histx, behaviour_titles["f_zero_slope"], bins) # , cmap, cell_bursting) + scatter_hist(cell, model, ax, ax_histx, behaviour_titles["f_zero_slope"], bins) ax.set_xlabel("Cell [Hz]") ax.set_ylabel("Model [Hz]") ax_histx.set_ylabel("Count") + i += 1 + + # ratio: + cell_inf = cell_behavior["f_inf_slope"] + model_inf = model_behaviour["f_inf_slope"] + cell_zero = cell_behavior["f_zero_slope"] + model_zero = model_behaviour["f_zero_slope"] + + cell_ratio = [cell_zero[i]/cell_inf[i] for i in range(len(cell_inf))] + model_ratio = [model_zero[i]/model_inf[i] for i in range(len(model_inf))] + + idx = np.array(cell_ratio) < 60 + cell_ratio = np.array(cell_ratio)[idx] + model_ratio = np.array(model_ratio)[idx] + + idx = np.array(model_ratio) < 60 + cell_ratio = np.array(cell_ratio)[idx] + model_ratio = np.array(model_ratio)[idx] + + both_ratios = list(cell_ratio.copy()) + both_ratios.extend(model_ratio) + + bins = calculate_bins(both_ratios, num_of_bins) + + ax = fig.add_subplot(gs[1, i]) + ax_histx = fig.add_subplot(gs[0, i], sharex=ax) + scatter_hist(cell_ratio, model_ratio, ax, ax_histx, r"$f_0$ / $f_{\infty}$ slope ratio", bins) + ax.set_xlabel("Cell") + ax.set_ylabel("Model") + ax_histx.set_ylabel("Count") plt.tight_layout() - fig.text(0.085, 0.925, 'A', ha='center', va='center', rotation='horizontal', size=16, family='serif') - fig.text(0.54, 0.925, 'B', ha='center', va='center', rotation='horizontal', size=16, family='serif') + # fig.text(0.085, 0.925, 'A', ha='center', va='center', rotation='horizontal', size=16, family='serif') + # fig.text(0.54, 0.925, 'B', ha='center', va='center', rotation='horizontal', size=16, family='serif') - plt.savefig(consts.SAVE_FOLDER + "fit_adaption_comparison.pdf", transparent=True) + plt.savefig(consts.SAVE_FOLDER + "fit_adaption_comparison_with_ratio.pdf", transparent=True) plt.close() mpl.rc("axes.formatter", limits=(-5, 6)) + def scatter_hist(cell_values, model_values, ax, ax_histx, behaviour, bins, cmap=None, color_values=None): # copied from matplotlib @@ -665,5 +828,15 @@ def scatter_hist(cell_values, model_values, ax, ax_histx, behaviour, bins, cmap= ax_histx.set_title(behaviour) + +def calculate_bins(values, num_of_bins): + minimum = np.min(values) + maximum = np.max(values) + step = (maximum - minimum) / (num_of_bins-1) + + bins = np.arange(minimum-0.5*step, maximum + step, step) + return bins + + if __name__ == '__main__': main() diff --git a/Sam.py b/Sam.py index 66b1227..d28b3ed 100644 --- a/Sam.py +++ b/Sam.py @@ -8,11 +8,18 @@ class SamAnalysis: class SamAnalysisData(SamAnalysis): - pass + + def __init__(self, cell_data): + self.cell_data = cell_data + + self.mean_mod_freq_responses = [] class SamAnalysisModel(SamAnalysis): - pass + + def __init__(self, model): + pass + diff --git a/sam_experiments.py b/sam_experiments.py index 50e6539..f80a986 100644 --- a/sam_experiments.py +++ b/sam_experiments.py @@ -12,9 +12,67 @@ import os def main(): - sam_analysis("results/invivo_results/2013-01-08-ad-invivo-1/") + sam_analysis("results/final_2/2011-10-25-ad-invivo-1/") + + # plot_traces_with_spiketimes() + # plot_mean_of_cuts() + quit() - modelfit = get_best_fit("results/invivo_results/2013-01-08-ad-invivo-1/", use_comparable_error=False) + modelfit = get_best_fit("results/final_2/2011-10-25-ad-invivo-1/") + cell_data = CellData(modelfit.get_cell_path()) + + eod_freq = cell_data.get_eod_frequency() + model = modelfit.get_model() + + test_model_response(model, eod_freq, 0.1, np.arange(5, 2500, 5)) + + +def test_model_response(model: LifacNoiseModel, eod_freq, contrast, modulation_frequencies): + + stds = [] + + for m_freq in modulation_frequencies: + if (1/m_freq) / 10 <= model.parameters["step_size"]: + model.parameters["step_size"] = (1/m_freq) / 10 + step_size = model.parameters["step_size"] + print("mode_freq:", m_freq, "- step size:", step_size) + stimulus = SAM(eod_freq, contrast / 100, m_freq) + duration = 30 + v1, spikes_model = model.simulate(stimulus, duration) + prob_density_function_model = spiketimes_calculate_pdf(spikes_model, step_size, kernel_width=0.005) + + fig, ax = plt.subplots(1, 1) + ax.plot(prob_density_function_model) + ax.set_title("pdf with m_freq: {}".format(int(m_freq))) + + plt.savefig("figures/sam/pdf_mfreq_{}.png".format(m_freq)) + plt.close() + stds.append(np.std(prob_density_function_model)) + + plt.plot((np.array(modulation_frequencies)) / eod_freq, stds) + plt.show() + plt.close() + + +def plot_traces_with_spiketimes(): + modelfit = get_best_fit("results/final_2/2011-10-25-ad-invivo-1/") + cell_data = modelfit.get_cell_data() + + traces = cell_data.parser.__get_traces__("SAM") + # [time_traces, v1_traces, eod_traces, local_eod_traces, stimulus_traces] + sam_spiketimes = cell_data.get_sam_spiketimes() + for i in range(len(traces[0])): + fig, axes = plt.subplots(2, 1, sharex=True) + axes[0].plot(traces[0][i], traces[1][i]) + axes[0].plot(list(sam_spiketimes[i]), list([max(traces[1][i])] * len(sam_spiketimes[i])), 'o') + axes[1].plot(traces[0][i], traces[3][i]) + + plt.show() + plt.close() + + +def plot_mean_of_cuts(): + modelfit = get_best_fit("results/final_2/2018-05-08-ac-invivo-1/") if not os.path.exists(os.path.join(modelfit.get_cell_path(), "samallspikes1.dat")): print("Cell: {} \n Has no measured sam stimuli.") @@ -24,20 +82,6 @@ def main(): eod_freq = cell_data.get_eod_frequency() model = modelfit.get_model() - # base_cell = get_baseline_class(cell_data) - # base_model = get_baseline_class(model, cell_data.get_eod_frequency()) - # isis_cell = np.array(base_cell.get_interspike_intervals()) * 1000 - # isi_model = np.array(base_model.get_interspike_intervals()) * 1000 - - # bins = np.arange(0, 20, 0.1) - # plt.hist(isi_model, bins=bins, alpha=0.5) - # plt.hist(isis_cell, bins=bins, alpha=0.5) - # plt.show() - # plt.close() - - # ficurve = FICurveModel(model, np.arange(-1, 1.1, 0.1), eod_freq) - # - # ficurve.plot_fi_curve() durations = cell_data.get_sam_durations() u_durations = np.unique(durations) mean_duration = np.mean(durations) @@ -56,17 +100,16 @@ def main(): spikes_dictionary[m_freq] = [spiketimes[i]] for m_freq in sorted(spikes_dictionary.keys()): - if mean_duration < 2*1/float(m_freq): + if mean_duration < 2 * (1 / float(m_freq)): + print("meep") continue - stimulus = SAM(eod_freq, contrast/100, m_freq) - v1, spikes_model = model.simulate(stimulus, mean_duration * 4) + stimulus = SAM(eod_freq, contrast / 100, m_freq) + v1, spikes_model = model.simulate(stimulus, 4) prob_density_function_model = spiketimes_calculate_pdf(spikes_model, step_size) - # plt.plot(prob_density_function_model) - # plt.show() - # plt.close() fig, axes = plt.subplots(1, 4) - cuts = cut_pdf_into_periods(prob_density_function_model, 1/float(m_freq), step_size) + start_idx = int(2 / step_size) + cuts = cut_pdf_into_periods(prob_density_function_model[start_idx:], 1 / float(m_freq), step_size) for c in cuts: axes[0].plot(c, color="gray", alpha=0.2) axes[0].set_title("model") @@ -77,14 +120,13 @@ def main(): for spikes_cell in spikes_dictionary[m_freq]: prob_density_cell = spiketimes_calculate_pdf(spikes_cell[0], step_size) - if len(prob_density_cell) < 3 * (eod_freq / step_size): - continue - cuts_cell = cut_pdf_into_periods(prob_density_cell, 1/float(m_freq), step_size) + cuts_cell = cut_pdf_into_periods(prob_density_cell, 1 / float(m_freq), step_size) for c in cuts_cell: axes[1].plot(c, color="gray", alpha=0.15) print(cuts_cell.shape) means_cell.append(np.mean(cuts_cell, axis=0)) if len(means_cell) == 0: + print("means cell length zero") continue means_cell = np.array(means_cell) total_mean_cell = np.mean(means_cell, axis=0) @@ -92,7 +134,7 @@ def main(): axes[1].plot(total_mean_cell, color="black") axes[2].set_title("difference") - diff = [(total_mean_cell[i]-mean_model[i]) for i in range(len(total_mean_cell))] + diff = [(total_mean_cell[i] - mean_model[i]) for i in range(len(total_mean_cell))] axes[2].plot(diff) axes[3].plot(total_mean_cell) @@ -129,9 +171,11 @@ def sam_analysis(fit_path): delta_freqs = cell_data.get_sam_delta_frequencies() u_delta_freqs = np.unique(delta_freqs) - all_data = [] + cell_stds = [] + model_stds = [] for mod_freq in sorted(u_delta_freqs): # TODO problem of cutting the pdf as in some cases the pdf is shorter than 1 modulation frequency period! + # length info wrong ? always at least one period? if 1/mod_freq > durations[0] / 4: print("skipped mod_freq: {}".format(mod_freq)) @@ -152,52 +196,92 @@ def sam_analysis(fit_path): print("There are more spiketimes in one 'point'! Only the first was used! ") spikes = spiketimes[i][0] - cell_pdf = spiketimes_calculate_pdf(spikes, step_size) - cell_cuts = cut_pdf_into_periods(cell_pdf, 1/mod_freq, step_size, factor=1.1, use_all=True) + cell_cuts = cut_pdf_into_periods(cell_pdf, 1/mod_freq, step_size, factor=1.0) cell_mean = np.mean(cell_cuts, axis=0) cell_means.append(cell_mean) - # fig, axes = plt.subplots(1, 2) - # for c in cell_cuts: - # axes[0].plot(c, color="grey", alpha=0.2) - # axes[0].plot(np.mean(cell_means, axis=0), color="black") stimulus = SAM(eod_freq, contrasts[i] / 100, mod_freq) v1, spikes_model = model.simulate(stimulus, durations[i] * 4) model_pdf = spiketimes_calculate_pdf(spikes_model, step_size) - model_cuts = cut_pdf_into_periods(model_pdf, 1/mod_freq, step_size, factor=1.1) + model_cuts = cut_pdf_into_periods(model_pdf, 1/mod_freq, step_size, factor=1.0) model_mean = np.mean(model_cuts, axis=0) model_means.append(model_mean) - # for c in model_cuts: - # axes[1].plot(c, color="grey", alpha=0.2) - # axes[1].plot(np.mean(model_cuts, axis=0), color="black") - # plt.title("mod_freq: {}".format(mod_freq)) - # plt.show() - # plt.close() + final_cell_mean = np.mean(cell_means, axis=0) + final_model_mean = np.mean(model_means, axis=0) + cell_stds.append(np.std(final_cell_mean)) + model_stds.append(np.std(final_model_mean)) + final_model_mean_phase_corrected = correct_phase(final_cell_mean, final_model_mean, step_size) - - fig, axes = plt.subplots(1, 4) + # PLOT EVERY MOD FREQ + fig, axes = plt.subplots(1, 5, figsize=(15, 5), sharex=True) for c in cell_means: axes[0].plot(c, color="grey", alpha=0.2) axes[0].plot(np.mean(cell_means, axis=0), color="black") + axes[0].set_title("Cell response") axis_cell = axes[0].axis() for m in model_means: axes[1].plot(m, color="grey", alpha=0.2) axes[1].plot(np.mean(model_means, axis=0), color="black") + axes[1].set_title("Model response") axis_model = axes[1].axis() ylim_top = max(axis_cell[3], axis_model[3]) axes[1].set_ylim(0, ylim_top) axes[0].set_ylim(0, ylim_top) - - axes[2].plot((np.mean(model_means, axis=0) - np.mean(cell_means, axis=0)) / np.mean(model_means, axis=0)) - - plt.title("modulation frequency: {}".format(mod_freq)) + axes[2].set_ylim(0, ylim_top) + + + axes[2].plot(final_cell_mean, label="cell") + axes[2].plot(final_model_mean, label="model") + axes[2].plot(final_model_mean_phase_corrected, label="model p-cor") + axes[2].legend() + axes[2].set_title("cell-model overlapped") + axes[3].plot((final_model_mean - final_cell_mean) / final_cell_mean, label="normal") + axes[3].plot((final_model_mean_phase_corrected- final_cell_mean) / final_cell_mean, label="phase cor") + axes[3].set_title("rel. error") + axes[3].legend() + axes[4].plot(final_model_mean - final_cell_mean, label="normal") + axes[4].plot(final_model_mean_phase_corrected - final_cell_mean, label="phase cor") + axes[4].set_title("abs. error (Hz)") + axes[4].legend() + + fig.suptitle("modulation frequency: {}".format(mod_freq)) + + # plt.tight_layout() plt.show() plt.close() + fig, ax = plt.subplots(1, 1) + + ax.plot(u_delta_freqs, cell_stds, label="cell stds") + ax.plot(u_delta_freqs, model_stds, label="model stds") + ax.set_title("response modulation depth") + ax.set_xlabel("Modulation frequency") + ax.set_ylabel("STD") + ax.legend() + plt.show() + plt.close() + + +def correct_phase(cell_mean, model_mean, step_size): + + # test for every 0.2 ms roll in the total time: + lowest_err = np.inf + roll_idx = 0 + for i in range(int(len(cell_mean) * step_size * 1000) * 5): + roll_by = int((i / 5 / 1000) / step_size) + rolled = np.roll(model_mean, roll_by) + # rms = np.sqrt(np.mean(np.power((cell_mean - rolled), 2))) + abs = np.sum(np.abs(cell_mean-rolled)) + if abs < lowest_err: + lowest_err = abs + roll_idx = roll_by + + return np.roll(model_mean, roll_idx) + def generate_pdf(model, stimulus, trials=4, sim_length=3, kernel_width=0.005): @@ -221,7 +305,7 @@ def generate_pdf(model, stimulus, trials=4, sim_length=3, kernel_width=0.005): return mean_rate -def spiketimes_calculate_pdf(spikes, step_size, kernel_width=0.005): +def spiketimes_calculate_pdf(spikes, step_size, kernel_width=0.001): length = int(spikes[len(spikes)-1] / step_size)+1 binary = np.zeros(length) spikes = [int(s / step_size) for s in spikes] @@ -234,7 +318,11 @@ def spiketimes_calculate_pdf(spikes, step_size, kernel_width=0.005): return rate -def cut_pdf_into_periods(pdf, period, step_size, factor=1.5, use_all=False): +def cut_pdf_into_periods(pdf, period, step_size, factor=1.5): + + if period < 0: + print("cut_pdf_into_periods(): Period was negative! Absolute value taken to continue") + period = abs(period) if period / step_size > len(pdf): return [pdf] diff --git a/stimuli/SinusAmplitudeModulation.py b/stimuli/SinusAmplitudeModulation.py index fb54ceb..99f1b27 100644 --- a/stimuli/SinusAmplitudeModulation.py +++ b/stimuli/SinusAmplitudeModulation.py @@ -1,6 +1,5 @@ from stimuli.AbstractStimulus import AbstractStimulus import numpy as np -from numba import jit, njit from warnings import warn @@ -63,7 +62,6 @@ def convert_to_array(carrier_freq, amplitude, modulation_freq, contrast, start_t else: am_end = time_start + total_time - idx_start = (am_start - time_start) / step_size_s idx_end = (am_end - time_start) / step_size_s @@ -80,46 +78,4 @@ def convert_to_array(carrier_freq, amplitude, modulation_freq, contrast, start_t values = full_carrier * amplitude values[idx_start:idx_end] = values[idx_start:idx_end]*am - return values - - - # # if the whole stimulus time has the amplitude modulation just built it at once; - # if time_start >= start_time and start_time+duration < time_start+total_time: - # carrier = np.sin(2 * np.pi * carrier_freq * np.arange(start_time, total_time - start_time, step_size_s)) - # modulation = 1 + contrast * np.sin(2 * np.pi * modulation_freq * np.arange(start_time, total_time - start_time, step_size_s)) - # values = amplitude * carrier * modulation - # return values - # - # # if it is split into parts with and without amplitude modulation built it in parts: - # values = np.array([]) - # - # # there is some time before the modulation starts: - # if time_start < start_time: - # carrier_before_am = np.sin(2 * np.pi * carrier_freq * np.arange(time_start, start_time, step_size_s)) - # values = np.concatenate((values, amplitude * carrier_before_am)) - # - # # there is at least a second part of the stimulus that contains the amplitude: - # # time starts before the end of the am and ends after it was started - # if time_start < start_time+duration and time_start+total_time > start_time: - # if duration is np.inf: - # - # carrier_during_am = np.sin( - # 2 * np.pi * carrier_freq * np.arange(start_time, time_start + total_time, step_size_s)) - # am = 1 + contrast * np.sin( - # 2 * np.pi * modulation_freq * np.arange(start_time, time_start + total_time, step_size_s)) - # else: - # carrier_during_am = np.sin( - # 2 * np.pi * carrier_freq * np.arange(start_time, start_time + duration, step_size_s)) - # am = 1 + contrast * np.sin( - # 2 * np.pi * modulation_freq * np.arange(start_time, start_time + duration, step_size_s)) - # values = np.concatenate((values, amplitude * am * carrier_during_am)) - # - # else: - # if contrast != 0: - # print("Given stimulus time parameters (start, total) result in no part of it containing the amplitude modulation!") - # - # if time_start+total_time > start_time+duration: - # carrier_after_am = np.sin(2 * np.pi * carrier_freq * np.arange(start_time + duration, time_start + total_time, step_size_s)) - # values = np.concatenate((values, amplitude*carrier_after_am)) - # - # return values + return values \ No newline at end of file diff --git a/test.py b/test.py index e30ceb8..7caf8b8 100644 --- a/test.py +++ b/test.py @@ -22,67 +22,15 @@ from matplotlib import gridspec # from plottools.axes import labelaxes_params - -cell = "data/final/2018-05-08-ab-invivo-1/" -cell_data = CellData(cell) -step = cell_data.get_sampling_interval() -v1 = cell_data.get_base_traces(cell_data.V1)[0] -time = cell_data.get_base_traces(cell_data.TIME)[0] -spiketimes = cell_data.get_base_spikes()[0] -start = 0 -duration = 25 - -fig, ax = plt.subplots(1, 1) -ax.plot((np.array(time[:int(duration/step)]) - start) * 1000, v1[:int(duration/step)]) -ax.eventplot([s * 1000 for s in spiketimes if start < s < start + duration], - lineoffsets=max(v1[:int(duration/step)])+1.25, color="black", linelengths=2) - -plt.show() -plt.close() -quit() - -# sp = self.spikes(index) -# binary = np.zeros(t.shape) -# spike_indices = ((sp - t[0]) / dt).astype(int) -# binary[spike_indices[(spike_indices >= 0) & (spike_indices < len(binary))]] = 1 -# g = gaussian_kernel(kernel_width, dt) -# rate = np.convolve(binary, g, mode='same') - -fit = get_best_fit("results/final_2/2012-12-21-am-invivo-1/") -model = fit.get_model() -cell_data = fit.get_cell_data() -eodf = cell_data.get_eod_frequency() -parameters = model.parameters - -time_param_keys = ["refractory_period", "tau_a", "mem_tau", "dend_tau"] -contrasts = np.arange(-0.3, 0.3, 0.05) -baseline_normal = BaselineModel(model, eodf) -fi_curve_normal = FICurveModel(model, contrasts, eodf) -fi_curve_normal.plot_fi_curve() -normal_isis = baseline_normal.get_interspike_intervals() * eodf -normal_bins = np.arange(0, 0.05, 0.0001) * eodf - -factor = 1.1 -scaled_eodf = eodf * factor -scaled_model = model.get_model_copy() - -for key in time_param_keys: - scaled_model.parameters[key] = parameters[key] / factor - -baseline_scaled = BaselineModel(scaled_model, scaled_eodf) -fi_curve_scaled = FICurveModel(scaled_model, contrasts, scaled_eodf) -fi_curve_scaled.plot_fi_curve() -scaled_isis = np.array(baseline_scaled.get_interspike_intervals()) * scaled_eodf -scaled_bins = np.arange(0, 0.05, 0.0001) * scaled_eodf - -# plt.hist(normal_isis, bins=normal_bins, alpha=0.5, label="normal") -# plt.hist(scaled_isis, bins=scaled_bins, alpha=0.5, label="scaled") -# plt.legend() -# plt.show() - - - - +directory = "data/final" +count = 0 +for cell in sorted(os.listdir(directory)): + cell_dir = os.path.join(directory, cell) + if os.path.exists(cell_dir + "/samallspikes1.dat"): + print(cell) + count += 1 + +print(count) diff --git a/tests/consistency_correlations_removed_1.pdf b/tests/consistency_correlations_removed_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fc35b06f943ec1e233dd76473c840590ba244465 GIT binary patch literal 19169 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 MjE6@-QxW!m0FHe|^#A|> literal 0 HcmV?d00001 diff --git a/tests/consistency_correlations_removed_2.pdf b/tests/consistency_correlations_removed_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a4c3f022cd0193bac6362d81a8afec4d313247cc GIT binary patch literal 19213 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 JNlTgP{{Rl@S@8e> literal 0 HcmV?d00001 diff --git a/tests/consistency_correlations_removed_3.pdf b/tests/consistency_correlations_removed_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2627d634eb3195b60bfcc1e16d35320e3c12eacd GIT binary patch literal 20167 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 literal 0 HcmV?d00001 diff --git a/tests/consistency_correlations_removed_4.pdf b/tests/consistency_correlations_removed_4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..424a16611a267a25c25aedcb71aafa2c0dd10b05 GIT binary patch literal 20162 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 NqsY0q6f_jc{|{0->4g9Q literal 0 HcmV?d00001 diff --git a/thesis/Masterthesis.pdf b/thesis/Masterthesis.pdf index f0d74f32f28aa0d9b06e5069bd0bfc85423f234a..646629d21c2c9a93d96e43092e9c6492ce32313a 100644 GIT binary patch delta 40382 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 delta 40310 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 E50y3e-T(jq diff --git a/thesis/Masterthesis.tex b/thesis/Masterthesis.tex index 1047c16..23019b7 100755 --- a/thesis/Masterthesis.tex +++ b/thesis/Masterthesis.tex @@ -511,7 +511,7 @@ Before the parameter distributions (fig. \ref{fig:parameter_distributions}) and \begin{figure}[H] -\includegraphics{figures/parameter_distributions.pdf} +\includegraphics{figures/scaled_to_800_parameter_distributions.pdf} \caption{\label{fig:parameter_distributions} Distributions of all eight model parameters with the time scaled for all models so their driving EOD frequency has 800\,Hz. \textbf{A}: input scaling $\alpha$, \textbf{B}: Bias current $I_{Bias}$, \textbf{C}: membrane time constant $\tau_m$, \textbf{D}: noise strength $\sqrt{2D}$, \textbf{E}: adaption time constant $\tau_A$, \textbf{F}: adaption strength $\Delta_A$, \textbf{G}: time constant of the dendritic low pass filter $\tau_{dend}$, \textbf{H}: refractory period $t_{ref}$} \end{figure} diff --git a/thesis/figures/fit_adaption_comparison_with_ratio.pdf b/thesis/figures/fit_adaption_comparison_with_ratio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..57e5464825a719eff7a4e0363f537fc083851156 GIT binary patch literal 20944 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 O4 diff --git a/thesis/figures/scaled_to_800_parameter_distributions.pdf b/thesis/figures/scaled_to_800_parameter_distributions.pdf index 9004a9177205616d5c3ff1430be7645764cbfa46..3538999bd6a661ae263f2681548d45a3e6329b46 100644 GIT binary patch delta 7045 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∨<$z&KfW#BRTk0DGpB&+Ot^M{R+I|2c z!}G0vD zupzIlJKB@Xfx!vGJT_!?Q0iA;92w&%L)lE%AvMeb0mll87lQ-t3kT5EB>9vx;OK(1ft!r`a8xg!Xvb~ z_RCd@wa_`HR#c7Yer}r)O@ROxxTt31J#ZNx{p|EtYSGUthF_y*ceU%8>3sn0U6i$> z+qN3-qKV`yE$pX#$cCd_Uv1xgS8>hps7kr9Z^^gJE;yJf0!=b2cXtb1*oy4qS0?k= zzb}a$u0O^+N%`x3>r$=7`qY9KrdhQAT+{*{C#D!&TVHXR1Pm!~+J7up9$1$u;*QvS zzPCup!Ivg`5$k`YZsjEf7EyLZT95;&ZZr%cVXpQAwzly2g#j3-ZzhSLnbRz-+00aL(gVK(@VxIE`==V0Gr{j4 zv(_+@ATIvX$j>uVXS-KZ2MGDPLohHKQf#~`6q=nhwV-~ zsR9W9zf!_2;-im_=?m@|Jf(}kZ5}MWDa!oyVGVdj-dZza^4a8xSb~cOPVOY~bJ6D= z{M53$gGy5>)yc_?;_JEkRfjGdgIKBGG3<+4=G9#*>G6(F(!2#j)r<{duJvG+eKj9g4>L*N z<2EtN)f(y6+e{SrIEbpbvD1R`N4@x(4MAuxX8CP@y7ksgY3JUmyIy%r>~T8*Ox2d3 zA};Hfukxqm_8PwpXSd{Y>$K8=9b7zhQU^TwcJB%4lpS1LaZ-OL04}Q9eDpwOZ*y5E zGfjz9!*=civJki^gHU!x7 zuW_VX0#!K3ojCb#Rvyl2EhUumOarzUxl0h{JU42~!Iu!y*s}}nr-YS%@y1HarFwD*YA@FdoUm_lp zYJoGcp1DyybBWI0m)~;|?qGMxu5dL*hYEDT+Y+CB2*eCK*0<{4(h9>_CEGFv%vI_X z2OPY{WhL9P2aLuRf8NQpS;^Qhyq|pM@-DiQgJym^|AE*%gf7g=Xh!-1ZZqHbo`=kA zMv8RRlSX$z?f8a`T?k_>V4`Pi-B@}2RWKq|meSDw%BT8h8nHrichXJQ(huznbaN^c z4R__;{XM8kSZ{vzzQ(TF6)WktmbCKyqp)W4=#2|mk}k#TdY>Sm-x|msEDesZ?LF`4 z2lu~0r_Nrz&0(qZ z0i(jfbIq`ZQ!tvI{Fm0OiS^8Lo7{)^g(BH_8gjevwZP(61;xE!C6k7kYt;2U1M~5( z>j(ELA9w0Vj>GYHUjb;_T*Zt8x6X;Wv6K5g2B z_`R;ABXy6T&7bdny#maNf4jkKntY4jxRUpUqD%h=%0@$)mCzmGg_>>5r>)qhQu|+! zp{lsIncDlk<^#Ocwo5JF%<%E;brG=W(d94EdWI4TjfDvF(~m|G#njSZKVM~VP}Se!4Nov2m`^0#(@wB z_}Os~DCjH(f}`O?7y|q+P2m4?1R-Duf>!^NHwb}*oFxN7pkQZn1R)^^^x3&c1oEto zAQTAsKZyW;wj-?fKj2>sfhHn@LJU<7b>G8hB{pCtoE zp%7;?0TUo%3__$97>x#>B?E@Q5dSI&{I|ux5G3-f)L;mjm<*xBXXOV&!Du2fP#BtM zV<;N&zsV8w2g4w!{{{bGFc{H-FeFi#z%Vp%W5U76v;7W+!-(aFBfv=DOw)kjNTM2p z2^~zN3<6550s@96QU-xS5o3gA_;+96KPMcF1fxJ_$spmNvrPylh;a5efsttFS*alq zB13(Z67d8UjK>i8cmj-&3?*3F-}CqX z9snT}^sEXHFtO1<2yIP728MtUB?2Qf*BMnIFz_Ew{`2rT!2WBn2-JUS@}H7GpeQ(z XtOx>~NU*)qMI?wyK;V|9BGvx^4MiI9 delta 7051 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