In [1]:
import numpy as np
import pandas as pd

Matching based on Volumes

  • Volume bins
    • 100 - 150
    • 150 - 200
    • 200 - 250
    • 250 - 300

In [2]:
# Load demographics file
df_demographics = pd.read_csv('/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv')
# df_demographics
df_demographics_volumes = df_demographics.as_matrix(['SITE_NAME','VOLUMES']).squeeze()
df_demographics_volumes


Out[2]:
array([['CALTECH', 150.0],
       ['CMU', 240.0],
       ['KKI', 156.0],
       ['LEUVEN_1', 250.0],
       ['LEUVEN_2', 250.0],
       ['MAX_MUN', 120.0],
       ['NYU', 180.0],
       ['OHSU', 82.0],
       ['OLIN', 210.0],
       ['PITT', 200.0],
       ['SBL', 200.0],
       ['SDSU', 180.0],
       ['STANFORD', 180.0],
       ['TRINITY', 150.0],
       ['UCLA_1', 120.0],
       ['UCLA_2', 120.0],
       ['UM_1', 300.0],
       ['UM_2', 300.0],
       ['USM', 240.0],
       ['YALE', 200.0]], dtype=object)

In [3]:
df_phenotype = pd.read_csv('/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv') # , index_col='SUB_ID'
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

volumes_bins = np.array([[0,150],[151,200],[201,250],[251,300]])

bins_volumes_AUT = []
bins_volumes_TD = []

for counter, _bin in enumerate(volumes_bins):
    df_demographics_volumes_selected_bin = df_demographics_volumes[np.where(np.logical_and((df_demographics_volumes[:,1] >= _bin[0]),(df_demographics_volumes[:,1] <= _bin[1])))]


    selected_AUT = pd.DataFrame()
    selected_TD = pd.DataFrame()
    for site in df_demographics_volumes_selected_bin:
        print(site[0])
        selected_AUT = pd.concat([selected_AUT,df_phenotype.loc[(df_phenotype['SEX'] == 1) & (df_phenotype['DSM_IV_TR'] == 1) & (df_phenotype['SITE_ID'] == site[0])]])  
        selected_TD = pd.concat([selected_AUT,df_phenotype.loc[(df_phenotype['SEX'] == 1) & (df_phenotype['DSM_IV_TR'] == 0) & (df_phenotype['SITE_ID'] == site[0])]])  

    bins_volumes_AUT.append(selected_AUT)
    bins_volumes_TD.append(selected_TD)


CALTECH
MAX_MUN
OHSU
TRINITY
UCLA_1
UCLA_2
KKI
NYU
PITT
SBL
SDSU
STANFORD
YALE
CMU
LEUVEN_1
LEUVEN_2
OLIN
USM
UM_1
UM_2

In [4]:
f = bins_volumes_AUT[0]
# f.loc[[2,3,4,5]]
f


Out[4]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
2 CALTECH 51458 1 1 39.20 1 R NaN 93.0 80.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
3 CALTECH 51459 1 1 22.80 1 R NaN 106.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
8 CALTECH 51464 1 1 20.90 1 Ambi NaN 101.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
9 CALTECH 51465 1 1 20.20 1 R NaN 96.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
10 CALTECH 51466 1 1 27.60 1 Ambi NaN 106.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
11 CALTECH 51467 1 1 23.40 1 R NaN 93.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
12 CALTECH 51468 1 1 20.10 1 R NaN 100.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
16 CALTECH 51472 1 1 17.50 1 Ambi NaN 125.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
17 CALTECH 51473 1 1 21.20 1 R NaN -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
18 CALTECH 51474 1 1 20.90 1 R NaN 100.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
217 MAX_MUN 51350 1 1 11.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
218 MAX_MUN 51351 1 1 11.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
659 TRINITY 50239 1 1 17.03 1 R NaN 97.0 92.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
661 TRINITY 50241 1 1 17.17 1 R NaN 89.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
662 TRINITY 50242 1 1 12.75 1 R NaN 117.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
663 TRINITY 50243 1 1 13.75 1 R NaN 90.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
665 TRINITY 50245 1 1 21.58 1 R NaN 72.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
666 TRINITY 50246 1 1 19.50 1 R NaN 105.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
668 TRINITY 50248 1 1 13.58 1 R NaN 117.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
669 TRINITY 50249 1 1 13.83 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
670 TRINITY 50250 1 1 13.91 1 R NaN 99.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
671 TRINITY 50251 1 1 17.25 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
701 UCLA_1 51201 1 1 13.52 1 R NaN 104.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.52 NaN
702 UCLA_1 51202 1 1 11.56 1 R NaN 98.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.56 NaN
703 UCLA_1 51203 1 1 13.37 1 R NaN 103.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.37 NaN
704 UCLA_1 51204 1 1 14.57 1 R NaN 98.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.57 NaN
705 UCLA_1 51205 1 1 17.94 1 R NaN 102.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.94 NaN
706 UCLA_1 51206 1 1 15.78 1 R NaN 102.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.78 NaN
708 UCLA_1 51208 1 1 16.98 1 L NaN 113.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.27 NaN
709 UCLA_1 51209 1 1 9.99 1 R NaN 128.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.99 NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
732 UCLA_1 51232 1 1 15.79 1 R NaN 89.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
733 UCLA_1 51233 1 1 12.75 1 R NaN 79.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
734 UCLA_1 51234 1 1 10.91 1 R NaN 87.0 93.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.91 NaN
735 UCLA_1 51235 1 1 10.67 1 R NaN 132.0 130.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.67 NaN
736 UCLA_1 51236 1 1 12.42 1 R NaN 89.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.42 NaN
737 UCLA_1 51237 1 1 17.40 1 R NaN 100.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.40 NaN
738 UCLA_1 51238 1 1 10.85 1 R NaN 73.0 67.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.64 NaN
739 UCLA_1 51239 1 1 13.67 1 R NaN 86.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.67 NaN
740 UCLA_1 51240 1 1 14.96 1 R NaN 121.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.40 NaN
741 UCLA_1 51241 1 1 10.90 1 R NaN 95.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.03 NaN
743 UCLA_1 51243 1 1 11.69 1 R NaN 101.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
744 UCLA_1 51244 1 1 13.09 1 R NaN -9999.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
745 UCLA_1 51245 1 1 14.98 1 R NaN 64.0 59.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
746 UCLA_1 51246 1 1 13.10 1 R NaN 84.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
747 UCLA_1 51247 1 1 11.97 1 R NaN 118.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
748 UCLA_1 51248 1 1 13.50 1 R NaN 110.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.50 NaN
749 UCLA_1 51249 1 1 8.49 1 R NaN 107.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 8.49 NaN
783 UCLA_2 51291 1 1 16.47 1 R NaN 86.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.63 NaN
784 UCLA_2 51292 1 1 12.24 1 R NaN 75.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.24 NaN
785 UCLA_2 51293 1 1 13.08 1 R NaN 92.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.08 NaN
786 UCLA_2 51294 1 1 11.70 1 R NaN 87.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.06 NaN
787 UCLA_2 51295 1 1 10.04 1 L NaN 108.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.33 NaN
788 UCLA_2 51296 1 1 11.16 1 R NaN 77.0 71.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.16 NaN
789 UCLA_2 51297 1 1 14.27 1 L NaN 88.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.27 NaN
790 UCLA_2 51298 1 1 10.57 1 R NaN 118.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.69 NaN
791 UCLA_2 51299 1 1 14.77 1 R NaN 104.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.77 NaN
792 UCLA_2 51300 1 1 14.08 1 L NaN 92.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.08 NaN
793 UCLA_2 51301 1 1 13.28 1 R NaN 91.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.28 NaN
794 UCLA_2 51302 1 1 10.85 1 R NaN 87.0 75.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.85 NaN
809 UCLA_2 51317 1 1 12.82 1 R NaN 102.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.82 NaN

77 rows × 74 columns


In [5]:
f.iloc[[1,2,3,10]]


Out[5]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
3 CALTECH 51459 1 1 22.8 1 R NaN 106.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
8 CALTECH 51464 1 1 20.9 1 Ambi NaN 101.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
9 CALTECH 51465 1 1 20.2 1 R NaN 96.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
217 MAX_MUN 51350 1 1 11.0 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN

4 rows × 74 columns


In [6]:
# num_bins = 4
print('Range    ','TD ','AUT ','Ratio TD/AUT')
ratio = np.zeros((len(bins_volumes_AUT)))
for i in range(len(bins_volumes_AUT)):
    ratio[i] = bins_volumes_TD[i].shape[0]/bins_volumes_AUT[i].shape[0]
    print(volumes_bins[i],bins_volumes_TD[i].shape[0],bins_volumes_AUT[i].shape[0], ratio[i])


Range     TD  AUT  Ratio TD/AUT
[  0 150] 89 77 1.15584415584
[151 200] 110 90 1.22222222222
[201 250] 137 94 1.45744680851
[251 300] 69 48 1.4375

In [7]:
min_ratio = np.min(ratio)
min_index = np.argmin(ratio)

In [8]:
min_ratio = 5.0
new_TD = np.zeros((len(bins_volumes_AUT)))
print('Range    ','TD ','AUT ')
for i in range(len(bins_volumes_AUT)):
    new_TD[i] = np.ceil(bins_volumes_AUT[i].shape[0] * min_ratio)
    print(volumes_bins[i],new_TD[i],bins_volumes_AUT[i].shape[0])


Range     TD  AUT 
[  0 150] 385.0 77
[151 200] 450.0 90
[201 250] 470.0 94
[251 300] 240.0 48

In [9]:
# Now loop over all the bins created and select the specific number of subjects randomly from each TD bin

TD_idx_list = []
selected_df_TD = pd.DataFrame()

for i in range(len(bins_volumes_TD)):
    idx = np.arange(len(bins_volumes_TD[i]))
    np.random.shuffle(idx)
    idx = idx[0:int(new_TD[i])]
    TD_idx_list.append(idx)
    selected_df_TD = pd.concat([selected_df_TD, bins_volumes_TD[i].iloc[idx]])
    
selected_df_TD= selected_df_TD.sort_values(['SUB_ID'])
    
    
    
#     print(idx)

Note


In [10]:
id_x = np.arange(10)
# id_x[11] # will give error out of bounds
id_x[0:100] # will not give error and give the whole array


Out[10]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

In [11]:
# Sanity check that two bins have no subject in common -  empty output means correct
# set(bins_volumes_TD[0].as_matrix(['SUB_ID']).squeeze()) - (set(bins_volumes_TD[0].as_matrix(['SUB_ID']).squeeze()) - set(bins_volumes_TD[1].as_matrix(['SUB_ID']).squeeze()))

In [ ]:


In [12]:
# Sanity check to see of no subjects are repeated
# subid = selected_df_TD.sort_values(['SUB_ID']).as_matrix(['SUB_ID']).squeeze()
# len(np.unique(subid)) == len(subid)

In [13]:
# Sanity check to see of the number of subjects are same as expected
# len(subid) == (89 + 105 + 109 + 56)

In [14]:
#  Sanity check so that no subject index is repeated
# len(np.unique(TD_idx_list[3]))  == len(TD_idx_list[3] )

# sanity check to check the new number of TD subjects in each Volumes bin
# len(TD_idx_list[3]) == 56

In [15]:
selected_df_TD


Out[15]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
489 PITT 50002 1 1 16.77 1 Ambi NaN 103.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
490 PITT 50003 1 1 24.45 1 R NaN 124.0 128.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
491 PITT 50004 1 1 19.09 1 R NaN 113.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
493 PITT 50006 1 1 13.37 1 L NaN 109.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
494 PITT 50007 1 1 17.78 1 R NaN 110.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
495 PITT 50008 1 1 32.45 1 R NaN 123.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
496 PITT 50009 1 1 33.86 1 R NaN 126.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
497 PITT 50010 1 1 35.20 1 L NaN 81.0 81.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
498 PITT 50011 1 1 16.93 1 L NaN 111.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
499 PITT 50012 1 1 21.48 1 R NaN 128.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
500 PITT 50013 1 1 9.33 1 R NaN 86.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
501 PITT 50014 1 1 14.20 1 R NaN 96.0 97.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
502 PITT 50015 1 1 14.20 1 R NaN 99.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
503 PITT 50016 1 1 21.82 1 R NaN 123.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
504 PITT 50017 1 1 22.70 1 R NaN 87.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
505 PITT 50019 1 1 27.81 1 R NaN 100.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
506 PITT 50020 1 1 20.83 1 R NaN 100.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
507 PITT 50022 1 1 16.99 1 R NaN 119.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
509 PITT 50024 1 1 22.64 1 R NaN 127.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
510 PITT 50025 1 1 31.72 1 R NaN 131.0 132.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
511 PITT 50026 1 1 16.28 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
512 PITT 50027 1 1 12.24 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
513 PITT 50028 1 1 12.74 1 R NaN 126.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
515 PITT 50053 1 1 12.03 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
516 PITT 50055 1 1 16.99 1 R NaN 111.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
517 PITT 50056 1 1 13.59 1 R NaN 113.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
577 SDSU 50183 1 1 14.14 1 R NaN 139.0 128.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
586 SDSU 50192 1 1 12.99 1 R NaN 85.0 93.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
659 TRINITY 50239 1 1 17.03 1 R NaN 97.0 92.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
661 TRINITY 50241 1 1 17.17 1 R NaN 89.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
792 UCLA_2 51300 1 1 14.08 1 L NaN 92.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.08 NaN
793 UCLA_2 51301 1 1 13.28 1 R NaN 91.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.28 NaN
794 UCLA_2 51302 1 1 10.85 1 R NaN 87.0 75.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.85 NaN
796 UCLA_2 51304 2 0 10.53 1 R NaN 120.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.53 NaN
798 UCLA_2 51306 2 0 11.66 1 R NaN 119.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.66 NaN
799 UCLA_2 51307 2 0 12.15 1 R NaN 128.0 127.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.15 NaN
800 UCLA_2 51308 2 0 9.79 1 R NaN 124.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.08 NaN
801 UCLA_2 51309 2 0 11.90 1 R NaN 107.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.93 NaN
802 UCLA_2 51310 2 0 11.70 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 -9999.00 NaN
803 UCLA_2 51311 2 0 11.95 1 R NaN 103.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.95 NaN
804 UCLA_2 51312 2 0 12.90 1 R NaN 123.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.90 NaN
805 UCLA_2 51313 2 0 13.36 1 R NaN 112.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.36 NaN
806 UCLA_2 51314 2 0 13.12 1 R NaN 97.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.12 NaN
807 UCLA_2 51315 2 0 13.63 1 R NaN 118.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.63 NaN
808 UCLA_2 51316 2 0 12.66 1 L NaN 94.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.66 NaN
809 UCLA_2 51317 1 1 12.82 1 R NaN 102.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.82 NaN
217 MAX_MUN 51350 1 1 11.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
218 MAX_MUN 51351 1 1 11.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
2 CALTECH 51458 1 1 39.20 1 R NaN 93.0 80.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
3 CALTECH 51459 1 1 22.80 1 R NaN 106.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
8 CALTECH 51464 1 1 20.90 1 Ambi NaN 101.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
9 CALTECH 51465 1 1 20.20 1 R NaN 96.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
10 CALTECH 51466 1 1 27.60 1 Ambi NaN 106.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
11 CALTECH 51467 1 1 23.40 1 R NaN 93.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
12 CALTECH 51468 1 1 20.10 1 R NaN 100.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
16 CALTECH 51472 1 1 17.50 1 Ambi NaN 125.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
17 CALTECH 51473 1 1 21.20 1 R NaN -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
18 CALTECH 51474 1 1 20.90 1 R NaN 100.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
561 SBL 51571 1 1 22.00 1 NaN -90.0 -9999.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 22.45
575 SBL 51585 1 1 27.00 1 NaN 90.0 96.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00

