NeuroneLoader

Build Status Coverage Status Documentation Status License PyPi Package Supported Python Versions JOSS status

NeuroneLoader is a python module for loading neurophysiological data recorded with Bittium NeurOne (formerly MegaEMG). It therefore allows using the data in pure python processing workflows using the python scientifc software stack (e.g. numpy) without the need of prior conversion using other (proprietary) software (e.g. MATLAB). It can also export it to container objects used by the popular python-mne framework.

Props to Andreas Henelius at Finnish Institute of Occupational Health for figuring out how to read the NeurOne binary format in pure python as part of his export2hdf project.

Installation

pip install neurone_loader

If you want to export to python-mne you must also install MNE and all it’s dependencies.

pip install mne

Quick start

>>> from neurone_loader import Recording
>>> rec = Recording(path_to_recording_folder)
>>> rec.event_codes
array([  0,   1,  12,  13,  99, 128], dtype=int32)

Please note that because raw EEG recordings can be quite large this package is very memory aware. Most data will be loaded from disk lazily, i.e. the moment you’re actually accessing it, and redundant data will be removed from memory as soon as it has been copied - unless you specify otherwise. Be advised that working with big recordings might still require a lot of memory.

I recommend looking at the docstrings before executing anything and maybe having a look at Concepts section in the Documentation before you start working with this package.

Contributing

If you encounter any problem feel free to open a issue on GitHub. If you found a bug and want to supply a fix or if you want to contribute a new feature open a pull request. Just make sure that your code is not breaking any tests and you also supply tests for your code.

Testing

To run the tests you must first get the test data and then you can run the test with the following commands. Please run them in the repository directory, not in the test subdirectory.

To get the test data (~2.8GB) you need to install wget. Then you can download the data by running

bash test/get_test_data.sh

Then you can run the tests with

python -m unittest discover -s test -t .

API

neurone_loader.loader Provides classes to load, represent and export data recorded with the Bittium NeurOne device.
neurone_loader.mne_export Provides the metaclass MneExportable that allows subclasses implementing all the metaclass’s properties to be converted to a mne.io.RawArray.
neurone_loader.neurone Contains functions for reading data recorded with a Bittium NeurOne device.
neurone_loader.lazy Provides the Lazy decorator to construct properties that are evaluated only once and the preloadable decorator to enable optional preloading of all lazy properties on initialization.

Indices and tables