Closed balandongiv closed 3 years ago
Hi @balandongiv,
Currently, YASA does not have the capability to work with MNE Epochs. This would require quite a complete refactoring of the function, and I suspect it would also greatly increase computation time. Essentially, we would have to add another nested for loop here in order to loop across all the epochs.
I'm also not sure how we could align the epochs with the hypnogram (which is defined on continuous data). My recommendation would therefore be to keep using the continuous data and create your custom "epoch" mask directly with the hypno
and include
parameters. For example, hypno
could be a vector of integer where each integer refers to an epoch, e.g. hypno=[0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 2, 2, 2, 2, 2, 3, 3, 3, 3, ... 17, 17, 17]
and then you could use yasa.spindles_detect(raw, hypno, include=[1, 2, 3, ... 17])
.
Thanks, Raphael
Hi @raphaelvallat,
Sorry for not being that clear about my question. The case I have in mind is for continuous non-sleep EEG signal that has been epochs.
One way around that I can think of is by implement something like demonstrated in tutorial .
epochs = mne.read_epochs('some-epo.fif', preload=True, verbose=False)
sp=[yasa.spindles_detect ( epoch.get_data () [0, :, :], epochs.info['sfreq'], ch_names=epochs.ch_names, multi_only=False ) for epoch in epochs]
I see! In that case, I think that your solution is probably the best option. Otherwise, adding support for MNE epochs directly in the function would require extensive refactoring, most probably for no or little speed gain compared to your solution.
Great work from the author.
I understand
spindles_detect
welcome mneraw
data. In this case, I assume theraw
is a continuous signal.However, I wonder whether the
YASA
have the built-capability to process mneepochs
data?