Skip to content

Commit f93f3d4

Browse files
committed
Merge pull request #682 from satra/enh/openfmri
few cosmetic improvements to openfmri script
2 parents 087b488 + e9d3b9e commit f93f3d4

File tree

1 file changed

+34
-20
lines changed

1 file changed

+34
-20
lines changed

examples/fmri_openfmri.py

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
python fmri_openfmri.py --datasetdir ds107
1313
"""
1414

15+
from nipype import config
16+
config.enable_provenance()
17+
1518
from glob import glob
1619
import os
1720

@@ -84,7 +87,7 @@ def get_subjectinfo(subject_id, base_dir, task_id, model_id):
8487

8588

8689
def analyze_openfmri_dataset(data_dir, subject=None, model_id=None,
87-
task_id=None, work_dir=None):
90+
task_id=None, work_dir=None, output_dir=None):
8891
"""Analyzes an open fmri dataset
8992
9093
Parameters
@@ -379,21 +382,8 @@ def get_subs(subject_id, conds, model_id, task_id):
379382
modelfit.inputs.inputspec.model_serial_correlations = True
380383
modelfit.inputs.inputspec.film_threshold = 1000
381384

382-
if work_dir is None:
383-
work_dir = os.path.join(os.getcwd(), 'working')
384-
wf.base_dir = work_dir
385-
datasink.inputs.base_directory = os.path.join(work_dir, 'output')
386-
wf.config['execution'] = dict(crashdump_dir=os.path.join(work_dir,
387-
'crashdumps'),
388-
stop_on_first_crash=True)
389-
#wf.run('MultiProc', plugin_args={'n_procs': 4})
390-
eg = wf.run('Linear')
391-
wf.export('openfmri.py')
392-
wf.write_graph(dotfilename='hgraph.dot', graph2use='hierarchical')
393-
wf.write_graph(dotfilename='egraph.dot', graph2use='exec')
394-
wf.write_graph(dotfilename='fgraph.dot', graph2use='flat')
395-
wf.write_graph(dotfilename='ograph.dot', graph2use='orig')
396-
return eg
385+
datasink.inputs.base_directory = output_dir
386+
return wf
397387

398388
if __name__ == '__main__':
399389
import argparse
@@ -403,10 +393,34 @@ def get_subs(subject_id, conds, model_id, task_id):
403393
parser.add_argument('-s', '--subject', default=None)
404394
parser.add_argument('-m', '--model', default=1)
405395
parser.add_argument('-t', '--task', default=1)
396+
parser.add_argument("-o", "--output_dir", dest="sink",
397+
help="Output directory base")
398+
parser.add_argument("-w", "--work_dir", dest="work_dir",
399+
help="Output directory base")
400+
parser.add_argument("-p", "--plugin", dest="plugin",
401+
default='Linear',
402+
help="Plugin to use")
403+
parser.add_argument("--plugin_args", dest="plugin_args",
404+
help="Plugin arguments")
406405
args = parser.parse_args()
407-
eg = analyze_openfmri_dataset(data_dir=os.path.abspath(args.datasetdir),
406+
outdir = args.outdir
407+
work_dir = os.getcwd()
408+
if args.work_dir:
409+
work_dir = os.path.abspath(args.work_dir)
410+
if outdir:
411+
outdir = os.path.abspath(outdir)
412+
else:
413+
outdir = os.path.join(work_dir, 'output')
414+
outdir = os.path.join(outdir, 'model%02d' + int(args.model),
415+
'task%3d' % int(args.task))
416+
wf = analyze_openfmri_dataset(data_dir=os.path.abspath(args.datasetdir),
408417
subject=args.subject,
409418
model_id=int(args.model),
410-
task_id=int(args.task))
411-
from nipype.pipeline.utils import write_prov
412-
g = write_prov(eg, format='turtle')
419+
task_id=int(args.task),
420+
work_dir=os.path.abspath(args.workdir),
421+
output_dir=outdir)
422+
wf.base_dir = work_dir
423+
if args.plugin_args:
424+
wf.run(args.plugin, plugin_args=eval(args.plugin_args))
425+
else:
426+
wf.run(args.plugin)

0 commit comments

Comments
 (0)