Au d´ebut de mon cursus en Master je pr´evoyais de faire ces deux ann´ees d’´etude et de les terminer par un stage me permettant de m’engager dans la vie active. Cependant au cour de cette ann´ee univer- sitaire, et des cours qui m’ont ´et´e communiqu´es, les m´etiers li´es `a la recherche m’ont de plus en plus int´eress´es. En ce sens j’ai donc d´ecid´e de r´ealis´e mon stage au sein d’un laboratoire de recherche afin
de m’apercevoir du quotidien au sein d’une ´equipe de recherche et si cela pourrait me plaire. Durant ces 8 semaines j’ai pu m’apercevoir du quotidien d’une personne travaillant dans un laboratoire de recherche. Cette exp´erience m’ayant beaucoup plu et apport´e je pense l’ann´ee prochaine m’orient´e vers un Master recherche afin de poursuivre par la suite mes ´etudes par une th`ese.
Bibliographie
Baldwin K L., Strohm A K. et Masson P H. “Gravity Sensing and Signal Transduction in Vascular Plant Primary Roots”. In : American Journal of Botany 100.1 (2013), p. 126-142. doi : 10.3732/ ajb.1200318.
Barrada A., Montan´e M-H., Robaglia C. et Menand B. “Spatial Regulation of Root Growth: Placing the Plant TOR Pathway in a Developmental Perspective”. In : International Journal of Molecular Sciences 16.8 (2015), p. 19671-19697. doi :10.3390/ijms160819671.
Clark L. J., Whalley W. R. et Barraclough P. B. “Partial mechanical impedance can increase the turgor of seedling pea roots”. In : Journal of Experimental Botany 52.354 (2001), p. 167-171. doi :10.1093/jxb/52.354.167.
Clark L.J., Whalley W.R., Dexter A.R., Barraclough P.B. et Leigh R.A. “Complete mechanical impe- dance increases the turgor of cells in the apex of pea roots”. In : Plant, Cell and Environment 19.9 (1996), p. 1099-1102. doi :10.1111/j.1365-3040.1996.tb00217.x.
Haswell E S. et Meyerowitz E M. “MscS-like Proteins Control Plastid Size and Shape in Arabidopsis thaliana”. In : Current Biology 16.1 (jan. 2006), p. 1-11. doi :10.1016/j.cub.2005.11.044.
Haswell E.S., Peyronnet R., Barbier-Brygoo H., Meyerowitz E.M. et Frachisse J-M. “Two MscS Homologs Provide Mechanosensitive Channel Activities in the Arabidopsis Root”. In : Current Biology 18.10 (mai 2008), p. 730-734. doi :10.1016/j.cub.2008.04.039.
Jaffe M. J., Leopold A. C. et Staples R. C. “Thigmo responses in plants and fungi”. In : American Journal of Botany 89.3 (2002), p. 375-382. doi :10.3732/ajb.89.3.375.
Kiss J Z., Edelmann R E. et Wood P C. “Gravitropism of hypocotyls of wild-type and starch-deficient Arabidopsis seedlings in spaceflight studies”. In : Planta 209.1 (1999), p. 96-103. doi :10.1007/ s004250050610.
Kleine-Vehn J., Ding Z., Jones A. R., Tasaka M., Morita M. T. et Friml J. “Gravity-induced PIN transcytosis for polarization of auxin fluxes in gravity-sensing root cells”. In : Proceedings of the National Academy of Sciences 107.51 (2010), p. 22344-22349. doi :10.1073/pnas.1013145107. Mancuso S., Barlow P W., Volkmann D. et Baluˇska F. “Actin Turnover-Mediated Gravity Response
in Maize Root Apices: Gravitropism of Decapped Roots Implicates Gravisensing Outside of the Root Cap”. In : Plant Signaling& Behavior 1.2 (2006), p. 52-58. doi :10.4161/psb.1.2.2432. Monshausen G B., Miller N D., Murphy A S. et Gilroy S. “Dynamics of auxin-dependent Ca2+
and pH signaling in root growth revealed by integrating high-resolution imaging with automated computer vision-based analysis: Calcium and auxin signaling”. In : The Plant Journal 65.2 (2011), p. 309-318. doi :10.1111/j.1365-313X.2010.04423.x.
Monshausen G. B., Bibikova T. N., Weisenseel M. H. et Gilroy S. “Ca 2+ Regulates Reactive Oxygen Species Production and pH during Mechanosensing in Arabidopsis Roots”. In : The Plant Cell 21.8 (aoˆut 2009), p. 2341-2356. doi :10.1105/tpc.109.068395.
Monshausen G.B. et Gilroy S. “Feeling green: mechanosensing in plants”. In : Trends in Cell Biology 19.5 (2009), p. 228-235. doi :10.1016/j.tcb.2009.02.005.
Nakagawa Y., Katagiri T., Shinozaki K., Qi Z., Tatsumi H., Furuichi T., Kishigami A., Sokabe M., Kojima I., Sato S., Kato T., Tabata S., Iida K., Terashima A., Nakano M., Ikeda M., Yamanaka T. et Iida H. “Arabidopsis plasma membrane protein crucial for Ca2+ influx and touch sensing in roots”. In : Proceedings of the National Academy of Sciences 104.9 (f´ev. 2007), p. 3639-3644. doi :10.1073/pnas.0607703104.
Oveˇcka M., Vaˇskebov´a L., Komis G., Luptovˇciak I., Smertenko A. et ˇSamaj J. “Preparation of plants for developmental and cellular imaging by light-sheet microscopy”. In : Nature Protocols 10.8 (aoˆut 2015), p. 1234-1247. doi :10.1038/nprot.2015.081.
Pietzsch T., Saalfeld S., Preibisch S. et Tomancak P. “BigDataViewer: visualization and processing for large image data sets”. In : Nature Methods 12.6 (2015), p. 481-483. doi :10.1038/nmeth.3392. Pitrone P. G., Schindelin J., Stuyvenberg L., Preibisch S., Weber M., Eliceiri K.W., Huisken J. et Tomancak P. “OpenSPIM: an open-access light-sheet microscopy platform”. In : Nature Methods 10.7 (2013), p. 598-599. doi :10.1038/nmeth.2507.
Pivetti C. D., Yen M.-R., Miller S., Busch W., Tseng Y.-H., Booth I. R. et Saier M. H. “Two Families of Mechanosensitive Channel Proteins”. In : Microbiology and Molecular Biology Reviews 67.1 (mar. 2003), p. 66-85. doi :10.1128/MMBR.67.1.66-85.2003.
Roue, Juliette. “Penetration of the Arabidopsis thaliana primary root in response to variations in growth medium strength”. Theses. Universit´e Clermont Auvergne, d´ec. 2018.
Tseng Q., Wang I., Duchemin-Pelletier E., Azioune A., Carpi N., Gao J., Filhol O., Piel M., Th´ery M. et Balland M. “A new micropatterning method of soft substrates reveals that different tumorigenic signals can promote or reduce cell contraction levels”. In : Lab on a Chip 11.13 (2011), p. 2231. doi :10.1039/c0lc00641f.
Weber M., Mickoleit M. et Huisken J. “Chapter 11 - Light sheet microscopy”. In : Methods in Cell Biology. Sous la dir. de Waters J. C. et Wittman T. T. 123. Quantitative Imaging in Cell Biology. Academic Press, 2014, p. 193-215. doi :10.1016/B978-0-12-420138-5.00011-2.
Wolverton C., Mullen J., Ishikawa H. et Evans M. “Root gravitropism in response to a signal origina- ting outside of the cap”. In : Planta 215.1 (2002), p. 153-157. doi :10.1007/s00425-001-0726-9. Yamanaka T., Nakagawa Y., Mori K., Nakano M., Imamura T., Kataoka H., Terashima A., Iida K.,
Have Distinct and Overlapping Roles in Arabidopsis”. In : Plant Physiology 152.3 (mar. 2010), p. 1284-1296. doi :10.1104/pp.109.147371.
Annexes
Code pour contrˆoler l’illumination du SPIM
1 // C o n f i g u r a t i o n arduino pour i l l u m i n a t i o n avec la lumiere blanche
2 // cf : https :// micro - manager . org / wiki / Arduino
3
4 // P A R A M E T R E S
5 s w i t c h _ p i n =" 2 "; // pin 9 2**1 en bit
6 d a y _ p e r i o d =16.; // periode en heure
7 f i r s t _ p e r i o d _ d e l a y =4.0; // delai en heure avant le premier c h a n g e m e n t ( pour synchro avec la chambre de culture )
8 i n i t _ a s _ d a y =true; // doit on d e m a r r e r en jour ou nuit
9 10 s w i t c h _ n a m e = " Arduino - Switch "; 11 s h u t t e r _ n a m e = " Arduino - Shutter "; 12 o n o f f _ n a m e = " OnOff "; 13 c o b o l t _ n a m e = " Cobolt "; 14
15 // Get the a c q u i s i t i o n engine
16 acq = mm . g e t A c q u i s i t i o n E n g i n e (); 17 18 L I G H T _ R U N = true; 19 PERIOD =0; 20 J O U R _ S T A T E =true; 21 22 // Convert time to m i l l i s e c o n d s 23 d a y _ p e r i o d *= 3600.0 * 1000.0; 24 f i r s t _ p e r i o d _ d e l a y *= 3 6 0 0 . 0 * 1 0 0 0 . 0 ; 25
26 // Do we need to take into account a delay of the first switch between day and night
27 if( f i r s t _ p e r i o d _ d e l a y > 0){ 28 PERIOD = f i r s t _ p e r i o d _ d e l a y ; 29 } else { 30 PERIOD = d a y _ p e r i o d ; 31 } 32 33 if ( i n i t _ a s _ d a y == false){ 34 J O U R _ S T A T E = false; 35 } 36 // INIT CURTIME 37 CURTIME = System . c u r r e n t T i m e M i l l i s (); 38 39 while( L I G H T _ R U N ){
40 if ( System . c u r r e n t T i m e M i l l i s () - CURTIME >= PERIOD ){
41 CURTIME = System . c u r r e n t T i m e M i l l i s ();
42
43 // Change the state between day and night
44 if ( J O U R _ S T A T E ){ 45 J O U R _ S T A T E = false; 46 } else { 47 J O U R _ S T A T E = true; 48 } 49
50 // If a delay as been set at s t a r t i n g time , change the period to the d a y _ p e r i o d
51 if ( PERIOD != d a y _ p e r i o d ){
52 print (" end of i n i t i a l i s a t i o n switch to d a y _ p e r i o d ");
53 PERIOD = d a y _ p e r i o d ; 54 } 55 56 } 57 58 c u r _ s h u t t e r _ s t a t e = mmc . g e t P r o p e r t y ( shutter_name , o n o f f _ n a m e ); 59 60 61
62 if ( mmc . g e t P r o p e r t y (" Multi Shutter ", " State "). equals (" 0 ")){
63 // Change the arduino pin to the light one
64 mmc . s e t P r o p e r t y ( switch_name , " Label ", s w i t c h _ p i n ); 65 66 // Do I need to light up 67 if ( J O U R _ S T A T E ){ 68 if ( c u r _ s h u t t e r _ s t a t e . equals (" 0 ")){ 69 mmc . s e t P r o p e r t y ( shutter_name , onoff_name , " 1 "); 70 } 71 } 72
73 // Do I need to light down
74 else{ 75 if ( c u r _ s h u t t e r _ s t a t e . equals (" 1 ")){ 76 mmc . s e t P r o p e r t y ( shutter_name , onoff_name , " 0 "); 77 } 78 } 79 } else {
80 // Need to s h u t d o w n the light when a c q u i s i t i o n is running
81 if ( c u r _ s h u t t e r _ s t a t e . equals (" 1 ")){ 82 mmc . s e t P r o p e r t y ( shutter_name , onoff_name , " 0 "); 83 } 84 } 85 86 Thread . sleep (100);
Code de suivi automatique des racines lors de l’acquisition
1 // SCRIPT POUR FAIRE UN T R A C K I N G TRES SIMPLE d ’ UNE RACINE 2 // Regarde si on a un signal fluo a une p o s i t i o n donnee
3 // sur l ’ image puis decale c e t t e p o s i t i o n au centre de FOV
4 // Pour le SPIM
5
6 // H . Chauvet
7 // Version : 2 7 0 6 2 0 1 9
8 mm . s c r i p t e r (). r e s e t I n t e r p r e t e r ();
9 import org . jfree . chart . J F r e e C h a r t ;
10 import org . jfree . chart . C h a r t F a c t o r y ;
11 import org . jfree . chart . C h a r t F r a m e ;
12 import org . jfree . data . xy . X Y S e r i e s ;
13 import org . jfree . data . xy . X Y S e r i e s C o l l e c t i o n ;
14 import org . jfree . chart . plot . P l o t O r i e n t a t i o n ;
15 import org . m i c r o m a n a g e r . data . Coords ;
16 import java . lang . Math ;
17 18 19
20 // F o n c t i o n pour r e c u p e r e r la moyenne des pixels a un Y donnee sur l ’ e n s e m b l e du zstack pour un temps donnee
21 float[] g e t L i n e M a x P r o j (int time , int chan , int plane , int Y_POS ) {
22 /*
23 * time , le temps sur lequel on veut faire la moyenne 24 * chan , le channel
25 * plane , la tuile en xy que l ’ on veut u t i l i s e r
26 * Y_POS , la p o s i t i o n en y sur l ’ image ou l ’ on veut faire la moyenne
27 *
28 */
29
30 // Recup de la fenetre ouverte
31 dw = mm . d i s p l a y s (). g e t C u r r e n t W i n d o w ();
32
33 // Recup le d a t a s t o r e de la fenetre
34 data = dw . g e t D a t a s t o r e (); 35 // On chope les limites
36 indices = data . g e t M a x I n d i c e s ();
37 maxZ = indices . z ;
38
39 W = mmc . g e t I m a g e W i d t h ();
40
41 // Vecteur pour stoquer les max pour chaque pixel de la ligne
42 float[] maxpix = new float[ W ];
43
44 // On cherche le max sur l ’ e n s e m b l e du stack en z
45 for (int z =0; z <= maxZ ; z ++){
46 coords = mm . data (). c r e a t e C o o r d s (" t = "+ time +" ,p = "+ plane +" ,c = "+ chan +" ,z = "+ z ); 47 // print ( coords );
48 if ( data . h a s I m a g e ( coords )){
49 // print (" process pixels ");
50 imgT = data . g e t I m a g e ( coords );
51 i j _ p r o c e s s o r = mm . data (). ij (). c r e a t e P r o c e s s o r ( imgT ); 52 // print ( i j _ p r o c e s s o r . getRoi ());
53 // print ( i j _ p r o c e s s o r . g e t S t a t i s t i c s ());
54 // print ( pixdata );
55 for(int i =0; i < W ; i ++){
56 pixdata = i j _ p r o c e s s o r . get (i , Y_POS );
57 // print ( i ); 58 if ( maxpix [ i ] < pixdata ){ 59 maxpix [ i ] = pixdata ; 60 } 61 } 62 63 } else {
64 print (" No image found for : ");
65 print ( coords ); 66 } 67 } 68 69 // print ( maxpix ); 70 return maxpix ; 71 } 72
73 // F o n c t i o n pour avoir le max
74 float max (float[] numlist ){ 75 float tmpmax = numlist [0];
76 for ( num : numlist ){
77 if ( num > tmpmax ){ 78 tmpmax = num ; 79 } 80 } 81 82 return tmpmax ; 83 } 1
84
85 // F o n c t i o n pour avoir le min 86 float min (float[] numlist ){
87 float tmpmin = numlist [0];
88 for ( num : numlist ){
89 if ( num < tmpmin ){ 90 tmpmin = num ; 91 } 92 } 93 94 return tmpmin ; 95 } 96 97 // F o n c t i o n pour c a l c u l e r la moyenne
98 double mean (float[] numlist ){
99 double sum = 0; 100 double n = 0; 101 for ( i : numlist ){ 102 sum += i ; 103 n += 1; 104 } 105 106 return sum / n ; 107 } 108 109 // F o n c t i o n pour c a l c u l e r le std
110 double std (float[] numlist ){
111 m = mean ( numlist );
112 double sum =0;
113 double n = 0; 114 for ( i : numlist ){
115 sum += Math . pow (( i - m ) , 2.0);
116 n +=1.0;
117 }
118 return Math . pow ( sum /n , 0.5);
119 } 120 121 122
123 class S i m p l e R a c i n e T r a c k R u n n a b l e extends Thread {
124 // i n i t i a l i s a t i o n des v a r i a b l e s 125 p r o t e c t e d v o l a t i l e boolean c h e c k _ a c q u i s i t i o n = true; 126 int dtsleep = 100; 127 128 acq = mm . a c q u i s i t i o n s (); 129 130 H = mmc . g e t I m a g e H e i g h t (); 131 W = mmc . g e t I m a g e W i d t h (); 132
133 // Il faut regler ca en f o n c t i o n de la vitesse de c r o i s s a n c e d ’ une racine
134 // En gros 0.01 - 0.02 microm / s soit ~1 microm / min -> pour un dt toute les 30 min : 36 microm
135 // Ecart entre 4/6 et 5/6 de l ’ image c ’ est ~89 microm 136 int Y _ M E A S U R E = (int) Math . round ( H * ( 5 / 6 . 0 ) ) ;
137 int Y_REF = (int) Math . round ( H * ( 4 / 6 . 0 ) ) ;
138 // La platine
139 xyStage = mmc . g e t X Y S t a g e D e v i c e ();
140
141 int cpt = 1; 142 double ref_std = 0;
143 float s t d _ o f f s e t = (float) 1.5; // Le seuil de d e c l a n c h e m e n t pour dire qu ’ il y a une racine 1.5* std semble bien
144
145 // c o r r e s p o n d a n c e pixel um ( pour la platine )
146 pxtoum = mmc . g e t P i x e l S i z e U m ();
147 // On r e c u p e r e l ’ engine de l ’ a c q u i s t i t i o n 148 a c q _ e n g i n e = acq . g e t A c q u i s i t i o n E n g i n e ();
149 150
151 // I n i t i a l i s a t i o n des series pour tracer les donnees
152 X Y S e r i e s l i n e d a t a = new X Y S e r i e s (" R a c i n e P i x e l s "); 153 X Y S e r i e s C o l l e c t i o n dataset = new X Y S e r i e s C o l l e c t i o n (); 154 dataset . a d d S e r i e s ( l i n e d a t a ); 155 156 157 158 159 public S i m p l e R a c i n e T r a c k R u n n a b l e () { 160 // Mon c o n s t r u c t e u r 161 } 162
163 public void run () { 164 i n i t _ p l o t ();
165 while( c h e c k _ a c q u i s i t i o n ){
166 if ( acq . i s A c q u i s i t i o n R u n n i n g ()){
167 // print (" A c q u i s i t i o n is running ");
168 d a t a _ a c q = a c q _ e n g i n e . g e t A c q u i s i t i o n D a t a s t o r e (); 169
170 // On choppe les m e t a d o n n e e s
171 metad = a c q _ e n g i n e . g e t S u m m a r y M e t a d a t a ();
172 // m a x _ f r a m e = metad . getInt (" Frames "); // nombre de temps
173 m a x _ s l i c e = metad . getInt (" Slices "); // max de z
174
175 // Store current indices
176 // cur_pos = indices . p o s i t i o n ; 177 try{ 178 c u r _ t o t a l = d a t a _ a c q . g e t N u m I m a g e s (); 179 180 // borne inf 181 binf = cpt * m a x _ s l i c e ; 182 bsup = ( cpt +1)* m a x _ s l i c e ; 183
184 if ( c u r _ t o t a l >= binf && c u r _ t o t a l < bsup ){
185 print (" Fin du stack pour la frame " + ( cpt -1) + " Lancer la d e t e c t i o n de la racine "); 186 // On fait une pause dans l ’ a c q u i s i t i o n
187 // d a t a _ a c q . s e t P a u s e ( true );
188
189 // On fait la mesure
190 m a x l i n e p i x e l s = g e t L i n e M a x P r o j (( cpt -1) , 0 , 0 , Y _ M E A S U R E ); 191 // Store data in XYserie for ploy
192 l i n e d a t a . clear ();
193 for (int it =0; it < m a x l i n e p i x e l s . length ; it ++){
194 l i n e d a t a . add ( it , m a x l i n e p i x e l s [ it ]);
195 }
196
197 // SI c ’ est le premier stack , on definit le niveau de fond de l ’ image
198 if ( cpt == 1){
199 ref_std = std ( m a x l i n e p i x e l s );
200 // Pour faire un test
201 // ref_std = 0.1;
202 print (" Std de r e f e r e n c e du fond " + ref_std ); 203 } else{
204 // On fait une n o u v e l l e mesure et on regarde si elle depasse le seuil
205 tmpstd = std ( m a x l i n e p i x e l s );
206 ratio = tmpstd / ref_std ;
207 print (" Std mesure " + tmpstd + " diff r e f e r e n c e " + ratio ); 208
209 if ( ratio > s t d _ o f f s e t ){
210 print (" La racine touche la ligne , je r e c e n t r e la platine ");
211 // On bouge la platine
212 d e l t a p i x = Y _ M E A S U R E - Y_REF ;
213 deltaum = pxtoum * d e l t a p i x ; 214
215 // Sur notre platine il faut d e s c e n d r e pour faire r e m o n t e r l ’ image !
216 curpos = mmc . g e t Y P o s i t i o n ();
217 curxpos = mmc . g e t X P o s i t i o n ();
218 print (" N o u v e l l e p o s i t i o n " + ( curpos + deltaum )); 219 if (( curpos + deltaum ) < 2000 ){
220 print (" Deplace la platine v e r t i c a l e m e n t de " + deltaum +" m i c r o m e t r e s ");
221 mmc . s e t X Y P o s i t i o n ( xyStage , curxpos , curpos + deltaum );
222 }
223
224 }
225 }
226
227 // update frame counter
228 ++ cpt ;
229
230 // d a t a _ a c q . s e t P a u s e ( false ); 231 }
232 } catch ( e ) {
233 print (" Erreur , p r o b a b l e m e n t pas encore d ’ images ");
234 print ( e );
235 } 236 }
237
238 Thread . sleep ( dtsleep );
239 }
240 print (" Stop the tracker -> OK ");
241 }; 242 243 public void s t o p _ t r a c k e r () { 244 c h e c k _ a c q u i s i t i o n = false; 245 cpt = 1; 246 std_ref = 0; 247 l i n e d a t a . clear (); 248 }; 249 3
250 public void i n i t _ p l o t () {
251 J F r e e C h a r t chart = C h a r t F a c t o r y . c r e a t e X Y L i n e C h a r t (" Profil ligne a u t o d e t e c t i o n racine ", // Title 252 " x ", // x - axis Label
253 " Gray value ", // y - axis Label
254 dataset , // Dataset
255 P l o t O r i e n t a t i o n . VERTICAL , // Plot O r i e n t a t i o n
256 false, // Show Legend
257 false, // Use t o o l t i p s
258 false // C o n f i g u r e chart to g e n e r a t e URLs ?
259 );
260
261 C h a r t F r a m e g r a p h F r a m e = new C h a r t F r a m e (" Test ", chart );
262 g r a p h F r a m e . g e t C h a r t P a n e l (). s e t M o u s e W h e e l E n a b l e d (true); 263 g r a p h F r a m e . pack (); 264 g r a p h F r a m e . s e t V i s i b l e (true); 265 }; 266 267 }; 268 269 Thread r a c i n e _ t r a c k e r = new S i m p l e R a c i n e T r a c k R u n n a b l e (); 270 r a c i n e _ t r a c k e r . start (); 4
Code d’automatisation des maximums de projection
1 from ij import IJ , W i n d o w M a n a g e r 2
3 # d o s s i e r _ r a c i n e = " C :/ Users / m e c a s p i m / D o c u m e n t s / A c q u i s i t i o n _ d a t a / S t a g e _ F l o r e n t /"
4 n o m _ d u _ f i c h i e r = " D :/ Rapport - stage /2606 - test - gfp - time - m i l i e u 1 c m _ 1 /2606 - test - gfp - time - milieu1cm - cropT0 . xml " 5 n o m b r e _ d e _ t e m p s = 2 6 7 s t a r t _ z s t a c k = 20 8 s t o p _ z s t a c k = 210 9 10
11 # On ferme toutes les f e n e t r e s 12 ids = W i n d o w M a n a g e r . g e t I D L i s t ()
13 if ids :
14 for id in ids :
15 W i n d o w M a n a g e r . g e t I m a g e (id). close () 16
17 c m d _ z s t a c k = " start = "+str( s t a r t _ z s t a c k )+" stop = "+str( s t o p _ z s t a c k )+" p r o j e c t i o n =[ Max I n t e n s i t y ] " 18 19 l i s t _ n o m _ z s t a c k = [] 20 for t in range( n o m b r e _ d e _ t e m p s +1): 21 print(" C h a r g e m e n t du temps "+str( t )) 22 cmd = " xml = "+ n o m _ d u _ f i c h i e r +" t i m e p o i n t = "+str( t )+" setup =0 r e s o l u t i o n =0 open " 23 print( cmd ) 24 IJ . run (" B i g D a t a V i e w e r ... ", cmd ) 25 26 IJ . run (" Z Project ... ", c m d _ z s t a c k ) 27 28 # Gestion des f e n e t r e s o u v e r t e s 29 ids = W i n d o w M a n a g e r . g e t I D L i s t () 30 for id in ids : 31 img = W i n d o w M a n a g e r . g e t I m a g e (id)
32 # Si le nom c o n t i e n t MAX on e n r e g i s t r e le nom ( car c ’ est le r e s t u l t a t du zstack ) 33 # Sinon on ferme le stack pour liberer de la memoire
34 if " MAX " not in img . g e t T i t l e ():
35 img . close () 36 else: 37 if img . g e t T i t l e () not in l i s t _ n o m _ z s t a c k : 38 l i s t _ n o m _ z s t a c k += [ img . g e t T i t l e () ] 39 40 41
42 # On fait le c o n c a t e n a t e de tous les zstack 43 c m d _ c o n c a t e n a t e = " open " 44 c o m p t e u r = 1 45 for nom in l i s t _ n o m _ z s t a c k : 46 # print ( nom ) 47 c m d _ c o n c a t e n a t e += " image "+str( c o m p t e u r )+" =[ "+ nom +" ] " 48 c o m p t e u r += 1 49 50 print( c m d _ c o n c a t e n a t e ) 51 IJ . run (" C o n c a t e n a t e ... ", c m d _ c o n c a t e n a t e ) 1
Milieu Murashige et Skoog
Milieu MS1/2 avec une concentration en Phytagel de 0.2% Milieu MS1/2 avec une concentration en Phytagel de 1%
Macro-´el´ements 5 mL 5 mL Oligo-´el´ements 0.1 mL 0.1 mL Vitamine B 1 mL 1 mL Fer 1 mL 1 mL Myo-inositol 1 mL 1 mL L-glutamine 1 mL 1 mL Saccharose 2 g 2 g Phytagel 0.2g 1 g Eau Qsp 100 mL Qsp 100 mL