From a7aec1b12f33148cc1d98c1c120093eea06bdefd Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Wed, 21 Nov 2018 12:45:00 +0100 Subject: [PATCH] [chirp data] read the Stimulus from file --- code/read_chirp_data.py | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/code/read_chirp_data.py b/code/read_chirp_data.py index c3afe76..4491779 100644 --- a/code/read_chirp_data.py +++ b/code/read_chirp_data.py @@ -1,5 +1,7 @@ import numpy as np import os +import nixio as nix +from IPython import embed def read_chirp_spikes(dataset): @@ -85,10 +87,37 @@ def read_chirp_times(dataset): return chirp_times +def read_chirp_stimulus(dataset): + base = dataset.split(os.path.sep)[-1] + ".nix" + nix_file = nix.File.open(os.path.join(dataset, base), nix.FileMode.ReadOnly) + b = nix_file.blocks[0] + data = {} + for t in b.tags: + if "Chirps" in t.name: + stims = [] + index = int(t.name.split("_")[-1]) + df = t.metadata["RePro-Info"]["settings"]["deltaf"] + cs = t.metadata["RePro-Info"]["settings"]["chirpsize"] + stim_da = t.references["GlobalEFieldStimulus"] + si = stim_da.dimensions[0].sampling_interval + for mt in b.multi_tags: + if mt.positions[0] >= t.position[0] and \ + mt.positions[0] < (t.position[0] + t.extent[0]): + break + for i in range(len(mt.positions)): + start_index = int(mt.positions[i] / si) + end_index = int((mt.positions[i] + mt.extents[i]) / si) - 1 + stim = stim_da[start_index:end_index] + time = stim_da.dimensions[0].axis(len(stim)) + mt.positions[i] + stims.append((time, stim)) + data[(index, df, cs)] = stims + nix_file.close() + return data + if __name__ == "__main__": data_dir = "../data" - dataset = "2018-11-09-ad-invivo-1" - spikes = load_chirp_spikes(os.path.join(data_dir, dataset)) - chirp_times = load_chirp_times(os.path.join(data_dir, dataset)) - chirp_eod = load_chirp_eod(os.path.join(data_dir, dataset)) - + dataset = "2018-11-20-ad-invivo-1" + #spikes = load_chirp_spikes(os.path.join(data_dir, dataset)) + #chirp_times = load_chirp_times(os.path.join(data_dir, dataset)) + #chirp_eod = load_chirp_eod(os.path.join(data_dir, dataset)) + stim = read_chirp_stimulus(os.path.join(data_dir, dataset))