def get_waveforms(self, spikes=None, clusters=None): if self.waveforms_selected is None: return None # Special case: return the already-selected values from the cache. if spikes is None and clusters is None: values = self.process_waveforms(self.waveforms_selected) return pandaize(values, self.spikes_waveforms) # Normal case. if self.spikes_selected_table is None: return None if spikes is not None: return select(self.waveforms, spikes) else: if clusters is None: clusters = self.clusters_selected if clusters is not None: spikes = get_some_spikes_in_clusters(clusters, self.clusters, counter=self.counter, nspikes_max_expected=self.userpref['waveforms_nspikes_max_expected'], nspikes_per_cluster_min=self.userpref['waveforms_nspikes_per_cluster_min']) else: spikes = self.spikes_selected return select(self.waveforms, spikes)
def get_waveforms(self, spikes=None, clusters=None): if spikes is not None: return select(self.waveforms, spikes) else: if clusters is None: clusters = self.clusters_selected if clusters is not None: spikes = get_some_spikes_in_clusters(clusters, self.clusters, counter=self.counter, nspikes_max_expected=self.userpref['waveforms_nspikes_max_expected'], nspikes_per_cluster_min=self.userpref['waveforms_nspikes_per_cluster_min']) else: spikes = self.spikes_selected return select(self.waveforms, spikes)
def get_some_features(self, clusters=None): """Return the features for a subset of all spikes: a large number of spikes from any cluster, and a controlled subset of the selected clusters.""" if clusters is None: clusters = self.clusters_selected if clusters is not None: spikes_background = get_some_spikes(self.clusters, nspikes_max=self.userpref['features_nspikes_background_max'],) spikes_clusters = get_some_spikes_in_clusters( clusters, self.clusters, counter=self.counter, nspikes_max_expected=self.userpref[ 'features_nspikes_selection_max'], nspikes_per_cluster_min=self.userpref[ 'features_nspikes_per_cluster_min']) spikes = np.union1d(spikes_background, spikes_clusters) else: spikes = self.spikes_selected return select(self.features, spikes)
def select(self, spikes=None, clusters=None): if clusters is not None: if not hasattr(clusters, '__len__'): clusters = [clusters] spikes = get_spikes_in_clusters(clusters, self.clusters) # HDD access here: get the portion of the table with the requested # clusters (cache). It is very quick to access the different columns # from this in-memory table later. if spikes is not None: self.spikes_selected_table = self.spike_table[spikes] # Select waveforms too. self.spikes_waveforms = get_some_spikes_in_clusters(clusters, self.clusters, counter=self.counter, nspikes_max_expected=self.userpref['waveforms_nspikes_max_expected'], nspikes_per_cluster_min=self.userpref['waveforms_nspikes_per_cluster_min']) self.waveforms_selected = self.waveforms[0][self.spikes_waveforms]['waveform_filtered'] else: self.spikes_selected_table = None self.waveforms_selected = None self.spikes_selected = spikes self.clusters_selected = clusters