mne-features scope, goal and community use.

TL;DR: I wanted to ask what is the scope and goal intended for mne-features package. And whether there are plans for adding more to the package / refactor or improving the structure? The story of why I am asking this is detailed below.

Recently, I was playing with feature extraction packages from M/EEG data for EEG/MEG data for a package I am building (coco-pipe, a package for end to end pipelines for all types of analysis involving electrophysiological data; no preprocessing involved). For the feature extraction part I used Antropy and neurokit2 as engines. The reason is that these ones are the ones mostly used in our lab. I also use specparam for 1/f related features (previously known as fooof) and mne for spectral features. The idea is for me is to have coco_pipe.descriptors as orchestrator that takes a list of features with their configs and generate them then aggregate over (channels, sensors, subjects, groups of channels…) and not to reimplement the feature extraction itself. The aim of coco-pipe in general is for generals is to come up with their cleaned data, specify the type of analysis they want to run through CLI / YAML files and get reports. The target is for minimum code written specially for neuroscientists / clinicians and/or for exploring quickly a range of potential analysis through ready to run pipelines before starting to fine-tune the analysis for a given project.

Why scrolling mne-tools GitHub repo, I came across mne-features, which I never heard off, or used.. maybe I cam across it by chance but never looked into it.. Even at out lab almost no one knew about it, and a lot of the work we do is based on extracting features from brain data, which is sad as it offers a solid foundation for feature extraction, it is already in mne ecosystem, and antropy for example used code adapted from here to start. Compared to neurokit2, mne-features has way less dependencies and is more target toward MEG/EEG. I think this lack of use is maybe due to the old website + no paper introducing the package other than the original epilepsy paper, maybe other factors also (ie, adding more features that are often used in M/EEG studies; enhancing the structure and uses of the package, maybe refactoring into families of features; adding support for corrected PSDs; clearer feature-level provenance and convention documentation …; adding the option for users to define their own feature extraction function like suggested in one of the issues; reduce the number of dependencies for exp pandas could become optional .. )

Where I am getting into ? First, with some changes men-features could serve as the sole / best engine for my package.. but also from a community/mne perspective this could be a win. A modern comprehensive package that works with the mne-ecosystem, it won’t replace other packages like specparam (could be added here as an optional dependency) and neurokit2 (has a broader use that the intention of this package) but it will offer the option for those who want to use it. In addition to the changes in package, a newer website and a paper could make people aware of it. This part is also linked to a discussion I had with @larsoner a couple of weeks ago on making mne more accessible to the community and could be useful with the lunch of mne plugins. That’s why I wanted to know if there are any future plans for mne_features.

I actually didn’t know offhand so looked at

Activity has been very limited lately (like in the last few years).

I’d suggest opening an issue there to see if any existing maintainers plan on adding anything or working on it in the future. I don’t see a problem with you potentially adding new stuff to the package. I could at least do minimal reviews for maintainability / distribution-related stuff..

I already have some ideas, I just wanted to see the scope / future plans before brainstorming and starting do add things and also the scope of it to know what I can add and what not.

Should I just copy paste the message above as an issue?

@Hamzeh sure that’s a good starting point!