def compute_graph_lasso_covariance(subject_id, group, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns graph lasso covariance for a subject_id """ # load timeseries if msdl: ts = load_dynacomp_msdl_timeseries( subject_id, session=session, preprocessing_folder=preprocessing_folder) roi_names, roi_coords = load_msdl_names_and_coords() else: ts = load_dynacomp_roi_timeseries( subject_id, session=session, preprocessing_folder=preprocessing_folder) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) # compute covariance gl = covariance.GraphLassoCV(verbose=2) gl.fit(ts) if plot: plot_connectivity_matrix(subject_id, group, gl.covariance_, roi_names, 'gl_covariance', session, preprocessing_folder, save, msdl) plot_connectivity_matrix(subject_id, group, gl.precision_, roi_names, 'gl_precision', session, preprocessing_folder, save, msdl) sparsity = (gl.precision_ == 0) plot_connectivity_matrix(subject_id, group, sparsity, roi_names, 'gl_sparsity', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(subject_id, group, gl.covariance_, roi_coords, 'gl_covariance', session, preprocessing_folder, save, msdl) if save_file: CONN_DIR = set_data_base_dir('Dynacomp/connectivity') sparsity = (gl.precision_ == 0) if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join( CONN_DIR, subject_id, 'gl_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, covariance=gl.covariance_, precision=gl.precision_, sparsity=sparsity, roi_names=roi_names, roi_coords=roi_coords) return gl, roi_names, roi_coords
def compute_graph_lasso_covariance(subject_id, group, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns graph lasso covariance for a subject_id """ # load timeseries if msdl: ts = load_dynacomp_msdl_timeseries(subject_id, session=session, preprocessing_folder=preprocessing_folder) roi_names, roi_coords = load_msdl_names_and_coords() else: ts = load_dynacomp_roi_timeseries(subject_id, session=session, preprocessing_folder=preprocessing_folder) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) # compute covariance gl = covariance.GraphLassoCV(verbose=2) gl.fit(ts) if plot: plot_connectivity_matrix(subject_id, group, gl.covariance_, roi_names, 'gl_covariance', session, preprocessing_folder, save, msdl) plot_connectivity_matrix(subject_id, group, gl.precision_, roi_names, 'gl_precision', session, preprocessing_folder, save, msdl) sparsity = (gl.precision_ == 0) plot_connectivity_matrix(subject_id, group, sparsity, roi_names, 'gl_sparsity', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(subject_id, group, gl.covariance_, roi_coords, 'gl_covariance', session, preprocessing_folder, save, msdl) if save_file: CONN_DIR = set_data_base_dir('Dynacomp/connectivity') sparsity = (gl.precision_ == 0) if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join(CONN_DIR, subject_id, 'gl_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, covariance=gl.covariance_, precision=gl.precision_, sparsity=sparsity, roi_names=roi_names, roi_coords=roi_coords) return gl, roi_names, roi_coords
def compute_pearson_connectivity(subject_id, group, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns Pearson correlation coefficient for a subject_id """ # load timeseries if msdl: ts = load_dynacomp_msdl_timeseries( subject_id, session=session, preprocessing_folder=preprocessing_folder) roi_names, roi_coords = load_msdl_names_and_coords() else: ts = load_dynacomp_roi_timeseries( subject_id, session=session, preprocessing_folder=preprocessing_folder) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) # pearson correlation pc = np.corrcoef(ts.T) if plot: print session plot_connectivity_matrix(subject_id, group, pc, roi_names, 'pc', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(subject_id, group, pc, roi_coords, 'pc', session, preprocessing_folder, save, msdl) if save_file: CONN_DIR = set_data_base_dir('Dynacomp/connectivity') if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join( CONN_DIR, subject_id, 'pc_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, correlation=pc, roi_names=roi_names, roi_coords=roi_coords) return pc, roi_names, roi_coords
def compute_pearson_connectivity(subject_id, group, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns Pearson correlation coefficient for a subject_id """ # load timeseries if msdl: ts = load_dynacomp_msdl_timeseries(subject_id, session=session, preprocessing_folder=preprocessing_folder) roi_names, roi_coords = load_msdl_names_and_coords() else: ts = load_dynacomp_roi_timeseries(subject_id, session=session, preprocessing_folder=preprocessing_folder) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) # pearson correlation pc = np.corrcoef(ts.T) if plot: print session plot_connectivity_matrix(subject_id, group, pc, roi_names, 'pc', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(subject_id, group, pc, roi_coords, 'pc', session, preprocessing_folder, save, msdl) if save_file: CONN_DIR = set_data_base_dir('Dynacomp/connectivity') if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join(CONN_DIR, subject_id, 'pc_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, correlation=pc, roi_names=roi_names, roi_coords=roi_coords) return pc, roi_names, roi_coords
def compute_group_sparse_covariance(dataset, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns Group sparse covariance for all subjects """ ts = [] # load timeseries if msdl: for subject_id in dataset.subjects: ts.append(load_dynacomp_msdl_timeseries(subject_id,\ session=session, preprocessing_folder=preprocessing_folder)) roi_names, roi_coords = load_msdl_names_and_coords() else: for subject_id in dataset.subjects: ts.append(load_dynacomp_roi_timeseries(subject_id, session=session,\ preprocessing_folder=preprocessing_folder)) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) gsc = GroupSparseCovarianceCV(verbose=2) gsc.fit(ts) if plot: for i in range(len(dataset.subjects)): if not msdl: # load rois roi_names,\ roi_coords = load_roi_names_and_coords(dataset.subjects[i]) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], gsc.covariances_[..., i], roi_names, 'gsc_covariance', session, preprocessing_folder, save, msdl) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], gsc.precisions_[..., i], roi_names, 'gsc_precision', session, preprocessing_folder, save, msdl) sparsity = (gsc.precisions_[..., i] == 0) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], sparsity, roi_names, 'gsc_sparsity', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(dataset.subjects[i], dataset.group[i], gsc.covariances_[..., i], roi_coords, 'gsc_covariance', session, preprocessing_folder, save, msdl) for i in range(len(dataset.subjects)): if not msdl: # load rois roi_names,\ roi_coords = load_roi_names_and_coords(dataset.subjects[i]) sparsity = (gsc.precisions_[..., i] == 0) CONN_DIR = set_data_base_dir('Dynacomp/connectivity') subject_id = dataset.subjects[i] if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join(CONN_DIR, subject_id, 'gsc_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, covariance=gsc.covariances_[..., i], precision=gsc.precisions_[..., i], sparsity=sparsity, roi_names=roi_names, roi_coords=roi_coords) return gsc, roi_names, roi_coords
# Behavior data behav_data = dataset.behavior # Add deltas for i in range(len(behav_data)): for key in ['Thresh', 'RT', 'HIT_RT', 'Perf', 'Conf_mean']: behav_data[i]['delta' + key] = - behav_data[i]['post' + key] + \ behav_data[i]['pre' + key] subject_id = dataset.subjects[0] all_pc = [] avn = [] v = [] av = [] gr_ind = [] for i, subject_id in enumerate(dataset.subjects): ts = load_dynacomp_roi_timeseries( subject_id, session='func1', preprocessing_folder=preprocessing_folder) # ROIs : 19, 21 pc = np.corrcoef(ts[:, 19], ts[:, 21])[0, 1] if dataset.group[i] == 'v': v.append(pc) gr_ind.append(i) if dataset.group[i] == 'avn': avn.append(pc) gr_ind.append(i) if dataset.group[i] == 'av': av.append(pc) all_pc.append(pc) plt.figure() plt.boxplot([avn, v, av]) plt.xticks(range(1, 4), ['avn', 'v', 'av'], fontsize=16)
def compute_group_sparse_covariance(dataset, session='func1', preprocessing_folder='pipeline_1', plot=True, save=True, save_file=True, msdl=False): """Returns Group sparse covariance for all subjects """ ts = [] # load timeseries if msdl: for subject_id in dataset.subjects: ts.append(load_dynacomp_msdl_timeseries(subject_id,\ session=session, preprocessing_folder=preprocessing_folder)) roi_names, roi_coords = load_msdl_names_and_coords() else: for subject_id in dataset.subjects: ts.append(load_dynacomp_roi_timeseries(subject_id, session=session,\ preprocessing_folder=preprocessing_folder)) # load rois roi_names, roi_coords = load_roi_names_and_coords(subject_id) gsc = GroupSparseCovarianceCV(verbose=2) gsc.fit(ts) if plot: for i in range(len(dataset.subjects)): if not msdl: # load rois roi_names,\ roi_coords = load_roi_names_and_coords(dataset.subjects[i]) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], gsc.covariances_[..., i], roi_names, 'gsc_covariance', session, preprocessing_folder, save, msdl) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], gsc.precisions_[..., i], roi_names, 'gsc_precision', session, preprocessing_folder, save, msdl) sparsity = (gsc.precisions_[..., i] == 0) plot_connectivity_matrix(dataset.subjects[i], dataset.group[i], sparsity, roi_names, 'gsc_sparsity', session, preprocessing_folder, save, msdl) plot_connectivity_glassbrain(dataset.subjects[i], dataset.group[i], gsc.covariances_[..., i], roi_coords, 'gsc_covariance', session, preprocessing_folder, save, msdl) for i in range(len(dataset.subjects)): if not msdl: # load rois roi_names,\ roi_coords = load_roi_names_and_coords(dataset.subjects[i]) sparsity = (gsc.precisions_[..., i] == 0) CONN_DIR = set_data_base_dir('Dynacomp/connectivity') subject_id = dataset.subjects[i] if not os.path.isdir(os.path.join(CONN_DIR, subject_id)): os.mkdir(os.path.join(CONN_DIR, subject_id)) output_file = os.path.join( CONN_DIR, subject_id, 'gsc_' + session + '_' + preprocessing_folder) if msdl: output_file += '_msdl' np.savez(output_file, covariance=gsc.covariances_[..., i], precision=gsc.precisions_[..., i], sparsity=sparsity, roi_names=roi_names, roi_coords=roi_coords) return gsc, roi_names, roi_coords
behav_data = dataset.behavior # Add deltas for i in range(len(behav_data)): for key in ['Thresh', 'RT', 'HIT_RT', 'Perf', 'Conf_mean']: behav_data[i]['delta' + key] = - behav_data[i]['post' + key] + \ behav_data[i]['pre' + key] subject_id = dataset.subjects[0] all_pc = [] avn = [] v = [] av = [] gr_ind = [] for i, subject_id in enumerate(dataset.subjects): ts = load_dynacomp_roi_timeseries(subject_id, session='func1', preprocessing_folder=preprocessing_folder) # ROIs : 19, 21 pc = np.corrcoef(ts[:,19], ts[:,21])[0,1] if dataset.group[i] == 'v': v.append(pc) gr_ind.append(i) if dataset.group[i] == 'avn': avn.append(pc) gr_ind.append(i) if dataset.group[i] == 'av': av.append(pc) all_pc.append(pc) plt.figure() plt.boxplot([avn, v, av]) plt.xticks(range(1, 4), ['avn', 'v', 'av'], fontsize=16)