add data pathto simulation, put contrasts into response figure
This commit is contained in:
parent
79837f6117
commit
a208965344
@ -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__":
|
||||
|
@ -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()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user