surface-based exploratory group analysis in freesurfer

52
Surface-based Exploratory Group Analysis in FreeSurfer

Upload: jenski

Post on 15-Jan-2016

43 views

Category:

Documents


2 download

DESCRIPTION

Surface-based Exploratory Group Analysis in FreeSurfer. Outline. Processing Stages Command-line Stream Assemble Data Design/Contrast (GLM Theory) Analyze Visualize Interactive/Automated GUI (QDEC) Correction for multiple comparisons. Aging Exploratory Analysis. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Surface-based Exploratory  Group Analysis in FreeSurfer

Surface-based Exploratory Group Analysis in FreeSurfer

Page 2: Surface-based Exploratory  Group Analysis in FreeSurfer

2

Outline

• Processing Stages• Command-line Stream

• Assemble Data• Design/Contrast (GLM Theory)• Analyze• Visualize

• Interactive/Automated GUI (QDEC)• Correction for multiple comparisons

Page 3: Surface-based Exploratory  Group Analysis in FreeSurfer

3

Aging Exploratory Analysis

Cortical Thickness vs AgingSalat, et al, 2004, Cerebral Cortex

In which areas does thickness change with age?

Page 4: Surface-based Exploratory  Group Analysis in FreeSurfer

4

p<.01

Aging Thickness Study

Positive Age Correlation

Negative Age Correlation

N=40 (all in fsaverage space)

Page 5: Surface-based Exploratory  Group Analysis in FreeSurfer

5

Surface-based Measures

• Morphometric (eg, thickness)• Functional• PET• MEG/EEG• Diffusion (?) sampled just under the

surface

Page 6: Surface-based Exploratory  Group Analysis in FreeSurfer

6

Processing Stages

• Specify Subjects and Surface measures• Assemble Data:

• Resample into Common Space• Smooth• Concatenate into one file

• Model and Contrasts (GLM)• Fit Model (Estimate)• Correct for multiple comparisons• Visualize

Page 7: Surface-based Exploratory  Group Analysis in FreeSurfer

7

The General Linear Model (GLM)

HRF AmplitudeIQ, Height, Weight

Independent Variable

Is Thickness correlated with Age?

DependentVariable,Measurement

x1 x2

y2

y1

Subject 1

Subject 2

Thickness

Age

Of course, you’d need more then twosubjects …

Page 8: Surface-based Exploratory  Group Analysis in FreeSurfer

8

Linear ModelIntercept: b

Slope: m

Thickness

Age

x1 x2

y2

y1

System of Linear Equationsy1 = 1*b + x1*my2 = 1*b + x2*m

Y = X*

y1y2

1 x11 x2

bm= *

Matrix Formulation

X = Design Matrix = Regression Coefficients = Parameter estimates = “betas” = Intercepts and Slopes = beta.mgh (mri_glmfit)

bm

Intercept = Offset

mri_glmfit output: beta.mgh

Page 9: Surface-based Exploratory  Group Analysis in FreeSurfer

9

Hypotheses and Contrasts

Is Thickness correlated with Age?Does m = 0?

Null Hypothesis: H0: m=0

Intercept: b

Slope: m

Thickness

Age

x1 x2

y2

y1

m= [0 1]* bm

= C*?

C=[0 1]: Contrast Matrix

bm

y1y2

1 x11 x2

bm= *

mri_glmfit output: gamma.mgh

Page 10: Surface-based Exploratory  Group Analysis in FreeSurfer

10

More than Two Data Points

y1 = 1*b + x1*my2 = 1*b + x2*my3 = 1*b + x3*my4 = 1*b + x4*m

y1y2y3y4

1 x11 x21 x31 x4

bm= *

Y = X*

Intercept: b

Slope: m

Thickness

Age

• Model Error• Noise• Uncertainty• rvar.mgh

Page 11: Surface-based Exploratory  Group Analysis in FreeSurfer

11

t-Test and p-values

= C*

Y = X*

TT CX)C(Xσ

βC=t

12

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

p-value sig

0.1 =10-1.0 1.0

0.05 =10-1.3 1.3

0.01 =10-2.0 2.0

0.001=10-3.0 3.0

Page 12: Surface-based Exploratory  Group Analysis in FreeSurfer

12

Two Groups

Do groups differ in Intercept?Do groups differ in Slope?Is average slope different than 0?…

Intercept: b1

Slope: m1

Thickness

Age

Intercept: b2

Slope: m2

Page 13: Surface-based Exploratory  Group Analysis in FreeSurfer

13

Two GroupsIntercept: b1

Slope: m1

Thickness

Age

Intercept: b2

Slope: m2

y11 = 1*b1 + 0*b2 + x11*m1 + 0*m2y12 = 1*b1 + 0*b2 + x12*m1 + 0*m2y21 = 0*b1 + 1*b2 + 0*m1 + x21*m2y22 = 0*b1 + 1*b2 + 0*m1 + x22*m2

y11y12y21y22

1 0 x11 01 0 x12 00 1 0 x210 1 0 x22

b1b2m1m2

=

*

Y = X*

Page 14: Surface-based Exploratory  Group Analysis in FreeSurfer

14

Two Groups

Intercept: b1

Slope: m1

Thickness

AgeIntercept: b2

Slope: m2

Do groups differ in Intercept?Does b1=b2?Does b1-b2 = 0?C = [+1 -1 0 0], = C*

Is average slope different than 0?Does (m1+m2)/2 = 0?C = [0 0 0.5 0.5], = C*

y11y12y21y22

1 0 x11 01 0 x12 00 1 0 x210 1 0 x22

=

* b1b2m1m2

Y = X*Do groups differ in Slope?Does m1=m2?Does m1-m2=0?C = [0 0 +1 -1], = C*

b1b2m1m2

Page 15: Surface-based Exploratory  Group Analysis in FreeSurfer

15

Surface-based Group Analysis in FreeSurfer

• Create your own design matrix and contrast matrices• Create an FSGD File

• FreeSurfer creates design matrix• You still have to specify contrasts

• QDEC• Limited to 2 discrete variables, 2 levels max• Limited to 2 continuous variables

Page 16: Surface-based Exploratory  Group Analysis in FreeSurfer

16

Command-line Processing Stages

• Assemble Data (mris_preproc)• Resample into Common Space• Smooth• Concatenate into one file

• Model and Contrasts (GLM) (FSGD)• Fit Model (Estimate) (mri_glmfit)• Correct for multiple comparisons• Visualize (tksurfer)

}recon-all -qcache

