Summary

PyOKR : une méthode semi-automatisée pour quantifier la capacité de suivi du réflexe optocinétique

Published: April 12, 2024
doi:

Summary

Nous décrivons ici PyOKR, une méthode d’analyse quantitative semi-automatisée qui mesure directement les mouvements oculaires résultant des réponses visuelles au mouvement d’une image bidimensionnelle. Une interface utilisateur et un algorithme d’analyse basés sur Python permettent un débit plus élevé et des mesures quantitatives plus précises des paramètres de suivi oculaire que les méthodes précédentes.

Abstract

L’étude des réponses comportementales aux stimuli visuels est un élément clé de la compréhension du fonctionnement du système visuel. Une réponse notable est le réflexe optocinétique (OKR), un comportement inné hautement conservé nécessaire à la stabilisation de l’image sur la rétine. L’OKR fournit une lecture robuste de la capacité de suivi d’image et a été largement étudié pour comprendre les circuits et la fonction du système visuel chez les animaux de différents antécédents génétiques. L’OKR se compose de deux phases : une phase de suivi lente lorsque l’œil suit un stimulus jusqu’au bord du plan visuel et une phase rapide compensatoire qui réinitialise la position de l’œil sur l’orbite. Les méthodes précédentes de suivi de la quantification des gains, bien que fiables, nécessitent beaucoup de main-d’œuvre et peuvent être subjectives ou dérivées arbitrairement. Pour obtenir une quantification plus rapide et reproductible de la capacité de suivi oculaire, nous avons développé un nouveau programme d’analyse semi-automatisé, PyOKR, qui permet de quantifier le mouvement bidimensionnel du suivi oculaire en réponse à tout stimulus directionnel, en plus d’être adaptable à tout type d’équipement de vidéo-oculographie. Cette méthode permet le filtrage automatisé, la sélection des phases de suivi lent, la modélisation des vecteurs oculaires verticaux et horizontaux, la quantification des gains de mouvement oculaire par rapport à la vitesse du stimulus et l’organisation des données résultantes dans une feuille de calcul utilisable pour des comparaisons statistiques et graphiques. Ce pipeline d’analyse quantitative et rationalisé, facilement accessible via l’importation PyPI, fournit une mesure rapide et directe des réponses OKR, facilitant ainsi l’étude des réponses comportementales visuelles.

Introduction

La stabilisation d’image repose sur des réponses oculomotrices précises pour compenser le flux optique global qui se produit pendant l’auto-mouvement. Cette stabilisation est principalement entraînée par deux réponses motrices : le réflexe optocinétique (OKR) et le réflexe vestibulo-oculaire (VOR)1,2,3. Le mouvement global lent à travers la rétine induit l’OKR, qui provoque une rotation réflexe des yeux dans la direction correspondante pour stabiliser l’image 1,2. Ce mouvement, connu sous le nom de phase lente, est interrompu par des saccades compensatoires, appelées phase rapide, dans lesquelles l’œil se réinitialise rapidement dans la direction opposée pour permettre une nouvelle phase lente. Ici, nous définissons ces saccades de phase rapide comme des mouvements de suivi oculaire (ETM). Alors que le VOR s’appuie sur le système vestibulaire pour provoquer des mouvements oculaires afin de compenser les mouvements de la tête3, l’OKR est initié dans la rétine par le déclenchement de l’ON et la signalisation ultérieure au système optique accessoire (AOS) dans le mésencéphale 4,5. En raison de sa dépendance directe aux circuits rétiniens, l’OKR a été fréquemment utilisé pour déterminer la capacité de suivi visuel dans les contextes de recherche et cliniques 6,7.

L’OKR a été largement étudié en tant qu’outil d’évaluation des capacités visuelles de base 2,6,8, du développement DSGC 9,10,11,12, des réponses oculo-motrices13 et des différences physiologiques entre les fonds génétiques7. L’OKR est évalué chez des animaux ayant la tête fixe et présentant un stimulus en mouvement14. Les réponses oculomotrices sont généralement capturées à l’aide d’une variété d’outils vidéo, et les mouvements de suivi oculaire sont capturés sous forme de formes d’onde OKR dans les directions horizontale et verticale9. Pour quantifier la capacité de suivi, deux paramètres principaux ont été décrits : le gain de suivi (la vitesse de l’œil par rapport à la vitesse du stimulus) et la fréquence ETM (le nombre de saccades de phase rapides sur une période donnée). Le calcul du gain a été utilisé historiquement pour mesurer directement la vitesse angulaire de l’œil afin d’estimer la capacité de suivi ; Cependant, ces calculs demandent beaucoup de main-d’œuvre et peuvent être arbitrairement dérivés sur la base de méthodes de collecte de vidéo-oculographie et de quantification ultérieure. Pour une évaluation plus rapide des OKR, le comptage de la fréquence ETM a été utilisé comme méthode alternative pour mesurer l’acuité de suivi7. Bien que cela fournisse une estimation assez précise de la capacité de suivi, cette méthode repose sur une métrique indirecte pour quantifier la réponse en phase lente et introduit un certain nombre de biais. Il s’agit notamment d’un biais de l’observateur dans la détermination de la saccade, d’une dépendance à l’égard de réponses saccadiques temporellement cohérentes sur une époque donnée et d’une incapacité à évaluer l’ampleur de la réponse de phase lente.

Afin de répondre à ces préoccupations avec les approches actuelles d’évaluation des OKR et de permettre une quantification approfondie à haut débit des paramètres OKR, nous avons développé une nouvelle méthode d’analyse pour quantifier les formes d’onde des OKR. Notre approche utilise une plate-forme logicielle accessible basée sur Python appelée « PyOKR ». À l’aide de ce logiciel, la modélisation et la quantification des réponses en phase lente des OKR peuvent être étudiées plus en profondeur et avec une paramétrisation accrue. Le logiciel fournit des évaluations quantitatives accessibles et reproductibles des réponses à une myriade de stimuli visuels, ainsi qu’un suivi visuel bidimensionnel en réponse à des mouvements horizontaux et verticaux.

Protocol

