-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ENH: sEEG and ECoG electrodes should have sensor labels in brain visualizations #12475
Comments
Adding @alexrockhill and @agramfort in case you have any thoughts about this, I'm happy to try to implement. |
Agreed, this is a good idea! At one point not too long ago, I unified the code to add sensors in |
Maybe @larsoner knows but I looked into it and couldn't see any function in |
Sounds like you want |
... and maybe this VTK example. |
Nice! Glad I asked, I tried to check vtk too but I wasn't sure what to search. Maybe a nice pyvista PR to add that or we could just add it in mne first. |
PyVista is in more maintenance mode nowadays than trying to add more stuff. I actually think vedo could be a better way to go at some point |
There's also this python VTK example of "billboard text" (I didn't know this, but apparently that refers to text that follows the camera). Can we use |
Yes |
Thoughts on fury as a backend? Looks like another wrapper of VTK |
Based on a quick look vedo looks more complete but who knows |
This would be a pretty large change though, no? I think the vtk billboard text seems fine as a solution for this particular problem. I did look into fury a bit last year at Neurohackademy but I’m not totally sure on a total replacement just for something like this. Will try to add more on this soon, but have some upcoming travel so won’t be able to get to this for a little while. On Mar 11, 2024, at 15:58, Eric Larson ***@***.***> wrote:
Based on a quick look vedo looks more complete but who knows
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Yes don't switch as part of fixing this issue |
Sorry a bit off topic from the main thread |
Describe the new feature or enhancement
Since sEEG and ECoG montages differ substantially from participant to participant and there is no "default" montage like in EEG, we should have a way to show the labels for each electrode in the
mne.viz.Brain
. For example, even electrodes within the same brain area can have wildly different names (in our lab, sometimes the electrode RPPST might be in the same area as one named PST-PH or PTG-HG, so it's anyone's guess where they actually are unless you label them). Having the option to include the sensor labels inadd_sensors
would be very helpful for interpreting evoked activity or analyses on individual electrodes.Describe your proposed implementation
in
brain.add_sensors()
in mne.viz.Brain, I propose thatsensor_labels
be added as a boolean argument, where the labels would be taken directly frominfo['ch_names']
. I'm not sure the best way to implement this based on the 3D viewer, since ideally these would be labels that are not added like the title text but instead would follow the electrode in 3D and be tied to the x, y, z coordinate of each electrode sphere (offset by a tiny amount so the electrode itself is still viewable, and maybe ideally with some control over the font size and characteristics).In spirit, this is kind of like how in mne.viz.plot_montage you can have the
show_names=True
argument.Example for a grid shown below:
and for sEEG:
For the user, this is helpful when interpreting analyses, and I wouldn't necessarily include all the electrode labels like this in a paper figure, but it's really helpful when exploring the data.
Describe possible alternatives
sensor_labels
could also be passed as a list if the user wanted to manually specify their names for some reason (maybe they want to have shorter names or want to name them by function?), but I think this is probably a less realistic usage. Open to opinions.Additional context
No response
The text was updated successfully, but these errors were encountered: