Closed h-mayorquin closed 2 years ago
The project that used this data can be found here for reference on how to map this to NWB: https://github.com/catalystneuro/mease-lab-to-nwb/blob/main/mease_lab_to_nwb/convert_ced/cedstimulusinterface.py
Now, if you're saying that the new neo
/SI version loads ALL those channels, then yeah we definitely need to restore the smrx_channel_indices
argument to specify (mainly through peeling off using a SubRecording
), through we ought to at least support a default of writing all the RhD
channels which are clearly neurophysiology recordings of the classic sense.
Now, all of these are technically 'ElectricalSeries' since they are in voltages, but they wouldn't have linked pynwb.Electrodes
(only for ecephys
channels) and as such are added as pynwb.TimeSeries
with 'V' units.
The project that used this data can be found here for reference on how to map this to NWB: https://github.com/catalystneuro/mease-lab-to-nwb/blob/main/mease_lab_to_nwb/convert_ced/cedstimulusinterface.py
Now, if you're saying that the new
neo
/SI version loads ALL those channels, then yeah we definitely need to restore thesmrx_channel_indices
argument to specify (mainly through peeling off using aSubRecording
), through we ought to at least support a default of writing all theRhD
channels which are clearly neurophysiology recordings of the classic sense.
Yes, neo version loads ALL those channels, but so did the old version without the smrx_channel_ids
argument. The problem, from my perspective, is to know which channels belong to which class. If the code that is written here is general (in the sense that Cambridge Electronic Design consistently uses those names):
Then we could just implement a binary variable that either loads the electrical readings or the stimuli.
Now, all of these are technically 'ElectricalSeries' since they are in voltages, but they wouldn't have linked
pynwb.Electrodes
(only forecephys
channels) and as such are added aspynwb.TimeSeries
with 'V' units.
I don't think this is correct. One of them (channel 67) has units of grams.
(in the sense that Cambridge Electronic Design consistently uses those names):
I believe the user controls those channel names, so not entirely reliable. But anything with an Rhd
text in the name is definitely a neural electrode (intan
board/probe).
Yes, neo version loads ALL those channels, but so did the old version without the smrx_channel_ids argument.
OK so we just have to split them at the data interface level, then. My point being I don't think the design of the class method for getting channels ids and then passing them into the __init__
as smrx_channel_ids
was the best way to go. Perhaps a post-__init__
function for deciding, after the extractor is initialized, how to subset the channels for neural data? And this could be done without user intervention when the neural channels are of a form we can identify (like Rhd
). The Stim channels would always rely on a secondary interface regardless so our primary CED interface doesn't need to deal with them.
I don't think this is correct. One of them (channel 67) has units of grams.
Good eye - CED_mech
is definitely not electrical!
Hi, I am looking at the gin data for CED and I found the following:
The output is:
So, some of the channels are not electrical series. We have events, laser and mechanical stimulation. Plus, channel 68 is LFP. It appears to me that these channels should not be written as an electrical series but I don't know how standard the channel naming is and how to deal with it. Maybe someone who knows the format more could advice.
Related: https://github.com/NeuralEnsemble/python-neo/issues/1133