Esempio n. 1
0
 def split_clusters(self, clusters, clusters_old, cluster_groups, 
     cluster_colors, clusters_new):
     if not hasattr(clusters, '__len__'):
         clusters = [clusters]
     spikes = get_indices(clusters_old)
     # Find groups and colors of old clusters.
     cluster_indices_old = np.unique(clusters_old)
     cluster_indices_new = np.unique(clusters_new)
     # Get group and color of the new clusters, from the old clusters.
     groups = self.loader.get_cluster_groups(cluster_indices_old)
     # colors = self.loader.get_cluster_colors(cluster_indices_old)
     # Add clusters.
     for cluster_new, group in zip(cluster_indices_new, 
             groups):
         self.loader.add_cluster(cluster_new, group, random_color())
     # Set the new clusters to the corresponding spikes.
     self.loader.set_cluster(spikes, clusters_new)
     # Remove empty clusters.
     clusters_empty = self.loader.remove_empty_clusters()
     self.loader.unselect()
     clusters_to_select = sorted(set(cluster_indices_old).union(
             set(cluster_indices_new)) - set(clusters_empty))
     return dict(clusters_to_split=clusters,
                 clusters_split=get_array(cluster_indices_new),
                 clusters_empty=clusters_empty)
Esempio n. 2
0
 def split_clusters(self, clusters, clusters_old, cluster_groups, 
     cluster_colors, clusters_new):
     if not hasattr(clusters, '__len__'):
         clusters = [clusters]
     spikes = get_indices(clusters_old)
     # Find groups and colors of old clusters.
     cluster_indices_old = np.unique(clusters_old)
     cluster_indices_new = np.unique(clusters_new)
     # Get group and color of the new clusters, from the old clusters.
     groups = self.loader.get_cluster_groups(cluster_indices_old)
     # colors = self.loader.get_cluster_colors(cluster_indices_old)
     # Add clusters.
     self.loader.add_clusters(cluster_indices_new, 
         # HACK: take the group of the first cluster for all new clusters
         get_array(groups)[0]*np.ones(len(cluster_indices_new)),
         random_color(len(cluster_indices_new)))
     # Set the new clusters to the corresponding spikes.
     self.loader.set_cluster(spikes, clusters_new)
     # Remove empty clusters.
     clusters_empty = self.loader.remove_empty_clusters()
     self.loader.unselect()
     clusters_to_select = sorted(set(cluster_indices_old).union(
             set(cluster_indices_new)) - set(clusters_empty))
     return dict(clusters_to_split=clusters,
                 clusters_split=get_array(cluster_indices_new),
                 clusters_empty=clusters_empty)
Esempio n. 3
0
 def _wizard_change_candidate_color(self):
     candidate = self.wizard.current_candidate()
     target = self.wizard.current_target()
     # color = self.loader.get_cluster_color(candidate)
     return ('_cluster_color_changed', (
         candidate,
         random_color(),
     ))
Esempio n. 4
0
 def add_group(self, name, channels=[]):
     color = random_color()
     group = self.model.add_group(name, color)
     groupidx = group.groupidx()
     # Signal.
     log.debug("Adding group {0:s}.".format(name))
     self.groupAdded.emit(groupidx, name, color)
     # Move the selected channels to the new group.
     if channels:
         self.move_channels(channels, groupidx)
     self.expandAll()
     return groupidx
Esempio n. 5
0
 def add_group(self, name, channels=[]):
     color = random_color()
     group = self.model.add_group(name, color)
     groupidx = group.groupidx()
     # Signal.
     log.debug("Adding group {0:s}.".format(name))
     self.groupAdded.emit(groupidx, name, color)
     # Move the selected channels to the new group.
     if channels:
         self.move_channels(channels, groupidx)
     self.expandAll()
     return groupidx
Esempio n. 6
0
 def merge_clusters(self, clusters_old, cluster_groups, cluster_colors,
     cluster_merged):
     # Get spikes in clusters to merge.
     # spikes = self.loader.get_spikes(clusters=clusters_to_merge)
     spikes = get_indices(clusters_old)
     clusters_to_merge = get_indices(cluster_groups)
     group = np.max(get_array(cluster_groups))
     # color_old = get_array(cluster_colors)[0]
     color_new = random_color()
     self.loader.add_cluster(cluster_merged, group, color_new)
     # Set the new cluster to the corresponding spikes.
     self.loader.set_cluster(spikes, cluster_merged)
     # Remove old clusters.
     for cluster in clusters_to_merge:
         self.loader.remove_cluster(cluster)
     self.loader.unselect()
     return dict(clusters_to_merge=clusters_to_merge,
                 cluster_merged=cluster_merged,
                 cluster_merged_colors=(color_new, color_new),)
Esempio n. 7
0
 def merge_clusters(self, clusters_old, cluster_groups, cluster_colors,
     cluster_merged):
     # Get spikes in clusters to merge.
     # spikes = self.loader.get_spikes(clusters=clusters_to_merge)
     spikes = get_indices(clusters_old)
     clusters_to_merge = get_indices(cluster_groups)
     group = np.max(get_array(cluster_groups))
     # color_old = get_array(cluster_colors)[0]
     color_new = random_color()
     self.loader.add_cluster(cluster_merged, group, color_new)
     # Set the new cluster to the corresponding spikes.
     self.loader.set_cluster(spikes, cluster_merged)
     # Remove old clusters.
     for cluster in clusters_to_merge:
         self.loader.remove_cluster(cluster)
     self.loader.unselect()
     return dict(clusters_to_merge=clusters_to_merge,
                 cluster_merged=cluster_merged,
                 cluster_merged_colors=(color_new, color_new),)
Esempio n. 8
0
 def _wizard_change_candidate_color(self):
     candidate = self.wizard.current_candidate()
     target = self.wizard.current_target()
     # color = self.loader.get_cluster_color(candidate)
     return ('_cluster_color_changed', (candidate, random_color(),))