mne_hfo.RMSDetector#
- class mne_hfo.RMSDetector(threshold=3, win_size=100, overlap=0.25, sfreq=None, filter_band=(100, 500), scoring_func='f1', n_jobs=-1, hfo_name='hfo', verbose=False)[source]#
Root mean square (RMS) detection algorithm (Staba Detector).
The original algorithm described in the reference, takes a sliding window of 3 ms, computes the RMS values between 100 and 500 Hz. Then events separated by less than 10 ms were combined into one event. Then events not having a minimum of 6 peaks (i.e. band-pass signal rectified above 0 V) with greater then 3 std above mean baseline were removed. A finite impulse response (FIR) filter with a Hamming window was used. See [1].
- Parameters:
- threshold
float
Number of standard deviations to use as a threshold.
- win_size
int
Sliding window size in samples.
- overlap
float
Fraction of the window overlap (0 to 1).
- sfreq
int
|None
The sampling rate of the data.
- filter_band
tuple
(float
,float
) Low cut-off frequency at index 0 and high cut-off frequency at index 1. The default is
(100, 500)
.- scoring_func
str
The scoring function to apply when trying to match HFOs with a different dataset, such as manual annotations.
- n_jobs
int
The number of jobs for joblib parallelization.
- hfo_name
str
What to name the events detected (i.e. fast ripple if freq_band is (250, 500)).
- verbosebool
Verbosity of the detector.
- threshold
References
- Attributes:
h_freq
Higher frequency band for HFO definition.
hfo_annotations
HFO Annotations.
hfo_event_arr
HFO event array.
l_freq
Lower frequency band for HFO definition.
step_size
Step size of each window.
Methods
fit
(X[, y])Fit the model according to the optionally given training data.
fit_predict
(X[, y])Perform fit on X and returns labels for X.
Get metadata routing of this object.
get_params
([deep])Get parameters for this estimator.
predict
(X)Scikit-learn override predict function.
score
(X, y[, sample_weight])Return the score of the HFO prediction.
set_params
(**params)Set the parameters of this estimator.
set_score_request
(*[, sample_weight])Request metadata passed to the
score
method.to_data_frame
([format])Export HFO annotations in tabular structure as a pandas DataFrame.
- fit(X, y=None)#
Fit the model according to the optionally given training data.
- Parameters:
- X
mne.io.Raw
of shape (n_samples, n_features) | pd.DataFrame Training vector, where n_samples is the number of samples and
n_features
is the number of features. In MNE-HFO,n_features
are the number of time points in the EEG data, and n_samples are the number of channels.- yarray_like of shape (n_samples, n_output)
Target vector relative to X.
- X
- Returns:
- selfDetector
Fitted estimator.
Notes
All detectors use a sliding window to compute HFOs in windows.
- fit_predict(X, y=None)#
Perform fit on X and returns labels for X.
Returns -1 for outliers and 1 for inliers.
- Parameters:
- X{array_like, sparse matrix, dataframe} of shape (n_samples, n_features)
The input data.
- y
np.ndarray
Not used, present for API consistency by convention.
- Returns:
- y
ndarray
of shape (n_samples,) 1 for inliers, -1 for outliers.
- y
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequest
encapsulating routing information.
- get_params(deep=True)#
Get parameters for this estimator.
- property h_freq#
Higher frequency band for HFO definition.
- property hfo_annotations#
HFO Annotations.
- Returns:
- hfo_annotationsinstance of Annotations
mne.Annotations
object withonset
,duration
and specifiedch_name
for each HFO event detected.
- property hfo_event_arr#
HFO event array.
- Returns:
- hfo_event_arr
np.ndarray
Array that is (n_chs, n_samples), which has a value of
1
if there is an HFO in that sample.
- hfo_event_arr
- property l_freq#
Lower frequency band for HFO definition.
- predict(X)#
Scikit-learn override predict function.
Just directly computes HFOs using
fit
function.- Parameters:
- X
mne.io.Raw
| pd.DataFrame Input data.
- X
- Returns:
- score(X, y, sample_weight=None)#
Return the score of the HFO prediction.
- Parameters:
- X
np.ndarray
Channel data to detect HFOs on.
- yDataFrame
Event Dataframe of true labels.
- sample_weight
np.ndarray
Not used.
- X
- Returns:
- score
float
The score relative to true annotations we want.
- score
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters:
- **params
dict
Estimator parameters.
- **params
- Returns:
- selfestimator instance
Estimator instance.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RMSDetector #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config()
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.New in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.
- property step_size#
Step size of each window.
Window increment over the samples of signal.
- to_data_frame(format=None)#
Export HFO annotations in tabular structure as a pandas DataFrame.
- Parameters:
- Returns:
- result
pandas.DataFrame
Returns a pandas DataFrame with onset, duration, and description columns. A column named ch_names is added if any annotations are channel-specific.
- result
Examples using mne_hfo.RMSDetector
#
01. Detect HFOs in Simulated Dataset
02. Detect HFOs on BIDS Dataset