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
|
from IPython import embed
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
data_folder = "data"
|
||||||
|
|
||||||
|
|
||||||
def append_settings(section, sec_name, sec_type, settings):
|
def append_settings(section, sec_name, sec_type, settings):
|
||||||
section = section.create_section(sec_name, sec_type)
|
section = section.create_section(sec_name, sec_type)
|
||||||
for k in settings.keys():
|
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):
|
def simulate_responses(stimulus_params, model_params, repeats=10, deltaf=20):
|
||||||
cell_params = model_params.copy()
|
cell_params = model_params.copy()
|
||||||
cell = cell_params["cell"]
|
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["cell"]
|
||||||
del cell_params["EODf"]
|
del cell_params["EODf"]
|
||||||
conditions = ["other", "self"]
|
conditions = ["other", "self"]
|
||||||
@ -193,8 +196,6 @@ def main():
|
|||||||
|
|
||||||
for cell_id in range(len(models)):
|
for cell_id in range(len(models)):
|
||||||
model_params = models[cell_id]
|
model_params = models[cell_id]
|
||||||
|
|
||||||
|
|
||||||
baseline_spikes = get_baseline_response(model_params, duration=30)
|
baseline_spikes = get_baseline_response(model_params, duration=30)
|
||||||
save_baseline_response( "cell_%s.nix" % model_params["cell"], "baseline response", baseline_spikes, model_params)
|
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"])
|
1./stimulus_params["chirp_frequency"])
|
||||||
stimulus_params["chirp_times"] = chirp_times
|
stimulus_params["chirp_times"] = chirp_times
|
||||||
simulate_responses(stimulus_params, model_params, repeats=25, deltaf=deltaf)
|
simulate_responses(stimulus_params, model_params, repeats=25, deltaf=deltaf)
|
||||||
exit()
|
exit() # the first cell only for now!
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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)
|
despine(ax, ["top", "bottom", "left", "right"], True)
|
||||||
ax.set_ylim([-1.25, 1.25])
|
ax.set_ylim([-1.25, 1.25])
|
||||||
ax.legend(ncol=2, loc=(0.01, -0.5), fontsize=7, markerscale=0.5, frameon=False)
|
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)
|
# 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)
|
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)
|
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:
|
if i > 0:
|
||||||
ax.set_yticklabels([])
|
ax.set_yticklabels([])
|
||||||
despine(ax, ["top", "right"], False)
|
despine(ax, ["top", "right"], False)
|
||||||
|
"""
|
||||||
# for all other contrast plot the firing rate alone
|
# 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]
|
contrast = all_contrasts[j]
|
||||||
t, rates, _ = get_firing_rate(block_map, current_df, contrast, condition)
|
t, rates, _ = get_firing_rate(block_map, current_df, contrast, condition)
|
||||||
avg_resp = np.mean(rates, axis=0)
|
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:
|
if i > 0:
|
||||||
ax.set_yticklabels([])
|
ax.set_yticklabels([])
|
||||||
despine(ax, ["top", "right"], False)
|
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:
|
if i == 1:
|
||||||
ax.set_xlabel("time [ms]")
|
ax.set_xlabel("time [ms]")
|
||||||
if i == 0:
|
if i == 0:
|
||||||
ax.set_ylabel("frequency [Hz]", va="center")
|
ax.set_ylabel("frequency [Hz]", va="center")
|
||||||
ax.yaxis.set_label_coords(-0.45, 3.5)
|
ax.yaxis.set_label_coords(-0.45, 3.5)
|
||||||
|
|
||||||
name = figure_name if figure_name is not None else "chirp_responses.pdf"
|
name = figure_name if figure_name is not None else "chirp_responses.pdf"
|
||||||
name = (name + ".pdf") if ".pdf" not in name else name
|
name = (name + ".pdf") if ".pdf" not in name else name
|
||||||
plt.savefig(os.path.join(figure_folder, name))
|
plt.savefig(os.path.join(figure_folder, name))
|
||||||
plt.close()
|
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=[]):
|
def process_cell(filename, dfs=[], contrasts=[], conditions=[]):
|
||||||
nf = nix.File.open(filename, nix.FileMode.ReadOnly)
|
nf = nix.File.open(filename, nix.FileMode.ReadOnly)
|
||||||
block_map, all_contrasts, all_dfs, all_conditions = sort_blocks(nf)
|
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"])
|
baseline_spikes = read_baseline(block_map["baseline"])
|
||||||
else:
|
else:
|
||||||
print("ERROR: no baseline data for file %s!" % filename)
|
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)
|
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)
|
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()
|
nf.close()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user