This talk will give a basic introduction to the pySPACE framework and its current applications.
pySPACE (Signal Processing And Classification Environment) is a modular software for the processing of large data streams that has been specifically designed to enable distributed execution and empirical evaluation of signal processing chains. Various signal processing algorithms (so called nodes) are available within the software, from finite impulse response filters over data-dependent spatial filters (e.g., PCA, CSP, xDAWN) to established classifiers (e.g., SVM, LDA). pySPACE incorporates the concept of node and node chains of the Modular Toolkit for Data Processing (MDP) framework. Due to its modular architecture, the software can easily be extended with new processing nodes and more general operations. Large scale empirical investigations can be configured using simple text-configuration files in the YAML format, executed on different (distributed) computing modalities, and evaluated using an interactive graphical user interface.
pySPACE allows the user to connect nodes modularly and automatically benchmark the respective chains for different parameter settings and compare these with other node chains, e.g., by automatic evaluation of classification performances provided within the software. In addition, the pySPACElive mode of execution can be used for online processing of streamed data. The software specifically supports but is not limited to EEG data. Any kind of time series or feature vector data can be processed and analyzed.
pySPACE additionally provides interfaces to specialized signal processing libraries such as SciPy, scikit-learn, LIBSVM, the WEKA Machine Learning Framework, and the Maja Machine Learning Framework (MMLF).
Introduction to the Signal Processing and Classification Environment pySPACE by Mario Michael Krell PyData Berlin 2014
1. pySPACE (https://github.com/pyspace)
Introduction to a Signal Processing and
Classification Environment (pySPACE)
M M Krell, A Seeland, J H Metzen
DFKI Bremen & University of Bremen
Robotics Innovation Center
Director: Prof. Dr. Frank Kirchner
www.dfki.de/robotics
robotics@dfki.de
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 1 / 30
2. Table of Contents
1 Introduction 3
2 How to install and use 7
3 Concepts and Features 15
4 Applications 21
5 Conclusion 27
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 2 / 30
3. Introduction
Computation of Multiple Workflows and Datasets
. . . with applications, e.g., in robotics and brain-computer interfaces
. . . with simple configuration and automatic processing of
empirical evaluations (benchmarking)
. . . on feature vector and time series datasets
. . . where configuration requires no programming (YAML used)
⇒ useable by non-programmers
. . . with execution in a distributed manner (embarrassingly parallel)
. . . intuitive structure and documentation
. . . choosing from more than 100 signal processing and classification
algorithms (additionally interfaces to other libraries)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 3 / 30
4. Introduction
Computation of Multiple Workflows and Datasets
. . . with applications, e.g., in robotics and brain-computer interfaces
. . . with simple configuration and automatic processing of
empirical evaluations (benchmarking)
. . . on feature vector and time series datasets
. . . where configuration requires no programming (YAML used)
⇒ useable by non-programmers
. . . with execution in a distributed manner (embarrassingly parallel)
. . . intuitive structure and documentation
. . . choosing from more than 100 signal processing and classification
algorithms (additionally interfaces to other libraries)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 3 / 30
5. Introduction
Computation of Multiple Workflows and Datasets
. . . with applications, e.g., in robotics and brain-computer interfaces
. . . with simple configuration and automatic processing of
empirical evaluations (benchmarking)
. . . on feature vector and time series datasets
. . . where configuration requires no programming (YAML used)
⇒ useable by non-programmers
. . . with execution in a distributed manner (embarrassingly parallel)
. . . intuitive structure and documentation
. . . choosing from more than 100 signal processing and classification
algorithms (additionally interfaces to other libraries)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 3 / 30
6. Introduction
Short Facts
medium sized framework (> 40000 lines of code)
developed and tested on Mac OS X and Linux
development started 6 years ago (open source since August 2013)
core developer team of 3 − 5 people and approx. 10 in total
open source software (GPL, available at
https://github.com/pyspace)
documentation: http://pyspace.github.io/pyspace/
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 4 / 30
7. Introduction
Short Facts
medium sized framework (> 40000 lines of code)
developed and tested on Mac OS X and Linux
development started 6 years ago (open source since August 2013)
core developer team of 3 − 5 people and approx. 10 in total
open source software (GPL, available at
https://github.com/pyspace)
documentation: http://pyspace.github.io/pyspace/
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 4 / 30
9. Introduction
Selected Applications
evaluation and comparison of
. . . sensor/channel selection algorithms (on EEG data) [1]
. . . dimensionality reduction algorithms
(ICA, PCA, xDAWN, PiSF, CSP) [2, 4, 5, 13]
. . . classifiers [6, 11, 14, 15]
Brain-Computer Interfaces (movement prediction, interaction error
detection, detection of warning perception) [3, 7, 8, 9, 10, 16, 17]
robotic applications (soil detection, parallelization of robot
simulations, localization algorithms, and sensor regression)
more details at the end, if there is time left
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 6 / 30
10. Introduction
Selected Applications
evaluation and comparison of
. . . sensor/channel selection algorithms (on EEG data) [1]
. . . dimensionality reduction algorithms
(ICA, PCA, xDAWN, PiSF, CSP) [2, 4, 5, 13]
. . . classifiers [6, 11, 14, 15]
Brain-Computer Interfaces (movement prediction, interaction error
detection, detection of warning perception) [3, 7, 8, 9, 10, 16, 17]
robotic applications (soil detection, parallelization of robot
simulations, localization algorithms, and sensor regression)
more details at the end, if there is time left
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 6 / 30
11. Introduction
Selected Applications
evaluation and comparison of
. . . sensor/channel selection algorithms (on EEG data) [1]
. . . dimensionality reduction algorithms
(ICA, PCA, xDAWN, PiSF, CSP) [2, 4, 5, 13]
. . . classifiers [6, 11, 14, 15]
Brain-Computer Interfaces (movement prediction, interaction error
detection, detection of warning perception) [3, 7, 8, 9, 10, 16, 17]
robotic applications (soil detection, parallelization of robot
simulations, localization algorithms, and sensor regression)
more details at the end, if there is time left
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 6 / 30
12. Introduction
Selected Applications
evaluation and comparison of
. . . sensor/channel selection algorithms (on EEG data) [1]
. . . dimensionality reduction algorithms
(ICA, PCA, xDAWN, PiSF, CSP) [2, 4, 5, 13]
. . . classifiers [6, 11, 14, 15]
Brain-Computer Interfaces (movement prediction, interaction error
detection, detection of warning perception) [3, 7, 8, 9, 10, 16, 17]
robotic applications (soil detection, parallelization of robot
simulations, localization algorithms, and sensor regression)
more details at the end, if there is time left
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 6 / 30
13. How to install and use
How to install and use pySPACE
1 installation (simple, see tutorial)
2 prepare your data for pySPACE
3 decide and define the processing file
4 potentially modify your config file
5 start software
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 7 / 30
14. How to install and use
Installation
required dependencies:
Python 2.7/Python 2.6
YAML
NumPy
SciPy
matplotlib (visualizations)
scikit-learn (classifiers, transformations)
PyQt4 (GUIs)
WEKA, MMLF
LIBSVM, LIBLINEAR, MDP, cvxopt, . . . (algorithm interfaces)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 8 / 30
15. How to install and use
Installation
required dependencies:
Python 2.7/Python 2.6
YAML
NumPy
SciPy
optional dependencies:
matplotlib (visualizations)
scikit-learn (classifiers, transformations)
PyQt4 (GUIs)
WEKA, MMLF
LIBSVM, LIBLINEAR, MDP, cvxopt, . . . (algorithm interfaces)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 8 / 30
16. How to install and use
Installation
required dependencies:
Python 2.7/Python 2.6
YAML
NumPy
SciPy
optional dependencies:
matplotlib (visualizations)
scikit-learn (classifiers, transformations)
PyQt4 (GUIs)
WEKA, MMLF
LIBSVM, LIBLINEAR, MDP, cvxopt, . . . (algorithm interfaces)
download (git clone https://github.com/pyspace/pyspace.git)
python setup.py ⇒ configuration folder in home directory
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 8 / 30
17. How to install and use
prepare your data: Input Formats
feature vector: csv, arff
time series segments: csv
time series stream: csv, EDF2
.set (EEGLAB), .eeg (BrainProducts GmbH)
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 9 / 30
18. How to install and use
1 installation
2 prepare your data
dataset description of banana dataset (metadata.yaml)
storage_format: [csvUnnamed, real]
type: FEATURE_VECTOR
file_name: banana_data.csv
label_column: 1
...
3 decide and define the processing file
4 potentially modify your config file
5 start software
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 10 / 30
19. How to install and use
1 installation
2 prepare your data
3 decide and define the processing file (examples/bench.yaml)
type: node_chain
input_path: "example_summary"
runs : 3
node_chain:
- node: FeatureVectorSourceNode
- node: TrainTestSplitter
parameters :
train_ratio: 0.4
- node: __Normalization__
- node : 2SVM
parameters :
complexity : __C__
- node: PerformanceSinkNode
parameter_ranges :
__C__ : [0.01,0.1,1]
__Normalization__ : [GaussianFeatureNormalization,
EuclideanFeatureNormalization]
4 potentially modify your config file
5 M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 11 / 30
20. How to install and use
1 installation
2 prepare your data for pySPACE
3 decide and define the processing file (bench.yaml)
4 potentially modify your config file (config.yaml)
storage: ~/pySPACEcenter/storage
spec_dir: ~/pySPACEcenter/specs
console_log_level : logging.WARNING
file_log_level : logging.INFO
python_path:
- /home/user/pySPACE/external/libsvm/python/
...
5 start software
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 12 / 30
21. How to install and use
1 installation
2 prepare your data for pySPACE
3 decide and define the processing file (bench.yaml)
4 potentially modify your config file (config.yaml)
5 start software
go to pySPACEcenter on the command line and type:
./launch.py -o examples/bench.yaml --mcore
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 13 / 30
22. How to install and use
Parallelization
parallel execution modes:
single-core: − − serial
multi-core (multiprocessing): − − mcore
cluster (shared file system, LoadLeveler): − − loadl
cluster (shared file system, no scheduling): − − mpi
possibility to add new modes (backends): e.g., − − cloud,
− − gearman?
creation of jobs and execution
specific subtasks (e.g., parameter optimization evaluations)
different processing chains in the application
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 14 / 30
23. How to install and use
Parallelization
parallel execution modes:
single-core: − − serial
multi-core (multiprocessing): − − mcore
cluster (shared file system, LoadLeveler): − − loadl
cluster (shared file system, no scheduling): − − mpi
possibility to add new modes (backends): e.g., − − cloud,
− − gearman?
further parallelization:
creation of jobs and execution
specific subtasks (e.g., parameter optimization evaluations)
different processing chains in the application
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 14 / 30
24. Concepts and Features
General Structure Concept [12]
operation
1
operation
2
operation
3
operation
..
node
1
node
2
node
3
node
..
operation
chain
operation
node chain
node
node chain merge WEKA ..
FIR Filter
sub-
sampling
SVM ..
offline
offline
offline + online
summary
summary
dataset
data sample
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 15 / 30
25. Concepts and Features
General Node Chain Processing
CPU
1
Column Chart
TableLine Chart
processed Data
CPU
2
CPU
3
A
1 2 3 4a
2 1 3 4b
1 2 4a
spec
{1,2,3,4a}
{2,1,3,4b}
{1,2,4a}
B
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 16 / 30
26. Concepts and Features
General Node Chain Processing
CPU
1
Column Chart
TableLine Chart
processed Data
CPU
2
CPU
3
A
1 2 3 4a
2 1 3 4b
1 2 4a
spec
{1,2,3,4a}
{2,1,3,4b}
{1,2,4a}
B
Modularity concept of node chain based on Modular toolkit for Data
Processing (MDP)!
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 16 / 30
27. Concepts and Features
More than 100 own implemented algorithms [12]Source
Sink
Preprocessing
Spatial
Filter
Classification
Feature
Generator
Meta
Splitter
Visualization Others
Postprocessing
LDA
QDA
LIBSVM
LIBLINEAR
SOR SVM
Naive Bayes
Random
FFT IIR FIR
CSP
ICAPCA
xDAWN
Coherence
Correlations
Moments
STFT
DWT
Linear Fit
Pattern Search
Grid Search
Window Function
detrend z-score
Resample
Decimation
Cross-
validation
FDA
Sensor Selection Avg. EEG Raw Data
TKEO
optimalsigmoid
linear
Scatter
HistogramSpectrum
Stream
TimeSeries
FeatureVector
Performance
Score Mapping
gaussian
histogram
Normalizations
Filters
Feature
Normalization
Sub-Chain
Fusion
Classifier Ensemble
Scikit-learn Wrapper
Gating
Functions
ridge
regression
probability
voting
label voting
precision
weighted
Feature Selection
DebugInstance Selection
Type Conversion
Amplitudes
Train-Test
Splitter
baseline
TimeSeriesFeatureVector
Stream
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 17 / 30
28. Concepts and Features
More than 100 own implemented algorithms [12]Source
Sink
Preprocessing
Spatial
Filter
Classification
Feature
Generator
Meta
Splitter
Visualization Others
Postprocessing
LDA
QDA
LIBSVM
LIBLINEAR
SOR SVM
Naive Bayes
Random
FFT IIR FIR
CSP
ICAPCA
xDAWN
Coherence
Correlations
Moments
STFT
DWT
Linear Fit
Pattern Search
Grid Search
Window Function
detrend z-score
Resample
Decimation
Cross-
validation
FDA
Sensor Selection Avg. EEG Raw Data
TKEO
optimalsigmoid
linear
Scatter
HistogramSpectrum
Stream
TimeSeries
FeatureVector
Performance
Score Mapping
gaussian
histogram
Normalizations
Filters
Feature
Normalization
Sub-Chain
Fusion
Classifier Ensemble
Scikit-learn Wrapper
Gating
Functions
ridge
regression
probability
voting
label voting
precision
weighted
Feature Selection
DebugInstance Selection
Type Conversion
Amplitudes
Train-Test
Splitter
baseline
TimeSeriesFeatureVector
Stream
Here new algorithms/libraries can be integrated/interfaced!
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 17 / 30
29. Concepts and Features
Package Structure
environments (parallelization backends, node/operation chains,
application interface, configuration)
missions (nodes, operations, support)
resources (data types, dataset definitions)
run (launch, launch live, GUIs, scripts)
tests
tools (useful stuff for file handling, logging, debugging, . . . )
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 18 / 30
30. Concepts and Features
Documentation
http://pyspace.github.io/pyspace/
internally generated on a daily bases
based on sphinx (and restructured text)
some modifications to improve API documentation layout and
automatic generation
post processing to automatically display additional information
(node names, input types, examples, list(s) of available
algorithms (nodes))
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 19 / 30
31. Concepts and Features
Testing
core functionalities are changed very seldom with multiple checks
unit tests for internal development are run and checked via a
cronjob and email on a daily bases
regular user feedback
generic unit tests added for (all) algorithms (nodes):
documentation?
Exemplary call existing?
Exemplary call valid?
Is the respective algorithm running on example data?
Simple interface to modify test and define results to define specific
unit tests
scripts exist for running both type of tests
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 20 / 30
33. Applications
Using Optimized Processing Chains in the Application
launch live
YAML configuration file defines complete data handling
multiple processing flows can be executed in parallel
used for: detection of warning perception, interface error potentials,
movement preparation, SSVEP, . . .
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 22 / 30
35. Applications
reSPACE for Processing with FPGA on Mobile Device
!"#$
%#$
&'%"("
)*+',-'./, 012'324
56'7/.6
85-'324
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 24 / 30
36. Applications
Large Scale Evaluation: Sensor Selection
10 20 30 40 50 60
Number of EEG Electrodes
0.76
0.77
0.78
0.79
0.80
0.81
0.82
0.83
0.84
Balancedaccuracy
All
SSNRV S
SSNRAS
1SVM
2SVM
Performance
PCA
xDAWN
CSP
Standard caps
2 4 6 8 10
0.65
0.70
0.75
0.80
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 25 / 30
38. Conclusion
Conclusion
pySPACE automatizes the signal processing and classification
workflow.
automatic parallel execution of other evaluations (WEKA, robot
simulation)
intuitive configuration without scripting (YAML based)
⇒ useable by non-programmers
possibility to integrate other algorithms/libraries
future steps
more algorithms and interfaces to other libraries
other data types (e.g., pictures, videos, multimodal data)
further applications (e.g., clustering, regression)
installation suite
. . .
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 27 / 30
39. Conclusion
Conclusion
pySPACE automatizes the signal processing and classification
workflow.
automatic parallel execution of other evaluations (WEKA, robot
simulation)
intuitive configuration without scripting (YAML based)
⇒ useable by non-programmers
possibility to integrate other algorithms/libraries
future steps
more algorithms and interfaces to other libraries
other data types (e.g., pictures, videos, multimodal data)
further applications (e.g., clustering, regression)
installation suite
. . .
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 27 / 30
40. Conclusion
Thank you for your attention! Do you have questions?
CPU
1
Column Chart
TableLine Chart
processed Data
CPU
2
CPU
3
A
1 2 3 4a
2 1 3 4b
1 2 4a
spec
{1,2,3,4a}
{2,1,3,4b}
{1,2,4a}
B
Figure: Node chain processing scheme from [12]
Credits: German Research Center for Artificial Intelligence, DFKI
Bremen, Robotics Innovation Center and Robotics Research Group,
University of Bremen
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 28 / 30
41. Bibliography
[1] David Feess, Mario Michael Krell, and Jan Hendrik Metzen. Comparison of Sensor Selection Mechanisms for an
ERP-Based Brain-Computer Interface. PLoS ONE, 8(7):e67543, 2013.
[2] Foad Ghaderi. Joint spatial and spectral filter estimation for single trial detection of event related potentials. In IEEE
International Workshop on Machine Learning for Signal Processing, (MLSP), 9 2013.
[3] Foad Ghaderi, Su Kyoung Kim, and Elsa Andrea Kirchner. Effects of eye artifact removal methods on single trial P300
detection, a comparative study. Journal of Neuroscience Methods, 221(0):41–47, 2014.
[4] Foad Ghaderi and Elsa Andrea Kirchner. Periodic Spatial Filter for Single Trial Classification of Event Related Brain
Activity. In Proceedings of the 10th IASTED International Conference on Biomedical Engineering (BioMed-2013),
February 13-15, Innsbruck, Austria. ACTA Press, 2013.
[5] Foad Ghaderi and Sirko Straube. An adaptive and efficient spatial filter for event-related potentials. In Proceedings of
European Signal Processing Conference, (EUSIPCO), 9 2013.
[6] Yohannes Kassahun, Hendrik W¨ohrle, Alexander Fabisch, and Marc Tabie. Learning parameters of linear models in
compressed parameter space. In Alessandro E. Villa, Wlodzislaw Duch, P´eter ´Erdi, Francesco Masulli, and G¨unther
Palm, editors, Artificial Neural Networks and Machine Learning ICANN 2012, volume 7553 of Lecture Notes in
Computer Science, pages 108–115. Springer, Lausanne, Switzerland, 2012.
[7] Su Kyoung Kim and Elsa Andrea Kirchner. Classifier transferability in the detection of error related potentials from
observation to interaction. In Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics,
SMC-2013, Manchester, UK, October 13-16, 2013.
[8] Elsa Andrea Kirchner, Su Kyoung Kim, Sirko Straube, Anett Seeland, Hendrik W¨ohrle, Mario Michael Krell, Marc
Tabie, and Manfred Fahle. On the Applicability of Brain Reading for Predictive Human-Machine Interfaces in Robotics.
PLoS ONE, 8:e81732, 2013.
[9] Elsa Andrea Kirchner and Marc Tabie. Closing the gap: Combined EEG and EMG analysis for early movement
prediction in exoskeleton based rehabilitation. In Proceedings of the 4th European Conference on Technically Assisted
Rehabilitation - TAR 2013, Berlin, Germany, 2013.
[10] Elsa Andrea Kirchner, Hendrik W¨ohrle, Constantin Bergatt, Su Kyoung Kim, Jan Hendrik Metzen, David Feess, and
Frank Kirchner. Towards Operator Monitoring via Brain Reading – An EEG-based Approach for Space Applications. In
Proceedings of the 10th International Symposium on Artificial Intelligence, Robotics and Automation in Space, pages
448–455, Sapporo, 2010.
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 29 / 30
42. Bibliography
[11] Mario Michael Krell, David Feess, and Sirko Straube. Balanced Relative Margin Machine The missing piece between
FDA and SVM classification. Pattern Recognition Letters, 41:43–52, 2014.
[12] Mario Michael Krell, Sirko Straube, Anett Seeland, Hendrik W¨ohrle, Johannes Teiwes, Jan Hendrik Metzen, Elsa Andrea
Kirchner, and Frank Kirchner. pySPACE - A Signal Processing and Classification Environment in Python. Frontiers in
Neuroinformatics, 7(40), 2013.
[13] Jan Hendrik Metzen, Su Kyoung Kim, Timo Duchrow, Elsa Andrea Kirchner, and Frank Kirchner. On Transferring
Spatial Filters in a Brain Reading Scenario. In Proceedings of the 2011 IEEE Workshop on Statistical Signal Processing,
pages 797–800, Nice, France, 2011.
[14] Jan Hendrik Metzen, Su Kyoung Kim, and Elsa Andrea Kirchner. Minimizing Calibration Time for Brain Reading. In
Rudolf Mester and Michael Felsberg, editors, Pattern Recognition, volume 6835 of Lecture Notes in Computer Science,
pages 366–375. Springer Berlin Heidelberg, Frankfurt, Germany, 2011.
[15] Jan Hendrik Metzen and Elsa Andrea Kirchner. Rapid Adaptation of Brain Reading Interfaces based on Threshold
Adjustment. In Proceedings of the 2011 Conference of the German Classification Society, (GfKl-2011), page 138,
Frankfurt, Germany, 2011.
[16] Anett Seeland, Hendrik W¨ohrle, Sirko Straube, and Elsa Andrea Kirchner. Online movement prediction in a robotic
application scenario. In 6th International IEEE EMBS Conference on Neural Engineering (NER), pages 41–44, San
Diego, California, 2013.
[17] Hendrik W¨ohrle, Johannes Teiwes, Elsa Andrea Kirchner, and Frank Kirchner. A Framework for High Performance
Embedded Signal Processing and Classification of Psychophysiological Data. In APCBEE Procedia. International
Conference on Biomedical Engineering and Technology (ICBET-2013), 4th, May 19-20, Kopenhagen, Denmark.
Elsevier, 2013.
M M Krell pySPACE (https://github.com/pyspace) July 27, 2014 30 / 30