Batch programming for single subject analysis of fMRI data

ZURICH SPM COURSE 2009
[email protected]
[email protected]
fMRI Single Subject Analysis
&
Batch Programming
Lars Kasper
Institute for
Biomedical Engineering (ETH Zurich)
and Empirical Research in Economics (Univ. of Zurich)
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Overview
 Quality Assessment of Raw Data
 Spatial Preprocessing
 Realign and Unwarp
 Coregister





General Linear Model: The Design Matrix
Estimating the Model
Results: Defining and Analyzing Contrasts
Reporting and Summarizing
Outlook: What to do with a lot of single subject results
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
2
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
Image time-series
Realignment
Kernel
Overview of SPM
Smoothing
Design matrix
ZURICH SPM COURSE 2009
Statistical parametric map
(SPM)
General linear model
Statistical
inference
Normalisation
Gaussian
field theory
p <0.05
Template
Parameter estimates
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Goals of this tutorial
After finishing this session, you should be able to
Analyze single subject fMRI datasets using
1. the Graphical User Interface (GUI) of SPM
2. The Batch Editor of SPM
3. A template Matlab .m-file to batch very flexibly
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
4
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Batch processing of data
 Repeats same data analysis for many subjects (>=2)
 Not prone to human errors, reproducible what was done
 e. g. jobs mat-files
 Runs automatically, no supervision needed
 Researcher can concentrate on assessing the results
 CAVEAT: Tempting to forget about all analysis steps in
between which could lead to errors in your conclusions
 Therefore: Always make sure, that meaningful results were
created at each step
 Using Display/CheckReg to view raw data, preprocessed data
 Using spm_print to save reported supplementary data output
 If anything went wrong, use debugging
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
5
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Introducing the Dataset
 Rik Henson‘s famous vs non-famous faces dataset
http://www.fil.ion.ucl.ac.uk/spm/data/face_rep/face_rep_SPM5.html
 Includes a manual with step-by-step instruction for analysis
(homework ;-))
 Download from SPM homepage (available for SPM5, but works fine
with SPM8b)
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
6
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Introducing the Dataset
 Factorial 2 x 2 design to investigate repetition suppression
 Question: Influence of repeated stimulus presentation on brain
activity (accomodation of response)?
 Each stimulus (pictures of faces) presented twice during a session
 Condition Rep, Level: 1 or 2
 lag between presentations randomized
 26 Famous and 26 non-famous faces to differentiate between
familiarity (long-term memory) and repetition
 Condition Fam, Level F(amous) and N(onfamous)
 Task: Decision whether famous or nonfamous (button-press)
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
7
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Introducing the Dataset: Published Results
a. Right Fusiform face area
 Repetition suppression for familiar/famous faces
b. Left Occipital face area (posterior, occip. extrastriate)
 Repetition suppression for familiar AND unfamiliar faces
c. Posterior cingulate and bilateral parietal cortex
 Repetition enhancement
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
8
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Overview
 Quality Assessment of Raw Data
 Spatial Preprocessing
 Realign and Unwarp
 Coregister





General Linear Model: The Design Matrix
Estimating the Model
Results: Defining and Analyzing Contrasts
Reporting and Summarizing
Outlook: What to do with a lot of single subject results
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
9
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Overview
 Quality Assessment of Raw Data
 Spatial Preprocessing
 Realign and Unwarp
 Coregister





General Linear Model: The Design Matrix
Estimating the Model
Results: Defining and Analyzing Contrasts
Reporting and Summarizing
Outlook: What to do with a lot of single subject results
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
10
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Spatial Preprocessing – Realign
GUI
 sd
Lars Kasper (11-Feb-09)
Batch Editor
Batch File
FORMAT P =
spm_realign
(P,flags)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
11
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Spatial Preprocessing – Unwarp
GUI
Batch Editor
Batch File
uw_params=
spm_uw_estimate
(P,uw_est_flags);
spm_uw_apply
(uw_params,uw_write_
flags);
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
12
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Uh…this takes ages…
 Now you can probably value the benefits of batch
processing. If you are still keen on doing all that by hand
(good exercise!), refer to the following
 The SPM manual
 Most current version in your spm8b-folder, sub-folder man/manual.pdf
 Rik Henson‘s famous vs non-famous faces dataset
http://www.fil.ion.ucl.ac.uk/spm/data/face_rep/face_rep_SPM5.html
 Included in SPM manual, chapter 29, with step-by-step instruction for
analysis
 Available for SPM5, but works fine with SPM8b
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
13
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Overview
 Quality Assessment of Raw Data
 Spatial Preprocessing
 Realign and Unwarp
 Coregister





General Linear Model: The Design Matrix
Estimating the Model
Results: Defining and Analyzing Contrasts
Reporting and Summarizing
Outlook: What to do with a lot of single subject results
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
14
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Overview
 Quality Assessment of Raw Data
 Spatial Preprocessing
 Realign and Unwarp
 Coregister





General Linear Model: The Design Matrix
Estimating the Model
Results: Defining and Analyzing Contrasts
Reporting and Summarizing
Outlook: What to do with a lot of single subject results
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
15
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
General Workflow for the batch interface
Top-down approach
1. Specify subject-independent
data/analysis steps
2. Specify subject-independent
file-dependencies (data flow)
3. Specify subject-related data
(e.g. event-timing)
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
16
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
1. The subject-independent analysis parts
 Load all modules first
(in right order!)
 Then specify details
(where Xs are found)
which are subject
independent




Lars Kasper (11-Feb-09)
TR
Nslices
model factors
contrasts of interest
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
17
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
2. Data-flow specification (subject-independent
dependencies)
 Specify, which results of which steps are input
to another step (DEP-sign)
 e.g. smoothed images needed for model spec
 Afterwards save this job as template .mat file
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
18
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
3. Add subject-dependent data/information
 Essentially go to all X‘s and fill in appropriate
values
 e.g. the .mat-file of the conditions onsets/durations
 Save this job as subject-batch file & Run
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
19
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
4. Making it multi-subject
1. Make sure, parameters to be adjusted have an X
(clear value) for the single subject template
2. Specify a meta-job with Run batch
3. Create one run for every subject and add missing
parameter values (in right order)
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
20
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Resources and Useful Literature
 All step-by-step instructions can be found in the SPM
manual, chapter 35
 Also multiple-session and multiple subjects processing included
 Batch templates are in your spm path:
 Configured subject-independent analysis steps
<spm8b>/man/batch/face_single_subject_template_nodeps.m
 With dependencies included
<spm8b>/man/batch/face_single_subject_template.m
 With multiple subjects
<spm8b>/man/batch/face_multi_subject_template.m
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
21
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Many, many thanks to
 Klaas Enno Stephan
 The SPM developers (FIL methods group)
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
22
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Extending the batchfile with SPM GUI functions





Debugging
Generally a good idea to find out, how things work in SPM
Crucial for batch-programming using a .m-file
Here: debug spm.m by setting a breakpoint
If called function found, use edit <functionname>.m
to look at the %comments in the file
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
23
SINGLE SUBJECT ANALYSIS
BATCH PROGRAMMING
ZURICH SPM COURSE 2009
Tuning the engine – Matlab workspace variables
 e.g. to manipulate SPM.mat or jobs by hand
 also important during debugging, how variables are defined
and changed
Lars Kasper (11-Feb-09)
Computational Neuroeconomics (Prof. Stephan, IEW) / MR-Technology (Prof. Prüssmann, IBT)
24