def parse_spm8_preproc(work_dir, step): doc = {} if hasattr(step, 'spatial') and hasattr(step.spatial, 'preproc'): doc['anatomy'] = makeup_path( work_dir, check_path(step.spatial.preproc.data)) doc['wmanatomy'] = prefix_filename(doc['anatomy'], 'wm') if hasattr(step, 'temporal'): doc['n_slices'] = int(step.temporal.st.nslices) doc['ref_slice'] = int(step.temporal.st.refslice) doc['slice_order'] = step.temporal.st.so.tolist() doc['ta'] = float(step.temporal.st.ta) doc['tr'] = float(step.temporal.st.tr) doc['bold'] = [] doc['swabold'] = [] if len(step.temporal.st.scans[0].shape) == 0: bold = [step.temporal.st.scans] else: bold = step.temporal.st.scans for session in bold: data_dir = find_data_dir(work_dir, str(session[0])) doc['bold'].append(check_paths( [os.path.join(data_dir, os.path.split(str(x))[1]) for x in session])) doc['swabold'].append(check_paths( [prefix_filename(os.path.join( data_dir, os.path.split(str(x))[1]), 'swa') for x in session])) doc['n_scans'] = [len(s) for s in doc['bold']] return doc
def parse_spm5_preproc(work_dir, step): doc = {} if hasattr(step, 'spatial') and hasattr(step.spatial, 'realign'): realign = step.spatial.realign.estwrite motion = [] if len(realign.data[0].shape) == 0: realign = [realign] else: realign = realign.data for session in realign: data_dir = find_data_dir(work_dir, check_path(session[0])) motion.append(glob.glob(os.path.join(data_dir, 'rp_*.txt'))[0]) doc['motion'] = motion if hasattr(step, 'spatial') and isinstance(step.spatial, np.ndarray): doc['anatomy'] = makeup_path(work_dir, check_path(step.spatial[0].preproc.data)) doc['wmanatomy'] = prefix_filename( makeup_path( work_dir, check_path(step.spatial[1].normalise.write.subj.resample)), 'w') if hasattr(step, 'temporal'): doc['n_slices'] = int(step.temporal.st.nslices) doc['ref_slice'] = int(step.temporal.st.refslice) doc['slice_order'] = step.temporal.st.so.tolist() doc['ta'] = float(step.temporal.st.ta) doc['tr'] = float(step.temporal.st.tr) doc['bold'] = [] doc['swabold'] = [] if len(step.temporal.st.scans[0].shape) == 0: bold = [step.temporal.st.scans] else: bold = step.temporal.st.scans for session in bold: data_dir = find_data_dir(work_dir, str(session[0])) doc['bold'].append( check_paths([ os.path.join(data_dir, os.path.split(str(x))[1]) for x in session ])) doc['swabold'].append( check_paths([ prefix_filename( os.path.join(data_dir, os.path.split(str(x))[1]), 'swa') for x in session ])) doc['n_scans'] = [len(s) for s in doc['bold']] return doc
def parse_spm5_preproc(work_dir, step): doc = {} if hasattr(step, 'spatial') and hasattr(step.spatial, 'realign'): realign = step.spatial.realign.estwrite motion = [] if len(realign.data[0].shape) == 0: realign = [realign] else: realign = realign.data for session in realign: data_dir = find_data_dir(work_dir, check_path(session[0])) motion.append(glob.glob(os.path.join(data_dir, 'rp_*.txt'))[0]) doc['motion'] = motion if hasattr(step, 'spatial') and isinstance(step.spatial, np.ndarray): doc['anatomy'] = makeup_path( work_dir, check_path(step.spatial[0].preproc.data)) doc['wmanatomy'] = prefix_filename(makeup_path( work_dir, check_path(step.spatial[1].normalise.write.subj.resample)), 'w') if hasattr(step, 'temporal'): doc['n_slices'] = int(step.temporal.st.nslices) doc['ref_slice'] = int(step.temporal.st.refslice) doc['slice_order'] = step.temporal.st.so.tolist() doc['ta'] = float(step.temporal.st.ta) doc['tr'] = float(step.temporal.st.tr) doc['bold'] = [] doc['swabold'] = [] if len(step.temporal.st.scans[0].shape) == 0: bold = [step.temporal.st.scans] else: bold = step.temporal.st.scans for session in bold: data_dir = find_data_dir(work_dir, str(session[0])) doc['bold'].append(check_paths( [os.path.join(data_dir, os.path.split(str(x))[1]) for x in session])) doc['swabold'].append(check_paths( [prefix_filename(os.path.join( data_dir, os.path.split(str(x))[1]), 'swa') for x in session])) doc['n_scans'] = [len(s) for s in doc['bold']] return doc
def parse_spm8_preproc(work_dir, step): doc = {} if hasattr(step, 'spatial') and hasattr(step.spatial, 'preproc'): doc['anatomy'] = makeup_path(work_dir, check_path(step.spatial.preproc.data)) doc['wmanatomy'] = prefix_filename(doc['anatomy'], 'wm') if hasattr(step, 'temporal'): doc['n_slices'] = int(step.temporal.st.nslices) doc['ref_slice'] = int(step.temporal.st.refslice) doc['slice_order'] = step.temporal.st.so.tolist() doc['ta'] = float(step.temporal.st.ta) doc['tr'] = float(step.temporal.st.tr) doc['bold'] = [] doc['swabold'] = [] if len(step.temporal.st.scans[0].shape) == 0: bold = [step.temporal.st.scans] else: bold = step.temporal.st.scans for session in bold: data_dir = find_data_dir(work_dir, str(session[0])) doc['bold'].append( check_paths([ os.path.join(data_dir, os.path.split(str(x))[1]) for x in session ])) doc['swabold'].append( check_paths([ prefix_filename( os.path.join(data_dir, os.path.split(str(x))[1]), 'swa') for x in session ])) doc['n_scans'] = [len(s) for s in doc['bold']] return doc