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) self.spikes_selected = spikes self.clusters_selected = clusters
def get_spiketimes(self, spikes=None, clusters=None): if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) if spikes is None: spikes = self.spikes_selected spiketimes = getattr(self, 'spiketimes', getattr(self, 'spiketimes_res', None)) return select(spiketimes, spikes)
def get_masks(self, spikes=None, full=None, clusters=None): if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) if spikes is None: spikes = self.spikes_selected if not full: masks = self.masks else: masks = self.masks_full return select(masks, spikes)
def get_features(self, spikes=None, clusters=None): if self.spikes_selected_table is None: return None # Special case: return the already-selected values from the cache. if spikes is None and clusters is None: features = self.spikes_selected_table['features'] values = self.process_features(features) return pandaize(values, self.spikes_selected) # Normal case. if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) if spikes is None: 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
def get_masks(self, spikes=None, full=None, clusters=None): if self.spikes_selected_table is None: return None # Special case: return the already-selected values from the cache. if spikes is None and clusters is None: masks = self.spikes_selected_table['masks'] if full: values = self.process_masks_full(masks) else: values = self.process_masks(masks) return pandaize(values, self.spikes_selected) # Normal case. if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) if spikes is None: spikes = self.spikes_selected if not full: masks = self.masks else: masks = self.masks_full return select(masks, spikes)
def get_clusters(self, spikes=None, clusters=None): if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) if spikes is None: spikes = self.spikes_selected return select(self.clusters, spikes)
def select(self, spikes=None, clusters=None): if clusters is not None: spikes = get_spikes_in_clusters(clusters, self.clusters) self.spikes_selected = spikes self.clusters_selected = clusters