def get_ras_using_sftp(args): for subject in args.subject: necessary_files = {'electrodes': ['{}_RAS.xlsx'.format(subject)]} utils.prepare_subject_folder(necessary_files, subject, args.remote_subject_dir, pu.SUBJECTS_DIR, True, args.sftp_username, args.sftp_domain)
def get_labels_data(subject, atlas): necessary_files = { 'label': ['{}.{}.annot'.format(hemi, atlas) for hemi in utils.HEMIS] } remote_subject_dir = op.join(FS_ROOT, '{0}_recon.long.{0}-base'.format(subject)) utils.prepare_subject_folder(necessary_files, subject, remote_subject_dir, SUBJECTS_DIR)
def prepare_files(subject, remote_subjects_dir): necessary_files = { 'mri': ['wm.mgz'], 'label': ['rh.cortex.label', 'lh.cortex.label'], 'surf': ['lh.thickness', 'rh.thickness'] } utils.prepare_subject_folder(necessary_files, subject, op.join(remote_subjects_dir, subject), SUBJECTS_DIR)
def get_output_using_sftp(subjects, subject_to): sftp_domain = 'door.nmr.mgh.harvard.edu' sftp_username = '******' remote_subject_dir = '/space/thibault/1/users/npeled/subjects/{subject}' necessary_files = { 'mri_cvs_register_to_{}'.format(subject_to): ['combined_to{}_elreg_afteraseg-norm.tm3d'.format(subject_to)] } password = '' for subject in subjects: print('Getting tm3d file for {}'.format(subject)) utils.make_dir(op.join(SUBJECTS_DIR, subject, 'electrodes')) ret, password_temp = utils.prepare_subject_folder( necessary_files, subject, remote_subject_dir.format(subject=subject.lower()), SUBJECTS_DIR, True, sftp_username, sftp_domain, sftp_password=password) if not ret: print('Error in copying the file!') if password_temp != '': password = password_temp
def prepare_files_for_subjects(subjects, remote_subject_templates, overwrite=False): necessary_files = { 'surf': [ 'lh.inflated', 'rh.inflated', 'lh.pial', 'rh.pial', 'rh.white', 'lh.white', 'lh.smoothwm', 'rh.smoothwm', 'rh.sulc', 'lh.sulc', 'lh.sphere', 'rh.sphere', 'lh.inflated.K', 'rh.inflated.K', 'lh.inflated.H', 'rh.inflated.H' ], 'label': ['lh.aparc.annot', 'rh.aparc.annot'] } # subjects = pu.decode_subjects(['MG*'], remote_subject_template) good_subjects = [] for subject in subjects: for remote_subject_template in remote_subject_templates: remote_subject_dir = utils.build_remote_subject_dir( remote_subject_template, subject) all_files_exist = utils.prepare_subject_folder( necessary_files, subject, remote_subject_dir, SUBJECTS_DIR, overwrite_files=overwrite, print_missing_files=False) if all_files_exist: good_subjects.append(subject) break return good_subjects
def get_subject_files(subject, necessary_files, remote_subject_dir): if not op.isdir(remote_subject_dir): return False return utils.prepare_subject_folder(necessary_files, subject, remote_subject_dir, SUBJECTS_DIR, print_traceback=False)
def prepare_files_for_subjects(subjects, remote_subject_templates, sftp=False, sftp_username='', sftp_domain='', overwrite=False): necessary_files = { 'surf': [ 'lh.inflated', 'rh.inflated', 'lh.pial', 'rh.pial', 'rh.white', 'lh.white', 'lh.smoothwm', 'rh.smoothwm', 'rh.sulc', 'lh.sulc', 'lh.sphere', 'rh.sphere', 'lh.inflated.K', 'rh.inflated.K', 'lh.inflated.H', 'rh.inflated.H' ], 'mri': [ 'aseg.mgz', 'norm.mgz', 'ribbon.mgz', 'T1.mgz', 'orig.mgz', 'brain.mgz' ], 'label': ['lh.aparc.annot', 'rh.aparc.annot'] } # subjects = pu.decode_subjects(['MG*'], remote_subject_template) good_subjects = [] for subject in subjects: for remote_subject_template in remote_subject_templates: remote_subject_template = remote_subject_template.replace( '{hosp}', subject[:2]) remote_subject_dir = utils.build_remote_subject_dir( remote_subject_template, subject) all_files_exist, _ = utils.prepare_subject_folder( necessary_files, subject, remote_subject_dir, SUBJECTS_DIR, overwrite_files=overwrite, sftp=sftp, sftp_username=sftp_username, sftp_domain=sftp_domain, print_missing_files=False) if all_files_exist: good_subjects.append(subject) break bad_subjects = list(set(subjects) - set(good_subjects)) print('prepare_files: {}/{} good subjects'.format(len(good_subjects), len(subjects))) print('Good: {}'.format(good_subjects)) print('Bad: {}'.format(bad_subjects)) # if len(bad_subjects) > 0: # from src.preproc import anatomy as anat # for subject in bad_subjects: # args = anat.read_cmd_args(dict( # subject=subject, # remote_subject_dir='/mnt/cashlab/Original Data/MG/{subject}/{subject}_Notes_and_Images/{subject}_SurferOutput', # function='prepare_subject_folder' # )) # args.necessary_files = necessary_files # pu.run_on_subjects(args, anat.main) return good_subjects
def prepare_subject_folder(subject, remote_subject_dir, args, necessary_files=None): if necessary_files is None: necessary_files = args.necessary_files return utils.prepare_subject_folder(necessary_files, subject, remote_subject_dir, SUBJECTS_DIR, args.sftp, args.sftp_username, args.sftp_domain, args.sftp_password, args.overwrite_fs_files, args.print_traceback, args.sftp_port)
def preproc_anat(subjects, overwrite_files=False): good_subjects = [] for subject in subjects: # utils.make_dir(op.join(MMVT_DIR, subject, 'fmri')) # utils.make_dir(op.join(MMVT_DIR, '{}_rescan'.format(subject), 'fmri')) scan_ret = utils.prepare_subject_folder( anat.get_necessary_files(), subject, op.join(FS_ROOT, '{0}_recon.long.{0}-base'.format(subject)), SUBJECTS_DIR, overwrite_files=overwrite_files)[0] rescan_ret = utils.prepare_subject_folder( anat.get_necessary_files(), '{}_rescan'.format(subject), op.join(FS_ROOT, '{0}_B_recon.long.{0}-base'.format(subject)), SUBJECTS_DIR, overwrite_files=overwrite_files)[0] if scan_ret and rescan_ret: good_subjects.append(subject) print('{}/{} good subjects'.format(len(good_subjects), len(subjects))) return good_subjects