def calc_seed_corr(args): args = con.read_cmd_args(dict( function='calc_seed_corr', subject=args.subject, atlas=args.atlas, identifier='freesurfer', labels_regex='precentral-rh',#''post*cingulate*rh', seed_label_name='post_cingulate_rh', seed_label_r=5, overwrite_seed_data=True, n_jobs=args.n_jobs )) con.call_main(args)
def load_connectivity_results(args): # from src.utils import matlab_utils as matu # mat_file = matu.load_mat_to_bag(op.join(MMVT_DIR, args.subject[0], 'connectivity', 'corr.mat')) # conn = mat_file.mAdjMat # labels = matu.matlab_cell_str_to_list(mat_file.mLabels) args = con.read_cmd_args(dict( function='calc_rois_matlab_connectivity', subject=args.subject, atlas=args.atlas, mat_fname=op.join(MMVT_DIR, args.subject[0], 'connectivity', 'corr.mat'), mat_field='mAdjMat', sorted_labels_names_field='mLabelsCort', n_jobs=args.n_jobs )) con.call_main(args)
def calc_meg_connectivity(args): args = connectivity.read_cmd_args( utils.Bag( subject=args.subject, atlas='laus125', function='calc_lables_connectivity', connectivity_modality='meg', connectivity_method='pli', windows_num=1, # windows_length=500, # windows_shift=100, recalc_connectivity=True, n_jobs=args.n_jobs)) connectivity.call_main(args)
def calc_fmri_static_connectivity(args): args = con.read_cmd_args( dict( subject=args.subject, atlas='laus125', # 'yao17' function='calc_lables_connectivity', connectivity_modality='fmri', connectivity_method='corr', labels_extract_mode='mean', identifier='', #'freesurfer',#'hesheng', #''linda',# save_mmvt_connectivity=False, calc_subs_connectivity=False, recalc_connectivity=True, n_jobs=args.n_jobs)) con.call_main(args)
def analyse_connectivity(subject, connectivity_method, graph_func, file_name, atlas, n_jobs=4): bands = dict(theta=[4, 8], alpha=[8, 15], beta=[15, 30], gamma=[30, 55], high_gamma=[65, 120]) conn_fol = op.join(MMVT_DIR, subject, 'connectivity') output_fol = utils.make_dir(op.join(conn_fol, file_name)) for band_name, band_freqs in bands.items(): output_files = [ f.format(band_name) for f in [ 'meg_{}_laus125_mi_mean_flip_mean.npy', 'meg_{}_mi.npy', 'meg_{}_mi.npz' ] ] files_exist = all( [op.isfile(op.join(output_fol, f)) for f in output_files]) if not files_exist: print('calc_meg_connectivity: {}'.format(band_name)) con_args = connectivity.read_cmd_args( utils.Bag( subject=subject, atlas=atlas, function='calc_lables_connectivity', connectivity_modality='meg', connectivity_method=connectivity_method, windows_length=500, windows_shift=100, identifier=band_name, fmin=band_freqs[0], fmax=band_freqs[1], sfreq=2035, # clin MEG recalc_connectivity=True, n_jobs=n_jobs)) connectivity.call_main(con_args) for output_file_name in output_files: utils.move_file(op.join(conn_fol, output_file_name), output_fol) con_name = 'meg_{}_mi'.format(band_name) analyze_graph(subject, file_name, con_name, graph_func, n_jobs) plot_graph_values(subject, file_name, con_name, graph_func)
def calc_connectivity(subject, atlas, connectivity_method, files, bands, modality, overwrite=False, n_jobs=4): conn_fol = op.join(MMVT_DIR, subject, 'connectivity') now = time.time() for run, fif_fname in enumerate(files): utils.time_to_go(now, run, len(files), runs_num_to_print=1) file_name = utils.namebase(fif_fname) labels_data_name = 'labels_data_{}-epilepsy-{}-{}-{}_{}_mean_flip_{}.npz'.format( subject, 'dSPM', modality, file_name, atlas, '{hemi}') if not utils.both_hemi_files_exist( op.join(MMVT_DIR, subject, modality, labels_data_name)): print('labels data does not exist for {}!'.format(file_name)) for band_name, band_freqs in bands.items(): output_fname = op.join( conn_fol, '{}_{}_{}_{}.npy'.format(modality, file_name, band_name, connectivity_method)) if op.isfile(output_fname) and not overwrite: print('{} {} connectivity for {} already exist'.format( connectivity_method, band_name, file_name)) continue print('calc_meg_connectivity: {}'.format(band_name)) con_args = connectivity.read_cmd_args( utils.Bag( subject=subject, atlas=atlas, function='calc_lables_connectivity', connectivity_modality=modality, connectivity_method=connectivity_method, labels_data_name=labels_data_name, windows_length=500, windows_shift=100, identifier='{}_{}'.format(file_name, band_name), fmin=band_freqs[0], fmax=band_freqs[1], sfreq=2035, # clin MEG recalc_connectivity=False, save_mmvt_connectivity=True, threshold_percentile=80, n_jobs=n_jobs)) connectivity.call_main(con_args)
def calc_meg_gamma_connectivity(args): args = con.read_cmd_args(utils.Bag( subject=args.subject, atlas='laus125', function='calc_lables_connectivity', connectivity_modality='meg', connectivity_method='pli', windows_length=100, windows_shift=10, # sfreq=1000.0, fmin=30, fmax=55, recalc_connectivity=True, # max_windows_num=100, n_jobs=args.n_jobs )) con.call_main(args)
def calc_fmri_connectivity(args): '-s hc029 -a laus125 -f calc_lables_connectivity --connectivity_modality fmri connectivity_method=corr,cv--windows_length 20 --windows_shift 3' args = con.read_cmd_args( dict( subject=args.subject, atlas='laus125', function='calc_lables_connectivity', connectivity_modality='fmri', # connectivity_method='mi_vec,cv', connectivity_method='corr,cv', # labels_extract_mode='pca_2,pca_4,pca_8', #mean,pca, labels_extract_mode='mean', windows_length=34, #20, windows_shift=4, #3, save_mmvt_connectivity=False, calc_subs_connectivity=False, recalc_connectivity=True, n_jobs=args.n_jobs)) con.call_main(args)
def analyze_rest_fmri(args): for subject in args.mri_subject: remote_rest_fol = get_fMRI_rest_fol(subject, args.remote_fmri_dir) local_rest_fname = convert_rest_dicoms_to_mgz(subject, remote_rest_fol) if not op.isfile(local_rest_fname): print('{}: Can\'t find {}!'.format(subject, local_rest_fname)) continue args = fmri.read_cmd_args( dict( subject=subject, atlas=args.atlas, remote_subject_dir=args.remote_subject_dir, function='clean_4d_data', fmri_file_template=local_rest_fname, )) fmri.call_main(args) args = fmri.read_cmd_args( dict(subject=args.subject, atlas=args.atlas, function='analyze_4d_data', fmri_file_template='rest.sm6.{subject}.{hemi}.mgz', labels_extract_mode='mean', overwrite_labels_data=False)) fmri.call_main(args) args = connectivity.read_cmd_args( dict(subject=args.subject, atlas=args.atlas, function='calc_lables_connectivity', connectivity_modality='fmri', connectivity_method='corr', labels_extract_mode='mean', identifier='', save_mmvt_connectivity=True, calc_subs_connectivity=False, recalc_connectivity=True, n_jobs=args.n_jobs)) connectivity.call_main(args)
def calc_meg_connectivity(args): bands = dict(theta=[4, 8], alpha=[8, 15], beta=[15, 30], gamma=[30, 55], high_gamma=[65, 120]) for band_name, band_freqs in bands.items(): print('calc_meg_connectivity: {}'.format(band_name)) con_args = con.read_cmd_args(utils.Bag( subject=args.subject, atlas='laus125', function='calc_lables_connectivity', connectivity_modality='meg', connectivity_method='mi', windows_length=500, windows_shift=100, identifier=band_name, fmin=band_freqs[0], fmax=band_freqs[1], sfreq=2035, # clin MEG # recalc_connectivity=True, # max_windows_num=100, recalc_connectivity=True, n_jobs=args.n_jobs )) con.call_main(con_args)
def analyze_rest_fmri(gargs): good_subjects = [] for subject in gargs.mri_subject: # remote_rest_fol = get_fMRI_rest_fol(subject, gargs.remote_fmri_dir) # print('{}: {}'.format(subject, remote_rest_fol)) # if remote_rest_fol == '': # continue # local_rest_fname = convert_rest_dicoms_to_mgz(subject, remote_rest_fol, overwrite=True) # if local_rest_fname == '': # continue # if not op.isfile(local_rest_fname): # print('{}: Can\'t find {}!'.format(subject, local_rest_fname)) # continue # args = fmri.read_cmd_args(dict( # subject=subject, # atlas=gargs.atlas, # remote_subject_dir=gargs.remote_subject_dir, # function='clean_4d_data', # fmri_file_template=local_rest_fname, # overwrite_4d_preproc=True # )) # flags = fmri.call_main(args) # if subject not in flags or not flags[subject]['clean_4d_data']: # continue output_fname = op.join(MMVT_DIR, subject, 'connectivity', 'fmri_corr.npz') if op.isfile(output_fname): print('{} already exist!'.format(output_fname)) good_subjects.append(subject) continue remote_fname = op.join( gargs.remote_fmri_rest_dir, subject, 'rest_001', '001', 'fmcpr.siemens.sm6.{}.{}.nii.gz'.format(subject, '{hemi}')) if not utils.both_hemi_files_exist(remote_fname): print('Couldn\t find fMRI rest data for {} ({})'.format( subject, remote_fname)) continue local_fmri_fol = utils.make_dir(op.join(FMRI_DIR, subject)) local_fmri_template = op.join(local_fmri_fol, utils.namebase_with_ext(remote_fname)) if utils.both_hemi_files_exist(local_fmri_template): print('{} al') for hemi in utils.HEMIS: local_fmri_fname = op.join(local_fmri_fol, local_fmri_template.format(hemi=hemi)) if op.isfile(local_fmri_fname): os.remove(local_fmri_fname) utils.make_link(remote_fname.format(hemi=hemi), local_fmri_fname) args = fmri.read_cmd_args( dict(subject=subject, atlas=gargs.atlas, function='analyze_4d_data', fmri_file_template=local_fmri_template, labels_extract_mode='mean', overwrite_labels_data=True)) flags = fmri.call_main(args) if subject not in flags or not flags[subject]['analyze_4d_data']: continue args = connectivity.read_cmd_args( dict( subject=subject, atlas=gargs.atlas, function='calc_lables_connectivity', connectivity_modality='fmri', connectivity_method='corr', labels_extract_mode='mean', windows_length=34, # tr = 3 -> 100s windows_shift=4, # 12s save_mmvt_connectivity=True, calc_subs_connectivity=False, recalc_connectivity=True, n_jobs=gargs.n_jobs)) flags = connectivity.call_main(args) if subject in flags and flags[subject]['calc_lables_connectivity']: good_subjects.append(subject) print('{}/{} good subjects'.format(len(good_subjects), len(gargs.mri_subject))) print('Good subject: ', good_subjects) print('Bad subjects: ', set(gargs.mri_subject) - set(good_subjects))