catalystneuro / ndx-extracellular-channels

BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Should `ContactsTable.relative_position_in_um` be optional? #5

Open h-mayorquin opened 3 months ago

h-mayorquin commented 3 months ago

Follow up on #1 from this comment of @rly

I'm not sure. ChannelsTable requires Probe, Probe requires ProbeModel, ProbeModel requires ContactsTable, and ContactsTable requires relative_position_in_um. So already the user must know the position of each contact on the probe. I think the user will also know the mapping of their data to contacts on a probe in most cases because that's usually needed to interpret the data. I get that's not always the case. For those who don't, we could propose that they specify an identity mapping and set the relative_position_in_um values to all NaN to indicate they don't know which contact is which.

As I understand, people using tetrodes usually do not know the relative position of individual contacts. Should ContactsTable.relative_position_in_um be optional?

I think yes. They should be optional. I spend the morning looking for cases where the concept of relative positions or probe geometry might not make sense. Here are some:

Plus the tetrode case that you mentioned where even the notion of "probe_model" does not make sense I think. If we are thiinking on probe model as a "catalogue object" that is reliably reproduce with certain characteristics then surely self-made tetrodes do not fall into this. In addition, the concept of "probe_model" probably does not make sense for the cases described in the links above

So I think the relative_positions should be optional and in consequence I also don't think the map to contacts should be required by default.

What do you think?

Btw, I found this paper which I think is a very useful reference. I don't know if you are familiar with it: https://www.nature.com/articles/s41583-019-0140-6