Human-computer interface experimentation library
Project description
Axo-Pythonic synapses are those in which an axon synapses upon a Python program. AxoPy aims to facilitate such connections between electrophysiolgical signals and machines by making it easy for researchers to develop human-computer interface experiments.
AxoPy consists of:
- Graphical interface
Central to AxoPy is the graphical user interface providing visual feedback to the subject and controlling the flow of the experiment. The GUI is backed by PyQt5, and you’re free to implement customized graphical elements if those built in to AxoPy don’t suit your needs.
- Data acquisition
AxoPy establishes a fairly simple API for communicating with input hardware, so all that’s usually needed is a bit of middleware to get going. Check out pytrigno or pymcc to see what this is like. A couple input devices are built in (keyboard, noise generator), so examples run without needing special hardware.
- Data storage
Data is stored in a file structure with common file formats (CSV and HDF5) so you can a) start working with data as soon as an experiment session is over and b) you don’t need anything but standard tools (pandas, h5py) to do so. A high-level interface to the storage structure is also provided to make traversing a dataset simple.
- Pipeline processing
Estimating intentions of the user from raw electrophysiological signals often involves a large number of processing operations. AxoPy facilitates flexible construction of pipelines that can be reused in different parts of an experiment and re-used for offline post-processing, etc.
Quickstart
Installation
pip
AxoPy is available on PyPI, so the following should get it installed if you’re using a standard Python installation with pip:
$ pip install axopy
conda
AxoPy is not yet available on conda-forge, but it’s not too bad to get it installed at the moment.
Make sure you have a local copy of AxoPy. From the root directory of the repository, you can create the conda environment with AxoPy’s dependencies installed:
$ conda env create -f environment.yml
Now activate the environment:
on Windows: run activate axopy in Anaconda Prompt
on macOS or Linux: run source activate axopy in your terminal
Finally, with the environment activated, install AxoPy itself:
(axopy) $ pip install .
See the development documentation for information on setting up a development environment to work on AxoPy itself.
Hello, AxoPy
Here’s a minimal example to display some randomly generated signals in an “oscilloscope”:
from axopy.experiment import Experiment
from axopy.task import Oscilloscope
from axopy.stream import NoiseGenerator
daq = NoiseGenerator(rate=1000, num_channels=4, read_size=100)
Experiment(daq=daq).run(Oscilloscope())
Next Steps
Check out the documentation for more information on creating experiments (note: documentation is currently being reworked). Some examples are also available.
Contributing
Please feel free to share any thoughts or opinions about the design and implementation of this software by opening an issue on GitHub. Constructive feedback is welcomed and appreciated.
GitHub issues also serve as the support channel, at least for now. Questions about how to do something are usually great opportunities to improve documentation, so you may be asked about your thoughts on where the answers should go.
If you want to contribute code, open a pull request. Bug fix pull requests are always welcome. For feature additions, breaking changes, etc. check if there is an open issue discussing the change and reference it in the pull request. If there isn’t one, it is recommended to open one with your rationale for the change before spending significant time preparing the pull request.
Ideally, new/changed functionality should come with tests and documentation. If you are new to contributing, it is perfectly fine to open a work-in-progress pull request and have it iteratively reviewed. See the development documentation for instructions on setting up a development environment, running tests, and building the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file axopy-0.1.0.dev1.tar.gz
.
File metadata
- Download URL: axopy-0.1.0.dev1.tar.gz
- Upload date:
- Size: 39.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78e77ebb59bf16e145e7419fda03c088f566c10a83897d4ba9c6d653885c2c76 |
|
MD5 | 15271807084a90515b3da53dcf17f822 |
|
BLAKE2b-256 | 83318c0021609179132514ad5f6ad6ce8fe11e45ebce602bb157d906bf86795a |
File details
Details for the file axopy-0.1.0.dev1-py2.py3-none-any.whl
.
File metadata
- Download URL: axopy-0.1.0.dev1-py2.py3-none-any.whl
- Upload date:
- Size: 43.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d3f4b125aeba1b18371fd9eef53d50c36385c1f9042ce44da2935fde0f70cdb |
|
MD5 | cbb8311a74a4a00ced0c2de05d3da314 |
|
BLAKE2b-256 | 48edbfa9d63b5b56fbb3a1f720a2d45675e8c032c8776f39ad3a3a19eba8309a |