APP UNDER DEVELOPMENT
This App aims at apply to MEG signals temporal filtering (lowpass, highpass, or bandpass), and optionally a notch filter and a resampling. To do so, the MNE Python functions raw.filter, raw.notch_filter, and raw.resample are used.
This App is supposed to be applied on MEG signals preprocessed beforehand with MaxFilter
GitHub repository
Still private
Brainlife datatype used:
For input: neuro/meg/fif
For outputs: neuro/meg/fif and report/html
Inputs of the App
Files | Format | Description | Optional |
---|---|---|---|
MEG signals | .fif | Data to process. MaxFilter was applied beforehand on this data. | No |
Outputs of the App:
Files | Format | Description |
---|---|---|
MEG signals | .fif | Data after filtering |
Report | .html | Visualization in time and frequency domains |
Steps
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
Create info about raw data
Display SNR values
Save report
Function
main()
Parse the
config.json
Raise an exception if both
l_freq
andh_freq
areNone
Apply
temporal_filtering()
Display info message about the filtering applied
Apply
_compute_snr()
Apply
_generate_report()
Parameters of the App
The parameters of the App correspond to the parameters passed to the Python functions used in the App. They are listed in the config.json.example
when you test your App locally, then when you register you App on Brainlife, you enter them and a config.json
is created by Brainlife.
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
Some parameters are in the “Advanced” section because it’s best to keep their default values:
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
2. Function raw.filter_notch()
param_notch_freqs_start
NUMBER
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 241)
param_notch_freqs_step
NUMBER
default: 50 (in Europe, if MEG signals were recorded in the US, change it to 60)
Some parameters are in the “Advanced” section because it’s best to keep their default values:
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_bandwidth
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
3. Function raw.resample()
sfreq
NUMBER
Some parameters are in the “Advanced” section because it’s best to keep their default values:
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 dictionary, 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
The parameters' list along with their default values correspond to the 0.22.0
version of MNE.
0 Comments