Skip to content

int-brain-lab/viewephys

Repository files navigation

viewephys

Neuropixel raw data viewer

Installation

pip install viewephys

Alternatively, in development mode:

git clone https://github.com/int-brain-lab/viewephys.git
cd viewephys
pip install -e .

Supported environments

This is compatible with the IBL environment

Otherwise, you can create a new environment as such:

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 through the command line

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

alt text

Alternatively you can point the viewer to a specific file using the command line:

viewphys -f /path/to/raw.bin

Load in a numpy array or slice

viewephys can be used through the Python console or iPython, allowing you to create multiple instances of the viewer at once.

# 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)

# We can open multiple windows at once, but they must have different titles
data2 = data * 50
ve2 = viewephys(data, fs=fs, title="plot 2")

alt text

Note if you are running through a script, you need to instantiate the Qt application yourself:

Opening a binary file through a script

from viewephys.gui import EphysBinViewer, create_app

app = create_app()

viewer = EphysBinViewer(r"C:\Users\Joe\Desktop\1119617_LSE1_shank12_g0_imec0\1119617_LSE1_shank12_g0_t0.imec0.ap.bin")

app.exec()

Load in a numpy array or slice through a script

import numpy as np
from viewephys.gui import viewephys, create_app

app = create_app()

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)
ve2 = viewephys(data * 50, fs=fs, title="plot 2")

app.exec()

Contribution

Fork and PR.

Pypi Release checklist:

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

About

Neuropixel raw data viewer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages