Metadata-Version: 2.1
Name: viewephys
Version: 1.1.0
Summary: Neuropixel raw data viewer
Author: Olivier Winter
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Project-URL: Homepage, https://github.com/int-brain-lab/viewephys
Project-URL: Bug Tracker, https://github.com/int-brain-lab/viewephys/issues
Requires-Python: >=3.10
Requires-Dist: easyqc>=1.3.0
Requires-Dist: ibl-neuropixel>=1.0.1
Requires-Dist: ibllib
Requires-Dist: iblutil>=1.6.0
Requires-Dist: pandas
Requires-Dist: qtpy
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: codespell; extra == "dev"
Provides-Extra: pyqt5
Requires-Dist: PyQt5>=5.15.0; extra == "pyqt5"
Provides-Extra: pyqt6
Requires-Dist: PyQt6>=6.2.0; extra == "pyqt6"
Provides-Extra: pyside2
Requires-Dist: PySide2>=5.15.0; extra == "pyside2"
Provides-Extra: pyside6
Requires-Dist: PySide6>=6.2.0; extra == "pyside6"
Provides-Extra: qt
Requires-Dist: PyQt5>=5.15.0; extra == "qt"
Description-Content-Type: text/markdown

# viewephys
Neuropixel raw data viewer

## Installation
`pip install viewephys`

Alternatively, in development mode:
```shell
git clone https://github.com/int-brain-lab/viewephys.git
cd viewephys
pip install -e .
```

### Supported environments
This is compatible with the [IBL environment](https://github.com/int-brain-lab/iblenv)

Otherwise, you can create a new environment as such:
```shell
conda create -n viewephys python=3.12
conda activate viewephys
```
And then follow the install instructions above.

## Controls
- `ctrl + z`: -3dB gain
- `ctrl + a`: +3dB gain
- `ctrl + p`: in multi-windows mode, link the displays (pan, zoom and gain)

### Pick spikes
When the picking mode is enabled (menu pick)
- left button click sets a point
- shift + left button removes a point
- control + left does not wrap on maximum around pick
- space increments the spike group number


## Examples

### Visualize raw binary file
Activate your environment and type `viewephys`, you can then load a neuropixel binary file using the file menu.

![alt text](./docs/raw_bin_viewer_destripe.png "Ephys viewer ")

Alternatively you can point the viewer to a specific file using the command line:
```shell
viewphys -f /path/to/raw.bin
```

### Load in a numpy array or slice
```python
# if running ipython, you may have to use the `%gui qt` magic command
import numpy as np
from viewephys.gui import viewephys
nc, ns, fs = (384, 50000, 30000)  # this mimics one second of neuropixel data
data = np.random.randn(nc, ns) / 1e6  # volts by default
ve = viewephys(data, fs=fs)
```
![alt text](./docs/view_rand_array.png "Ephys viewer")


## Contribution
Fork and PR.

Pypi Release checklist:
```shell
ruff check
rm -fR dist
rm -fR .pdm-build
pdm publish
twine upload dist/*
#twine upload --repository-url https://test.pypi.org/legacy/ dist/*
```
