NeuralEnsemble / python-neo

Neo is a package for representing electrophysiology data in Python, together with support for reading a wide range of neurophysiology file formats
http://neo.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
324 stars 248 forks source link

Cannot read .smrx #1242

Open sykesva opened 1 year ago

sykesva commented 1 year ago

I'm trying to open a .smrx file (~380 MB) with CedIO, however, it only finds that there are 1 block and 1 segment. When I'm trying to read those there are no data (empty lists of analogsignals, spiketrains etc.) and even no metadats except the file path.

I'm trying to do it the way I've been doing for years: import neo reader = neo.io.CedIO(filename) data = reader.read(lazy=True)[0].segments[0] # also tried False

I'm not sure if I can share the file publicly so let me know if you need it, and I'll share it privately somehow.

So, there are obviously data considering the file size, and it's not read for some reason. Can it be due to the absence of .pos and .ent file? I read in the docs that there are such arguments in CedIO initialization.

I also tried to open the file using Spike2IO just in case, and it unsurprisingly resulted in the KeyError for channel names or types (expected since there is such an issue thread previously created).

Environment:

sykesva commented 1 year ago

In Sonpy docs (used in CedIO), I found that it requires 3.9 <= Python version < 3.10, so I tried (in Anaconda) Python 3.9.16, Neo 0.12.0, Sonpy 1.9.5, NumPy 1.24.2, it didn't work as well

JuliaSprenger commented 1 year ago

Hi @cyberfag, if you want to provide the file you can upload it here. Do you have any idea in what aspect this file might be different than your other smrx files (different version used for recording, problems during the recording, ...)?

samuelgarcia commented 1 year ago

Did you opened an issue also on sonpy side ?

sykesva commented 1 year ago

Hi @JuliaSprenger , I uploaded the only smrx file I have so far via the link you provided. Honestly, I have no idea if there is something special about the recording because it was provided by other laboratory, so I barely have any information except the animal used and approximate description of channels. Thx for your response.

sykesva commented 1 year ago

Hi @samuelgarcia , no, I haven't, should I? I just thought that it would confuse them because I didn't use SonPy directly and I used it through Neo which they are not responsible for

JuliaSprenger commented 1 year ago

Hi @cyberfag, the issue with your file is that it does not contain any channels containing Adc or AdcMark data, but only TextMark and RealWave. Do you have any idea what kind of data should be in there? EDIT: According to the channel titles there should be Epochs, Training, Autoscore, EEG and EMG data in that file. Are you sure there's also microelectrode data in there? If you have specifications for the TextMark and RealWave signal we could extend the IO to also support this....

sykesva commented 1 year ago

@JuliaSprenger there should be several animal EEG channels and presumable the same number of hypnogram channels (those are like artificial channels marking what stage of sleep/waking was observed in the animal at the time). The latter could actually be of TextMark type as far as I understand

JuliaSprenger commented 1 year ago

Hi @cyberfag Do you have any general specification on the data format for TextMark or RealWave data? Without this it will be difficult to extend the IO to support also these signals.

sykesva commented 1 year ago

@JuliaSprenger I am sorry for the delayed response. Unfortuantely, I'dont have any specifications, but now I think that the hypnograms I mentioned above are more likely recorded as "Epochs" rather than mysterious "TextMark". Actually, can you reveal how exactly you extracted channel titles? Because I can't even do this using neo 0.12.0 and sonpy 1.8.5