Skip to content

Commit 507aafc

Browse files
committed
adding SPM orth argument to the SpecifyModel class
1 parent 98beb0a commit 507aafc

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

nipype/algorithms/modelgen.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,19 @@ class SpecifyModel(BaseInterface):
331331
- amplitudes : lists of amplitudes for each event. This will be ignored by
332332
SPM's Level1Design.
333333
334-
The following two (tmod, pmod) will be ignored by any Level1Design class
335-
other than SPM:
334+
The following three (tmod, pmod, orth) will be ignored by any Level1Design class other than SPM:
336335
337336
- tmod : lists of conditions that should be temporally modulated. Should
338337
default to None if not being used.
339338
- pmod : list of Bunch corresponding to conditions
340339
- name : name of parametric modulator
341340
- param : values of the modulator
342341
- poly : degree of modulation
342+
- orth : lists of instructions to orthogonolise parametric regressors or
343+
not. Same as in SPM, use 'Yes' to indicate orthogonalisation, and 'No'
344+
to explicitly prevent it. Use None for conditions where it is not being
345+
used. Note that by default SPM will orthogonalise parametric regressors
346+
in the order in which they are entered.
343347
344348
Alternatively, you can provide information through event files.
345349
@@ -369,7 +373,7 @@ class SpecifyModel(BaseInterface):
369373
None])
370374
>>> evs_run3 = Bunch(conditions=['cond1', 'cond2'], onsets=[[20, 120], [80, 160]], \
371375
durations=[[0], [0]], pmod=[Bunch(name=['amp'], poly=[2], param=[[1, 2]]), \
372-
None])
376+
None], orth=['No', None])
373377
>>> s.inputs.subject_info = [evs_run2, evs_run3]
374378
375379
"""
@@ -414,6 +418,12 @@ def _generate_standard_design(self,
414418
if hasattr(info, 'tmod') and info.tmod and \
415419
len(info.tmod) > cid:
416420
sessinfo[i]['cond'][cid]['tmod'] = info.tmod[cid]
421+
422+
if hasattr(info, 'orth') and info.orth:
423+
if info.orth[cid] == 'Yes':
424+
sessinfo[i]['cond'][cid]['orth'] = 1
425+
elif info.orth[cid] == 'No':
426+
sessinfo[i]['cond'][cid]['orth'] = 0
417427

418428
if hasattr(info, 'pmod') and info.pmod and \
419429
len(info.pmod) > cid:

0 commit comments

Comments
 (0)