bands = ([.5, 4], [4, 8])

raw_fname = env.data + '/MEG_data/fifs/' + subj + '_rest_LP100_CP3_DS300_raw.fif'
fwd_path = env.data + '/MEG_data/analysis/rest/'
fwd_fname = fwd_path + subj + '_rest_LP100_CP3_DS300_raw-5-fwd.fif'

# preloading makes computing the covariance a lot faster
raw = mne.fiff.Raw(raw_fname, preload=True)
fwd = mne.read_forward_solution(fwd_fname)

epochs = fgs.crop_good_epochs(raw, threshold=3500e-15, fmin=.5, fmax=58)
stcs = ve.localize_epochs(epochs, fwd, reg=0)

labels_folder = os.environ['SUBJECTS_DIR'] + '/' + subj + '/labels/'
label_names = glob.glob(labels_folder + '/*.label')

print 'Reading subject labels...'
labels = [mne.read_label(ln) for ln in label_names]

selected_voxels = ve.find_best_voxels_epochs(stcs, labels, bands, job_num=1)

plis = []
for r, rand_ids in enumerate(epoch_ids):
    print '\nRunning random set ' + str(r+1) + '/' + str(num_rand_sets)
    rnd_epochs = [stcs[epoch] for epoch in rand_ids]
    pli = ve.compute_pli_epochs(rnd_epochs, labels, selected_voxels, bands)
    plis.append(pli)

np.savez(env.results + subj + '_rand_epochs', subj=subj, plis=plis, bands=bands, epoch_ids=epoch_ids)
res = np.load(env.results + 'num_clean_epochs_chl.5_lp58_hp.5_visual.npz')
data_mrks = res['markers'][()]
chl_mrks = res['chl_mrks'][()]
seg_len = res['seg_len'][()]

res = env.load(env.results + 'selected_voxels_all_chl.5_lp58_hp.5_visual.npz')
labels = res['labels']
selected_voxels = res['selected_voxels']
good_subjects = list(res['good_nvs']) + list(res['good_adhds'])

plis = {}

for subj in good_subjects:
    raw_fname = env.data + '/MEG_data/fifs/' + subj + '_rest_LP58_HP.5_CP3_DS300_raw.fif'
    fwd_fname = env.data + '/MEG_data/analysis/rest/' + subj + '_rest_LP100_CP3_DS300_raw-5-fwd.fif'

   # preloading makes computing the covariance a lot faster
    raw = mne.fiff.Raw(raw_fname, preload=True)
    fwd = mne.read_forward_solution(fwd_fname)
    _, times = raw[:, :]

    mrks = data_mrks[subj] + chl_mrks[subj]
    events = fgs.get_good_events(mrks, times, seg_len)
    epochs = fgs.crop_clean_epochs(raw, events, seg_len=seg_len)

    stcs = ve.localize_epochs(epochs, fwd, reg=0)

    plis[subj] = ve.compute_pli_epochs(stcs, labels[subj], selected_voxels[subj], res['bands'])

np.savez(env.results + 'good_plis_all_chl.5_lp58_hp.5_visual.npz', plis=plis)
    raw = mne.fiff.Raw(raw_fname, preload=True)
    fwd = mne.read_forward_solution(fwd_fname)
    _, times = raw[:, :]

    mrks = data_mrks[subj] + chl_mrks[subj]
    events = fgs.get_good_events(mrks, times, seg_len)
    epochs = fgs.crop_clean_epochs(raw, events, seg_len=seg_len)

    stcs = ve.localize_epochs(epochs, fwd, reg=0)

    rand_plis = np.zeros(
        [num_perms,
         len(bands),
         len(labels[subj]),
         len(labels[subj])])
    for r in range(num_perms):
        print '==================================='
        print '========  Permutation ' + str(r + 1) + ' ==========='
        print '==================================='
        pli = ve.compute_pli_epochs(stcs,
                                    labels[subj],
                                    selected_voxels[subj],
                                    bands,
                                    randomize=True)
        for band in range(len(bands)):
            rand_plis[r, band, :, :] = pli[band]

    np.savez(env.results + 'rand_' + str(num_perms) + '_plis_' + subj + '_' +
             str(int(time.time())),
             rand_plis=rand_plis)
for subj, voxels in selected_voxels.iteritems():
    print '==================================='
    print '=======  Subject ' + subj + ' ========='
    print '==================================='

    raw_fname = env.data + '/MEG_data/fifs/' + subj + '_rest_LP58_HP.5_CP3_DS300_raw.fif'
    fwd_fname = env.data + '/MEG_data/analysis/rest/' + subj + '_rest_LP100_CP3_DS300_raw-5-fwd.fif'

    # preloading makes computing the covariance a lot faster
    raw = mne.fiff.Raw(raw_fname, preload=True)
    fwd = mne.read_forward_solution(fwd_fname)
    _, times = raw[:, :]

    mrks = data_mrks[subj] + chl_mrks[subj]
    events = fgs.get_good_events(mrks, times, seg_len)
    epochs = fgs.crop_clean_epochs(raw, events, seg_len=seg_len)

    stcs = ve.localize_epochs(epochs, fwd, reg=0)

    rand_plis = np.zeros([num_perms, len(bands), len(labels[subj]), len(labels[subj])])
    for r in range(num_perms):
        print '==================================='
        print '========  Permutation ' + str(r+1) + ' ==========='
        print '==================================='
        pli = ve.compute_pli_epochs(stcs, labels[subj], selected_voxels[subj], bands, randomize=True)
        for band in range(len(bands)):
            rand_plis[r, band, :, :] = pli[band]

    np.savez(env.results + 'rand_' + str(num_perms) + '_plis_' + subj + '_' + str(int(time.time())), rand_plis=rand_plis)
Beispiel #5
0
fwd_path = env.data + '/MEG_data/analysis/rest/'
fwd_fname = fwd_path + subj + '_rest_LP100_CP3_DS300_raw-5-fwd.fif'

# preloading makes computing the covariance a lot faster
raw = mne.fiff.Raw(raw_fname, preload=True)
fwd = mne.read_forward_solution(fwd_fname)

epochs = fgs.crop_good_epochs(raw, threshold=3500e-15, fmin=.5, fmax=58)
stcs = ve.localize_epochs(epochs, fwd, reg=0)

labels_folder = os.environ['SUBJECTS_DIR'] + '/' + subj + '/labels/'
label_names = glob.glob(labels_folder + '/*.label')

print 'Reading subject labels...'
labels = [mne.read_label(ln) for ln in label_names]

selected_voxels = ve.find_best_voxels_epochs(stcs, labels, bands, job_num=1)

plis = []
for r, rand_ids in enumerate(epoch_ids):
    print '\nRunning random set ' + str(r + 1) + '/' + str(num_rand_sets)
    rnd_epochs = [stcs[epoch] for epoch in rand_ids]
    pli = ve.compute_pli_epochs(rnd_epochs, labels, selected_voxels, bands)
    plis.append(pli)

np.savez(env.results + subj + '_rand_epochs',
         subj=subj,
         plis=plis,
         bands=bands,
         epoch_ids=epoch_ids)