catalystneuro / neuroconv

Create NWB files by converting and combining neural data in proprietary formats and adding essential metadata.
https://neuroconv.readthedocs.io
BSD 3-Clause "New" or "Revised" License
50 stars 22 forks source link

[Feature]: Support Plexon data types #204

Closed bendichter closed 1 month ago

bendichter commented 1 year ago

What would you like to see added to NeuroConv?

We should add support for Plexon data types. Plexon writes data to .plx and .pl2 and offline sorters write data to .ddt and .nex.

Is your feature request related to a problem?

No response

Do you have any interest in helping implement the feature?

No.

Code of Conduct

khussein7 commented 10 months ago

Hi! Has there been development into converting .pl2 files into nwb without dependencies from Plexon's Python SDK (e.g., dll files), especially for Apple Silicon users? Thanks in advance for your help.

CodyCBakerPhD commented 10 months ago

@khussein7 Last known work was from https://github.com/NeuralEnsemble/python-neo/issues/1124 leading to https://github.com/NeuralEnsemble/python-neo/pull/1214 which has not been released officially yet but could be used from a dev branch

If there are issues specific to Apple Silicon using our PlexonInterface here on NeuroConv applied to a .pl2 file, with that dev mode of neo master branch installed in the environment, I'd say chime in on the original issue https://github.com/NeuralEnsemble/python-neo/issues/1124 to see if that's even something that could be supported given the technological nature of the DLL reader over there

bendichter commented 2 months ago

I'm going to reopen this for the pl2 datatype, which was just requested during the Conversion Workshop

CodyCBakerPhD commented 2 months ago

Looks like we just need to route to the other recording extractor for pl2: https://github.com/SpikeInterface/spikeinterface/blob/17ee78552ddff147e1aaefcac70364c4a8520d99/src/spikeinterface/extractors/tests/test_neoextractors.py#L356

bendichter commented 2 months ago

@h-mayorquin , can you look into this?

h-mayorquin commented 2 months ago

I took a first stab at this. There are some error in windows that I found here: https://github.com/SpikeInterface/spikeinterface/pull/2937

I will sit on my windows machine and work on this later this week.

bendichter commented 2 months ago

@h-mayorquin we have another request for pl2. Would it be possible to build a data interface for this? What are the issues with Windows?

h-mayorquin commented 2 months ago

Some errors: https://github.com/NeuralEnsemble/python-neo/issues/1349

Plus, some that I got in the CI on spikeinterface.

h-mayorquin commented 2 months ago

Another problem at the base:

https://github.com/NeuralEnsemble/python-neo/issues/1366

Would be good to get some data for this case @bendichter

h-mayorquin commented 2 months ago

OK, I have reproduced the windows error here in the CI.

This is good.

For Mac, I will first try to set the right environment variable but we might also need to change the logic to access the ddl on neo:

https://github.com/NeuralEnsemble/python-neo/blob/1a7f60e2d75176b6df00fd7a2d1344772d223174/neo/rawio/plexon2rawio/plexon2rawio.py#L108-L117

Let's try.