• Aucun résultat trouvé

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

Documents relatifs