You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The private function _read_imro_string is the one actually used by SpikeGLX and Open Ephys, while read_imro is just a wrapper around it that, for a reason that I can't remember, is exposed.
To make read_imro work, we need quite a bit of logic to infer the imDatPrb_pn (probe model number) from imDatPrb_type (probe type). This code is complex and since it was determined through trial and error when we did not have a general table, maybe not very reliable:
This was necessary when our probe descriptions were based on the probe type. However, now that the official metadata table is organized around imDatPrb_pn (probe part number), this complexity is no longer needed. In other words, this logic doesn’t serve the key functionality anymore, which is reading neuropixel metadata.
Additionally, I’m not sure exposing the functionality to read IMRO tables on their own makes sense. These tables are embedded in the meta file, and trying to read them independently seems like a feature no one has asked for.
Proposed solution:
Move the logic for inferring imDatPrb_pn from imDatPrb_type out of the core function (_read_imro_string) and into the wrapper (read_imro), keeping the complexity at the periphery.
If there is no use for stand-alone reading of imro tables then deprecate read_imro and eventually remove it. This will allow us to eliminate code that is no longer needed now that we can rely on the metadata table.
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
When discussing this pull request with @chrishalcrow, I’ve been thinking about the following:
Why do we expose
read_imro
directly?The private function _
read_imro_string
is the one actually used by SpikeGLX and Open Ephys, while read_imro is just a wrapper around it that, for a reason that I can't remember, is exposed.To make
read_imro
work, we need quite a bit of logic to infer theimDatPrb_pn
(probe model number) fromimDatPrb_type
(probe type). This code is complex and since it was determined through trial and error when we did not have a general table, maybe not very reliable:probeinterface/src/probeinterface/neuropixels_tools.py
Lines 633 to 651 in 27137e9
This was necessary when our probe descriptions were based on the probe type. However, now that the official metadata table is organized around
imDatPrb_pn
(probe part number), this complexity is no longer needed. In other words, this logic doesn’t serve the key functionality anymore, which is reading neuropixel metadata.Additionally, I’m not sure exposing the functionality to read IMRO tables on their own makes sense. These tables are embedded in the meta file, and trying to read them independently seems like a feature no one has asked for.
Proposed solution:
imDatPrb_pn
fromimDatPrb_type
out of the core function (_read_imro_string) and into the wrapper (read_imro), keeping the complexity at the periphery.read_imro
and eventually remove it. This will allow us to eliminate code that is no longer needed now that we can rely on the metadata table.The text was updated successfully, but these errors were encountered: