I'm sure by now you know about the NWB inspector 😉 so I won't harp too much on that. That said not every Best Practice has a check over there, so might still want to give it a quick glance to ensure you're following basic principles.
Just a summary from our quick meeting
Electrode Table
x,y,z on the electrodes table are for standardized coordinates in the subjects brain: if a mouse, then Allen CCF v3. They should be np.nan if unknown
impedence default (if unknown) ought to be -1
rel_x, rel_y, rel_z are for probe geometry
If using NeuroConv, these would all be taken care of for you via ProbeInterface (well, assuming it parses that info from the Neuralynx recording extractor, that may be a question for them on the SpikeInterface repo). If it's not supported right now, if you request it I assume they'd be happy to add it if possible.
General recommendations
I'd recommend building a stub mode for getting fast, small NWB file outputs for easier debugging. Usually we just do 100 frames from each channel.
if using SpikeInterface, this is easy to do with your_recording.frame_slice(end_frame=100)
if using NeuroConv data interfaces, it's just your_interface.run_conversion(..., stub_test=True)
We've found YAML files to be easier for users to modify for metadata that needs to be manually specified; but it's whatever the lab is most comfortable with at the end of the day
It's incredibly important to ensure those future data types are temporally aligned to the timestamps_reference_time of the NWB file (by default, the session_start_time; typically the start of the main continuous signal). Please get back in touch when you know more about all that.
I'm sure by now you know about the NWB inspector 😉 so I won't harp too much on that. That said not every Best Practice has a check over there, so might still want to give it a quick glance to ensure you're following basic principles.
Just a summary from our quick meeting
Electrode Table
x,y,z
on the electrodes table are for standardized coordinates in the subjects brain: if a mouse, then Allen CCF v3. They should benp.nan
if unknownimpedence
default (if unknown) ought to be-1
rel_x, rel_y, rel_z
are for probe geometryIf using NeuroConv, these would all be taken care of for you via ProbeInterface (well, assuming it parses that info from the Neuralynx recording extractor, that may be a question for them on the SpikeInterface repo). If it's not supported right now, if you request it I assume they'd be happy to add it if possible.
General recommendations
stub
mode for getting fast, small NWB file outputs for easier debugging. Usually we just do100
frames from each channel.your_recording.frame_slice(end_frame=100)
your_interface.run_conversion(..., stub_test=True)
timestamps_reference_time
of the NWB file (by default, thesession_start_time
; typically the start of the main continuous signal). Please get back in touch when you know more about all that.