def _get_traces(self, interval): """Get traces and spike waveforms.""" k = self.model.n_samples_templates m = self.model traces_interval = select_traces(m.traces, interval, sample_rate=m.sample_rate) # Reorder vertically. out = Bunch(data=traces_interval) out.waveforms = [] def gbc(cluster_id): return self.get_best_channels(cluster_id) for b in _iter_spike_waveforms(interval=interval, traces_interval=traces_interval, model=self.model, supervisor=self.supervisor, color_selector=self.color_selector, n_samples_waveforms=k, get_best_channels=gbc, show_all_spikes=self._show_all_spikes, ): i = b.spike_id # Compute the residual: waveform - amplitude * template. residual = b.copy() template_id = m.spike_templates[i] template = m.get_template(template_id).template amplitude = m.amplitudes[i] residual.data = residual.data - amplitude * template out.waveforms.extend([b, residual]) return out
def _get_traces(self, interval): """Get traces and spike waveforms.""" ns = self.model.n_samples_waveforms m = self.model c = self.channel_vertical_order traces_interval = select_traces(m.traces, interval, sample_rate=m.sample_rate) # Reorder vertically. traces_interval = traces_interval[:, c] def gbc(cluster_id): ch = self.get_best_channels(cluster_id) return ch out = Bunch(data=traces_interval) out.waveforms = [] for b in _iter_spike_waveforms( interval=interval, traces_interval=traces_interval, model=self.model, supervisor=self.supervisor, color_selector=self.color_selector, n_samples_waveforms=ns, get_best_channels=gbc, show_all_spikes=self._show_all_spikes, ): b.channel_labels = m.channel_order[b.channel_ids] out.waveforms.append(b) return out