From cb74838326b9aeb367437b71c0e2dcf4928829a5 Mon Sep 17 00:00:00 2001 From: "a.ott" Date: Sat, 22 Aug 2020 11:29:26 +0200 Subject: [PATCH] state final 1 fitting --- CellData.py | 10 ++ DataParserFactory.py | 40 ++++++- Figures_Model.py | 49 ++++---- Figures_Stimuli.py | 67 +++++++++-- Fitter.py | 10 +- ModelFit.py | 2 +- analysis.py | 30 +++-- cell_overview.py | 3 +- find_thresholds_for_spike_detection.py | 22 +++- run_Fitter.py | 4 +- run_cellwise_fitting.sh | 2 +- test.py | 7 +- test_for_cells.py | 157 ++++++++++++++++++++++++- thesis/sources/Golowasch2002.pdf | Bin 0 -> 113170 bytes thesis/to-read/dennis/papers | 25 ++++ 15 files changed, 373 insertions(+), 55 deletions(-) create mode 100644 thesis/sources/Golowasch2002.pdf create mode 100644 thesis/to-read/dennis/papers diff --git a/CellData.py b/CellData.py index 5db7872..6afbf7a 100644 --- a/CellData.py +++ b/CellData.py @@ -4,6 +4,8 @@ import os import helperFunctions as hf import numpy as np +import matplotlib.pyplot as plt + COUNT = 0 @@ -127,6 +129,14 @@ class CellData: if only_first and i > 0: break spiketimes.append(hf.detect_spiketimes(times[i], v1_traces[i], threshold=threshold, min_length=min_length, split_step=split_step)) + + # plt.plot(times[0], v1_traces[0]) + # idx_pos = np.array(spiketimes) / self.get_sampling_interval() + # idx_pos = np.array(np.rint(idx_pos), np.int) + # + # plt.plot(spiketimes[0], np.array(v1_traces[0])[idx_pos][0, :], 'o') + # plt.show() + self.base_spikes = np.array(spiketimes) if os.path.isdir(self.data_path): diff --git a/DataParserFactory.py b/DataParserFactory.py index 301b35d..6f71f8a 100644 --- a/DataParserFactory.py +++ b/DataParserFactory.py @@ -60,6 +60,7 @@ class DatParser(AbstractParser): def __init__(self, dir_path): self.base_path = dir_path + self.info_file = self.base_path + "/info.dat" self.fi_file = self.base_path + "/fispikes1.dat" self.baseline_file = self.base_path + "/basespikes1.dat" self.sam_file = self.base_path + "/samallspikes1.dat" @@ -77,6 +78,39 @@ class DatParser(AbstractParser): return lengths + def get_species(self): + species = "" + for metadata in Dl.load(self.info_file): + if "Species" in metadata.keys(): + species = metadata["Species"] + elif "Subject" in metadata.keys(): + if isinstance(metadata["Subject"], dict) and "Species" in metadata["Subject"].keys(): + species = metadata["Subject"]["Species"] + + return species + + def get_quality(self): + quality = "" + for metadata in Dl.load(self.info_file): + if "Recording quality" in metadata.keys(): + quality = metadata["Recording quality"] + elif "Recording" in metadata.keys(): + if isinstance(metadata["Recording"], dict) and "Recording quality" in metadata["Recording"].keys(): + quality = metadata["Recording"]["Recording quality"] + return quality + + def get_cell_type(self): + type = "" + for metadata in Dl.load(self.info_file): + if len(metadata.keys()) < 3: + return "" + if "CellType" in metadata.keys(): + type = metadata["CellType"] + elif "Cell" in metadata.keys(): + if isinstance(metadata["Cell"], dict) and "CellType" in metadata["Cell"].keys(): + type = metadata["Cell"]["CellType"] + return type + def get_fi_curve_contrasts(self): """ @@ -358,11 +392,11 @@ class DatParser(AbstractParser): def __test_data_file_existence__(self): if not exists(self.stimuli_file): - raise RuntimeError(self.stimuli_file + " file doesn't exist!") + raise FileNotFoundError(self.stimuli_file + " file doesn't exist!") if not exists(self.fi_file): - raise RuntimeError(self.fi_file + " file doesn't exist!") + raise FileNotFoundError(self.fi_file + " file doesn't exist!") if not exists(self.baseline_file): - raise RuntimeError(self.baseline_file + " file doesn't exist!") + raise FileNotFoundError(self.baseline_file + " file doesn't exist!") # if not exists(self.sam_file): # raise RuntimeError(self.sam_file + " file doesn't exist!") diff --git a/Figures_Model.py b/Figures_Model.py index 5f2817c..bd6df1a 100644 --- a/Figures_Model.py +++ b/Figures_Model.py @@ -10,66 +10,75 @@ import models.smallModels as sM def main(): # stimulus_development() - model_adaption_example() - # model_comparison() + # model_adaption_example() + model_comparison() pass def isi_development(): model_params = consts.model_cell_1 - pass def model_comparison(): step = 0.00001 - duration = 0.5 + duration = 1.3 stimulus = np.arange(0, duration, step) - stimulus[0:8000] = 2 - stimulus[8000:20000] = 0 - stimulus[20000:] = 1 + stimulus[0:int(0.7/step)] = 0.5 + stimulus[int(0.7/step):int(0.9/step)] = 1 + stimulus[int(0.9/step):int(1.1/step)] = 0 + stimulus[int(1.1/step):int(1.3/step)] = 0.5 fig, axes = plt.subplots(5, 2, sharex=True, sharey="col", figsize=consts.FIG_SIZE_LARGE) - axes[1, 0].set_title("Voltage") - axes[1, 1].set_title("Frequency") - - axes[0, 0].plot(np.arange(0, duration, step)[:len(stimulus)], stimulus) - axes[0, 0].set_ylabel("Stimulus") + axes[0, 0].plot(np.arange(-0.5, duration, step)[:len(stimulus)], stimulus) + axes[0, 0].set_title("Stimulus") + axes[0, 0].set_ylabel("V in mV") axes[0, 1].set_frame_on(False) axes[0, 1].set_axis_off() + axes[0, 0].set_ylim((-0.1, 1.5)) + axes[0, 0].set_xlim((0, duration-0.5)) v1, spikes = sM.pif_simulation(stimulus, step) - axes[1, 0].plot(np.arange(0, duration, step)[:len(v1)], v1) + spikes = np.array(spikes)-0.5 + axes[1, 0].plot(np.arange(-0.5, duration, step)[:len(v1)], v1) axes[1, 0].eventplot(spikes, lineoffsets=1.2, linelengths=0.2, colors="black") time, freq = hF.calculate_time_and_frequency_trace(spikes, step) axes[1, 1].plot(time, freq) - axes[1, 0].set_ylabel("PIF") + axes[1, 0].set_title("PIF") + axes[1, 0].set_ylabel("V in mV") v1, spikes = sM.lif_simulation(stimulus, step) - axes[2, 0].plot(np.arange(0, duration, step)[:len(v1)], v1) + spikes = np.array(spikes)-0.5 + axes[2, 0].plot(np.arange(-0.5, duration, step)[:len(v1)], v1) axes[2, 0].eventplot(spikes, lineoffsets=1.2, linelengths=0.2, colors="black") time, freq = hF.calculate_time_and_frequency_trace(spikes, step) axes[2, 1].plot(time, freq) - axes[2, 0].set_ylabel("LIF") + axes[2, 0].set_title("LIF") + axes[2, 0].set_ylabel("V in mV") v1, spikes = sM.lifac_simulation(stimulus, step) - axes[3, 0].plot(np.arange(0, duration, step)[:len(v1)], v1) + spikes = np.array(spikes) - 0.5 + axes[3, 0].plot(np.arange(-0.5, duration, step)[:len(v1)], v1) axes[3, 0].eventplot(spikes, lineoffsets=1.2, linelengths=0.2, colors="black") time, freq = hF.calculate_time_and_frequency_trace(spikes, step) axes[3, 1].plot(time, freq) - axes[3, 0].set_ylabel("LIFAC") + axes[3, 0].set_title("LIFAC") + axes[3, 0].set_ylabel("V in mV") v1, spikes = sM.lifac_ref_simulation(stimulus, step) - axes[4, 0].plot(np.arange(0, duration, step)[:len(v1)], v1) + spikes = np.array(spikes) - 0.5 + axes[4, 0].plot(np.arange(-0.5, duration, step)[:len(v1)], v1) axes[4, 0].eventplot(spikes, lineoffsets=1.2, linelengths=0.2, colors="black") time, freq = hF.calculate_time_and_frequency_trace(spikes, step) axes[4, 1].plot(time, freq) - axes[4, 0].set_ylabel("LIFAC + ref") + axes[4, 0].set_title("LIFAC + ref") + axes[4, 0].set_ylabel("V in mV") axes[4, 0].set_xlabel("Time [s]") axes[4, 1].set_xlabel("Time [s]") + # v1, spikes = sM.lifac_ref_noise_simulation(stimulus, step) # axes[5, 0].plot(np.arange(0, duration, step)[:len(v1)], v1) # axes[5, 0].eventplot(spikes, lineoffsets=1.2, linelengths=0.2, colors="black") diff --git a/Figures_Stimuli.py b/Figures_Stimuli.py index 8b442a0..8733a0d 100644 --- a/Figures_Stimuli.py +++ b/Figures_Stimuli.py @@ -3,16 +3,56 @@ from stimuli.SinusoidalStepStimulus import SinusoidalStepStimulus from stimuli.SinusAmplitudeModulation import SinusAmplitudeModulationStimulus import numpy as np import matplotlib.pyplot as plt +import Figure_constants as consts def main(): stimuli_protocol_examples() + am_generation() pass +def am_generation(): + fig, axes = plt.subplots(3, 1, sharey=True, sharex=True, figsize=consts.FIG_SIZE_MEDIUM) + + start = 0 + end = 1 + + time_start = -0.2 + time_end = 1.2 + step_size = 0.00005 + + frequency = 55 + contrast = 0.5 + + base_stim = SinusoidalStepStimulus(frequency, 0, start, end - start) + + values = base_stim.as_array(time_start, time_end - time_start, step_size) + time = np.arange(time_start, time_end, step_size) + + axes[0].set_title("Fish EOD") + axes[0].plot(time, values) + + am = np.zeros(len(values)) + am[int((start-time_start)/step_size):int((end-time_start)/step_size)] = contrast + + axes[1].set_title("Amplitude modulation") + axes[1].plot(time, values*am) + axes[1].plot(time, am) + axes[1].set_ylabel("Voltage [mV]") + + axes[2].set_title("Resulting stimulus") + axes[2].plot(time, (values*am) + values) + axes[2].set_xlabel("Time [s]") + axes[2].set_xlim((time_start, time_end)) + plt.tight_layout() + plt.savefig("thesis/figures/amGeneration.pdf") + plt.close() + + def stimuli_protocol_examples(): - fig, axes = plt.subplots(2, 1) + fig, axes = plt.subplots(3, 1, sharey=True, sharex=True, figsize=consts.FIG_SIZE_MEDIUM) start = 0 end = 1 @@ -24,6 +64,15 @@ def stimuli_protocol_examples(): frequency = 55 contrast = 0.5 + base_stim = SinusoidalStepStimulus(frequency, 0, start, end - start) + + values = base_stim.as_array(time_start, time_end - time_start, step_size) + time = np.arange(time_start, time_end, step_size) + + axes[0].set_title("Baseline Stimulus") + axes[0].plot(time, values) + # axes[1].set_ylabel("Voltage [mV]") + # Sinusoidal STEP stimulus # frequency, contrast, start_time=0, duration=np.inf, amplitude=1 step_stim = SinusoidalStepStimulus(frequency, contrast, start, end - start) @@ -31,8 +80,9 @@ def stimuli_protocol_examples(): values = step_stim.as_array(time_start, time_end - time_start, step_size) time = np.arange(time_start, time_end, step_size) - axes[0].plot(time, values) - axes[0].set_ylabel("Voltage [mV]") + axes[1].set_title("Step Stimulus") + axes[1].plot(time, values) + axes[1].set_ylabel("Voltage [mV]") # SAM Stimulus: mod_freq = 10 @@ -44,14 +94,17 @@ def stimuli_protocol_examples(): beat_time = np.arange(start, end, step_size) beat_values = np.sin(beat_time * 2 * np.pi * mod_freq) * contrast + 1 - axes[1].plot(beat_time, beat_values) + axes[2].plot(beat_time, beat_values) - axes[1].set_xlabel("Time [s]") - axes[1].set_ylabel("Voltage [mV]") + axes[2].set_title("SAM Stimulus") + axes[2].set_xlabel("Time [s]") + # axes[2].set_ylabel("Voltage [mV]") + axes[2].set_xlim((time_start, time_end)) + plt.tight_layout() plt.savefig("thesis/figures/stimuliExamples.pdf") plt.close() if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/Fitter.py b/Fitter.py index 138dde3..11d63c1 100644 --- a/Fitter.py +++ b/Fitter.py @@ -140,6 +140,9 @@ class Fitter: print("tried impossible value") return 1000 + abs(X[i]) * 10000 + if X[6] > 1.05/self.eod_freq: # refractory period shouldn't be larger than one eod period + print("tried too large ref period") + return 1000 + abs(X[6]) * 10000 self.base_model.set_variable("mem_tau", X[0]) self.base_model.set_variable("noise_strength", X[1]) self.base_model.set_variable("input_scaling", X[2]) @@ -235,7 +238,7 @@ class Fitter: # raise ValueError("Some error value(s) is/are NaN!") return error_list - def calculate_f0_curve_error(self, model, fi_curve_model): + def calculate_f0_curve_error(self, model, fi_curve_model, dendritic_delay=0.005): buffer = 0.00 test_duration = 0.05 @@ -251,6 +254,11 @@ class Fitter: model_start_idx = int((stimulus_start - buffer) / fi_curve_model.get_sampling_interval()) model_end_idx = int((stimulus_start + buffer + test_duration) / model.get_sampling_interval()) + idx_offset = int(dendritic_delay / model.get_sampling_interval()) + + model_start_idx += idx_offset + model_end_idx += idx_offset + 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 diff --git a/ModelFit.py b/ModelFit.py index 5306b08..d496917 100644 --- a/ModelFit.py +++ b/ModelFit.py @@ -252,7 +252,7 @@ class ModelFit: cell_times, cell_freqs = fi_curve_cell.get_mean_time_and_freq_traces() axes[2].plot(cell_times[f_zero_curve_contrast_idx], cell_freqs[f_zero_curve_contrast_idx]) - axes[2].plot(time, freq) + axes[2].plot(np.array(time) + 0.005, freq) axes[2].set_title("blue: cell, orange: model") axes[2].set_xlim(-0.15, 0.35) diff --git a/analysis.py b/analysis.py index fba8043..ecf7db5 100644 --- a/analysis.py +++ b/analysis.py @@ -26,22 +26,32 @@ def main(): # exit(0) # sensitivity_analysis(dir_path, max_models=3) - behaviour_keys = ["burstiness", "coefficient_of_variation", "serial_correlation", - "vector_strength", "f_inf_slope", "f_zero_slope", "f_zero_middle"] + behaviour_keys = ["Burstiness", "coefficient_of_variation", "serial_correlation", + "vector_strength", "f_inf_slope", "f_zero_slope", "baseline_frequency"] 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") - + # 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") + + 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) diff --git a/cell_overview.py b/cell_overview.py index 666c3eb..b5572cd 100644 --- a/cell_overview.py +++ b/cell_overview.py @@ -5,12 +5,13 @@ from FiCurve import FICurveCellData import os import numpy as np + def main(): # plot_visualizations("cells/") # full_overview("cells/master_table.csv", "cells/") - recalculate_saved_preanalysis("data/test_data/") + recalculate_saved_preanalysis("data/final/") def recalculate_saved_preanalysis(data_folder): diff --git a/find_thresholds_for_spike_detection.py b/find_thresholds_for_spike_detection.py index 75f4df9..e9fd296 100644 --- a/find_thresholds_for_spike_detection.py +++ b/find_thresholds_for_spike_detection.py @@ -8,8 +8,9 @@ def main(): # choose_thresholds() precalculate_baseline_spiketimes() + def precalculate_baseline_spiketimes(): - threshold_file_path = "invivo_data/thresholds.tsv" + threshold_file_path = "data/thresholds.tsv" thresholds_dict = {} if os.path.exists(threshold_file_path): @@ -24,7 +25,7 @@ def precalculate_baseline_spiketimes(): thresholds_dict[name] = [thresh, min_length, step_size] - for cell_data in icelldata_of_dir("invivo_data/"): + for cell_data in icelldata_of_dir("data/final/"): name = os.path.basename(cell_data.get_data_path()) if name not in thresholds_dict.keys(): @@ -39,8 +40,8 @@ def precalculate_baseline_spiketimes(): def choose_thresholds(): - base_path = "invivo_data/" - threshold_file_path = "invivo_data/thresholds.tsv" + base_path = "data/final/" + threshold_file_path = "data/thresholds.tsv" re_choose_thresholds = False thresholds_dict = {} @@ -55,8 +56,18 @@ def choose_thresholds(): min_length = int(line[2]) step_size = int(line[3]) thresholds_dict[name] = [thresh, min_length, step_size] + print("Already done:", name) else: thresholds_dict[name] = [thresh] + print("Already done (no len/step): ", name) + + count = 0 + for item in sorted(listdir(base_path)): + if item in thresholds_dict.keys() and thresholds_dict[item][0] != 99 and not re_choose_thresholds: + continue + + count += 1 + print("cells to do:", count) for item in sorted(listdir(base_path)): # starting assumptions: @@ -81,11 +92,12 @@ def choose_thresholds(): continue data.get_base_spikes(thresh, min_length=min_split_length, split_step=split_step_size, re_calculate=True, - only_first=True) + only_first=True) stop = False print("Threshold was {:.2f}, Min Length was {:.0f}, Split step size was {:.0f}".format(thresh, min_split_length, split_step_size)) + response = input( "Choose: 'ok', 'stop', or a number (threshold) or three numbers (threshold, minlength, step_size) seperated with commas") diff --git a/run_Fitter.py b/run_Fitter.py index 11d07d2..4b6c461 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/invivo-1/" +SAVE_DIRECTORY = "./results/final_1/" # SAVE_DIRECTORY_BEST = "./results/invivo_best/" -SAVE_DIRECTORY_BEST = "./results/invivo-1_best/" +SAVE_DIRECTORY_BEST = "./results/final_1_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/run_cellwise_fitting.sh b/run_cellwise_fitting.sh index 9e4cca6..66f9042 100755 --- a/run_cellwise_fitting.sh +++ b/run_cellwise_fitting.sh @@ -1,5 +1,5 @@ -for file in data/invivo_bursty/*; do +for file in data/final/*; do if [ -d "$file" ]; then nice python3 run_Fitter.py --cell $file fi diff --git a/test.py b/test.py index 379b098..50f06b8 100644 --- a/test.py +++ b/test.py @@ -20,7 +20,9 @@ from thunderfish.eventdetection import threshold_crossing_times, threshold_cross folder = "./results/invivo-1/" for cell in os.listdir(folder): - fit = get_best_fit(os.path.join(folder, cell)) + fit = get_best_fit(os.path.join(folder, cell), use_comparable_error=False) + fit.generate_master_plot() + 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()) @@ -99,6 +101,7 @@ 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 @@ -119,8 +122,6 @@ for cell_data in cell_datas: 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 diff --git a/test_for_cells.py b/test_for_cells.py index 6feb68d..df31207 100644 --- a/test_for_cells.py +++ b/test_for_cells.py @@ -6,6 +6,7 @@ import os import matplotlib.pyplot as plt import pyrelacs.DataLoader as Dl from Baseline import BaselineCellData +from FiCurve import FICurveCellData data_save_path = "test_routines/test_files/" read = False @@ -14,7 +15,157 @@ read = False def main(): # test_kraken_files() # test_for_species() - test_for_vector_strength() + # test_for_vector_strength() + + # test_cells() + + # read_test_cells_tsv() + inspect_fi_curve() + + +def inspect_fi_curve(): + data = "data/final/" + skip = True + for cell in sorted(os.listdir(data)): + if cell == "2015-01-15-ab-invivo-1": + skip = False + if skip: + continue + cell_path = data + cell + + cell_data = CellData(cell_path) + print(cell_path) + ficurve = FICurveCellData(cell_data, cell_data.get_fi_contrasts()) + + ficurve.plot_fi_curve() + + +def read_test_cells_tsv(): + file_path = "data/test_cells.tsv" + data_path = "data/final/" + rejected = os.listdir("rejected_cells/") + cells = os.listdir(data_path) + count_rejected = 0 + count_accepted = 0 + missing_cells = [] + with open(file_path, 'r') as file: + for line in file: + parts = line.strip().split('\t') + + if parts[0] == "True": + # print(parts[0]) + count_accepted += 1 + + cell_name = parts[1].split("/")[-1] + if cell_name in cells: + pass + elif cell_name not in rejected: + missing_cells.append(cell_name) + else: + print("already thrown:", cell_name) + + + + else: + count_rejected += 1 + + print("accepted:", count_accepted) + print("rejected:", count_rejected) + print("Total:", count_rejected + count_accepted) + + for c in sorted(missing_cells): + print(c) + + +def test_cells(): + directory = "/mnt/invivo_data/" + + fi_curve_min_contrasts = 7 + fi_curve_min_trials = 7 + + baseline_min_duration = 29.9 + + accepted_ls = [] + files = [] + baseline_lengths = [] + ficurve_contrasts = [] + count_errors = 0 + for cell in os.listdir(directory): + accepted = True + cell_path = os.path.join(directory, cell) + if not os.path.isdir(cell_path): + continue + + if not os.path.exists(cell_path + "/info.dat"): + count_errors += 1 + continue + print(cell_path) + try: + parser = DatParser(cell_path) + + # Test length of baseline recording + cell_baseline_lengths = parser.get_baseline_length() + long_enough = False + for baseline_len in cell_baseline_lengths: + if baseline_len >= baseline_min_duration: + long_enough = True + break + + if not long_enough: + accepted = False + + # test for recording quality + quality = parser.get_quality() + if quality.lower() not in ["good", "bursty", "fair"]: + print("bad quality") + accepted = False + + # test for species + if "lepto" not in parser.get_species().lower(): + accepted = False + + if not parser.get_cell_type().lower() == "p-unit": + print(parser.get_cell_type()) + accepted = False + # Test for enough trials and tested contrasts + contrasts = parser.get_fi_curve_contrasts() + count = 0 + for c in contrasts: + if c[1] >= fi_curve_min_trials: + count += 1 + + if count < fi_curve_min_contrasts: + accepted = False + + accepted_ls.append(accepted) + files.append(cell_path) + baseline_lengths.append(max(cell_baseline_lengths)) + ficurve_contrasts.append(count) + + except FileNotFoundError as e: + print("parser didn't work: File not found") + # accepted_ls.append(False) + # files.append(cell_path) + # baseline_lengths.append(-1) + # ficurve_contrasts.append(-1) + # count_errors += 1 + except UnicodeDecodeError as e: + print("parser didn't work: UnicodeError") + # accepted_ls.append(False) + # files.append(cell_path) + # baseline_lengths.append(-1) + # ficurve_contrasts.append(-1) + count_errors += 1 + print("Error:", count_errors) + + with open("data/test_cells.tsv", 'w') as file: + + for i in range(len(accepted_ls)): + file.write("{}\t{}\t{}\t{}\n".format(accepted_ls[i], files[i], baseline_lengths[i], ficurve_contrasts[i])) + + + + def test_for_vector_strength(): directory = "invivo_data/" @@ -98,6 +249,10 @@ def test_for_species(): # for cell in sorted_cells["Apteronotus albifrons"]: # print(cell) + +# temp ssh mount command: +# sudo sshfs -o allow_other,default_permissions efish@kraken:/home/efish/ephys/invivo-1/intra/ /mnt/invivo_data/ + def test_kraken_files(): if read: directory = "/mnt/invivo_data/" diff --git a/thesis/sources/Golowasch2002.pdf b/thesis/sources/Golowasch2002.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd204df1a213002954e1f84899e6a3a1c3cc294e GIT binary patch literal 113170 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

