def get_fall(data_file: File, params: MotionParams): lever = devibrate_rec(get_trials(data_file, params)) pre_value = lever.values[:, :lever._pre // 2].mean(axis=1, keepdims=True) lever_off = np.argmax(lever.values[:, lever._pre:] <= pre_value, axis=1) + lever._pre lever_top = int(np.median([np.argmax(x[lever._pre: y]) for x, y in zip(lever.values, lever_off) if y > lever._pre])) + lever._pre lever_off = int(np.median(lever_off)) return reliability(lever.values[:, lever_top: lever_off])
def make_sample_neurons(spike_framerate: Tuple[Dict[str, np.ndarray], float], log: SparseRec, params: Dict[str, float]) -> SparseRec: lever = log.center_on("motion", **params).fold_trials() lever.values = np.squeeze(lever.values, 0) lever.axes = lever.axes[1:] filtered = devibrate_rec(lever, params) spikes, frame_rate = spike_framerate return fold_by(DataFrame.load(spikes), filtered, frame_rate, True)
def make_trial_log(log: SparseRec, params: Dict[str, float], center: str = "motion") -> SparseRec: lever = log.center_on(center, **params).fold_trials() lever.values = np.squeeze(lever.values, 0) lever.axes = lever.axes[1:] return devibrate_rec(lever, params)
def fall_spread(data_file: File, params: MotionParams): lever = devibrate_rec(get_trials(data_file, params)) pre_value = lever.values[:, :lever._pre // 2].mean(axis=1, keepdims=True) lever_off = np.argmax(lever.values[:, lever._pre:] <= pre_value, axis=1) return np.std(lever_off)
def get_rise(data_file: File, params: MotionParams): lever = devibrate_rec(get_trials(data_file, params)) lever_top = int(np.median(np.argmax(lever.values[:, lever._pre:], axis=1))) + lever._pre return reliability(lever.values[:, lever._pre // 2: lever_top])
def get_initial(data_file: File, params: MotionParams): lever = devibrate_rec(get_trials(data_file, params)) pre_value = lever.values[:, :lever._pre // 2].mean(axis=1, keepdims=True) lever_off = int(np.median(np.argmax(lever.values[:, lever._pre:] <= pre_value, axis=1))) + lever._pre return reliability(lever.values[:, lever._pre // 2: lever_off])