Skip to main content

Library for recording data synchronously from different physiological sensors

Project description

Octopus Sensing

Travis status Coveralls status PyPI - Version PyPI - License

A tool to help you run scientific experiments that involve recording data synchronously from multiple sources. You write steps of an experiment scenario, for example showing a stimulus and then a questionnaire. The tool takes care of the rest.

It can collect data from multiple devices such as OpenBCI EEG headset, Shimmer sensor (GSR and PPG), Video and Audio, etc. Data collection can be started and stopped synchronously across all devices. Collected data will be tagged with the timestamp of the start and stop of the experiment, the ID of the experiment, etc.

The aim is to make the scripting interface so simple that people with minimum or no software development skills can define experience scenarios with no effort.

Main features

  • Controls data recording from multiple sources using a simple unified interface
  • Tags an event on collected data, such as the start of an experiment, and events during the experiment, etc.
  • Can show stimuli (images and videos) and questionnaires
  • Monitoring interface that visualizes collected data in real-time

Getting Started

requirements

You need Python installed on your computer (version 3.7 or higher). Refer to this guide if you need help.

Quickstart Using init script (Linux & Mac)

Octopus Sensing comes with a script that helps you quickly start a project. It uses Pipenv to create a virtual environment in order to keep everything clean. It will also create a sample application.

mkdir my-awesome-project
cd my-awesome-project
curl https://raw.githubusercontent.com/nastaran62/octopus-sensing/master/init_script/init.sh
# It's a good idea to read any script before executing it.
sudo bash ./init.sh
rm ./init.sh

The created main.py file is a sample application. To run it:

pipenv run python main.py

If you don't want to use the script, you can use the following methods instead.

Installation using Pipenv

We recommend using a package manager like Pipenv instead of globally installing Octopus Sensing using pip to prevent package conflicts. To do so, follow these commands. (This is same as what the above script does.)

mkdir my-awesome-project
cd my-awesome-project
# Or replace it with your python version
pipenv --python python3.8
pipenv install octopus-sensing

It installs Octopus Sensing inside the virtual environment created by Pipenv. You need to use pipenv to run your code. For example:

pipenv run python main.py

Refer to Pipenv website for more info.

Installation using pip

You can use pip to install octopus-sensing as simple as:

pip3 install octopus-sensing

(You might need to replace pip3 with pip depending on your system.)

Then it can be imported like:

import octopus_sensing

Installation from source

If you want to compile it from source for development purposes or to have the un-released features, please refer to Development Guide.

Tutorial

See Tutorial to learn how to use Octopus Sensing.

Troubleshooting

If the installation failed, and this error is in the logs:

fatal error: portaudio.h: No such file or directory

You need to install portaudio package on your system. On a debian-based linux the package called portaudio19-dev.

Copyright

Copyright © 2020 Nastaran Saffaryazdi

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See License file for full terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octopus-sensing-1.1.1.tar.gz (35.1 kB view hashes)

Uploaded Source

Built Distribution

octopus_sensing-1.1.1-py3-none-any.whl (56.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page