Skip to content

Instantly share code, notes, and snippets.

@akhanf
Created September 28, 2022 21:07
Show Gist options
  • Save akhanf/ae2547b7d201d9f303410956a59f4573 to your computer and use it in GitHub Desktop.
Save akhanf/ae2547b7d201d9f303410956a59f4573 to your computer and use it in GitHub Desktop.
Hippunfold - calculating mean surface metrics over subfields
import nibabel as nib
subjects = ['01']
hemis = ['L','R']
subfield_labels={1:'Sub',2:'CA1',3:'CA2',4:'CA3',5:'CA4'}
hipp_metrics = ['thickness','gyrification']
dentate_metrics = ['gyrification']
with open('table.csv','w') as f:
print('subject,hemi,label,metric,meanvalue',file=f)
for subject in subjects:
for hemi in hemis:
subfields = nib.load(f'hippunfold/sub-{subject}/ses-1/surf/sub-{subject}_ses-1_hemi-{hemi}_space-T1w_den-0p5mm_label-hipp_subfields.label.gii').agg_data()
for metric in hipp_metrics:
hippdata = nib.load(f'hippunfold/sub-{subject}/ses-1/surf/sub-{subject}_ses-1_hemi-{hemi}_space-T1w_den-0p5mm_label-hipp_{metric}.shape.gii').agg_data()
for label,name in subfield_labels.items():
meanval = hippdata[subfields==label].mean()
print(f'sub-{subject},{hemi},{name},{metric},{meanval:.3f}',file=f)
if metric in dentate_metrics:
name = 'DG'
dgdata = nib.load(f'hippunfold/sub-{subject}/ses-1/surf/sub-{subject}_ses-1_hemi-{hemi}_space-T1w_den-0p5mm_label-dentate_{metric}.shape.gii').agg_data()
meanval = dgdata.mean()
print(f'sub-{subject},{hemi},{name},{metric},{meanval:.3f}',file=f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment