surface-based group analysis in freesurfer

65
Surface-based Group Analysis in FreeSurfer

Upload: fionn

Post on 19-Mar-2016

139 views

Category:

Documents


12 download

DESCRIPTION

Surface-based Group Analysis in FreeSurfer. Outline. Group Analysis Overview Theory Surface-based Intersubject Registration Surface-based Smoothing General Linear Model (GLM) Practice FSGD File Processing Stages Vertex-wise Analysis Correction for multiple comparisons - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Surface-based Group Analysis in FreeSurfer

Surface-based Group Analysisin FreeSurfer

Page 2: Surface-based Group Analysis in FreeSurfer

2

Outline• Group Analysis Overview • Theory

• Surface-based Intersubject Registration• Surface-based Smoothing• General Linear Model (GLM)

• Practice • FSGD File • Processing Stages• Vertex-wise Analysis• Correction for multiple comparisons

• Interactive/Automated GUI (QDEC)

Page 3: Surface-based Group Analysis in FreeSurfer

3

Analysis Pipeline

FoldingPattern

Thickness

Template: fsaverage

Thickness(fsaverage)

SurfaceSmoothed

Input T1Surface

Extraction

Surface-basedNormalization

ApplyNormalization

Native Space

recon-all recon-all –qcache

Group Analysis(Design X, Contrast C)

mris_preprocmri_glmfitmri_glmfit-sim

Page 4: Surface-based Group Analysis in FreeSurfer

4

p<.01

Aging Thickness Study

Positive Age Correlation

Negative Age Correlation

N=40

Design X (slope, intercept) Contrast C

Page 5: Surface-based Group Analysis in FreeSurfer

5

Theory1. Surface-based Intersubject Registration2. Surface-based Smoothing3. General Linear Model (GLM)

Page 6: Surface-based Group Analysis in FreeSurfer

6

Surface-based Measures• Morphometric (eg, thickness)• Functional• PET• MEG/EEG• Diffusion (?) sampled just under the surface

Page 7: Surface-based Group Analysis in FreeSurfer

7

Surface-based Spatial Normalization

FoldingPattern

Thickness

Template: fsaverage

Thickness(fsaverage)

SurfaceSmoothed

Input T1Surface

Extraction

Surface-basedNormalization

ApplyNormalization

Native Space

recon-all recon-all –qcache

Group Analysis(Design X, Contrast C)

mris_preprocmri_glmfitmri_glmfit-sim

Page 8: Surface-based Group Analysis in FreeSurfer

8

Coordinate Systems: 3D (Volumetric)

• 3D Coordinate System • XYZ• RAS (Right-Anterior-Superior)• CRS (Column-Row-Slice)• Origin (XYZ=0, eg, AC) • MR Intensity at each XYZ

x

z

y

Page 9: Surface-based Group Analysis in FreeSurfer

9

Coordinate Systems: 2D (Surface)

superior temporal calcarine

central

sylvian

anteriorposterior

pial inflated

Curvature • SULCUS (+)• GYRUS (-)

Sheet: 2D Coordinate System (X,Y) Sphere: 2D Coordinate System • Latitude and Longitude • Continuous, no cuts• Value at each point (eg, thickness)

x

y

Page 10: Surface-based Group Analysis in FreeSurfer

10

Volumetric Intersubject Registration

• Affine/Linear • Translate• Rotate• Stretch• Shear• (12 DOF)

• Match Intensity, Voxel-by-Voxel• Problems• Can use nonlinear volumetric (cf CVS)

Page 11: Surface-based Group Analysis in FreeSurfer

11

Surface-based Intersubject RegistrationSubject 2Subject 1

• Translate, Rotate, Stretch, Shear (12 DOF)• Match Curvature, Vertex-by-Vertex• Nonlinear Stretching (“Morphing”) allowed (area regularization)• Actually done on sphere• “Spherical Morph”

Curvature “Intensity”• SULCUS (+)• GYRUS (-)• Codes folding pattern

