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.
Follow up on #1 from this comment of @rly
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