What’s new#
“Enhancements” for new features
“Bugs” for bug fixes
“API changes” for backward-incompatible changes
Develop branch#
Enhancements#
Update version of pyRiemann to 0.7 (#671 by Gregoire Cattan)
Add columns definitions in the datasets doc (#672 by Pierre Guetschel)
Bugs#
Fix Stieger2021 dataset bugs (#651 by Martin Wimpff)
Unpinning major version Scikit-learn and numpy (#652 by Bruno Aristimunha)
Replacing the func:numpy.string_ to func:numpy.bytes_ (#665 by Bruno Aristimunha)
Fixing the set_download_dir that was not working when we tried to set the dir more than 10 times at the same time (#668 by Bruno Aristimunha)
Creating stimulus channels in
moabb.datasets.Zhou2016
andmoabb.datasets.PhysionetMI
to allow braindecode compatibility (#669 by Bruno Aristimunha)
API changes#
Version - 1.1.1 (Stable - PyPi)#
Enhancements#
Add possibility to use OptunaGridSearch (#630 by Igor Carrara)
Add scripts to upload results on PapersWithCode (#561 by Pierre Guetschel)
Centralize dataset summary tables in CSV files (#635 by Pierre Guetschel)
Add new dataset
moabb.datasets.Liu2024
dataset (#619 by Taha Habib)
Bugs#
Fix caching in the workflows (#632 by Pierre Guetschel)
API changes#
Include optuna as soft-dependency in the benchmark function and in the base of evaluation (#630 by Igor Carrara)
Version - 1.1.0#
Enhancements#
Add cache option to the evaluation (#518 by Bruno Aristimunha)
Option to interpolate channel in paradigms’ match_all method (#480 by Gregoire Cattan)
Add leave k-Subjects out evaluations (#470 by Bruno Aristimunha)
Update Braindecode dependency to 0.8 (#542 by Pierre Guetschel)
Improve transform function of AugmentedDataset (#541 by Quentin Barthelemy)
Add new paper results website (#556 by Bruno Aristimunha)
Move cVEP common functions to
moabb.datasets.utils
(#564 #557 by Pierre Guetschel)Normalize c-VEP description tables (#562 #566 by Pierre Guetschel and Bruno Aristimunha)
Update citation in README (#573 by Igor Carrara)
Update pyRiemann dependency (#577 by Gregoire Cattan)
Add resting stage Hinss2021 dataset (#580 by Gregoire Cattan and Yash Chauhan)
Expose the learning rate parameter in the keras deep learning methods and optimize parameters (#589 and #592 by Bruno Aristimunha)
Updating the braindecode pipelines for the new braindecode version 0.8.1 (#589 by Bruno Aristimunha)
Add SSVEP and ERP paradigms to DL pipelines (#590 by Pierre Guetschel)
Allow to pass a single pipeline file to
benchmark
(#591 by Pierre Guetschel)Add new dataset
moabb.datasets.Stieger2021
(#604 by Reinmar Kobler and Bruno Aristimunha)Exposing the drop_rate for all the deep learning parameters (#592 by Bruno Aristimunha)
Add new dataset
moabb.datasets.Rodrigues2017
dataset (#602 by Gregoire Cattan and Pedro L. C. Rodrigues)Change unittest to pytest (#618 by Bruno Aristimunha)
Remove tensorflow import warning (#622 by Bruno Aristimunha)
Bugs#
Fix TRCA implementation for different stimulation freqs and for signal filtering (:gh:522 by Sylvain Chevallier)
Fix saving to BIDS runs with a description string in their name (#530 by Pierre Guetschel)
Fix import of keras BatchNormalization for TF 2.13 and higher (#544 by Brian Irvine)
Fix the doc summary tables of
moabb.datasets.Lee2019_SSVEP
(#548 #547 #546 by Pierre Guetschel)Fix the doc summary for Castillos2023 dataset (#561 by Bruno Aristimunha)
Fix format string receiving incorrect number of args in bids interface (#563 by Pierre Guetschel)
Fix number of sessions in doc of
moabb.datasets.Sosulski2019
(#565 by Pierre Guetschel)Fix code column of
moabb.datasets.CastillosCVEP100
andmoabb.datasets.CastillosCVEP100
(#567 by Pierre Guetschel)MAINT updating the packages pre-release (#578 by Bruno Aristimunha)
Fix mne_bids version incompatibility with mne (#586 by Bruna Lopes)
Updating the parameters of the SSVEP_TRCA method (#589 by Bruno Aristimunha)
Fix and updating the parameters for the benchmark function (#588 by Bruno Aristimunha)
Fix result table display (#599 by Sylvain Chevallier)
Fix
moabb.datasets.preprocessing.SetRawAnnotations
setting incorrect annotations when the dataset’s interval does not start at 0 (#607 by Pierre Guetschel)Fix download link for GigaDB Cho2017 and Lee2019 datasets (#621 by Anton Andreev)
API changes#
None
Version - 1.0.0#
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()
andmoabb.paradigms.FilterBankFixedIntervalWindowsProcessing()
, plus example (PR #408, issue #424 by Pierre Guetschel)Define
moabb.paradigms.base.BaseProcessing()
, common parent tomoabb.paradigms.base.BaseParadigm()
andmoabb.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 paradigmsparadigm=None
(PR #408 by Pierre Guetschel)Improving the review processing with more pre-commit bots (#435 by Bruno Aristimunha)
Add methods
make_processing_pipelines
andmake_labels_pipeline
tomoabb.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)
Add CVEP and BurstVEP dataset from Castillos from Toulouse lab (#531 by Sebastien Velut)
Add c-VEP dataset from Thielen et al. 2015 (#557 by Jordy Thielen)
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()
overwritinginclude_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()
andmoabb.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)
Fix bug in
moabb.datasets.utils.dataset_search()
with missing cvep paradigm (#557 by Jordy Thielen)Fix mistakes in
moabb.datasets.thielen2021()
considering wrong docs and hardcoded trial stim channel (#557 by Jordy Thielen)
API changes#
None
Version - 0.5.0#
Enhancements#
Speeding the augmentation model (#365 by Bruno Aristimunha)
Add VirtualReality BrainInvaders dataset (#358 by Gregoire Cattan)
Switch to python-3.8, update dependencies, fix code link in doc, add code coverage (#315 by Sylvain Chevallier)
Adding a comprehensive benchmarking function (#264 by Divyesh Narayanan and Sylvain Chevallier)
Add meta-information for datasets in documentation (#317 by Bruno Aristimunha)
Add GridSearchCV for different evaluation procedure (#319 by Igor Carrara)
Add new tutorial to benchmark with GridSearchCV (#323 by Igor Carrara)
Add six deep learning models (Tensorflow), and build a tutorial to show to use the deep learning model (#326 by Igor Carrara, Bruno Aristimunha and Sylvain Chevallier)
Add a augmentation model to the pipeline (#326 by Igor Carrara)
Add BrainDecode example (#340 by Igor Carrara and Bruno Aristimunha)
Add Google Analytics to the documentation (#335 by Bruno Aristimunha)
Add support to Braindecode classifier (#328 by Bruno Aristimunha)
Add CodeCarbon to track emission CO₂ (#350 by Igor Carrara, Bruno Aristimunha and Sylvain Chevallier)
Add CodeCarbon example (#356 by Igor Carrara and Bruno Aristimunha)
Add MsetCCA method for SSVEP classification, parametrise CCA n_components in CCA based methods (#359 by Emmanuel Kalunga and Sylvain Chevallier)
Set epochs’ metadata field in get_data (#371 by Pierre Guetschel)
Add possibility to use transformers to apply fixed pre-processings before evaluations (#372 by Pierre Guetschel)
Add seed parameter to FakeDataset (#372 by Pierre Guetschel)
Bugs#
Fix circular import with braindecode (#363 by Bruno Aristimunha)
Fix bug for MotorImagery when we handle all events (#327 by Igor Carrara)
Fixing CI to handle with new deep learning dependencies (#332 and #326 by Igor Carrara, Bruno Aristimunha and Sylvain Chevallier)
Correct CI error due to isort (#330 by Bruno Aristimunha)
Restricting Python <= 3.11 version and adding tensorflow, keras, scikeras, braindecode, skorch and torch, as optional dependence (#329 by Bruno Aristimunha)
Fix numpy variable to handle with the new version of python (#324 by Bruno Aristimunha)
Correct CI error due to black (#292 by Sylvain Chevallier)
Preload Schirrmeister2017 raw files (#290 by Pierre Guetschel)
Incorrect event assignation for Lee2019 in MNE >= 1.0.0 (#298 by Sylvain Chevallier)
Correct usage of name simplification function in analyze (#306 by Divyesh Narayanan)
Fix downloading path issue for Weibo2014 and Zhou2016, numy error in DemonsP300 (#315 by Sylvain Chevallier)
Fix unzip error for Huebner2017 and Huebner2018 (#318 by Sylvain Chevallier)
Fix n_classes when events set to None (#337 by Igor Carrara and Sylvain Chevallier)
Change n_jobs=-1 to self.n_jobs in GridSearch (#344 by Igor Carrara)
Fix dropped epochs issue (#371 by Pierre Guetschel)
Fix redundancy website issue (#372 by Bruno Aristimunha)
API changes#
None
Version - 0.4.6#
Enhancements#
Add P300 BrainInvaders datasets (#283 by Sylvain Chevallier)
Add explicit warning when lambda function are used to parametrize pipelines (#278 by Jan Sosulski)
Bugs#
Correct default path for ERP visualization (#279 by Jan Sosulski)
Correct documentation (#282 and #284 by Jan Sosulski)
Version - 0.4.5#
Enhancements#
Progress bars, pooch, tqdm (#258 by Divyesh Narayanan and Sylvain Chevallier)
Adding test and example for set_download_dir (#249 by Divyesh Narayanan)
Update to newer version of Schirrmeister2017 dataset (#265 by Robin Schirrmeister)
Adding Huebner2017 and Huebner2018 P300 datasets (#260 by Jan Sosulski)
Adding Sosulski2019 auditory P300 datasets (#266 by Jan Sosulski)
New script to visualize ERP on all datasets, as a sanity check (#261 by Jan Sosulski)
Bugs#
Removing dependency on mne method for PhysionetMI data downloading, renaming runs (#257 by Divyesh Narayanan)
Correcting events management in Schirrmeister2017, renaming session and run (#255 by Pierre Guetschel and Sylvain Chevallier)
Switch session and runs in MAMEM1, 2 and 3 to avoid error in WithinSessionEvaluation (#256 by Sylvain Chevallier)
Correct doctstrings for the documentation, including Lee2017 (#256 by Sylvain Chevallier)
Version - 0.4.4#
Enhancements#
Add TRCA algorithm for SSVEP (#238 by Ludovic Darmet)
Bugs#
Remove unused argument from dataset_search (#243 by Divyesh Narayanan)
Remove MNE call to _fetch_dataset and use MOABB _fetch_file (#235 by Jan Sosulski)
Correct doc formatting (#232 by Sylvain Chevallier)
API changes#
Minimum supported Python version is now 3.7
MOABB now depends on scikit-learn >= 1.0
Version - 0.4.3#
Enhancements#
Rewrite Lee2019 to add P300 and SSVEP datasets (#217 by Pierre Guetschel)
Bugs#
Avoid information leakage for MNE Epochs pipelines in evaluation (#222 by Sylvain Chevallier)
Correct error in set_download_dir (#225 by Sylvain Chevallier)
Ensure that channel order is consistent across dataset when channel argument is specified in paradigm (#229 by Sylvain Chevallier)
API changes#
ch_names argument added to init of moabb.datasets.fake.FakeDataset (#229 by Sylvain Chevallier)
Version - 0.4.2#
Enhancements#
None
Bugs#
Correct error when downloading Weibo dataset (#212 by Sylvain Chevallier)
API changes#
None
Version - 0.4.1#
Enhancements#
None
Bugs#
Correct path error for first time launch (#204 by Sylvain Chevallier)
Fix optional dependencies issues for PyPi (#205 by Sylvain Chevallier)
API changes#
Remove update_path on all datasets, update_path parameter in dataset.data_path() is deprecated (#207 by Sylvain Chevallier)
Version - 0.4.0#
Enhancements#
Implementation for learning curves (#155 by Jan Sosulski)
Adding Neiry Demons P300 dataset (#156 by Vladislav Goncharenko)
Coloredlogs removal (#163 by Vladislav Goncharenko)
Update for README (#164 by Vladislav Goncharenko and Sylvain Chevallier)
Test all relevant python versions in Github Actions CI (#167 by Vladislav Goncharenko)
Adding motor imagery part of the Lee2019 dataset (#170 by Ali Abdul Hussain)
CI: deploy docs from CI pipeline (#124 by Erik Bjäreholt, Divyesh Narayanan and Sylvain Chevallier)
Remove dependencies: WFDB and pyunpack (#180 and #188 by Sylvain Chevallier)
Add support for FigShare API (#188 by Sylvain Chevallier)
New download backend function relying on Pooch, handling FTP, HTTP and HTTPS (#188 by Sylvain Chevallier)
Complete rework of examples and tutorial (#188 by Sylvain Chevallier)
Change default storage location for results: instead of moabb source code directory it is now stored in mne_data (#188 by Sylvain Chevallier)
Major update of test (#188 by Sylvain Chevallier)
Adding troubleshooting and badges in README (#189 by Jan Sosulski and Sylvain Chevallier)
Use MNE epoch in evaluation (#192 by Sylvain Chevallier)
Allow changing of storage location (#192 by Divyesh Narayanan and Sylvain Chevallier)
Deploy docs on moabb.github.io (#196 by Sylvain Chevallier)
Broadening subject_list type for
moabb.datasets.BaseDataset()
(#198 by Sylvain Chevallier)Adding this what’s new (#200 by Sylvain Chevallier)
Improving cache usage and save computation time in CI (#200 by Sylvain Chevallier)
Rewrite Lee2019 to add P300 and SSVEP datasets (#217 by Pierre Guetschel)
Bugs#
Restore basic logging (#177 by Jan Sosulski)
Correct wrong type of results dataframe columns (#188 by Sylvain Chevallier)
Add
accept
arg to acknowledge licence formoabb.datasets.Shin2017A()
andmoabb.datasets.Shin2017B()
(#201 by Sylvain Chevallier)
API changes#
Drop update_path from moabb.download.data_path and moabb.download.data_dl
Version 0.3.0#
Enhancements#
Expose sklearn error_score parameter (#70 by Jan Sosulski)
Adds a
unit_factor
attribute to base_paradigms (#72 by Jan Sosulski)Allow event lists in P300 paradigm (#83 by Jan Sosulski)
Return epochs instead of np.ndarray in process_raw (#86 by Jan Sosulski)
Set path for hdf5 files (#92 by Jan Sosulski)
Update to MNE 0.21 (#101 by Ramiro Gatti and Sylvain Chevallier)
Adding a baseline correction (#115 by Ramiro Gatti)
Adding SSVEP datasets: MAMEM1, MAMEM2, MAMEM3, Nakanishi2015, Wang2016, (#118 by Sylvain Chevallier, Quentin Barthelemy, and Divyesh Narayanan)
Switch to GitHub Actions (#124 by Erik Bjäreholt)
Allow recording of additional scores/parameters/metrics in evaluation (#127 and #128 by Jan Sosulski)
Fix Ofner2017 and PhysionetMI annotations (#135 by Ali Abdul Hussain)
Adding Graz workshop tutorials (#130 and #137 by Sylvain Chevallier and Lucas Custódio)
Adding pre-commit configuration using isort, black and flake8 (#140 by Vladislav Goncharenko)
style: format Python code with black (#147 by Erik Bjäreholt)
Switching to Poetry dependency management (#150 by Vladislav Goncharenko)
Using Prettier to format md and yml files (#151 by Vladislav Goncharenko)
Bugs#
Use stim_channels or check annotation when loading files in Paradigm (#72 by Jan Sosulski)
Correct MNE issues (#76 by Sylvain Chevallier)
Fix capitalization in channel names of cho dataset (#90 by Jan Sosulski)
Correct failing CI tests (#100 by Sylvain Chevallier)
Fix EPFL dataset flat signal sections and wrong scaling (#104 and #96 by Jan Sosulski)
Fix schirrmeister dataset for Python3.8 (#105 by Robin Schirrmeister)
Correct event detection problem and duplicate event error (#106 by Sylvain Chevallier)
Fix channel selection in paradigm (#108 by Sylvain Chevallier)
Fix upperlimb Ofner2017 error and gdf import problem (#111 and #110 by Sylvain Chevallier)
Fix event_id in events_from_annotations missed (#112 by Ramiro Gatti)
Fix h5py>=3.0 compatibility issue (#138 by Mohammad Mostafa Farzan)
Python 2 support removal (#148 by Vladislav Goncharenko)
Travis-ci config removal (#149 by Vladislav Goncharenko)
API changes#
None
Version 0.2.1#
Enhancements#
Add Tikhonov regularized CSP in
moabb.pipelines.csp
from the paper (#60 by Vinay Jayaram)update to MNE version 0.19 (#73 by Jan Sosulski)
Improve doc building in CI (#60 by Sylvain Chevallier)
Bugs#
Update GigaDB Cho2017 URL (Pedro L. C. Rodrigues and Vinay Jayaram)
Fix braininvaders ERP data (Pedro L. C. Rodrigues)
Replace MNE
read_montage
withmake_standard_montage
(Jan Sosulski)Correct Flake and PEP8 error (Sylvain Chevallier)
API changes#
None
Version 0.2.0#
Enhancements#
MOABB corresponding to the paper version by Vinay Jayaram and Alexandre Barachant
Creating P300 paradigm and BNCI datasets (#53 by Pedro L. C. Rodrigues)
Adding EPFL P300 dataset (#56 by Pedro L. C. Rodrigues)
Adding BrainInvaders P300 dataset (#57 by Pedro L. C. Rodrigues)
Creating SSVEP paradigm and SSVEPExo dataset (#59 by Sylvain Chevallier)
Bugs#
None
API changes#
None