Skip to main content

A python library for reading and writing AxoGraph data files

Project description

axographio is a library that makes it easy to read and write binary data files in the AxoGraph file format.

AxoGraph X is a commercial software package used for data acquisition and analysis that is widely used in electrophysiological research (see http://axographx.com for more details). While it can read and write files in text format, its binary format is much smaller and faster to load and save; thus many users preferentially use this format. The company distributes the details of the file format along with sample C++ code for reading and writing to these files with AxoGraph X.

Python is a powerful and easy to use general purpose programming language (see http://python.org for more details). There are many useful python libraries available for scientific data analysis and data visualization such as scipy, matplotlib and MayaVI.

This library provides a simple interface for loading AxoGraph data files into a python program or interactive session. If you want to analyze data you recorded in AxoGraph using python based tools, this library provides the glue code you’ll need.

Installation

Preinstallation Requirements

  • A working Python installation

  • The setuptools package

  • The NumPy package

  • The Cython package

Note that NumPy takes a bit of work to build, so it may be easiest to install it from your linux distribution’s repository, or use as pre-built package such as the Scipy Superpack (http://macinscience.org/?page_id=6) for the mac. Depending on your OS, you may be able to get away with simply typing:

sudo easy_install numpy
sudo easy_install Cython

Installation

Once all the preinstallation requirements have been met, you can download and install axographio using easy_install by typing the following command in a terminal window:

easy_install axographio

Upgrading

If you have an older version of the package installed, you can update it to the newest version using easy_install with the “-U” flag:

easy_install -U axographio

Usage

Loading a data file is as easy as calling read:

>>> import axographio
>>>
>>> f = axographio.read("AxoGraph X File.axgx")

At this point the variable f will contain a file_contents object with the column names and data from the file. For example, you could now plot the first two columns using matplotlib:

>>> import matplotlib.pyplot as plt
>>>
>>> plt.plot(f.data[0], f.data[1])
>>> plt.xlabel(f.names[0])
>>> plt.ylabel(f.names[1])
>>> plt.show()

(The plt.show() command may be optional depending on your OS.)

Of course, you probably have grander plans than just plotting the data. The column data supports the standard sequence interfaces (i.e. indexing, iteration, etc.) and can be converted to a scipy or numpy array using the asarray functions in these packages, e.g.:

>>> import scipy as sp
>>>
>>> times = sp.asarray(f.data[0])

Writing files is also relatively easy. You simply create a new file_contents object (or use one you loaded earlier), and then call write. For example, the following code creates a file in the current directory called “my60Hz.axgx” with two channels with 60 Hz sine waves

>>> import axographio
>>> import numpy as np
>>>
>>> times = np.arange(0,10,0.0001)
>>> column1 = np.sin(2*np.pi * 60 * times)
>>> column2 = np.cos(2*np.pi * 60 * times)
>>> f = axographio.file_contents(
...    ['time (s)', 'my recording (V)', 'your recording (V)'],
...    [times, column1, column2])
>>> f.write("my60Hz.axgx")

Questions and Support

Please post any questions, problems, comments, or suggestions on the axographio group on google groups (http://groups.google.com/group/axographio)

News

0.1.1

Fixed a rounding error that could create one extra data point in the time column.

0.1.0

First release

Acknowledgments

This initial version of this project was written in the Chiel Laboratory at Case Western Reserve University, with support from NIH grant NS047073, an Ohio Innovation Incentive Award Fellowship, and the Case Western Reserve MSTP (NIH T32 GM007250). This project builds on a number of other open source projects, including Python, C++ AxoGraph file input/output code from AxoGraph Scientific (placed in the public domain; a modified version is included with the project source code), Cython, and many others. Thanks also to Dr. Hillel Chiel for providing testing and helpful suggestions.

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

axographio-0.1.1b1.tar.gz (77.7 kB view details)

Uploaded Source

Built Distributions

axographio-0.1.1b1-py2.6-macosx-10.3-fat.egg (112.8 kB view details)

Uploaded Source

axographio-0.1.1b1-py2.6-linux-x86_64.egg (132.9 kB view details)

Uploaded Source

File details

Details for the file axographio-0.1.1b1.tar.gz.

File metadata

File hashes

Hashes for axographio-0.1.1b1.tar.gz
Algorithm Hash digest
SHA256 e6bae98d3c19b246df1a96f539099039812fc54c4439dd21083ce18808e4a3ad
MD5 f0b0e594d1361cde96a5801850c564c0
BLAKE2b-256 b04e9947d087b130e44ece6f83d4cce5c1320e0ee4f2384b29c0a2f152b10538

See more details on using hashes here.

File details

Details for the file axographio-0.1.1b1-py2.6-macosx-10.3-fat.egg.

File metadata

File hashes

Hashes for axographio-0.1.1b1-py2.6-macosx-10.3-fat.egg
Algorithm Hash digest
SHA256 92aa1c305b5599005932a9edb7336665bfe9ac4d8e968b069cd6566387fd581d
MD5 368663f2d455a55cbc669a14a5c25218
BLAKE2b-256 e5d05f01da1ddbd78d1b1bd5ec5ede75a2487e51a86e7033981b6ceccf04d343

See more details on using hashes here.

File details

Details for the file axographio-0.1.1b1-py2.6-linux-x86_64.egg.

File metadata

File hashes

Hashes for axographio-0.1.1b1-py2.6-linux-x86_64.egg
Algorithm Hash digest
SHA256 614904bdd0ef5e455b7357ebd6754c5348f74b0ff8fdc887b15b7947f51dd61e
MD5 4c2ce32f1c0fd33dfe00cbaab5ec362a
BLAKE2b-256 6430a85008e08749e2ed1f61c83d43b86ef8c27cab7bfdcfdc28ad9fd5b2d6fb

See more details on using hashes here.

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