[med-svn] [python-mne] 121/376: API : mne.compute_inverse now takes as input an Evoked dataset + an inverse_operator

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:22:19 UTC 2015


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 <alexandre.gramfort at inria.fr>
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 <gramfort at nmr.mgh.harvard.edu>
 #
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



More information about the debian-med-commit mailing list