Source code for engram.procedural.data


import numpy as np
[docs]def select(feature,time,settings,prev_len = None): selection = { "events": events, "trials": trials } # Get the function from switcher dictionary func = selection.get(settings['roi'], lambda: "Invalid event parser") # Execute the function return func(feature,time,settings,prev_len)
[docs]def events(feature,time,settings,prev_len): bounds = settings['roi_bounds'] upper_index = (np.abs(settings['t_feat'] - (time + bounds[1]))).argmin() lower_index = (np.abs(settings['t_feat'] - (time + bounds[0]))).argmin() diff_one = upper_index-lower_index if prev_len: if prev_len != diff_one: diff_two = prev_len - diff_one if diff_one % 2: center = lower_index+diff_one/2 offset = (prev_len+1)/2 upper_index = center + offset lower_index = center - offset upper_index += diff_two else: upper_index += diff_two if np.ndim(feature) == 2: section = feature[lower_index:upper_index,:] elif np.ndim(feature) == 3: section = feature[:,lower_index:upper_index,:] prev_len = upper_index-lower_index return section,prev_len
[docs]def trials(): print('trial segmentation not available')