This is an automated email from the git hooks/post-receive script. yoh pushed a commit to annotated tag v0.1 in repository python-mne.
commit e26d6d25d437c754bb06f27528fe4fff09c543fc Author: Alexandre Gramfort <[email protected]> Date: Tue Mar 8 22:00:16 2011 -0500 API : mne.compute_inverse now takes as input an Evoked dataset + an inverse_operator --- examples/plot_compute_mne_inverse.py | 23 +++++++++++++--------- examples/read_inverse.py | 6 +++--- mne/inverse.py | 38 +++++++----------------------------- mne/tests/test_inverse.py | 11 ++++------- 4 files changed, 28 insertions(+), 50 deletions(-) diff --git a/examples/plot_compute_mne_inverse.py b/examples/plot_compute_mne_inverse.py index 7cfb025..76f9115 100644 --- a/examples/plot_compute_mne_inverse.py +++ b/examples/plot_compute_mne_inverse.py @@ -1,9 +1,9 @@ """ -================================= -Compute MNE-dSPM inverse solution -================================= +================================================ +Compute MNE-dSPM inverse solution on evoked data +================================================ -Compute dSPM inverse solution on MNE sample data set +Compute dSPM inverse solution on MNE evoked dataset and stores the solution in stc files for visualisation. """ @@ -18,25 +18,30 @@ import numpy as np import pylab as pl import mne from mne.datasets import sample +from mne.fiff import Evoked data_path = sample.data_path('.') fname_inv = data_path + '/MEG/sample/sample_audvis-meg-oct-6-meg-inv.fif' -fname_data = data_path + '/MEG/sample/sample_audvis-ave.fif' +fname_evoked = data_path + '/MEG/sample/sample_audvis-ave.fif' setno = 0 snr = 3.0 lambda2 = 1.0 / snr**2 dSPM = True -res = mne.compute_inverse(fname_data, setno, fname_inv, lambda2, dSPM, - baseline=(None, 0)) +# Load data +evoked = Evoked(fname_evoked, setno=setno, baseline=(None, 0)) +inverse_operator = mne.read_inverse_operator(fname_inv) +# Compute inverse solution +res = mne.compute_inverse(evoked, inverse_operator, lambda2, dSPM) + +# Save result in stc files lh_vertices = res['inv']['src'][0]['vertno'] rh_vertices = res['inv']['src'][1]['vertno'] lh_data = res['sol'][:len(lh_vertices)] rh_data = res['sol'][-len(rh_vertices):] -# Save result in stc files mne.write_stc('mne_dSPM_inverse-lh.stc', tmin=res['tmin'], tstep=res['tstep'], vertices=lh_vertices, data=lh_data) mne.write_stc('mne_dSPM_inverse-rh.stc', tmin=res['tmin'], tstep=res['tstep'], @@ -45,7 +50,7 @@ mne.write_stc('mne_dSPM_inverse-rh.stc', tmin=res['tmin'], tstep=res['tstep'], ############################################################################### # View activation time-series times = res['tmin'] + res['tstep'] * np.arange(lh_data.shape[1]) -pl.plot(1000*times, res['sol'][::100,:].T) +pl.plot(1e3*times, res['sol'][::100,:].T) pl.xlabel('time (ms)') pl.ylabel('dSPM value') pl.show() diff --git a/examples/read_inverse.py b/examples/read_inverse.py index 6e5bcbd..df58d6b 100644 --- a/examples/read_inverse.py +++ b/examples/read_inverse.py @@ -1,7 +1,7 @@ """ -=========================== -Reading an inverse operator -=========================== +======================================================= +Reading an inverse operator and view source space in 3D +======================================================= """ # Author: Alexandre Gramfort <[email protected]> # diff --git a/mne/inverse.py b/mne/inverse.py index b35260f..35014d9 100644 --- a/mne/inverse.py +++ b/mne/inverse.py @@ -12,7 +12,6 @@ from .fiff.tag import find_tag from .fiff.matrix import _read_named_matrix, _transpose_named_matrix from .fiff.proj import read_proj, make_projector from .fiff.tree import dir_tree_find -from .fiff.evoked import Evoked from .fiff.pick import pick_channels_evoked from .cov import read_cov @@ -400,8 +399,7 @@ def prepare_inverse_operator(orig, nave, lambda2, dSPM): return inv -def compute_inverse(fname_data, setno, fname_inv, lambda2, dSPM=True, - nave=None, baseline=None): +def compute_inverse(evoked, inverse_operator, lambda2, dSPM=True): """Compute inverse solution Computes a L2-norm inverse solution @@ -410,27 +408,14 @@ def compute_inverse(fname_data, setno, fname_inv, lambda2, dSPM=True, Parameters ---------- - fname: string - File name of the data file - setno: int - Data set number - fname_inv: string - File name of the inverse operator - nave: int - Number of averages (scales the noise covariance) - If negative, the number of averages in the data will be used XXX + evoked: Evoked object + Evoked data + inverse_operator: dict + Inverse operator read with mne.read_inverse_operator lambda2: float The regularization parameter dSPM: bool do dSPM ? - baseline: None (default) or tuple of length 2 - The time interval to apply baseline correction. - If None do not apply it. If baseline is (a, b) - the interval is between "a ms" and "b ms". - If a is None the beginning of the data is used - and if b is None then b is set to the end of the interval. - If baseline is equal ot (None, None) all the time - interval is used. Returns ------- @@ -439,20 +424,11 @@ def compute_inverse(fname_data, setno, fname_inv, lambda2, dSPM=True, """ # - # Read the data first - # - evoked = Evoked(fname_data, setno, baseline=baseline) - # - # Then the inverse operator - # - inv = read_inverse_operator(fname_inv) - # # Set up the inverse according to the parameters # - if nave is None: - nave = evoked.nave + nave = evoked.nave - inv = prepare_inverse_operator(inv, nave, lambda2, dSPM) + inv = prepare_inverse_operator(inverse_operator, nave, lambda2, dSPM) # # Pick the correct channels from the data # diff --git a/mne/tests/test_inverse.py b/mne/tests/test_inverse.py index 09ce352..a4a8325 100644 --- a/mne/tests/test_inverse.py +++ b/mne/tests/test_inverse.py @@ -13,10 +13,6 @@ fname_inv = op.join(data_path, 'MEG', 'sample', fname_data = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif') -def test_io_inverse(): - """Test IO for inverse operator - """ - fwd = mne.read_inverse_operator(fname_inv) def test_compute_mne_inverse(): """Test MNE inverse computation @@ -27,9 +23,10 @@ def test_compute_mne_inverse(): lambda2 = 1.0 / snr**2 dSPM = True - res = mne.compute_inverse(fname_data, setno, fname_inv, lambda2, dSPM, - baseline=(None, 0)) + evoked = mne.fiff.Evoked(fname_data, setno=setno, baseline=(None, 0)) + inverse_operator = mne.read_inverse_operator(fname_inv) + + res = mne.compute_inverse(evoked, inverse_operator, lambda2, dSPM) assert np.all(res['sol'] > 0) assert np.all(res['sol'] < 35) - -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