Page 12: Surface-based Group Analysis in FreeSurfer

1212

fsaverage: A Surface-Based Coordinate System

Common space for group analysis (like Talairach) – “fsaverage”

Page 13: Surface-based Group Analysis in FreeSurfer

13

Surface-based Intersubject Registration

• Gray Matter-to-Gray Matter (it’s all gray matter!)• Gyrus-to-Gyrus and Sulcus-to-Sulcus • Some minor folding patterns won’t line up• Fully automated, no landmarking needed• Atlas registration is probabilistic, most variable regions get less weight.• Done automatically in recon-all

Page 14: Surface-based Group Analysis in FreeSurfer

14

Spatial Smoothing

FoldingPattern

Thickness

Template: fsaverage

Thickness(fsaverage)

SurfaceSmoothed

Input T1Surface

Extraction

Surface-basedNormalization

ApplyNormalization

Native Space

recon-all recon-all –qcache

Group Analysis(Design X, Contrast C)

mris_preprocmri_glmfitmri_glmfit-sim

Page 15: Surface-based Group Analysis in FreeSurfer

15

Spatial Smoothing

Why should you smooth?• Might Improve CNR• Improve intersubject registration (functional)

How much smoothing?• Blob-size• Typically 10-20 mm FWHM • Surface smoothing more forgiving than volume-based

Page 16: Surface-based Group Analysis in FreeSurfer

16

Volume-based Smoothing

• Smoothing is averaging of nearby voxels

7mm FWHM

14mm FWHM

Page 17: Surface-based Group Analysis in FreeSurfer

17

Volume-based Smoothing

• 5 mm apart in 3D• 25 mm apart on surface!• Kernel much larger• Averaging with other tissue types (WM, CSF)• Averaging with other functional areas

14mm FWHM

Page 18: Surface-based Group Analysis in FreeSurfer

18

Surface-based Smoothing

superior temporal calcarine

central

sylvian

anteriorposterior

Sheet: 2D Coordinate System (X,Y) Sphere: 2D Coordinate System ()

• Smoothing is averaging of nearby vertices

Page 19: Surface-based Group Analysis in FreeSurfer

19

Group Analysis

FoldingPattern

Thickness

Template: fsaverage

Thickness(fsaverage)

SurfaceSmoothed

Input T1Surface

Extraction

Surface-basedNormalization

ApplyNormalization

Native Space

recon-all recon-all –qcache

Group Analysis(Design X, Contrast C)

Page 20: Surface-based Group Analysis in FreeSurfer

20

GLM Theory: Design Matrix

y11y12y13y21y22y23

G1 G2 G1*Age G2*Age

1 0 20 01 0 25 01 0 30 00 1 0 180 1 0 230 1 0 35

b1b2m1m2=

.

Data Design Matrix Regression Coefficients

y = X*

Page 21: Surface-based Group Analysis in FreeSurfer

21

GLM Theory: Contrasts

y11y12y13y21y22y23

G1 G2 G1*Age G2*Age

1 0 20 01 0 25 01 0 30 00 1 0 180 1 0 230 1 0 35

b1b2m1m2=

.

CGroup = [1 -1 0 0] Group diff=0?

CAge = [0 0 0.5 0.5] Mean slope=0?

CGroupXAge = [0 0 +1 -1] Group/Age InterX?

Page 22: Surface-based Group Analysis in FreeSurfer

22

Vertex-wise Analysis and Inference

TT CXXC

Ct12 )(*

*

y = X*XtX)-1Xty=C*

p-value/significance• value between 0 and 1• closer to 0 means more significantFreeSurfer stores p-values as –log10(p):• sig.mgh files• Signed by sign of • p-value is for an unsigned test

p<.01sig>2

+

-

p-value sig

0.1 =10-1.0 1.00.05 =10-1.3 1.30.01 =10-2.0 2.00.001=10-3.0 3.0

Page 23: Surface-based Group Analysis in FreeSurfer

