Skip to content

Support pobes whose geometry is chosen at order time #81

Description

@h-mayorquin

Right now every entry in the library is a part number that pins the whole geometry: NP1000, ASSY-325D-F, A4x8-5mm-100-400-177. For those a lookup is the right answer.

However, some manufacturers let the buyer choose part of the geometry when ordering, so the model name alone does not determine the probe:

  • NeuroNexus sells many designs with a 15 or 50 µm thick shank and adds the thickness as a suffix to the part number (A1x32-6mm-50-177-H16-50). Our model names stop before the suffix.
  • Diagnostic Biochips Deep Array datasheets say "please specify the shank length", up to 90 mm. The six DA* files in the library draw the contour to y = 90000 µm, so they picked the maximum without saying so. The contacts are fine as they are measured from the tip.
  • Blackrock Utah arrays have the needle length (0.5 to 1.5 mm), the grid size and the channel count chosen per order, with no part number at all.
  • Plexon U-Probe, V-Probe and S-Probe (channel count, spacing, shaft length) and CorTec AirRay grids work the same way. They are not in the library because there is no single file we could add.

A file for one of these looks exactly as authoritative as NP1000, but it answers a question it can't answer. Somebody with a 1.0 mm Utah array would load a 1.5 mm file and nothing would warn them.

What I have in mind (I tried it on a local branch with the Utah array):

  1. probeinterface gets a generator per family, next to generate_multi_shank, that fixes what the manufacturer fixes and takes the ordered values as arguments with no defaults, e.g. generate_utah_array(needle_length_um, rows, cols).
  2. The library keeps one entry per family that lists the fixed values, the free parameters with their units and published ranges, and the generator to call, instead of a probe file. A widget that allows to explore the parmameter options, changes so you can visualize when you pick them and gives you the python snippet to load it.
  3. Entries that are a real part number stay as they are.

The NeuroNexus thickness option also came up in SpikeInterface/probeinterface#452.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions