def save_labels_coloring(subject, atlas, n_jobs=2): ret = False coloring_dir = op.join(MMVT_DIR, subject, 'coloring') utils.make_dir(coloring_dir) coloring_fname = op.join(coloring_dir, 'labels_{}_coloring.csv'.format(atlas)) coloring_names_fname = op.join(coloring_dir, 'labels_{}_colors_names.csv'.format(atlas)) try: labels = lu.read_labels(subject, SUBJECTS_DIR, atlas, n_jobs=n_jobs) colors_rgb_and_names = cu.get_distinct_colors_and_names() labels_colors_rgb, labels_colors_names = {}, {} for label in labels: label_inv_name = lu.get_label_hemi_invariant_name(label.name) if label_inv_name not in labels_colors_rgb: labels_colors_rgb[label_inv_name], labels_colors_names[label_inv_name] = next(colors_rgb_and_names) with open(coloring_fname, 'w') as colors_file, open(coloring_names_fname, 'w') as col_names_file: for label in labels: label_inv_name = lu.get_label_hemi_invariant_name(label.name) color_rgb = labels_colors_rgb[label_inv_name] color_name = labels_colors_names[label_inv_name] colors_file.write('{},{},{},{}\n'.format(label.name, *color_rgb)) col_names_file.write('{},{}\n'.format(label.name, color_name)) ret = op.isfile(coloring_fname) except: print('Error in save_labels_coloring!') print(traceback.format_exc()) return ret
def get_rois_colors(subject, atlas, rois): not_white_rois = set(filter(lambda r:'white' not in r.lower(), rois)) white_rois = rois - not_white_rois not_white_rois = sorted(list(not_white_rois)) colors = cu.get_distinct_colors_and_names() lables_colors_rgbs_fname = op.join(MMVT_DIR, subject, 'coloring', 'labels_{}_coloring.csv'.format(atlas)) lables_colors_names_fname = op.join(MMVT_DIR, subject, 'coloring', 'labels_{}_colors_names.csv'.format(atlas)) labels_colors_exist = op.isfile(lables_colors_rgbs_fname) and op.isfile(lables_colors_names_fname) rois_colors_rgbs, rois_colors_names = OrderedDict(), OrderedDict() if not labels_colors_exist: print('No labels coloring file!') else: labels_colors_rgbs = np.genfromtxt(lables_colors_rgbs_fname, dtype=str, delimiter=',') labels_colors_names = np.genfromtxt(lables_colors_names_fname, dtype=str, delimiter=',') for roi in not_white_rois: if labels_colors_exist: roi_inds = np.where(labels_colors_rgbs[:, 0] == '{}-rh'.format(roi))[0] if len(roi_inds) > 0: color_rgb = labels_colors_rgbs[roi_inds][0, 1:].tolist() color_name = labels_colors_names[roi_inds][0, 1] else: color_rgb, color_name = next(colors) else: color_rgb, color_name = next(colors) rois_colors_rgbs[roi], rois_colors_names[roi] = color_rgb, color_name for white_roi in white_rois: rois_colors_rgbs[white_roi], rois_colors_names[white_roi] = cu.name_to_rgb('white').tolist(), 'white' return rois_colors_rgbs, rois_colors_names
def create_electrodes_groups_coloring(subject, bipolar, coloring_fname='electrodes_groups_coloring.csv'): electrodes, groups = get_electrodes_groups(subject, bipolar) colors_rgb_and_names = cu.get_distinct_colors_and_names(len(groups) - 1, boynton=True) group_colors = dict() coloring_fname = op.join(MMVT_DIR, subject, 'coloring', coloring_fname) coloring_names_fname = op.join(MMVT_DIR, subject, 'coloring', 'electrodes_groups_coloring_names.csv') with open(coloring_names_fname, 'w') as colors_names_file: for group, (color_rgb, color_name) in zip(groups, colors_rgb_and_names): if 'ref' in group.lower(): continue group_colors[group] = color_rgb colors_names_file.write('{},{}\n'.format(group, color_name)) with open(coloring_fname, 'w') as colors_file: for elc in electrodes: if 'ref' in elc.lower(): continue elc_group = utils.elec_group(elc, bipolar) colors_file.write('{},{},{},{}\n'.format(elc, *group_colors[elc_group]))