diff --git a/examples/fmri_openfmri.py b/examples/fmri_openfmri.py index 7ed0d0f8c2..9628a8116e 100755 --- a/examples/fmri_openfmri.py +++ b/examples/fmri_openfmri.py @@ -121,15 +121,15 @@ def analyze_openfmri_dataset(data_dir, subject=None, model_id=None, Set up openfmri data specific components """ - subjects = [path.split(os.path.sep)[-1] for path in - glob(os.path.join(data_dir, 'sub*'))] + subjects = sorted([path.split(os.path.sep)[-1] for path in + glob(os.path.join(data_dir, 'sub*'))]) infosource = pe.Node(niu.IdentityInterface(fields=['subject_id', 'model_id', 'task_id']), name='infosource') if subject is None: - infosource.iterables = [('subject_id', subjects[:2]), + infosource.iterables = [('subject_id', subjects), ('model_id', [model_id]), ('task_id', [task_id])] else: @@ -200,13 +200,19 @@ def get_highpass(TR, hpcutoff): def get_contrasts(contrast_file, task_id, conds): import numpy as np contrast_def = np.genfromtxt(contrast_file, dtype=object) + if len(contrast_def.shape) == 1: + contrast_def = contrast_def[None, :] contrasts = [] for row in contrast_def: if row[0] != 'task%03d' % task_id: continue - con = [row[1], 'T', ['cond%03d' % i for i in range(len(conds))], + con = [row[1], 'T', ['cond%03d' % (i + 1) for i in range(len(conds))], row[2:].astype(float).tolist()] contrasts.append(con) + # add auto contrasts for each column + for i, cond in enumerate(conds): + con = [cond, 'T', ['cond%03d' % (i + 1)], [1]] + contrasts.append(con) return contrasts contrastgen = pe.Node(niu.Function(input_names=['contrast_file',