import os
import pandas as pd
import seaborn as sns
from hbn.constants import Defaults
from hbn.visualization import visualize
import warnings
warnings.filterwarnings("ignore")
%load_ext autoreload
%autoreload 2
%matplotlib inline
# pio.renderers.default = 'iframe'
import ipywidgets as widgets # interactive display
%config InlineBackend.figure_format = 'svg' # other available formats are: 'retina', 'png', 'jpeg', 'pdf'Child Measures - Language Tasks
from hbn.data.make_dataset import make_summary
# load model data
#MODEL_DIR = os.path.join(Defaults.MODEL_DIR, '2022-11-24_14:38:36.039822')
MODEL_DIR = os.path.join(Defaults.MODEL_DIR, '2022-12-12_17:48:27.413146')
df_classify = pd.read_csv(os.path.join(MODEL_DIR, 'classifier-all-phenotypic-models-performance.csv'))
df_classify['data'] = df_classify['data'].map({'model-data': 'null', 'model-null': 'data'})
df_feature = pd.read_csv(os.path.join(MODEL_DIR, 'classifier-feature_importance.csv'))
participant_ids = df_classify['participants'].str.split('-').iloc[0]
dx_participants = make_summary(save=False).merge(pd.DataFrame(participant_ids, columns=['Identifiers']), on='Identifiers')
print(dx_participants['DX_01'].unique())['ADHD-Combined Type' 'No Diagnosis Given' 'ADHD-Inattentive Type'
'ADHD-Hyperactive/Impulsive Type'
'Other Specified Attention-Deficit/Hyperactivity Disorder'
'Unspecified Attention-Deficit/Hyperactivity Disorder']
# set plotting style
visualize.plotting_style()df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Child Measures') &
(df_classify['domains']=='Language Tasks')]
visualize.predictive_modeling(df=df1)Parent Measures - Demographics
measures = ['Affective Reactivity Index-Parent',
'Autism Spectrum Screening Questionnaire',
'Barratt Simplified Measure of Social Status',
'Child Behavior Checklist', 'Child Mind Institute Symptom Checker',
'Demographics',
'Extended Strengths and Weaknesses Assessment of Normal Behavior-Parent Report',
'Financial Support Questionnaire',
'Inventory of Callous-Unemotional Traits – Parent Report']
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Parent Measures') &
(df_classify['domains']=='Demographic Questionnaire Measures')]
df1 = df1[df1['measures'].isin(measures)]
visualize.predictive_modeling(df=df1)Parent Measures - Demographics
measures = ['Mood and Feelings Questionnaire', 'Repetitive Behavior Scale',
'Screen for Child Anxiety Related Disorders - Parent report',
'Social Aptitudes Scale', 'Social Communication Questionnaire',
'Social Responsiveness Scale-2',
'Strengths and Difficulties Questionnaire (with impact supplement)',
'Strengths and Weaknesses Assessment of ADHD and Normal Behavior',
'The Columbia Impairment Scale-Parent Report Version',
'WHO Disability Assessment Schedule – Parent Report']
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Parent Measures') &
(df_classify['domains']=='Demographic Questionnaire Measures')]
df1 = df1[df1['measures'].isin(measures)]
visualize.predictive_modeling(df=df1)Parent Measures - Interview of Emotional and Psychological Function
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Parent Measures') &
(df_classify['domains']=='Interview of Emotional and Psychological Function')]
visualize.predictive_modeling(df=df1)Child Measures - Cognitive Testing
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Child Measures') &
(df_classify['domains']=='Cognitive Testing')]
visualize.predictive_modeling(df=df1)Child Measures - Questionnaire_Measures_of_Emotional_and_Cognitive_Status
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Child Measures') &
(df_classify['domains']=='Questionnaire Measures of Emotional and Cognitive Status')]
visualize.predictive_modeling(df=df1)Child Measures - Questionnaire_Measures_of_Emotional_and_Cognitive_Status
df1 = df_classify[(df_classify['target']=='DX_01_Cat_binarize') &
(df_classify['assessment']=='Child Measures')]
cols = ['Physical Fitness and Status', 'Neurologic Function', 'Physiologic Function', 'Vision', 'Motor Skills']
df1 = df1[df1['domains'].isin(cols)]
visualize.predictive_modeling(df=df1)#import plotly.express as px
# interactive visualization of features
#@widgets.interact(
# feature=df_feature['features'].unique(),
# )
#def visualize_features(feature):
# df = df_feature[df_feature['features']==feature]
# fig = px.line(df, x='feature_names_sum', y='feature_sum', markers=True, title=feature)
# fig.update_xaxes(showticklabels=False)
# fig.update_xaxes(type='category')
# fig.show()