def read_groups_labels(colors): groups_fname = op.join(mu.get_parent_fol(mu.get_user_fol()), '{}_groups.csv'.format(bpy.context.scene.atlas)) if not op.isfile(groups_fname): return {} groups = defaultdict(list) # OrderedDict() # defaultdict(list) color_ind = 0 for line in mu.csv_file_reader(groups_fname): group_name = line[0] group_color = line[1] labels = line[2:] if group_name[0] == '#': continue groups[group_name] = [] for label in labels: # group_color = cu.name_to_rgb(colors[color_ind]) groups[group_name].append(dict(name=label, color=cu.name_to_rgb(group_color))) color_ind += 1 order_groups = OrderedDict() groups_names = sorted(list(groups.keys())) for group_name in groups_names: order_groups[group_name] = groups[group_name] return order_groups
def color_manually(): ColoringMakerPanel.what_is_colored.add(WIC_MANUALLY) init_activity_map_coloring('FMRI') subject_fol = mu.get_user_fol() objects_names, colors, data = defaultdict(list), defaultdict(list), defaultdict(list) for line in mu.csv_file_reader(op.join(subject_fol, 'coloring', '{}.csv'.format(bpy.context.scene.coloring_files))): obj_name, color_name = line[0], line[1:] if obj_name[0] == '#': continue if isinstance(color_name, list) and len(color_name) == 1: color_name = color_name[0] obj_type = mu.check_obj_type(obj_name) if isinstance(color_name, str) and color_name.startswith('mark'): import filter_panel filter_panel.filter_roi_func(obj_name, mark=color_name) else: if isinstance(color_name, str): color_rgb = cu.name_to_rgb(color_name) # Check if the color is already in RBG elif len(color_name) == 3: color_rgb = color_name else: print('Unrecognize color! ({})'.format(color_name)) continue color_rgb = list(map(float, color_rgb)) if obj_type is not None: objects_names[obj_type].append(obj_name) colors[obj_type].append(color_rgb) data[obj_type].append(1.) color_objects(objects_names, colors, data) if op.isfile(op.join(subject_fol, 'coloring', '{}_legend.jpg'.format(bpy.context.scene.coloring_files))): cmd = '{} -m src.preproc.electrodes_preproc -s {} -a {} -f show_labeling_coloring'.format( bpy.context.scene.python_cmd, mu.get_user(), bpy.context.scene.atlas) print('Running {}'.format(cmd)) mu.run_command_in_new_thread(cmd, False)