File: model_specification.rst

package info (click to toggle)
nipype 0.5.3-2wheezy2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,884 kB
  • sloc: python: 36,872; tcl: 597; makefile: 167
file content (128 lines) | stat: -rw-r--r-- 4,596 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
.. _model_spec:

===================================================
 Model Specification for First Level fMRI Analysis
===================================================

Nipype provides a general purpose model specification mechanism with
specialized subclasses for package specific extensions.


General purpose model specification
===================================

The :class:`SpecifyModel` provides a generic mechanism for model
specification. A mandatory input called subject_info provides paradigm
specification for each run corresponding to a subject. This has to be in
the form of a :class:`Bunch` or a list of Bunch objects (one for each
run). Each Bunch object contains the following attribules.

Required for most designs
-------------------------

- conditions : list of names

- onsets : lists of onsets corresponding to each condition

- durations : lists of durations corresponding to each condition. Should be
            left to a single 0 if all events are being modelled as impulses.

Optional
--------

- regressor_names : list of names corresponding to each column. Should be None if  automatically assigned.

- regressors : list of lists. values for each regressor - must correspond to the number of volumes in the functional run

- amplitudes : lists of amplitudes for each event. This will be ignored by
      SPM's Level1Design.

The following two (tmod, pmod) will be ignored by any
Level1Design class other than SPM:

- tmod : lists of conditions that should be temporally modulated. Should
     default to None if not being used.

- pmod : list of Bunch corresponding to conditions
   - name : name of parametric modulator
   - param : values of the modulator
   - poly : degree of modulation


An example Bunch definition::

  from nipype.interfaces.base import Bunch
  condnames = ['Tapping', 'Speaking', 'Yawning']
  event_onsets = [[0, 10, 50], [20, 60, 80], [30, 40, 70]]
  durations = [[0],[0],[0]]

  subject_info = Bunch(conditions=condnames,
                                     onsets = event_onsets,
                                     durations = durations)

Alternatively, you can provide condition, onset, duration and amplitude
information through event files. The event files have to be in 1,2 or 3
column format with the columns corresponding to Onsets, Durations and
Amplitudes and they have to have the name event_name.run<anything else>
e.g.: Words.run001.txt. The event_name part will be used to create the
condition names. Words.run001.txt may look like::

      # Word Onsets Durations
       0   10
       20   10  
       ...

or with amplitudes::

       # Word Onsets Durations Amplitudes
       0    10     1
       20   10    1
       ...

Together with this information, one needs to specify:

- whether the durations and event onsets are specified in terms of scan volumes
  or secs.

- the high-pass filter cutoff, 

- the repetition time per scan

- functional data files corresponding to each run. 

Optionally you can specify realignment parameters, outlier indices.
Outlier files should contain a list of numbers, one per row indicating
which scans should not be included in the analysis. The numbers are
0-based.

SPM specific attributes
=======================

in addition to the generic specification options, several SPM specific
options can be provided. In particular, the subject_info function can
provide temporal and parametric modulators in the Bunch attributes tmod
and pmod. The following example adds a linear parametric modulator for
speaking rate for the events specified earlier::

 pmod = [None, Bunch(name=['Rate'], param=[[.300, .500, .600]], 
                                      poly=[1]), None]
 subject_info = Bunch(conditions=condnames,
                                     onsets = event_onsets,
                                     durations = durations,
                                     pmod = pmod)

:class:`SpecifySPMModel` also allows specifying additional components.
If you have a study with multiple runs, you can choose to concatenate
conditions from different runs. by setting the input
option **concatenate_runs** to True. You can also choose to set the
output options for this class to be in terms of 'scans'.

Sparse model specification
==========================

In addition to standard models, :class:`SpecifySparseModel` allows model
generation for sparse and sparse-clustered acquisition experiments.
Details of the model generation and utility are provided in `Ghosh et
al. (2009) OHBM 2009. <http://dl.dropbox.com/u/363467/OHBM2009_HRF.pdf>`_

.. include:: ../links_names.txt