12
12
python fmri_openfmri.py --datasetdir ds107
13
13
"""
14
14
15
+ from nipype import config
16
+ config .enable_provenance ()
17
+
15
18
from glob import glob
16
19
import os
17
20
@@ -84,7 +87,7 @@ def get_subjectinfo(subject_id, base_dir, task_id, model_id):
84
87
85
88
86
89
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 ):
88
91
"""Analyzes an open fmri dataset
89
92
90
93
Parameters
@@ -379,21 +382,8 @@ def get_subs(subject_id, conds, model_id, task_id):
379
382
modelfit .inputs .inputspec .model_serial_correlations = True
380
383
modelfit .inputs .inputspec .film_threshold = 1000
381
384
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
397
387
398
388
if __name__ == '__main__' :
399
389
import argparse
@@ -403,10 +393,34 @@ def get_subs(subject_id, conds, model_id, task_id):
403
393
parser .add_argument ('-s' , '--subject' , default = None )
404
394
parser .add_argument ('-m' , '--model' , default = 1 )
405
395
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" )
406
405
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 ),
408
417
subject = args .subject ,
409
418
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