Example #1
0
def test_compute_minimum_norm():
    """Test MNE inverse computation
    """

    setno = 0
    noise_cov = mne.Covariance(fname_cov)
    forward = mne.read_forward_solution(fname_fwd)
    evoked = mne.fiff.Evoked(fname_data, setno=setno, baseline=(None, 0))
    whitener = noise_cov.get_whitener(evoked.info, mag_reg=0.1,
                                      grad_reg=0.1, eeg_reg=0.1, pca=True)
    stc, K, W = mne.minimum_norm(evoked, forward, whitener,
                        orientation='loose', method='dspm', snr=3, loose=0.2)
fname_evoked = data_path + "/MEG/sample/sample_audvis-ave.fif"

setno = 0
snr = 3.0
lambda2 = 1.0 / snr ** 2
dSPM = True

# Load data
evoked = Evoked(fname_evoked, setno=setno, baseline=(None, 0))
forward = mne.read_forward_solution(fname_fwd)
noise_cov = mne.Covariance(fname_cov)

# Compute whitener from noise covariance matrix
whitener = noise_cov.get_whitener(evoked.info, mag_reg=0.1, grad_reg=0.1, eeg_reg=0.1, pca=True)
# Compute inverse solution
stc, K, W = mne.minimum_norm(evoked, forward, whitener, orientation="loose", method="dspm", snr=3, loose=0.2)

# Save result in stc files
lh_vertices = stc["inv"]["src"][0]["vertno"]
rh_vertices = stc["inv"]["src"][1]["vertno"]
lh_data = stc["sol"][: len(lh_vertices)]
rh_data = stc["sol"][-len(rh_vertices) :]

mne.write_stc("mne_dSPM_inverse-lh.stc", tmin=stc["tmin"], tstep=stc["tstep"], vertices=lh_vertices, data=lh_data)
mne.write_stc("mne_dSPM_inverse-rh.stc", tmin=stc["tmin"], tstep=stc["tstep"], vertices=rh_vertices, data=rh_data)

###############################################################################
# View activation time-series
times = stc["tmin"] + stc["tstep"] * np.arange(stc["sol"].shape[1])
pl.close("all")
pl.plot(1e3 * times, stc["sol"][::100, :].T)