23

Practice1. X (Design Matrix)2. C (Contrast Matrix or Matrices)3. y (Data)4. Analysis5. Correction for multiple comarisons

Page 24: Surface-based Group Analysis in FreeSurfer

24

Specifying X and C1. Manually create X – text editor

• Manually create C2. FSGD file – text editor

• FreeSurfer creates X• Manually create C

3. QDEC – spread sheet, etc• FreeSurfer creates X and C

Page 25: Surface-based Group Analysis in FreeSurfer

25

FreeSurfer Group Descriptor (FSGD) File

• Simple text file (ascii, clear text)• List of all subjects in the study• Accompanying demographics• Like a spreadsheet

Page 26: Surface-based Group Analysis in FreeSurfer

26

FSGD Format GroupDescriptorFile 1 Class Male Class Female Variables Age Weight IQ Input bert Male 10 100 1000 Input fred Male 15 150 1500 Input jenny Female 20 200 2000 Input margaret Female 25 250 2500

• One Discrete Factor (Gender) with Two Levels (M&F)• Three Continuous Variables: Age, Weight, IQ• $SUBJECTS_DIR/bert

Page 27: Surface-based Group Analysis in FreeSurfer

27

FSGD X (Automatic)

DODS – Different Offset, Different Slope

C = [-1 1 0 0 0 0 0 0]}

Tests for the difference in intercept/offset between groups

1 0 10 0 100 0 1000 0 1 0 15 0 150 0 1500 0 0 1 0 20 0 200 0 2000 0 1 0 25 0 250 0 2500

X =

Male Group

Female GroupFemale*Age

Male*Age

WeightAge IQ

C = [ 0 0 -1 1 0 0 0 0]}Tests for the difference in age slope between groups

{

Man

ual

Page 28: Surface-based Group Analysis in FreeSurfer

28

Factors, Levels, Groups, ClassesFactors can be Discrete or Continuous:• Continuous Variables: Age, IQ, Volume, etc• Discrete Factors: Gender, Handedness, Diagnosis• Discrete Factors have Levels:

• Gender: Male and Female• Handedness: Left and Right• Diagnosis: Normal, MCI, AD

Group or Class: Specification of All Discrete Factors:• Left-handed Male MCI• Right-handed Female Normal

Page 29: Surface-based Group Analysis in FreeSurfer

29

Number of Regressors

NRegressors

Each Group/Class:• Has its own Intercept• Has its own Slope for each continuous variable• DODS = Different offset, different slope

NRegressors = NClasses*(NVariables+1)

C = [-1 1 0 0 0 0 0 0]}

Tests for the difference in intercept/offset between groups

C = [ 0 0 -1 1 0 0 0 0]}Tests for the difference in age slope between groups

Page 30: Surface-based Group Analysis in FreeSurfer

30

Data (y): Thickness Study

1. $SUBJECTS_DIR/bert/surf/lh.thickness2. $SUBJECTS_DIR/fred/surf/lh.thickness3. $SUBJECTS_DIR/jenny/surf/lh.thickness4. $SUBJECTS_DIR/margaret/surf/lh.thickness5. …

Page 31: Surface-based Group Analysis in FreeSurfer

31

--fsgd FSGDFile : Specify subjects thru FSGD File--hemi lh : Process left hemisphere--meas thickness : $SUBJECTS_DIR/subjectid/surf/hemi.thickness--target fsaverage : common space is subject fsaverage--o lh.thickness.mgh : output “volume-encoded surface file”

Lots of other options!

Assemble Data: mris_preproc mris_preproc --help

lh.thickness.mgh – file with thickness maps for all subjects Input to Smoother or GLM

See also: recon-all -qcache

Page 32: Surface-based Group Analysis in FreeSurfer

32

A Stack of Images

lh.thickness.mgh – file with thickness maps for all subjects Input to Smoother or GLM

Page 33: Surface-based Group Analysis in FreeSurfer

33

