Browse Source

examples freesurfer: replace `barplot.py` with `freesurfer_hipposf.ipynb`

Fabian Peter Hammerle 5 years ago
parent
commit
d5e4008597
3 changed files with 1194 additions and 52 deletions
  1. 0 52
      examples/barplot.py
  2. 1167 0
      examples/freesurfer_hipposf.ipynb
  3. 27 0
      examples/freesurfer_hipposf_volumes_bert.csv

+ 0 - 52
examples/barplot.py

@@ -1,52 +0,0 @@
-import argparse
-
-from matplotlib import pyplot
-import pandas
-import seaborn
-
-from freesurfer_volume_reader import freesurfer
-
-
-def generate_freesurfer_mode_label(row):
-    mri_sequences = ['T1' if row['T1_input'] else None,
-                     row['analysis_id'].split('_')[0] if row['analysis_id'] else None]
-    return ' & '.join(filter(None, mri_sequences))
-
-
-def main():
-    argparser = argparse.ArgumentParser()
-    argparser.add_argument('--subject', required=True)
-    argparser.add_argument('--subjects-dir', dest='subjects_dir_path', required=True)
-    args = argparser.parse_args()
-    volume_frame = pandas.concat(
-        f.read_volumes_dataframe() for f in
-        freesurfer.HippocampalSubfieldsVolumeFile.find(args.subjects_dir_path))
-    volume_frame['subfield_segmentation_mode'] = volume_frame.apply(
-        generate_freesurfer_mode_label, axis=1)
-    volume_frame = volume_frame[volume_frame['subject'] == args.subject]
-    volume_frame.to_csv('hippocampal_subfield_volumes_{}.csv'.format(args.subject), index=False)
-    volume_frame.drop(columns=['subject', 'T1_input', 'analysis_id'], inplace=True)
-    print(volume_frame)
-    volume_frame.sort_values(['subfield_segmentation_mode', 'subfield'], inplace=True)
-    seaborn.set(font_scale=0.3)
-    volume_frame_subfields = volume_frame[volume_frame['subfield'] != 'Whole_hippocampus']
-    for hemisphere in ['left', 'right']:
-        pyplot.ylim(0, 750)
-        plot_ax = seaborn.barplot(data=volume_frame_subfields[volume_frame_subfields['hemisphere']
-                                                              == hemisphere],
-                                  x='subfield', y='volume_mm^3',
-                                  hue='subfield_segmentation_mode')
-        plot_ax.set_title('Hippocampal Subfield Volumes of Subject {}'.format(args.subject)
-                          + '\n{} Hemisphere'.format(str.capitalize(hemisphere)))
-        pyplot.savefig('hippocampal_subfield_volumes_{}_{}.png'.format(args.subject, hemisphere))
-        pyplot.clf()
-    seaborn.set(font_scale=0.4)
-    plot_ax = seaborn.barplot(data=volume_frame[volume_frame['subfield'] == 'Whole_hippocampus'],
-                              x='hemisphere', y='volume_mm^3',
-                              hue='subfield_segmentation_mode')
-    plot_ax.set_title('Hippocampal Volume of Subject {}'.format(args.subject))
-    pyplot.savefig('hippocampal_volume_{}.png'.format(args.subject))
-
-
-if __name__ == '__main__':
-    main()

File diff suppressed because it is too large
+ 1167 - 0
examples/freesurfer_hipposf.ipynb


+ 27 - 0
examples/freesurfer_hipposf_volumes_bert.csv

@@ -0,0 +1,27 @@
+subfield,volume_mm^3,subject,hemisphere,T1_input,analysis_id,segmentation_mode
+Hippocampal_tail,123.456789,bert,left,True,,T1
+subiculum,234.567891,bert,left,True,,T1
+CA1,34.567891,bert,left,True,,T1
+hippocampal-fissure,345.678912,bert,left,True,,T1
+presubiculum,456.789123,bert,left,True,,T1
+parasubiculum,45.678912,bert,left,True,,T1
+molecular_layer_HP,56.789123,bert,left,True,,T1
+GC-ML-DG,567.891234,bert,left,True,,T1
+CA3,678.912345,bert,left,True,,T1
+CA4,789.123456,bert,left,True,,T1
+fimbria,89.123456,bert,left,True,,T1
+HATA,91.234567,bert,left,True,,T1
+Whole_hippocampus,1234.567899,bert,left,True,,T1
+Hippocampal_tail,124.456789,bert,left,True,T2,T1 & T2
+subiculum,244.567891,bert,left,True,T2,T1 & T2
+CA1,44.567891,bert,left,True,T2,T1 & T2
+hippocampal-fissure,445.678912,bert,left,True,T2,T1 & T2
+presubiculum,456.789124,bert,left,True,T2,T1 & T2
+parasubiculum,45.678912,bert,left,True,T2,T1 & T2
+molecular_layer_HP,56.789124,bert,left,True,T2,T1 & T2
+GC-ML-DG,567.891244,bert,left,True,T2,T1 & T2
+CA3,678.912445,bert,left,True,T2,T1 & T2
+CA4,789.124456,bert,left,True,T2,T1 & T2
+fimbria,89.124456,bert,left,True,T2,T1 & T2
+HATA,91.244567,bert,left,True,T2,T1 & T2
+Whole_hippocampus,1244.567899,bert,left,True,T2,T1 & T2

Some files were not shown because too many files changed in this diff