Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
if start_frame is None:
start_frame = 0
if end_frame is None:
end_frame = np.Inf
st = self._spiketrains[unit_id]
inds = np.where((start_frame <= (st.times * self._recording.sample_rate)) &
((st.times * self._recording.sample_rate) < end_frame))
return (st.times[inds] * self._recording.sample_rate).magnitude
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
spikes = self.dataio.get_spikes(seg_num=0, chan_grp=self.chan_grp, i_start=None, i_stop=None)
spikes = spikes[spikes['cluster_label'] == unit_id]
spike_times = spikes['index']
if start_frame is not None:
spike_times = spike_times[spike_times >= start_frame]
if end_frame is not None:
spike_times = spike_times[spike_times < end_frame]
return spike_times.copy() # copy avoid reference to the unerlying memmap
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
train = self._spike_clusters[unit_id].get_actual_spike_train().spikes
if start_frame is None:
start_frame = 0
if end_frame is None:
end_frame = np.Inf
idxs = np.where((start_frame <= train) & (train < end_frame))
return train[idxs]
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
start_frame = start_frame or 0
end_frame = end_frame or np.infty
st = self._spike_trains[unit_id]
return st[(st >= start_frame) & (st < end_frame)]
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
# this is a string
# neo_unit_id = self.neo_reader.header['unit_channels']['id'][unit_id]
# this is an int
unit_index = unit_id
# in neo can be a sample, or hiher sample rate or even float
spike_timestamps = self.neo_reader.get_spike_timestamps(block_index=self.block_index, seg_index=self.seg_index,
unit_index=unit_index, t_start=None, t_stop=None)
if start_frame is not None:
spike_timestamps = spike_timestamps[spike_timestamps >= start_frame]
if end_frame is not None:
@check_valid_unit_id
def get_unit_spike_feature_names(self, unit_id):
return super().get_unit_spike_feature_names(unit_id) + ["raw_traces", "filtered_traces", "cluster_features"]
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
start_frame = start_frame or 0
end_frame = end_frame or np.infty
st = self._spike_trains[unit_id]
return st[(st >= start_frame) & (st < end_frame)]
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
sorting_id = self._unit_map[unit_id]['sorting_id']
unit_id_sorting = self._unit_map[unit_id]['unit_id']
return self._sortings[sorting_id].get_unit_spike_train(unit_id_sorting, start_frame, end_frame)
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
if start_frame is None:
start_frame = 0
if end_frame is None:
end_frame = np.Inf
times = self._spiketrains[self.get_unit_ids().index(unit_id)]
inds = np.where((start_frame <= times) & (times < end_frame))
return times[inds]
@check_valid_unit_id
def get_unit_spike_train(self, unit_id, start_frame=None, end_frame=None):
start_frame, end_frame = self._cast_start_end_frame(start_frame, end_frame)
if start_frame is None:
start_frame = 0
if end_frame is None:
end_frame = np.Inf
times = self._times[self.get_unit_indices(unit_id)]
inds = np.where((start_frame <= times) & (times < end_frame))
return times[inds]