Surface Smoothing

• mri_surf2surf --help• Loads lh.thickness.mgh • 2D surface-based smoothing • Specify FWHM (eg, fwhm = 10 mm)• Saves lh.thickness.sm10.mgh• Can be slow (~10-30min)• recon-all -qcache

Page 34: Surface-based Group Analysis in FreeSurfer

34

Estimation and Inference: mri_glmfit• Reads in FSGD File and constructs X • Reads in your contrasts (C1, C2, etc)• Loads data (y=lh.thickness.sm10.mgh)• Fits GLM (ie, computes )• Computes contrasts (=C*)• t or F ratios, significances • Significance -log10(p) (.01 2, .001 3)

Page 35: Surface-based Group Analysis in FreeSurfer

35

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir mri_glmfit --help

Page 36: Surface-based Group Analysis in FreeSurfer

36

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

Input file (output from smoothing).Stack of subjects, one frame per subject

Page 37: Surface-based Group Analysis in FreeSurfer

37

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

•FreeSurfer Group Descriptor File (FSGD)•Group membership•Covariates

Page 38: Surface-based Group Analysis in FreeSurfer

38

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

• Contrast Matrices• Simple text/ASCII files• Test hypotheses

Page 39: Surface-based Group Analysis in FreeSurfer

39

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

• Perform analysis on left hemisphere of fsaverage subject• Masks by fsaverage cortex.label• Computes FWHM in 2D

Page 40: Surface-based Group Analysis in FreeSurfer

40

mri_glmfit

mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

Output directory:lh.gender_age.glmdir/ beta.mgh – parameter estimates rvar.mgh – residual error variance etc … age/ sig.mgh = -log10(p), uncorrected gamma.mgh, F.mgh gender/ sig.mgh = -log10(p) gamma.mgh, F.mgh

Page 41: Surface-based Group Analysis in FreeSurfer

41

Visualization with tksurfer

View->Configure->Overlay

Threshold:-log10(p),Eg, 2=.01

Saturation:-log10(p),Eg, 5=.00001

FalseDiscoveryRateEg, .01

File->LoadOverlay

Page 42: Surface-based Group Analysis in FreeSurfer

42

Visualization with tksurfer

File-> Load Group Descriptor File …

Page 43: Surface-based Group Analysis in FreeSurfer

43

Problem of Multiple Comparisons

p < 0.10 p < 0.01 p < 10-7

p value is probability that a voxel is falsely activated• Threshold too liberal: many false positives• Threshold too restrictive: lose activation (false negatives)

Page 44: Surface-based Group Analysis in FreeSurfer

Clusters

• True signal tends to be clustered• False Positives tend to be randomly distributed in space• Cluster – set of spatially contiguous voxels that are above a given threshold.

p<.10 p<.01 p<10-7

Page 45: Surface-based Group Analysis in FreeSurfer

Cluster-forming Threshold

p<.001sig<3

p<.0001sig<4

p<.00001sig<5

As threshold lowers, clusters may expand or merge and new clusters can form. No way to say what the threshold should be.

Unthresholded

Page 46: Surface-based Group Analysis in FreeSurfer

Cluster Table, Uncorrected

p<.0001sig<4

38 clustersClusterNo Area(mm2) X Y Z StructureCluster 1 3738.82 -11.1 34.5 27.2 superiorfrontal Cluster 2 5194.19 -32.4 -23.3 15.7 insula Cluster 3 1271.30 -25.9 -75.0 19.0 superiorparietal Cluster 4 775.38 -44.4 -9.7 51.3 precentral Cluster 5 440.56 -33.0 -36.8 37.5 supramarginal…

How likely is it to get a cluster of a certain size under the null hypothesis?

Page 47: Surface-based Group Analysis in FreeSurfer

47

Correction for Multiple Comparisons

• Cluster-based– Monte Carlo simulation – Permutation Tests

• False Discovery Rate (FDR) – built into tksurfer and QDEC. (Genovese, et al, NI 2002)