Toutes les expériences sur les animaux effectuées à la faculté de médecine de l’Université Johns Hopkins (JHUSOM) ont été approuvées par le Comité institutionnel de soin et d’utilisation des animaux (IACUC) de la JHUSOM. Toutes les expériences réalisées à l’Université de Californie à San Francisco (UCSF) ont été réalisées conformément aux protocoles approuvés par le programme institutionnel de soin et d’utilisation des animaux de l’UCSF. 1. Collecte de données comportementales Enregistrez les mouvements oculaires OKR à l’aide de la méthode de vidéo-oculographie de votre choix pour générer des données d’ondes (c’est-à-dire une série chronologique de l’angle du regard de l’œil en coordonnées sphériques).REMARQUE : Les données représentatives recueillies à JHUSOM ont été obtenues à l’aide de la chirurgie d’implantation du pilier de tête et de la vidéo-oculographie, comme décrit précédemment 9,13 (Figure 1). Les données représentatives recueillies auprès de l’UCSF ont été obtenues par la chirurgie d’implantation du poste de tête et la méthode de vidéo-oculographie, comme décrit précédemmentau point 10 (Figure 7).Notez les paramètres du stimulus et de l’enregistrement : fréquence d’images d’enregistrement, vitesse et direction du stimulus, et durées entre et après les époques du stimulus. Pour les stimuli sinusoïdaux, notez également l’amplitude et la fréquence de l’onde de stimulus. Exportez les données de vague collectées sous forme de fichier . Fichier CSV contenant des données d’ondes horizontales et verticales (azimut et élévation).Organisez les données de vague sous forme de fichiers . Fichier CSV à deux colonnes contenant des données horizontales (epxWave) et verticales (epyWave). 2. Installation d’un logiciel d’analyse Téléchargez et installez Python.Pour la supervision des graphes, installez Spyder via Anaconda. Pour vous assurer que les graphiques fonctionnent correctement dans Spyder, allez dans Outils > Préférences > la console Ipython > Graphics > Graphics Backend. Réglez Inline sur Automatique. Créez un nouvel environnement Anaconda avec Python. Installez PyOKR via PyPi avec pip install PyOKR pour installer la version la plus récente ainsi que les dépendances de paquets (Fichier de Codage Supplémentaire 1 et Fichier de Codage Supplémentaire 2) Si un ordinateur Windows est utilisé, exécutez à partir de PyOKR import OKR_win comme o puis o.run(). Si un ordinateur Mac est utilisé, exécutez à partir de PyOKR import OKR_osx comme o puis o.run(). 3. Analyse des données des vagues Initialisation de l’analyse et importation des fichiersExécutez o.run() dans un script .py pour ouvrir l’interface utilisateur. Sous Fichier, utilisez la fonction Ouvrir ou la commande Ctrl+O [commande iOS] pour ouvrir un navigateur qui permettra à l’utilisateur de sélectionner le fichier wave souhaité. Sous Fichier, utilisez le bouton Exporter le dossier ou la commande Ctrl+E pour ouvrir un navigateur de dossiers qui permettra la sélection d’un dossier de sortie vers lequel les analyses finales seront exportées. Entrez le nom du fichier d’analyse final sous le fichier de sortie dans un format recommandé, tel que AnimalGenotype_AnimalNumber_Analysis. Définissez le programme pour un animal individuel à l’aide de la commande Définir le sujet sous Fichier ou de la commande Ctrl+S pour initialiser l’ensemble de données d’un animal individuel. Définition des paramètres du fichier d’ondePour commencer à définir les paramètres de stimulus, définissez la directionnalité sous Sélectionner la direction du stimulus en sélectionnant l’une des quatre directions cardinales. Pour les stimuli sinusoïdaux, choisissez-en un qui contient (Horizontal) ou (Vertical) en conséquence, la direction cardinale définissant la direction initiale de l’onde sinusoïdale. Définissez le type de stimulus sous Sélectionner le type de stimulus comme Unidirectionnel, Oscillatoire ou Oblique. Après avoir défini la directionnalité, importez soit votre propre ensemble de données de position de stimulus (Importer vos propres données de vecteur de stimulus), soit générez automatiquement un vecteur basé sur des paramètres (Générer un vecteur de stimulus à partir de paramètres). Si vous importez un vecteur de stimulus, passez à la section 3.2.3.1, puis passez à l’étape 3.3. Si vous générez un vecteur de stimulus, passez aux étapes suivantes.Si vous importez vos propres données vectorielles, importez les valeurs de distance du stimulus (c’est-à-dire une série chronologique décrivant la distance parcourue par le stimulus entre chaque trame d’acquisition adjacente) dans le même format que celui décrit à l’étape 3.2.1. De plus, analysez l’ensemble de l’ensemble de données comme une seule époque plutôt que de le diviser en époques individuelles, car la fonctionnalité permettant de sous-définir la valeur de stimulus importée n’a pas été ajoutée à partir de PyOKR v1.1.2. Sous Paramètres de stimulus, définissez les paramètres du stimulus utilisé pour la collecte de données.Définissez la durée de l’absence de stimulus au début (tête) et à la fin (queue) d’un essai donné avec Head and Tail. Définissez la durée pendant laquelle un stimulus est affiché, la durée pendant laquelle aucun stimulus n’a été suivi et le nombre total d’époques au sein d’un essai donné avec Durée de l’époque, Durée du post-stimulus et Nombre d’époques, respectivement. Pour les stimuli unidirectionnels et obliques, réglez la vitesse du stimulus en degrés par seconde avec la vitesse horizontale et la vitesse verticale. Définissez la fréquence de capture de la caméra de collection à l’aide de l’option Capturer la fréquence d’images. Pour les stimuli sinusoïdaux, générez l’onde sinusoïdale pour modéliser les stimuli oscillatoires avec la fréquence et l’amplitude. Après le paramétrage, créez le modèle approprié à partir des informations de stimulus saisies ci-dessus avec Générer un vecteur de stimulus à partir des paramètres. Sélectionnez une époque donnée pour le stimulus saisi à l’aide de l’option Sélectionner l’époque pour parcourir le fichier d’onde totale. Sélection supervisée des phases de suiviPour identifier les régions de suivi lent, sélectionnez automatiquement les saccades de phase rapides avec ajustement préliminaire en cliquant sur Données non filtrées ou Données filtrées, ce qui étiquetera les saccades potentielles en fonction des changements de vitesse maximaux. Sous Données non filtrées, vérifiez que les saccades sont correctement sélectionnées à l’aide d’un point bleu. Si la sélection automatique n’est pas précise, supprimez manuellement des points avec le bouton gauche de la souris (LMB) ou ajoutez des points avec le bouton droit de la souris (RMB). Lorsque les saccades de phase rapide sont correctement sélectionnées, enregistrez les points avec le bouton central de la souris (MMB) et fermez le graphique. Si vous souhaitez un filtrage automatique, définissez un seuil de score Z et cliquez sur Données filtrées pour filtrer automatiquement les saccades. Si nécessaire, utilisez la même supervision manuelle que celle décrite à l’étape 3.3.2 pour éliminer tout bruit. Une fois la saccade correctement sélectionnée, appuyez sur Point Adjustment pour sélectionner la région à supprimer. Modifiez les points supérieur et inférieur à l’aide d’un schéma de contrôle similaire à celui décrit précédemment à l’étape 3.3.2. Modifiez les points supérieurs (verts) avec le LMB ou le RMB et modifiez les points inférieurs (rouges) avec Shift+LMB ou Shift+RMB. Lorsque les points sont correctement placés, utilisez le MMB pour enregistrer les points.REMARQUE : si vous utilisez un Mac, le réglage des points inférieur et supérieur se fait sur deux boutons distincts et suit le même schéma de contrôle que décrit à l’étape 3.3.2. Analyse des phases de slow-trackingDéfinissez l’ordre du modèle polynomial à l’aide de l’option Définir l’ordre polynomial pour définir le modèle polynomial qui sera ajusté aux phases lentes individuelles.REMARQUE : Pour les stimuli unidirectionnels ou obliques, la valeur par défaut est 1 car la linéarité est nécessaire pour calculer le gain de suivi. Pour les stimuli sinusoïdaux, un ordre supérieur est nécessaire pour modéliser la courbe de l’onde, avec une valeur par défaut de 15. Pour analyser la trace, sélectionnez Analyse finale pour générer les modèles de phase lente (Figure 2) pour les phases lentes sélectionnées (voir Figure 2A-D) et calculer les distances, les vitesses et les gains de suivi moyennés sur l’époque (Figure 2E). Pour afficher le graphique bidimensionnel (2D) ou tridimensionnel (3D) des régions sélectionnées, sélectionnez Afficher le graphique 2D ou Afficher le graphique 3D , respectivement. Sélectionnez Ajouter une époque pour enregistrer les valeurs collectées générées à l’étape 3.4.2. Pour afficher toutes les valeurs ajoutées pour un animal donné ainsi que les moyennes des essais collectés, sélectionnez Afficher l’ensemble de données actuel. Une fois qu’une époque a été ajoutée, parcourez le reste du fichier avec Sélectionner une époque, en suivant les étapes 3.3.1 à 3.4.4. Une fois qu’un fichier d’onde est entièrement analysé, répétez ce processus pour tous les autres fichiers pour un animal donné en ouvrant de nouveaux fichiers, en définissant les paramètres appropriés et en les analysant en conséquence. En répétant les étapes 3.2.1 à 3.4.5 pour chaque fichier, générez un ensemble de données final contenant toutes les données d’onde pour un animal donné. Exportation finale des donnéesUne fois l’analyse des données terminée pour un animal donné, avec toutes les directions ou stimuli analysés, exportez l’ensemble de données via Exporter les données.REMARQUE : L’ensemble de données brutes sera exporté en fonction du nom du fichier de sortie et enregistré le long du chemin d’accès défini par le dossier de sortie sous la forme d’un fichier CSV contenant des données d’époque individuelles avec la moyenne totale pour chaque paramètre de stimulus. Après avoir exporté un animal individuel, réinitialisez l’ensemble de données avec Ctrl+S, puis répétez toutes les étapes précédentes pour analyser un nouvel animal. Si nécessaire, réorganisez toutes les données de sortie collectées pour plusieurs animaux afin de faciliter l’analyse à l’aide de la commande Trier les données sous l’onglet Analyse .REMARQUE : Cette fonction compilera et triera toutes les valeurs moyennes pour tous les fichiers d’animaux analysés stockés dans le dossier de sortie afin de faciliter la génération de graphiques et de comparaisons statistiques. Le tri dépend du nommage des fichiers à partir de la v1.1.2. Utilisez le schéma de dénomination recommandé décrit à l’étape 3.1.4 pour chaque fichier (par exemple, WT_123_Analysis).