;#d)X|<8c37x_r^&jja*1b4 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�G@WG3a2N@zaT+si;ijJwu^3y)4R6F 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 AaR2}S literal 0 HcmV?d00001 diff --git a/thesis/to-read/dennis/papers b/thesis/to-read/dennis/papers new file mode 100644 index 0000000..e521f60 --- /dev/null +++ b/thesis/to-read/dennis/papers @@ -0,0 +1,25 @@ +What is Stochastic Resonance? Definitions, Misconceptions Debates and its relevance to Biology +Mark MacDonnell, Derek Abbott + +Limits on reliable information flows through stochastic populations +Lucas Boczkowski, Emanuele Natale, Ofer Feinerman, Amos Korman + +Effects of Synaptic Noise and Filtering on the frequency Response of spiking neurons +Nicolas Brunel Frances Chance Nicolas Fourcaud L.F. Abbott + +Intermdeiate intrinsic diversity enhances neural population coding +Shreejoy Tripathy, Krishnan Padmanabhan ... + +Intrinsic biophysical diversity decorrelates neuronal firing while increasing information content +Krishnan Padmanabhan, Nathaniel Urban + +Neuromodulation of Spike-timing precision in sensory neurons +Cyrus Billimoria Ralph DiCaprio, John Birmingham, L.F. Abbott Eve Marder + +Adaptive Exponential integrate-and-fire Model as an Effective description of neuronal activity + +The competing benefits of Noise and Heterogeneity in neural coding +Eric Hunsberger, Matthew Scott, Chris Eliasmith + +More is different - Broken symmetry and the nature of the hierachical structure of science +P.W. Anderson