405 rows × 74 columns

Matching based on Age

  • Age bins
    • 6 - 9
    • 9 -12
    • 12 - 15
    • 15 - 18

In [16]:
age_bins = np.array([[0,9],[9,12],[12,15],[15,18]])

bins_age_AUT = []
bins_age_TD = []

# for counter, _bin in enumerate(age_bins):



for age in age_bins:
    
    selected_AUT = pd.DataFrame()
    selected_TD = pd.DataFrame()

    
    print(age[0], age[1])
    selected_AUT = pd.concat([selected_AUT,df_phenotype.loc[(df_phenotype['SEX'] == 1) 
                                                            & (df_phenotype['DSM_IV_TR'] == 1)
                                                            & (df_phenotype['AGE_AT_SCAN'] > age[0])
                                                            & (df_phenotype['AGE_AT_SCAN'] <= age[1]) ]])  
    selected_TD = pd.concat([selected_TD,selected_df_TD.loc[(selected_df_TD['SEX'] == 1)
                                                            & (selected_df_TD['DSM_IV_TR'] == 0)
                                                            & (selected_df_TD['AGE_AT_SCAN'] > age[0])
                                                            & (selected_df_TD['AGE_AT_SCAN'] <= age[1]) ]])  

    bins_age_AUT.append(selected_AUT)
    bins_age_TD.append(selected_TD)


0 9
9 12
12 15
15 18

In [17]:
bins_age_TD[0]


Out[17]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
976 USM 50453 2 0 8.7721 1 NaN 85.19 121.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1059 YALE 50554 2 0 8.6700 1 R NaN 99.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1069 YALE 50564 2 0 7.6600 1 R NaN 140.0 126.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN

3 rows × 74 columns


In [18]:
# num_bins = 4
print('Original data stats')
print('Age Range    ','TD ','AUT ','Ratio TD/AUT')
ratio = np.zeros((len(bins_age_TD)))
for i in range(len(bins_age_TD)):
    ratio[i] = bins_age_TD[i].shape[0]/bins_age_AUT[i].shape[0]
    print(age_bins[i],bins_age_TD[i].shape[0],bins_age_AUT[i].shape[0], ratio[i])


Original data stats
Age Range     TD  AUT  Ratio TD/AUT
[0 9] 3 15 0.2
[ 9 12] 16 59 0.271186440678
[12 15] 27 85 0.317647058824
[15 18] 19 55 0.345454545455

In [19]:
min_ratio = np.min(ratio)
min_index = np.argmin(ratio)

In [20]:
new_TD = np.zeros((len(bins_age_AUT)))
print('Matched data stats')
print('Age Range    ','TD ','AUT ')
for i in range(len(bins_age_AUT)):
    new_TD[i] = np.ceil(bins_age_AUT[i].shape[0] * min_ratio)
    print(age_bins[i],new_TD[i],bins_age_AUT[i].shape[0])


Matched data stats
Age Range     TD  AUT 
[0 9] 3.0 15
[ 9 12] 12.0 59
[12 15] 17.0 85
[15 18] 11.0 55

In [21]:
# Now loop over all the bins created and select the specific number of subjects randomly from each TD bin

TD_idx_list = []
selected_df_TD = pd.DataFrame()

for i in range(len(bins_age_TD)):
    idx = np.arange(len(bins_age_TD[i]))
    np.random.shuffle(idx)
    idx = idx[0:int(new_TD[i])]
    TD_idx_list.append(idx)
    selected_df_TD = pd.concat([selected_df_TD, bins_age_TD[i].iloc[idx]])
    
selected_df_TD = selected_df_TD.sort_values(['SUB_ID'])
    
    
    
#     print(idx)

In [22]:
selected_df_TD;

# selected_df_TD.as_matrix(['SUB_ID']).squeeze()

In [ ]:


In [23]:
x = np.arange(10)
np.random.shuffle(x)

In [24]:
x


Out[24]:
array([9, 3, 1, 6, 2, 4, 8, 5, 7, 0])

In [25]:
48 * min_ratio


Out[25]:
9.6000000000000014

In [26]:
#     selected = selected.loc[(selected['SEX'] == 1) & (selected['DSM_IV_TR'] == 0) & (selected['SITE_ID'] == site[0]) & (selected['EYE_STATUS_AT_SCAN'] == 1)]

In [27]:
# selected;

In [28]:
df_phenotype.loc[(df_phenotype['SEX'] == 1) & (df_phenotype['DSM_IV_TR'] == 0) & (df_phenotype['SITE_ID'] == 'TRINITY') & (df_phenotype['EYE_STATUS_AT_SCAN'] == 1)]


Out[28]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI

0 rows × 74 columns

Create a function to do volumes matching


In [29]:
def volumes_matching(volumes_bins, df_demographics, df_TD_phenotype, df_AUT_phenotype):
    # Load demographics file
    
#     demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
#     phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'
#     volumes_bins = np.array([[0,150],[151,200],[201,250],[251,300]])
    
    
#     df_demographics = pd.read_csv(demographics_file_path)
    df_demographics_volumes = df_demographics.as_matrix(['SITE_NAME','VOLUMES']).squeeze()


    
#     df_phenotype = pd.read_csv(phenotype_file_path) 
#     df_phenotype = df_phenotype.sort_values(['SUB_ID'])

    

    bins_volumes_AUT_data = []
    bins_volumes_TD_data = []

    for counter, _bin in enumerate(volumes_bins):
        df_demographics_volumes_selected_bin = df_demographics_volumes[np.where(np.logical_and((df_demographics_volumes[:,1] >= _bin[0]),(df_demographics_volumes[:,1] <= _bin[1])))]


        selected_AUT = pd.DataFrame()
        selected_TD = pd.DataFrame()
        for site in df_demographics_volumes_selected_bin:
#             print(site[0])
            selected_AUT = pd.concat([selected_AUT,df_AUT_phenotype.loc[(df_AUT_phenotype['SEX'] == 1)
                                                                    & (df_AUT_phenotype['DSM_IV_TR'] == 1)
                                                                    & (df_AUT_phenotype['SITE_ID'] == site[0])]])  
            selected_TD = pd.concat([selected_TD,df_TD_phenotype.loc[(df_TD_phenotype['SEX'] == 1)
                                                                      & (df_TD_phenotype['DSM_IV_TR'] == 0)
                                                                      & (df_TD_phenotype['SITE_ID'] == site[0])]])  

        bins_volumes_AUT_data.append(selected_AUT)
        bins_volumes_TD_data.append(selected_TD)
        
    matched_df_TD,matched_df_AUT = matching(volumes_bins, bins_volumes_TD_data, bins_volumes_AUT_data)
#     sub_ids = selected_df_TD.as_matrix(['SUB_ID']).squeeze()
    matched_df_TD.to_csv('volumes_matched_TD.csv')
    return matched_df_TD,matched_df_AUT

In [30]:
def matching_old(bins, bins_TD_data, bins_AUT_data):
    # num_bins = 4
    print('Original data stats')
    print('Range    ','TD ','AUT ','Ratio TD/AUT')
    ratio = np.zeros((len(bins_TD_data)))
    for i in range(len(bins_TD_data)):
        ratio[i] = bins_TD_data[i].shape[0]/bins_AUT_data[i].shape[0]
        print(bins[i],bins_TD_data[i].shape[0],bins_AUT_data[i].shape[0], ratio[i])

    min_ratio = np.min(ratio)
    min_index = np.argmin(ratio)
    
    new_TD = np.zeros((len(bins_TD_data)))

    print('Matched data stats')
    print('Range    ','TD ','AUT ')
    for i in range(len(bins_TD_data)):
        new_TD[i] = np.floor(bins_AUT_data[i].shape[0] * min_ratio)
        print(bins[i],new_TD[i],bins_AUT_data[i].shape[0])

    # Now loop over all the bins created and select the specific number of subjects randomly from each TD bin

    TD_idx_list = []
    selected_df_TD = pd.DataFrame()

    for i in range(len(bins_TD_data)):
        idx = np.arange(len(bins_TD_data[i]))
        np.random.shuffle(idx)
        idx = idx[0:int(new_TD[i])]
        TD_idx_list.append(idx)
        selected_df_TD = pd.concat([selected_df_TD, bins_TD_data[i].iloc[idx]])

    matched_df_TD = selected_df_TD.sort_values(['SUB_ID'])

    return matched_df_TD

In [31]:
def matching(bins, bins_TD_data, bins_AUT_data, randomize = False):
    # num_bins = 4
    print('Original data stats')
    print('Range    ','TD ','AUT ','Ratio TD/AUT')
    ratio = np.zeros((len(bins_TD_data)))
    for i in range(len(bins_TD_data)):
        ratio[i] = bins_TD_data[i].shape[0]/bins_AUT_data[i].shape[0]
        print(bins[i],bins_TD_data[i].shape[0],bins_AUT_data[i].shape[0], ratio[i])

    min_ratio = np.min(ratio)
    min_index = np.argmin(ratio)
    
    new_TD = np.zeros((len(bins_TD_data)))
    new_AUT = np.zeros((len(bins_AUT_data)))
    
#     matched_df_AUT = None
#     matched_df_TD = None
    if min_ratio < 1:
        _ratio = 1.0 / ratio
#         min_index = np.argmin(_ratio)
        min_ratio = np.min(_ratio)
#       
#    -------------------------------------------
        print('Matched data stats')
        print('Range    ','TD ','AUT ')
        for i in range(len(bins_TD_data)):
            new_AUT[i] = np.floor(bins_TD_data[i].shape[0] * min_ratio)
            print(bins[i],bins_TD_data[i].shape[0],new_AUT[i])

        # Now loop over all the bins created and select the specific number of subjects randomly from each TD bin

#         AUT_idx_list = []
        selected_df_AUT = pd.DataFrame()
        selected_df_TD = pd.DataFrame()
        

        for i in range(len(bins_AUT_data)):
            idx = np.arange(len(bins_AUT_data[i]))
            if randomize == True:
                np.random.shuffle(idx)
            idx = idx[0:int(new_AUT[i])]
#             AUT_idx_list.append(idx)
            selected_df_AUT = pd.concat([selected_df_AUT, bins_AUT_data[i].iloc[idx]])
            selected_df_TD = pd.concat([selected_df_TD, bins_TD_data[i]])

        matched_df_AUT = selected_df_AUT.sort_values(['SUB_ID'])
        matched_df_TD = selected_df_TD.sort_values(['SUB_ID'])
        
        return matched_df_TD, matched_df_AUT


#     -------------------------------------
    
    print('Matched data stats')
    print('Range    ','TD ','AUT ')
    for i in range(len(bins_TD_data)):
        new_TD[i] = np.floor(bins_AUT_data[i].shape[0] * min_ratio)
        print(bins[i],new_TD[i],bins_AUT_data[i].shape[0])

    # Now loop over all the bins created and select the specific number of subjects randomly from each TD bin

#     TD_idx_list = []
    selected_df_TD = pd.DataFrame()
    selected_df_AUT = pd.DataFrame()
        

    for i in range(len(bins_TD_data)):
        idx = np.arange(len(bins_TD_data[i]))
        np.random.shuffle(idx)
        idx = idx[0:int(new_TD[i])]
#         TD_idx_list.append(idx)
        selected_df_TD = pd.concat([selected_df_TD, bins_TD_data[i].iloc[idx]])
        selected_df_AUT = pd.concat([selected_df_AUT, bins_AUT_data[i]])

    matched_df_TD = selected_df_TD.sort_values(['SUB_ID'])
    matched_df_AUT = selected_df_AUT.sort_values(['SUB_ID'])

    return matched_df_TD,matched_df_AUT

In [32]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'

df_demographics = pd.read_csv(demographics_file_path)


df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

volumes_bins = np.array([[0,150],[151,200],[201,250],[251,300]])

matched_df_TD,matched_df_AUT = volumes_matching(volumes_bins, df_demographics, df_phenotype, df_phenotype)


Original data stats
Range     TD  AUT  Ratio TD/AUT
[  0 150] 110 77 1.42857142857
[151 200] 177 90 1.96666666667
[201 250] 114 94 1.21276595745
[251 300] 59 48 1.22916666667
Matched data stats
Range     TD  AUT 
[  0 150] 93.0 77
[151 200] 109.0 90
[201 250] 114.0 94
[251 300] 58.0 48

In [33]:
def age_matching(age_bins, df_TD_phenotype, df_AUT_phenotype ):
#     age_bins = np.array([[0,9],[9,12],[12,15],[15,18]])

    bins_age_AUT_data = []
    bins_age_TD_data = []

    # for counter, _bin in enumerate(age_bins):



    for age in age_bins:

        selected_AUT = pd.DataFrame()
        selected_TD = pd.DataFrame()


#         print(age[0], age[1])
        selected_AUT = pd.concat([selected_AUT,df_AUT_phenotype.loc[(df_AUT_phenotype['SEX'] == 1) 
                                                                & (df_AUT_phenotype['DSM_IV_TR'] == 1)
                                                                & (df_AUT_phenotype['AGE_AT_SCAN'] > age[0])
                                                                & (df_AUT_phenotype['AGE_AT_SCAN'] <= age[1]) ]])  
        selected_TD = pd.concat([selected_TD,df_TD_phenotype.loc[(df_TD_phenotype['SEX'] == 1)
                                                                & (df_TD_phenotype['DSM_IV_TR'] == 0)
                                                                & (df_TD_phenotype['AGE_AT_SCAN'] > age[0])
                                                                & (df_TD_phenotype['AGE_AT_SCAN'] <= age[1]) ]])  

        bins_age_AUT_data.append(selected_AUT)
        bins_age_TD_data.append(selected_TD)
        
    matched_df_TD,matched_df_AUT = matching(age_bins, bins_age_TD_data, bins_age_AUT_data)
#     sub_ids = selected_df_TD.as_matrix(['SUB_ID']).squeeze()
    matched_df_TD.to_csv('age_matched_TD.csv')
    return matched_df_TD,matched_df_AUT

In [34]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'

df_demographics = pd.read_csv(demographics_file_path)


df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

age_bins = np.array([[0,9],[9,12],[12,15],[15,18]])

matched_df_TD,matched_df_AUT = age_matching(age_bins, matched_df_TD, df_phenotype)


Original data stats
Range     TD  AUT  Ratio TD/AUT
[0 9] 10 15 0.666666666667
[ 9 12] 62 59 1.05084745763
[12 15] 87 85 1.02352941176
[15 18] 77 55 1.4
Matched data stats
Range     TD  AUT 
[0 9] 10 7.0
[ 9 12] 62 44.0
[12 15] 87 62.0
[15 18] 77 55.0

TR Matching


In [35]:
def tr_matching(TR_bins, df_demographics, df_TD_phenotype, df_AUT_phenotype ):    
#     df_demographics = pd.read_csv(demographics_file_path)
    df_demographics_TR = df_demographics.as_matrix(['SITE_NAME','TR']).squeeze()