Page 48: Surface-based Group Analysis in FreeSurfer

48

Cluster-based Corr. for Multiple Comparisons1. Simulate data under Null Hypothesis:

– Synthesize Gaussian noise and then smooth (Monte Carlo)– Permute rows of design matrix (Permutation, orthog)

2. Analyze, threshold, cluster, max cluster size3. Repeat 10,000 times4. Analyze real data, get cluster sizes5. P(cluster) = #MaxClusterSize > ClusterSize/10000

mri_glmfit-sim

Page 49: Surface-based Group Analysis in FreeSurfer

Cluster Table, Corrected

p<.0001sig<4

22 clusters out of 38 have cluster p-value < .05ClusterNo Area(mm2) X Y Z Structure Cluster PCluster 1 3738.82 -11.1 34.5 27.2 superiorfrontal .0001Cluster 2 5194.19 -32.4 -23.3 15.7 insula .0003Cluster 3 1271.30 -25.9 -75.0 19.0 superiorparietal .0050Cluster 4 775.38 -44.4 -9.7 51.3 precentral .0100Cluster 5 440.56 -33.0 -36.8 37.5 supramarginal .0400…

Note the difference between the Cluster Forming Threshold (p<.0001) and the Cluster p-value.

Page 50: Surface-based Group Analysis in FreeSurfer

50

50

Surface-based Corr. for Multiple Comparisons

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

• 2D Cluster-based Correction at p < .05

Page 51: Surface-based Group Analysis in FreeSurfer

51

51

Surface-based Corr. for Multiple Comparisons

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

• 2D Cluster-based Correction at p < .05

Original mri_glmfit command:mri_glmfit --y lh.thickness.sm10.mgh --fsgd gender_age.txt --C age.mtx –C gender.mtx --surf fsaverage lh --cortex --glmdir lh.gender_age.glmdir

lh.gender_age.glmdir/ beta.mgh – parameter estimates rvar.mgh – residual error variance etc … age/ sig.mgh – -log10(p), uncorrected gamma.mgh, F.mgh gender/ sig.mgh – -log10(p) gamma.mgh, F.mgh

Page 52: Surface-based Group Analysis in FreeSurfer

52

52

Surface-based Corr. for Multiple Comparisons

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

• 2D Cluster-based Correction at p < .05

• Use pre-cached simulation results• positive contrast• voxelwise threshold = 2 (p<.01)• Can use another simulation or

permutation

Page 53: Surface-based Group Analysis in FreeSurfer

53

53

Surface-based Corr. for Multiple Comparisons

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

• 2D Cluster-based Correction at p < .05

Cluster-wise threshold p<.05

Page 54: Surface-based Group Analysis in FreeSurfer

54

54

Surface-based Corr. for Multiple Comparisons

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

• 2D Cluster-based Correction at p < .05

Bonferroni correct over two hemispheres

Page 55: Surface-based Group Analysis in FreeSurfer

55

55

Correction for Multiple Comparisons Output

mri_glmfit-sim --glmdir lh.gender_age.glmdir --cache pos 2 --cwpvalthresh .05 --2spaces

lh.gender_age.glmdir

age

sig.mgh – pre-existing uncorrected p-valuescache.th20.pos.sig.cluster.mgh – map of significance of clusterscache.th20.pos.sig.ocn.annot – annotation of significant clusterscache.th20.pos.sig.cluster.summary – text file of cluster table (clusters, sizes, MNI305 XYZ, and their significances)

gender

• Only shows clusters with p<.05

Page 56: Surface-based Group Analysis in FreeSurfer

56

Command-line Processing Stages

• Model (X, FSGD) and Contrasts (C)• Assemble Data (mris_preproc)

• Resample into Common Space (fsaverage)• Concatenate into one file

• Smooth (mri_surf2surf)• Fit Model (Estimate) (mri_glmfit)• Correct for multiple comparisons (mri_glmfit-sim)• Visualize (tksurfer)

