1
0
Fork
You've already forked spikenburst
0
A python framework for multi-electrode array (MEA) analysis
  • Python 99.9%
mahlzahn e3b32a94e0
All checks were successful
/ sync (push) Successful in 9s
chore: add code G-Node DOI
2025年09月26日 09:52:50 +02:00
.forgejo/workflows feat(ci): add test for installation on various python versions 2025年09月22日 13:16:53 +02:00
screenshots add GUI instructions 2022年01月28日 14:58:48 +01:00
src/spikenburst fix: do not create empty directory, alias export for print_values 2025年09月22日 12:32:35 +02:00
.gitignore simplify installation, minor adjustments 2024年10月21日 10:52:34 +02:00
datacite.yml chore: adjust datacite for protocol title 2025年09月19日 15:45:30 +02:00
LICENSE add DataCite document 2025年03月04日 13:42:08 +01:00
MANIFEST.in simplify burst_sync installation 2025年01月04日 17:40:58 +01:00
plot_settings.txt add mean synchrony measures 2022年02月22日 10:49:59 +01:00
pypi_publish.sh simplify burst_sync installation ( #2 ) 2025年02月03日 13:00:49 +00:00
pyproject.toml chore: version bump to 1.0.0 2025年09月19日 10:37:43 +02:00
README.md chore: add code G-Node DOI 2025年09月26日 09:52:50 +02:00
README_BXR.md add nice README and copyright/license information 2022年01月28日 18:48:42 +01:00
README_GUI.md make pip the standard way to install the spikenburst package, some other improvements 2022年02月08日 17:30:13 +01:00
setup.py fix error for non-gui installation and v0.1.0 2024年10月22日 17:41:39 +02:00

spikeNburst – A python framework for multi-electrode array (MEA) analysis

doi preprint doi code

Installation

Currently, the installation is running on Linux or WSL. The recommended way to install the dependencies is to create a new Anaconda environment:

conda create -n spikenburst cython h5py librsvg matplotlib numpy openpyxl pandas pip python scipy conda-forge::gtk3 conda-forge::odfpy conda-forge::pygobject
conda activate spikenburst

or a python environment:

python -m venv venv_spikenburst
source venv_spikenburst/bin/activate

Then, spikenburst can be installed with:

pip install --extra-index-url https://codeberg.org/api/packages/spiky/pypi/simple/ spikenburst[full]

or inside the cloned git directory with:

pip install --extra-index-url https://codeberg.org/api/packages/spiky/pypi/simple/ .[full]

Some dependencies (cairo, gtk3) might need to be additionally installed using the usual distribution dependent tools, e.g. on Ubuntu 20.04 with:

sudo apt install libcairo2-dev pkg-config python3-dev libgirepository1.0-dev

Usage

There are two options how you can use this tool. The first is the spikeNburst library which can be used in python code with

import spikenburst
sa = spikenburst.SpikeAnalysis('/path/to/input_bxr_or_npz_file')
ba = spikenburst.BurstAnalysis(sa)
nba = spikenburst.NetworkBurstAnalysis(ba)

More detailed instructions can be found in BXR README and in the help pages of the different classes.

The second option is the use of the spikeNburst GUI which can be started with

spikenburst [FILE ...]

with optionally bxr/npz files as input arguments.

Screen shot of the spikenburst GUI with 4 files analysed

Detailed instructions how to use the GUI can be found in the GUI README.

Copyright 2021–2025 Robert Wolff mahlzahn@posteo.de

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 any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

How to cite this package?

The spikeNburst package was introduced in

The unit filtering for ISI violation ratio is described in

The burst and network burst detection is based on the algorithms described in

The bxr files are created by the proprietary 3Brain BrainWave software. The npz files can be obtained by running spike_sorting_export.py on the previously spike sorted brw files with spike_sorting.py using the SpikeInterface tool.

If you use any of the synchrony measures (spike distance, STTC or phase synchrony), you should include the corresponding references from the burst_sync package. The main reference is

the reference for the spike distance is

the STTC is described in

and the phase synchrony is introduced by

Developer: build and publish the package

For uploading packages on https://codeberg.org (see Forgejo documentation), create ~/.pypirc with following content:

[distutils]
 index-servers =
 spiky
 pypi
 testpypi
[spiky]
 repository = https://codeberg.org/api/packages/spiky/pypi
 username = spiky
 password = <token>

After adjusting the version number in pyproject.toml, the package can be build and uploaded with

python -m build
twine upload --skip-existing --repository spiky dist/*