MOABB stable version
This new stable version of MOABB brings several new features (details below) and this is a new major version as the integration of BIDS compatibility was the opportunity to normalize dataset names, including a more regular naming scheme for sessions and runs. New addition includes support for new datasets, including cVEP ones.
API changes
Enhancements
-
Adding extra thank you section in the documentation (#390 by Bruno Aristimunha)
-
Adding new script to get the meta information of the datasets (#389 by Bruno Aristimunha)
-
Fixing the dataset description based on the meta information (#389 and 398 by Bruno Aristimunha and Sara Sedlar)
-
Adding second deployment of the documentation (#374 by Bruno Aristimunha)
-
Adding Parallel evaluation for moabb.evaluations.WithinSessionEvaluation() , moabb.evaluations.CrossSessionEvaluation() (#364 by Bruno Aristimunha)
-
Add example with VirtualReality BrainInvaders dataset (#393 by Gregoire Cattan and Pedro L. C. Rodrigues)
-
Adding saving option for the models (#401 by Bruno Aristimunha and Igor Carrara)
-
Adding example to load different type of models (#401 by Bruno Aristimunha and Igor Carrara)
-
Add resting state paradigm with dataset and example (#400 by Gregoire Cattan and Pedro L. C. Rodrigues)
-
Speeding the augmentation method by 400% with NumPy vectorization (#419 by Bruno Aristimunha)
-
Add possibility to convert datasets to BIDS, plus example (PR #408, PR #391 by Pierre Guetschel and Bruno Aristimunha)
-
Allow caching intermediate processing steps on disk, plus example (PR #408, issue #385 by Pierre Guetschel)
-
Restructure the paradigms and datasets to move all preprocessing steps to moabb.datasets.preprocessing and as sklearn pipelines (PR #408 by Pierre Guetschel)
-
Add moabb.paradigms.FixedIntervalWindowsProcessing() and moabb.paradigms.FilterBankFixedIntervalWindowsProcessing(), plus example (PR #408, issue #424 by Pierre Guetschel)
-
Define moabb.paradigms.base.BaseProcessing(), common parent to moabb.paradigms.base.BaseParadigm() and moabb.paradigms.BaseFixedIntervalWindowsProcessing() (PR #408 by Pierre Guetschel)
-
Allow passing a fixed processing pipeline to moabb.paradigms.base.BaseProcessing.get_data() and cache its result on disk (PR #408, issue #367 by Pierre Guetschel)
-
Update moabb.datasets.fake.FakeDataset()’s code to be unique for each parameter combination (PR #408 by Pierre Guetschel)
-
Systematically set the annotations when loading data, eventually using the stim channel (PR #408 by Pierre Guetschel)
-
Allow moabb.datasets.utils.dataset_search() to search across paradigms paradigm=None (PR #408 by Pierre Guetschel)
-
Improving the review processing with more pre-commit bots (#435 by Bruno Aristimunha)
-
Add methods make_processing_pipelines and make_labels_pipeline to moabb.paradigms.base.BaseProcessing (#447 by Pierre Guetschel)
-
Pipelines’ digests are now computed from the whole processing+classification pipeline (#447 by Pierre Guetschel)
-
Update all dataset codes to remove white spaces and underscores (#448 by Pierre Guetschel)
-
Add moabb.utils.depreciated_alias() decorator (#455 by Pierre Guetschel)
-
Rename many dataset class names to standardize and deprecate old names (#455 by Pierre Guetschel)
-
Change many dataset codes to match the class names (#455 by Pierre Guetschel)
-
Add moabb.datasets.compound_dataset.utils.compound_dataset_list (#455 by Pierre Guetschel)
-
Add c-VEP paradigm and Thielen2021 c-VEP dataset (#463 by Jordy Thielen)
-
Add option to plot scores vertically. (#417 by Sara Sedlar)
-
Change naming scheme for runs and sessions to align to BIDS standard (#471 by Pierre Guetschel)
-
Increase the python version to 3.11 (#470 by Bruno Aristimunha)
-
Add match_all method in paradigm to support CompoundDataset evaluation with MNE epochs (#473 by Gregoire Cattan)
-
Automate setting of event_id in compound dataset and add data_origin information to the data (#475 by Gregoire Cattan)
-
Add possibility of not saving the model (#489 by Igor Carrara)
Bugs
-
Restore 3 subject from Cho2017 (#392 by Igor Carrara and Sylvain Chevallier)
-
Correct downloading with VirtualReality BrainInvaders dataset (#393 by Gregoire Cattan)
-
Rename event subtraction in moabb.datasets.Shin2017B() (#397 by Pierre Guetschel)
-
Save parameters of moabb.datasets.PhysionetMI() (#403 by Pierre Guetschel)
-
Fixing issue with parallel evaluation (#401 by Bruno Aristimunha and Igor Carrara)
-
Fixing SSLError from BCI competition IV (#404 by Bruno Aristimunha)
-
Fixing moabb.datasets.bnci.MNEBNCI.data_path() that returned the data itself instead of paths (#412 by Pierre Guetschel)
-
Adding moabb.datasets.fake() in the init file to use in braindecode object (#414 by Bruno Aristimunha)
-
Fixing the parallel download issue when the dataset have the same directory (#421 by Sara Sedlar)
-
Fixing fixes the problem with the annotation loading for the P300 datasets Sosulski2019, Huebner2017 and Huebner2018 (#396 by Sara Sedlar)
-
Removing the print in the dataset list (#423 by Bruno Aristimunha)
-
Fixing bug in moabb.pipeline.utils_pytorch.BraindecodeDatasetLoader() where incorrect y was used in transform calls (#426 by Gabriel Schwartz)
-
Fixing one test in moabb.pipeline.utils_pytorch.BraindecodeDatasetLoader() (#426 by Bruno Aristimunha)
-
Fix moabb.benchmark() overwriting include_datasets list (#408 by Pierre Guetschel)
-
Fix moabb.paradigms.base.BaseParadigm() using attributes before defining them (PR #408, issue #425 by Pierre Guetschel)
-
Fix moabb.paradigms.FakeImageryParadigm(), moabb.paradigms.FakeP300Paradigm() and moabb.paradigms.FakeSSVEPParadigm() is_valid methods to only accept the correct datasets (PR #408 by Pierre Guetschel)
-
Fix dataset_list construction, which could be empty due to bad import order (PR #449 by Thomas Moreau).
-
Fixing dataset downloader from servers with non-http (PR #433 by Sara Sedlar)
-
Fix dataset_list to include deprecated datasets (PR #464 by Bruno Aristimunha)
-
Fixed bug in moabb.analysis.results.get_string_rep() to handle addresses such as 0x__0A as well (PR #468 by
Anton Andreev
_) -
Moving the moabb.evualation.grid_search() to inside the base evaluation (#487 by Bruno Aristimunha)
-
Removing joblib Parallel (#488 by Igor Carrara)
-
Fix case when events specified via raw.annotations but no events (#491 by Pierre Guetschel)
-
Fix bug in downloading Shin2017A dataset (#493 by Igor Carrara)
-
Fix the cropped option in the dataset preprocessing (#502 by Bruno Aristimunha)