[med-svn] [python-mne] 172/353: ENH : changing filtering default parameters + adding option to pass ECG proj in mne_compute_proj_eog.py + adding EXG name to SSPs
Yaroslav Halchenko
debian at onerussian.com
Fri Nov 27 17:24:52 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 e403e1b03634b7d4ac22b2af47864b1b9c89b003
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date: Fri May 4 10:30:48 2012 +0200
ENH : changing filtering default parameters + adding option to pass ECG proj in mne_compute_proj_eog.py + adding EXG name to SSPs
---
bin/mne_compute_proj_ecg.py | 6 +++---
bin/mne_compute_proj_eog.py | 26 ++++++++++++++++++++------
mne/preprocessing/ssp.py | 10 +++++++---
mne/preprocessing/tests/test_ssp.py | 11 +++++++----
4 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/bin/mne_compute_proj_ecg.py b/bin/mne_compute_proj_ecg.py
index a32292b..350b2d6 100755
--- a/bin/mne_compute_proj_ecg.py
+++ b/bin/mne_compute_proj_ecg.py
@@ -38,10 +38,10 @@ if __name__ == '__main__':
default=2)
parser.add_option("--l-freq", dest="l_freq",
help="Filter low cut-off frequency in Hz",
- default=5)
+ default=1)
parser.add_option("--h-freq", dest="h_freq",
help="Filter high cut-off frequency in Hz",
- default=35)
+ default=100)
parser.add_option("-p", "--preload", dest="preload",
help="Temporary file used during computation (to save memory)",
default=True)
@@ -137,7 +137,7 @@ if __name__ == '__main__':
raw.close()
- if isinstance(preload, str) and os.path.exists(preload):
+ if isinstance(preload, basestring) and os.path.exists(preload):
os.remove(preload)
print "Writing ECG projections in %s" % ecg_proj_fname
diff --git a/bin/mne_compute_proj_eog.py b/bin/mne_compute_proj_eog.py
index cf6d66f..9fd2cfa 100755
--- a/bin/mne_compute_proj_eog.py
+++ b/bin/mne_compute_proj_eog.py
@@ -3,7 +3,13 @@
You can do for example:
-$mne_compute_proj_eog.py -i sample_audvis_raw.fif --l-freq 1 --h-freq 100 --rej-grad 3000 --rej-mag 4000 --rej-eeg 100
+$mne_compute_proj_eog.py -i sample_audvis_raw.fif --l-freq 1 --h-freq 35 --rej-grad 3000 --rej-mag 4000 --rej-eeg 100
+
+or
+
+$mne_compute_proj_eog.py -i sample_audvis_raw.fif --l-freq 1 --h-freq 35 --rej-grad 3000 --rej-mag 4000 --rej-eeg 100 --proj sample_audvis_ecg_proj.fif
+
+to exclude ECG artifacts from projection computation.
"""
# Authors : Alexandre Gramfort, Ph.D.
@@ -23,10 +29,10 @@ if __name__ == '__main__':
help="Input raw FIF file", metavar="FILE")
parser.add_option("--tmin", dest="tmin",
help="Time before event in seconds",
- default=-0.15)
+ default=-0.2)
parser.add_option("--tmax", dest="tmax",
help="Time after event in seconds",
- default=0.15)
+ default=0.2)
parser.add_option("-g", "--n-grad", dest="n_grad",
help="Number of SSP vectors for gradiometers",
default=2)
@@ -38,7 +44,7 @@ if __name__ == '__main__':
default=2)
parser.add_option("--l-freq", dest="l_freq",
help="Filter low cut-off frequency in Hz",
- default=5)
+ default=1)
parser.add_option("--h-freq", dest="h_freq",
help="Filter high cut-off frequency in Hz",
default=35)
@@ -48,6 +54,9 @@ if __name__ == '__main__':
parser.add_option("-a", "--average", dest="average", action="store_true",
help="Compute SSP after averaging",
default=False)
+ parser.add_option("--proj", dest="proj",
+ help="Use SSP projections from a fif file.",
+ default=None)
parser.add_option("--filtersize", dest="filter_length",
help="Number of taps to use for filtering",
default=2048)
@@ -76,7 +85,7 @@ if __name__ == '__main__':
help="Text file containing bad channels list (one per line)",
default=None)
parser.add_option("--event-id", dest="event_id", type="int",
- help="ID to use for events", default=999)
+ help="ID to use for events", default=998)
options, args = parser.parse_args()
@@ -105,6 +114,7 @@ if __name__ == '__main__':
no_proj = options.no_proj
bad_fname = options.bad_fname
event_id = options.event_id
+ proj_fname = options.proj
if bad_fname is not None:
bads = [w.rstrip().split()[0] for w in open(bad_fname).readlines()]
@@ -126,6 +136,10 @@ if __name__ == '__main__':
raw = mne.fiff.Raw(raw_in, preload=preload)
+ if proj_fname is not None:
+ print 'Including SSP projections from : %s' % proj_fname
+ raw.info['projs'] += mne.read_proj(proj_fname)
+
projs, events = mne.preprocessing.compute_proj_eog(raw, tmin, tmax,
n_grad, n_mag, n_eeg, l_freq, h_freq, average,
filter_length, n_jobs, reject, bads,
@@ -133,7 +147,7 @@ if __name__ == '__main__':
raw.close()
- if isinstance(preload, str) and os.path.exists(preload):
+ if isinstance(preload, basestring) and os.path.exists(preload):
os.remove(preload)
print "Writing EOG projections in %s" % eog_proj_fname
diff --git a/mne/preprocessing/ssp.py b/mne/preprocessing/ssp.py
index bd3a476..d851d29 100644
--- a/mne/preprocessing/ssp.py
+++ b/mne/preprocessing/ssp.py
@@ -140,6 +140,10 @@ def _compute_exg_proj(mode, raw, tmin, tmax,
else:
ev_projs = compute_proj_epochs(epochs, n_grad=n_grad, n_mag=n_mag,
n_eeg=n_eeg)
+
+ for p in ev_projs:
+ p['desc'] = mode + "-" + p['desc']
+
projs.extend(ev_projs)
print 'Done.'
@@ -151,7 +155,7 @@ def compute_proj_ecg(raw, tmin=-0.2, tmax=0.4,
n_grad=2, n_mag=2, n_eeg=2, l_freq=1.0, h_freq=35.0,
average=False, filter_length=2048, n_jobs=1, ch_name=None,
reject=dict(grad=2000e-13, mag=3000e-15, eeg=50e-6,
- eog=250e-6), bads=[], avg_ref=False, no_proj=True,
+ eog=250e-6), bads=[], avg_ref=False, no_proj=False,
event_id=999):
"""Compute SSP/PCA projections for ECG artifacts
@@ -228,11 +232,11 @@ def compute_proj_ecg(raw, tmin=-0.2, tmax=0.4,
return projs, ecg_events
-def compute_proj_eog(raw, tmin=-0.15, tmax=0.15,
+def compute_proj_eog(raw, tmin=-0.2, tmax=0.2,
n_grad=2, n_mag=2, n_eeg=2, l_freq=1.0, h_freq=35.0,
average=False, filter_length=2048, n_jobs=1,
reject=dict(grad=2000e-13, mag=3000e-15, eeg=500e-6,
- eog=np.inf), bads=[], avg_ref=False, no_proj=True,
+ eog=np.inf), bads=[], avg_ref=False, no_proj=False,
event_id=998):
"""Compute SSP/PCA projections for EOG artifacts
diff --git a/mne/preprocessing/tests/test_ssp.py b/mne/preprocessing/tests/test_ssp.py
index 6277a6e..5032e57 100644
--- a/mne/preprocessing/tests/test_ssp.py
+++ b/mne/preprocessing/tests/test_ssp.py
@@ -15,9 +15,10 @@ def test_compute_proj_ecg():
raw = Raw(raw_fname, preload=True)
projs, events = compute_proj_ecg(raw, n_mag=2, n_grad=2, n_eeg=2,
ch_name='MEG 1531', bads=['MEG 2443'],
- average=average)
+ average=average, avg_ref=True,
+ no_proj=True)
raw.close()
- assert_true(len(projs) == 6)
+ assert_true(len(projs) == 7)
#XXX: better tests
@@ -25,8 +26,10 @@ def test_compute_proj_eog():
"""Test computation of EOG SSP projectors"""
for average in [False, True]:
raw = Raw(raw_fname, preload=True)
+ n_projs_init = len(raw.info['projs'])
projs, events = compute_proj_eog(raw, n_mag=2, n_grad=2, n_eeg=2,
- bads=['MEG 2443'], average=average)
+ bads=['MEG 2443'], average=average,
+ avg_ref=True, no_proj=False)
raw.close()
- assert_true(len(projs) == 6)
+ assert_true(len(projs) == (7 + n_projs_init))
#XXX: better tests
--
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