#     df_phenotype = pd.read_csv(phenotype_file_path) 
#     df_phenotype = df_TD_phenotype.sort_values(['SUB_ID'])



    bins_TR_AUT_data = []
    bins_TR_TD_data = []

    for counter, _bin in enumerate(TR_bins):
        df_demographics_TR_selected_bin = df_demographics_TR[np.where(np.logical_and((df_demographics_TR[:,1] > _bin[0]),(df_demographics_TR[:,1] <= _bin[1])))]


        selected_AUT = pd.DataFrame()
        selected_TD = pd.DataFrame()
        for site in df_demographics_TR_selected_bin:
    #             print(site[0])
            selected_AUT = pd.concat([selected_AUT,df_AUT_phenotype.loc[(df_AUT_phenotype['SEX'] == 1)
                                                                    & (df_AUT_phenotype['DSM_IV_TR'] == 1)
                                                                    & (df_AUT_phenotype['SITE_ID'] == site[0])]])  
            selected_TD = pd.concat([selected_TD,df_TD_phenotype.loc[(df_TD_phenotype['SEX'] == 1)
                                                                      & (df_TD_phenotype['DSM_IV_TR'] == 0)
                                                                      & (df_TD_phenotype['SITE_ID'] == site[0])]])  

        bins_TR_AUT_data.append(selected_AUT)
        bins_TR_TD_data.append(selected_TD)

    matched_df_TD, matched_df_AUT = matching(TR_bins, bins_TR_TD_data, bins_TR_AUT_data)
    #     sub_ids = selected_df_TD.as_matrix(['SUB_ID']).squeeze()
    matched_df_TD.to_csv('TR_matched_TD.csv')
    return matched_df_TD, matched_df_AUT

In [36]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'
TR_bins = np.array([[0,2],[2,2.5],[2.5,3.0]])


df_demographics = pd.read_csv(demographics_file_path)
df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

matched_df_TD = tr_matching(TR_bins,df_demographics, matched_df_TD, df_phenotype)


Original data stats
Range     TD  AUT  Ratio TD/AUT
[ 0.  2.] 184 240 0.766666666667
[ 2.   2.5] 13 12 1.08333333333
[ 2.5  3. ] 39 57 0.684210526316
Matched data stats
Range     TD  AUT 
[ 0.  2.] 184 169.0
[ 2.   2.5] 13 12.0
[ 2.5  3. ] 39 36.0

In [37]:
# Combined Matching

demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'
df_demographics = pd.read_csv(demographics_file_path)
df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])



# Volume matching
print('Volume Matching')
volumes_bins = np.array([[0,150],[151,200],[201,250],[251,300]])
matched_df_TD = df_phenotype
matched_df_AUT = df_phenotype
matched_df_TD, matched_df_AUT = volumes_matching(volumes_bins, df_demographics, matched_df_TD, matched_df_AUT)


Volume Matching
Original data stats
Range     TD  AUT  Ratio TD/AUT
[  0 150] 110 77 1.42857142857
[151 200] 177 90 1.96666666667
[201 250] 114 94 1.21276595745
[251 300] 59 48 1.22916666667
Matched data stats
Range     TD  AUT 
[  0 150] 93.0 77
[151 200] 109.0 90
[201 250] 114.0 94
[251 300] 58.0 48

In [38]:
matched_df_TD.shape,matched_df_AUT.shape


Out[38]:
((374, 74), (309, 74))

In [39]:
# TR matching
print('TR Matching')
TR_bins = np.array([[0,2],[2,2.5],[2.5,3.0]])
# matched_df_TD = df_phenotype
# matched_df_AUT = df_phenotype
matched_df_TD,matched_df_AUT = tr_matching(TR_bins,df_demographics, matched_df_TD, matched_df_AUT)


TR Matching
Original data stats
Range     TD  AUT  Ratio TD/AUT
[ 0.  2.] 288 240 1.2
[ 2.   2.5] 24 12 2.0
[ 2.5  3. ] 62 57 1.08771929825
Matched data stats
Range     TD  AUT 
[ 0.  2.] 261.0 240
[ 2.   2.5] 13.0 12
[ 2.5  3. ] 62.0 57

In [40]:
matched_df_TD.shape,matched_df_AUT.shape


Out[40]:
((336, 74), (309, 74))

In [41]:
# Age Matching
print('Age Matching')
age_bins = np.array([[0,9],[9,12],[12,15],[15,18]])
# matched_df_TD = df_phenotype
# matched_df_AUT = df_phenotype
matched_df_TD,matched_df_AUT = age_matching(age_bins, matched_df_TD, matched_df_AUT)

# 94.0 77
# [151 200] 110.0 90
# [201 250] 115.0 94
# [251 300] 59.0 48


Age Matching
Original data stats
Range     TD  AUT  Ratio TD/AUT
[0 9] 11 15 0.733333333333
[ 9 12] 55 59 0.932203389831
[12 15] 77 85 0.905882352941
[15 18] 68 55 1.23636363636
Matched data stats
Range     TD  AUT 
[0 9] 11 8.0
[ 9 12] 55 44.0
[12 15] 77 62.0
[15 18] 68 55.0

In [42]:
matched_df_TD.shape,matched_df_AUT.shape


Out[42]:
((211, 74), (169, 74))

In [ ]:


In [43]:
matched_df_AUT


Out[43]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
489 PITT 50002 1 1 16.770 1 Ambi NaN 103.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
493 PITT 50006 1 1 13.370 1 L NaN 109.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
494 PITT 50007 1 1 17.780 1 R NaN 110.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
498 PITT 50011 1 1 16.930 1 L NaN 111.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
500 PITT 50013 1 1 9.330 1 R NaN 86.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
501 PITT 50014 1 1 14.200 1 R NaN 96.0 97.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
502 PITT 50015 1 1 14.200 1 R NaN 99.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
507 PITT 50022 1 1 16.990 1 R NaN 119.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
511 PITT 50026 1 1 16.280 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
512 PITT 50027 1 1 12.240 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
513 PITT 50028 1 1 12.740 1 R NaN 126.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
515 PITT 50053 1 1 12.030 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
516 PITT 50055 1 1 16.990 1 R NaN 111.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
517 PITT 50056 1 1 13.590 1 R NaN 113.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
577 SDSU 50183 1 1 14.140 1 R NaN 139.0 128.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
586 SDSU 50192 1 1 12.990 1 R NaN 85.0 93.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
659 TRINITY 50239 1 1 17.030 1 R NaN 97.0 92.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
661 TRINITY 50241 1 1 17.170 1 R NaN 89.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
662 TRINITY 50242 1 1 12.750 1 R NaN 117.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
663 TRINITY 50243 1 1 13.750 1 R NaN 90.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
668 TRINITY 50248 1 1 13.580 1 R NaN 117.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
669 TRINITY 50249 1 1 13.830 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
670 TRINITY 50250 1 1 13.910 1 R NaN 99.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
671 TRINITY 50251 1 1 17.250 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
810 UM_1 50272 1 1 14.200 1 R NaN 98.5 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
811 UM_1 50273 1 1 16.800 1 R NaN 112.5 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
812 UM_1 50274 1 1 14.200 1 R NaN 111.5 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
813 UM_1 50275 1 1 11.500 1 L NaN 85.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
815 UM_1 50277 1 1 15.400 1 L NaN 107.5 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
817 UM_1 50279 1 1 12.200 1 R NaN 87.5 75.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
288 NYU 51000 1 1 13.330 1 NaN -68.0 78.0 74.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 35.43
289 NYU 51001 1 1 10.710 1 NaN 22.0 87.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.37
292 NYU 51006 1 1 11.110 1 NaN 36.0 103.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.98
293 NYU 51007 1 1 11.920 1 NaN 95.0 108.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.11
294 NYU 51008 1 1 12.370 1 NaN 94.0 128.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
295 NYU 51009 1 1 11.030 1 NaN -9.0 86.0 88.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.63
298 NYU 51012 1 1 9.790 1 NaN -7.0 96.0 88.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
300 NYU 51014 1 1 11.005 1 NaN 75.0 106.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 17.42
317 NYU 51033 1 1 9.980 1 NaN 47.0 113.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.12
318 NYU 51034 1 1 10.650 1 NaN 83.0 109.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.77
319 NYU 51035 1 1 10.270 1 NaN 22.0 100.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.46
701 UCLA_1 51201 1 1 13.520 1 R NaN 104.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.52 NaN
702 UCLA_1 51202 1 1 11.560 1 R NaN 98.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.56 NaN
703 UCLA_1 51203 1 1 13.370 1 R NaN 103.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.37 NaN
705 UCLA_1 51205 1 1 17.940 1 R NaN 102.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.94 NaN
706 UCLA_1 51206 1 1 15.780 1 R NaN 102.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.78 NaN
708 UCLA_1 51208 1 1 16.980 1 L NaN 113.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.27 NaN
709 UCLA_1 51209 1 1 9.990 1 R NaN 128.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.99 NaN
710 UCLA_1 51210 1 1 16.560 1 R NaN 92.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.56 NaN
711 UCLA_1 51211 1 1 11.270 1 R NaN 94.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.27 NaN
712 UCLA_1 51212 1 1 15.660 1 L NaN 100.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.66 NaN
713 UCLA_1 51213 1 1 9.110 1 R NaN 98.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.11 NaN
714 UCLA_1 51214 1 1 10.410 1 R NaN 109.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.41 NaN
716 UCLA_1 51216 1 1 10.540 1 L NaN 107.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.54 NaN
717 UCLA_1 51217 1 1 15.220 1 R NaN 104.0 132.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.22 NaN
718 UCLA_1 51218 1 1 16.870 1 R NaN 111.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.87 NaN
732 UCLA_1 51232 1 1 15.790 1 R NaN 89.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
737 UCLA_1 51237 1 1 17.400 1 R NaN 100.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.40 NaN
783 UCLA_2 51291 1 1 16.470 1 R NaN 86.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.63 NaN
16 CALTECH 51472 1 1 17.500 1 Ambi NaN 125.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN

169 rows × 74 columns


In [44]:
matched_df_TD


Out[44]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
520 PITT 50031 2 0 12.92 1 R NaN 106.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
522 PITT 50033 2 0 12.15 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
523 PITT 50034 2 0 14.77 1 R NaN 97.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
524 PITT 50035 2 0 17.36 1 R NaN 107.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
533 PITT 50044 2 0 17.13 1 R NaN 110.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
536 PITT 50047 2 0 15.35 1 R NaN 103.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
539 PITT 50050 2 0 14.37 1 L NaN 113.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
480 OLIN 50102 2 0 14.00 1 R NaN 103.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
477 OLIN 50103 2 0 14.00 1 R NaN 106.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
476 OLIN 50104 2 0 16.00 1 R NaN 125.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
473 OLIN 50105 2 0 17.00 1 R NaN 100.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
485 OLIN 50106 2 0 10.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
483 OLIN 50110 2 0 13.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
478 OLIN 50111 2 0 14.00 1 R NaN 118.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
487 OLIN 50112 2 0 17.00 1 R NaN 102.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
474 OLIN 50116 2 0 15.00 1 R NaN 115.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
456 OLIN 50118 1 0 15.00 1 R NaN 80.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
454 OLIN 50122 1 0 12.00 1 L NaN 112.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
457 OLIN 50123 1 0 17.00 1 R NaN 135.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
461 OLIN 50124 1 0 18.00 1 R NaN 100.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
460 OLIN 50126 1 0 17.00 1 R NaN 133.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
467 OLIN 50128 1 0 16.00 1 R NaN 114.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
455 OLIN 50129 1 0 12.00 1 R NaN 108.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
470 OLIN 50130 1 0 18.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
466 OLIN 50132 1 0 16.00 1 R NaN -9999.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
462 OLIN 50133 1 0 11.00 1 R NaN 112.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
459 OLIN 50134 1 0 18.00 1 L NaN 124.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
453 OLIN 50135 1 0 12.00 1 L NaN 97.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
587 SDSU 50193 2 0 14.75 1 R NaN 112.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
590 SDSU 50196 2 0 12.91 1 R NaN 110.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
768 UCLA_1 51268 2 0 17.78 1 R NaN 105.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.78 NaN
769 UCLA_1 51269 2 0 14.29 1 R NaN 94.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.29 NaN
770 UCLA_1 51270 2 0 11.08 1 R NaN 117.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.08 NaN
771 UCLA_1 51271 2 0 12.09 1 R NaN 113.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.09 NaN
772 UCLA_1 51272 2 0 13.41 1 R NaN 84.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.41 NaN
773 UCLA_1 51273 2 0 12.68 1 R NaN 104.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.68 NaN
774 UCLA_1 51274 2 0 10.96 1 R NaN 125.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.96 NaN
775 UCLA_1 51275 2 0 15.74 1 R NaN 106.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.74 NaN
776 UCLA_1 51276 2 0 13.85 1 R NaN 105.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.03 NaN
777 UCLA_1 51277 2 0 12.01 1 R NaN 126.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.08 NaN
778 UCLA_1 51278 2 0 9.21 1 L NaN 109.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.21 NaN
780 UCLA_1 51280 2 0 9.50 1 R NaN 109.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.69 NaN
781 UCLA_1 51281 2 0 11.83 1 R NaN 108.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.91 NaN
796 UCLA_2 51304 2 0 10.53 1 R NaN 120.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.53 NaN
798 UCLA_2 51306 2 0 11.66 1 R NaN 119.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.66 NaN
799 UCLA_2 51307 2 0 12.15 1 R NaN 128.0 127.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.15 NaN
800 UCLA_2 51308 2 0 9.79 1 R NaN 124.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.08 NaN
801 UCLA_2 51309 2 0 11.90 1 R NaN 107.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.93 NaN
802 UCLA_2 51310 2 0 11.70 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 -9999.00 NaN
803 UCLA_2 51311 2 0 11.95 1 R NaN 103.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.95 NaN
804 UCLA_2 51312 2 0 12.90 1 R NaN 123.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.90 NaN
805 UCLA_2 51313 2 0 13.36 1 R NaN 112.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.36 NaN
806 UCLA_2 51314 2 0 13.12 1 R NaN 97.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.12 NaN
807 UCLA_2 51315 2 0 13.63 1 R NaN 118.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.63 NaN
808 UCLA_2 51316 2 0 12.66 1 L NaN 94.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.66 NaN
223 MAX_MUN 51356 2 0 10.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
225 MAX_MUN 51358 2 0 10.00 1 R NaN 113.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
226 MAX_MUN 51359 2 0 13.00 1 R NaN 101.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
227 MAX_MUN 51360 2 0 7.00 1 R NaN 98.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
228 MAX_MUN 51361 2 0 16.00 1 R NaN 114.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN

211 rows × 74 columns


In [45]:
matched_df_TD.loc[(matched_df_TD['SEX'] == 1) & (matched_df_TD['DSM_IV_TR'] == 0)].shape


Out[45]:
(211, 74)

In [46]:
matched_df_AUT.loc[(matched_df_AUT['SEX'] == 1) & (matched_df_AUT['DSM_IV_TR'] == 1)].shape


Out[46]:
(169, 74)