recon-all -qcache

Page 57: Surface-based Group Analysis in FreeSurfer

57

QDEC – An Interactive Statistical Engine GUIQuery – Select subjects based on Match CriteriaDesign – Specify discrete and continuous factorsEstimate – Fit ModelContrast – Automatically Generate Contrast Matrices

Interactive – Makes easy things easy (that used to be hard)

…a work in progress• No Query yet• Two Discrete Factors (Two Levels)• Two Continuous Factors• Surface only

Page 58: Surface-based Group Analysis in FreeSurfer

58

QDEC – Spreadsheet

fsid gender age diagnosis Left-Cerebral-White-Matter-Vol011121_vc8048 Female 70 Demented 202291 021121_62313-2 Female 71 Demented 210188 010607_vc7017 Female 73 Nondemented 170653 021121_vc10557 Male 75 Demented 142029 020718_62545 Male 76 Demented 186087 020322_vc8817 Male 77 Nondemented 149810

qdec.table.dat – spreadsheet with subject information – spreadsheet can be huge!

FemaleMale

gender.levels

Demented Nondemented

diagnosis.levelsDiscrete Factors need afactorname.level file

Page 59: Surface-based Group Analysis in FreeSurfer

59

Tutorial1. Command-line Stream

• Create an FSGD File for a thickness study• Age and Gender• Run

• mris_preproc• mri_surf2surf • mri_glmfit • mri_glmfit-sim • tksurfer

2. QDEC – same data set

Page 60: Surface-based Group Analysis in FreeSurfer

60

End of Presentation

Page 61: Surface-based Group Analysis in FreeSurfer

61

Another FSGD Example

GroupDescriptorFile 1 Class MaleRight Class MaleLeft Class FemaleRight Class FemaleLeft Variables Age Input bert MaleLeft 10 Input fred MaleRight 15 Input jenny FemaleRight 20 Input margaret FemaleLeft 25 Class = Group

• Two Discrete Factors– Gender: Two Levels (M&F)– Handedness: Two Levels (L&R)

• One Continuous Variable: Age

Page 62: Surface-based Group Analysis in FreeSurfer

62

Interaction Contrast

GroupDescriptorFile 1 Class MaleRight Class MaleLeft Class FemaleRight Class FemaleLeft Input bert MaleLeft Input fred MaleRight Input jenny FemaleRight Input margaret FemaleLeft

• Two Discrete Factors (no continuous, for now)– Gender: Two Levels (M&F)– Handedness: Two Levels (L&R)

• Four Regressors (Offsets)– MR (1), ML (2), FR (3), FL (4)

M F

R

L

1

4

3

2

3-1)- 4-2) 1+2+ 3-4

C = [-1 +1 +1 -1]

Page 63: Surface-based Group Analysis in FreeSurfer

63

FSGDF X

1 0 10 100 10001 0 15 150 15000 1 20 200 2000 0 1 25 250 2500

DOSS – Different Offset, Same Slope

X =

C = [-1 1 0 0 0]

#Regressors = Nv+Nc = 3+2=5 Fewer regressors than DODSDOF = #Rows - #Regressors

Male Class

Female Class Age for Males and Females

Same test, different vector

Input:• y• X• C

Page 64: Surface-based Group Analysis in FreeSurfer

64

Clustering1. Choose a vertex-wise (cluster-forming) threshold

• Eg, 2 (p<.01), or 3 (p<.001)• Sign (pos, neg, abs)

2. A cluster is a group of connected (neighboring) vertices above threshold

3. Cluster has a size (area in mm2)

p<.01 (-log10(p)=2)Negative

p<.0001 (-log10(p)=4)Negative

Page 65: Surface-based Group Analysis in FreeSurfer

6565

Surface RegistrationSubject 1 Subject 2 (Before)

Subject 2 (After) • Shift, Rotate, Stretch• High dimensional (~500k)• Preserve metric properties• Take variance into account