Skip to main content
x

Python-based electroencephalography (EEG) and deep learning workflow system

Contact

Ronak Doshi 
Lukas Vareka
Roman Mouček

Deliverables

The Workflow Designer is a prototype web-based application allowing drag-and-drop creating, editing, and running workflows from a predefined library of methods. Moreover, any workflow can be exported or imported in JSON format to ensure reusability and local execution of exported JSON configurations. The application is primarily focused on electroencephalographic signal processing and deep learning workflows.

About
The Workflow Designer is a prototype web-based application allowing drag-and-drop creating, editing, and running workflows from a predefined library of methods. Moreover, any workflow can be exported or imported in JSON format to ensure reusability and local execution of exported JSON configurations. The application is primarily focused on electroencephalographic signal processing and deep learning workflows.

Currently, the entire Workflow Designer system (server, workflow system and methods) is based on Java. The aim of this project is to transfer backend technologies from Java to Python and allow executing workflow blocks (methods) implemented in Python, using e.g. MNE for EEG signal processing, or TensorFlow for deep learning. Just like in the current version, each block has inputs, outputs (can be streams, arrays, files, etc.) and parameters that can be configured using a GUI.  After the system is transformed, develop a few deep learning workflow-related blocks to demonstrate the functionality of the system.

The objectives I wish to achieve for EEG and DL workflow are:

  1. Rewrite all the models/algorithms in python. I.e. re-writing:

    1.  Neural network models and classifiers in python using Keras (TensorFlow). 

    2. Preprocessing, Low/High pass filter, epoch extraction, averaging filter, etc.

    3. Feature extraction algorithms (wavelet transform)

    4. Data visualization algorithms

  2. Rewriting the server in python(Flask):

    1. User login/logout/sign-in/sign-up

    2. Blocks and their functional APIs

    3. Drag and drop UI 

  3. New feature development and bug fixing

    1. Extra deep learning models

    2. GPU integration

    3. Proper documentation