...
The python file temporal_filtering.py
is composed of several functions:
Function
temporal_filtering()
Apply a lowpass, highpass, or bandpass filter
Optionally apply a notch filter
Optionally resample the data
Save file
Function
_compute_snr()
Computes a SNR before and after MaxFilter. The steps of that function are described here.
Function
_generate_report()
Plot data in time domain
Plot data in frequency domain
Display Create info about raw data
Display SNR values
Save report
Function
main()
Parse the
config.json
Apply
temporal_filtering()
Apply
_compute_snr()
Apply
_generate_report()
...
For app-temporal-filtering
, the user will be able to choose the following parameters (a default parameter will be proposed). Three different MNE Python functions are used in this App:
Function
raw.filter()
l_freq
NUMBER
default: None
h_freq
NUMBER
default: None
picks
ENUM
either meg, eeg, [“meg”, “eeg”], mag, grad, or
None
(i.e. all channels except for the bad ones)default:
None
filter_length
STRING
default: auto
l_trans_bandwidth
NUMBER
default: auto
h_trans_bandwidth
NUMBER
default: auto
n_jobs
NUMBER
default: 1
method
STRING
either fir or iir
default: fir
iir_params
to be determined
phase
ENUM
either zero or zero-double
default: zero
fir_window
ENUM
either hamming, hann, or blackman
default: hamming
fir_design
ENUM
either firwin or firwin2
default: firwin
skip_by_annotation
ENUM
either ["edge", "bad_acq_skip"], ["edge"], ["bad_acq_skip"], or []
pad
ENUM
either reflect_limited or any value of
numpy.pad()
default: reflect_limited
raw.filter_notch()
param_notch_freqs_start
ENUM
either
np.arange(60, 241, 60)
in the US, ornp.arange(50, 251, 50)
in EuropeNUMBER
default: 50 (in Europe power line artifact is at 50Hz, in the US it’s at 60Hz)
param_notch_freqs_stop
NUMBER
default: 251 (in Europe, if MEG signals were recorded in the US, change it to 251)
param_notch_freqs_step
NUMBER
default: 50 (in Europe, if MEG signals were recorded in the US, change it to 50)
picks
ENUM
either meg, eeg, [“meg”, “eeg”], mag, grad, or
None
(i.e. all channels except for the bad ones)default:
None
filter_length
STRING
default: auto
notch_widths
NUMBER
default:
None
trans_banwidthbandwidth
NUMBER
default: 1
n_jobs
NUMBER
default: 1
method
STRING
either fir or iir
default: fir
iir_params
to be determined
mt_bandwidth
NUMBER
default:
None
p_value
NUMBER
default: 0.05
phase
ENUM
either zero or zero-double
default: zero
fir_window
ENUM
either hamming, hann, or blackman
default: hamming
fir_design
ENUM
either firwin or firwin2
default: firwin
pad
ENUM
either reflect_limited or any value of
numpy.pad()
default: reflect_limited
raw.resample()
sfreq
NUMBER
npad
NUMBER
default: auto
window
ENUM
see choices in
scipy.signal.get_window
default: boxcar
stim_picks
STRING
default:
None
n_jobs
NUMBER
default: 1
events
NUMBER
default:
None
pad
ENUM
either reflect_limited or any value of
numpy.pad()
default: reflect_limited
See if it’s possible in BL to put a default
STRING
value in aNUMBER
parameteriir_params must be a dictonarydictionary, to see how to write it for BL
see how to write an array of floats in BL
the list of parameters will be updated when the App will be registered on BL
...