def convert_darpa_ct(args): bads, goods = [], [] if args.print_only: args.ignore_missing = True args.subject = pu.decode_subjects(args.subject) for subject in args.subject: local_ct_fol = utils.make_dir(op.join(pu.SUBJECTS_DIR, subject, 'ct')) ct_fname = op.join(local_ct_fol, 'ct', 'ct_org.mgz') if op.isfile(ct_fname) and not args.overwrite: goods.append(subject) continue darpa_subject = subject[:2].upper() + subject[2:] files = glob.glob(op.join( f'/homes/5/npeled/space1/Angelique/recon-alls/{darpa_subject}/', '**', 'ct.*'), recursive=True) if len(files) > 0: for fname in files: output_fname = op.join(local_ct_fol, utils.namebase_with_ext(fname)) print('Coping {} to {}'.format(fname, output_fname)) utils.copy_file(fname, output_fname) goods.append(subject) continue fols = glob.glob( op.join('/space/huygens/1/users/kara', f'{darpa_subject}_CT*')) ct_raw_input_fol = fols[0] if len(fols) == 1 else '' if not op.isdir(ct_raw_input_fol): fols = glob.glob(op.join( f'/homes/5/npeled/space1/Angelique/recon-alls/{darpa_subject}/', '**', f'{darpa_subject}_CT*'), recursive=True) ct_raw_input_fol = fols[0] if len(fols) == 1 else '' if not op.isdir(ct_raw_input_fol): bads.append(subject) continue args = ct.read_cmd_args( utils.Bag(subject=subject, function='convert_ct_to_mgz', ct_raw_input_fol=ct_raw_input_fol, print_only=args.print_only, ignore_missing=args.ignore_missing, overwrite=args.overwrite, ask_before=args.ask_before)) ret = pu.run_on_subjects(args, ct.main) if ret: goods.append(subject) else: bads.append(subject) print('Good subjects:\n {}'.format(goods)) print('Bad subjects:\n {}'.format(bads))
def project_all_fmri_files(args): import nibabel as nib import numpy as np subjects = pu.decode_subjects(args.subject) for subject in subjects: for fmri_fname in glob.glob(op.join(FMRI_DIR, subject, 'volume', '*.mgz')): # fmri_fname = fu.mri_convert_to(fmri_fname, 'mgz') fmri.direct_project_volume_to_surf(subject, fmri_fname, False) data = nib.load(fmri_fname).get_data() print('{} min max: '.format(fmri_fname)) print(np.min(data), np.max(data)) # if not fmri.surf_files_exist(subject, fmri_fname): # fmri.project_volume_to_surface(subject, fmri_fname) surf_files = fmri.get_surf_files(subject, fmri_fname) print('{} min max: '.format(utils.namebase(fmri_fname))) print(fmri.calc_surf_files_min_max(surf_files))
def get_subjects_files(args): ''' -f get_subjects_files -s "file:/homes/5/npeled/space1/Documents/memory_task/subjects.txt" ''' subjects = pu.decode_subjects(args.subject) for subject in subjects: subject_fol = op.join(fmri.FMRI_DIR, subject) # data_fol = '/cluster/neuromind/douw/scans/adults/{}/surf'.format(subject) data_fol = '/cluster/neuromind/douw/scans/adults/{}/bold'.format(subject) # template = '*.{}_bld*_rest_reorient_skip_faln_mc_g1000000000_bpss_resid_fsaverage6_sm6.nii.gz'.format(subject) template = '{}_*_rest.nii'.format(subject) files = glob.glob(op.join(data_fol, '**', template), recursive=True) # if len(files) % 2 == 0: if len(files) >= 1: utils.make_dir(subject_fol) for fname in files: # hemi = 'rh' if 'rh' in fname.split(op.sep)[-1] else 'lh' # output_fname = op.join(subject_fol, 'rest.sm6.fsaverage6.{}.mgz'.format(hemi)) output_fname = op.join(subject_fol, 'rest.nii') if not op.isfile(output_fname): shutil.copy(fname, output_fname) else: print('{} already exist!'.format(output_fname)) else: print("Couldn't find the files for {}!".format(subject))
def get_all_subjects(remote_subject_template): subjects = pu.decode_subjects(['MG*'], remote_subject_template) return subjects
parser.add_argument('--meg_dir', required=False, default=meg_dir) fmri_dirs = ['/autofs/space/lilli_004/users/DARPA-{task}/', '/home/npeled/fmri/{task}'] fmri_dirs = [d for d in fmri_dirs if op.isdir(d.format(task='MSIT'))] if len(fmri_dirs) == 0: print('No fMRI folder!') fmri_dir = '' else: fmri_dir = fmri_dirs[0] parser.add_argument('--fmri_dir', required=False, default=fmri_dir.format(task='MSIT')) remote_subject_dirs = ['/autofs/space/lilli_001/users/DARPA-Recons/', '/home/npeled/subjects'] remote_subject_dir = [op.join(d, '{subject}') for d in remote_subject_dirs if op.isdir(d)][0] parser.add_argument('--remote_subject_dir', required=False, default=remote_subject_dir) parser.add_argument('--remote_meg_dir', required=False, default='/autofs/space/lilli_003/users/DARPA-TRANSFER/meg') parser.add_argument('--epo_template', required=False, default='{subject}_{task}_meg_Onset_ar-epo.fif') parser.add_argument('--raw_template', required=False, default='{subject}_{task}_meg_ica-raw.fif') parser.add_argument('--inv_template', required=False, default='{subject}_{task}_Onset-inv.fif') parser.add_argument('--morph_target', required=False, default='fsaverage5') parser.add_argument('--overwrite', required=False, default=False, type=au.is_true) parser.add_argument('--ignore', required=False, default=False, type=au.is_true) parser.add_argument('--n_jobs', help='cpu num', required=False, default=-1) args = utils.Bag(au.parse_parser(parser)) args.subject = pu.decode_subjects(args.subject, remote_subject_dir=args.remote_subject_dir) args.n_jobs = utils.get_n_jobs(args.n_jobs) if args.mri_subject == '': args.mri_subject = args.subject locals()[args.function](args) print('Done!')