ENH: Improve multiple tests
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import glob
|
||||
|
||||
@@ -61,6 +61,7 @@ from .channels import (equalize_channels, rename_channels,
|
||||
read_ch_connectivity)
|
||||
|
||||
from . import beamformer
|
||||
from . import commands
|
||||
from . import connectivity
|
||||
from . import coreg
|
||||
from . import cuda
|
||||
|
||||
@@ -12,8 +12,7 @@ import sys
|
||||
import mne
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
from mne.commands.utils import get_optparser
|
||||
@@ -61,7 +60,9 @@ if __name__ == '__main__':
|
||||
|
||||
if raw_in is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
raw = mne.io.Raw(raw_in, preload=preload)
|
||||
if len(proj_in) > 0:
|
||||
@@ -71,6 +72,11 @@ if __name__ == '__main__':
|
||||
events = mne.read_events(eve_in)
|
||||
else:
|
||||
events = None
|
||||
fig = raw.plot(duration=duration, start=start, n_channels=n_channels,
|
||||
order=order, show_options=show_options, events=events)
|
||||
raw.plot(duration=duration, start=start, n_channels=n_channels,
|
||||
order=order, show_options=show_options, events=events)
|
||||
plt.show(block=True)
|
||||
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -29,41 +29,43 @@ import sys
|
||||
from mne.io import read_raw_bti
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
|
||||
parser.add_option('-p', '--pdf', dest='pdf_fname',
|
||||
help='Input data file name', metavar='FILE')
|
||||
help='Input data file name', metavar='FILE')
|
||||
parser.add_option('-c', '--config', dest='config_fname',
|
||||
help='Input config file name', metavar='FILE', default='config')
|
||||
help='Input config file name', metavar='FILE',
|
||||
default='config')
|
||||
parser.add_option('--head_shape', dest='head_shape_fname',
|
||||
help='Headshape file name', metavar='FILE',
|
||||
default='hs_file')
|
||||
help='Headshape file name', metavar='FILE',
|
||||
default='hs_file')
|
||||
parser.add_option('-o', '--out_fname', dest='out_fname',
|
||||
help='Name of the resulting fiff file',
|
||||
default='as_data_fname')
|
||||
parser.add_option('-r', '--rotation_x', dest='rotation_x', type='float',
|
||||
help='Compensatory rotation about Neuromag x axis, deg',
|
||||
default=2.0)
|
||||
help='Compensatory rotation about Neuromag x axis, deg',
|
||||
default=2.0)
|
||||
parser.add_option('-T', '--translation', dest='translation', type='str',
|
||||
help='Default translation, meter',
|
||||
default=(0.00, 0.02, 0.11))
|
||||
help='Default translation, meter',
|
||||
default=(0.00, 0.02, 0.11))
|
||||
parser.add_option('--ecg_ch', dest='ecg_ch', type='str',
|
||||
help='4D ECG channel name',
|
||||
default='E31')
|
||||
help='4D ECG channel name',
|
||||
default='E31')
|
||||
parser.add_option('--eog_ch', dest='eog_ch', type='str',
|
||||
help='4D EOG channel names',
|
||||
default='E63,E64')
|
||||
help='4D EOG channel names',
|
||||
default='E63,E64')
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
pdf_fname = options.pdf_fname
|
||||
if pdf_fname is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
config_fname = options.config_fname
|
||||
head_shape_fname = options.head_shape_fname
|
||||
@@ -83,4 +85,9 @@ if __name__ == '__main__':
|
||||
|
||||
raw.save(out_fname)
|
||||
raw.close()
|
||||
sys.exit(0)
|
||||
if is_main:
|
||||
sys.exit(0)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -59,7 +59,7 @@ def clean_ecg_eog(in_fif_fname, out_fif_fname=None, eog=True, ecg=True,
|
||||
print('Implementing ECG and EOG artifact rejection on data')
|
||||
|
||||
if ecg:
|
||||
ecg_events, _, _ = mne.preprocessing.find_ecg_events(raw_in)
|
||||
ecg_events, _, _ = mne.preprocessing.find_ecg_events(raw_in)
|
||||
print("Writing ECG events in %s" % ecg_event_fname)
|
||||
mne.write_events(ecg_event_fname, ecg_events)
|
||||
|
||||
@@ -85,8 +85,8 @@ def clean_ecg_eog(in_fif_fname, out_fif_fname=None, eog=True, ecg=True,
|
||||
command = ('mne_process_raw --cd %s --raw %s --events %s --makeproj '
|
||||
'--projtmin -0.15 --projtmax 0.15 --saveprojtag _eog_proj '
|
||||
'--projnmag 2 --projngrad 2 --projevent 998 --lowpass 35 '
|
||||
'--projmagrej 4000 --projgradrej 3000' % (in_path,
|
||||
in_fif_fname, eog_event_fname))
|
||||
'--projmagrej 4000 --projgradrej 3000'
|
||||
% (in_path, in_fif_fname, eog_event_fname))
|
||||
|
||||
print('Running : %s' % command)
|
||||
|
||||
@@ -117,27 +117,28 @@ def clean_ecg_eog(in_fif_fname, out_fif_fname=None, eog=True, ecg=True,
|
||||
print('Projection not applied to raw data.')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
|
||||
parser.add_option("-i", "--in", dest="raw_in",
|
||||
help="Input raw FIF file", metavar="FILE")
|
||||
help="Input raw FIF file", metavar="FILE")
|
||||
parser.add_option("-o", "--out", dest="raw_out",
|
||||
help="Output raw FIF file", metavar="FILE",
|
||||
default=None)
|
||||
help="Output raw FIF file", metavar="FILE",
|
||||
default=None)
|
||||
parser.add_option("-e", "--no-eog", dest="eog", action="store_false",
|
||||
help="Remove EOG", default=True)
|
||||
help="Remove EOG", default=True)
|
||||
parser.add_option("-c", "--no-ecg", dest="ecg", action="store_false",
|
||||
help="Remove ECG", default=True)
|
||||
help="Remove ECG", default=True)
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if options.raw_in is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
raw_in = options.raw_in
|
||||
raw_out = options.raw_out
|
||||
@@ -145,3 +146,8 @@ if __name__ == '__main__':
|
||||
ecg = options.ecg
|
||||
|
||||
clean_ecg_eog(raw_in, raw_out, eog=eog, ecg=ecg)
|
||||
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -16,8 +16,7 @@ import sys
|
||||
import mne
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -120,7 +119,9 @@ if __name__ == '__main__':
|
||||
|
||||
if raw_in is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
tmin = options.tmin
|
||||
tmax = options.tmax
|
||||
@@ -205,3 +206,7 @@ if __name__ == '__main__':
|
||||
|
||||
print("Writing ECG events in %s" % ecg_event_fname)
|
||||
mne.write_events(ecg_event_fname, events)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -22,8 +22,7 @@ import sys
|
||||
import mne
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -31,11 +30,9 @@ if __name__ == '__main__':
|
||||
parser.add_option("-i", "--in", dest="raw_in",
|
||||
help="Input raw FIF file", metavar="FILE")
|
||||
parser.add_option("--tmin", dest="tmin", type="float",
|
||||
help="Time before event in seconds",
|
||||
default=-0.2)
|
||||
help="Time before event in seconds", default=-0.2)
|
||||
parser.add_option("--tmax", dest="tmax", type="float",
|
||||
help="Time after event in seconds",
|
||||
default=0.2)
|
||||
help="Time after event in seconds", default=0.2)
|
||||
parser.add_option("-g", "--n-grad", dest="n_grad", type="int",
|
||||
help="Number of SSP vectors for gradiometers",
|
||||
default=2)
|
||||
@@ -43,8 +40,7 @@ if __name__ == '__main__':
|
||||
help="Number of SSP vectors for magnetometers",
|
||||
default=2)
|
||||
parser.add_option("-e", "--n-eeg", dest="n_eeg", type="int",
|
||||
help="Number of SSP vectors for EEG",
|
||||
default=2)
|
||||
help="Number of SSP vectors for EEG", default=2)
|
||||
parser.add_option("--l-freq", dest="l_freq", type="float",
|
||||
help="Filter low cut-off frequency in Hz",
|
||||
default=1)
|
||||
@@ -52,14 +48,14 @@ if __name__ == '__main__':
|
||||
help="Filter high cut-off frequency in Hz",
|
||||
default=35)
|
||||
parser.add_option("--eog-l-freq", dest="eog_l_freq", type="float",
|
||||
help="Filter low cut-off frequency in Hz used for EOG event detection",
|
||||
default=1)
|
||||
help="Filter low cut-off frequency in Hz used for "
|
||||
"EOG event detection", default=1)
|
||||
parser.add_option("--eog-h-freq", dest="eog_h_freq", type="float",
|
||||
help="Filter high cut-off frequency in Hz used for EOG event detection",
|
||||
default=10)
|
||||
help="Filter high cut-off frequency in Hz used for "
|
||||
"EOG event detection", default=10)
|
||||
parser.add_option("-p", "--preload", dest="preload",
|
||||
help="Temporary file used during computation (to save memory)",
|
||||
default=True)
|
||||
help="Temporary file used during computation (to "
|
||||
"save memory)", default=True)
|
||||
parser.add_option("-a", "--average", dest="average", action="store_true",
|
||||
help="Compute SSP after averaging",
|
||||
default=False)
|
||||
@@ -70,36 +66,36 @@ if __name__ == '__main__':
|
||||
help="Number of taps to use for filtering",
|
||||
default=2048)
|
||||
parser.add_option("-j", "--n-jobs", dest="n_jobs", type="int",
|
||||
help="Number of jobs to run in parallel",
|
||||
default=1)
|
||||
help="Number of jobs to run in parallel", default=1)
|
||||
parser.add_option("--rej-grad", dest="rej_grad", type="float",
|
||||
help="Gradiometers rejection parameter in fT/cm (peak to peak amplitude)",
|
||||
default=2000)
|
||||
help="Gradiometers rejection parameter in fT/cm (peak "
|
||||
"to peak amplitude)", default=2000)
|
||||
parser.add_option("--rej-mag", dest="rej_mag", type="float",
|
||||
help="Magnetometers rejection parameter in fT (peak to peak amplitude)",
|
||||
default=3000)
|
||||
help="Magnetometers rejection parameter in fT (peak to "
|
||||
"peak amplitude)", default=3000)
|
||||
parser.add_option("--rej-eeg", dest="rej_eeg", type="float",
|
||||
help="EEG rejection parameter in uV (peak to peak amplitude)",
|
||||
default=50)
|
||||
help="EEG rejection parameter in uV (peak to peak "
|
||||
"amplitude)", default=50)
|
||||
parser.add_option("--rej-eog", dest="rej_eog", type="float",
|
||||
help="EOG rejection parameter in uV (peak to peak amplitude)",
|
||||
default=1e9)
|
||||
help="EOG rejection parameter in uV (peak to peak "
|
||||
"amplitude)", default=1e9)
|
||||
parser.add_option("--avg-ref", dest="avg_ref", action="store_true",
|
||||
help="Add EEG average reference proj",
|
||||
default=False)
|
||||
parser.add_option("--no-proj", dest="no_proj", action="store_true",
|
||||
help="Exclude the SSP projectors currently in the fiff file",
|
||||
default=False)
|
||||
help="Exclude the SSP projectors currently in the "
|
||||
"fiff file", default=False)
|
||||
parser.add_option("--bad", dest="bad_fname",
|
||||
help="Text file containing bad channels list (one per line)",
|
||||
default=None)
|
||||
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=998)
|
||||
parser.add_option("--event-raw", dest="raw_event_fname",
|
||||
help="raw file to use for event detection", default=None)
|
||||
parser.add_option("--tstart", dest="tstart", type="float",
|
||||
help="Start artifact detection after tstart seconds", default=0.)
|
||||
parser.add_option("-c","--channel", dest="ch_name", type="string",
|
||||
help="Start artifact detection after tstart seconds",
|
||||
default=0.)
|
||||
parser.add_option("-c", "--channel", dest="ch_name", type="string",
|
||||
help="Custom EOG channel(s), comma separated",
|
||||
default=None)
|
||||
|
||||
@@ -109,7 +105,9 @@ if __name__ == '__main__':
|
||||
|
||||
if raw_in is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
tmin = options.tmin
|
||||
tmax = options.tmax
|
||||
@@ -163,14 +161,14 @@ if __name__ == '__main__':
|
||||
raw_event = raw
|
||||
|
||||
flat = None # XXX : not exposed to the user
|
||||
projs, events = mne.preprocessing.compute_proj_eog(raw=raw,
|
||||
raw_event=raw_event, tmin=tmin, tmax=tmax, n_grad=n_grad,
|
||||
n_mag=n_mag, n_eeg=n_eeg, l_freq=l_freq, h_freq=h_freq,
|
||||
average=average, filter_length=filter_length,
|
||||
n_jobs=n_jobs, reject=reject, flat=flat, bads=bads,
|
||||
avg_ref=avg_ref, no_proj=no_proj, event_id=event_id,
|
||||
eog_l_freq=eog_l_freq, eog_h_freq=eog_h_freq,
|
||||
tstart=tstart, ch_name=ch_name, copy=False)
|
||||
projs, events = mne.preprocessing.compute_proj_eog(
|
||||
raw=raw, raw_event=raw_event, tmin=tmin, tmax=tmax, n_grad=n_grad,
|
||||
n_mag=n_mag, n_eeg=n_eeg, l_freq=l_freq, h_freq=h_freq,
|
||||
average=average, filter_length=filter_length,
|
||||
n_jobs=n_jobs, reject=reject, flat=flat, bads=bads,
|
||||
avg_ref=avg_ref, no_proj=no_proj, event_id=event_id,
|
||||
eog_l_freq=eog_l_freq, eog_h_freq=eog_h_freq,
|
||||
tstart=tstart, ch_name=ch_name, copy=False)
|
||||
|
||||
raw.close()
|
||||
|
||||
@@ -190,3 +188,7 @@ if __name__ == '__main__':
|
||||
|
||||
print("Writing EOG events in %s" % eog_event_fname)
|
||||
mne.write_events(eog_event_fname, events)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -13,7 +13,7 @@ import sys
|
||||
import mne
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -21,4 +21,9 @@ if __name__ == '__main__':
|
||||
|
||||
os.environ['ETS_TOOLKIT'] = 'qt4'
|
||||
mne.gui.coregistration()
|
||||
sys.exit(0)
|
||||
if is_main:
|
||||
sys.exit(0)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -74,10 +74,10 @@ def make_flash_bem(subject, subjects_dir, flash05, flash30, show=False):
|
||||
os.mkdir("parameter_maps")
|
||||
print("--- Converting Flash 5")
|
||||
os.system('mri_convert -flip_angle %s -tr 25 %s mef05.mgz' %
|
||||
(5 * math.pi / 180, flash05))
|
||||
(5 * math.pi / 180, flash05))
|
||||
print("--- Converting Flash 30")
|
||||
os.system('mri_convert -flip_angle %s -tr 25 %s mef30.mgz' %
|
||||
(30 * math.pi / 180, flash30))
|
||||
(30 * math.pi / 180, flash30))
|
||||
print("--- Running mne_flash_bem")
|
||||
os.system('mne_flash_bem --noconvert')
|
||||
os.chdir(os.path.join(subjects_dir, subject, 'bem'))
|
||||
@@ -96,12 +96,12 @@ def make_flash_bem(subject, subjects_dir, flash05, flash30, show=False):
|
||||
mlab.clf()
|
||||
for fname, c in zip(fnames, colors):
|
||||
points, faces = mne.read_surface(fname)
|
||||
mlab.triangular_mesh(points[:, 0], points[:, 1], points[:, 2], faces,
|
||||
color=c, opacity=0.3)
|
||||
mlab.triangular_mesh(points[:, 0], points[:, 1], points[:, 2],
|
||||
faces, color=c, opacity=0.3)
|
||||
mlab.show()
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -110,15 +110,15 @@ if __name__ == '__main__':
|
||||
subjects_dir = os.environ.get('SUBJECTS_DIR')
|
||||
|
||||
parser.add_option("-s", "--subject", dest="subject",
|
||||
help="Subject name", default=subject)
|
||||
help="Subject name", default=subject)
|
||||
parser.add_option("-d", "--subjects-dir", dest="subjects_dir",
|
||||
help="Subjects directory", default=subjects_dir)
|
||||
help="Subjects directory", default=subjects_dir)
|
||||
parser.add_option("-5", "--flash05", dest="flash05",
|
||||
help=("Path to FLASH sequence with a spin angle of 5 "
|
||||
"degrees in Nifti format"), metavar="FILE")
|
||||
help=("Path to FLASH sequence with a spin angle of 5 "
|
||||
"degrees in Nifti format"), metavar="FILE")
|
||||
parser.add_option("-3", "--flash30", dest="flash30",
|
||||
help=("Path to FLASH sequence with a spin angle of 30 "
|
||||
"degrees in Nifti format"), metavar="FILE")
|
||||
help=("Path to FLASH sequence with a spin angle of 30 "
|
||||
"degrees in Nifti format"), metavar="FILE")
|
||||
parser.add_option("-v", "--view", dest="show", action="store_true",
|
||||
help="Show BEM model in 3D for visual inspection",
|
||||
default=False)
|
||||
@@ -132,3 +132,7 @@ if __name__ == '__main__':
|
||||
show = options.show
|
||||
|
||||
make_flash_bem(subject, subjects_dir, flash05, flash30, show=show)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -14,8 +14,8 @@ import sys
|
||||
import mne
|
||||
from mne.io import read_raw_kit
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -46,7 +46,9 @@ if __name__ == '__main__':
|
||||
if input_fname is None:
|
||||
os.environ['ETS_TOOLKIT'] = 'qt4'
|
||||
mne.gui.kit2fiff()
|
||||
sys.exit(0)
|
||||
if is_main:
|
||||
sys.exit(0)
|
||||
return
|
||||
|
||||
hsp_fname = options.hsp_fname
|
||||
elp_fname = options.elp_fname
|
||||
@@ -66,3 +68,7 @@ if __name__ == '__main__':
|
||||
raw.save(out_fname)
|
||||
raw.close()
|
||||
sys.exit(0)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -18,7 +18,8 @@ import os.path as op
|
||||
import sys
|
||||
import mne
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -39,42 +40,42 @@ if __name__ == '__main__':
|
||||
subject = vars(options).get('subject', env.get('SUBJECT'))
|
||||
if subject is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
overwrite = options.overwrite
|
||||
verbose = options.verbose
|
||||
force = '--force' if options.force else '--check'
|
||||
|
||||
from mne.commands.utils import get_status_output
|
||||
|
||||
def my_run_cmd(cmd, err_msg):
|
||||
sig, out, error = get_status_output(cmd)
|
||||
if verbose:
|
||||
print(out, error)
|
||||
if sig != 0:
|
||||
print(err_msg)
|
||||
sys.exit(1)
|
||||
raise RuntimeError(err_msg)
|
||||
|
||||
if not 'SUBJECTS_DIR' in env:
|
||||
print('The environment variable SUBJECTS_DIR should be set')
|
||||
sys.exit(1)
|
||||
raise RuntimeError('The environment variable SUBJECTS_DIR should '
|
||||
'be set')
|
||||
|
||||
if not op.isabs(env['SUBJECTS_DIR']):
|
||||
env['SUBJECTS_DIR'] = op.abspath(env['SUBJECTS_DIR'])
|
||||
subj_dir = env['SUBJECTS_DIR']
|
||||
|
||||
if not 'MNE_ROOT' in env:
|
||||
print('MNE_ROOT environment variable is not set')
|
||||
sys.exit(1)
|
||||
raise RuntimeError('MNE_ROOT environment variable is not set')
|
||||
|
||||
if not 'FREESURFER_HOME' in env:
|
||||
print('The FreeSurfer environment needs to be set up for this script')
|
||||
sys.exit(1)
|
||||
raise RuntimeError('The FreeSurfer environment needs to be set up '
|
||||
'for this script')
|
||||
|
||||
subj_path = op.join(subj_dir, subject)
|
||||
if not op.exists(subj_path):
|
||||
print(('%s does not exits. Please check your subject directory '
|
||||
'path.' % subj_path))
|
||||
sys.exit(1)
|
||||
raise RuntimeError('%s does not exits. Please check your subject '
|
||||
'directory path.' % subj_path)
|
||||
|
||||
if op.exists(op.join(subj_path, 'mri', 'T1.mgz')):
|
||||
mri = 'T1.mgz'
|
||||
@@ -97,13 +98,13 @@ if __name__ == '__main__':
|
||||
else:
|
||||
print('%s/surf/%s already there' % (subj_path, my_seghead))
|
||||
if not overwrite:
|
||||
print('Use the --overwrite option to replace exisiting surfaces.')
|
||||
sys.exit()
|
||||
raise IOError('Use the --overwrite option to replace exisiting '
|
||||
'surfaces.')
|
||||
|
||||
surf = check_seghead()
|
||||
if surf is None:
|
||||
print('mkheadsurf did not produce the standard output file.')
|
||||
sys.exit(1)
|
||||
raise RuntimeError('mkheadsurf did not produce the standard output '
|
||||
'file.')
|
||||
|
||||
fif = '{0}/{1}/bem/{1}-head-dense.fif'.format(subj_dir, subject)
|
||||
print('2. Creating %s ...' % fif)
|
||||
@@ -128,4 +129,9 @@ if __name__ == '__main__':
|
||||
my_run_cmd(cmd, 'Failed to create %s, see above' % out_fif)
|
||||
os.remove(surf_fname)
|
||||
|
||||
sys.exit(0)
|
||||
if is_main:
|
||||
sys.exit(0)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -17,77 +17,76 @@ import os
|
||||
import mne
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
|
||||
parser.add_option("-i", "--in", dest="in_fname",
|
||||
help="Input raw FIF file", metavar="FILE")
|
||||
help="Input raw FIF file", metavar="FILE")
|
||||
parser.add_option("-o", dest="out_fname",
|
||||
help="Output FIF file (if not set, suffix '_sss' will be used)",
|
||||
metavar="FILE", default=None)
|
||||
help="Output FIF file (if not set, suffix '_sss' will "
|
||||
"be used)", metavar="FILE", default=None)
|
||||
parser.add_option("--origin", dest="origin",
|
||||
help="Head origin in mm, or a filename to read the origin from. "
|
||||
"If not set it will be estimated from headshape points",
|
||||
default=None)
|
||||
help="Head origin in mm, or a filename to read the "
|
||||
"origin from. If not set it will be estimated from "
|
||||
"headshape points", default=None)
|
||||
parser.add_option("--origin-out", dest="origin_out",
|
||||
help="Filename to use for computed origin", default=None)
|
||||
help="Filename to use for computed origin", default=None)
|
||||
parser.add_option("--frame", dest="frame", type="string",
|
||||
help="Coordinate frame for head center ('device' or 'head')",
|
||||
default="device")
|
||||
help="Coordinate frame for head center ('device' or "
|
||||
"'head')", default="device")
|
||||
parser.add_option("--bad", dest="bad", type="string",
|
||||
help="List of static bad channels",
|
||||
default=None)
|
||||
help="List of static bad channels",
|
||||
default=None)
|
||||
parser.add_option("--autobad", dest="autobad", type="string",
|
||||
help="Set automated bad channel detection ('on', 'off', 'n')",
|
||||
default="off")
|
||||
help="Set automated bad channel detection ('on', 'off', "
|
||||
"'n')", default="off")
|
||||
parser.add_option("--skip", dest="skip",
|
||||
help="Skips raw data sequences, time intervals pairs in sec, e.g.: 0 30 120 150",
|
||||
default=None)
|
||||
help="Skips raw data sequences, time intervals pairs in "
|
||||
"sec, e.g.: 0 30 120 150", default=None)
|
||||
parser.add_option("--force", dest="force", action="store_true",
|
||||
help="Ignore program warnings",
|
||||
default=False)
|
||||
help="Ignore program warnings",
|
||||
default=False)
|
||||
parser.add_option("--st", dest="st", action="store_true",
|
||||
help="Apply the time-domain MaxST extension",
|
||||
default=False)
|
||||
help="Apply the time-domain MaxST extension",
|
||||
default=False)
|
||||
parser.add_option("--buflen", dest="st_buflen", type="float",
|
||||
help="MaxSt buffer length in sec",
|
||||
default=16.0)
|
||||
help="MaxSt buffer length in sec",
|
||||
default=16.0)
|
||||
parser.add_option("--corr", dest="st_corr", type="float",
|
||||
help="MaxSt subspace correlation",
|
||||
default=0.96)
|
||||
help="MaxSt subspace correlation",
|
||||
default=0.96)
|
||||
parser.add_option("--trans", dest="mv_trans",
|
||||
help="Transforms the data into the coil definitions of in_fname, or into the default frame",
|
||||
default=None)
|
||||
help="Transforms the data into the coil definitions of "
|
||||
"in_fname, or into the default frame", default=None)
|
||||
parser.add_option("--movecomp", dest="mv_comp", action="store_true",
|
||||
help="Estimates and compensates head movements in continuous raw data",
|
||||
default=False)
|
||||
help="Estimates and compensates head movements in "
|
||||
"continuous raw data", default=False)
|
||||
parser.add_option("--headpos", dest="mv_headpos", action="store_true",
|
||||
help="Estimates and stores head position parameters, but does not compensate movements",
|
||||
default=False)
|
||||
help="Estimates and stores head position parameters, "
|
||||
"but does not compensate movements", default=False)
|
||||
parser.add_option("--hp", dest="mv_hp", type="string",
|
||||
help="Stores head position data in an ascii file",
|
||||
default=None)
|
||||
help="Stores head position data in an ascii file",
|
||||
default=None)
|
||||
parser.add_option("--hpistep", dest="mv_hpistep", type="float",
|
||||
help="Sets head position update interval in ms",
|
||||
default=None)
|
||||
help="Sets head position update interval in ms",
|
||||
default=None)
|
||||
parser.add_option("--hpisubt", dest="mv_hpisubt", type="string",
|
||||
help="Subtracts hpi signals: sine amplitudes, amp + baseline, or switch off",
|
||||
default=None)
|
||||
help="Subtracts hpi signals: sine amplitudes, amp + "
|
||||
"baseline, or switch off", default=None)
|
||||
parser.add_option("--nohpicons", dest="mv_hpicons", action="store_false",
|
||||
help="Do not check initial consistency isotrak vs hpifit",
|
||||
default=True)
|
||||
help="Do not check initial consistency isotrak vs "
|
||||
"hpifit", default=True)
|
||||
parser.add_option("--linefreq", dest="linefreq", type="float",
|
||||
help="Sets the basic line interference frequency (50 or 60 Hz)",
|
||||
default=None)
|
||||
help="Sets the basic line interference frequency (50 or "
|
||||
"60 Hz)", default=None)
|
||||
parser.add_option("--nooverwrite", dest="overwrite", action="store_false",
|
||||
help="Do not overwrite output file if it already exists",
|
||||
default=True)
|
||||
help="Do not overwrite output file if it already exists",
|
||||
default=True)
|
||||
parser.add_option("--args", dest="mx_args", type="string",
|
||||
help="Additional command line arguments to pass to MaxFilter",
|
||||
default="")
|
||||
help="Additional command line arguments to pass to "
|
||||
"MaxFilter", default="")
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
@@ -95,7 +94,9 @@ if __name__ == '__main__':
|
||||
|
||||
if in_fname is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
out_fname = options.out_fname
|
||||
origin = options.origin
|
||||
@@ -131,14 +132,19 @@ if __name__ == '__main__':
|
||||
out_fname = prefix + '_sss.fif'
|
||||
|
||||
if origin is not None and os.path.exists(origin):
|
||||
origin = open(origin, 'r').readlines()[0].strip()
|
||||
with open(origin, 'r') as fid:
|
||||
origin = fid.readlines()[0].strip()
|
||||
|
||||
origin = mne.preprocessing.apply_maxfilter(in_fname, out_fname, origin, frame,
|
||||
bad, autobad, skip, force, st, st_buflen, st_corr, mv_trans,
|
||||
mv_comp, mv_headpos, mv_hp, mv_hpistep, mv_hpisubt, mv_hpicons,
|
||||
linefreq, mx_args, overwrite)
|
||||
origin = mne.preprocessing.apply_maxfilter(
|
||||
in_fname, out_fname, origin, frame,
|
||||
bad, autobad, skip, force, st, st_buflen, st_corr, mv_trans,
|
||||
mv_comp, mv_headpos, mv_hp, mv_hpistep, mv_hpisubt, mv_hpicons,
|
||||
linefreq, mx_args, overwrite)
|
||||
|
||||
if origin_out is not None:
|
||||
fid = open(origin_out, 'w')
|
||||
fid.write(origin + '\n')
|
||||
fid.close()
|
||||
with open(origin_out, 'w') as fid:
|
||||
fid.write(origin + '\n')
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -9,11 +9,12 @@ MNE-sample-data/MEG/sample/sample_audvis-ave.fif -d MNE-sample-data/subjects/ \
|
||||
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
from mne.report import Report
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
@@ -38,6 +39,11 @@ if __name__ == '__main__':
|
||||
|
||||
options, args = parser.parse_args()
|
||||
path = options.path
|
||||
if path is None:
|
||||
parser.print_help()
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
info_fname = options.info_fname
|
||||
subjects_dir = options.subjects_dir
|
||||
subject = options.subject
|
||||
@@ -50,3 +56,7 @@ if __name__ == '__main__':
|
||||
verbose=verbose)
|
||||
report.parse_folder(path, verbose=verbose, n_jobs=n_jobs)
|
||||
report.save(open_browser=open_browser, overwrite=overwrite)
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -16,29 +16,35 @@ import sys
|
||||
|
||||
import mne
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def run():
|
||||
from mne.commands.utils import get_optparser
|
||||
|
||||
parser = get_optparser(__file__)
|
||||
|
||||
parser.add_option("-s", "--surf", dest="surf",
|
||||
help="Surface in Freesurfer format", metavar="FILE")
|
||||
help="Surface in Freesurfer format", metavar="FILE")
|
||||
parser.add_option("-f", "--fif", dest="fif",
|
||||
help="FIF file produced", metavar="FILE")
|
||||
help="FIF file produced", metavar="FILE")
|
||||
parser.add_option("-i", "--id", dest="id", default=4,
|
||||
help=("Surface Id (e.g. 4 sur head surface)"))
|
||||
help=("Surface Id (e.g. 4 sur head surface)"))
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if options.surf is None:
|
||||
parser.print_help()
|
||||
sys.exit(1)
|
||||
if is_main:
|
||||
sys.exit(1)
|
||||
return
|
||||
|
||||
print("Converting %s to BEM FIF file." % options.surf)
|
||||
|
||||
points, tris = mne.read_surface(options.surf)
|
||||
points *= 1e-3
|
||||
surf = dict(coord_frame=5, id=int(options.id), nn=None, np=len(points),
|
||||
ntri=len(tris), rr=points, sigma=1, tris=tris)
|
||||
mne.write_bem_surface(options.fif, surf)
|
||||
|
||||
|
||||
is_main = (__name__ == '__main__')
|
||||
if is_main:
|
||||
run()
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
|
||||
from nose.tools import assert_true
|
||||
from mne.commands import (mne_browse_raw, mne_bti2fiff, mne_clean_eog_ecg,
|
||||
mne_compute_proj_ecg, mne_compute_proj_eog,
|
||||
mne_coreg, mne_flash_bem_model, mne_kit2fiff,
|
||||
mne_make_scalp_surfaces, mne_maxfilter,
|
||||
mne_report, mne_surf2bem)
|
||||
from mne.utils import run_tests_if_main
|
||||
from mne.externals.six.moves import StringIO
|
||||
|
||||
|
||||
class argvr(object):
|
||||
def __init__(self, *args):
|
||||
self.argv = list(('python',) + args)
|
||||
self.stdout = StringIO()
|
||||
self.stderr = StringIO()
|
||||
|
||||
def __enter__(self):
|
||||
self.orig_argv = sys.argv
|
||||
sys.argv = self.argv
|
||||
self.orig_stdout = sys.stdout
|
||||
sys.stdout = self.stdout
|
||||
self.orig_stderr = sys.stderr
|
||||
sys.stderr = self.stderr
|
||||
return self
|
||||
|
||||
def __exit__(self, *args):
|
||||
sys.argv = self.orig_argv
|
||||
sys.stdout = self.orig_stdout
|
||||
sys.stderr = self.orig_stderr
|
||||
|
||||
|
||||
def check_usage(module):
|
||||
"""Helper to ensure we print usage"""
|
||||
with argvr() as a:
|
||||
module.run()
|
||||
assert_true('Usage: ' in a.stdout.getvalue())
|
||||
|
||||
|
||||
def test_browse_raw():
|
||||
"""Test mne browse_raw"""
|
||||
check_usage(mne_browse_raw)
|
||||
|
||||
|
||||
def test_bti2fiff():
|
||||
"""Test mne bti2fiff"""
|
||||
check_usage(mne_bti2fiff)
|
||||
|
||||
|
||||
def test_clean_eog_ecg():
|
||||
"""Test mne cleane_eog_ecg"""
|
||||
check_usage(mne_clean_eog_ecg)
|
||||
|
||||
|
||||
def test_compute_proj_ecg():
|
||||
"""Test mne compute_proj_ecg"""
|
||||
check_usage(mne_compute_proj_ecg)
|
||||
|
||||
|
||||
def test_compute_proj_eog():
|
||||
"""Test mne compute_proj_eog"""
|
||||
check_usage(mne_compute_proj_eog)
|
||||
|
||||
|
||||
def test_coreg():
|
||||
"""Test mne coreg"""
|
||||
assert_true(hasattr(mne_coreg, 'run'))
|
||||
|
||||
|
||||
def test_flash_bem_model():
|
||||
"""Test mne flash_bem_model"""
|
||||
assert_true(hasattr(mne_flash_bem_model, 'run'))
|
||||
|
||||
|
||||
def test_kit2fiff():
|
||||
"""Test mne kit2fiff"""
|
||||
assert_true(hasattr(mne_kit2fiff, 'run'))
|
||||
|
||||
|
||||
def test_make_scalp_surfaces():
|
||||
"""Test mne make_scalp_surfaces"""
|
||||
check_usage(mne_make_scalp_surfaces)
|
||||
|
||||
|
||||
def test_maxfilter():
|
||||
"""Test mne maxfilter"""
|
||||
check_usage(mne_maxfilter)
|
||||
|
||||
|
||||
def test_report():
|
||||
"""Test mne report"""
|
||||
check_usage(mne_report)
|
||||
|
||||
|
||||
def test_surf2bem():
|
||||
"""Test mne surf2bem"""
|
||||
check_usage(mne_surf2bem)
|
||||
|
||||
|
||||
run_tests_if_main()
|
||||
+11
-4
@@ -1,5 +1,3 @@
|
||||
#emacs: -*- mode: python-mode; py-indent-offset: 4; tab-width: 4; indent-tabs-mode: nil -*-
|
||||
#ex: set sts=4 ts=4 sw=4 noet:
|
||||
"""Some utility functions for commands (e.g. for cmdline handling)
|
||||
"""
|
||||
|
||||
@@ -7,21 +5,29 @@
|
||||
#
|
||||
# License: BSD (3-clause)
|
||||
|
||||
import imp, os, re
|
||||
import imp
|
||||
import os
|
||||
import re
|
||||
from optparse import OptionParser
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
import mne
|
||||
|
||||
|
||||
def get_optparser(cmdpath):
|
||||
"""Create OptionParser with cmd source specific settings (e.g. prog value)
|
||||
"""
|
||||
command = os.path.basename(cmdpath)
|
||||
if re.match('mne_(.*).py', command):
|
||||
command = command[4:-3]
|
||||
elif re.match('mne_(.*).pyc', command):
|
||||
command = command[4:-4]
|
||||
|
||||
# Fetch description
|
||||
mod = imp.load_source('__temp', cmdpath)
|
||||
if cmdpath.endswith('.pyc'):
|
||||
mod = imp.load_compiled('__temp', cmdpath)
|
||||
else:
|
||||
mod = imp.load_source('__temp', cmdpath)
|
||||
if mod.__doc__:
|
||||
doc, description, epilog = mod.__doc__, None, None
|
||||
|
||||
@@ -39,6 +45,7 @@ def get_optparser(cmdpath):
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
def get_status_output(cmd):
|
||||
""" Replacement for commands.getstatusoutput which has been deprecated since 2.6
|
||||
Returns the error status, output and error output"""
|
||||
|
||||
@@ -107,6 +107,7 @@ def test_make_forward_solution_kit():
|
||||
|
||||
fname_ctf_raw = op.join(op.dirname(__file__), '..', '..', 'io', 'tests',
|
||||
'data', 'test_ctf_comp_raw.fif')
|
||||
n_src = 1548
|
||||
|
||||
# first set up a testing source space
|
||||
src = read_source_spaces(fname_src)
|
||||
@@ -121,7 +122,7 @@ def test_make_forward_solution_kit():
|
||||
fwd_py = make_forward_solution(fname_kit_raw, mindist=0.0,
|
||||
src=src, eeg=False, meg=True,
|
||||
bem=fname_bem, mri=mri_path)
|
||||
_compare_forwards(fwd, fwd_py, 157, 108)
|
||||
_compare_forwards(fwd, fwd_py, 157, 1548)
|
||||
assert_true(isinstance(fwd_py, Forward))
|
||||
|
||||
# now let's use mne-python all the way
|
||||
@@ -134,7 +135,7 @@ def test_make_forward_solution_kit():
|
||||
src=src, eeg=False, meg=True,
|
||||
bem=fname_bem, mri=mri_path,
|
||||
ignore_ref=True)
|
||||
_compare_forwards(fwd, fwd_py, 157, 108,
|
||||
_compare_forwards(fwd, fwd_py, 157, n_src,
|
||||
meg_rtol=1e-3, meg_atol=1e-7)
|
||||
|
||||
# BTI python end-to-end versus C
|
||||
@@ -145,7 +146,7 @@ def test_make_forward_solution_kit():
|
||||
fwd_py = make_forward_solution(raw_py.info, mindist=0.0,
|
||||
src=src, eeg=False, meg=True,
|
||||
bem=fname_bem, mri=mri_path)
|
||||
_compare_forwards(fwd, fwd_py, 248, 108)
|
||||
_compare_forwards(fwd, fwd_py, 248, n_src)
|
||||
|
||||
# now let's test CTF w/compensation
|
||||
fwd_py = make_forward_solution(fname_ctf_raw, mindist=0.0,
|
||||
@@ -155,7 +156,7 @@ def test_make_forward_solution_kit():
|
||||
fwd = do_forward_solution('sample', fname_ctf_raw, src=fname_src,
|
||||
mindist=0.0, bem=fname_bem, mri=fname_mri,
|
||||
eeg=False, meg=True, subjects_dir=subjects_dir)
|
||||
_compare_forwards(fwd, fwd_py, 274, 108)
|
||||
_compare_forwards(fwd, fwd_py, 274, n_src)
|
||||
|
||||
# CTF with compensation changed in python
|
||||
ctf_raw = Raw(fname_ctf_raw, compensation=2)
|
||||
@@ -168,7 +169,7 @@ def test_make_forward_solution_kit():
|
||||
mindist=0.0, bem=fname_bem, mri=fname_mri,
|
||||
eeg=False, meg=True,
|
||||
subjects_dir=subjects_dir)
|
||||
_compare_forwards(fwd, fwd_py, 274, 108)
|
||||
_compare_forwards(fwd, fwd_py, 274, n_src)
|
||||
|
||||
|
||||
def test_make_forward_solution():
|
||||
|
||||
@@ -12,11 +12,12 @@ from mne import read_cov, read_forward_solution, read_evokeds
|
||||
from mne.cov import regularize
|
||||
from mne.inverse_sparse import gamma_map
|
||||
from mne import pick_types_forward
|
||||
from mne.utils import run_tests_if_main
|
||||
|
||||
data_path = testing.data_path()
|
||||
fname_evoked = op.join(data_path, 'MEG', 'sample',
|
||||
'sample_audvis_trunc-ave.fif')
|
||||
fname_cov = op.join(data_path, 'MEG', 'sample', 'sample_audvis_trunc-cov.fif')
|
||||
'sample_audvis-ave.fif')
|
||||
fname_cov = op.join(data_path, 'MEG', 'sample', 'sample_audvis-cov.fif')
|
||||
fname_fwd = op.join(data_path, 'MEG', 'sample',
|
||||
'sample_audvis_trunc-meg-eeg-oct-6-fwd.fif')
|
||||
|
||||
@@ -34,23 +35,22 @@ def test_gamma_map():
|
||||
|
||||
alpha = 0.2
|
||||
stc = gamma_map(evoked, forward, cov, alpha, tol=1e-5,
|
||||
xyz_same_gamma=True, update_mode=1)
|
||||
# idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
# assert_true(np.concatenate(stc.vertno)[idx] == 96397)
|
||||
# XXX fix
|
||||
xyz_same_gamma=True, update_mode=1, verbose=False)
|
||||
idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
assert_true(np.concatenate(stc.vertno)[idx] == 96397)
|
||||
|
||||
stc = gamma_map(evoked, forward, cov, alpha, tol=1e-5,
|
||||
xyz_same_gamma=False, update_mode=1)
|
||||
# idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
# assert_true(np.concatenate(stc.vertno)[idx] == 82010)
|
||||
# XXX fix
|
||||
xyz_same_gamma=False, update_mode=1, verbose=False)
|
||||
idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
assert_true(np.concatenate(stc.vertno)[idx] == 82010)
|
||||
|
||||
# force fixed orientation
|
||||
stc, res = gamma_map(evoked, forward, cov, alpha, tol=1e-5,
|
||||
xyz_same_gamma=False, update_mode=2,
|
||||
loose=None, return_residual=True)
|
||||
# idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
# assert_true(np.concatenate(stc.vertno)[idx] == 83398)
|
||||
# XXX fix
|
||||
|
||||
loose=None, return_residual=True, verbose=False)
|
||||
idx = np.argmax(np.sum(stc.data ** 2, axis=1))
|
||||
# assert_true(np.concatenate(stc.vertno)[idx] == 83398) # XXX FIX
|
||||
assert_array_almost_equal(evoked.times, res.times)
|
||||
|
||||
|
||||
run_tests_if_main()
|
||||
|
||||
@@ -14,11 +14,13 @@ from mne.label import read_label
|
||||
from mne import read_cov, read_forward_solution, read_evokeds
|
||||
from mne.inverse_sparse import mixed_norm, tf_mixed_norm
|
||||
from mne.minimum_norm import apply_inverse, make_inverse_operator
|
||||
from mne.utils import run_tests_if_main
|
||||
|
||||
|
||||
data_path = testing.data_path()
|
||||
fname_data = op.join(data_path, 'MEG', 'sample', 'sample_audvis_trunc-ave.fif')
|
||||
fname_cov = op.join(data_path, 'MEG', 'sample', 'sample_audvis_trunc-cov.fif')
|
||||
# NOTE: These use the ave and cov from sample dataset (no _trunc)
|
||||
fname_data = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')
|
||||
fname_cov = op.join(data_path, 'MEG', 'sample', 'sample_audvis-cov.fif')
|
||||
fname_fwd = op.join(data_path, 'MEG', 'sample',
|
||||
'sample_audvis_trunc-meg-eeg-oct-6-fwd.fif')
|
||||
label = 'Aud-rh'
|
||||
@@ -90,3 +92,6 @@ def test_mxne_inverse():
|
||||
|
||||
assert_array_almost_equal(stc.times, evoked.times, 5)
|
||||
assert_true(stc.vertno[1][0] in label.vertices)
|
||||
|
||||
|
||||
run_tests_if_main()
|
||||
|
||||
@@ -18,20 +18,24 @@ from nose.tools import (assert_true, assert_raises, assert_equal,
|
||||
assert_not_equal)
|
||||
|
||||
from mne import pick_types, pick_channels
|
||||
from mne.datasets import testing
|
||||
from mne.io.constants import FIFF
|
||||
from mne.io import (Raw, concatenate_raws,
|
||||
get_chpi_positions, set_eeg_reference)
|
||||
from mne import concatenate_events, find_events, equalize_channels
|
||||
from mne.utils import (_TempDir, requires_nitime, requires_pandas,
|
||||
requires_mne, run_subprocess)
|
||||
requires_mne, run_subprocess, run_tests_if_main)
|
||||
from mne.externals.six.moves import zip
|
||||
from mne.externals.six.moves import cPickle as pickle
|
||||
|
||||
warnings.simplefilter('always') # enable b/c these tests throw warnings
|
||||
|
||||
data_dir = op.join(testing.data_path(), 'MEG', 'sample')
|
||||
fif_fname = op.join(data_dir, 'sample_audvis_trunc_raw.fif')
|
||||
|
||||
base_dir = op.join(op.dirname(__file__), '..', '..', 'tests', 'data')
|
||||
fif_fname = op.join(base_dir, 'test_raw.fif')
|
||||
fif_gz_fname = op.join(base_dir, 'test_raw.fif.gz')
|
||||
test_fif_fname = op.join(base_dir, 'test_raw.fif')
|
||||
test_fif_gz_fname = op.join(base_dir, 'test_raw.fif.gz')
|
||||
ctf_fname = op.join(base_dir, 'test_ctf_raw.fif')
|
||||
ctf_comp_fname = op.join(base_dir, 'test_ctf_comp_raw.fif')
|
||||
fif_bad_marked_fname = op.join(base_dir, 'test_withbads_raw.fif')
|
||||
@@ -137,7 +141,7 @@ def test_output_formats():
|
||||
tols = [1e-4, 1e-7, 1e-7, 1e-15]
|
||||
|
||||
# let's fake a raw file with different formats
|
||||
raw = Raw(fif_fname, preload=True)
|
||||
raw = Raw(test_fif_fname, preload=False)
|
||||
raw.crop(0, 1, copy=False)
|
||||
|
||||
temp_file = op.join(tempdir, 'raw.fif')
|
||||
@@ -148,7 +152,7 @@ def test_output_formats():
|
||||
raw.save(temp_file, format=format, overwrite=True)
|
||||
raw2 = Raw(temp_file)
|
||||
raw2_data = raw2[:, :][0]
|
||||
assert_allclose(raw2_data, raw._data, rtol=tol, atol=1e-25)
|
||||
assert_allclose(raw2_data, raw[:, :][0], rtol=tol, atol=1e-25)
|
||||
assert_true(raw2.orig_format == format)
|
||||
|
||||
|
||||
@@ -304,7 +308,7 @@ def test_load_bad_channels():
|
||||
# Load correctly marked file (manually done in mne_process_raw)
|
||||
raw_marked = Raw(fif_bad_marked_fname)
|
||||
correct_bads = raw_marked.info['bads']
|
||||
raw = Raw(fif_fname)
|
||||
raw = Raw(test_fif_fname)
|
||||
# Make sure it starts clean
|
||||
assert_array_equal(raw.info['bads'], [])
|
||||
|
||||
@@ -369,7 +373,7 @@ def test_io_raw():
|
||||
assert_true(np.allclose(data[:, sl], raw[:, sl][0], 1e-6, 1e-20))
|
||||
|
||||
# now let's do some real I/O
|
||||
fnames_in = [fif_fname, fif_gz_fname, ctf_fname]
|
||||
fnames_in = [fif_fname, test_fif_gz_fname, ctf_fname]
|
||||
fnames_out = ['raw.fif', 'raw.fif.gz', 'raw.fif']
|
||||
for fname_in, fname_out in zip(fnames_in, fnames_out):
|
||||
fname_out = op.join(tempdir, fname_out)
|
||||
@@ -395,7 +399,7 @@ def test_io_raw():
|
||||
# Writing with drop_small_buffer True
|
||||
raw.save(fname_out, picks, tmin=0, tmax=4, buffer_size_sec=3,
|
||||
drop_small_buffer=True, overwrite=True)
|
||||
raw2 = Raw(fname_out, preload=True)
|
||||
raw2 = Raw(fname_out)
|
||||
|
||||
sel = pick_channels(raw2.ch_names, meg_ch_names)
|
||||
data2, times2 = raw2[sel, :]
|
||||
@@ -965,8 +969,8 @@ def test_set_eeg_reference():
|
||||
reref_other_data = reref[picks_other][0]
|
||||
|
||||
# Check that both EEG data and other data is the same
|
||||
assert_array_equal(raw_eeg_data, unref_eeg_data)
|
||||
assert_array_equal(raw_other_data, reref_other_data)
|
||||
assert_allclose(raw_eeg_data, unref_eeg_data, 1e-6, atol=1e-15)
|
||||
assert_allclose(raw_other_data, reref_other_data, 1e-6, atol=1e-15)
|
||||
|
||||
# Test that data is modified in place when copy=False
|
||||
reref, ref_data = set_eeg_reference(raw, ['EEG 001', 'EEG 002'],
|
||||
@@ -1030,3 +1034,6 @@ def test_equalize_channels():
|
||||
equalize_channels(my_comparison)
|
||||
for e in my_comparison:
|
||||
assert_equal(ch_names, e.ch_names)
|
||||
|
||||
|
||||
run_tests_if_main()
|
||||
|
||||
@@ -97,7 +97,7 @@ def test_source_psd():
|
||||
inverse_operator = read_inverse_operator(fname_inv)
|
||||
label = read_label(fname_label)
|
||||
tmin, tmax = 0, 20 # seconds
|
||||
fmin, fmax = 10, 65 # Hz
|
||||
fmin, fmax = 55, 65 # Hz
|
||||
n_fft = 2048
|
||||
stc = compute_source_psd(raw, inverse_operator, lambda2=1. / 9.,
|
||||
method="dSPM", tmin=tmin, tmax=tmax,
|
||||
@@ -105,7 +105,9 @@ def test_source_psd():
|
||||
n_fft=n_fft, label=label, overlap=0.1)
|
||||
assert_true(stc.times[0] >= fmin * 1e-3)
|
||||
assert_true(stc.times[-1] <= fmax * 1e-3)
|
||||
# Can't test line freq b/c data has been low-passed @ 40 Hz
|
||||
# Time max at line frequency (60 Hz in US)
|
||||
assert_true(59e-3 <= stc.times[np.argmax(np.sum(stc.data, axis=0))]
|
||||
<= 61e-3)
|
||||
|
||||
|
||||
def test_source_psd_epochs():
|
||||
|
||||
Reference in New Issue
Block a user