[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