In [47]:
matched_df_TD.loc[(matched_df_TD['SEX'] == 1) & (matched_df_TD['DSM_IV_TR'] == 0) & (matched_df_TD['EYE_STATUS_AT_SCAN'] == 1) ].shape


Out[47]:
(171, 74)

In [48]:
matched_df_AUT.loc[(matched_df_AUT['SEX'] == 1) & (matched_df_AUT['DSM_IV_TR'] == 1) & (matched_df_AUT['EYE_STATUS_AT_SCAN'] == 1) ].shape


Out[48]:
(132, 74)

In [49]:
type(matched_df_AUT),type(matched_df_TD)


Out[49]:
(pandas.core.frame.DataFrame, pandas.core.frame.DataFrame)

In [50]:
matched_df_TD.notnull().any(axis = 0)


Out[50]:
SITE_ID                             True
SUB_ID                              True
DX_GROUP                            True
DSM_IV_TR                           True
AGE_AT_SCAN                         True
SEX                                 True
HANDEDNESS_CATEGORY                 True
HANDEDNESS_SCORES                   True
FIQ                                 True
VIQ                                 True
PIQ                                 True
FIQ_TEST_TYPE                       True
VIQ_TEST_TYPE                       True
PIQ_TEST_TYPE                       True
ADI_R_SOCIAL_TOTAL_A               False
ADI_R_VERBAL_TOTAL_BV              False
ADI_RRB_TOTAL_C                    False
ADI_R_ONSET_TOTAL_D                False
ADI_R_RSRCH_RELIABLE               False
ADOS_MODULE                         True
ADOS_TOTAL                          True
ADOS_COMM                           True
ADOS_SOCIAL                         True
ADOS_STEREO_BEHAV                   True
ADOS_RSRCH_RELIABLE                False
ADOS_GOTHAM_SOCAFFECT               True
ADOS_GOTHAM_RRB                     True
ADOS_GOTHAM_TOTAL                   True
ADOS_GOTHAM_SEVERITY                True
SRS_VERSION                         True
                                   ...  
VINELAND_WRITTEN_V_SCALED           True
VINELAND_COMMUNICATION_STANDARD     True
VINELAND_PERSONAL_V_SCALED          True
VINELAND_DOMESTIC_V_SCALED          True
VINELAND_COMMUNITY_V_SCALED         True
VINELAND_DAILYLVNG_STANDARD         True
VINELAND_INTERPERSONAL_V_SCALED     True
VINELAND_PLAY_V_SCALED              True
VINELAND_COPING_V_SCALED            True
VINELAND_SOCIAL_STANDARD            True
VINELAND_SUM_SCORES                 True
VINELAND_ABC_STANDARD               True
VINELAND_INFORMANT                  True
WISC_IV_VCI                         True
WISC_IV_PRI                         True
WISC_IV_WMI                         True
WISC_IV_PSI                         True
WISC_IV_SIM_SCALED                  True
WISC_IV_VOCAB_SCALED                True
WISC_IV_INFO_SCALED                 True
WISC_IV_BLK_DSN_SCALED              True
WISC_IV_PIC_CON_SCALED              True
WISC_IV_MATRIX_SCALED               True
WISC_IV_DIGIT_SPAN_SCALED           True
WISC_IV_LET_NUM_SCALED              True
WISC_IV_CODING_SCALED               True
WISC_IV_SYM_SCALED                  True
EYE_STATUS_AT_SCAN                  True
AGE_AT_MPRAGE                       True
BMI                                 True
Length: 74, dtype: bool

In [51]:
matched_df_TD


Out[51]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
520 PITT 50031 2 0 12.92 1 R NaN 106.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
522 PITT 50033 2 0 12.15 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
523 PITT 50034 2 0 14.77 1 R NaN 97.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
524 PITT 50035 2 0 17.36 1 R NaN 107.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
533 PITT 50044 2 0 17.13 1 R NaN 110.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
536 PITT 50047 2 0 15.35 1 R NaN 103.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
539 PITT 50050 2 0 14.37 1 L NaN 113.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
480 OLIN 50102 2 0 14.00 1 R NaN 103.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
477 OLIN 50103 2 0 14.00 1 R NaN 106.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
476 OLIN 50104 2 0 16.00 1 R NaN 125.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
473 OLIN 50105 2 0 17.00 1 R NaN 100.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
485 OLIN 50106 2 0 10.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
483 OLIN 50110 2 0 13.00 1 R NaN 79.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
478 OLIN 50111 2 0 14.00 1 R NaN 118.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
487 OLIN 50112 2 0 17.00 1 R NaN 102.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
474 OLIN 50116 2 0 15.00 1 R NaN 115.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
456 OLIN 50118 1 0 15.00 1 R NaN 80.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
454 OLIN 50122 1 0 12.00 1 L NaN 112.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
457 OLIN 50123 1 0 17.00 1 R NaN 135.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
461 OLIN 50124 1 0 18.00 1 R NaN 100.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
460 OLIN 50126 1 0 17.00 1 R NaN 133.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
467 OLIN 50128 1 0 16.00 1 R NaN 114.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
455 OLIN 50129 1 0 12.00 1 R NaN 108.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
470 OLIN 50130 1 0 18.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
466 OLIN 50132 1 0 16.00 1 R NaN -9999.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
462 OLIN 50133 1 0 11.00 1 R NaN 112.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
459 OLIN 50134 1 0 18.00 1 L NaN 124.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
453 OLIN 50135 1 0 12.00 1 L NaN 97.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
587 SDSU 50193 2 0 14.75 1 R NaN 112.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
590 SDSU 50196 2 0 12.91 1 R NaN 110.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
768 UCLA_1 51268 2 0 17.78 1 R NaN 105.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.78 NaN
769 UCLA_1 51269 2 0 14.29 1 R NaN 94.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.29 NaN
770 UCLA_1 51270 2 0 11.08 1 R NaN 117.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.08 NaN
771 UCLA_1 51271 2 0 12.09 1 R NaN 113.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.09 NaN
772 UCLA_1 51272 2 0 13.41 1 R NaN 84.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.41 NaN
773 UCLA_1 51273 2 0 12.68 1 R NaN 104.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.68 NaN
774 UCLA_1 51274 2 0 10.96 1 R NaN 125.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.96 NaN
775 UCLA_1 51275 2 0 15.74 1 R NaN 106.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.74 NaN
776 UCLA_1 51276 2 0 13.85 1 R NaN 105.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 14.03 NaN
777 UCLA_1 51277 2 0 12.01 1 R NaN 126.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.08 NaN
778 UCLA_1 51278 2 0 9.21 1 L NaN 109.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.21 NaN
780 UCLA_1 51280 2 0 9.50 1 R NaN 109.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.69 NaN
781 UCLA_1 51281 2 0 11.83 1 R NaN 108.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.91 NaN
796 UCLA_2 51304 2 0 10.53 1 R NaN 120.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.53 NaN
798 UCLA_2 51306 2 0 11.66 1 R NaN 119.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.66 NaN
799 UCLA_2 51307 2 0 12.15 1 R NaN 128.0 127.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.15 NaN
800 UCLA_2 51308 2 0 9.79 1 R NaN 124.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.08 NaN
801 UCLA_2 51309 2 0 11.90 1 R NaN 107.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.93 NaN
802 UCLA_2 51310 2 0 11.70 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 -9999.00 NaN
803 UCLA_2 51311 2 0 11.95 1 R NaN 103.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.95 NaN
804 UCLA_2 51312 2 0 12.90 1 R NaN 123.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.90 NaN
805 UCLA_2 51313 2 0 13.36 1 R NaN 112.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.36 NaN
806 UCLA_2 51314 2 0 13.12 1 R NaN 97.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.12 NaN
807 UCLA_2 51315 2 0 13.63 1 R NaN 118.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.63 NaN
808 UCLA_2 51316 2 0 12.66 1 L NaN 94.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 12.66 NaN
223 MAX_MUN 51356 2 0 10.00 1 R NaN 129.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
225 MAX_MUN 51358 2 0 10.00 1 R NaN 113.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
226 MAX_MUN 51359 2 0 13.00 1 R NaN 101.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
227 MAX_MUN 51360 2 0 7.00 1 R NaN 98.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
228 MAX_MUN 51361 2 0 16.00 1 R NaN 114.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN

211 rows × 74 columns


In [52]:
matched_df_AUT


Out[52]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
489 PITT 50002 1 1 16.770 1 Ambi NaN 103.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
493 PITT 50006 1 1 13.370 1 L NaN 109.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
494 PITT 50007 1 1 17.780 1 R NaN 110.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
498 PITT 50011 1 1 16.930 1 L NaN 111.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
500 PITT 50013 1 1 9.330 1 R NaN 86.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
501 PITT 50014 1 1 14.200 1 R NaN 96.0 97.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
502 PITT 50015 1 1 14.200 1 R NaN 99.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
507 PITT 50022 1 1 16.990 1 R NaN 119.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
511 PITT 50026 1 1 16.280 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
512 PITT 50027 1 1 12.240 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
513 PITT 50028 1 1 12.740 1 R NaN 126.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
515 PITT 50053 1 1 12.030 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
516 PITT 50055 1 1 16.990 1 R NaN 111.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
517 PITT 50056 1 1 13.590 1 R NaN 113.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
577 SDSU 50183 1 1 14.140 1 R NaN 139.0 128.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
586 SDSU 50192 1 1 12.990 1 R NaN 85.0 93.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
659 TRINITY 50239 1 1 17.030 1 R NaN 97.0 92.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
661 TRINITY 50241 1 1 17.170 1 R NaN 89.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
662 TRINITY 50242 1 1 12.750 1 R NaN 117.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
663 TRINITY 50243 1 1 13.750 1 R NaN 90.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
668 TRINITY 50248 1 1 13.580 1 R NaN 117.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
669 TRINITY 50249 1 1 13.830 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
670 TRINITY 50250 1 1 13.910 1 R NaN 99.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
671 TRINITY 50251 1 1 17.250 1 R NaN 122.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
810 UM_1 50272 1 1 14.200 1 R NaN 98.5 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
811 UM_1 50273 1 1 16.800 1 R NaN 112.5 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
812 UM_1 50274 1 1 14.200 1 R NaN 111.5 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
813 UM_1 50275 1 1 11.500 1 L NaN 85.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
815 UM_1 50277 1 1 15.400 1 L NaN 107.5 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
817 UM_1 50279 1 1 12.200 1 R NaN 87.5 75.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
288 NYU 51000 1 1 13.330 1 NaN -68.0 78.0 74.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 35.43
289 NYU 51001 1 1 10.710 1 NaN 22.0 87.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.37
292 NYU 51006 1 1 11.110 1 NaN 36.0 103.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.98
293 NYU 51007 1 1 11.920 1 NaN 95.0 108.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.11
294 NYU 51008 1 1 12.370 1 NaN 94.0 128.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
295 NYU 51009 1 1 11.030 1 NaN -9.0 86.0 88.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.63
298 NYU 51012 1 1 9.790 1 NaN -7.0 96.0 88.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
300 NYU 51014 1 1 11.005 1 NaN 75.0 106.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 17.42
317 NYU 51033 1 1 9.980 1 NaN 47.0 113.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.12
318 NYU 51034 1 1 10.650 1 NaN 83.0 109.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.77
319 NYU 51035 1 1 10.270 1 NaN 22.0 100.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.46
701 UCLA_1 51201 1 1 13.520 1 R NaN 104.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.52 NaN
702 UCLA_1 51202 1 1 11.560 1 R NaN 98.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.56 NaN
703 UCLA_1 51203 1 1 13.370 1 R NaN 103.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 13.37 NaN
705 UCLA_1 51205 1 1 17.940 1 R NaN 102.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.94 NaN
706 UCLA_1 51206 1 1 15.780 1 R NaN 102.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.78 NaN
708 UCLA_1 51208 1 1 16.980 1 L NaN 113.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.27 NaN
709 UCLA_1 51209 1 1 9.990 1 R NaN 128.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.99 NaN
710 UCLA_1 51210 1 1 16.560 1 R NaN 92.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.56 NaN
711 UCLA_1 51211 1 1 11.270 1 R NaN 94.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 11.27 NaN
712 UCLA_1 51212 1 1 15.660 1 L NaN 100.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.66 NaN
713 UCLA_1 51213 1 1 9.110 1 R NaN 98.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 9.11 NaN
714 UCLA_1 51214 1 1 10.410 1 R NaN 109.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.41 NaN
716 UCLA_1 51216 1 1 10.540 1 L NaN 107.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 10.54 NaN
717 UCLA_1 51217 1 1 15.220 1 R NaN 104.0 132.0 ... NaN NaN NaN NaN NaN NaN NaN 1 15.22 NaN
718 UCLA_1 51218 1 1 16.870 1 R NaN 111.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.87 NaN
732 UCLA_1 51232 1 1 15.790 1 R NaN 89.0 94.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
737 UCLA_1 51237 1 1 17.400 1 R NaN 100.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 17.40 NaN
783 UCLA_2 51291 1 1 16.470 1 R NaN 86.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 16.63 NaN
16 CALTECH 51472 1 1 17.500 1 Ambi NaN 125.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN

169 rows × 74 columns

There was a conceptual problem with matching the way I have done it.

Things to do now.

  • The matching for age will same as before.
  • Matching for volume will be by deleting the starting volumes to make it exactly equal to the smallest one.
  • For matching for TR, check which range of TR gives the maximum number of subjects. Take that TR.

TR Matching: Again


In [53]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
df_demographics = pd.read_csv(demographics_file_path)
df_demographics_TR = df_demographics.as_matrix(['SITE_NAME','TR']).squeeze()

In [54]:
df_demographics_TR


Out[54]:
array([['CALTECH', 2.0],
       ['CMU', 1.5],
       ['KKI', 2.5],
       ['LEUVEN_1', 1.6669999999999998],
       ['LEUVEN_2', 1.6669999999999998],
       ['MAX_MUN', 3.0],
       ['NYU', 2.0],
       ['OHSU', 2.5],
       ['OLIN', 1.5],
       ['PITT', 1.5],
       ['SBL', 2.2],
       ['SDSU', 2.0],
       ['STANFORD', 2.0],
       ['TRINITY', 2.0],
       ['UCLA_1', 3.0],
       ['UCLA_2', 3.0],
       ['UM_1', 2.0],
       ['UM_2', 2.0],
       ['USM', 2.0],
       ['YALE', 2.0]], dtype=object)

In [55]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'
# TR_bins = np.array([[0,2],[2,2.5],[2.5,3.0]])
TR_bins = np.array([[0,2]])

df_demographics = pd.read_csv(demographics_file_path)
df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

matched_df_TD = df_phenotype
matched_df_TD, matched_df_AUT = tr_matching(TR_bins,df_demographics, matched_df_TD, df_phenotype)


Original data stats
Range     TD  AUT  Ratio TD/AUT
[0 2] 351 240 1.4625
Matched data stats
Range     TD  AUT 
[0 2] 351.0 240

In [56]:
matched_df_TD.shape, matched_df_AUT.shape # [0,2]


Out[56]:
((351, 74), (240, 74))

In [57]:
matched_df_TD.shape, matched_df_AUT.shape #[2,2.5]


Out[57]:
((351, 74), (240, 74))

In [58]:
matched_df_TD.shape, matched_df_AUT.shape # [2.5,3]


Out[58]:
((351, 74), (240, 74))

In [59]:
# Age 6 - 18

