spikeinterface: "NotImplementedError: This meta file version of spikeglxis not implemented" error when running read_spikeglx() and get_neo_streams() on npx data

I’m trying to follow the “Analyse Neuropixels datasets” tutorial and am getting stuck at the first step when trying to analyze my own neuropixels data acquired with Neuropixel 1.0-NHP probes and SpikeGLX, with default settings. Data folder contains .imec0.ap.meta, .imec0.ap.bin, .imec0.lf.bin and .imec0.lf.meta files. Running either si.get_neo_streams or si.read_spikeglx() results in a “NotImplementedError: This meta file version of spikeglxis not implemented”.

Does data need to be in a specific format for the spikeinterface to work? FYI, binary files acquired with Open Ephys using the same probes work fine using si.read_openephys().

stream_names, stream_ids = si.get_neo_streams('spikeglx', path) stream_names

NotImplementedError                       Traceback (most recent call last)
Cell In[7], line 1
----> 1 stream_names, stream_ids = si.get_neo_streams('spikeglx', path)
      2 stream_names

File [c:\Users\ndolensek\mambaforge\envs\spikeinterface\lib\site-packages\spikeinterface\extractors\neoextractors\neo_utils.py:26](file:///C:/Users/ndolensek/mambaforge/envs/spikeinterface/lib/site-packages/spikeinterface/extractors/neoextractors/neo_utils.py:26), in get_neo_streams(extractor_name, *args, **kwargs)
      5 """Returns the NEO streams (stream names and stream ids) associated to a dataset.
      6 For multi-stream datasets, the `stream_id` or `stream_name` arguments can be used 
      7 to select which stream to read with the `read_**extractor_name**()` function.
   (...)
     23     List of NEO stream ids
     24 """
     25 neo_extractor = get_neo_extractor(extractor_name)
---> 26 return neo_extractor.get_streams(*args, **kwargs)

File [c:\Users\ndolensek\mambaforge\envs\spikeinterface\lib\site-packages\spikeinterface\extractors\neoextractors\neobaseextractor.py:142](file:///C:/Users/ndolensek/mambaforge/envs/spikeinterface/lib/site-packages/spikeinterface/extractors/neoextractors/neobaseextractor.py:142), in NeoBaseRecordingExtractor.get_streams(cls, *args, **kwargs)
    139 @classmethod
    140 def get_streams(cls, *args, **kwargs):
    141     neo_kwargs = cls.map_to_neo_kwargs(*args, **kwargs)
--> 142     neo_reader = get_reader(cls.NeoRawIOClass, **neo_kwargs)
    144     stream_channels = neo_reader.header['signal_streams']
    145     stream_names = list(stream_channels['name'])

File [c:\Users\ndolensek\mambaforge\envs\spikeinterface\lib\site-packages\spikeinterface\extractors\neoextractors\neobaseextractor.py:14](file:///C:/Users/ndolensek/mambaforge/envs/spikeinterface/lib/site-packages/spikeinterface/extractors/neoextractors/neobaseextractor.py:14), in get_reader(raw_class, **neo_kwargs)
...
    407                                   'is not implemented')
    408 else:
    409     stream_kind = ''

NotImplementedError: This meta file version of spikeglxis not implemented

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 22 (12 by maintainers)

Most upvoted comments

Nate : thank you for all the details and Alessio for your insvestigation.

Hi Alessio, thanks for such a quick reply! SpikeGLX version is the most recent one available on the website, release v20230120-phase30. I’m attaching the .ap.meta file here (zipped due to github file type restrictions): rec1_g0_t0.imec0.ap.zip Nate