From e15963e0ad2f2d4eaa8eebaa33b870130b6e5c97 Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Tue, 3 Jun 2014 11:01:59 -0400 Subject: [PATCH 1/2] fix: first untested patch for contrasts --- examples/fmri_openfmri.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/fmri_openfmri.py b/examples/fmri_openfmri.py index 7ed0d0f8c2..01d86cab00 100755 --- a/examples/fmri_openfmri.py +++ b/examples/fmri_openfmri.py @@ -200,6 +200,8 @@ 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] contrasts = [] for row in contrast_def: if row[0] != 'task%03d' % task_id: @@ -258,6 +260,8 @@ def get_contrasts(contrast_file, task_id, conds): """ def sort_copes(files): + from nipype.utils.filemanip import filename_to_list + files = filename_to_list(files) numelements = len(files[0]) outfiles = [] for i in range(numelements): @@ -267,6 +271,8 @@ def sort_copes(files): return outfiles def num_copes(files): + from nipype.utils.filemanip import filename_to_list + files = filename_to_list(files) return len(files) pickfirst = lambda x: x[0] From e8b7d5867a8f4ee32f9fa43bbac5ae1cbf546868 Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Fri, 6 Jun 2014 09:06:23 +0200 Subject: [PATCH 2/2] fix: condition indexing --- examples/fmri_openfmri.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/fmri_openfmri.py b/examples/fmri_openfmri.py index 01d86cab00..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: @@ -201,14 +201,18 @@ 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] + 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', @@ -260,8 +264,6 @@ def get_contrasts(contrast_file, task_id, conds): """ def sort_copes(files): - from nipype.utils.filemanip import filename_to_list - files = filename_to_list(files) numelements = len(files[0]) outfiles = [] for i in range(numelements): @@ -271,8 +273,6 @@ def sort_copes(files): return outfiles def num_copes(files): - from nipype.utils.filemanip import filename_to_list - files = filename_to_list(files) return len(files) pickfirst = lambda x: x[0]