df_td_lt18_m = matched_df_TD.loc[(matched_df_TD['SEX'] == 1) & (matched_df_TD['DSM_IV_TR'] == 0) \
                                                    & (matched_df_TD['EYE_STATUS_AT_SCAN'] == 1) ]

df_aut_lt18_m = matched_df_AUT.loc[(matched_df_AUT['SEX'] == 1) & (matched_df_AUT['DSM_IV_TR'] == 1) \
                                                    & (matched_df_AUT['EYE_STATUS_AT_SCAN'] == 1) ]

In [60]:
df_td_lt18_m.shape, df_aut_lt18_m.shape


Out[60]:
((249, 74), (166, 74))

In [61]:
df_td_lt18_m.shape, df_aut_lt18_m.shape


Out[61]:
((249, 74), (166, 74))

TR Matching: Again


In [154]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
df_demographics = pd.read_csv(demographics_file_path)
df_demographics_TR = df_demographics.as_matrix(['SITE_NAME','TR']).squeeze()


df_demographics_TR


Out[154]:
array([['CALTECH', 2.0],
       ['CMU', 1.5],
       ['KKI', 2.5],
       ['LEUVEN_1', 1.6669999999999998],
       ['LEUVEN_2', 1.6669999999999998],
       ['MAX_MUN', 3.0],
       ['NYU', 2.0],
       ['OHSU', 2.5],
       ['OLIN', 1.5],
       ['PITT', 1.5],
       ['SBL', 2.2],
       ['SDSU', 2.0],
       ['STANFORD', 2.0],
       ['TRINITY', 2.0],
       ['UCLA_1', 3.0],
       ['UCLA_2', 3.0],
       ['UM_1', 2.0],
       ['UM_2', 2.0],
       ['USM', 2.0],
       ['YALE', 2.0]], dtype=object)

In [155]:
demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'
# TR_bins = np.array([[0,2],[2,2.5],[2.5,3.0]])
TR_bins = np.array([[0,2.2]])

df_demographics = pd.read_csv(demographics_file_path)
df_phenotype = pd.read_csv(phenotype_file_path) 
df_phenotype = df_phenotype.sort_values(['SUB_ID'])

matched_df_TD = df_phenotype
matched_df_TD, matched_df_AUT = tr_matching(TR_bins,df_demographics, matched_df_TD, df_phenotype)


Original data stats
Range     TD  AUT  Ratio TD/AUT
[ 0.   2.2] 366 242 1.51239669421
Matched data stats
Range     TD  AUT 
[ 0.   2.2] 366.0 242

In [64]:
df_phenotype


Out[64]:
SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ VIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
489 PITT 50002 1 1 16.77 1 Ambi NaN 103.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
490 PITT 50003 1 1 24.45 1 R NaN 124.0 128.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
491 PITT 50004 1 1 19.09 1 R NaN 113.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
492 PITT 50005 1 1 13.73 2 R NaN 119.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
493 PITT 50006 1 1 13.37 1 L NaN 109.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
494 PITT 50007 1 1 17.78 1 R NaN 110.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
495 PITT 50008 1 1 32.45 1 R NaN 123.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
496 PITT 50009 1 1 33.86 1 R NaN 126.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
497 PITT 50010 1 1 35.20 1 L NaN 81.0 81.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
498 PITT 50011 1 1 16.93 1 L NaN 111.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
499 PITT 50012 1 1 21.48 1 R NaN 128.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
500 PITT 50013 1 1 9.33 1 R NaN 86.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
501 PITT 50014 1 1 14.20 1 R NaN 96.0 97.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
502 PITT 50015 1 1 14.20 1 R NaN 99.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
503 PITT 50016 1 1 21.82 1 R NaN 123.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
504 PITT 50017 1 1 22.70 1 R NaN 87.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
505 PITT 50019 1 1 27.81 1 R NaN 100.0 89.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
506 PITT 50020 1 1 20.83 1 R NaN 100.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
507 PITT 50022 1 1 16.99 1 R NaN 119.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
508 PITT 50023 1 1 12.64 2 R NaN 97.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
509 PITT 50024 1 1 22.64 1 R NaN 127.0 121.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
510 PITT 50025 1 1 31.72 1 R NaN 131.0 132.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
511 PITT 50026 1 1 16.28 1 R NaN 87.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
512 PITT 50027 1 1 12.24 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
513 PITT 50028 1 1 12.74 1 R NaN 126.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
514 PITT 50029 1 1 11.40 2 R NaN 106.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
519 PITT 50030 2 0 25.12 1 -9999 NaN 105.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
520 PITT 50031 2 0 12.92 1 R NaN 106.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
521 PITT 50032 2 0 19.80 1 R NaN 119.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
522 PITT 50033 2 0 12.15 1 R NaN 98.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
548 SBL 51558 2 0 27.00 1 NaN 80.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
549 SBL 51559 2 0 27.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
550 SBL 51560 2 0 27.00 1 NaN 70.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
551 SBL 51561 2 0 36.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
552 SBL 51562 2 0 37.00 1 NaN 90.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
553 SBL 51563 2 0 38.00 1 NaN 80.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
554 SBL 51564 2 0 39.00 1 NaN 90.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
555 SBL 51565 2 0 39.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
556 SBL 51566 2 0 41.00 1 NaN 70.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
557 SBL 51567 2 0 34.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
558 SBL 51568 2 0 37.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
559 SBL 51569 2 0 36.00 1 NaN 100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
560 SBL 51570 2 0 42.00 1 NaN -100.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
561 SBL 51571 1 1 22.00 1 NaN -90.0 -9999.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 22.45
562 SBL 51572 1 2 28.00 1 NaN 60.0 -9999.0 93.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 22.33
563 SBL 51573 1 3 30.00 1 L -9999.0 -9999.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 18.81
564 SBL 51574 1 2 30.00 1 NaN 100.0 -9999.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 30.79
565 SBL 51575 1 2 31.00 1 NaN 100.0 -9999.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 30.61
566 SBL 51576 1 3 31.00 1 NaN 80.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
567 SBL 51577 1 3 31.00 1 NaN -40.0 -9999.0 -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
568 SBL 51578 1 2 33.00 1 NaN -100.0 125.0 129.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
569 SBL 51579 1 3 41.00 1 NaN 100.0 110.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
570 SBL 51580 1 3 42.00 1 NaN 60.0 -9999.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 23.85
571 SBL 51581 1 3 64.00 1 NaN 100.0 120.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
572 SBL 51582 1 2 31.00 1 NaN 80.0 -9999.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 28.68
573 SBL 51583 1 2 35.00 1 NaN 100.0 95.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
574 SBL 51584 1 2 49.00 1 NaN 100.0 -9999.0 133.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN 23.24
575 SBL 51585 1 1 27.00 1 NaN 90.0 96.0 99.0 ... NaN NaN NaN NaN NaN NaN NaN 2 NaN -9999.00
184 MAX_MUN 51606 1 2 29.00 2 R NaN 118.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN
185 MAX_MUN 51607 1 2 26.00 1 R NaN 110.0 NaN ... NaN NaN NaN NaN NaN NaN NaN 2 NaN NaN

1112 rows × 74 columns

Matching Verification:


In [274]:
import pandas as pd

X_TD = pd.read_csv('/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/TD_subects.csv')
X_TD


Out[274]:
Unnamed: 0 SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
0 480 OLIN 50102 2 0 14.000 1 R NaN 103.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1 477 OLIN 50103 2 0 14.000 1 R NaN 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
2 476 OLIN 50104 2 0 16.000 1 R NaN 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
3 473 OLIN 50105 2 0 17.000 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
4 485 OLIN 50106 2 0 10.000 1 R NaN 129.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
5 483 OLIN 50110 2 0 13.000 1 R NaN 79.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
6 478 OLIN 50111 2 0 14.000 1 R NaN 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
7 487 OLIN 50112 2 0 17.000 1 R NaN 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
8 474 OLIN 50116 2 0 15.000 1 R NaN 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
9 588 SDSU 50194 2 0 13.350 1 L NaN 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
10 589 SDSU 50195 2 0 12.580 1 R NaN 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
11 590 SDSU 50196 2 0 12.910 1 R NaN 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
12 593 SDSU 50199 2 0 15.530 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
13 594 SDSU 50200 2 0 13.880 1 R NaN 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
14 596 SDSU 50202 2 0 12.080 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
15 597 SDSU 50203 2 0 16.050 1 L NaN 117.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
16 598 SDSU 50204 2 0 14.860 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
17 603 SDSU 50209 2 0 16.570 1 L NaN 126.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
18 604 SDSU 50210 2 0 16.600 1 R NaN 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
19 865 UM_1 50327 2 0 15.300 1 L NaN 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
20 866 UM_1 50328 2 0 17.400 1 R NaN 91.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
21 867 UM_1 50329 2 0 17.100 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
22 868 UM_1 50330 2 0 16.100 1 R NaN 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
23 870 UM_1 50332 2 0 10.400 1 R NaN 103.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
24 871 UM_1 50333 2 0 10.200 1 R NaN 100.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
25 872 UM_1 50334 2 0 11.000 1 R NaN 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
26 875 UM_1 50337 2 0 11.800 1 R NaN 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
27 877 UM_1 50339 2 0 18.000 1 R NaN -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
28 880 UM_1 50342 2 0 12.600 1 R NaN 103.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
29 883 UM_1 50345 2 0 17.300 1 R NaN 118.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
127 371 NYU 51089 2 0 10.760 1 NaN 55.0 138.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
128 372 NYU 51090 2 0 11.030 1 NaN 44.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.00
129 373 NYU 51091 2 0 11.320 1 NaN 72.0 142.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.86
130 374 NYU 51093 2 0 11.690 1 NaN 44.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.36
131 375 NYU 51094 2 0 12.100 1 NaN 63.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
132 376 NYU 51095 2 0 12.230 1 NaN 61.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
133 377 NYU 51096 2 0 13.180 1 NaN 72.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
134 378 NYU 51097 2 0 13.583 1 NaN 91.0 126.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.29
135 379 NYU 51098 2 0 13.628 1 NaN 82.0 134.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 18.13
136 380 NYU 51099 2 0 13.720 1 NaN 69.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 18.19
137 381 NYU 51100 2 0 14.360 1 NaN 90.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.34
138 382 NYU 51101 2 0 14.425 1 NaN 44.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 24.12
139 383 NYU 51102 2 0 14.653 1 NaN 22.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
140 385 NYU 51104 2 0 15.270 1 NaN 75.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.60
141 386 NYU 51105 2 0 15.284 1 NaN 61.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.67
142 387 NYU 51106 2 0 15.420 1 NaN 91.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 23.92
143 388 NYU 51107 2 0 15.530 1 NaN 73.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.17
144 389 NYU 51108 2 0 15.710 1 NaN 63.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.27
145 390 NYU 51109 2 0 16.130 1 NaN 69.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.47
146 391 NYU 51110 2 0 16.280 1 NaN 82.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 28.69
147 392 NYU 51111 2 0 16.550 1 NaN 81.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
148 401 NYU 51120 2 0 10.190 1 NaN 68.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
149 402 NYU 51121 2 0 10.740 1 NaN 90.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.52
150 403 NYU 51122 2 0 11.920 1 NaN 100.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
151 404 NYU 51123 2 0 12.070 1 NaN -9999.0 130.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
152 405 NYU 51124 2 0 12.670 1 NaN 63.0 124.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
153 406 NYU 51125 2 0 14.790 1 NaN 60.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
154 407 NYU 51126 2 0 16.310 1 NaN 100.0 81.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
155 408 NYU 51127 2 0 16.550 1 NaN 29.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
156 410 NYU 51129 2 0 17.700 1 NaN 46.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00

157 rows × 75 columns


In [275]:
X_AUT = pd.read_csv('/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/AUT_subjects.csv')
X_AUT


Out[275]:
Unnamed: 0 SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
0 577 SDSU 50183 1 1 14.140 1 R NaN 139.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1 586 SDSU 50192 1 1 12.990 1 R NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
2 810 UM_1 50272 1 1 14.200 1 R NaN 98.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
3 811 UM_1 50273 1 1 16.800 1 R NaN 112.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
4 812 UM_1 50274 1 1 14.200 1 R NaN 111.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
5 813 UM_1 50275 1 1 11.500 1 L NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
6 815 UM_1 50277 1 1 15.400 1 L NaN 107.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
7 817 UM_1 50279 1 1 12.200 1 R NaN 87.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
8 818 UM_1 50280 1 1 15.600 1 -9999 NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
9 820 UM_1 50282 1 1 15.200 1 NaN NaN 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
10 821 UM_1 50283 1 1 11.200 1 R NaN 97.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
11 825 UM_1 50287 1 1 14.400 1 L NaN 96.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
12 826 UM_1 50288 1 1 11.100 1 R NaN 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
13 828 UM_1 50290 1 1 14.000 1 R NaN 108.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
14 829 UM_1 50291 1 1 13.900 1 R NaN 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
15 830 UM_1 50292 1 1 12.600 1 R NaN 89.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
16 831 UM_1 50293 1 1 12.400 1 R NaN -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
17 833 UM_1 50295 1 1 11.500 1 R NaN 135.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
18 834 UM_1 50296 1 1 15.100 1 R NaN 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
19 836 UM_1 50298 1 1 12.800 1 R NaN 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
20 837 UM_1 50299 1 1 12.200 1 R NaN 87.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
21 839 UM_1 50301 1 1 16.100 1 L NaN 97.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
22 841 UM_1 50303 1 1 11.600 1 R NaN 84.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
23 842 UM_1 50304 1 1 11.000 1 -9999 NaN 96.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
24 843 UM_1 50305 1 1 10.900 1 R NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
25 844 UM_1 50306 1 1 8.500 1 R NaN 76.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
26 845 UM_1 50307 1 1 9.700 1 Ambi NaN 81.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
27 846 UM_1 50308 1 1 8.900 1 -9999 NaN 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
28 848 UM_1 50310 1 1 9.700 1 R NaN 78.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
29 849 UM_1 50311 1 1 9.800 1 -9999 NaN 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
87 270 NYU 50982 1 1 9.460 1 NaN 29.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.04
88 271 NYU 50983 1 1 10.480 1 NaN 64.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.85
89 272 NYU 50984 1 1 13.200 1 NaN 48.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 32.53
90 273 NYU 50985 1 1 13.090 1 NaN 52.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.13
91 274 NYU 50986 1 1 8.530 1 NaN 33.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
92 275 NYU 50987 1 1 8.560 1 NaN -81.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
93 277 NYU 50989 1 1 9.780 1 NaN 75.0 84.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
94 278 NYU 50990 1 1 13.710 1 NaN 62.0 131.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.10
95 279 NYU 50991 1 1 10.900 1 NaN 83.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
96 280 NYU 50992 1 1 10.660 1 NaN 27.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.33
97 281 NYU 50993 1 1 10.870 1 NaN -83.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
98 282 NYU 50994 1 1 15.660 1 NaN 82.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.94
99 283 NYU 50995 1 1 16.740 1 NaN 75.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.20
100 284 NYU 50996 1 1 15.810 1 NaN -47.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
101 285 NYU 50997 1 1 16.270 1 NaN -33.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.15
102 286 NYU 50998 1 1 13.040 1 NaN 3.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
103 287 NYU 50999 1 1 14.530 1 NaN 0.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 34.45
104 288 NYU 51000 1 1 13.330 1 NaN -68.0 78.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 35.43
105 289 NYU 51001 1 1 10.710 1 NaN 22.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.37
106 291 NYU 51003 1 1 8.510 1 NaN 27.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.71
107 292 NYU 51006 1 1 11.110 1 NaN 36.0 103.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.98
108 293 NYU 51007 1 1 11.920 1 NaN 95.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.11
109 295 NYU 51009 1 1 11.030 1 NaN -9.0 86.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.63
110 297 NYU 51011 1 1 8.790 1 NaN 66.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.27
111 298 NYU 51012 1 1 9.790 1 NaN -7.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
112 299 NYU 51013 1 1 7.150 1 NaN -12.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.68
113 300 NYU 51014 1 1 11.005 1 NaN 75.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 17.42
114 317 NYU 51033 1 1 9.980 1 NaN 47.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.12
115 318 NYU 51034 1 1 10.650 1 NaN 83.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.77
116 319 NYU 51035 1 1 10.270 1 NaN 22.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.46