Page 17: Surface-based Exploratory  Group Analysis in FreeSurfer

17

Specifying Subjects

bert

$SUBJECTS_DIR

fred jenny margaret …

Subject ID

Page 18: Surface-based Exploratory  Group Analysis in FreeSurfer

18

FreeSurfer Directory Treebert

bem stats morph mri rgb scripts surf tiff label

orig T1 brain wm aseg

SUBJECTS_DIR environment variable

lh.whiterh.white

lh.thicknessrh.thickness

lh.sphere.regrh.sphere.reg

lh.aparc_annnotrh.aparc_annnot

Subject ID

Page 19: Surface-based Exploratory  Group Analysis in FreeSurfer

19

Example: 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 20: Surface-based Exploratory  Group Analysis in FreeSurfer

20

FreeSurfer Group Descriptor (FSGD) File

Note: Can specify design matrix explicitly with --design

• Simple text file• List of all subjects in the study• Accompanying demographics• Like a spreadsheet• Automatic design matrix creation• You must still specify the contrast matrices• Integrated with tksurfer

Page 21: Surface-based Exploratory  Group Analysis in FreeSurfer

21

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

Note: Can specify design matrix explicitly with --design

Class = Group

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

Page 22: Surface-based Exploratory  Group Analysis in FreeSurfer

22

FSGDF 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 Group

Female Age

Male Age

WeightAge IQ

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

Page 23: Surface-based Exploratory  Group Analysis in FreeSurfer

23

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 24: Surface-based Exploratory  Group Analysis in FreeSurfer

24

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 25: Surface-based Exploratory  Group Analysis in FreeSurfer

25

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 26: Surface-based Exploratory  Group Analysis in FreeSurfer

26

Factors, Levels, Groups, Classes

Factors 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 27: Surface-based Exploratory  Group Analysis in FreeSurfer

27

--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

Page 28: Surface-based Exploratory  Group Analysis in FreeSurfer

28

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-60min)

• recon-all -qcache

Page 29: Surface-based Exploratory  Group Analysis in FreeSurfer

29

mri_glmfit

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

Page 30: Surface-based Exploratory  Group Analysis in FreeSurfer

30

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 31: Surface-based Exploratory  Group Analysis in FreeSurfer

31

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 32: Surface-based Exploratory  Group Analysis in FreeSurfer

32

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 33: Surface-based Exploratory  Group Analysis in FreeSurfer

33

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 34: Surface-based Exploratory  Group Analysis in FreeSurfer

34

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 35: Surface-based Exploratory  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

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 36: Surface-based Exploratory  Group Analysis in FreeSurfer

36

Visualization with tksurfer

View->Configure->Overlay

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

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

FalseDicoveryRateEg, .01

File->LoadOverlay

Page 37: Surface-based Exploratory  Group Analysis in FreeSurfer

37

Visualization with tksurfer

File-> Load Group Descriptor File …

Page 38: Surface-based Exploratory  Group Analysis in FreeSurfer

38

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 39: Surface-based Exploratory  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 40: Surface-based Exploratory  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 41: Surface-based Exploratory  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 42: Surface-based Exploratory  Group Analysis in FreeSurfer

42

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 43: Surface-based Exploratory  Group Analysis in FreeSurfer

43

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 44: Surface-based Exploratory  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 45: Surface-based Exploratory  Group Analysis in FreeSurfer

45

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 46: Surface-based Exploratory  Group Analysis in FreeSurfer

46

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 47: Surface-based Exploratory  Group Analysis in FreeSurfer

47

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 48: Surface-based Exploratory  Group Analysis in FreeSurfer

48

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 49: Surface-based Exploratory  Group Analysis in FreeSurfer

49

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 50: Surface-based Exploratory  Group Analysis in FreeSurfer

50

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 p<.05

Page 51: Surface-based Exploratory  Group Analysis in FreeSurfer

51

Tutorial

1. 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 52: Surface-based Exploratory  Group Analysis in FreeSurfer

52

QDEC GUI• Load QDEC Table File

• List of Subjects• List of Factors (Discrete and Cont)

• Choose Factors• Choose Input (cached):

• Hemisphere• Measure (eg, thickness)• Smoothing Level

• “Analyze”• Builds Design Matrix• Builds Contrast Matrices• Constructs Human-Readable Questions• Analyzes• Displays Results