fmri data analysis matlab

18
fMRI data analysis using MATLAB Psych 258 Russ Poldrack

description

this document used to analysis fmri data with matlab

Transcript of fmri data analysis matlab

Page 1: fmri data analysis matlab

fMRI data analysis usingMATLAB

Psych 258Russ Poldrack

Page 2: fmri data analysis matlab

Issues for fMRI analysis

• Data file formats– Reading and writing data

• Data interrogation• Statistical analysis• Design optimization

Page 3: fmri data analysis matlab

What is an MRI image?

• Matrix of intensity valuesin a slice through the brain– Generally either 8-bit or 16-

bit– In-plane dimensions

generally 64x64 to 256x256– # of slices from 16-128– Generally represented as

3D image (X, Y, & Zdimensions) or 4D (X/Y/Z+ time) timeseries

Page 4: fmri data analysis matlab

Data file formats

• There are a number of common file formats– DICOM

• Standard for data straight from scanner

– ANALYZE• Common standard for analysis programs• 3D vs. 4D

– MINC• Extension of NetCDF

– Nifti• Newest standard, developed by consensus committee

Page 5: fmri data analysis matlab

Format comparisons

*.mnc/*.nii*.img/.hdrArbitrarilynamed

Files

Extensive/integrated

Minimal/separate

Extensive/integrated

Header

arbitrary3D/4D2DDimension

MINC/Nifti

ANALYZEDICOM

Page 6: fmri data analysis matlab

Interrogating data in MATLAB

• SPM provides functions for readingANALYZE and MINC files into MATLAB

>> v=spm_vol('mask.img')

v =

fname: 'mask.img' dim: [53 63 46 2] mat: [4x4 double] pinfo: [3x1 double] descrip: 'spm_spm:resultant analysis mask'

>> d=spm_read_vols(v);>> size(d)

ans =

53 63 46

Page 7: fmri data analysis matlab

Converting DICOM files

• DICOM files are generally converted toANALYZE before analysis– SPM requires 3D analyze– FSL requires 4D analyze

• Tools for DICOM conversion– SPM2 - DICOM toolbox– Xmedcon - free conversion software– Debabeler - free conversion software from LONI

Page 8: fmri data analysis matlab

>> imagesc(d(:,:,24))>> colormap gray

>> hist(reshape(d(:,:,24),1,53*63),100)

Page 9: fmri data analysis matlab

Loading a set of files

>> files=spm_get(Inf,'*.img','choose a set of images');>> v=spm_vol(files);>> d=spm_read_vols(v);>> whos Name Size Bytes Class d 4-D 154009600 double array files 188x74 27824 char array v 188x1 146812 struct array

>> size(d)Ans =

64 64 25 188

Page 10: fmri data analysis matlab

Plotting timeseries data>> plot(squeeze(d(32,32,20,:)))

Page 11: fmri data analysis matlab

Basic analysis of event-related data:1: create “stick function” for each condition2: convolve with canonical HRF3: estimate GLM using resulting regressor

Canonical HRFs:-gamma function-sum of gammas

Page 12: fmri data analysis matlab

Statistical modeling of data1) create a matrix of onset

times for each trial2) Create a “stick

function” with ones ateach onset

3) Convolve the stick-function with the HRF

4) Combine convolvedSF with column ofzeros tocreate design matrix

>> onsets=[…];

>> sf=zeros(1,100)>> sf(onsets)=1;

>> hrf=spm_hrf(TR);>> conv_sf=conv(sf,hrf);>> conv_sf=conv_sf(1:100);

>> X=[conv_sf’ ones(100,1)];

Page 13: fmri data analysis matlab

FIR design matrix

FIR estimates

Page 14: fmri data analysis matlab

Y=Xb + N(0,1), b=[2 4 1000]

Page 15: fmri data analysis matlab

onsets=randperm(100);TR=2;sf=zeros(1,100);sf(onsets(1:10))=1;hrf=spm_hrf(TR);conv_sf=conv(sf,hrf);conv_sf=conv_sf(1:100);X=[conv_sf' ones(100,1)];b=[5 100];data=X*b' + randn(100,1)*0.5;

b_hat=X\data;predicted=X*b_hat;

plot(data)hold onplot(predicted,'r')

Page 16: fmri data analysis matlab

Estimation and efficiencyY = Xβ + ε - GLMβest = (XTX)-1XTY - ML estimate for β (assuming IID)E = ((β - βest )2)-1 - efficiency of estimator

1E = ------------------- - efficiency depends only

trace((XTX)-1) upon the covariance of the design matrix

Page 17: fmri data analysis matlab

TR=2;nruns=5000;efficiency=zeros(1,nruns);

for x=1:nruns onsets=randperm(100); sf=zeros(1,100); sf(onsets(1:10))=1; hrf=spm_hrf(TR); conv_sf=conv(sf,hrf); conv_sf=conv_sf(1:100); X=[conv_sf' ones(100,1)];

efficiency(x)=1/trace(inv(X'*X)); end; hist(efficiency);

Page 18: fmri data analysis matlab

Design matrix w/ 2 conditions: Contrast: [ 1 1 ]

Contrast: [ 1 -1 ]

For tasks vs. baseline,efficiency increaseswith variance andcorrelation

For comparisonbetween tasks,efficiency increaseswith variance butdecreases withcorrelation