117 rows × 75 columns


In [276]:
# Age Matching
print('Age Matching')
age_bins = np.array([[0,9],[9,12],[12,15],[15,18]])
# matched_df_TD = df_phenotype
# matched_df_AUT = df_phenotype
matched_df_TD,matched_df_AUT = age_matching(age_bins, X_TD, X_AUT)
# matched_df_TD,matched_df_AUT = age_matching(age_bins, matched_df_TD, matched_df_AUT)


Age Matching
Original data stats
Range     TD  AUT  Ratio TD/AUT
[0 9] 14 11 1.27272727273
[ 9 12] 50 37 1.35135135135
[12 15] 47 35 1.34285714286
[15 18] 46 34 1.35294117647
Matched data stats
Range     TD  AUT 
[0 9] 14.0 11
[ 9 12] 47.0 37
[12 15] 44.0 35
[15 18] 43.0 34

In [277]:
# TR Matching
print('TR Matching')
TR_bins = np.array([[0,2.2]])
# matched_df_TD = df_phenotype
# matched_df_AUT = df_phenotype
matched_df_TD,matched_df_AUT = tr_matching(TR_bins,df_demographics, X_TD, X_AUT)
# matched_df_TD,matched_df_AUT = tr_matching(TR_bins,df_demographics, matched_df_TD, matched_df_AUT)


TR Matching
Original data stats
Range     TD  AUT  Ratio TD/AUT
[ 0.   2.2] 136 107 1.27102803738
Matched data stats
Range     TD  AUT 
[ 0.   2.2] 136.0 107

In [278]:
# X_TD = matched_df_TD
# X_AUT = matched_df_AUT

Verified!

t-Test

Age t-test in AUT > TD


In [279]:
X_TD_age = X_TD.as_matrix(['AGE_AT_SCAN']).squeeze()
X_AUT_age = X_AUT.as_matrix(['AGE_AT_SCAN']).squeeze()

In [280]:
from scipy import stats
print(stats.ttest_ind(X_AUT_age, X_TD_age, equal_var = False))
print('Mean: ',np.mean(X_AUT_age), np.mean(X_TD_age))
print('Std: ',np.std(X_AUT_age), np.std(X_TD_age))


Ttest_indResult(statistic=0.073054235814369678, pvalue=0.94182061435624176)
Mean:  12.979182906 12.9538203822
Std:  2.8003407695 2.87343363207

Not significant

TR t-test in AUT > TD


In [281]:
# import pandas as pd

demographics_file_path = '/home1/varunk/Autism-Connectome-Analysis-brain_connectivity/notebooks/demographics.csv'
phenotype_file_path = '/home1/varunk/data/ABIDE1/RawDataBIDs/composite_phenotypic_file.csv'

df_phenotype = pd.read_csv(phenotype_file_path)
df_phenotype = df_phenotype.sort_values(['SUB_ID'])
df_phenotype_sub_id = df_phenotype.as_matrix(['SITE_ID','SUB_ID']).squeeze()

df_demographics = pd.read_csv(demographics_file_path)
df_demographics_tr = df_demographics.as_matrix(['SITE_NAME','TR']).squeeze()

In [282]:
# df_phenotype.sort_values(['SUB_ID'])

In [283]:
df_demographics_tr


Out[283]:
array([['CALTECH', 2.0],
       ['CMU', 1.5],
       ['KKI', 2.5],
       ['LEUVEN_1', 1.6669999999999998],
       ['LEUVEN_2', 1.6669999999999998],
       ['MAX_MUN', 3.0],
       ['NYU', 2.0],
       ['OHSU', 2.5],
       ['OLIN', 1.5],
       ['PITT', 1.5],
       ['SBL', 2.2],
       ['SDSU', 2.0],
       ['STANFORD', 2.0],
       ['TRINITY', 2.0],
       ['UCLA_1', 3.0],
       ['UCLA_2', 3.0],
       ['UM_1', 2.0],
       ['UM_2', 2.0],
       ['USM', 2.0],
       ['YALE', 2.0]], dtype=object)

In [284]:
# SUB_ID - Volumes Dictionary
site_tr_dict = dict(zip(df_demographics_tr[:,0], df_demographics_tr[:,1]))

# for site_subid in df_demographics_volumes:
    

# subid_site_dict = dict(zip(df_phenotype_sub_id[:,1], df_phenotype_sub_id[:,0]))

In [285]:
subid_tr_dict = dict(zip(df_phenotype_sub_id[:,1],[site_tr_dict[site] for site in df_phenotype_sub_id[:,0]] ))

In [286]:
(subid_tr_dict)


