def test_read_stats_file_lh_aparc_DKTatlas(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'lh.aparc.DKTatlas.stats') stats = st.stat(stats_file) assert len(stats) == 5 assert len(stats['ignored_lines']) == 18 assert len(stats['measures']) == 10 assert len(stats['table_data']) == 31 assert len(stats['table_meta_data']) == 3 assert len(stats['table_column_headers']) == 10 assert 'ColHeaders' in stats['table_meta_data'] assert 'NTableCols' in stats['table_meta_data'] assert 'column_info_' in stats['table_meta_data'] assert len(stats['table_meta_data']['column_info_']) == 10
def test_read_stats_file_rh_aparc_DKTatlas(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'rh.aparc.DKTatlas.stats') stats = st.stat(stats_file) assert len(stats) == 5 assert len(stats['ignored_lines']) == 18 assert len(stats['measures']) == 10 assert len(stats['table_data']) == 31 assert len(stats['table_meta_data']) == 3 assert len(stats['table_column_headers']) == 10 assert stats['table_column_headers'] == [ 'StructName', 'NumVert', 'SurfArea', 'GrayVol', 'ThickAvg', 'ThickStd', 'MeanCurv', 'GausCurv', 'FoldInd', 'CurvInd' ] assert 'ColHeaders' in stats['table_meta_data'] assert 'NTableCols' in stats['table_meta_data'] assert 'column_info_' in stats['table_meta_data'] assert len(stats['table_meta_data']['column_info_']) == 10
def test_read_stats_file_aseg(): stats_file = os.path.join(TEST_DATA_DIR, 'subject1', 'stats', 'aseg.stats') stats = st.stat(stats_file) assert len(stats) == 5 assert 'measures' in stats assert 'table_data' in stats assert 'table_meta_data' in stats assert 'ignored_lines' in stats assert 'table_column_headers' in stats # check ignored lines ignored_lines = stats['ignored_lines'] assert len(ignored_lines) == 25 # check measures measures = stats['measures'] assert len(measures) == 22 expected_measures = [ 'BrainSeg', 'BrainSegNotVent', 'BrainSegNotVentSurf', 'VentricleChoroidVol', 'lhCortex', 'rhCortex', 'Cortex', 'lhCerebralWhiteMatter', 'rhCerebralWhiteMatter', 'CerebralWhiteMatter', 'SubCortGray', 'TotalGray', 'SupraTentorial', 'SupraTentorialNotVent', 'SupraTentorialNotVentVox', 'Mask', 'BrainSegVol-to-eTIV', 'MaskVol-to-eTIV', 'lhSurfaceHoles', 'rhSurfaceHoles', 'SurfaceHoles', 'EstimatedTotalIntraCranialVol' ] for measure_data_list in measures: assert len(measure_data_list) == 5 measure_name = measure_data_list[0] assert measure_name in expected_measures # fully test a single measure assert measures[0][0] == 'BrainSeg' assert measures[0][1] == 'BrainSegVol' assert measures[0][2] == 'Brain Segmentation Volume' assert measures[0][3] == '1243340.000000' assert measures[0][4] == 'mm^3' # check table_data table_data = stats['table_data'] assert len(table_data) == 45 for index, row in enumerate(table_data): assert len(row) == 10 assert int( row[0] ) == index + 1 # first element should be the row index, and it starts at 1 (and lines should be in the order in which they appear in the file) # fully test a row row10 = table_data[9] assert row10[0] == "10" assert row10[1] == "15" assert row10[2] == "2099" assert row10[3] == "2209.1" assert row10[4] == "4th-Ventricle" assert row10[5] == "25.1806" assert row10[6] == "10.7109" assert row10[7] == "8.0000" assert row10[8] == "74.0000" assert row10[9] == "66.0000" # check table meta data table_meta_data = stats['table_meta_data'] assert table_meta_data['NRows'] == "45" assert table_meta_data['NTableCols'] == "10" assert 'column_info_' in table_meta_data assert len(table_meta_data['column_info_']) == 10 # fully test a single column info second_column_header = table_meta_data['column_info_']['2'] assert len(second_column_header) == 3 for expected_key in ['ColHeader', 'FieldName', 'Units']: assert expected_key in second_column_header.keys() assert second_column_header['ColHeader'] == "SegId" assert second_column_header['FieldName'] == "Segmentation Id" assert second_column_header['Units'] == "NA"