[med-svn] [python-mne] 183/376: ENH : can drop channels from Epochs

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:22:32 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 bdbc36af7ffb185cbf90bd10cdfd360334b2803d
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Mon Apr 4 12:44:39 2011 -0400

    ENH : can drop channels from Epochs
---
 mne/epochs.py            | 22 +++++++++++++++++++++-
 mne/tests/test_epochs.py | 10 +++++++++-
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/mne/epochs.py b/mne/epochs.py
index 562ac95..982ca6a 100644
--- a/mne/epochs.py
+++ b/mne/epochs.py
@@ -168,6 +168,26 @@ class Epochs(object):
         if self.preload:
             self._data = self._get_data_from_disk()
 
+    def drop_picks(self, bad_picks):
+        """Drop some picks
+
+        Allows to discard some channels.
+        """
+        self.picks = list(self.picks)
+        idx = [k for k, p in enumerate(self.picks) if p not in bad_picks]
+        self.picks = [self.picks[k] for k in idx]
+
+        # XXX : could maybe be factorized
+        n_channels = self.info['nchan']
+        self.info['chs'] = [self.info['chs'][k] for k in idx]
+        self.info['ch_names'] = [self.info['ch_names'][k] for k in idx]
+        self.info['nchan'] = len(idx)
+        self.ch_names = self.info['ch_names']
+
+        if self.preload:
+            self._data = self._data[:,idx,:]
+
+
     def get_epoch(self, idx):
         """Load one epoch
 
@@ -281,7 +301,7 @@ class Epochs(object):
         return epoch
 
     def __repr__(self):
-        s = "n_epochs : %s" % len(self)
+        s = "n_events : %s" % len(self.events)
         s += ", tmin : %s (s)" % self.tmin
         s += ", tmax : %s (s)" % self.tmax
         s += ", baseline : %s" % str(self.baseline)
diff --git a/mne/tests/test_epochs.py b/mne/tests/test_epochs.py
index 6c78989..325c65c 100644
--- a/mne/tests/test_epochs.py
+++ b/mne/tests/test_epochs.py
@@ -28,6 +28,13 @@ def test_read_epochs():
     epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks,
                         baseline=(None, 0))
     epochs.average()
+    data = epochs.get_data()
+
+    eog_picks = fiff.pick_types(raw.info, meg=False, eeg=False, stim=False,
+                                eog=True)
+    epochs.drop_picks(eog_picks)
+    data_no_eog = epochs.get_data()
+    assert data.shape[1] == (data_no_eog.shape[1] + len(eog_picks))
 
 
 def test_reject_epochs():
@@ -46,7 +53,8 @@ def test_reject_epochs():
     epochs = mne.Epochs(raw, events, event_id, tmin, tmax, picks=picks,
                         baseline=(None, 0),
                         reject=dict(grad=1000e-12, mag=4e-12, eeg=80e-6,
-                                    eog=150e-6))
+                                    eog=150e-6),
+                        flat=dict(grad=1e-15, mag=1e-15))
     data = epochs.get_data()
     n_events = len(epochs.events)
     n_clean_epochs = len(data)

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