Le conditionnement opérant est un paradigme classique utilisé en psychologie expérimentale dans lequel les animaux apprennent à effectuer une action afin d'obtenir une récompense. En utilisant ce paradigme, il est possible d’extraire des courbes d’apprentissage et de mesurer avec précision les temps de réaction. Nous décrivons ici un dispositif entièrement imprimable en 3D, capable d'effectuer un conditionnement opérant sur des souris en mouvement libre, tout en effectuant un suivi en temps réel de la position de l'animal.
Vous pouvez trouver des modèles imprimés en 3D ici ou ici.
Dans figures/EXPLODED VIEW.jpg, vous trouverez un schéma intuitif du schéma d'assemblage. Nous avons imprimé tous les composants en utilisant Cura 4.0 avec une résolution moyenne (100 µm), une vitesse de 90 mm/s et un remplissage de 20 %. La conception de la chambre OC est assez simple, donc presque toutes les imprimantes sont suffisamment précises pour réussir à imprimer la totalité de la chambre.
Une liste de tous les composants peut être trouvée ici : Nomenclature
CHAMBRE DU CO
CAMÉRA
LIVRAISON
De plus il vous faut :
Connectez tous les composants comme décrit dans figures/diagram_scheme.png
Pour installer le logiciel dans le Raspberry Pi (RPI), téléchargez ou copiez simplement l'intégralité du code dans un dossier du système d'exploitation Raspian.
Python
Arduino
Compilez et chargez sur l'Arduino UNO le sketch appelé skinner.ino
Pour calibrer les seuils des capteurs capacitifs, chargez le croquis Arduino appelé skinnerCapacitiveTest. Cette fonction imprime simplement sur les valeurs du capteur capacitif du port série. Il est utile de définir la valeur seuil appropriée pour détecter les touches de souris.
Pour exécuter le type de code dans le terminal :
cd h ome p i o c_chamber \ or replace with the folder path containing the scpript
python3 cvConditioningTracking.py
Vous pouvez également ouvrir cvConditioningTracking dans IDLE IDE et appuyer sur F5.
L'utilisateur peut personnaliser certains des paramètres de bas niveau des expériences en modifiant la valeur des variables dans les 25 premières lignes du fichier cvConditioningTracking.py. Une explication plus détaillée de ces paramètres est donnée dans le fichier lui-même.
La chambre peut exécuter des expériences dans 2 modes : le mode Entraînement et le mode Permutation . L'utilisateur peut sélectionner l'un des deux modes en éditant le paramètre task dans le fichier cvConditioningTracking. Les détails et les différences des 2 modes peuvent être trouvés dans le document.
Au début des expériences, l'utilisateur est invité à utiliser une interface graphique qui collecte quelques informations de base sur les expériences sur le point d'être exécutées.
Objet : une chaîne contenant un identifiant pour la souris actuelle. S'il est laissé vide, aucun fichier n'est enregistré.
Chemin du fichier : emplacement pour enregistrer le fichier d’expérience. La sortie se compose de deux fichiers .txt contenant l'ensemble de données de l'expérience comme décrit dans la section Ensemble de données, stocké dans le dossier DATA et DATAtracker. L'utilisateur peut rechercher un emplacement sur le PC. Si le champ est laissé vide, la valeur par défaut est le répertoire de travail actuel.
Nom du fichier REC : une chaîne contenant le nom à utiliser pour sauvegarder l'enregistrement vidéo. S'il est laissé vide, aucun fichier n'est enregistré.
Chemin du fichier REC : Emplacement pour sauvegarder l'enregistrement vidéo avec une superposition contenant la position de la souris et la zone active. L'utilisateur peut rechercher un emplacement sur le PC. Si le champ est laissé vide, la valeur par défaut est le répertoire de travail actuel.
Conditions : Conditions expérimentales. La liste des stimuli qui seront présentés dans l'expérience. Une ou plusieurs conditions, divisées par une virgule, peuvent être précisées :
Toutes les conditions spécifiées ici seront présentées dans un ordre aléatoire.
Critère : Nombre d'images nécessaires pour que la souris reste dans la zone active pour activer un essai. 20 images = 1 seconde
Niveau : Sélectionnez la position verticale de la ligne séparant la zone active de la chambre de celle inactive. La valeur est normalisée à la hauteur de la chambre. 0 = bas de la chambre, 1 = haut de la chambre, 0,5 (par défaut) = milieu de la chambre
Calibrage : nombre d'images à utiliser au début de l'expérience pour le calibrage de la caméra. Il est important de calibrer la caméra au début de l’expérience pour mieux suivre la souris sur l’arrière-plan.
D'autres options de personnalisation sont disponibles en éditant les premières lignes des fichiers suivants :
Pour permettre l'utilisation de stimuli visuels plus complexes, vous pouvez trouver une version principale du code qui fonctionne avec un écran LCD. Pour exécuter le code, Psychopy2 est requis. Pour installer Psychopy sur RPI, suivez ces instructions. Une fois Psychopy installé, ouvrez cvConditioningTracking.py dans l'IDE Psychopy et exécutez le code. Ce code contient un module appelé LCD.py qui peut être utilisé pour afficher les images sélectionnées. Pour l'instant, le code est un stub, une version non testée et s'exécute à des fins de démonstration.
Le dossier Dataset contient nos données brutes, décrites dans cet article, avec 6 sujets. Chaque sujet est contenu dans son propre dossier et codé selon le schéma : CAGE-LABEL-GENO. De plus, il existe deux Jupyter Notebooks avec un exemple sur la façon dont vous pouvez lire les fichiers de sortie txt en Python en tant que dataframes pandas.
Une description détaillée de l'appareil peut être trouvée ici : Dispositif imprimable en 3D pour le conditionnement opérant automatisé dans la souris
Pour toute information et dépannage n'hésitez pas à nous contacter au