def _change_subdimensions_images_features(dimension, subdimension, data_scores): context = dash.callback_context.triggered if not context or context[0]["prop_id"].split( ".")[0] == "dimension_images_features": first_subdimension = list(TREE_IMAGES[dimension].keys())[0] option_subdimension = get_options_from_list( list(TREE_IMAGES[dimension].keys())) value_subdimension = list(TREE_IMAGES[dimension].keys())[0] option_sub_subdimension = get_options_from_list( TREE_IMAGES[dimension][first_subdimension]) value_sub_subdimension = TREE_IMAGES[dimension][first_subdimension][0] else: option_subdimension = get_options_from_list( list(TREE_IMAGES[dimension].keys())) value_subdimension = subdimension option_sub_subdimension = get_options_from_list( TREE_IMAGES[dimension][subdimension]) value_sub_subdimension = TREE_IMAGES[dimension][subdimension][0] scores_raw = (pd.DataFrame(data_scores).set_index([ "dimension", "subdimension", "sub_subdimension" ]).loc[(dimension, value_subdimension, value_sub_subdimension)].set_index("algorithm")) scores = (scores_raw.drop( index=scores_raw.index[scores_raw.index == "*"]).sort_values( "r2", ascending=False).round(3)) title = "" for algorithm in scores.index: title += f"The {ALGORITHMS[algorithm]} has a R² of {scores.loc[algorithm, 'r2']} +- {scores.loc[algorithm, 'r2_std']}. " return option_subdimension, value_subdimension, option_sub_subdimension, value_sub_subdimension, title
def _change_channel(dimension, subdimension, sub_subdimension): nb_channel = INFORMATION_TIME_SERIES[dimension][subdimension][ sub_subdimension]["nb_channel"] return [ get_options_from_list(range(nb_channel)), 0, get_options_from_list(range(nb_channel)), 0 ]
def _change_controls_category_features_multivariate(main_category): categories = MAIN_CATEGORIES_TO_CATEGORIES[main_category].copy() for category_to_remove in MULTIVARIATE_CATEGORIES_TO_REMOVE: if category_to_remove in categories: categories.remove(category_to_remove) return get_options_from_list(categories), categories[0]
def _change_controls_category(main_category): if main_category == "All": list_categories = list( pd.Index(MAIN_CATEGORIES_TO_CATEGORIES[main_category]).drop( ["Genetics", "Phenotypic"])) else: list_categories = MAIN_CATEGORIES_TO_CATEGORIES[main_category] return get_options_from_list(["All"] + list_categories), "All"
def _change_subdimensions(dimension, subdimension): context = dash.callback_context.triggered if not context or context[0]["prop_id"].split(".")[0] == "dimension_scalars": first_subdimension = list(TREE_SCALARS[dimension].keys())[0] return ( get_options_from_list(list(TREE_SCALARS[dimension].keys())), list(TREE_SCALARS[dimension].keys())[0], get_options_from_list(TREE_SCALARS[dimension][first_subdimension]), TREE_SCALARS[dimension][first_subdimension][0], ) else: return ( get_options_from_list(list(TREE_SCALARS[dimension].keys())), subdimension, get_options_from_list(TREE_SCALARS[dimension][subdimension]), TREE_SCALARS[dimension][subdimension][0], )
def _change_controls_average(dimension_subdimension_1): if dimension_subdimension_1 in ["MainDimensions", "SubDimensions"]: return { "display": "none" }, get_options_from_list(["average"]), "average" else: average_dimensions_subdimension = {"average": "average"} average_dimensions_subdimension.update(DIMENSIONS_SUBDIMENSIONS) del average_dimensions_subdimension[dimension_subdimension_1] return ({ "display": "block" }, get_options_from_dict(average_dimensions_subdimension), "average")
def _change_category_category(main_category): return get_options_from_list(["All"] + MAIN_CATEGORIES_TO_CATEGORIES[main_category]), "All"
def _change_feature(scalars_data): features = pd.DataFrame(scalars_data).columns.drop(["id", "sex", "chronological_age"] + ETHNICITIES) return get_options_from_list(features), features[0]