Fig 1.
A typical BCI system depicting the flow and processing of EEG data.
Fig 2.
Overview of functionality supported by PyNoetic and its various modules, including the live analysis and programmable flowchart.
List of Abbreviations
Fig 3.
Code snippets to add user-specific custom functionality in PyNoetic.
It illustrates the simplicity due to its modular approach, choice of programming language, and other advantages discussed.
Fig 4.
PyNoetic’s stimuli generation and recording module, which supports both ERP and SSVEP.
Table 1.
Tunable parameters in stimuli generation module. aThe fixation cross is displayed once before an experiment starts to help subjects concentrate. bDifferent stimuli are displayed equally. If desired by the user, some stimuli can be displayed more/less frequently by assigning them a higher/lower weight.
Fig 5.
PyNoetic’s channel selection module, which supports various channel selection criteria including CSP, correlation, Mutual Information, and Chi-squared.
Fig 6.
PyNoetic’s pre-processing module, which supports filtering and artifact removal, including ICA.
Fig 7.
PyNoetic’s feature extraction module that supports time domain features, frequency domain features, time-frequency domain features, spatial features as well as Brain Connectivity measures.
Fig 8.
PyNoetic’s classification module supports a range of popular and widely used ML classification models with just a single line of function call.
Fig 9.
Illustration of PyNoetic’s 2D and 3D simulation module with visual feedback.
Fig 10.
PyNoetic’s online mode in action. Data is streamed from an Emotiv EPOC headset.
The top plot shows the raw data, and the bottom plot shows the filtered EEG data in real time. This is in conjunction with the flowchart shown in Fig 11, where the raw EEG data goes to plot one and the filtered data goes to plot two.
Fig 11.
PyNoetic’s unique pick-place configurable flowchart that offers a no-code option for non-programmers.
Fig 12.
Illustration of recording paradigm with PyNoetic’s Stimuli generation and recording module.
(a) Picture of an SSVEP recording session. (b) Real-time Channel Selection and preprocessing in online mode.
Fig 13.
The results of ICA performed using PyNoetic.
Table 2.
Performance of various deep learning models from PyNoetic’s classification module on the Motor Imagery decoding task.
Table 3.
Comparison of PyNoetic’s functionality for BCI design with other existing state-of-the-art frameworks.
Fig 14.
Pseudo live-stream of EEG data is generated, and a simple pick-and-place flowchart is designed for channel selection and filtering.
The top plot displays the raw EEG signal, while the bottom plot shows the filtered EEG signal, with each instance representing data from a single epoch.
Fig 15.
Pseudo live-stream of EEG data is processed through the flow chart: after channel selection, each epoch undergoes Kaiser windowing (length = 250), followed by re-referencing to the common average.
The ICA block employs MNE-ICA to detect and remove artifacts from the EEG data, reconstructing the signal with the remaining components. The right EEG signal plots display the same before and after the process.
Fig 16.
Modular architecture design of PyNoetic showing all its constituent functions.