[med-svn] [python-mne] 64/353: ENH : support for arithmetic of Evoked objects (used for contrasts)

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:24:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

yoh pushed a commit to tag 0.4
in repository python-mne.

commit 7d9e1eee12b65a6b15efa1c09a05ab5dc6f5da10
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Wed Jan 25 08:12:04 2012 +0100

    ENH : support for arithmetic of Evoked objects (used for contrasts)
---
 mne/fiff/evoked.py       | 14 ++++++++++++++
 mne/tests/test_epochs.py | 11 +++++++----
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/mne/fiff/evoked.py b/mne/fiff/evoked.py
index 75c26fa..a055355 100644
--- a/mne/fiff/evoked.py
+++ b/mne/fiff/evoked.py
@@ -325,6 +325,20 @@ class Evoked(object):
         self.last = len(self.times) + self.first - 1
         self.data = self.data[:, mask]
 
+    def __add__(self, evoked):
+        """Add evoked taking into account number of epochs"""
+        out = merge_evoked([self, evoked])
+        out.comment = self.comment + " + " + evoked.comment
+        return out
+
+    def __sub__(self, evoked):
+        """Add evoked taking into account number of epochs"""
+        this_evoked = deepcopy(evoked)
+        this_evoked.data *= -1.
+        out = merge_evoked([self, this_evoked])
+        out.comment = self.comment + " - " + this_evoked.comment
+        return out
+
 
 def merge_evoked(all_evoked):
     """Merge/concat evoked data
diff --git a/mne/tests/test_epochs.py b/mne/tests/test_epochs.py
index fe589c0..ddc82c9 100644
--- a/mne/tests/test_epochs.py
+++ b/mne/tests/test_epochs.py
@@ -5,9 +5,9 @@
 import os.path as op
 from nose.tools import assert_true
 from numpy.testing import assert_array_equal, assert_array_almost_equal
+import numpy as np
 
 from .. import fiff, Epochs, read_events, pick_events
-from ..fiff.evoked import merge_evoked
 
 raw_fname = op.join(op.dirname(__file__), '..', 'fiff', 'tests', 'data',
                      'test_raw.fif')
@@ -46,8 +46,8 @@ def test_read_epochs():
     assert_true(data.shape[1] == (data_no_eog.shape[1] + len(eog_picks)))
 
 
-def test_merge_evoked():
-    """Merge evoked data"""
+def test_evoked_arithmetic():
+    """Arithmetic of evoked data"""
     epochs1 = Epochs(raw, events[:4], event_id, tmin, tmax, picks=picks,
                         baseline=(None, 0))
     evoked1 = epochs1.average()
@@ -57,9 +57,12 @@ def test_merge_evoked():
     epochs = Epochs(raw, events[:8], event_id, tmin, tmax, picks=picks,
                         baseline=(None, 0))
     evoked = epochs.average()
-    evoked_sum = merge_evoked([evoked1, evoked2])
+    evoked_sum = evoked1 + evoked2
     assert_array_equal(evoked.data, evoked_sum.data)
     assert_array_equal(evoked.times, evoked_sum.times)
+    assert_true(evoked_sum.nave == (evoked1.nave + evoked2.nave))
+    evoked_diff = evoked1 - evoked1
+    assert_array_equal(np.zeros_like(evoked.data), evoked_diff.data)
 
 
 def test_reject_epochs():

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