[med-svn] [python-mne] 342/376: API: removing support for fMRI prior

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:23:18 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 c7c38b7eb7e4ae791f298a5b56ea1b59ccd3df33
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Thu Aug 25 12:27:48 2011 -0400

    API: removing support for fMRI prior
---
 mne/minimum_norm/inverse.py | 60 ++++++++++++++-------------------------------
 1 file changed, 18 insertions(+), 42 deletions(-)

diff --git a/mne/minimum_norm/inverse.py b/mne/minimum_norm/inverse.py
index 7f36d4d..a53a39d 100644
--- a/mne/minimum_norm/inverse.py
+++ b/mne/minimum_norm/inverse.py
@@ -529,7 +529,6 @@ def apply_inverse_raw(raw, inverse_operator, lambda2, dSPM=True,
     stc: SourceEstimate
         The source estimates
     """
-
     #
     #   Set up the inverse according to the parameters
     #
@@ -679,9 +678,8 @@ def _xyz2lf(Lf_xyz, normals):
 
 
 def minimum_norm(evoked, forward, whitener, method='dspm',
-                 orientation='fixed', snr=3, loose=0.2, depth=True,
-                 weight_exp=0.8, weight_limit=10, fmri=None, fmri_thresh=None,
-                 fmri_off=0.1, pick_normal=False):
+                 orientation='fixed', snr=3, loose=0.2, depth=0.8,
+                 depth_weight_limit=10, pick_normal=False):
     """Minimum norm estimate (MNE)
 
     Compute MNE, dSPM and sLORETA on evoked data starting from
@@ -704,20 +702,12 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
     loose: float in [0, 1]
         Value that weights the source variances of the dipole components
         defining the tangent space of the cortical surfaces.
-    depth: bool
-        Flag to do depth weighting (default: True).
+    depth: None | float in [0, 1]
+        Depth weighting coefficients. If None, no depth weighting is performed.
     weight_exp: float
         Order of the depth weighting. {0=no, 1=full normalization, default=0.8}
-    weight_limit: float
+    depth_weight_limit: float
         Maximal amount depth weighting (default: 10).
-    fmri: array of shape [n_sources]
-        Vector of fMRI values are the source points.
-    fmri_thresh: float
-        fMRI threshold. The source variances of source points with fmri smaller
-        than fmri_thresh will be multiplied by fmri_off.
-    fmri_off: float
-        Weight assigned to non-active source points according to fmri
-        and fmri_thresh.
     pick_normal: bool
         If True, rather than pooling the orientations by taking the norm,
         only the radial component is kept. This is only implemented
@@ -734,8 +724,8 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
     if not 0 <= loose <= 1:
         raise ValueError('loose value should be smaller than 1 and bigger than'
                          ' 0, or empty for no loose orientations.')
-    if not 0 <= weight_exp <= 1:
-        raise ValueError('weight_exp should be a scalar between 0 and 1')
+    if depth is not None and not 0 < depth <= 1:
+        raise ValueError('depth should be a scalar between 0 and 1')
 
     # Set regularization parameter based on SNR
     lambda2 = 1.0 / snr ** 2
@@ -771,10 +761,11 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
     w = np.ones(n_dipoles)
 
     # compute power
-    if depth:
+    if depth is not None:
         w = np.sum(gain ** 2, axis=0)
-        w = w.reshape(-1, 3).sum(axis=1)
-        w = w[:, None] * np.ones((1, n_dip_per_pos))
+        w = w[0::3] + w[1::3] + w[2::3]
+        if n_dip_per_pos != 1:
+            w = w[:, None] * np.ones((1, n_dip_per_pos))
         w = w.ravel()
 
     if orientation == 'fixed':
@@ -786,7 +777,7 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
         print 'Transforming lead field matrix to cortical coordinate system.'
         gain = _xyz2lf(gain, normals)
         # Getting indices for tangential dipoles: [1, 2, 4, 5]
-        itangential = [k for k in range(n_dipoles) if n_dipoles % 3 != 0]
+        itangential = [k for k in xrange(n_dipoles) if (n_dipoles % 3) != 0]
 
     # Whiten lead field.
     print 'Whitening lead field matrix.'
@@ -795,40 +786,25 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
     # Computing reciprocal of power.
     w = 1.0 / w
 
-    # apply areas
-    # if ~isempty(areas)
-    #     display('wMNE> Applying areas to compute current source density.')
-    #     areas = areas.^2;
-    #     w = w .* areas;
-    # end
-    # clear areas
-
     # apply depth weighthing
-    if depth:
-        # apply weight limit
-        # Applying weight limit.
+    if depth is not None:
+        # Apply weight limit.
         print 'Applying weight limit.'
-        weight_limit2 = weight_limit ** 2
+        depth_weight_limit2 = depth_weight_limit ** 2
         # limit = min(w(w>min(w) * weight_limit2));  % This is the Matti way.
         # we do the Rey way (robust to possible weight discontinuity).
-        limit = np.min(w) * weight_limit2
+        limit = np.min(w) * depth_weight_limit2
         w[w > limit] = limit
 
-        # apply weight exponent
         # Applying weight exponent.
-        print 'Applying weight exponent.'
-        w = w ** weight_exp
+        print 'Applying weight exponent (%f).' % depth
+        w = w ** depth
 
     # apply loose orientations
     if orientation == 'loose':
         print 'Applying loose dipole orientations. Loose value of %s.' % loose
         w[itangential] *= loose
 
-    # Apply fMRI Priors
-    if fmri is not None:
-        print 'Applying fMRI priors.'
-        w[fmri < fmri_thresh] *= fmri_off
-
     # Adjusting Source Covariance matrix to make trace of L*C_J*L' equal
     # to number of sensors.
     print 'Adjusting source covariance matrix.'

-- 
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