diff --git a/punit_responses.py b/punit_responses.py index cf1c3c8..efa2be2 100644 --- a/punit_responses.py +++ b/punit_responses.py @@ -8,6 +8,9 @@ from model import simulate, load_models from IPython import embed import matplotlib.pyplot as plt +data_folder = "data" + + def append_settings(section, sec_name, sec_type, settings): section = section.create_section(sec_name, sec_type) for k in settings.keys(): @@ -140,7 +143,7 @@ def get_pre_stimulus(eodf, duration=2, df=20, contrast=20, dt=1./20000): def simulate_responses(stimulus_params, model_params, repeats=10, deltaf=20): cell_params = model_params.copy() cell = cell_params["cell"] - filename = "cell_%s.nix" % cell + filename = os.path.join(data_folder, "cell_%s.nix" % cell) del cell_params["cell"] del cell_params["EODf"] conditions = ["other", "self"] @@ -193,8 +196,6 @@ def main(): for cell_id in range(len(models)): model_params = models[cell_id] - - baseline_spikes = get_baseline_response(model_params, duration=30) save_baseline_response( "cell_%s.nix" % model_params["cell"], "baseline response", baseline_spikes, model_params) @@ -209,7 +210,7 @@ def main(): 1./stimulus_params["chirp_frequency"]) stimulus_params["chirp_times"] = chirp_times simulate_responses(stimulus_params, model_params, repeats=25, deltaf=deltaf) - exit() + exit() # the first cell only for now! if __name__ == "__main__": diff --git a/response_discriminability.py b/response_discriminability.py index 3a4fb66..96d8d05 100644 --- a/response_discriminability.py +++ b/response_discriminability.py @@ -130,7 +130,7 @@ def create_response_plot(block_map, all_dfs, all_contrasts, all_conditions, curr despine(ax, ["top", "bottom", "left", "right"], True) ax.set_ylim([-1.25, 1.25]) ax.legend(ncol=2, loc=(0.01, -0.5), fontsize=7, markerscale=0.5, frameon=False) - + """ # for the largest contrast plot the raster with psth, only a section of the data (e.g. 1s) t, rates, spikes = get_firing_rate(block_map, current_df, all_contrasts[0], condition, kernel_width=0.001) avg_resp = np.mean(rates, axis=0) @@ -153,9 +153,9 @@ def create_response_plot(block_map, all_dfs, all_contrasts, all_conditions, curr if i > 0: ax.set_yticklabels([]) despine(ax, ["top", "right"], False) - + """ # for all other contrast plot the firing rate alone - for j in range(1, len(all_contrasts)): + for j in range(0, len(all_contrasts)): contrast = all_contrasts[j] t, rates, _ = get_firing_rate(block_map, current_df, contrast, condition) avg_resp = np.mean(rates, axis=0) @@ -177,18 +177,32 @@ def create_response_plot(block_map, all_dfs, all_contrasts, all_conditions, curr if i > 0: ax.set_yticklabels([]) despine(ax, ["top", "right"], False) + if i == 2: + ax.text(max_time + 0.025*max_time, 350, "c=%.3f" % all_contrasts[j], + color="#d62728", ha="left", fontsize=7) + if i == 1: ax.set_xlabel("time [ms]") if i == 0: ax.set_ylabel("frequency [Hz]", va="center") ax.yaxis.set_label_coords(-0.45, 3.5) - + name = figure_name if figure_name is not None else "chirp_responses.pdf" name = (name + ".pdf") if ".pdf" not in name else name plt.savefig(os.path.join(figure_folder, name)) plt.close() +def chrip_detection_soliloquy(spikes, chirp_times, kernel_width=0.0005): + # + pass + + +def chirp_detection(block_map, all_dfs, all_contrasts, all_conditions, current_df=None, current_condition=None): + + pass + + def process_cell(filename, dfs=[], contrasts=[], conditions=[]): nf = nix.File.open(filename, nix.FileMode.ReadOnly) block_map, all_contrasts, all_dfs, all_conditions = sort_blocks(nf) @@ -196,12 +210,12 @@ def process_cell(filename, dfs=[], contrasts=[], conditions=[]): baseline_spikes = read_baseline(block_map["baseline"]) else: print("ERROR: no baseline data for file %s!" % filename) - fig_name = filename.split(".nix")[0] + "_df_20Hz.pdf" + fig_name = filename.split(os.path.sep)[-1].split(".nix")[0] + "_df_20Hz.pdf" create_response_plot(block_map, all_dfs, all_contrasts, all_conditions, 20, figure_name=fig_name) - fig_name = filename.split(".nix")[0] + "_df_-100Hz.pdf" + fig_name = filename.split(os.path.sep)[-1].split(".nix")[0] + "_df_-100Hz.pdf" create_response_plot(block_map, all_dfs, all_contrasts, all_conditions, -100, figure_name=fig_name) - - + chirp_detection(block_map, all_dfs, all_contrasts, all_conditions) + nf.close()