Electroencephalography Data Processor
F
ramework for Running Signal Processing Methods
Petr Jeˇzek
1
and Roman Mouˇcek
2
1
New Technologies for the Information Society, University of West Bohemia, Univerzitni 8, 306 14, Pilsen, Czech Republic
2
Department of Computer Science and Engineering, University of West Bohemia,
Univerzitni 8, 306 14, Pilsen, Czech Republic
K
eywords:
EEG/ERP, Signal Processing, Data Processing, Plug-in, Wavelet Transform, Matching Pursuit, Fast Indepen-
dent Component Analysis, Finite Input Response, Fast Fourier Transform, Workflow, Software as Service.
Abstract:
This paper introduces difficulties related to running of signal processing methods. Although several systems
that implement signal processing methods exist, their sharing and remote calling is not satisfactorily solved.
Authors present a custom server-side approach that provides a powerful plug-in engine for integration of signal
processing methods. The plug-in engine ensures high modularity and flexibility of the system. Since the
implemented methods are accessible via the SOAP Web Service, integration with another system is available.
There is also possible to use the system locally via a web browser. The set of basic methods is already
implemented and presented. The architecture and the most important parts of the system are also presented.
1 INTRODUCTION
In our research group we specialize on research of
brain activity. During our experiments we largely use
the methods of Electroencephalography (EEG) with
its subset Event-Related Potentials (ERP). Experi-
ments are performed in a neurophysiological labora-
tory including recording devices, a car simulator or a
soundproof booth. When experiments are performed
experimental data/metadata are collected for future
processing. Since neuroscience community is facing
problemswith the long-term storage of data/metadata,
raw data analysis, data/metadata sharing or design of
experimental protocols International Neuroinformat-
ics Coordinating Facility (INCF)
1
released recom-
mendations (Van Pelt and van Horn, 2007) for han-
dling of the neurophysiological data.
The Czech INCF National Node cooperates on the
definition of a standardized data/metadata format for
electrophysiology research. As an initial step we de-
veloped a custom solution called the EEG/ERP Portal
(Jezek and Moucek, 2010).
Data are stored within the EEG/ERP Portal and
they are accessible through a web browser. In ad-
dition, we provide data in the Semantic Web form
available for automatic readers. The Semantic Frame-
work (Jezek and Moucek, 2012) that we developed
1
h
ttp://www.incf.org/
transforms data from the EEG/ERP Portal into the Se-
mantic Web languages. The EEG/ERP Portal is reg-
istered within the Neuroscience Information Frame-
work (NIF) (Gardner et al., 2008); it ensures easier
searchability of stored experiments. The EEG/ERP
Portal is also integrated with other developed systems
(e. g. JERPA (Jezek and Moucek, 2011)) via Web
Service API.
Because data from stored experiments are usu-
ally further processed using various signal processing
methods, we are presenting the EEG Data Processor
that enables running of signal processing methods re-
motely.
2 STATE OF THE ART
When data are collected they are supposed to be fur-
ther processed. When third-party signal processing
methods are to be used, data need to be downloaded
and processed locally. The obtained results are not
stored as well.
When we were looking for a suitable tool, we
found that the set of available frameworks limited.
The following existing tools are able to process
EEG/ERP experimental data.
The Carmen Portal (Watson et al., 2007) provides
a set of implemented analytical tools. A user can up-
357
Ježek P. and Mou
ˇ
cek R..
Electroencephalography Data Processor - Framework for Running Signal Processing Methods.
DOI: 10.5220/0004246303570361
In Proceedings of the International Conference on Health Informatics (HEALTHINF-2013), pages 357-361
ISBN: 978-989-8565-37-2
Copyright
c
2013 SCITEPRESS (Science and Technology Publications, Lda.)
load custom data into a local storage. Data can be ana-
lyzed and the results are putted into a virtual directory
assigned to users’ profiles. When the user wants to
add a custom analytical tool he/she can upload it into
the system. When this method is approvedby Carmen
administrators they integrate it into the system.
Carmen is only one well-known system that en-
ables calling analytical methods remotely together
with the possibility to store experimental results.
The next approaches work locally without any
possibilities to save or share experimental results.
Modular Toolkit for Data Processing (MDP) (Zito
et al., 2008) is a data processing framework writ-
ten in Python. MDP is a modular framework that
Python programmers can extend by additional mod-
ules. Common users can call implemented modules
locally.
BioSig (Schlogl and Brunner, 2008) is a free
open source software library of biomedical signal-
processing tools implemented as a library for Matlab,
Octave and C/C++. The last version of the tool called
biosic4c++ can be also used in the Python. This sys-
tem contains additional submodules e.g. for real-time
data processing or a signal viewer.
Since data processing often requires usage of
more methods sequentially, development of specific
workflows is required.
Taverna (Hull et al., 2006) is an open source and
domain-independent Workflow Management System
developed by
my
Grid
2
team. It is a suite of tools used
to design and execute scientific workflows and aid in
silico experimentation.
E-Science Central (Watson et al., 2010) combines
three emerging technologies Software as a Service,
Social Networking and Cloud Computing.
The Carmen developers are also developing CAR-
MEN Workflow Tool. It is a Java-based approach de-
signed to support both data and control flow. It allows
parallel execution of services using a Service Invoca-
tion API.
3 EEG DATA PROCESSOR
3.1 Existing Approaches Difficulties
Although described solutions work quite satisfacto-
rily, several difficulties stay. The most of tested tools
work as stand-alone systems that a user has to in-
stall on a custom computer and execute manually.
The tools are implemented using various program-
ming languages where each requires a specific run-
2
http://www.mygrid.org.uk/
time environment. It could be an obstacle for many
users because it requires a certain level of user knowl-
edge. The last disadvantages are inability to inte-
grate such systems with users solutions and control-
ling them from a custom client program.
3.2 System Scope
Because of difficulties mentioned in Subsection 3.1
we have decided to implement a custom system that
enables running of signal processing methods on data
stored within the EEG/EEP Portal. The system is pre-
pared to be integrated with the systems of other users
or to be used independently.
The implemented methods are plug-ins based on
the Java platform. The libraries and the whole system
are provided as an open source. It ensures a higher
availability for potential users and faster development
of new plug-ins. Basically, the system is a lightweight
wrapper for implemented plug-ins with a double type
user interface: The first is a standardized Web Service
API, the second one is an interactive web interface.
The focus of the EEG Data Processor is to be a
software as a service (SaaS) delivery model. It offers
reuse of software applications, ability to compare pro-
cessing algorithms and access to considerable com-
puting resource for high intensity computing tasks.
4 DESIGN AND REALIZATION
4.1 Overall Architecture
The system is a layered architecture. This architec-
tural style is supported by used programming lan-
guages and technologies (Java, Maven, Spring, Hi-
bernate, Apache CXF web services etc.)
The internal structure consists of several compo-
nents. Figure 1 shows the main components of the
system together with EEG base (Jezek and Moucek,
2010) integration:
EEG Binary Loading - it loads data from binary
files obtained from an analogue-digital converter.
We currently support data obtained from the Brain
Vision Recorder but the system is fully prepared
for adding support of a new data format.
Processing Resource Pool - Since performance
capacity of the hosted server is limited, we have
implemented a pool of available resources. The
system can be configured to manage a number
of requests simultaneously. When this limit is
reached, other requirements are queued and grad-
ually processed.
HEALTHINF2013-InternationalConferenceonHealthInformatics
358
Figure 1: Component Model.
EEG Processing Algorithms - This module man-
ages a running of installed plug-ins. It has access
to the list of installed plug-ins and calls a method
invoker.
External Method Invoker - Is responsible for exe-
cution of a requested method. It parses the method
parameters and takes the method result.
4.2 User Interaction
4.2.1 Web Service Connector
Since the EEG Data Processor is supposed to be ac-
cessed by external clients’ systems, the Web Service
API best matches this requirement. The system pro-
vides a simple interface with several basic methods.
The client can obtain a list of installed methods, lists
of required parameters for the specific method, get
available processing units and call the method that
processes input data. Such interface provides a suf-
ficient list of operations in order to be integrated with
any client system. A usage of SOAP web services
ensures easy integration by a well-defined protocol.
4.2.2 Web Interface
Communication with a client system is ensured us-
ing Web Service Connector. If the user has only data
but not a custom system connected to the Internet,
a simple web based interface is prepared. Figure 2
shows the interface overview. The user can list in-
stalled signal processing methods and available pro-
cessing units. When he/she wants to upload custom
data, a simple upload form is prepared. The uploaded
data are stored within the user’s profile and processed
on the background. When the result is available, a
link to download appears.
4.3 Customization Part
4.3.1 Plug-in Engine
A Plug-in engine is a central unit of the system. It
contain an implementation of a Processor. The Pro-
cessor is an abstraction of implemented EEG Binary
Loading libraries that are intended to read input digi-
talized signal stored using various data formats. The
Processor creates individual Processes. The Process
is an encapsulation of a specific method together with
the specific parameters needed to start the method.
4.3.2 Plug-in Requirements
When a new method is developing it has to satisfy
several conditions in order to be integrated into the
system. First it must contain one input method with
specified input parameters of the method and a XML
description of the output. Because of output of indi-
vidual methods can be different (e.g waveforms, dis-
crete points, etc.) the XML format ensures its easier
future representation. Second, the method has to have
a descriptive properties file that contains the name
of the input method, package and class. When the
method is invoked by the described External Method
Invoker, it reads all parametersfrom the properties file
and configures the created Process.
ElectroencephalographyDataProcessor-FrameworkforRunningSignalProcessingMethods
359
Figure 2: Web Interface Overview.
4.4 System Security
Since the system is public available through the Inter-
net, secured access has to be ensured. The system is
protected by system accounts with two possible user
roles. The user can upload custom data that can be
processed while the administrator can manage regis-
tered users and configure the system. At the imple-
mentation level, the security is ensured by Spring Se-
curity framework with protected user passwords by a
cryptographic hash function with randomly generated
salt.
When the user accesses the system through the
Web Services API, the SSL transfer is ensured and
users credentials are required.
5 IMPLEMENTED PLUG-INS
We have already implemented methods that are most
often used during experiments within our laboratory.
Implemented methods are common Java libraries ex-
tended according to the description in Section 4.3.1.
It ensures their implementation outside the system in-
dependently. We provide implemented plug-ins open
source hosted on the public repositories (GitHub, Sor-
ceForge). The list of implemented methods is gradu-
ally expanding.
Currently, we have implemented the following
methods:
Complete and Discrete Wavelet Transform (Mal-
lat, 1999) are a class of a functions used to localize
a given function in both space and scaling; and has
some desirable properties compared to the Fourier
transform. The transform is based on a wavelet
matrix, which can be computed more quickly than
the analogous Fourier matrix.
Matching Pursuit (Ferrando et al., 2002) decom-
poses any signal into a linear expansion of wave-
forms that are selected from a redundant dictio-
nary of functions. These waveforms are chosen
in order to best match the signal structure. The
dictionary is often based on Gabor functions.
Fast Independent Component Analysis
(Hyv¨arinen et al., 2001) is used for finding
a linear representation of nongaussian data so that
the components are statistically independent, or
as independent as possible. Such a representation
seems to capture the essential structure of data in
many applications, including feature extraction
and signal separation.
Fast Fourier Transform (Rao et al., 2010) is an ef-
ficient algorithm to compute the discrete Fourier
transform (DFT) and its inverse. the discrete
Fourier transform (DFT) is a specific kind of dis-
crete transform, used in Fourier analysis. It trans-
forms one function into another, which is called
the frequency domain representation.
Finite Input Response is a digital filter that have
an impulse response which reaches zero in a fi-
nite number of steps. It can be implemented non-
recursively by convolving its impulse response.
6 CURRENT STATUS
The system is almost fully implemented and prepared
for testing. We put it on the testing server where it
is tested by the research group members. After that
we provide the system for testing by the limited set
of selected collaborative partners. When testing ends,
we release the system on the production server.
7 FUTURE WORK
When the system is released, the next step will be an
implementation of a client side within the EEG/ERP
Portal. It allows computational portal users to work
more comfortably because the load will be distributed
between two servers. A faster response will be en-
sured.
Since a need to associate methods into workflows
was mentioned in Section 2, we plan to implement a
wokflow module into the system. This module will
ensure a development of custom workflows and the
possibility to store them within users’ accounts. An
HEALTHINF2013-InternationalConferenceonHealthInformatics
360
interface with a drag and draw functionality ensures
its easy usability.
When signal processing methods implemented in
various programming languages (e. g. Python,
C/C++, Pearl) exist, the next technological challenge
leads in providing a wrapper for a set of most often
used programming languages in signal processing.
Further, we plan to investigate possibilities in the
area of Cloud Computing, because of a potential load
of the server will increase together with the raising
number of users. The suitable cloud should help us to
improve management of system resources.
8 CONCLUSIONS
The difficulties related to the processing of data from
EEG/ERP experiments are presented. Since imple-
mentation of present signal processing methods is
usually intended for local usage we decided to pro-
pose and implement a custom system. The aim of the
presented system is to serve a wide community of re-
searchers to share experimental methods.
The system combines research in the EEG/ERP
domain with modern software engineering ap-
proaches. It helps to enhance research efficiency and
enables faster achievement of scientific results.
The most often used methods in our laboratory
are briefly presented. The presented methods are al-
ready implemented and integrated within the system
as plug-ins. Due to a powerful plug-in engine in-
terested users are welcome to implement a custom
method according to a described procedure. We are
able to assume these plug-ins and incorporate them
into the system.
ACKNOWLEDGEMENTS
This work was supported by the European Regional
Development Fund (ERDF), Project NTIS - New
Technologies for Information Society”, European
Centre of Excellence, CZ.1.05/1.1.00/02.0090.
REFERENCES
Ferrando, S. E., Kolasa, L. A., and Kovacevic, N. (2002).
Algorithm 820: A exible implementation of match-
ing pursuit for gabor functions on the interval. ACM
Trans. Math. Softw., 28(3):337–353.
Gardner, D., Akil, H., Ascoli, G. A., Bowden, D. M., Bug,
W. J., Donohue, D. E., Goldberg, D. H., Grafstein, B.,
Grethe, J. S., Gupta, A., Halavi, M., Kennedy, D. N.,
Marenco, L. N., Martone, M. E., Miller, P. L., M¨uller,
H.-M., Robert, A., Shepherd, G. M., Sternberg, P. W.,
Essen, D. C. V., and Williams, R. W. (2008). The neu-
roscience information framework: A data and knowl-
edge environment for neuroscience. Neuroinformat-
ics, 6(3):149–160.
Hull, D., Wolstencroft, K., Stevens, R., Goble, C., Pocock,
M. R., Li, P., and Oinn, T. (2006). Taverna: a tool for
building and running workflows of services. Nucleic
Acids Research, 34(suppl 2):W729–W732.
Hyv¨arinen, A., Karhunen, J., and Oja, E. (2001). Inde-
pendent Component Analysis. Adaptive and Learning
Systems for Signal Processing, Communications, and
Control. J. Wiley.
Jezek, P. and Moucek, R.(2010). Database of eeg/erp exper-
iments. In Fred, A. L. N., Filipe, J., and Gamboa, H.,
editors, HEALTHINF 2010 - Proceedings of the Third
International Conference on Health Informatics, Va-
lencia, Spain, January 20-23, 2010, pages 222–227.
INSTICC Press.
Jezek, P. and Moucek, R. (2011). Integration of signal pro-
cessing methods into eeg/erp system. In Traver, V.,
Fred, A. L. N., Filipe, J., and Gamboa, H., editors,
HEALTHINF 2011 - Proceedings of the International
Conference on Health Informatics, Rome, Italy, 26-29
January, 2011, pages 563–566. SciTePress.
Jezek, P. and Moucek, R. (2012). Semantic web in eeg/erp
portal - extending of data layer using java annota-
tions. In Conchon, E., Correia, C. M. B. A., Fred,
A. L. N., and Gamboa, H., editors, HEALTHINF
2012 - Proceedings of the International Conference
on Health Informatics, Vilamoura, Algarve, Portugal,
1 - 4 February, 2012, pages 350–353. SciTePress.
Mallat, S. (1999). A wavelet tour of signal processing (2.
ed.). Academic Press.
Rao, K., Kim, D., and Hwang, J.-J. (2010). Fast Fourier
Transform - Algorithms and Applications (Signals and
Communication Technology). Springer.
Schlogl, A. and Brunner, C. (2008). Biosig: A free and open
source software library for bci research. Computer,
41(10):44 –50.
Van Pelt, J. and van Horn, J. (2007). 1st incf workshop
on sustainability of neuroscience databases. Workshop
report. Stockholm.
Watson, P., Hiden, H., and Woodman, S. (2010). e-science
central for carmen: science as a service. Concurr.
Comput. : Pract. Exper., 22(17):2369–2380.
Watson, P., Jackson, T., Pitsilis, G., Gibson, F., Austin, J.,
Fletcher, M., Liang, B., and Lord, P. (2007). The
CARMEN Neuroscience Server. In Proceedings of
the UK e-Science All hands Meeting, pages 135–141.
Zito, T., Wilbert, N., Wiskott, L., and Berkes, P. (2008).
Modular Toolkit for Data Processing (MDP): A
Python Data Processing Framework. Frontiers in neu-
roinformatics, 2.
ElectroencephalographyDataProcessor-FrameworkforRunningSignalProcessingMethods
361