Repository navigation
Add shank thickness to definition #73
Description
Activity
I think it's a great idea and we can definitely add it to the format. Many of us will be off over the next couple of weeks so let's aim to get this integrated by the end of the month!
Reacted by Kenneth Yang@samuelgarcia @h-mayorquin I think this is a good idea. We should probably add it optionally to the schema and ask the various manufacturers for this piece of info
Hi, yes, I was thinking about it yesterday, I have collected some, I will publish an issue soon with some open questions though.
For Neuropixels the thickness is already available. imec's probe features table (the one probeinterface ships) has
shank_thickness_umfor every part number: 24 µm for the 1.0 and 2.0 rodent probes (including the Quad, NP2020), 30 µm for NXT and 35 to 132 µm for the NHP probes. Our reader uses the shank width and tip length from that table to draw the contour but drops the thickness. I opened SpikeInterface/probeinterface#467 to store it as ashank_thickness_umannotation. While writing this I realized that @alejoe91 already merged that PR (great!) so that will be in the next release.A few questions that would be good to discuss with you about Neuropixels as that will help us with our general design questions:
- imec's number is the silicon only. For the rodent probes that is the whole shank, but some NHP variants have a tube underneath or around the shank (NP1040, NP1050) or a parylene coating. Is the silicon thickness what you want for drawing, or do you need the outer size?
- Besides the shank thickness, what other geometry would be useful for a tool like Pinpoint? For example the base dimensions, the shank length or the tip length. Some manufacturers publish those (Plexon's datasheets give the base width, length and thickness) but we don't store them. From np2.0 quad 3d model VirtualBrainLab/Pinpoint#738 I understand you take the base and headstage from CAD models right now.
Finally, I am working on anatomical localization integration through NWB, what would be a good way to reach you? I would like to talk about it
Thanks for addressing this issue! I'm going to add @dbirman to the convo who is the current active maintainer for Pinpoint. The new version of Pinpoint is being developed here: https://github.com/AllenNeuralDynamics/pinpoint and is live here: https://pinpoint.allenneuraldynamics.org/v5/#/. You can launch it and see what a probe looks like (or install more probes).
Essentially, we now represent probes by their shank contour geometry from probeinterface and then use fake proxy geometry for the head stage and rod (or custom uploaded 3D models). Right now, we've been hardcoding a value until there is some sort of standardized way to read it from all manufacturers. Maybe in the interim we can pick up the new annotation value for Neuropixels, but in general we're trying not to do one-off implementations like that since it makes long-term maintenance harder. So, some optional but standardized value that provides shank thickness would be great. This goes for rodent and the other types of probes as well. We haven't considered implementing the probes with fiber tubes, but if there is a standardized way to represent those, we can look into it (right now it's assumed to be a custom 3D model users add).
Besides shank thickness, any standardized way to represent the head stage and total bounding box for the probe would be fantastic. I see that Plexon has this data, but again we're trying not to do manufacturer-specific implementations. We currently use fake proxy geometry by default (just a cone extending from the base of the shanks), or users can provide their own models if they have them. It would be great if headstage dimensions could be provided so our proxy geometry can be more representative of the probe. Visual detail doesn't matter here; just the bounds would be fine.
Another thing that would be nice, but probably very difficult, would be some way to encode possible combinations of active contacts in a standardized way. Right now we aren't handling this and simply provide a way for the user to move a sliding window on the shank to "select" the window of active contacts. If values for which groups of contacts can be active at the same time, or something like that, could be made available, we can provide a more realistic way to show only active contacts.
For the localization stuff, it's probably best to talk to Dan about that, but I'd be happy to stay in the loop so I know what's going on and answer questions about Pinpoint. I'm probably disappointing Dan here by continuing to contribute even though I'm supposed to be working on my PhD 😝
Hi,
I'm one of the developers of Pinpoint. We're working on integrating the library into our system and would like to have shank/probe thickness information available in the JSON.
With the contour information, we can generate probe shapes, but as a 3D application, we also need thickness information to complete the probe. Currently, we are using a nominal depth, but it would be great if the actual depth of the probe could be made available.
Thank you!