Representative Results

Pour valider la méthode d’analyse décrite ci-dessus, nous avons quantifié le gain de suivi OKR sur des traces d’ondes collectées chez des souris de type sauvage et un mutant knock-out conditionnel avec un déficit de suivi connu. De plus, pour tester l’applicabilité plus large de notre méthode d’analyse, nous avons analysé des traces dérivées d’une cohorte distincte de souris de type sauvage acquises à l’aide d’une méthode de collecte de vidéo-oculographie différente. Le filtrage automatique de…

Discussion

PyOKR offre plusieurs avantages pour étudier les réponses visuelles reflétées dans les mouvements oculaires. Il s’agit notamment de la précision, de l’accessibilité et des options de collecte de données, en plus de la possibilité d’intégrer le paramétrage et des vitesses de stimulus variables.

L’évaluation directe du gain de suivi oculaire fournit une caractérisation précise du mouvement oculaire qui est une mesure quantitative plus directe que le comptage manuel tradition…

Divulgations

The authors have nothing to disclose.

Acknowledgements

Ce travail a été soutenu par R01 EY032095 (ALK), la bourse prédoctorale VSTP 5T32 EY7143-27 (JK), F31 EY-033225 (SCH), R01 EY035028 (FAD et ALK) et R01 EY-029772 (FAD).

Materials

C57BL/6J  mice Jackson Labs 664
Igor Pro WaveMetrics RRID: SCR_000325
MATLAB MathWorks RRID: SCR_001622
Optokinetic reflex recording chamber – JHUSOM Custom-built N/A As described in Al-Khindi et al.(2022)9 and Kodama et al. (2016)13 
Optokinetic reflex recording chamber – UCSF Custom-built N/A As described in Harris and Dunn, 201510
Python Python Software Foundation RRID: SCR_008394
Tbx5 flox/+ mice Gift from B. Bruneau N/A As described in Al-Khindi et al.(2022)9 
Tg(Pcdh9-cre)NP276Gsat/Mmucd MMRRC MMRRC Stock # 036084-UCD; RRID: MMRRC_036084-UCD

References

  1. Stahl, J. S. Using eye movements to assess brain function in mice. Vision Res. 44 (28), 3401-3410 (2004).
  2. Kretschmer, F., Tariq, M., Chatila, W., Wu, B., Badea, T. C. Comparison of optomotor and optokinetic reflexes in mice. J Neurophysiol. 118, 300-316 (2017).
  3. Bronstein, A. M., Patel, M., Arshad, Q. A brief review of the clinical anatomy of the vestibular-ocular connections – How much do we know. Eye. 29 (2), 163-170 (2015).
  4. Simpson, J. I. The accessory optic system. Ann Rev Neurosci. 7, 13-41 (1984).
  5. Hamilton, N. R., Scasny, A. J., Kolodkin, A. L. Development of the vertebrate retinal direction-selective circuit. Dev Biol. 477, 273-283 (2021).
  6. Dobson, V., Teller, D. Y. Visual acuity in human infants: a review and comparison of behavioral and electrophysiological studies. Vision Res. 18 (11), 1469-1483 (1978).
  7. Cahill, H., Nathans, J. The optokinetic reflex as a tool for quantitative analyses of nervous system function in mice: Application to genetic and drug-induced variation. PLoS One. 3 (4), e2055 (2008).
  8. Cameron, D. J., et al. The optokinetic response as a quantitative measure of visual acuity in zebrafish. J Vis Exp. (80), e50832 (2013).
  9. Al-Khindi, T., et al. The transcription factor Tbx5 regulates direction-selective retinal ganglion cell development and image stabilization. Curr Biol. 32 (19), 4286-4298 (2022).
  10. Harris, S. C., Dunn, F. A. Asymmetric retinal direction tuning predicts optokinetic eye movements across stimulus conditions. eLife. 12, 81780 (2015).
  11. Sun, L. O., et al. Functional assembly of accessory optic system circuitry critical for compensatory eye movements. Neuron. 86 (4), 971-984 (2015).
  12. Yonehara, K., et al. Congenital Nystagmus gene FRMD7 is necessary for establishing a neuronal circuit asymmetry for direction selectivity. Neuron. 89 (1), 177-193 (2016).
  13. Kodama, T., Du Lac, S. Adaptive acceleration of visually evoked smooth eye movements in mice. J Neurosci. 36 (25), 6836-6849 (2016).
  14. Stahl, J. S., Van Alphen, A. M., De Zeeuw, C. I. A comparison of video and magnetic search coil recordings of mouse eye movements. J Neurosci Methods. 99 (1-2), 101-110 (2000).

Play Video

Citer Cet Article
Kiraly, J. K., Harris, S. C., Al-Khindi, T., Dunn, F. A., Kolodkin, A. L. PyOKR: A Semi-Automated Method for Quantifying Optokinetic Reflex Tracking Ability. J. Vis. Exp. (206), e66779, doi:10.3791/66779 (2024).

View Video