Ejemplo n.º 1
0
 def get_background_features(self):
     k = max(1, int(self.n_spikes // self.n_spikes_background_features))
     spike_ids = slice(None, None, k)
     b = Bunch()
     b.data = self.all_features[spike_ids]
     m = self.get_feature_lim()
     b.data = _normalize(b.data.copy(), -m, +m)
     b.spike_ids = spike_ids
     b.spike_clusters = self.spike_clusters[spike_ids]
     b.masks = self.all_masks[spike_ids]
     return b
Ejemplo n.º 2
0
    def get_features(self, cluster_id, load_all=False):
        # Overriden to take into account the sparse structure.
        # Only keep spikes belonging to the features spike ids.
        if self.features_spike_ids is not None:
            # All spikes
            spike_ids = self._select_spikes(cluster_id)
            spike_ids = np.intersect1d(spike_ids, self.features_spike_ids)
            # Relative indices of the spikes in the self.features_spike_ids
            # array, necessary to load features from all_features which only
            # contains the subset of the spikes.
            spike_ids_rel = _index_of(spike_ids, self.features_spike_ids)
        else:
            spike_ids = self._select_spikes(cluster_id,
                                            self.n_spikes_features
                                            if not load_all else None)
            spike_ids_rel = spike_ids
        st = self.spike_templates[spike_ids]
        nc = self.n_channels
        nfpc = self.n_features_per_channel
        ns = len(spike_ids)
        f = _densify(spike_ids_rel, self.all_features,
                     self.features_ind[st, :], self.n_channels)
        f = np.transpose(f, (0, 2, 1))
        assert f.shape == (ns, nc, nfpc)
        b = Bunch()

        # Normalize features.
        m = self.get_feature_lim()
        f = _normalize(f, -m, m)

        b.data = f
        b.spike_ids = spike_ids
        b.spike_clusters = self.spike_clusters[spike_ids]
        b.masks = self.all_masks[spike_ids]
        return b
Ejemplo n.º 3
0
    def get_features(self, cluster_id, load_all=False):
        # Overriden to take into account the sparse structure.
        # Only keep spikes belonging to the features spike ids.
        if self.features_spike_ids is not None:
            # All spikes
            spike_ids = self._select_spikes(cluster_id)
            spike_ids = np.intersect1d(spike_ids, self.features_spike_ids)
            # Relative indices of the spikes in the self.features_spike_ids
            # array, necessary to load features from all_features which only
            # contains the subset of the spikes.
            spike_ids_rel = _index_of(spike_ids, self.features_spike_ids)
        else:
            spike_ids = self._select_spikes(
                cluster_id, self.n_spikes_features if not load_all else None)
            spike_ids_rel = spike_ids
        st = self.spike_templates[spike_ids]
        nc = self.n_channels
        nfpc = self.n_features_per_channel
        ns = len(spike_ids)
        f = _densify(spike_ids_rel, self.all_features,
                     self.features_ind[st, :], self.n_channels)
        f = np.transpose(f, (0, 2, 1))
        assert f.shape == (ns, nc, nfpc)
        b = Bunch()

        # Normalize features.
        m = self.get_feature_lim()
        f = _normalize(f, -m, m)

        b.data = f
        b.spike_ids = spike_ids
        b.spike_clusters = self.spike_clusters[spike_ids]
        b.masks = self.all_masks[spike_ids]
        return b
Ejemplo n.º 4
0
 def _select_data(self, cluster_id, arr, n_max=None):
     spike_ids = self._select_spikes(cluster_id, n_max)
     b = Bunch()
     b.data = arr[spike_ids]
     b.spike_ids = spike_ids
     b.spike_clusters = self.spike_clusters[spike_ids]
     b.masks = self.all_masks[spike_ids]
     return b
Ejemplo n.º 5
0
 def _select_data(self, cluster_id, arr, n_max=None):
     spike_ids = self._select_spikes(cluster_id, n_max)
     b = Bunch()
     b.data = arr[spike_ids]
     b.spike_ids = spike_ids
     b.spike_clusters = self.spike_clusters[spike_ids]
     b.masks = self.all_masks[spike_ids]
     return b
Ejemplo n.º 6
0
 def get_background_features(self):
     k = max(1, int(self.n_spikes // self.n_spikes_background_features))
     spike_ids = slice(None, None, k)
     b = Bunch()
     b.data = self.all_features[spike_ids]
     b.spike_ids = spike_ids
     b.spike_clusters = self.spike_clusters[spike_ids]
     b.masks = self.all_masks[spike_ids]
     return b
Ejemplo n.º 7
0
 def get_background_features(self):
     k = max(1, int(self.n_spikes // self.n_spikes_background_features))
     spike_ids = slice(None, None, k)
     b = Bunch()
     b.data = self.all_features[spike_ids]
     b.spike_ids = spike_ids
     b.spike_clusters = self.spike_clusters[spike_ids]
     b.masks = self.all_masks[spike_ids]
     return b