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 <[email protected]> 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 _______________________________________________ debian-med-commit mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit
