def plot_connectivity_glassbrain(subject_id, group, pc, roi_coords, suffix, session='func1', preprocessing_folder='pipeline_1', save=True, msdl=False): """Plots connectome of pc """ title = '-'.join([suffix, group, subject_id, session]) output_folder = os.path.join(set_figure_base_dir('connectivity'), suffix) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join(output_folder, '_'.join([suffix, 'connectome', group, session, preprocessing_folder, subject_id])) if msdl: title += '_msdl' output_file += '_msdl' plt.figure(figsize=(10, 20), dpi=90) if save: plot_connectome(pc, roi_coords, edge_threshold='90%', title=title, output_file=output_file) else: plot_connectome(pc, roi_coords, edge_threshold='90%', title=title)
def plot_connectivity_matrix(subject_id, group, pc, roi_names, suffix, session='func1', preprocessing_folder='pipeline_1', save=True, msdl=False): """Plots connectivity matrix of pc """ title = '-'.join([suffix, group, subject_id, session]) # plot matrix output_folder = os.path.join(set_figure_base_dir('connectivity'), suffix) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join( output_folder, '_'.join([ suffix, 'matrix', group, session, preprocessing_folder, subject_id ])) if msdl: title += '_msdl' output_file += '_msdl' if msdl: plt.figure(figsize=(12, 12)) else: plt.figure(figsize=(8, 8)) plt.imshow(pc, cmap=cm.bwr, interpolation='nearest', vmin=-1, vmax=1) plt.colorbar() plt.xticks(range(len(roi_names)), roi_names, rotation='vertical', fontsize=16) plt.yticks(range(len(roi_names)), roi_names, fontsize=16) plt.title(title, fontsize=20) plt.tight_layout() if save: plt.savefig(output_file)
def plot_connectivity_matrix(subject_id, group, pc, roi_names, suffix, session='func1', preprocessing_folder='pipeline_1', save=True, msdl=False): """Plots connectivity matrix of pc """ title = '-'.join([suffix, group, subject_id, session]) # plot matrix output_folder = os.path.join(set_figure_base_dir('connectivity'), suffix) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join(output_folder, '_'.join([suffix, 'matrix', group, session, preprocessing_folder, subject_id])) if msdl: title += '_msdl' output_file += '_msdl' if msdl: plt.figure(figsize=(12, 12)) else: plt.figure(figsize=(8, 8)) plt.imshow(pc, cmap=cm.bwr, interpolation='nearest', vmin=-1, vmax=1) plt.colorbar() plt.xticks(range(len(roi_names)), roi_names, rotation='vertical', fontsize=16) plt.yticks(range(len(roi_names)), roi_names, fontsize=16) plt.title(title, fontsize=20) plt.tight_layout() if save: plt.savefig(output_file)
def plot_connectivity_glassbrain(subject_id, group, pc, roi_coords, suffix, session='func1', preprocessing_folder='pipeline_1', save=True, msdl=False): """Plots connectome of pc """ title = '-'.join([suffix, group, subject_id, session]) output_folder = os.path.join(set_figure_base_dir('connectivity'), suffix) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join( output_folder, '_'.join([ suffix, 'connectome', group, session, preprocessing_folder, subject_id ])) if msdl: title += '_msdl' output_file += '_msdl' plt.figure(figsize=(10, 20), dpi=90) if save: plot_connectome(pc, roi_coords, edge_threshold='90%', title=title, output_file=output_file) else: plot_connectome(pc, roi_coords, edge_threshold='90%', title=title)
def pairwise_classification(X, y, title=''): """ Computes and plots accuracy of pairwise classification model """ # Ridge classification rdgc = RidgeClassifierCV(alphas=np.logspace(-3, 3, 7)) # Support Vector classification svc = LinearSVC(penalty='l1', dual=False) # Linear Discriminant Analysis lda = LDA() # Logistic Regression logit = LogisticRegression(penalty='l1', random_state=42) estimator_str = ['svc', 'lda', 'rdgc', 'logit'] # train size train_size = np.linspace(.2, .9, 8) best_w = [] best_acc = 0 for e in estimator_str: estimator = eval(e) mean_acc = [] std_acc = [] for ts in train_size: sss = StratifiedShuffleSplit(y, n_iter=50, train_size=ts, random_state=42) # Compute accuracies accuracy = [] w = [] for train, test in sss: estimator.fit(X[train], y[train]) accuracy.append(estimator.score(X[test], y[test])) if e != 'rdgc' and e != 'lda': w.append(estimator.coef_) acc = np.mean(accuracy) acc_std = np.std(accuracy)/2 mean_acc.append(acc) std_acc.append(acc_std) if len(w) > 0 and acc > best_acc : best_acc = acc best_w = np.mean(w, axis=0) bl = plt.plot(train_size, mean_acc) plt.fill_between(train_size, np.sum([mean_acc, std_acc], axis=0), np.subtract(mean_acc, std_acc), facecolor=bl[0].get_c(), alpha=0.1) plt.xticks(fontsize=16) plt.yticks(fontsize=16) plt.legend(estimator_str, loc='best') plt.xlabel('Train size', fontsize=16) plt.ylabel('Accuracy', fontsize=16) plt.ylim([.3, .9]) plt.grid() plt.title('Classification ' + title, fontsize=16) if msdl: msdl_str = 'msdl' else: msdl_str = 'rois' output_folder = os.path.join(set_figure_base_dir('classification'), metric, session, msdl_str) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join(output_folder, 'accuracy_' + title) plt.savefig(output_file) return best_w, best_acc
gr_j = dataset.group_indices[groups[j]] Xp = np.vstack((X[gr_i, :], X[gr_j, :])) yp = np.array([0] * len(gr_i) + [1] * len(gr_j)) output = '_'.join([groups[i], groups[j], metric, session, msdl_str, preprocessing_folder]) plt.figure() w,a = pairwise_classification(Xp, yp, title=output) print groups[i], groups[j], a t = np.zeros((len(roi_names), len(roi_names))) t[ind] = np.abs(w) t = (t + t.T) / 2. if msdl: msdl_str = 'msdl' else: msdl_str = 'rois' output_folder = os.path.join(set_figure_base_dir('classification'), metric, session, msdl_str) if not os.path.isdir(output_folder): os.makedirs(output_folder) output_file = os.path.join(output_folder, 'connectome_' + output) plot_connectome(t, roi_coords, title=output, output_file=output_file, annotate=True, edge_threshold='0%') # 1 vs rest for i in range(3): gr_i = dataset.group_indices[groups[i]] yr = np.zeros(X.shape[0]) yr[gr_i] = 1
do_cca=True, threshold=3., n_init=10, standardize=True, random_state=42, n_jobs=2, verbose=2) CANICA_PATH = set_data_base_dir('Dynacomp/canica') output_file = os.path.join(CANICA_PATH, 'canica_' + str(n_components) + '.nii.gz') if not os.path.isfile(output_file): canica.fit(func) components_img = canica.masker_.inverse_transform(canica.components_) components_img.to_filename(output_file) else: components_img = output_file FIG_PATH = set_figure_base_dir('canica') for i, cur_img in enumerate(iter_img(components_img)): output_file = os.path.join(FIG_PATH, 'canica_' + str(n_components) + '_IC%d' % i) plot_stat_map(cur_img, display_mode="z", title="IC %d" % i, cut_coords=1, colorbar=False, output_file=output_file)
# -*- coding: utf-8 -*- """ Created on Wed Apr 1 09:16:38 2015 @author: mr243268 """ import os from loader import load_dynacomp, set_figure_base_dir from nilearn.plotting import plot_roi dataset = load_dynacomp() FIG_DIR = set_figure_base_dir('rois') for i in range(len(dataset.subjects)): for k in sorted(dataset.rois[i].keys()): output_file = os.path.join(FIG_DIR, k) plot_roi(dataset.rois[i][k], title=k, output_file=output_file) break
from nilearn.image import iter_img dataset = load_dynacomp() func = dataset.func1 n_components = 20 canica = CanICA(n_components=n_components, mask=dataset.mask, smoothing_fwhm=None, do_cca=True, threshold=3., n_init=10, standardize=True, random_state=42, n_jobs=2, verbose=2) CANICA_PATH = set_data_base_dir('Dynacomp/canica') output_file = os.path.join(CANICA_PATH, 'canica_' + str(n_components) + '.nii.gz') if not os.path.isfile(output_file): canica.fit(func) components_img = canica.masker_.inverse_transform(canica.components_) components_img.to_filename(output_file) else: components_img = output_file FIG_PATH = set_figure_base_dir('canica') for i, cur_img in enumerate(iter_img(components_img)): output_file = os.path.join(FIG_PATH, 'canica_'+ str(n_components) +'_IC%d' % i ) plot_stat_map(cur_img, display_mode="z", title="IC %d" % i, cut_coords=1, colorbar=False, output_file=output_file)