Python package to reconstruct axonal branches from high-density micro-electrode array data
Project description
Axon velocity
Graph-based algorithm to reconstruct axonal branches and compute velocities from extracellular multi-electrode array (MEA) recordings in Python.
Installation
To install the axon_velocity
package, you can clone the repo and install using pip:
pip install axon_velocity
To install from sources:
git clone https://github.com/alejoe91/axon_velocity.git
cd axon_velocity
python setup.py install (or develop)
Requirements
axon_velocity
depends on the following packages, which are automatically installed
- numpy
- matplotlib
- scipy
- networkx
- sklearn
- MEAutility
- probeinterface
For the simulation notebooks in the simulation_notebooks
folder, additional requirements are needed:
All additional requirements can be installed with: pip install -r requirements_fill.txt
Usage
The inputs to the tracking algorithm are:
- templates: mean extracellular waveforms (n_channels x n_samples)
- locations: x-y position of electrodes (n_channels x 2)
- fs: sampling frequency (float)
The graph-based method can be run as follows:
import axon_velocity as av
gtr = av.compute_graph_propagation_velocity(template=your_template, locations=your_locations, fs=fs)
To inspect available arguments, you can use av.compute_graph_propagation_velocity?
.
The output gtr
is an object of a class called GraphAxonTracking
.
It contains the following fields:
branches
: List of dictionaries containing the following fields:- 'selected_channels': selected channels in the path
- 'velocity': velocity estimate in mm/s (if locations in um and fs in Hz)
- 'offset': offset of velocity estimate (same units as locations)
- 'r2': r-squared of the velocoty fit
- 'error': standard error of the linear fit
- 'pval': p_value of the fit
- 'distances': array with distances computed along the branch
- 'peak_times': array with peak differences with initial channel
- 'init_channel': channel used as initial channel
selected_channels
: List of selected channelsgraph
: NetworkX directed graph
The GraphAxonTracking
also implements useful methods for plotting the selected channels
(gtr.plot_channel_selection()
), plot the underlying graph (gtr.plot_graph()
), plot the selected axonal branches
(gtr.plot_branches()
), and plot the estimated velocities for each branch (gtr.plot_velocities()
).
Contribute
Contributions are welcome! Before pushing, make sure to clean up all notebooks with nbconvert
:
pip install nbconvert
(just once)
jupyter nbconvert --to notebook --ClearOutputPreprocessor.enabled=True --ClearMetadataPreprocessor.enabled=True --inplace **/*.ipynb
(before committing)
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
Hashes for axon_velocity-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71aa9c4c8cdf88c8e75d2c36623cc3f90a5739712a6afeac1577a1a5a9e76ff4 |
|
MD5 | 2b10dd983aa8515d2df3f6c90450ec4c |
|
BLAKE2b-256 | af43fa2063f218d54ecad1ff6491218d21d4ce3afe52969697a9945dfc73fc5b |