Skip to content

Commit

Permalink
Merge pull request #227 from SpikeInterface/prepare_release
Browse files Browse the repository at this point in the history
Prepare 0.2.18 release
  • Loading branch information
samuelgarcia authored Oct 30, 2023
2 parents 3bebe8e + e331871 commit aa4257e
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 21 deletions.
73 changes: 52 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,37 +45,68 @@

A Python package to handle the layout, geometry, and wiring of silicon probes for extracellular electrophysiology experiments.

Documentation : https://probeinterface.readthedocs.io/
Please [Star](https://github.com/SpikeInterface/probeinterface/stargazers) the project to support us and [Watch](https://github.com/SpikeInterface/probeinterface/subscription) to always stay up-to-date!


## Goals

Make a lightweight package to handle:
ProbeInterface aims to provide a common framework to handle probe information across neuroscience experiments.

ProbeInterface is used by the [SpikeInterface](https://github.com/SpikeInterface/spikeinterface) package to attach probe information to a recording object.
You can find detailed documentation in the [SpikeInterface documentation](https://spikeinterface.readthedocs.io/en/latest/modules/core.html#handling-probes).

In practice, ProbeInterface is a lightweight package to handle:

* probe contact geometry (both 2D and 3D layouts)
* probe shape (contour of the probe, shape of channel contact, ...)
* probe wiring to device (the physical layout often doesn't match the channel ordering)
* combining several probes into a device with global geometry + global wiring
* exporting probe geometry data into JSON files
* loading existing probe geometry files (Neuronexus, imec, Cambridge Neurotech...) [Started here](https://gin.g-node.org/spikeinterface/probeinterface_library)
* probe shape (contour of the probe, shape of channel contacts, etc.)
* probe wiring to a device (the physical layout often doesn't match the channel ordering)
* combining several probes into a device, with probe groups and a global wiring
* exporting probe data into a common JSON file format
* loading existing probe geometry files (Cambridge Neurotech, NeuroNexus, etc.) from the [probeinterface_library](https://github.com/SpikeInterface/probeinterface_library)

In addition, ProbeInterface also offers the following features:

* `matplotlib`-based plotting functions
* loading/saving probes using common formats (PRB, CSV, NWB, ...)
* correctly handling SI units (um, mm)


## Documentation

Detailed documentation of the latest PyPI release of ProbeInterface can be found [here](https://probeinterface.readthedocs.io/en/0.2.18).

Detailed documentation of the development version of ProbeInterface can be found [here](https://probeinterface.readthedocs.io/en/latest).

## How to install probeinterface

You can install the latest version of `probeinterface` version with pip:

Bonus :
```bash
pip install probeinterface
```

* optional plotting (based on `matplotlib`)
* load/save geometry using common formats (PRB, CSV, NWB, ...)
* handle SI length units correctly um/mm/...
To get the latest updates, you can install `probeinterface` from source:

```bash
git clone https://github.com/SpikeInterface/probeinterface.git
cd probeinterface
pip install -e .
cd ..
```

Target users/projet :

* spikeinterface team : integrate this into spikeextractor for channel location
* neo team : handle array_annotations for AnalogSignal
* spikeforest team : use this package for ploting probe activity
* phy team: integrate for probe display
* spyking-circus team : handle probe with this package
* kilosort team : handle probe with this package
* tridesclous team : handle probe with this package
* open ephys team : automatically generate channel map configuration files
## Citation

If you find ProbeInterface useful in your research, please cite:

Author: Samuel Garcia
```bibtex
@article{garcia2022probeinterface,
title={ProbeInterface: a unified framework for probe handling in extracellular electrophysiology},
author={Garcia, Samuel and Sprenger, Julia and Holtzman, Tahl and Buccino, Alessio P},
journal={Frontiers in Neuroinformatics},
volume={16},
pages={823056},
year={2022},
publisher={Frontiers Media SA}
}
```
1 change: 1 addition & 0 deletions doc/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Release notes
.. toctree::
:maxdepth: 1

releases/0.2.18.rst
releases/0.2.17.rst
releases/0.2.16.rst
releases/0.2.15.rst
Expand Down
30 changes: 30 additions & 0 deletions doc/releases/0.2.18.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
probeinterface 0.2.18
---------------------

Oct, 30th 2023


Features
^^^^^^^^

* Extend probe constructor (name, serial_number, manufacturer, model_name) (#206)
* Extend available NP2 probe types to commercial types (20** series) (#217)
* Remove :code:`with_channel_index` argument from :code:`plot_probe` (#229)
* Remove checker for unique contact ids in probe group (#229)
* Unify usage of "contact" and remove "channel" notation (except for "device_channel_index") (#229)


Bug fixes
^^^^^^^^^

* Fix shank_pitch to NP-2.4 in SpikeGLX (#205)
* Fix y_shift_per_column docs and add assertion (#212)
* Change np.in1d to np.isin as the former will be deprecated (#220)
* Fix contour of NP2.0 for Open Ephys Neuropixels (#224)

Docs
^^^^

* Add available pathways in 'Automatic wiring' docs (#213)
* Add Typing and Update Docstrings (#214)
* Add more details to how to contribute (#222)
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ test = [
docs = [
"pillow",
"sphinx-gallery",
"sphinx_rtd_theme",
"matplotlib==3.2.2",
"scipy",
"pandas",
Expand Down

0 comments on commit aa4257e

Please sign in to comment.