Manuel du SPIM au PIAF
1 Introduction
Ce manuel contient les informations relatives au montage, à l'installation et à l'utilisation du SPIM.
Les sources du manuel sont disponible sur une serveur de version git de l'INRA: https://forgemia.inra.fr/hugo.chauvet-thiry/spim-piaf/tree/master/manuel/sources
2 Montage
2.1 Composants
2.1.1 Liste de composants
La construction du SPIM au PIAF est réalisée avec le système de cage optique de Thorlabs. L'ensemble des petites pièces d'assemblages n'est pas détaillé (leurs références peuvent être retrouvée sur le site de Thorlabs dans la rubrique 30 mm cage system). En revanche le tableau ci-dessous donne un résumé des autres pièces composant le SPIM:
Nom | Refs / Liens |
---|---|
Camera Hamamatsu orca flash 4 | C13440-20CU |
Laser Cobolt MLD 488nm | Cobolt 06-MLD |
Platine NanoMax Thorlabs avec moteurs pas à pas | MAX383/M |
Contrôleur BSC203 Thorlabs | BSC203 |
Platine de rotation | PRM1/MZ8 |
Objectif de détection Nikon 20x (NA 0.5) immersion à eau | UMPLFL20XW |
Objectif d'illumination Nikon 10x (NA 0.3) immersion à eau | UMPLFLN10XW |
Illumination LED Thorlabs (Natural White 4900K) | MNWHL4 |
Contrôleur de LED Thorlabs TCube | LEDD1B |
Goniomètre 2 axes | GNL20/M |
Roue à filtre automatique Thorlabs | FW102C |
2.1.2 Filtres
Les filtres suivants sont montés dans roue de filtre du SPIM, leur position de montage sur la roue est aussi indiquée.
Nom du filtre | Refs/Liens | position |
---|---|---|
Filtre ND (OD 2.0) | Thorlabs NE20B-A | 1 |
Filtre passe haut (coupe en dessous de 500 nm) | Thorlabs FEL0500 | 2 |
Filtre emission GDP (passe bande 505-544 nm) | Thorlabs MF525-39 | 3 |
2.1.3 Pièces spéciales
Dans cette section vous trouverez la liste des pièces spécialement conçue pour le SPIM du PIAF, avec leur plans numériques.
- Chambre contenant d'observation
La chambre du SPIM a été refaite par rapport au projet OpenSPIM pour être adaptée au système de cage Thorlabs. Elle est conçu pour fonctionner avec la pièces LCP30 et LCP02/M qui permettent de faire des angles droit sur le système de cage. Elle existe en deux version, la première avec des fenêtres pour coller des lamelles de microscope dessus afin de voir l'échantillon. La seconde sans les fenêtre, mais elle doit être imprimer avec un filament translucide.
Vous pouvez éditer le fichier d'origine .fcstd pour modifier la chambre avec FreeCAD ou utiliser le fichier .stl pour imprimer la chambre.
Version avec fenêtres:
- Fichier FreeCAD: New chambre spim CF vitre cage system.fcstd
- Fichier pour imprimante 3D: SPIM chambre cage system.stl
Version sans fenêtres:
- Fichier FreeCAD: New chambre spim CF sans vitre cage system.fcstd
- Fichier pour imprimante 3D: SPIM chambre cage system pas fenetre.stl
- Équerre de fixation du moteur 360 sur la platine XYZ
Cette pièce permet de faire le lien entre la platine XYZ (en se fixant soit sur la platine, soit sur le goniomètre 2 axes) et le moteur de rotation. Les différentes parties la constituant on été dessinées en 3D sous FreeCAD et ensuite découpe à la découpeuse laser sur du plexi de 1cm d'épaisseur.
Fichier:
- Plan 3D FreeCAD: bras platine v2.fcstd
Il faut sortir une esquisse 2D pour découpeuse (format .dxf) des différentes parties (soit 3 plans 2D, un pour la partie rouge, un pour la partie verte (a découper 2x) et un pour la partie orange de la figure 2).
- Adaptateur qui permet de serrer les portes échantillons sur le moteur de rotation
Les portes échantillons sont serrés à l'aide de cette pièce qui vient se fixer sur le moteur de rotation 360 et qui permet de serrer de cylindre de diamètre 7mm, le troue sur la tranche (diam 3.2mm) est ensuite taraudé pour venir loger un visse M4 qui vient fixer le porte échantillon.
Fichiers:
- Fichier 3d FreeCAD: rotation porte echt.fcstd
- Fichier pour imprimante 3D: rotation porte echt.stl
- Portes échantillons
Deux types de portes échantillons ont été développé. Le premier permet de "coller" des blocs d'agar sur le support avec de l'agar chaud pour faire le collage.
Fichiers:
- Fichier 3d FreeCAD: porte echantillon agar.fcstd
- Fichier pour imprimante 3D: porte echantillon agar.stl
Le second permet de maintenir des tubes de FEP.
TODO RECUP LES FICHIER DE FLORENT
- Caches de protection laser
Des caches en plastique "clipsable" sur les cages Thorlabs a été réalisé pour sécuriser le faisceau laser. Il y a plusieurs tailles pour adapter les caches aux différents portes objets mis sur les cages Thorlabs. La longueur du cache est a adapté pour chaque partie du SPIM directement dans le logiciel de préparation de l'impression 3D (pas besoin d'en refaire une dans FreeCAD)
Taille (HxP) fichier 3D FreeCAD fichier imprimante 3D (dessus) fichier imprimante 3D (dessous) 36mm x 36mm cache thorlabs cage 36x36.fcsdt top 36x36.stl bottom 36x36.stl 43mm x 40mm cache thorlabs cage 43x40.fcsdt top 43x40.stl bottom 43x40.stl 43mm x 42mm cache thorlabs cage 43x42.fcsdt top 43x42.stl bottom 43x42.stl Un cache spéciale est réalisé pour aller du système de cage au Laser.
Fichiers:
- Fichier 3D FreeCAD: cache thorlabs cage cobolt.fcstd
- Fichier imprimante 3D: cache laser cobolt.stl
2.2 Instructions pour le montage
La suite des opérations de montage est relativement bien détaillée sur le site du projet OpenSPIM. Les instructions de montage complètent le projet openspim et adapte certaine parties au spim du PIAF.
2.2.1 Montage de la caméra
Instructions pour fixer la caméra Hamamatsu sur le SPIM.
- Installation du support:
Le support en plexi-glasse se fixe sous la caméra à l'aide de trois visses M6.
- Branchement vers le PC:
La caméra est connectée à l'ordinateur en "camera-link" ce qui nécessite de brancher deux câbles.
Les deux prisent comporte des numéros, 1 et 2, il faut absolument respecter la correspondance entres les numéros sur la carte de l'ordinateur et sur la caméra! Sinon la caméra ne serra pas reconnue.
- Mise en place de la lentille de tube:
La lentille de tube installée actuellement sur le SPIM est une lentille de longueur focal 200mm. La longueur entre le capteur de la caméra et la lentille doit en théorie être proche de 200mm. Pour aider à l'ajustement de cette longueur une bague réglable a été ajouté en début de tube qui permet d'affiner la mise au point.
Pour installe le tube il suffit de le visser sur la caméra après avoir enlever le petit cache en plastique.
On peut aussi nettoyer la lentille de tube (qui se trouve à l'extrémité du tube opposée à la caméra).
- Mise en place de la caméra sur le bras de détection du spim:
Dévisser les deux petites visses des supports se trouvant sur le bras de détection avec la clef jaune (cf image). L'un sur le dessus l'autre sur un côté. Un fois ces visses desserrées, insérer le tube en faisant glisser la caméra le long de la table jusqu'à venir en butté de la bague de réglage du tube. Puis serrer uniquement la visse la plus proche de la caméra pour laisser libre le réglage de la netteté lors du réglage du SPIM.
- Fixation de la caméra sur la table optique:
Un fois la caméra en place fixer la avec deux vis M6 sur la table optique (cf image).
2.2.2 Montage de la platine
La Platine se compose de 8 éléments (de bas en haut):
- Une platine macro-métrique verticale manuelle.
- Un plateau rond fixé sur le haut de cette platine.
- Deux platine de déplacement horizontale macro-métrique. manuelles, montées perpendiculairement pour faire un déplacement xy.
- Un pièce permettant de fixer la platine motorisée sur les pas de vis de la platine manuelle xy.
- Une platine motorisée (xyz).
- Un goniomètre permettant 2 axes fixé sur le haut de la platine motorisée.
- Un équerre en plexiglas fixé en haut du goniomètre.
- Une platine de rotation motorisée fixée à l'extrémité de l'équerre.
- Fixation de la platine sur la platine manuelle xy
La platine se fixe à l'aide de 3 visses M6, sur une plaque adaptatrice qui comporte 4 vis M6 fixées sur la platine manuelle de déplacement xy.
- Fixation du goniomètre sur la platine
Le goniomètre se fixe à l'aide de deux petites vis M4 (prendre les plus petites) et de deux rondelles épaisses sur la platine motorisée.
Attention: pas de vis longues sur la platine, car ça peut l'endommager en l'empêchant de se déplacer correctement!
- Fixation de l'équerre et du moteur de rotation
L'équerre se fixe sur le goniomètre avec 4 vis M4 longues (en rouge sur la figure 11). Le moteur de ration se fixe au bout de l'équerre avec deux vis M6 et des écrous sous le moteur (en vert sur la figure 11). La distance de décalage entre le moteur et la platine motorisé peut être réglée en dévissant les deux vis M4 (en bleu sur la figure 11) au niveau de la gouttière et en faisant coulisser la partie verticale de l'équerre. Attention, il faut démonter l'équerre de la platine xyz motorisée avant de faire ce réglage car il faut forcer un peut pour faire coulisser les deux parties en plastique de l'équerre.
- Branchement des moteurs
Les 3 moteurs de la platine de rotation se branche sur le contrôleur (grosse boîte blanche) à l'aide de rallonges. Pour correspondre au fichier de configuration du logiciel micro-manager pour le spim, les moteurs doivent être branché dans l'ordre suivant:
Axe N° de prise sur des moteurs contrôleur BSC203 X 90875498 Y 90875500 Z 90875499 Le moteur de rotation se branche sur un autre contrôleur (Kinesis, petit bloc rouge, une seule prise on peut pas se tromper).
2.2.3 Montage du laser
Le laser se fixe sur son refroidisseur à l'aide de 4 petites vis spécifiques, il faut essayer de le centre au maximum au milieu du premier miroir lors de sa mise en place. Le refroidisseur est fixé sur la table optique à l'aide de tiges filetées et d'écrous.
2.2.4 Montage de la roue de filtres motorisée
Pour installer la roue de filtres il suffit de brancher les tube du système de cage de part et d'autre de la sortie A de la roue. Deux visses ont été installées pour soutenir la partie moteur de la roue à filtres. La connexion se fait simplement avec un câble USB.
Pour charger les filtres, une façon de procéder et de basculer la sortie de la roue sur la sortie B et de dévisser les caches situés pour sortir (ou ajouter) les filtre en dévissant les bagues à l'aide de l'outil spécifique (petit cylindre rouge et gris). Si vous n'arrivez pas a sortir les filtres de cette façon, alors il faut démonter la caméra et la cage Thorlabs qui se trouve à gauche de la roue pour pouvoir l'ouvrir et changer les filtres plus facilement (voir le manuel papier de la roue dans le placard du SPIM).
3 Installation des logiciels
Dans cette section vous trouverez les différents logiciels qui permettent de tester indépendamment les différentes parties du SPIM (Caméra, laser, etc…), ce qui permet de vérifier qu'elles fonctionnent correctement.
3.1 Préparation de l'Ordinateur
Le disque C est constitué de deux ssd en RAID 0. Cette configuration permet de doubler la vitesse d'écriture des données qui sont répartie sur les deux disques. Pour faire le paramétrage il faut aller dans l'utilitaire de configuration de disques RAID au début du démarrage de la machine (voir la doc de chez DELL)
Dans le bios les réglages préconiser par Hamamatsu on été réalisés (cf page 5 du PDF de recommandations):
- Disable Processor C-state control
- Disable Intel SpeedStep
- Enable Intel Turbo-Boost
- Enable Intel Hyper-Threading
3.2 Laser
Le laser (un Cobolt MLD 488, 06-01 serie) peut se contrôler à l'aide du logiciel Cobolt-Monitor. Vous pouvez le télécharger à l'adresse suivante:
https://www.coboltlasers.com/downloads/
Vous trouverez les instructions de mise en fonctionnement du laser et d'utilisation de Cobolt-Monitor sont décrites dans le manuel (que l'on a en version papier) et qui est disponible ici:
https://www.coboltlasers.com/lasers/diode-lasers/
ou ici:
La commande "autostart" à été désactivée pour sauter l'interlock à clef de sécurité, ce qui permet d'allumer et d'éteindre le laser entre deux pas de temps.
Cette désactivation se fait avec la commande @cob1 0 dans le terminal du Cobolt-Monitor, pour réactiver la sécurité avec la clef il suffit de faire @cob1 1.
3.3 Caméra
La caméra (un Hamamatsu orca flash 4.0), les informations peuvent être trouvées sur le site du fabricant à l'adresse suivante: https://camera.hamamatsu.com/jp/en/product/search/C13440-20CU/index.html
Le manuel (à la rubrique "Instruction manual") détail la procédure d'installation, (Manuel en PDF)
Hamamatsu fournit un logiciel de contrôle appelé HCImage, pour l'obtenir il faut aller sur le site https://hcimage.com/ et créer un compte gratuit pour accéder au téléchargement. Ce logiciel permet de prendre des images et de faire certain réglages sur la caméra.
3.4 Moteurs de la platine
Les moteurs de la platine xyz et celui de rotation peuvent être contrôlé soit par le logiciel APT, soit par son successeur Kinesis. Ils sont téléchargeable à la page "Software" du site de Thorlabs.
3.4.1 Configuration du contrôleur de la platine XYZ
Allumer le contrôleur des moteurs de la platine (boîtier blanc à gauche du SPIM, puis lancer le logiciel APT Config. L'écran qui s'affiche liste (dans l'onglet Stage) touts les moteurs compatibles APT branchés à l'ordinateur (voir la capture d'écran Figure 13). Ceux de la platine XYZ portent les numéros 90875498, 90875499, et 90875500.
Pour ces Moteurs il faut vérifier qu'il sont configuré comme "HS NanoMax 300 X Axis", "HS NanoMax 300 Y Axis", et "HS NanoMax 300 Z Axis".
Pour toutes configurations supplémentaire se reporter au manuel du contrôleur des platines:
3.4.2 Configuration du contrôleur de rotation
Allumer le contrôleur du moteur de rotation (petit boîtier rouge), puis lancer APT Config. Vérifier que le moteur avec les "Serial Number" 27503845 est bien configuré pour un moteur de type PRM1-Z8. (voir capture d'écran Figure 13)
Se reporter à la documentation du moteur de rotation pour plus d'infos:
3.4.3 Test avec APT USER
Quand la configuration des moteurs est faite (il faut la faire une seule fois après elle reste tant que l'ordinateur n'est remis à zéro), vous pouvez lancer APT User ou Kinesis pour tester les moteurs un à un à partir de chaque panneaux de contrôles qui viennent de s'ouvrir (voir capture d'écran Figure 14).
Appuyer sur le bouton Home/zero de chaque moteurs et voir si ils se déplacent.
Si vous ne voyez pas 4 contrôleurs, alors il faut refaire la configuration des moteurs dans APT Config. Si vous avez démarré Kinesis et que la configuration fait des choses étranges, il faut éteindre puis rallumer les contrôleurs.
3.5 Carte Arduino
Une carte arduino permet de contrôler la lumière blanche depuis MicroManager. Pour l'installer il faut utiliser le logiciel Arduino IDE qui permet de téléverser le code de contrôle dans la carte arduino.
Le code de contrôle est celui fournit par MicroManager à l'adresse suivante: https://micro-manager.org/wiki/Arduino
La fiche BNC qui se branche sur la boîte noire qui alimente la lampe LED, se branche sur l'arduino avec sa fiche positive (soudée au centre sur un fil jaune) sur la sortie 9 et la masse (soudé à l'extérieur sur un fil blanc) sur la masse de l'arduino. Vous pouvez changer les entrées, mais il faudra modifier les scripts ensuite dans la configuration de MicroManager.
3.6 MicroManager
L'installation de micro-manager se faire en récupérant la version 2.0 sur le site: https://micro-manager.org/wiki/Download%20Micro-Manager_Latest%20Release
Prendre la version 64bit
Actuellement MicroManager est installé dans le dossier suivant:
C:\Program Files\Micro-Manager-2.0beta
Pour configurer les différents instruments connectés à MicroManager, on peut le faire soit par interface graphique (voir le guide https://micro-manager.org/wiki/Micro-Manager_Configuration_Guide) soit en éditant un fichier texte de configuration.
MicroManager stoque les configurations des différents instruments dans un fichier de configuration .cfg qui est un fichier texte éditable dans n'importe quel éditeur de textes. Celui complet du SPIM spim_version1_arduino.cfg est dans le dossier
C:\Users\mecaspim\Documents\spim_micromanager_config
Pour déboguer un composant qui ne marche pas bien il vaut mieux l'isoler et refaire une configuration avec juste ce composant de et de charger cette configuration dans MicroManager.
3.6.1 Configuration des divers instruments
Les différents instruments sont configurés dans micro-manager, la page "Device support" référence les procédure des instruments que l'on peut interfacer "facilement" avec micro-manager.
- Configuration de la platine XYZ
Pour controler les platines motorisées, MicroManager utilise APT, il n'y a pas encore de module pour Kinesis. Les infos sont sur la page: https://micro-manager.org/wiki/ThorlabsAPTStage
Il faut penser a ajouter les fichier APT.dll, APT.lib, et APTAPI.h (pour platforme 64bit) à la racine du répertoire d'installation de MicroManager. Les version actuelles sur l'ordinateur de contrôle du SPIM sont disponibles ci-dessous:
Suivre le guide d'installation graphique comme décrit sur la page web ThorlabsAPTSTage, pour les trois moteurs séparément.
Il faut ensuite ajouter un couplage entre le moteur X et Y pour faire une platine XY. Pour ce faire on utilise le module Combo XY Stage qui se trouve dans la rubrique Utilities des nouveaux instruments.
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant la platine XYZ.
Partie # Devices
# Devices Device,X,ThorlabsAPTStage,SCC001 Device,Z,ThorlabsAPTStage,SCC001 Device,Y,ThorlabsAPTStage,SCC001 Device,Combo XY Stage,Utilities,Combo XY Stage
Partie # Pre-init settings for devices
# Pre-init settings for devices Property,X,Channel,1 Property,X,Position Lower Limit (um),0.0000 Property,X,Position Upper Limit (um),4000.0000 Property,X,Serial Number,90875498 Property,Z,Channel,1 Property,Z,Position Lower Limit (um),0.0000 Property,Z,Position Upper Limit (um),4000.0000 Property,Z,Serial Number,90875499 Property,Y,Channel,1 Property,Y,Position Lower Limit (um),0.0000 Property,Y,Position Upper Limit (um),4000.0000 Property,Y,Serial Number,90875500 Property,Combo XY Stage,SimulatedXStepSizeUm,1.0000 Property,Combo XY Stage,SimulatedYStepSizeUm,1.0000
Partie # Group: Platine (permet de definier les actions avant de commancer a utiliser le SPIM, soit: faire un "Home" de tous les moteurs et mettre les moteurs à mi-course)
# Group: Platine ConfigGroup,Platine,Initialise,X,Go Home,1 ConfigGroup,Platine,Initialise,Z,Go Home,1 ConfigGroup,Platine,Initialise,Y,Go Home,1 ConfigGroup,Platine,Initialise,X,Set position (microns),2000.0000 ConfigGroup,Platine,Initialise,Z,Set position (microns),2000.0000 ConfigGroup,Platine,Initialise,Y,Set position (microns),2000.0000
Partie #Combo XY settings (permet de regler le couplage XY)
Property,Combo XY Stage,PhysicalStage-X,Y Property,Combo XY Stage,PhysicalStage-Y,Z Property,Combo XY Stage,TranslationUm-X,2000.0000 Property,Combo XY Stage,TranslationUm-Y,2000.0000
- Configuration d'arduino
L'arduino se configure facilement en suivant la procédure décrite ici: https://micro-manager.org/wiki/Arduino
Il vaut vérifier sur quel port "serie" a été reconnu la carte par Windows… Attention ce port peut changer! Pour le trouver:
Gestionnaire de périphériques > Ports (COM et LPT) > trouver celui qui s'appel USB-SERIAL…
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant arduino:
Partie # Devices
Device,COM9,SerialManager,COM9 Device,Arduino-Hub,Arduino,Arduino-Hub Device,Arduino-Switch,Arduino,Arduino-Switch Device,Arduino-Shutter,Arduino,Arduino-Shutter
Partie # Pre-init settings for arduino
# Pre-init settings for arduino Property,Arduino-Hub,Logic,Normal Property,Arduino-Hub,Port,COM9 Property,COM9,AnswerTimeout,500.0000 Property,COM9,BaudRate,57600 Property,COM9,DelayBetweenCharsMs,0.0000 Property,COM9,Handshaking,Off Property,COM9,Parity,None Property,COM9,StopBits,1 Property,COM9,Verbose,1
Partie # Hub (parent) references
# Arduino Parent,Arduino-Switch,Arduino-Hub Parent,Arduino-Shutter,Arduino-Hub
Parie # Labels
# Arduino-Switch Label,Arduino-Switch,63,63 Label,Arduino-Switch,62,62 Label,Arduino-Switch,61,61 Label,Arduino-Switch,60,60 Label,Arduino-Switch,59,59 Label,Arduino-Switch,58,58 Label,Arduino-Switch,57,57 Label,Arduino-Switch,56,56 Label,Arduino-Switch,55,55 Label,Arduino-Switch,54,54 Label,Arduino-Switch,53,53 Label,Arduino-Switch,52,52 Label,Arduino-Switch,51,51 Label,Arduino-Switch,50,50 Label,Arduino-Switch,49,49 Label,Arduino-Switch,48,48 Label,Arduino-Switch,47,47 Label,Arduino-Switch,46,46 Label,Arduino-Switch,45,45 Label,Arduino-Switch,44,44 Label,Arduino-Switch,43,43 Label,Arduino-Switch,42,42 Label,Arduino-Switch,41,41 Label,Arduino-Switch,40,40 Label,Arduino-Switch,39,39 Label,Arduino-Switch,38,38 Label,Arduino-Switch,37,37 Label,Arduino-Switch,36,36 Label,Arduino-Switch,35,35 Label,Arduino-Switch,34,34 Label,Arduino-Switch,33,33 Label,Arduino-Switch,32,32 Label,Arduino-Switch,31,31 Label,Arduino-Switch,30,30 Label,Arduino-Switch,29,29 Label,Arduino-Switch,28,28 Label,Arduino-Switch,27,27 Label,Arduino-Switch,26,26 Label,Arduino-Switch,25,25 Label,Arduino-Switch,24,24 Label,Arduino-Switch,23,23 Label,Arduino-Switch,22,22 Label,Arduino-Switch,21,21 Label,Arduino-Switch,20,20 Label,Arduino-Switch,19,19 Label,Arduino-Switch,18,18 Label,Arduino-Switch,17,17 Label,Arduino-Switch,16,16 Label,Arduino-Switch,15,15 Label,Arduino-Switch,14,14 Label,Arduino-Switch,13,13 Label,Arduino-Switch,12,12 Label,Arduino-Switch,11,11 Label,Arduino-Switch,10,10 Label,Arduino-Switch,9,9 Label,Arduino-Switch,8,8 Label,Arduino-Switch,7,7 Label,Arduino-Switch,6,6 Label,Arduino-Switch,5,5 Label,Arduino-Switch,4,4 Label,Arduino-Switch,3,3 Label,Arduino-Switch,2,2 Label,Arduino-Switch,1,1 Label,Arduino-Switch,0,0 # Preset bright light ConfigGroup,Channel,Bright,DWheel,Label,State-4 ConfigGroup,Channel,Bright,Arduino-Switch,Label,2 ConfigGroup,Channel,Bright,Core,Shutter,Arduino-Shutter
- Configuration de la caméra
L'interface entre MicroManager et la camera Hamamatsu se fait en utilisant le protocole DCAM-API de Hamamatsu. Une fois installé, il suffit d'utiliser le device hamamatsuHAM de MicroManager, voir les infos ici: https://micro-manager.org/wiki/HamamatsuHam
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant la caméra:
Partie # Devices
Device,HamamatsuHam_DCAM,HamamatsuHam,HamamatsuHam_DCAM
Partie # Roles
Property,Core,Camera,HamamatsuHam_DCAM
- Configuration du laser
Le laser utilise le device Cobolt de MicroManager voir la doc ici: https://micro-manager.org/wiki/Cobolt
Le laser Cobolt est ici configuré sur le COM5 (voir le gestionnaire de périphériques dans la rubrique Ports (COM et LPT) et trouver la ligne qui commence par "Périphérique série USB".
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant le laser:
Dans # Devices
Device,COM5,SerialManager,COM5 Device,Cobolt,Cobolt,Cobolt Device,DShutter,DemoCamera,DShutter Device,Multi Shutter,Utilities,Multi Shutter
Dans # Pre-init settings for devices
Property,Cobolt,Max Power,60.0000 Property,Cobolt,Port,COM5
Dans # Pre-init settings for COM ports
Property,COM5,AnswerTimeout,500.0000 Property,COM5,BaudRate,115200 Property,COM5,DelayBetweenCharsMs,0.0000 Property,COM5,Handshaking,Off Property,COM5,Parity,None Property,COM5,StopBits,1 Property,COM5,Verbose,1
Dans # Group: Laser
ConfigGroup,Laser,2% (1mw),Cobolt,PowerSetpoint,1 ConfigGroup,Laser,5% (3mw),Cobolt,PowerSetpoint,3 ConfigGroup,Laser,10% (6mw),Cobolt,PowerSetpoint,6 ConfigGroup,Laser,15% (9mw),Cobolt,PowerSetpoint,9 ConfigGroup,Laser,20% (12mw),Cobolt,PowerSetpoint,12 ConfigGroup,Laser,25% (15mw),Cobolt,PowerSetpoint,15 ConfigGroup,Laser,30% (18mw),Cobolt,PowerSetpoint,18 ConfigGroup,Laser,35% (21mw),Cobolt,PowerSetpoint,21 ConfigGroup,Laser,40% (24mw),Cobolt,PowerSetpoint,24 ConfigGroup,Laser,45% (27mw),Cobolt,PowerSetpoint,27 ConfigGroup,Laser,50% (30mw),Cobolt,PowerSetpoint,30 ConfigGroup,Laser,55% (33mw),Cobolt,PowerSetpoint,33 ConfigGroup,Laser,60% (36mw),Cobolt,PowerSetpoint,36 ConfigGroup,Laser,65% (39mw),Cobolt,PowerSetpoint,39 ConfigGroup,Laser,70% (42mw),Cobolt,PowerSetpoint,42 ConfigGroup,Laser,75% (45mw),Cobolt,PowerSetpoint,45 ConfigGroup,Laser,80% (48mw),Cobolt,PowerSetpoint,48 ConfigGroup,Laser,85% (51mw),Cobolt,PowerSetpoint,51 ConfigGroup,Laser,90% (54mw),Cobolt,PowerSetpoint,54 ConfigGroup,Laser,95% (57mw),Cobolt,PowerSetpoint,57 ConfigGroup,Laser,100% (60mw),Cobolt,PowerSetpoint,60
Dans # Groups: Platine, Preset: Initialise (qui permet de couper le laser au démarage pour la sécu)
ConfigGroup,Platine,Initialise,Cobolt,PowerSetpoint,1
Le laser est temporisé à l'aide du "device" Multi Shutter, qui se trouve dans la rubrique utilities des "devices" et qui permet d'ajouter un délai de quelques secondes après l'allumage du laser afin de le laisser chauffer et se stabiliser.
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant le multi-shutter:
Dans # Devices
Device,Multi Shutter,Utilities,Multi Shutter
Dans # Roles
Property,Core,Shutter,Multi Shutter Property,Core,AutoShutter,0
Dans # Group: Channel
# Preset GRP ConfigGroup,Channel,GFP,Core,Shutter,Multi Shutter # Preset bright light ConfigGroup,Channel,Bright,Core,Shutter,Arduino-Shutter
Dans # Multi-shutter config
# Multi-shutter config Property,Multi Shutter,Physical Shutter 1,DShutter Property,Multi Shutter,Physical Shutter 2,Cobolt
- Configuration du moteur de rotation 360
Le moteur de rotation 360 utilise le même "device" que les moteurs de la platine XYZ pour être contrôle avec MicroManager soit ThorlabsAPTStage dont la documentation est dispo ici: https://micro-manager.org/wiki/ThorlabsAPTStage
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant le moteur de rotation:
Partie # Devices
Device,Rotation,ThorlabsAPTStage,TDC001
Partie # Pre-init settings for devices
Property,Rotation,Channel,1 Property,Rotation,Position Lower Limit (um),0.0000 Property,Rotation,Position Upper Limit (um),360000.0000 Property,Rotation,Serial Number,27503845
Partie # Group: Platine, Preset: Initialise…
ConfigGroup,Platine,Initialise,Rotation,Go Home,1
- Configuration de la roue à filtres motorisée
La configuration de la roue à filtre motorisée utilise le "device" ThorlabsFilterWheel. La roue est branchée sur le COM10 et a un vitesse de connexion de 115 200 (voir le manuel papier dans le tiroir du SPIM pour les infos de connexion)
Ci-dessous les parties du fichier de configuration spim_version1_arduino.cfg concernant la roue à filtres:
Partie #Devices
Device,COM10,SerialManager,COM10 Device,Thorlabs Filter Wheel,ThorlabsFilterWheel,Thorlabs Filter Wheel
Partie # Pre-init settings for devices
# Pre-init settings for COM port of Thorlabs Filter Wheel Property,COM10,AnswerTimeout,500.0000 Property,COM10,BaudRate,115200 Property,COM10,DelayBetweenCharsMs,0.0000 Property,COM10,Handshaking,Off Property,COM10,Parity,None Property,COM10,StopBits,1 Property,COM10,Verbose,1 Property,Thorlabs Filter Wheel,Port,COM10
Partie Labels
Label,Thorlabs Filter Wheel,5,Filter-6 Label,Thorlabs Filter Wheel,4,Filter-5 Label,Thorlabs Filter Wheel,3,Filter-4 Label,Thorlabs Filter Wheel,2,GFP 525/39 Label,Thorlabs Filter Wheel,1,FEL500 (passe sup 500) Label,Thorlabs Filter Wheel,0,ND FILTER
Partie Configuration presets
# Group: Filtres # Preset: Position 1 ConfigGroup,Filtres,Filtre-ND-NG20,Thorlabs Filter Wheel,State,0 # Preset: position 2 ConfigGroup,Filtres,Filtre-LongPass500,Thorlabs Filter Wheel,State,1 # Preset: position 3 ConfigGroup,Filtres,Filtre-GFP-525pm39,Thorlabs Filter Wheel,State,2 # Preset: Position 4 ConfigGroup,Filtres,Vide-pos4,Thorlabs Filter Wheel,State,3 # Preset: Position 5 ConfigGroup,Filtres,Vide-pos5,Thorlabs Filter Wheel,State,4 # Preset: Position 6 ConfigGroup,Filtres,Vide-pos6,Thorlabs Filter Wheel,State,5 # Group: Channel # Preset GFP (multishutter on) ConfigGroup,Channel,GFP,Thorlabs Filter Wheel,State,2 ConfigGroup,Channel,GFP,Core,Shutter,Multi Shutter # Preset bright light ConfigGroup,Channel,Bright,Arduino-Switch,Label,2 ConfigGroup,Channel,Bright,Core,Shutter,Arduino-Shutter ConfigGroup,Channel,Bright,Thorlabs Filter Wheel,State,3
3.6.2 Configuration de l'interface de micro-manager
L'interface de MicroManager en v2 peut être personnalisée avec des lanceurs rapides "Quick Access Panel". Celui du SPIM (voir Figure 15) est enregistré dans le fichier Quick_Pannel_SPIM qui se trouve dans le même dossier que le fichier de configuration de MicroManager. Il se charge dans le menu Tools > Quick Access Panels > Load Settings…
3.6.3 Script de suivi d'une racine avec la platine
MicroManager permet d'ecrire des scripts en beanshell sorte de java simplifié (voir la doc sur micromanager https://micro-manager.org/wiki/Script_Panel_GUI). On peut y accéder à partir de MicroManager via le menu Tools > Script Pannel…
Pour le lancer il suffit de cliquer sur run en haut de l'éditeur de micromanager (ou cliquer 2 fois sur le nom du script dans la barre à gauche). Pour l'arrêter il faut lancer un second script qui s'appel stop_simpleroottrack.bsh.
Le script de suivi de la racine permet de remonter la platine quand la racine dépace (difference de seuil en luminosité le long d'une ligne horizontale) une ligne située au 5/6 de la hauteur l'image (on remonte la platine jusqu'au 4/6 de l'image). Ce paramètrage peut être changé vers la ligne 133 du script.
Le script s'appel "simpleroottrack.bsh" et se trouve dans le dossier
C:\Users\mecaspim\Documents\spim_micromanager_scripts
Le script se lance dans une sorte de Thread et doit être arrété avec le code "stop_simpleroottrack.bsh"
Contenu du script simpleroottrack.bsh:
//SCRIPT POUR FAIRE UN TRACKING TRES SIMPLE d'UNE RACINE //Regarde si on a un signal fluo a une position donnée //sur l'image puis décale cetteposition au centre de FOV //Pour le SPIM // H. Chauvet // Version: 27062019 mm.scripter().resetInterpreter(); import org.jfree.chart.JFreeChart; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.chart.plot.PlotOrientation; import org.micromanager.data.Coords; import java.lang.Math; //Fonction pour récupérer la moyenne des pixels à un Y donnée sur l'ensemble du zstack pour un temps donnée float[] getLineMaxProj(int time, int chan, int plane, int Y_POS) { /* * time, le temps sur lequel on veut faire la moyenne * chan, le channel * plane, la tuile en xy que l'on veut utiliser * Y_POS, la position en y sur l'image ou l'on veut faire la moyenne * */ //Recup de la fenetre ouverte dw = mm.displays().getCurrentWindow(); //Recup le datastore de la fenetre data=dw.getDatastore(); //On chope les limites indices=data.getMaxIndices(); maxZ=indices.z; W = mmc.getImageWidth(); // Vecteur pour stoquer les max pour chaque pixel de la ligne float[] maxpix = new float[W]; //On cherche le max sur l'ensemble du stack en z for (int z=0; z<=maxZ; z++){ coords=mm.data().createCoords("t="+time+",p="+plane+",c="+chan+",z="+z); //print(coords); if (data.hasImage(coords)){ //print("process pixels"); imgT=data.getImage(coords); ij_processor=mm.data().ij().createProcessor(imgT); //print(ij_processor.getRoi()); //print(ij_processor.getStatistics()); //print(pixdata); for(int i=0; i<W; i++){ pixdata = ij_processor.get(i, Y_POS); //print(i); if (maxpix[i] < pixdata){ maxpix[i] = pixdata; } } } else { print("No image found for:"); print(coords); } } //print(maxpix); return maxpix; } //Fonction pour avoir le max float max(float[] numlist){ float tmpmax = numlist[0]; for (num: numlist){ if (num > tmpmax){ tmpmax = num; } } return tmpmax; } //Fonction pour avoir le min float min(float[] numlist){ float tmpmin = numlist[0]; for (num: numlist){ if (num < tmpmin){ tmpmin = num; } } return tmpmin; } //Fonction pour calculer la moyenne double mean(float[] numlist){ double sum = 0; double n = 0; for (i: numlist){ sum += i; n += 1; } return sum/n; } //Fonction pour calculer le std double std(float[] numlist){ m = mean(numlist); double sum=0; double n = 0; for (i: numlist){ sum += Math.pow((i-m), 2.0); n+=1.0; } return Math.pow(sum/n, 0.5); } class SimpleRacineTrackRunnable extends Thread { //initialisation des variables protected volatile boolean check_acquisition = true; int dtsleep = 100; acq = mm.acquisitions(); H = mmc.getImageHeight(); W = mmc.getImageWidth(); //Il faut regler ça en fonction de la vitesse de croissance d'une racine //En gros 0.01 - 0.02 µm/s soit ~1µm/min -> pour un dt toute les 30min: 36µm //Ecart entre 4/6 et 5/6 de l'image c'est ~89µm int Y_MEASURE = (int) Math.round(H * (5/6.0)); int Y_REF = (int) Math.round(H * (4/6.0)); //La platine xyStage = mmc.getXYStageDevice(); int cpt = 1; double ref_std = 0; float std_offset = (float) 1.5; //Le seuill de déclanchement pour dire qu'il y a une racine 2*std semble bien //correspondance pixel um (pour la platine) pxtoum = mmc.getPixelSizeUm(); //On recupere l'engine de l'acquistition acq_engine=acq.getAcquisitionEngine(); //Initialisation des series pour tracer les données XYSeries linedata = new XYSeries("RacinePixels"); XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(linedata); public SimpleRacineTrackRunnable() { // Mon constructeur } public void run() { init_plot(); while(check_acquisition){ if (acq.isAcquisitionRunning()){ //print("Acquisition is running"); data_acq = acq_engine.getAcquisitionDatastore(); //On choppe les métadonnées metad = acq_engine.getSummaryMetadata(); //max_frame = metad.getInt("Frames"); //nombre de temps max_slice = metad.getInt("Slices"); //max de z //Store current indices //cur_pos = indices.position; try{ cur_total = data_acq.getNumImages(); //borne inf binf = cpt*max_slice; bsup = (cpt+1)*max_slice; if (cur_total >= binf && cur_total < bsup){ print("Fin du stack pour la frame " + (cpt-1) + " Lancer la détection de la racine"); //On fait une pause dans l'acquisition //data_acq.setPause(true); //On fait la mesure maxlinepixels = getLineMaxProj((cpt-1), 0, 0, Y_MEASURE); //Store data in XYserie for ploy linedata.clear(); for (int it=0; it<maxlinepixels.length; it++){ linedata.add(it, maxlinepixels[it]); } //SI c'est le premier stack, on definit le niveau de fond de l'image if (cpt == 1){ ref_std = std(maxlinepixels); //Pour faire un test //ref_std = 0.1; print("Std de référence du fond " + ref_std); } else{ //On fait une nouvelle mesure et on regarde si elle depasse le seuil tmpstd = std(maxlinepixels); ratio = tmpstd/ref_std; print("Std mesuré " + tmpstd + " diff référence " + ratio ); if (ratio > std_offset){ print("La racine touche la ligne, je recentre la platine"); //On bouge la platine deltapix = Y_MEASURE - Y_REF; deltaum = pxtoum * deltapix; //Sur notre platine il faut descendre pour faire remonter l'image! curpos = mmc.getYPosition(); curxpos = mmc.getXPosition(); print("Nouvelle position" + (curpos+deltaum)); if ((curpos+deltaum) < 2000 ){ print("Deplace la platine verticalement de " + deltaum +" µm"); mmc.setXYPosition(xyStage, curxpos, curpos+deltaum); } } } //update frame counter ++cpt; //data_acq.setPause(false); } } catch (e) { print("Erreur, probablement pas encore d'images"); print(e); } } Thread.sleep(dtsleep); } print("Stop the tracker -> OK"); }; public void stop_tracker() { check_acquisition = false; cpt = 1; std_ref = 0; linedata.clear(); }; public void init_plot() { JFreeChart chart = ChartFactory.createXYLineChart("Profil ligne autodetection racine", // Title "x", // x-axis Label "Gray value", // y-axis Label dataset, // Dataset PlotOrientation.VERTICAL, // Plot Orientation false, // Show Legend false, // Use tooltips false // Configure chart to generate URLs? ); ChartFrame graphFrame = new ChartFrame("Test", chart); graphFrame.getChartPanel().setMouseWheelEnabled(true); graphFrame.pack(); graphFrame.setVisible(true); }; }; Thread racine_tracker = new SimpleRacineTrackRunnable(); racine_tracker.start();
Contenu du script stop_simpleroottrack.bsh
void stop_tracker(Runnable tracker_runnable){ /* * Fonction pour arreter un tread qui a une boucle infinie */ tracker_runnable.stop_tracker(); tracker_runnable.join(1000); } try{ //Pour arreter le tracker il suffit d'utiliser cette fonction stop_tracker(racine_tracker); } catch(e){ print("Erreur pour stopper le tracker de racine"); print(e); }
3.6.4 Script pour mettre en place une photopériode
Un petit script a été developpé permettant de faire un éclairage Jour/Nuit pour les manips longues qui permet de maintenir la photopériode à l'identique de celle de la chambre de culture. Le fichier se trouve dans même dossier que le script de suivi de la racine et se nomme control_white_illumination.bsh
Des petites options sont réglable en début de script:
- La durée du jour, variable day_period
- Le temps de la première exposition (jour ou nuit), pour synchroniser avec la chambre de culture a régler avant de lancer une acquisition), variable first_period_delay
- On commencer par jour (true) ou par nuit (false), variable init_as_day
Pour le lancer on utiliser l'éditeur de script de MicroManager (menu Tools > Script Pannel…) on le selectionne dans la barre de gauche et on appuie sur run en haut de l'éditeur (ou on clic 2 fois sur son nom dans la barre de gauche).
Ce script n'étant pas dans un Thread, il faut le lancer en dernier (par exemple après avoir lancer le tracking de la racine)
Contenu du script control_white_illumination.bsh
// Configuration d'arduino pour l'illumination avec la lumière blanche // cf: https://micro-manager.org/wiki/Arduino // PARAMETRES switch_pin="2"; // pin 9 2**1 en bit day_period=16.; // periode en heure first_period_delay=4.0; //delay en heure avant le premier changement (pour synchro avec la chambre de culture) init_as_day=true; //doit on démarer en jour ou nuit switch_name = "Arduino-Switch"; shutter_name = "Arduino-Shutter"; onoff_name = "OnOff"; cobolt_name = "Cobolt"; // Get the acquisition engine acq = mm.getAcquisitionEngine(); LIGHT_RUN = true; PERIOD=0; JOUR_STATE=true; // Convert time to milliseconds day_period *= 3600.0 * 1000.0; first_period_delay *= 3600.0*1000.0; // Do we need to take into account a delay of the first switch between day and night if(first_period_delay > 0){ PERIOD = first_period_delay; } else { PERIOD = day_period; } if (init_as_day == false){ JOUR_STATE = false; } //INIT CURTIME CURTIME=System.currentTimeMillis(); while(LIGHT_RUN){ if (System.currentTimeMillis()-CURTIME >= PERIOD){ CURTIME = System.currentTimeMillis(); // Change the state between day and night if (JOUR_STATE){ JOUR_STATE = false; } else { JOUR_STATE = true; } // If a delay as been set at starting time, change the period to the day_period if (PERIOD != day_period){ print("end of initialisation switch to day_period"); PERIOD = day_period; } } cur_shutter_state = mmc.getProperty(shutter_name, onoff_name); if (mmc.getProperty("Multi Shutter", "State").equals("0")){ // Change the arduino pin to the light one mmc.setProperty(switch_name, "Label", switch_pin); // Do I need to light up if (JOUR_STATE){ if (cur_shutter_state.equals("0")){ mmc.setProperty(shutter_name, onoff_name, "1"); } } // Do I need to light down else{ if (cur_shutter_state.equals("1")){ mmc.setProperty(shutter_name, onoff_name, "0"); } } } else { //Need to shutdown the light when acquisition is running if (cur_shutter_state.equals("1")){ mmc.setProperty(shutter_name, onoff_name, "0"); } } Thread.sleep(100); } }
3.6.5 ImageJ et les plugins utiles pour le SPIM
En plus de MicroManager une version de FIJI est installée sur la machine, il faut lui ajouter une petite série de "plugins" qui aident dans la gestion des données acquises avec le SPIM.
Deux plugins sont très utiles:
- BigDataViewver (https://imagej.net/BigDataViewer), qui permet de compresser et voir les données du SPIM efficacement en utilisant le format HDF5.
- BigStitcher (https://imagej.net/BigStitcher), qui marche conjointement avec BigDataViewver et qui permet de faire des re-calages des plusieurs tuiles du SPIM et d'autres opérations sur les fichier HDF5.
Ces deux "plugins" s'installent directement depuis le menu update de FIJI.
4 Utilisation du SPIM avec Micro-Manager
Le guide général sur l'utilisation de MicroManager est disponible sur son site: https://micro-manager.org/wiki/Version_2.0_Users_Guide
Avant de démarrer MicroManager, il faut allumer touts les instruments:
- Le contrôleur des moteurs de la platine (gros boîtier blanc)
- Le contrôleur du moteur de rotation (petit boîtier rouge qui reste en général allumé)
- La roue de filtres motorisée (interrupteur IO sur le flanc gauche)
- La caméra Hamamatsu
- Vérifier que sur le boîtier du contrôle du laser il y a bien une petite lumière verte.
4.1 Chargement de la configuration
Le lancement de MicroManager se fait soit via le raccourci se trouvant sur le bureau avec le nom de Micro-Manager 2.0beta-SPIM. Soit en utilisant le menu de Windows en cherchant Micro-Manager 2.0beta. Il peut aussi se faire en allant chercher l'exécutable (qui se nomme ImageJ.exe) dans le dossier d'installation de MircroManager:
C:\Program Files\Micro-Manager-2.0beta
Lors du démarrage la fenêtre de chargement de la configuration du microscope s'affiche (voir la figure 16). La dernière configuration utilisée est proposée par défaut. Il doit suffire de cliquer sur le bouton OK.
Si la configuration a été changée, il faut charger la configuration actuelle du spim contenue dans le fichier spim_version1_arduino.cfg qui se trouve dans le dossier:
C:\Users\mecaspim\Documents\spim_micromanager_config
Si lors du chargement certains instruments ne répondent pas, redémarrer l'ordinateur et essayer de nouveau. Si le problème persiste il faut isoler les instruments et voir ce qui ne va pas dans le fichier de configuration (numéro de Port série qui a changé, etc…)
Le chargement met un peu de temps et se termine par l'ouverture de la fenêtre principale de MicroManger et celle "d'accès rapides" destinée au SPIM (voir la Figure 17).
Avant toutes acquisitions, il faut impérativement initialiser les platines.
4.2 Initialisation des platines
L'initialisation des platines se fait soit en cliquant sur le bouton Initialize de la zone 1 du panneau d'accès rapide du SPIM (figure 17 b), soit en sélectionnant le preset "Initialise" du group Platine dans l'encart configuration settings de la fenêtre principale (figure 17 a).
L'initialisation prend du temps et bloque l'interface de MicroManager le temps de sont exécution. Elle procède aux opérations suivante:
- Ré-initialisation des moteurs X, Y, Z de la platine (vous devez observer un déplacement des moteurs)
- Ré-initialisation du moteur de rotation (le moteur peut faire un tour complet lors de l'initialisation)
- Positionnement de la platine XYZ à mi-course
- Réduction de la puissance du laser à 1% pour la sécurité
4.3 Lancer le live
Pour lancer le live, il suffit de cliquer sur le bouton live qui se trouve soit sur la fenêtre principale de MicroManager soit sur la fenêtre d'accès rapide dans la zone 3 (figure 17).
Une fenêtre avec la vue de caméra s'ouvre (figure 18 b) accompagné généralement d'une seconde fenêtre permettant de régler les propriétés de l'image qui se nomme Inspector Window (contraste, ajout d'un quadrillage, etc…) (figure 18 a). Si elle ne s'ouvre pas automatiquement il faut cliquer sur la petite roue (en bas de l'image live) puis sur Open New Inspector Window.
Le temps d'acquisition de la caméra se règle dans la fenêtre principale.
4.4 Contrôle de l'illumination
Deux illumination sont possibles avec le SPIM, soit la GFP avec le laser, soit la lumière blanche avec la lampe LED.
Pour basculer entre les deux il suffit d'utiliser les boutons de la zone 2 de l'accès rapide du SPIM (figure 17 b).
Une fois le mode d'illumination sélectionnée, il faut ouvrir ou fermer le shutter pour démarrer l'illumination, en appuyant sur le bouton open soit dans le fenêtre principal, soit dans la zone 4 du panneau d'accès rapide.
Quand la fonction auto est enclenchée au niveau du shutter celui ci s'ouvre automatiquement quand le live ou une nouvelle acquisition est lancée. Cette case auto doit être coché avant une acquisition longue durée et le shutter sélectionnée (liste déroulante dans la fenêtre principale) doit être sur Multi Shutter.
Si en appuyant sur le shutter la lumière blanche ne s'allume pas, il faut vérifier sur le boîtier noir du contrôle de lampe (cf Réglage de la lumière blanche ci-dessous) que:
- La puissance est a un niveau suffisant (tourner la grosse molette).
- Que le mode du boîtier est bien sur TRIG (petit commutateur en haut de la molette)
4.4.1 Réglage puissance laser
La puissance du laser peut se régler facilement à partir de la zone 4 de la fenètre d'accès rapide du SPIM en appuyant sur le bouton correspondant à la puissance souhaitée.
On peut aussi régler plus finement la puissance du laser en passant par le menu Config > Device Property Browser et en cherchant la ligne Cobolt,PowerSetpoint pour mettre la valeur souhaitée.
4.4.2 Réglage de la lumière blanche
La lumière blanche est contrôlée par un boîtier noir posé à proximité de l'écran de l'ordinateur. (Ce boîtier et lui même contrôlé par l'Arduino pour la connexion avec le PC)
Ce boîtier permet de contrôler la puissance (avec la grosse molette). Il permet aussi de sélectionner le mode manuel RW, l'ordinateur ne pourra plus contrôler l'éclairage. Ou le mode géré par l'ordinateur TRIG. Cette sélection se fait à l'aide du petit commutateur située au dessus de la molette de puissance.
4.5 Contrôle de la platine
La platine motorisée XYZ se contrôle à l'aide de la fenêtre Stage Control (figure 19) qui s'ouvre à partir du premier icône en forme de croix se trouvant dans la rubrique stage de la fenêtre principale (figure 17 a).
Cette fenêtre présente les axes X et Y, on peut régler les pas d'avancement des platines en entrant la distance en micromètre.
Pour la platine qui contrôle le Z (la distance de focus), il faut que le moteur sélectionné dans la liste déroulante soit X (figure 19 a). Puis utiliser les flèches situées en dessous pour faire avancer ou éloigner l'échantillon de l'objectif de détection (et ainsi trancher différents plans avec la nappe laser).
Pour contrôler le moteur de rotation il suffit de changer X par Rotation et les flèches en dessous contrôlent maintenant le moteur de rotation (figure 19 b).
4.6 Lancer une acquisition simple
Ne pas oublier de vérifier avant de lancer une acquisition:
- Que la case "auto" du shutter est cochée.
- Que le shutter "Multi shutter" est sélectionné.
- [Optionnel] si vous voulez utilisez la lumière blanche; que sa puissance est bien réglée et que la position du commutateur est sur TRIG (cf Réglage de la lumière blanche).
Pour lancer une acquisition il faut ouvrir la fenêtre Multi-Dimensional Acquisition (figure 20) à partir du bouton Multi-D Acq. se trouvant soit sur la fenêtre principale, soit en zone 3 de la fenêtre d'accès rapide (figure 17)
Plusieurs champs sont à régler:
- Time Points, permet de faire la fréquence des acquisitions.
- Z-Stacks, permet de régler la résolution des coupes dans la nappe de lumière. Attention il faut que Start Z soit plus petit que End Z, sinon la platine saccade. Le Step Size peut être ajuster en fonction de vos besoin, la résolution de Nyquist avec le 20x est ~500nm (le calculateur de SVI est utile pour la calculer: https://svi.nl/NyquistCalculator)
- Save Images, permet de définir le repertoir et nom du fichier d'acquisition. Il vaut mieux utiliser l'option Image stack file et surtout éviter les caractères spéciaux et accents dans les noms de dossier et de fichiers car ça pose des problèmes lors de la conversion des données en HDF5.
L'encart Summary permet d'avoir un aperçu de l'acquisition qui serra lancé. Si tout est OK, il suffit d'appuyer sur le bouton Acquire! pour lancer l'acquisition.
4.7 Lancer une acquisition avec suivi de la racine
Pour mettre en place le suivi de la racine, il faut lancer le script simpleroottrack.bsh. Aller dans Tools > Script Pannel… puis lancer le script en cliquant deux fois sur son nom, ou en appuyant sur le bouton Run (en haut de l'éditeur, figure 21 a). Quand le script se lance une fenêtre "Profil ligne autodétection racine" s'affiche (figure 21 b). Elle affichera le niveau de gris au niveau de la ligne de mesure qui permet au script de détecter la racine. Elle se met à jour a chaque fin d'acquisition d'un z-stack
Vous pouvez ensuite lancer l'acquisition classiquement avec l'outil Multi-D Acq.. Il faut vérifier qu'a chaque fin de z-stack la courbe de la fenêtre "Profil ligne autodétection racine" se met à jour (figure 21 c). Le script retourne aussi des indications au cours de l'acquisition dans la fenêtre des scripts au niveau de la console BeanShell (bas de la figure 21 a).
4.8 Lancer une acquisition avec Photopériode
Le script qui gère la photopériode doit être lancé en dernier, si vous voulez la photopériode + le suivi de la racine il faut commencer par lancer le script du suivi de racine avant de lancer celui de la photopériode.
Pour lancer le script il faut ouvrir la fenêtre des scripts Tools > Script Pannel…. Puis sélectionner le script control_white_illumination.bsh (figure 22).
Il faut ensuite régler les paramètres ligne 6 pour donner la photopériode et surtout ligne 7 pour donner le temps avant le premier changement jour/nuit (en heure après lancement du script).
Puis lancer le script soit en double cliquant sur son nom, soit en utilisant le bouton Run.
Pour arrêter le script, il faut appuyer sur bouton Interrupt de la fenêtre des scripts. Si vous le relancé, pensez à re-régler le paramètre first_period_delay de la ligne 7.
4.9 Fin de manip (fermeture de MicroManager)
Quand un acquisition est finie MicroManager vous le dit, il ne vous reste plus qu'a fermer la fenêtre de visu de votre acquisition.
Si le script de photopériode est lancé il faut l'arrêter en appuyant sur le bouton Interrupt de la fenêtre des script (figure 22)
Si le script de suivi de la racine est lancé, il faut l'arrêter en lançant le script stop_simpleroottrack.bsh (en double cliquant sur son nom dans la fenêtre des scripts (figure 21 a) ou en cliquant sur run.
Vous pouvez alors soit lancer une nouvelle acquisition, ou fermer MicroManager en cliquant sur la croix de la fenêtre principale (figure 17 a).
Ne fermez pas la fenêtre d'accès rapide du SPIM, sinon elle ne s'ouvrira pas au prochain démarrage et il faudra la recharger (cf la partie 3.6.2 Configuration de l'interface de micro-manager).
Quand MicroManager est fermé, vous pouvez éteindre les différents instruments (généralement on éteint juste la caméra et contrôleur des moteurs de la platine XYZ)
Penser à vider l'eau de la cuve du SPIM.
Penser à faire le re-cadrage des données et la conversion en HDF5 pour réduire de façon drastique la taille des données.
5 Sauvegarde et manipulations des images
Dans cette partie nous allons développer la façon de réduire et d'enregistrer correctement les données issues du SPIM.
La chaîne de pré-traitement est la suivante:
- On recadre (crop) les données pour enlever les pixels noirs (attention on ne peut pas utiliser ImageJ pour faire ça car les images sont trop grosses)
- On va passer du format OME-TIF qui sort de Micro-Manager à HDF5 (plus adapté) en utilisant le plugin ImageJ BigDataViewver
On peut ensuite visualiser les données ou travailler dessus.
Ne pas renommer les fichiers ".ome.tif" à la main car il ne seront plus lisible correctement! Il faut utiliser "bfconvert" pour les renommer convenablement.
5.1 Crop (re-cadrage) des données avec bfconvert
Les stack ".ome.tif" issue du SPIM sont trop volumineux pour utiliser l'outil standard d'ImageJ pour faire un re-cadrage des acquisitions (l'outil d'ImageJ sature la mémoire vive de l'ordinateur lors d'un crop). Pour le faire on peut utiliser l'outil en ligne de commande développe par Bio-Format (ceux qui ont développé le format ".ome.tif") qui s'appelle "bfconvert".
On va profiter du re-cadrage, pour réorganiser les images au sein des fichiers et faire un fichier par pas de temps.
Pour lancer bfconvert il est plus facile de passer par un terminal linux (disponible dans Windows10) que par le terminal de commande windows.
Pour lancer le terminal on cherche l'application debian dans le menu windows. un fenêtre noire s'ouvre et on peut alors naviguer jusqu'au dossier dans lequel se trouve nos données. Pour naviguer dans un terminal on utilise la commande cd.
Si vos données sont dans le dossier Mes Documents>Acquisition _data la commande pour y aller serra:
cd mecaspim-windows/Documents/Acquisition_data/
(si vous n'avez jamais utilisé de terminal demander un cours à Félix ou visitez cette page https://doc.ubuntu-fr.org/tutoriel/console_ligne_de_commande)
Quand vous êtes dans le dossier contenant vos images .ome.tif, vous pouvez utiliser la commande bfconvert comme suit:
bfconvert -option ometiff.companion metadata.ome.xml -crop x0,y0,largeur,hauteur nom_du_fichier_original_0.ome.tif nom_du_fichier_de_sortie_T%t.ome.tif
Dans cette commande les arguments sont:
- -option ometiff.companion metadata.ome.xml qui permet de faire un fichier séparer avec les métadonnées de l'acquisition
- -crop x0,y0,largeur,hauteur qui permet de définir la zone de re-cadrage, les valeurs sont a replacée par des valeurs numériques en pixels. x0,y0 est le point en haut à gauche de la zone de re-cadrage, largeur est la largeur de la zone de re-cadrage et hauteur est la hauteur de la zone de re-cadrage. Vous pouvez ouvrir l'acquisition dans ImageJ pour estimer ces valeurs (File > Imports > Bio-Formats).
- Puis le nom du fichier produit par l'acquisition avec MicroManager.
- Et enfin le nom du fichier de sortie, le T%t est important car c'est lui qui permet de grouper les images par pas de temps.
La liste des options est disponible ici: https://docs.openmicroscopy.org/bio-formats/5.8.2/users/comlinetools/conversion.html
Une fois la conversion terminée, ouvrez le nouveau fichier avec ImageJ (File > Imports > Bio-Formats) pour vérifier que votre zone de re-cadrage est correcte et que la conversion c'est bien passée.
Si tout est OK vous pouvez supprimer les fichiers de l'acquisition non re-cadrés pour libérer de la mémoire sur les disques.
Vous pouvez également compresser le fichier metadata.ome.xml en faisant un clic droit dessus puis compresser dans le navigateur de fichier de windows. Un fois compressé vous pouvez supprimer le fichier metadata.ome.xml
5.2 BigDataViewver (passage de .ome.tif à HDF)
BigDataViewver est un outil développé pour la gestion d'images lourdes issues entre-autre des SPIM. Vous trouverez une doc complète à l'adresse suivante: https://imagej.net/BigDataViewer
Étapes de la conversion vers le format HDF5
- Ouvrir le stack re-cardré (ou non) dans ImageJ (File > Imports > Bio-Formats) Aller chercher votre fichier et ouvrez le premier. Il faut que l'option Use virtual stack soit cochée sinon vous risquez de saturer les 112Go de RAM de l'ordinateur.
Lancer la conversion en utilisant le menu Plugins > BigDataViewver > Export Current Image as XML/HDF5 Dans la fenêtre qui apparaît il faut cocher les cases:
- split hdf5 et mettre timepoints per partition à 1 comme ça on aura un fichier HDF par pas de temps (ce qui facilite la sauvegarde sur le serveur de sauvegarde car évite de faire des fichiers de 200Go)
- use deflate compression pour comprimer les images
- Sélectionner le nom de votre fichier de sortie en terminant par ".xml", les fichiers HDF porteront le même nom et seront dans le même dossier.
Puis lancer la conversion avec le bouton OK
Vérifier que la conversion c'est bien passée en ouvrant le fichier (Plugin > BigDataViewver > Open XML/HDF) et ouvrir le fichier .xml que la conversion a créée.
Si tout est ok vous pouvez supprimer les fichiers re-cadrés .ome.tif pour libérer de l'espace.
5.3 Rendu 3D avec BigDataViewver
BigDataViewver dispose d'un module de vision 3D encore en développement mais qui fonctionne mieux que tous les autres disponibles dans ImageJ, il suffit d'ouvrir vos images (Plugin > BigDataViewver > Open XML/HDF), puis de lancer (Plugin > BigDataViewver > Volume Rendering Tech Demo)
5.4 BigStitcher
Si vous avez fait des tuiles lors de l'acquisition vous devez les convertir une à une en fichier HDF puis vous pouvez utiliser BigStitcher pour les assembler. Vous trouverez toutes les infos sur la page de sa documentation:
5.5 Chargement des données enregistrées avec BigDataViewver (XML/HDF) dans un stack classique ImageJ
Si vous souhaitez ouvrir les images au format BigDataViewver dans l'utilitaire classique d'ImageJ c'est possible. Il suffit d'utiliser le menu File > Import > BigDataViewver puis d'aller chercher le fichier .xml et de choisir le pas de temps à ouvrir.
Si on veut ouvrir l'ensemble des pas de temps il faut faire un petit script dans ImageJ, comme celui que vous avez ci-dessous (écrit en jython dans l'utilitaire de script de ImageJ) qui permet de faire des "maximums de projections" pour tous les pas de temps et de les regrouper dans un stack.
from ij import IJ, WindowManager nom_du_fichier = "C:/Users/mecaspim/Documents/Acquisition_data/Stage_Florent/2606-test-gfp-time-milieu1cm_1/2606-test-gfp-time-milieu1cm-cropT0.xml" nombre_de_temps = 2 start_zstack = 20 stop_zstack = 210 #On ferme toutes les fenetres ids = WindowManager.getIDList() if ids: for id in ids: WindowManager.getImage(id).close() cmd_zstack = "start="+str(start_zstack)+" stop="+str(stop_zstack)+" projection=[Max Intensity]" list_nom_zstack = [] for t in range(nombre_de_temps+1): print("Chargement du temps "+str(t)) cmd = "xml="+nom_du_fichier+" timepoint="+str(t)+" setup=0 resolution=0 open" print(cmd) IJ.run("BigDataViewer...", cmd) IJ.run("Z Project...", cmd_zstack) # Gestion des fenetres ouvertes ids = WindowManager.getIDList() for id in ids: img = WindowManager.getImage(id) # Si le nom contient MAX on enregistre le nom (car c'est le restultat du zstack) # Sinon on ferme le stack pour liberer de la memoire if "MAX" not in img.getTitle(): img.close() else: if img.getTitle() not in list_nom_zstack: list_nom_zstack += [ img.getTitle() ] # On fait le concatenate de tous les zstack cmd_concatenate = "open " compteur = 1 for nom in list_nom_zstack: # print(nom) cmd_concatenate += " image"+str(compteur)+"=["+nom+"]" compteur += 1 print(cmd_concatenate) IJ.run("Concatenate...", cmd_concatenate)
5.6 Transfert des données sur le serveur de sauvegarde à Bordeaux
Nous disposons d'un espace de stockage sur le serveur de sauvegarde à Bordeaux. La connexion étant sécurisé par adresse IP il faut disposé d'un IP fixe et déclarée sur le serveur de Bordeaux pour accéder au serveur. Cependant à l'UCA on ne peut pas avoir d'IP fixe, on utilise donc un relais sur la machine PIAF-DB (piafdb.piaf.uca.fr) gérée par Philippe qui dispose d'une ip fixe déclarée à Bordeaux et qui permet de faire un pont ssh vers le serveur de Bordeaux.
Contacts à l'INRA pour les infos: Nicolas et Philippe
Comptes:
- sur piafdb, utilisateur hchauvet (mot de passe sur le cahier du SPIM)
- sur Serveur de sauvegarde à Bordeaux, utilisateur hchauvet (mot de passe sur le cahier du SPIM)
Procédure de sauvegarde:
Ouvrir le pont via PIAFDB, démarrer le programme power shell dans windows à partir du menu démarre puis entrez la commande suivante
ssh -f hchauvet@piafdb.piaf.uca.fr -L 2000:bavo-adr-ispa-01.bordeaux.inra.fr:22 -N
Le mot de passe a entrer est celui du compte sur PIAFDB
Cela crée un pont (via piafdb) pour accéder à Bordeaux en sftp utilisant l'adresse localhost sur le port 2000.
- Utiliser le logiciel FileZila (qui gère les connexions FTP et qui permet de faire des transferts) pour se connecter sur Bordeaux. Utilisez le compte enregistré qui s'appelle Bordeaux et qui contient la connexion sur l'adresse localhost et le port 2000, en utilisant le premier icône en haut à gauche. Entrez le mot de passe du compte de Bordeaux
- Transférez les données dans le dossier PIAF/SPIM, utilisez la documentation de FileZila pour savoir comment il fonctionne: https://wiki.filezilla-project.org/FileZilla_Client_Tutorial_(fr)
6 Réglage du SPIM avant mesures
6.1 Alignement du laser
L'utilisation du laser de classe 3b comporte des risques pour la vue. Se prendre un laser à pleine puissance peut causer des dégâts irréversibles. Si vous utiliser le laser avec une puissance réglée à plus de >1mw, portez les lunette!
L'alignement du laser doit être vérifié avant chaque campagne de mesures (voir §verification alignement avec miroir ou grille et réalignement partiel). Si les optiques ont bougées (nettoyage, déplacement du SPIM, upgrade), il faut suivre les opérations suivant pour refaire un alignement complet.
Des informations utiles concernant l'alignement peuvent être obtenues sur le site de l'openspim:
6.1.1 Alignement complet du SPIM
Dans ce chapitre on détail les opérations de démontage, d'alignement, puis le remontage des optiques sur le SPIM.
Avant le démontage pensez à éteindre le laser
- Démontage du premier segment du bras d'illumination
Sur le premier segment du bras d'illumination du SPIM il y a (de droite à gauche):
- un télescope qui permet de grossir le faisceau du laser (d'un facteur 2, Il se compose de deux lentilles une avec une focal de 25mm et une autre avec une focal de 50mm),
- une fente (qui permet de limiter les aberrations du faisceau sur les côtés),
- et une lentille cylindrique qui permet d'aplanir le faisceau laser.
Pour démonter le télescope, il faut deux outils: Les clefs Allen jaune et marron et le petit démonte lentille (tube argenté creux avec deux petits picots).
Ensuite placer les boîtes des lentilles ouverte sous le bras pour amortir les chutes éventuelles et utiliser des gants pour ne pas laisser de trace de doigts sur les lentilles.
Enlever la première lentille (f=25) en dévissant la vis du dessus avec la clef jaune, puis en poussant avec le doigt de droite à gauche pour faire sortir la lentille. Ranger la lentille dans sa boîte.
Enlever la deuxième lentille (f=50) en dévissant la bague à gauche du porte lentille avec le démonte lentille, puis faire sortir la lentille de gauche à droite. Ranger la lentille dans sa boîte.
Ouvrir la fente au maximum, en tournant la vis micro-métrique située sur le dessus.
Enlever la lentille cylindrique en utilisant un petit tourne vis plat pour commencer à desserrer la bague du côté gauche, puis utiliser la main pour finir de la desserrer (attention de ne pas rayer la lentille avec le tournevis au début). Il faudra desserrer le porte lentille avec une petite clef Allen marron pour le faire coulisser sur la droite pour desserrer plus facilement la bague. Retirer la lentille cylindrique en la poussant de droite à gauche (en utilisant une clef Allen délicatement)
- Démontage du deuxième segment du bras d'illumination
Sur le second segment du bras d'illumination on trouve uniquement un second télescope qui permet de réduire la taille du faisceau d'un facteur 2 (il est composé d'un lentille de focal 50mm et d'une autre de focal 25mm).
Pour pouvoir extraire les lentilles vous devrez peut être déplacer les porte lentille, en desserrant les 4 petites visse avec la clef marron ou jaune pour faire les faire coulisser sur le rail.
Démonter la première lentille (f=50mm) avec en enlevant la bague située à gauche à l'aide du démonte lentille. Enlever la lentille.
Démonter la seconde lentille (f=25mm) en desserrant la vis située sur le dessus avec la clef jaune. Enlever la lentille.
- Alignement du laser
- Avant de régler le laser penser soit à mettre sa puissance à 1mw. Soit porter les lunettes de protection.
- Enlever les objets réfléchissant de vos mains (pas de bagues, pas de pendentifs, etc…)
L'alignement d'un laser est un processus itératif assez lent, donc il faut s'armer d'un peu de patience le jour où vous prévoyez de le faire. Il faut compter une bonne journée de travail pour procéder à l'alignement complet du SPIM.
Pour aligner un laser (c.a.d lui donner un trajet rectiligne au milieu des barres métalliques), il faut utiliser deux miroir et avec une cible d'alignement (figure 24). Il faut suivre toujours la procédure suivante:
- Mettre la cible proche du miroir 2 et utiliser le miroir 1 pour régler la position du laser au centre de la cible (il doit passer dans le petit trou).
- Éloigner la cible vers le miroir 3 et utiliser le miroir 2 pour régler la position du laser au centre de la cible. En bougeant le miroir 2 on change la position du laser de l'étape 1 et c'est normal !
- On répète les étapes 1 et 2 dans l'ordre jusqu'à obtenir un faisceau laser qui passent par le centre de la cible sur toute la longueur du premier segment.
Une fois le premier segment aligné, il faut aligner le second. Pour ce faire on utilise uniquement le miroir 3 avec cette fois-ci les 3 vis (la dernière nécessite l'utilisation d'une clef Allen):
- Mettre la cible la plus loin possible du miroir 3 et utiliser les deux vis pour centrer le laser.
- Rapprocher la cible du miroir 3 et utiliser la 3ème vis (celle nécessitant la clef Allen) pour recentrer le laser. En bougeant cette vis le laser vas se déplacer de biais (à la fois horizontalement et verticalement).
- Répéter ces 2 opération jusqu'à obtenir un laser centrer sur toute la longueur du deuxième segment.
Pour "pofiner" l'alignement (et faire une auto-collimation, en pratique pas très utile car ensuite on va re-bouger un peu le laser pour l'aligner en face de la caméra), on peut utiliser un miroir supplémentaire (monté sur un clip qui se fixe sur les rails métalliques) que l'on vient ajouter au bout du premier segment. On place ensuite une cible proche du miroir 2 et on regarde si le laser repasse par le trou de la cible. (quand il parfaitement aligné, le laser brille plus). On peut répéter cette opération sur le deuxième segment en plaçant le miroir le plus loin possible.
Pour finir l'alignement on va mettre en marche la camera du SPIM visualiser le laser:
- Pour ça on démarre Micro-Manager (on pense a allumer les contrôleurs des platines, la caméra et la roue à filtres sinon la configuration de Micro-Manager ne va pas s'ouvrir et à remplir la cuve avec de l'eau filtrée)
- On monte un peu la puissance du laser (vers 4-5mw, 5%)
- On vérifie qu'il n'y a pas de filtre sur le bras de detection
- On démarre le live pour visualiser le laser (régler correctement le temps d'acquisition et les contraste sur l'histogramme)
- On peut ajouter une mire ou une grille sur l'image pour s'aider à positionner le laser au centre. Sur la fenêtre de l'histogramme (Inspector Windows) -> overlays -> Add
A ce stade de l'alignement le laser doit être rectiligne et au centre de l'image (figure 25). Si le laser semble un peu flou, il faut ajuster la bague réglable sur le bras de détection (proche de la caméra, Figure 8)
Si le laser n'arrive pas au centre il faut régler la chambre:
- Soit le n'est pas trop loin du centre, on peut alors jouer avec l'inclinaison de la chambre en dévissant la vis se trouvant sur le pied de devant.
- Soit il est très loin du centre, il faut alors retravailler la position de l'objectif de détection par rapport à celui de l'illumination. Pour cela il faut utiliser les deux petites molette de la bague de réglage XY qui permettent de jouer légèrement sur la position de l'objectif de détection (située entre la roue à filtres et l'objectif). Ces molettes sont bloquées à l'aide de deux petites visses, il faut la petit clef bleue pour les desserrer (penser à les resserrer quand le réglage est bon). Vous pouvez aidez le déplacement de l'objectif en appuyant doucement dessus au niveau de cette bague de réglage XY. Si cela ne suffi pas, alors il faut démonter l'axe de détection et re-ajuste l'alignement de objectif de détection à la main.
Avant d'aller plus loin et de remonter les lentilles il faut que le laser soit bien au centre de la chambre et rectiligne !
- Re-montage des deux télescopes
Éteindre le laser avant de remettre les lentilles
Commencer par le télescope du premier segment (celui le plus proche du laser). Remettre les deux lentilles (f=25 le plus à droite et f=50, voir le schéma de la figure 23).
La distance entre les deux lentilles doit être approximativement de 75 mm (f50+f25). Le réglage fin se fait en regardant le faisceau sur la caméra.
Commencer par corriger l'alignement du laser (le remettre au centre de l'image) avec les deux vis du miroir 3.
Puis régler finement la distance entre les deux lentilles de tels sorte que le faisceau soit le plus nette possible sur la caméra et qu'il soit le plus fin au centre (Figure 26).
Faire de même pour le second télescope sur le second segment du bras d'illumination. Attention les lentilles sont dans l'autre sens f=50 puis f=25. Le faisceau obtenu à l'écran s'écrase un peu moins au centre, mais il faut faire les réglage avec les deux vis du miroir 3 pour qu'il soit centrée et symétrique par rapport au centre. Il faut également régler l'espacement entre ces deux lentilles pour que le faisceau soit le plus nette possible.
- Re-montage de la lentille cylindrique
Remettre en place la lentille cylindrique, un signe gravé le bord de la lentille (\(\rightarrow \infty\)) permet de la mettre dans le bon sens. La lumière du premier télescope sort avec des rayons parallèle, il faut donc mettre la lentille de telle sorte que la flèche \(\rightarrow \infty\) pointe vers la droite (vers la source laser).
Serrer la lentille avec une petite bague en métal (il faut la visser à la main avec un gant car l'outil pour serrer les bagues ne passe pas dans la cage. Finir avec un tourne vis plat en visant la petite encoche dans la bague, ne pas trop serrer et faire attention à ne pas rayer la lentille.
Mettre le laser à 1mw et Placer la lentille pour que l'image d'un ligne lumineuse soit nette sur le miroir 3 (il faut pencher la tête pour la voir). La distance entre le porte lentille (pièce qui se fixe sur les rails métalliques) et le bord du porte miroir 3 est d'environs 55.1mm (longueur du rail entre le miroir et le porte lentille).
Fixer le porte lentille sur les rails avec la clef Allen orange.
Le support de la lentille cylindrique peut tourner à 360° horizontalement. Pour aligner verticalement la feuille de lumière dans la chambre, on peut faire un premier réglage grossier en regardant la fente (situé à droite de la lentille) ou normalement deux lignes forment un croix (une petite ligne et une ligne plus épaisse). Si vous ne les voyiez pas bien, il faut augmenter un peu la puissance du laser. Il faut tourner la lentille cylindrique pour que la ligne de lumière la plus fine soit horizontale (ce qui la rend verticale dans la chambre d'observation). Le réglage fin de l'orientation est réalisé dans le paragraphe suivant (Voir 6.1.2).
À la caméra, vous devriez vous des bulles et poussières présentent dans l'eau réfléchir la lumière sur toute la surface de l'image. Vous pouvez aussi regarder sur le côté gauche de la chambre vous devriez vous une feuille de lumière.
6.1.2 Vérification de l'alignement de la feuille de lumière
Pour aligner précisément la feuille de lumière, on va l'intercepter avec un objet plan que l'on visualiser à 45° par rapport à l'objectif de détection. On peut soit utiliser un miroir, soit une un quadrillage très fin sur feuille d'or (on en a eu un plaque gratos du synchrotron).
J'ai coupé un petit morceau de cette feuille que j'ai entouré de sotch transparent. Je fixe ensuite se petit morceau sur un porte échantillon avec de la "patte à fix" (cf figure 27-a). Puis je place le porte échantillon à 45 deg (cf figure 27-b) et j'observe la grille avec la lumière blanche. Je viens me placer dans le plan focal, on ne voit alors qu'une ligne de la grille verticale de la grille (cf figure 27-c). Cette ligne peut être un peu de biais et pas parfaitement verticale, ce n'est pas important.
Ensuite on allume le laser, on le met le plus bas possible (si c'est encore trop fort —sature la caméra— on met en place le filtre de densité neutre "ND filter" pour diminuer la puissance envoyer vers la caméra). On ajuste ensuite la position de la feuille de lumière en utilisant les deux vis du miroir 3 et surtout celle qui permet de déplacer la feuille de lumière en profondeur (la vis en bas à gauche). On vient mettre la feuille de lumière pour la faire coïncider avec la zone nette que l'on avait en lumière blanche. On ajuste également l'angle de la feuille de lumière (en tournant la lentille cylindrique) pour qu'elle soit dans le plan focal (plan nette) sur toute la hauteur du champ de vue (cf figure 27-d).
On peut ensuite faire varier la position latérale du porte échantillon pour voir si la feuille de lumière suit bien la zone nette sur toute la largeur du champ de vue (cf animation de la figure 28). Quand le réglage est bon, on fige la rotation de la lentille à l'aide d'une clef Allen.
On peut faire la même opération en plaçant au bout du porte échantillon un petit morceau de miroir (il y en a un dans la même boîte que la feuille d'or), et en faisant la mise au point sur une zone ou il y a des défauts sur le miroir.
Une fois la feuille bien au centre du plan focal, c'est tout bon. On peut poursuivre soit en passant un échantillon, soit en passant des billes de tailles connues pour vérifier notre alignement et estimer la PSF de l'instrument.
6.2 Calibration px/µm
6.3 Visionner des billes
Pour vérifier le bon allignement du SPIM, le mieux est d'observer des billes de calibrations de microscope (comme les P7200 ou T7281 les chez Fischer).
La préparation des billes est bien expliquée ici: https://www.dkfz.de/Macromol/quickfit/beadscan.html
Cf icha et al 2016 (FIG 1 dans le PDF), jove pour exemple de billes bien alignées ou pas.