Skip to content

Commit

Permalink
Merge pull request #231 from chrisfilo/enh/task_id
Browse files Browse the repository at this point in the history
[RTM] add an option to limit the analysis just to one task
  • Loading branch information
oesteban committed Dec 7, 2016
2 parents e8f47c9 + a789c21 commit b08fd6a
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 6 deletions.
4 changes: 3 additions & 1 deletion fmriprep/run_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ def main():
g_input = parser.add_argument_group('fMRIprep specific arguments')
g_input.add_argument('-s', '--session-id', action='store', default='single_session')
g_input.add_argument('-r', '--run-id', action='store', default='single_run')
g_input.add_argument('--task-id', help='limit the analysis only ot one task', action='store')
g_input.add_argument('-d', '--data-type', action='store', choices=['anat', 'func'])
g_input.add_argument('--debug', action='store_true', default=False,
help='run debug version of workflow')
Expand Down Expand Up @@ -150,7 +151,8 @@ def create_workflow(opts):
logger.info('Subject list: %s', ', '.join(subject_list))

# Build main workflow and run
preproc_wf = base_workflow_enumerator(subject_list, settings=settings)
preproc_wf = base_workflow_enumerator(subject_list, task_id=opts.task_id,
settings=settings)
preproc_wf.base_dir = settings['work_dir']
preproc_wf.run(**plugin_settings)

Expand Down
5 changes: 4 additions & 1 deletion fmriprep/utils/misc.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def is_fieldmap_file(string):
}


def collect_bids_data(dataset, subject, session=None, run=None):
def collect_bids_data(dataset, subject, task=None, session=None, run=None):
subject = str(subject)
if subject.startswith('sub-'):
subject = subject[4:]
Expand Down Expand Up @@ -74,6 +74,9 @@ def collect_bids_data(dataset, subject, session=None, run=None):
't1w': {'type': 'T1w', 'ext': 'nii'}
}

if task:
queries['epi']['task'] = task

# Add a subject key pair to each query we make so that we only deal with
# files related to this workflows specific subject. Could be made opt...
for key in queries.keys():
Expand Down
9 changes: 5 additions & 4 deletions fmriprep/workflows/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,21 @@
epi_mean_t1_registration, epi_mni_transformation)


def base_workflow_enumerator(subject_list, settings):
def base_workflow_enumerator(subject_list, task_id, settings):
workflow = pe.Workflow(name='workflow_enumerator')
generated_list = []
for subject in subject_list:
generated_workflow = base_workflow_generator(subject, settings)
generated_workflow = base_workflow_generator(subject, task_id=task_id,
settings=settings)
if generated_workflow:
generated_list.append(generated_workflow)
workflow.add_nodes(generated_list)

return workflow


def base_workflow_generator(subject_id, settings):
subject_data = collect_bids_data(settings['bids_root'], subject_id)
def base_workflow_generator(subject_id, task_id, settings):
subject_data = collect_bids_data(settings['bids_root'], subject_id, task_id)

settings["biggest_epi_file_size_gb"] = get_biggest_epi_file_size_gb(subject_data['func'])

Expand Down

0 comments on commit b08fd6a

Please sign in to comment.