WaveformView (geometry mode): Alt + wheel scales x around probe x = 0, so snippets shift instead of widening on channels far from x = 0
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Start in waveformview.py at the initialization around line 78 and the geometry drawing sites around lines 468, 587, 632, 1087, 1239, and 1314; compare the Qt and Panel paths, including the Panel factor update around line 1049. Check existing waveform-view tests and reproduce with a unit on a contact far from x = 0. Done when Alt + wheel widens snippets around their contact positions across shanks without shifting them out of view.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
In the WaveformView in geometry mode, Alt + mouse wheel (widen/narrow x axis) multiplies the absolute x coordinates of the snippets by factor_x. Each snippet is built around its contact position:
waveformview.py, line 78
self.xvect[chan_ind, :] = np.linspace(x - espx, x + espx, num=width)
and is then drawn as:
waveformview.py, line 468 (also lines 587, 632, 1087, 1239, 1314)
xvectors = self.xvect[common_channel_indexes, :] * self.factor_x
So the scaling happens around x = 0 of the probe, not around each contact. For units on contacts near x = 0 the snippet widens as expected. For units on contacts far from x = 0, each wheel step mostly translates the snippet sideways (by about 30% of its x position, since factor_x changes by a factor of 1.3). Because the refresh keeps the view range (keep_range=True), the waveform appears to move rather than widen and soon leaves the view.
This is very visible on multi-shank probes. With a Neuropixels 2.0 4-shank probe (shanks about 250 µm apart), widening works on shank 0 and is unusable on shanks 1–3.
To reproduce:
Open a SortingAnalyzer from a multi-shank probe (or any probe with contacts at large x).
In WaveformView (geometry mode), select a unit on a contact far from x = 0.
Alt + mouse wheel: the snippet slides horizontally instead of widening in place.
Expected: the snippet widens around its own contact position.
Possible fix: scale around each contact's x position, e.g. keep the contact x per channel and use
xvectors = xcenter[:, None] + (self.xvect[common_channel_indexes, :] - xcenter[:, None]) * self.factor_x
where xcenter holds the contact x positions of common_channel_indexes. The same applies to the other places where self.xvect * self.factor_x is used, including the Panel backend (factor_x updated at line 1049).
Environment: spikeinterface-gui 0.13.1 (same code on current main), spikeinterface 0.104.8, desktop (Qt / PySide6), Windows 10, Python 3.10.
- Lenguaje dominante
- Python
- Estrellas
- 71
- Forks
- 23
- Merge medio
- 4 d 4 h
- PR fusionados (30 d)
- 5
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de SpikeInterface/spikeinterface-gui
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
SpikeInterface/spikeinterface-gui#147 · 4 comentarios ·
-
Menu Bar Rendering WrongAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
SpikeInterface/spikeinterface-gui#40 · 3 comentarios ·
-
demo with NWBQuizá libre de nuevo @alejoe91 la tomó hace 301 días y no hay ningún pull request abierto. Abierto
SpikeInterface/spikeinterface-gui#27 · 3 comentarios · 1 asignado ·
Todos los issues de SpikeInterface/spikeinterface-gui
Issues similares
-
🐛 Bug: Calendar work items cannot be opened on mobilePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
Status: Triage Type: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Objects.List treats versions=false (and similar flags) as truePosiblemente ocupada @andaaron la tomó hoy. Abiertopriority: p2 type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
googleapis/storage-testbench#829 ·
Los mantenedores suelen responder en 2 días
-
[Bug]: memory provider treats 1:1 DMs as shared surfaces, so DM turns never receive reviewed recordsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
rlaope/oh-my-hermes#2088 ·
Los mantenedores suelen responder en 1 día