Out[286]:
{50002: 1.5,
 50003: 1.5,
 50004: 1.5,
 50005: 1.5,
 50006: 1.5,
 50007: 1.5,
 50008: 1.5,
 50009: 1.5,
 50010: 1.5,
 50011: 1.5,
 50012: 1.5,
 50013: 1.5,
 50014: 1.5,
 50015: 1.5,
 50016: 1.5,
 50017: 1.5,
 50019: 1.5,
 50020: 1.5,
 50022: 1.5,
 50023: 1.5,
 50024: 1.5,
 50025: 1.5,
 50026: 1.5,
 50027: 1.5,
 50028: 1.5,
 50029: 1.5,
 50030: 1.5,
 50031: 1.5,
 50032: 1.5,
 50033: 1.5,
 50034: 1.5,
 50035: 1.5,
 50036: 1.5,
 50037: 1.5,
 50038: 1.5,
 50039: 1.5,
 50040: 1.5,
 50041: 1.5,
 50042: 1.5,
 50043: 1.5,
 50044: 1.5,
 50045: 1.5,
 50046: 1.5,
 50047: 1.5,
 50048: 1.5,
 50049: 1.5,
 50050: 1.5,
 50051: 1.5,
 50052: 1.5,
 50053: 1.5,
 50054: 1.5,
 50055: 1.5,
 50056: 1.5,
 50057: 1.5,
 50058: 1.5,
 50059: 1.5,
 50060: 1.5,
 50102: 1.5,
 50103: 1.5,
 50104: 1.5,
 50105: 1.5,
 50106: 1.5,
 50107: 1.5,
 50108: 1.5,
 50109: 1.5,
 50110: 1.5,
 50111: 1.5,
 50112: 1.5,
 50113: 1.5,
 50114: 1.5,
 50115: 1.5,
 50116: 1.5,
 50117: 1.5,
 50118: 1.5,
 50119: 1.5,
 50120: 1.5,
 50121: 1.5,
 50122: 1.5,
 50123: 1.5,
 50124: 1.5,
 50125: 1.5,
 50126: 1.5,
 50127: 1.5,
 50128: 1.5,
 50129: 1.5,
 50130: 1.5,
 50131: 1.5,
 50132: 1.5,
 50133: 1.5,
 50134: 1.5,
 50135: 1.5,
 50136: 1.5,
 50137: 1.5,
 50142: 2.5,
 50143: 2.5,
 50144: 2.5,
 50145: 2.5,
 50146: 2.5,
 50147: 2.5,
 50148: 2.5,
 50149: 2.5,
 50150: 2.5,
 50152: 2.5,
 50153: 2.5,
 50155: 2.5,
 50156: 2.5,
 50157: 2.5,
 50158: 2.5,
 50159: 2.5,
 50160: 2.5,
 50161: 2.5,
 50162: 2.5,
 50163: 2.5,
 50164: 2.5,
 50165: 2.5,
 50166: 2.5,
 50167: 2.5,
 50168: 2.5,
 50169: 2.5,
 50170: 2.5,
 50171: 2.5,
 50182: 2.0,
 50183: 2.0,
 50184: 2.0,
 50185: 2.0,
 50186: 2.0,
 50187: 2.0,
 50188: 2.0,
 50189: 2.0,
 50190: 2.0,
 50191: 2.0,
 50192: 2.0,
 50193: 2.0,
 50194: 2.0,
 50195: 2.0,
 50196: 2.0,
 50197: 2.0,
 50198: 2.0,
 50199: 2.0,
 50200: 2.0,
 50201: 2.0,
 50202: 2.0,
 50203: 2.0,
 50204: 2.0,
 50205: 2.0,
 50206: 2.0,
 50207: 2.0,
 50208: 2.0,
 50209: 2.0,
 50210: 2.0,
 50211: 2.0,
 50212: 2.0,
 50213: 2.0,
 50214: 2.0,
 50215: 2.0,
 50216: 2.0,
 50217: 2.0,
 50232: 2.0,
 50233: 2.0,
 50234: 2.0,
 50235: 2.0,
 50236: 2.0,
 50237: 2.0,
 50238: 2.0,
 50239: 2.0,
 50240: 2.0,
 50241: 2.0,
 50242: 2.0,
 50243: 2.0,
 50244: 2.0,
 50245: 2.0,
 50246: 2.0,
 50247: 2.0,
 50248: 2.0,
 50249: 2.0,
 50250: 2.0,
 50251: 2.0,
 50252: 2.0,
 50253: 2.0,
 50254: 2.0,
 50255: 2.0,
 50257: 2.0,
 50259: 2.0,
 50260: 2.0,
 50261: 2.0,
 50262: 2.0,
 50263: 2.0,
 50264: 2.0,
 50265: 2.0,
 50266: 2.0,
 50267: 2.0,
 50268: 2.0,
 50269: 2.0,
 50270: 2.0,
 50271: 2.0,
 50272: 2.0,
 50273: 2.0,
 50274: 2.0,
 50275: 2.0,
 50276: 2.0,
 50277: 2.0,
 50278: 2.0,
 50279: 2.0,
 50280: 2.0,
 50281: 2.0,
 50282: 2.0,
 50283: 2.0,
 50284: 2.0,
 50285: 2.0,
 50286: 2.0,
 50287: 2.0,
 50288: 2.0,
 50289: 2.0,
 50290: 2.0,
 50291: 2.0,
 50292: 2.0,
 50293: 2.0,
 50294: 2.0,
 50295: 2.0,
 50296: 2.0,
 50297: 2.0,
 50298: 2.0,
 50299: 2.0,
 50300: 2.0,
 50301: 2.0,
 50302: 2.0,
 50303: 2.0,
 50304: 2.0,
 50305: 2.0,
 50306: 2.0,
 50307: 2.0,
 50308: 2.0,
 50309: 2.0,
 50310: 2.0,
 50311: 2.0,
 50312: 2.0,
 50313: 2.0,
 50314: 2.0,
 50315: 2.0,
 50316: 2.0,
 50317: 2.0,
 50318: 2.0,
 50319: 2.0,
 50320: 2.0,
 50321: 2.0,
 50322: 2.0,
 50323: 2.0,
 50324: 2.0,
 50325: 2.0,
 50326: 2.0,
 50327: 2.0,
 50328: 2.0,
 50329: 2.0,
 50330: 2.0,
 50331: 2.0,
 50332: 2.0,
 50333: 2.0,
 50334: 2.0,
 50335: 2.0,
 50336: 2.0,
 50337: 2.0,
 50338: 2.0,
 50339: 2.0,
 50340: 2.0,
 50341: 2.0,
 50342: 2.0,
 50343: 2.0,
 50344: 2.0,
 50345: 2.0,
 50346: 2.0,
 50347: 2.0,
 50348: 2.0,
 50349: 2.0,
 50350: 2.0,
 50351: 2.0,
 50352: 2.0,
 50353: 2.0,
 50354: 2.0,
 50355: 2.0,
 50356: 2.0,
 50357: 2.0,
 50358: 2.0,
 50359: 2.0,
 50360: 2.0,
 50361: 2.0,
 50362: 2.0,
 50363: 2.0,
 50364: 2.0,
 50365: 2.0,
 50366: 2.0,
 50367: 2.0,
 50368: 2.0,
 50369: 2.0,
 50370: 2.0,
 50371: 2.0,
 50372: 2.0,
 50373: 2.0,
 50374: 2.0,
 50375: 2.0,
 50376: 2.0,
 50377: 2.0,
 50378: 2.0,
 50379: 2.0,
 50380: 2.0,
 50381: 2.0,
 50382: 2.0,
 50383: 2.0,
 50385: 2.0,
 50386: 2.0,
 50387: 2.0,
 50388: 2.0,
 50390: 2.0,
 50391: 2.0,
 50397: 2.0,
 50399: 2.0,
 50402: 2.0,
 50403: 2.0,
 50404: 2.0,
 50405: 2.0,
 50406: 2.0,
 50407: 2.0,
 50408: 2.0,
 50410: 2.0,
 50411: 2.0,
 50412: 2.0,
 50413: 2.0,
 50414: 2.0,
 50415: 2.0,
 50416: 2.0,
 50417: 2.0,
 50418: 2.0,
 50419: 2.0,
 50421: 2.0,
 50422: 2.0,
 50423: 2.0,
 50424: 2.0,
 50425: 2.0,
 50426: 2.0,
 50427: 2.0,
 50428: 2.0,
 50432: 2.0,
 50433: 2.0,
 50434: 2.0,
 50435: 2.0,
 50436: 2.0,
 50437: 2.0,
 50438: 2.0,
 50439: 2.0,
 50440: 2.0,
 50441: 2.0,
 50442: 2.0,
 50443: 2.0,
 50444: 2.0,
 50445: 2.0,
 50446: 2.0,
 50447: 2.0,
 50448: 2.0,
 50449: 2.0,
 50450: 2.0,
 50451: 2.0,
 50452: 2.0,
 50453: 2.0,
 50454: 2.0,
 50455: 2.0,
 50456: 2.0,
 50457: 2.0,
 50458: 2.0,
 50459: 2.0,
 50460: 2.0,
 50461: 2.0,
 50462: 2.0,
 50463: 2.0,
 50464: 2.0,
 50465: 2.0,
 50466: 2.0,
 50467: 2.0,
 50468: 2.0,
 50469: 2.0,
 50470: 2.0,
 50471: 2.0,
 50472: 2.0,
 50473: 2.0,
 50474: 2.0,
 50475: 2.0,
 50476: 2.0,
 50477: 2.0,
 50478: 2.0,
 50479: 2.0,
 50480: 2.0,
 50481: 2.0,
 50482: 2.0,
 50483: 2.0,
 50484: 2.0,
 50485: 2.0,
 50486: 2.0,
 50487: 2.0,
 50488: 2.0,
 50489: 2.0,
 50490: 2.0,
 50491: 2.0,
 50492: 2.0,
 50493: 2.0,
 50494: 2.0,
 50495: 2.0,
 50496: 2.0,
 50497: 2.0,
 50498: 2.0,
 50499: 2.0,
 50500: 2.0,
 50501: 2.0,
 50502: 2.0,
 50503: 2.0,
 50504: 2.0,
 50505: 2.0,
 50506: 2.0,
 50507: 2.0,
 50508: 2.0,
 50509: 2.0,
 50510: 2.0,
 50511: 2.0,
 50512: 2.0,
 50513: 2.0,
 50514: 2.0,
 50515: 2.0,
 50516: 2.0,
 50517: 2.0,
 50518: 2.0,
 50519: 2.0,
 50520: 2.0,
 50521: 2.0,
 50522: 2.0,
 50523: 2.0,
 50524: 2.0,
 50525: 2.0,
 50526: 2.0,
 50527: 2.0,
 50528: 2.0,
 50529: 2.0,
 50530: 2.0,
 50531: 2.0,
 50532: 2.0,
 50551: 2.0,
 50552: 2.0,
 50553: 2.0,
 50554: 2.0,
 50555: 2.0,
 50556: 2.0,
 50557: 2.0,
 50558: 2.0,
 50559: 2.0,
 50560: 2.0,
 50561: 2.0,
 50562: 2.0,
 50563: 2.0,
 50564: 2.0,
 50565: 2.0,
 50566: 2.0,
 50567: 2.0,
 50568: 2.0,
 50569: 2.0,
 50570: 2.0,
 50571: 2.0,
 50572: 2.0,
 50573: 2.0,
 50574: 2.0,
 50575: 2.0,
 50576: 2.0,
 50577: 2.0,
 50578: 2.0,
 50601: 2.0,
 50602: 2.0,
 50603: 2.0,
 50604: 2.0,
 50605: 2.0,
 50606: 2.0,
 50607: 2.0,
 50608: 2.0,
 50609: 2.0,
 50610: 2.0,
 50611: 2.0,
 50612: 2.0,
 50613: 2.0,
 50614: 2.0,
 50615: 2.0,
 50616: 2.0,
 50617: 2.0,
 50618: 2.0,
 50619: 2.0,
 50620: 2.0,
 50621: 2.0,
 50622: 2.0,
 50623: 2.0,
 50624: 2.0,
 50625: 2.0,
 50626: 2.0,
 50627: 2.0,
 50628: 2.0,
 50642: 1.5,
 50643: 1.5,
 50644: 1.5,
 50645: 1.5,
 50646: 1.5,
 50647: 1.5,
 50648: 1.5,
 50649: 1.5,
 50650: 1.5,
 50651: 1.5,
 50652: 1.5,
 50653: 1.5,
 50654: 1.5,
 50655: 1.5,
 50656: 1.5,
 50657: 1.5,
 50658: 1.5,
 50659: 1.5,
 50660: 1.5,
 50661: 1.5,
 50663: 1.5,
 50664: 1.5,
 50665: 1.5,
 50666: 1.5,
 50667: 1.5,
 50668: 1.5,
 50669: 1.5,
 50682: 1.6669999999999998,
 50683: 1.6669999999999998,
 50685: 1.6669999999999998,
 50686: 1.6669999999999998,
 50687: 1.6669999999999998,
 50688: 1.6669999999999998,
 50689: 1.6669999999999998,
 50690: 1.6669999999999998,
 50691: 1.6669999999999998,
 50692: 1.6669999999999998,
 50693: 1.6669999999999998,
 50694: 1.6669999999999998,
 50695: 1.6669999999999998,
 50696: 1.6669999999999998,
 50697: 1.6669999999999998,
 50698: 1.6669999999999998,
 50699: 1.6669999999999998,
 50700: 1.6669999999999998,
 50701: 1.6669999999999998,
 50702: 1.6669999999999998,
 50703: 1.6669999999999998,
 50704: 1.6669999999999998,
 50705: 1.6669999999999998,
 50706: 1.6669999999999998,
 50707: 1.6669999999999998,
 50708: 1.6669999999999998,
 50709: 1.6669999999999998,
 50710: 1.6669999999999998,
 50711: 1.6669999999999998,
 50722: 1.6669999999999998,
 50723: 1.6669999999999998,
 50724: 1.6669999999999998,
 50725: 1.6669999999999998,
 50726: 1.6669999999999998,
 50727: 1.6669999999999998,
 50728: 1.6669999999999998,
 50730: 1.6669999999999998,
 50731: 1.6669999999999998,
 50732: 1.6669999999999998,
 50733: 1.6669999999999998,
 50734: 1.6669999999999998,
 50735: 1.6669999999999998,
 50736: 1.6669999999999998,
 50737: 1.6669999999999998,
 50738: 1.6669999999999998,
 50739: 1.6669999999999998,
 50740: 1.6669999999999998,
 50741: 1.6669999999999998,
 50742: 1.6669999999999998,
 50743: 1.6669999999999998,
 50744: 1.6669999999999998,
 50745: 1.6669999999999998,
 50746: 1.6669999999999998,
 50747: 1.6669999999999998,
 50748: 1.6669999999999998,
 50749: 1.6669999999999998,
 50750: 1.6669999999999998,
 50751: 1.6669999999999998,
 50752: 1.6669999999999998,
 50753: 1.6669999999999998,
 50754: 1.6669999999999998,
 50755: 1.6669999999999998,
 50756: 1.6669999999999998,
 50757: 1.6669999999999998,
 50772: 2.5,
 50773: 2.5,
 50774: 2.5,
 50775: 2.5,
 50776: 2.5,
 50777: 2.5,
 50778: 2.5,
 50779: 2.5,
 50780: 2.5,
 50781: 2.5,
 50782: 2.5,
 50783: 2.5,
 50784: 2.5,
 50785: 2.5,
 50786: 2.5,
 50787: 2.5,
 50788: 2.5,
 50789: 2.5,
 50790: 2.5,
 50791: 2.5,
 50792: 2.5,
 50793: 2.5,
 50794: 2.5,
 50795: 2.5,
 50796: 2.5,
 50797: 2.5,
 50798: 2.5,
 50799: 2.5,
 50800: 2.5,
 50801: 2.5,
 50802: 2.5,
 50803: 2.5,
 50804: 2.5,
 50805: 2.5,
 50806: 2.5,
 50807: 2.5,
 50808: 2.5,
 50809: 2.5,
 50810: 2.5,
 50811: 2.5,
 50812: 2.5,
 50813: 2.5,
 50814: 2.5,
 50815: 2.5,
 50816: 2.5,
 50817: 2.5,
 50818: 2.5,
 50819: 2.5,
 50820: 2.5,
 50821: 2.5,
 50822: 2.5,
 50823: 2.5,
 50824: 2.5,
 50825: 2.5,
 50826: 2.5,
 50952: 2.0,
 50953: 2.0,
 50954: 2.0,
 50955: 2.0,
 50956: 2.0,
 50957: 2.0,
 50958: 2.0,
 50959: 2.0,
 50960: 2.0,
 50961: 2.0,
 50962: 2.0,
 50964: 2.0,
 50965: 2.0,
 50966: 2.0,
 50967: 2.0,
 50968: 2.0,
 50969: 2.0,
 50970: 2.0,
 50971: 2.0,
 50972: 2.0,
 50973: 2.0,
 50974: 2.0,
 50975: 2.0,
 50976: 2.0,
 50977: 2.0,
 50978: 2.0,
 50979: 2.0,
 50980: 2.0,
 50981: 2.0,
 50982: 2.0,
 50983: 2.0,
 50984: 2.0,
 50985: 2.0,
 50986: 2.0,
 50987: 2.0,
 50988: 2.0,
 50989: 2.0,
 50990: 2.0,
 50991: 2.0,
 50992: 2.0,
 50993: 2.0,
 50994: 2.0,
 50995: 2.0,
 50996: 2.0,
 50997: 2.0,
 50998: 2.0,
 50999: 2.0,
 51000: 2.0,
 51001: 2.0,
 51002: 2.0,
 51003: 2.0,
 51006: 2.0,
 51007: 2.0,
 51008: 2.0,
 51009: 2.0,
 51010: 2.0,
 51011: 2.0,
 51012: 2.0,
 51013: 2.0,
 51014: 2.0,
 51015: 2.0,
 51016: 2.0,
 51017: 2.0,
 51018: 2.0,
 51019: 2.0,
 51020: 2.0,
 51021: 2.0,
 51023: 2.0,
 51024: 2.0,
 51025: 2.0,
 51026: 2.0,
 51027: 2.0,
 51028: 2.0,
 51029: 2.0,
 51030: 2.0,
 51032: 2.0,
 51033: 2.0,
 51034: 2.0,
 51035: 2.0,
 51036: 2.0,
 51038: 2.0,
 51039: 2.0,
 51040: 2.0,
 51041: 2.0,
 51042: 2.0,
 51044: 2.0,
 51045: 2.0,
 51046: 2.0,
 51047: 2.0,
 51048: 2.0,
 51049: 2.0,
 51050: 2.0,
 51051: 2.0,
 51052: 2.0,
 51053: 2.0,
 51054: 2.0,
 51055: 2.0,
 51056: 2.0,
 51057: 2.0,
 51058: 2.0,
 51059: 2.0,
 51060: 2.0,
 51061: 2.0,
 51062: 2.0,
 51063: 2.0,
 51064: 2.0,
 51065: 2.0,
 51066: 2.0,
 51067: 2.0,
 51068: 2.0,
 51069: 2.0,
 51070: 2.0,
 51071: 2.0,
 51072: 2.0,
 51073: 2.0,
 51074: 2.0,
 51075: 2.0,
 51076: 2.0,
 51077: 2.0,
 51078: 2.0,
 51079: 2.0,
 51080: 2.0,
 51081: 2.0,
 51082: 2.0,
 51083: 2.0,
 51084: 2.0,
 51085: 2.0,
 51086: 2.0,
 51087: 2.0,
 51088: 2.0,
 51089: 2.0,
 51090: 2.0,
 51091: 2.0,
 51093: 2.0,
 51094: 2.0,
 51095: 2.0,
 51096: 2.0,
 51097: 2.0,
 51098: 2.0,
 51099: 2.0,
 51100: 2.0,
 51101: 2.0,
 51102: 2.0,
 51103: 2.0,
 51104: 2.0,
 51105: 2.0,
 51106: 2.0,
 51107: 2.0,
 51108: 2.0,
 51109: 2.0,
 51110: 2.0,
 51111: 2.0,
 51112: 2.0,
 51113: 2.0,
 51114: 2.0,
 51115: 2.0,
 51116: 2.0,
 51117: 2.0,
 51118: 2.0,
 51119: 2.0,
 51120: 2.0,
 51121: 2.0,
 51122: 2.0,
 51123: 2.0,
 51124: 2.0,
 51125: 2.0,
 51126: 2.0,
 51127: 2.0,
 51128: 2.0,
 51129: 2.0,
 51130: 2.0,
 51131: 2.0,
 51132: 2.0,
 51133: 2.0,
 51134: 2.0,
 51135: 2.0,
 51136: 2.0,
 51137: 2.0,
 51138: 2.0,
 51139: 2.0,
 51140: 2.0,
 51141: 2.0,
 51142: 2.0,
 51146: 2.0,
 51147: 2.0,
 51148: 2.0,
 51149: 2.0,
 51150: 2.0,
 51151: 2.0,
 51152: 2.0,
 51153: 2.0,
 51154: 2.0,
 51155: 2.0,
 51156: 2.0,
 51159: 2.0,
 51160: 2.0,
 51161: 2.0,
 51162: 2.0,
 51163: 2.0,
 51164: 2.0,
 51165: 2.0,
 51166: 2.0,
 51167: 2.0,
 51168: 2.0,
 51169: 2.0,
 51170: 2.0,
 51171: 2.0,
 51172: 2.0,
 51173: 2.0,
 51174: 2.0,
 51175: 2.0,
 51176: 2.0,
 51177: 2.0,
 51178: 2.0,
 51179: 2.0,
 51180: 2.0,
 51181: 2.0,
 51182: 2.0,
 51183: 2.0,
 51184: 2.0,
 51185: 2.0,
 51186: 2.0,
 51187: 2.0,
 51188: 2.0,
 51189: 2.0,
 51190: 2.0,
 51191: 2.0,
 51192: 2.0,
 51193: 2.0,
 51194: 2.0,
 51195: 2.0,
 51196: 2.0,
 51197: 2.0,
 51198: 2.0,
 51199: 2.0,
 51201: 3.0,
 51202: 3.0,
 51203: 3.0,
 51204: 3.0,
 51205: 3.0,
 51206: 3.0,
 51207: 3.0,
 51208: 3.0,
 51209: 3.0,
 51210: 3.0,
 51211: 3.0,
 51212: 3.0,
 51213: 3.0,
 51214: 3.0,
 51215: 3.0,
 51216: 3.0,
 51217: 3.0,
 51218: 3.0,
 51219: 3.0,
 51220: 3.0,
 51221: 3.0,
 51222: 3.0,
 51223: 3.0,
 51224: 3.0,
 51225: 3.0,
 51226: 3.0,
 51227: 3.0,
 51228: 3.0,
 51229: 3.0,
 51230: 3.0,
 51231: 3.0,
 51232: 3.0,
 51233: 3.0,
 51234: 3.0,
 51235: 3.0,
 51236: 3.0,
 51237: 3.0,
 51238: 3.0,
 51239: 3.0,
 51240: 3.0,
 51241: 3.0,
 51242: 3.0,
 51243: 3.0,
 51244: 3.0,
 51245: 3.0,
 51246: 3.0,
 51247: 3.0,
 51248: 3.0,
 51249: 3.0,
 51250: 3.0,
 51251: 3.0,
 51252: 3.0,
 51253: 3.0,
 51254: 3.0,
 51255: 3.0,
 51256: 3.0,
 51257: 3.0,
 51258: 3.0,
 51259: 3.0,
 51260: 3.0,
 51261: 3.0,
 51262: 3.0,
 51263: 3.0,
 51264: 3.0,
 51265: 3.0,
 51266: 3.0,
 51267: 3.0,
 51268: 3.0,
 51269: 3.0,
 51270: 3.0,
 51271: 3.0,
 51272: 3.0,
 51273: 3.0,
 51274: 3.0,
 51275: 3.0,
 51276: 3.0,
 51277: 3.0,
 51278: 3.0,
 51279: 3.0,
 51280: 3.0,
 51281: 3.0,
 51282: 3.0,
 51291: 3.0,
 51292: 3.0,
 51293: 3.0,
 51294: 3.0,
 51295: 3.0,
 51296: 3.0,
 51297: 3.0,
 51298: 3.0,
 51299: 3.0,
 51300: 3.0,
 51301: 3.0,
 51302: 3.0,
 51303: 3.0,
 51304: 3.0,
 51305: 3.0,
 51306: 3.0,
 51307: 3.0,
 51308: 3.0,
 51309: 3.0,
 51310: 3.0,
 51311: 3.0,
 51312: 3.0,
 51313: 3.0,
 51314: 3.0,
 51315: 3.0,
 51316: 3.0,
 51317: 3.0,
 51318: 3.0,
 51319: 3.0,
 51320: 3.0,
 51321: 3.0,
 51322: 3.0,
 51323: 3.0,
 51324: 3.0,
 51325: 3.0,
 51326: 3.0,
 51327: 3.0,
 51328: 3.0,
 51329: 3.0,
 51330: 3.0,
 ...}

In [287]:
X_AUT_subid = X_AUT.as_matrix(['SUB_ID']).squeeze()
X_TD_subid = X_TD.as_matrix(['SUB_ID']).squeeze()

In [288]:
X_TD_tr = [subid_tr_dict[subid] for subid in X_TD_subid]
X_AUT_tr = [subid_tr_dict[subid] for subid in X_AUT_subid]

In [289]:
len(X_TD_tr), len(X_AUT_tr)


Out[289]:
(157, 117)

In [290]:
from scipy import stats
print(stats.ttest_ind(X_AUT_tr, X_TD_tr, equal_var = False))
print('Mean: ',np.mean(X_AUT_tr), np.mean(X_TD_tr))
print('Std: ',np.std(X_AUT_tr), np.std(X_TD_tr))


Ttest_indResult(statistic=0.1729519116961149, pvalue=0.86281945011171912)
Mean:  2.03988888889 2.0360955414
Std:  0.143958907823 0.217196021812

In [291]:
X_AUT


Out[291]:
Unnamed: 0 SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
0 577 SDSU 50183 1 1 14.140 1 R NaN 139.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1 586 SDSU 50192 1 1 12.990 1 R NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
2 810 UM_1 50272 1 1 14.200 1 R NaN 98.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
3 811 UM_1 50273 1 1 16.800 1 R NaN 112.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
4 812 UM_1 50274 1 1 14.200 1 R NaN 111.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
5 813 UM_1 50275 1 1 11.500 1 L NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
6 815 UM_1 50277 1 1 15.400 1 L NaN 107.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
7 817 UM_1 50279 1 1 12.200 1 R NaN 87.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
8 818 UM_1 50280 1 1 15.600 1 -9999 NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
9 820 UM_1 50282 1 1 15.200 1 NaN NaN 121.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
10 821 UM_1 50283 1 1 11.200 1 R NaN 97.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
11 825 UM_1 50287 1 1 14.400 1 L NaN 96.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
12 826 UM_1 50288 1 1 11.100 1 R NaN 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
13 828 UM_1 50290 1 1 14.000 1 R NaN 108.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
14 829 UM_1 50291 1 1 13.900 1 R NaN 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
15 830 UM_1 50292 1 1 12.600 1 R NaN 89.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
16 831 UM_1 50293 1 1 12.400 1 R NaN -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
17 833 UM_1 50295 1 1 11.500 1 R NaN 135.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
18 834 UM_1 50296 1 1 15.100 1 R NaN 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
19 836 UM_1 50298 1 1 12.800 1 R NaN 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
20 837 UM_1 50299 1 1 12.200 1 R NaN 87.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
21 839 UM_1 50301 1 1 16.100 1 L NaN 97.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
22 841 UM_1 50303 1 1 11.600 1 R NaN 84.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
23 842 UM_1 50304 1 1 11.000 1 -9999 NaN 96.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
24 843 UM_1 50305 1 1 10.900 1 R NaN 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
25 844 UM_1 50306 1 1 8.500 1 R NaN 76.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
26 845 UM_1 50307 1 1 9.700 1 Ambi NaN 81.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
27 846 UM_1 50308 1 1 8.900 1 -9999 NaN 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
28 848 UM_1 50310 1 1 9.700 1 R NaN 78.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
29 849 UM_1 50311 1 1 9.800 1 -9999 NaN 89.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
87 270 NYU 50982 1 1 9.460 1 NaN 29.0 119.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.04
88 271 NYU 50983 1 1 10.480 1 NaN 64.0 117.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.85
89 272 NYU 50984 1 1 13.200 1 NaN 48.0 98.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 32.53
90 273 NYU 50985 1 1 13.090 1 NaN 52.0 90.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.13
91 274 NYU 50986 1 1 8.530 1 NaN 33.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
92 275 NYU 50987 1 1 8.560 1 NaN -81.0 105.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
93 277 NYU 50989 1 1 9.780 1 NaN 75.0 84.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
94 278 NYU 50990 1 1 13.710 1 NaN 62.0 131.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.10
95 279 NYU 50991 1 1 10.900 1 NaN 83.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
96 280 NYU 50992 1 1 10.660 1 NaN 27.0 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.33
97 281 NYU 50993 1 1 10.870 1 NaN -83.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
98 282 NYU 50994 1 1 15.660 1 NaN 82.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.94
99 283 NYU 50995 1 1 16.740 1 NaN 75.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.20
100 284 NYU 50996 1 1 15.810 1 NaN -47.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
101 285 NYU 50997 1 1 16.270 1 NaN -33.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.15
102 286 NYU 50998 1 1 13.040 1 NaN 3.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
103 287 NYU 50999 1 1 14.530 1 NaN 0.0 95.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 34.45
104 288 NYU 51000 1 1 13.330 1 NaN -68.0 78.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 35.43
105 289 NYU 51001 1 1 10.710 1 NaN 22.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.37
106 291 NYU 51003 1 1 8.510 1 NaN 27.0 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.71
107 292 NYU 51006 1 1 11.110 1 NaN 36.0 103.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 16.98
108 293 NYU 51007 1 1 11.920 1 NaN 95.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.11
109 295 NYU 51009 1 1 11.030 1 NaN -9.0 86.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.63
110 297 NYU 51011 1 1 8.790 1 NaN 66.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.27
111 298 NYU 51012 1 1 9.790 1 NaN -7.0 96.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
112 299 NYU 51013 1 1 7.150 1 NaN -12.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.68
113 300 NYU 51014 1 1 11.005 1 NaN 75.0 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 17.42
114 317 NYU 51033 1 1 9.980 1 NaN 47.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.12
115 318 NYU 51034 1 1 10.650 1 NaN 83.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.77
116 319 NYU 51035 1 1 10.270 1 NaN 22.0 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.46

117 rows × 75 columns


In [292]:
X_TD


Out[292]:
Unnamed: 0 SITE_ID SUB_ID DX_GROUP DSM_IV_TR AGE_AT_SCAN SEX HANDEDNESS_CATEGORY HANDEDNESS_SCORES FIQ ... WISC_IV_BLK_DSN_SCALED WISC_IV_PIC_CON_SCALED WISC_IV_MATRIX_SCALED WISC_IV_DIGIT_SPAN_SCALED WISC_IV_LET_NUM_SCALED WISC_IV_CODING_SCALED WISC_IV_SYM_SCALED EYE_STATUS_AT_SCAN AGE_AT_MPRAGE BMI
0 480 OLIN 50102 2 0 14.000 1 R NaN 103.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
1 477 OLIN 50103 2 0 14.000 1 R NaN 106.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
2 476 OLIN 50104 2 0 16.000 1 R NaN 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
3 473 OLIN 50105 2 0 17.000 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
4 485 OLIN 50106 2 0 10.000 1 R NaN 129.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
5 483 OLIN 50110 2 0 13.000 1 R NaN 79.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
6 478 OLIN 50111 2 0 14.000 1 R NaN 118.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
7 487 OLIN 50112 2 0 17.000 1 R NaN 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
8 474 OLIN 50116 2 0 15.000 1 R NaN 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
9 588 SDSU 50194 2 0 13.350 1 L NaN 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
10 589 SDSU 50195 2 0 12.580 1 R NaN 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
11 590 SDSU 50196 2 0 12.910 1 R NaN 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
12 593 SDSU 50199 2 0 15.530 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
13 594 SDSU 50200 2 0 13.880 1 R NaN 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
14 596 SDSU 50202 2 0 12.080 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
15 597 SDSU 50203 2 0 16.050 1 L NaN 117.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
16 598 SDSU 50204 2 0 14.860 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
17 603 SDSU 50209 2 0 16.570 1 L NaN 126.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
18 604 SDSU 50210 2 0 16.600 1 R NaN 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
19 865 UM_1 50327 2 0 15.300 1 L NaN 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
20 866 UM_1 50328 2 0 17.400 1 R NaN 91.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
21 867 UM_1 50329 2 0 17.100 1 R NaN 100.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
22 868 UM_1 50330 2 0 16.100 1 R NaN 120.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
23 870 UM_1 50332 2 0 10.400 1 R NaN 103.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
24 871 UM_1 50333 2 0 10.200 1 R NaN 100.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
25 872 UM_1 50334 2 0 11.000 1 R NaN 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
26 875 UM_1 50337 2 0 11.800 1 R NaN 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
27 877 UM_1 50339 2 0 18.000 1 R NaN -9999.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
28 880 UM_1 50342 2 0 12.600 1 R NaN 103.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
29 883 UM_1 50345 2 0 17.300 1 R NaN 118.5 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
127 371 NYU 51089 2 0 10.760 1 NaN 55.0 138.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
128 372 NYU 51090 2 0 11.030 1 NaN 44.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.00
129 373 NYU 51091 2 0 11.320 1 NaN 72.0 142.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 22.86
130 374 NYU 51093 2 0 11.690 1 NaN 44.0 116.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 15.36
131 375 NYU 51094 2 0 12.100 1 NaN 63.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
132 376 NYU 51095 2 0 12.230 1 NaN 61.0 123.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
133 377 NYU 51096 2 0 13.180 1 NaN 72.0 101.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
134 378 NYU 51097 2 0 13.583 1 NaN 91.0 126.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.29
135 379 NYU 51098 2 0 13.628 1 NaN 82.0 134.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 18.13
136 380 NYU 51099 2 0 13.720 1 NaN 69.0 87.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 18.19
137 381 NYU 51100 2 0 14.360 1 NaN 90.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 19.34
138 382 NYU 51101 2 0 14.425 1 NaN 44.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 24.12
139 383 NYU 51102 2 0 14.653 1 NaN 22.0 110.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
140 385 NYU 51104 2 0 15.270 1 NaN 75.0 104.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.60
141 386 NYU 51105 2 0 15.284 1 NaN 61.0 83.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.67
142 387 NYU 51106 2 0 15.420 1 NaN 91.0 85.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 23.92
143 388 NYU 51107 2 0 15.530 1 NaN 73.0 107.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 21.17
144 389 NYU 51108 2 0 15.710 1 NaN 63.0 108.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.27
145 390 NYU 51109 2 0 16.130 1 NaN 69.0 109.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 27.47
146 391 NYU 51110 2 0 16.280 1 NaN 82.0 125.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 28.69
147 392 NYU 51111 2 0 16.550 1 NaN 81.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
148 401 NYU 51120 2 0 10.190 1 NaN 68.0 115.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
149 402 NYU 51121 2 0 10.740 1 NaN 90.0 113.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN 20.52
150 403 NYU 51122 2 0 11.920 1 NaN 100.0 111.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
151 404 NYU 51123 2 0 12.070 1 NaN -9999.0 130.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
152 405 NYU 51124 2 0 12.670 1 NaN 63.0 124.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
153 406 NYU 51125 2 0 14.790 1 NaN 60.0 112.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
154 407 NYU 51126 2 0 16.310 1 NaN 100.0 81.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
155 408 NYU 51127 2 0 16.550 1 NaN 29.0 91.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00
156 410 NYU 51129 2 0 17.700 1 NaN 46.0 102.0 ... NaN NaN NaN NaN NaN NaN NaN 1 NaN -9999.00

157 rows × 75 columns


In [328]:
X_TD_FIQ = X_TD.as_matrix(['FIQ']).squeeze()
X_AUT_FIQ = X_AUT.as_matrix(['FIQ']).squeeze()

In [329]:
X_TD_FIQ


Out[329]:
array([  103. ,   106. ,   125. ,   100. ,   129. ,    79. ,   118. ,
         102. ,   115. ,   110. ,   123. ,   110. ,   100. ,   108. ,
         100. ,   117. ,   100. ,   126. ,   123. ,   111. ,    91.5,
         100. ,   120. ,   103.5,   100.5,   108. ,   112. , -9999. ,
         103.5,   118.5,   122. ,   109.5,   116. ,   113.5,   127.5,
         113.5,   108. ,   104.5,    97. ,   102. ,   105. ,   118.5,
          93.5,    97.5,   107.5,    98.5,   113.5,   114. ,   114.5,
         116. ,   129. ,    93.5,   103.5,   113.5,   111.5,   108.5,
         121.5,   112. ,   111. ,   116. ,   114.5,   111.5,   125.5,
         112. ,    96. ,    89.5,   100. ,   126. ,   138. ,   130. ,
         144. ,   109. ,   121. ,   109. ,   109. ,   113. ,   119. ,
         106. ,    94. ,   127. ,    99. ,    78. ,   123. ,   111. ,
         114. ,   140. ,   107. ,    80. ,    92. ,    88. ,    92. ,
         103. ,    91. ,    73. ,   104. ,   109. ,   124. ,   124. ,
         102. ,   125. ,   105. ,   108. ,   102. ,   112. ,   117. ,
         114. ,   125. ,   118. ,   118. ,   125. ,   108. ,   119. ,
         119. ,    98. ,   101. ,   114. ,    98. ,   118. ,   114. ,
         129. ,    98. ,   119. ,   100. ,   118. ,   101. ,   111. ,
         121. ,   138. ,   107. ,   142. ,   116. ,   107. ,   123. ,
         101. ,   126. ,   134. ,    87. ,    91. ,   104. ,   110. ,
         104. ,    83. ,    85. ,   107. ,   108. ,   109. ,   125. ,
         113. ,   115. ,   113. ,   111. ,   130. ,   124. ,   112. ,
          81. ,    91. ,   102. ])

In [330]:
np.max(X_TD_FIQ), np.min(X_TD_FIQ)


Out[330]:
(144.0, -9999.0)

In [331]:
np.max(X_AUT_FIQ), np.min(X_AUT_FIQ)


Out[331]:
(147.5, -9999.0)

In [332]:
# Removing the unknown value -9999
import math

_X_TD_FIQ = []
for iq in X_TD_FIQ:
    if not math.isnan(iq) and iq >= 96 :
        _X_TD_FIQ.append(iq)

_X_AUT_FIQ = []
for iq in X_AUT_FIQ:
    if not math.isnan(iq) and iq >= 96:
        _X_AUT_FIQ.append(iq)

X_TD_FIQ = np.array(_X_TD_FIQ)
X_AUT_FIQ = np.array(_X_AUT_FIQ)

In [333]:
np.max(X_TD_FIQ), np.min(X_TD_FIQ)


Out[333]:
(144.0, 96.0)

In [334]:
np.max(X_AUT_FIQ), np.min(X_AUT_FIQ)


Out[334]:
(147.5, 96.0)

In [335]:
from scipy import stats
print(stats.ttest_ind(X_AUT_FIQ, X_TD_FIQ, equal_var = False))
print('Mean: ',np.mean(X_AUT_FIQ), np.mean(X_TD_FIQ))
print('Std: ',np.std(X_AUT_FIQ), np.std(X_TD_FIQ))


Ttest_indResult(statistic=-1.523841743119696, pvalue=0.13000371634710556)
Mean:  110.816901408 113.310218978
Std:  11.5127728934 10.3237963698

In [336]:
len(X_TD_FIQ), len(X_AUT_FIQ)


Out[336]:
(137, 71)

In [ ]:


In [ ]: