[med-svn] [python-mne] 139/353: ENH : add reject parameters in mne_compute_proj_ecg.py

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:24:46 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 1d2961a0acf460b291e89bad8e95d7b4169c8a0c
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Thu Apr 12 11:20:35 2012 +0200

    ENH : add reject parameters in mne_compute_proj_ecg.py
---
 bin/mne_compute_proj_ecg.py | 41 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 5 deletions(-)

diff --git a/bin/mne_compute_proj_ecg.py b/bin/mne_compute_proj_ecg.py
index cb89de9..7f4fec2 100755
--- a/bin/mne_compute_proj_ecg.py
+++ b/bin/mne_compute_proj_ecg.py
@@ -14,7 +14,8 @@ import mne
 
 
 def compute_proj_ecg(in_fif_fname, tmin, tmax, n_grad, n_mag, n_eeg, l_freq,
-                     h_freq, average, preload, filter_length, n_jobs, ch_name):
+                     h_freq, average, preload, filter_length, n_jobs, ch_name,
+                     reject):
     """Compute SSP/PCA projections for ECG artifacts
 
     Parameters
@@ -31,9 +32,13 @@ def compute_proj_ecg(in_fif_fname, tmin, tmax, n_grad, n_mag, n_eeg, l_freq,
     else:
         prefix = in_fif_fname[:-4]
 
-    ecg_proj_fname = prefix + '_ecg_proj.fif'
     ecg_event_fname = prefix + '_ecg-eve.fif'
 
+    if average:
+        ecg_proj_fname = prefix + '_ecg_avg_proj.fif'
+    else:
+        ecg_proj_fname = prefix + '_ecg_proj.fif'
+
     print 'Running ECG SSP computation'
 
     ecg_events, _, _ = mne.artifacts.find_ecg_events(raw, ch_name=ch_name)
@@ -42,7 +47,17 @@ def compute_proj_ecg(in_fif_fname, tmin, tmax, n_grad, n_mag, n_eeg, l_freq,
 
     print 'Computing ECG projector'
 
-    picks = mne.fiff.pick_types(raw.info, meg=True, eeg=True)
+    if len(mne.fiff.pick_types(raw.info, meg='grad', eeg=False, eog=False)) == 0:
+        del reject['grad']
+    if len(mne.fiff.pick_types(raw.info, meg='mag', eeg=False, eog=False)) == 0:
+        del reject['mag']
+    if len(mne.fiff.pick_types(raw.info, meg=False, eeg=True, eog=False)) == 0:
+        del reject['eeg']
+    if len(mne.fiff.pick_types(raw.info, meg=False, eeg=False, eog=True)) == 0:
+        del reject['eog']
+
+    picks = mne.fiff.pick_types(raw.info, meg=True, eeg=True, eog=True,
+                                exclude=raw.info['bads'])
     if l_freq is None and h_freq is not None:
         raw.high_pass_filter(picks, h_freq, filter_length, n_jobs)
     if l_freq is not None and h_freq is None:
@@ -51,7 +66,7 @@ def compute_proj_ecg(in_fif_fname, tmin, tmax, n_grad, n_mag, n_eeg, l_freq,
         raw.band_pass_filter(picks, l_freq, h_freq, filter_length, n_jobs)
 
     epochs = mne.Epochs(raw, ecg_events, None, tmin, tmax, baseline=None,
-                        picks=picks)
+                        picks=picks, reject=reject)
 
     if average:
         evoked = epochs.average()
@@ -112,6 +127,18 @@ if __name__ == '__main__':
     parser.add_option("-c", "--channel", dest="ch_name",
                     help="Channel to use for ECG detection (Required if no ECG found)",
                     default=None)
+    parser.add_option("-q", "--rej-grad", dest="rej_grad",
+                    help="Gradiometers rejection parameter in fT/cm (peak to peak amplitude)",
+                    default=2000)
+    parser.add_option("-r", "--rej-mag", dest="rej_mag",
+                    help="Magnetometers rejection parameter in fT (peak to peak amplitude)",
+                    default=3000)
+    parser.add_option("-s", "--rej-eeg", dest="rej_eeg",
+                    help="EEG rejection parameter in uV (peak to peak amplitude)",
+                    default=50)
+    parser.add_option("-o", "--rej-eog", dest="rej_eog",
+                    help="EOG rejection parameter in uV (peak to peak amplitude)",
+                    default=250)
 
     options, args = parser.parse_args()
 
@@ -128,6 +155,10 @@ if __name__ == '__main__':
     filter_length = options.filter_length
     n_jobs = options.n_jobs
     ch_name = options.ch_name
+    reject = dict(grad=1e-13 * float(options.rej_grad),
+                  mag=1e-15 * float(options.rej_mag),
+                  eeg=1e-6 * float(options.rej_eeg),
+                  eog=1e-6 * float(options.rej_eog))
 
     compute_proj_ecg(raw_in, tmin, tmax, n_grad, n_mag, n_eeg, l_freq, h_freq,
-                     average, preload, filter_length, n_jobs, ch_name)
+                     average, preload, filter_length, n_jobs, ch_name, reject)

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