SpikeInterface/probeinterface

`PRB2_4_2_0640_0` not supported?

Closed this issue · 2 comments

Hello, I'm having issues converting some neuropixels (spikeglx) data to NWB, and it seems the package giving the error is probeinterface.
Is this something that's really missing and should be added by you, or are some of the higher-level packages at fault?

(reposit) [typhon]/mnt/DATA/data/studies/manish/mvmnda/rawdata/code ❱ cat reposit.py
from datetime import datetime
from dateutil import tz
from pathlib import Path
from neuroconv.converters import SpikeGLXConverterPipe
import json

dir_path = "/mnt/DATA/data/studies/manish/mvmnda/sourcedata/Ach_DualPixel_7_14_23/Ach_DualPixel_7_14_23_g0"
#dir_path = "/mnt/DATA/data/studies/manish/mvmnda/sourcedata/sub-pixelfiber/M387-2023-10-20_g0"
#dir_path = "../../sourcedata/M387-2023-10-20_g0"
converter = SpikeGLXConverterPipe(folder_path=dir_path)

# Extract what metadata we can from the source files
metadata = converter.get_metadata()

# The following doesn't work as per the guide ( https://neuroconv.readthedocs.io/en/main/conversion_examples_gallery/recording/spikeglx.html#single-stream ), apparently no session_start_time is read in:
#session_start_time = metadata["NWBFile"]["session_start_time"].replace(tzinfo=tz.gettz("US/Pacific"))
# So we do:
session_start_time = datetime.now(tz.tzlocal())
metadata["NWBFile"].update(session_start_time=session_start_time)

# Choose a path for saving the nwb file and run the conversion
nwbfile_path = "/mnt/DATA/data/studies/manish/mvmnda/rawdata/my_spikeglx_session.nwb"
converter.run_conversion(nwbfile_path=nwbfile_path, metadata=metadata)
(reposit) [typhon]/mnt/DATA/data/studies/manish/mvmnda/rawdata/code ❱ python reposit.py
Traceback (most recent call last):
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/reposit.py", line 10, in <module>
    converter = SpikeGLXConverterPipe(folder_path=dir_path)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/neuroconv/datainterfaces/ecephys/spikeglx/spikeglxconverter.py", line 64, in __init__
    interface = SpikeGLXRecordingInterface(file_path=file_path)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/neuroconv/datainterfaces/ecephys/spikeglx/spikeglxdatainterface.py", line 76, in __init__
    super().__init__(
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/neuroconv/datainterfaces/ecephys/baserecordingextractorinterface.py", line 32, in __init__
    self.recording_extractor = self.get_extractor()(**source_data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/spikeinterface/extractors/neoextractors/spikeglx.py", line 63, in __init__
    probe = pi.read_spikeglx(meta_filename)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/probeinterface/io.py", line 1262, in read_spikeglx
    probe = _read_imro_string(imro_str=imro_table, imDatPrb_pn=imDatPrb_pn)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/DATA/data/studies/manish/mvmnda/rawdata/code/venvs/reposit/lib/python3.11/site-packages/probeinterface/io.py", line 1094, in _read_imro_string
    raise NotImplementedError(f"Probe part number {imDatPrb_pn} is not supported yet")
NotImplementedError: Probe part number PRB2_4_2_0640_0 is not supported yet

may be would be easier to figure out if a sample file is shared somewhere?

Hi guys, I'll make a PR to add that probe part number to the internal list.

@TheChymera do you know what NP probe model PRB2_4_2_0640_0 corresponds to?