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
示例#7
0
                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)
示例#8
0
# -*- 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)