Source code for ClearMap.Analysis.vasculature.annotation_utils
import numpy as np
from ClearMap.Alignment import Annotation as ano
[docs]
def get_sub_regions(reg_list, region_list, key='id'):
    """
    Get regions that share part of the name
    Parameters
    ----------
    reg_list
    region_list
    Returns
    -------
    """
    regions = []
    main_region_name = ano.find(region_list[0][0], key=key)['name']
    for region in reg_list.keys():
        reg_name = ano.find_name(region, key=key)
        if main_region_name in reg_name:
            for se in reg_list[region]:
                reg_name = ano.find_name(se, key=key)
                regions.append(reg_name)
    return regions 
# def group_region(regions, struct_name, features, extra_reg_ids, struct_acronyms=None):
#     print(struct_name)
#     inds = []
#     for i, r in enumerate(regions):
#         id_, level = r[0]
#         n = ano.find(id_, key='id')['acronym']
#         if struct_acronyms is None:
#             struct_acronyms = [struct_name.upper()]
#         for acro in struct_acronyms:
#             if acro in n:
#                 print(n)
#                 inds.append(i)
#     grouped_regions = np.mean(features[:, inds, :], axis=1)
#     grouped_regions = np.expand_dims(grouped_regions, axis=1)
#     features = np.delete(features, inds, axis=1)
#     features = np.concatenate((features, grouped_regions), axis=1)
#     regions = np.delete(regions, inds, axis=0)
#     regions = np.concatenate((regions, np.expand_dims(np.array(extra_reg_ids), axis=0)))
#     return features, regions
[docs]
def get_region_volume(region_leaves, atlas):  # FIXME: move to annotation
    return sum([np.sum(atlas == leaf[0]) for leaf in region_leaves])