forked from rystoli/afniGLMprep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathafniGLMprep_run.py
56 lines (42 loc) · 2.12 KB
/
afniGLMprep_run.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# afniGLMprep version: 11/13/17
import sys
sys.dont_write_bytecode = True
import afniGLMprep_functions as apf
import afniGLMprep_params as p
###########################################################
# Confirm commands entered correctly
###########################################################
print('Input options: prepInput, csvInput, prep1D, prepGLM')
print('User input: %s' % (sys.argv[1:]) )
assert ('prep1D' in sys.argv) or ('prepGLM' in sys.argv),'Please specify functions. Options: prep1D prepGLM'
assert ('prepInput' in sys.argv) ^ ('csvInput' in sys.argv),'Please only specify one input source: prepInput (automatic loading, see doc), or csvInput (load input from afniGLMprep_input.csv'
###########################################################
# Prepare input
###########################################################
# Automatically generate input_dicts
if 'prepInput' in sys.argv:
p.input_dict = apf.prep_alleventTSVs( p.BIDS_path, p.input_suffix, p.mask_path )
print('%s inputs automatically prepared' % (len(p.input_dict)))
else: pass
if 'csvInput' in sys.argv:
p.input_dict = apf.prep_csv_to_inputdict( p.BIDS_path, p.inputcsv_path)
print('%s inputs loaded from afniGLMprep_input.csv' % (len(p.input_dict)))
else: pass
###########################################################
# Prepare GLM materials
###########################################################
# Create any 1Ds currently missing corresponding to input_dict event TSVs
if 'prep1D' in sys.argv:
for inputfile in p.input_dict:
apf.eventTSV_to_1D( p.BIDS_path, p.input_dict[inputfile]['eventTSV_path'], p.TR )
print('Condition onset timing files (1Ds) prepared in /GLM_1Ds')
else: pass
# Creat GLM script per input_dict keys
if 'prepGLM' in sys.argv:
apf.write_GLM_script_per_task_subj_run( BIDS_path = p.BIDS_path,
input_dict = p.input_dict,
afniGLM_params = p )
print('GLM (3dDeconvolve) scripts prepared in BIDS directory')
else: pass
###########################################################
print('afniGLMprep completed')