@@ -75,28 +75,36 @@ def run(command, env={}, ignore_errors=False):
7575run ("bids-validator " + args .bids_dir )
7676
7777subject_dirs = glob (os .path .join (args .bids_dir , "sub-*" ))
78+
7879if args .acquisition_label :
7980 acq_tpl = "*acq-%s*" % args .acquisition_label
8081else :
8182 acq_tpl = "*"
8283
83- # check if study is truly longitudinal
84- subject_dirs = glob (os .path .join (args .bids_dir , "sub-*" ))
85- subjects_to_analyze = [subject_dir .split ("-" )[- 1 ] for subject_dir in subject_dirs ]
86- for subject_label in subjects_to_analyze :
87- # Check for multiple sessions to combine as a multiday session or as a longitudinal stream
88- session_dirs = glob (os .path .join (args .bids_dir ,"sub-%s" % subject_label ,"ses-*" ))
89- sessions = [os .path .split (dr )[- 1 ].split ("-" )[- 1 ] for dr in session_dirs ]
90- longitudinal_study = False
91- n_valid_sessions = 0
92- for session_label in sessions :
93- if glob (os .path .join (args .bids_dir , "sub-%s" % subject_label ,
94- "ses-%s" % session_label ,
95- "anat" ,
96- "%s_T1w.nii*" % acq_tpl )):
97- n_valid_sessions += 1
98- if n_valid_sessions > 1 and args .multiple_sessions == "longitudinal" :
84+ # if there are session folders, check if study is truly longitudinal by
85+ # searching for the first subject with more than one valid sessions
86+ multi_session_study = False
87+ if glob (os .path .join (args .bids_dir , "sub-*" , "ses-*" )):
88+ subjects = [subject_dir .split ("-" )[- 1 ] for subject_dir in subject_dirs ]
89+ for subject_label in subjects :
90+ session_dirs = glob (os .path .join (args .bids_dir ,"sub-%s" % subject_label ,"ses-*" ))
91+ sessions = [os .path .split (dr )[- 1 ].split ("-" )[- 1 ] for dr in session_dirs ]
92+ n_valid_sessions = 0
93+ for session_label in sessions :
94+ if glob (os .path .join (args .bids_dir , "sub-%s" % subject_label ,
95+ "ses-%s" % session_label ,
96+ "anat" ,
97+ "%s_T1w.nii*" % acq_tpl )):
98+ n_valid_sessions += 1
99+ if n_valid_sessions > 1 :
100+ multi_session_study = True
101+ break
102+
103+ if multi_session_study and (args .multiple_sessions == "longitudinal" ):
99104 longitudinal_study = True
105+ else :
106+ longitudinal_study = False
107+
100108
101109subjects_to_analyze = []
102110# only for a subset of subjects
0 commit comments