Wiki source code of CFEL TapeDrive: Serial Crystallography
Last modified by chatzies on 2025-11-27 11:35
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
37.1 | 1 | {{layout}} |
| 2 | {{layout-section ac:type="single"}} | ||
| 3 | {{layout-cell}} | ||
| |
54.1 | 4 | [[image:attach:TapeDrive_beschriftet-tile.jpg||height="400"]] |
| |
7.1 | 5 | |
| |
3.1 | 6 | |
| |
79.5 | 7 | {{toc/}} |
| |
46.1 | 8 | |
| |
23.1 | 9 | |
| |
47.1 | 10 | ---- |
| 11 | |||
| |
81.1 | 12 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.1Samplecharacteristicsandpreparation"/}}8.1. Sample characteristics and preparation = |
| |
23.1 | 13 | |
| |
83.1 | 14 | * Suspension of microcrystals, **at least** 200 µL with 20% crystal density (more is always better), size range: 2-30 µm, **tip:** bring some mother liquor for washing, filtering, diluting etc. |
| |
5.1 | 15 | |
| 16 | Preparation: | ||
| 17 | |||
| |
83.2 | 18 | * filter through 30 µm (green) or 50 µm (yellow) cell filter into an Eppendorf or Falcon (original!) tube |
| |
5.1 | 19 | |
| |
12.1 | 20 | [[image:attach:20211201_095534.jpg||height="250"]] |
| |
5.1 | 21 | |
| 22 | |||
| |
47.1 | 23 | ---- |
| 24 | |||
| |
81.1 | 25 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.2ConnectingsampletoElveFlow,sampleexchange"/}}8.2. Connecting sample to ElveFlow, sample exchange = |
| |
77.1 | 26 | |
| |
83.2 | 27 | After filtration, screw the ElveFlow connector to your Eppendorf or Falcon tube. Make sure that the yellow-ish tube goes all the way to the bottom of your tube. You can adjust the length by unscrewing the blue fitting on top and pushing/pulling the yellow-ish line. **Don't forget to tigthen the blue fitting afterwards!** |
| |
5.1 | 28 | |
| |
21.1 | 29 | Be aware to which channel and nozzle line your sample is connected. |
| 30 | |||
| |
31.1 | 31 | Red → Channel 1, crystal line (nozzle capillary without marks/with red marks) |
| |
21.1 | 32 | |
| |
22.1 | 33 | Green → Channel 2, substrate line (nozzle capillary is marked in black) |
| |
21.1 | 34 | |
| 35 | [[image:attach:20211201_095033.jpg||thumbnail="true" height="250"]] | ||
| 36 | |||
| |
28.1 | 37 | After finishing data collection, flush all lines by connecting an Eppi or syringe filled with ddH,,2,,O. |
| |
5.1 | 38 | |
| |
28.1 | 39 | [[image:attach:20211201_095232.jpg||height="250"]][[image:attach:20211201_095205.jpg||height="250"]] |
| 40 | |||
| |
6.1 | 41 | |
| |
47.1 | 42 | ---- |
| 43 | |||
| |
81.1 | 44 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.3TapeDriveoperation"/}}8.3. TapeDrive operation = |
| |
77.1 | 45 | |
| |
82.1 | 46 | The TapeDrive is controlled through kamzik. To open kamzik, start the server. A terminal will open and shortly after a small window. |
| |
6.1 | 47 | |
| |
14.1 | 48 | Now start the client. Same thing, a terminal will open, shortly after a small window. |
| |
16.1 | 49 | |
| 50 | Click 'Devices' in the **client session** to open the control window. | ||
| |
15.1 | 51 | [[image:attach:screen.PNG||height="250"]][[image:attach:server client.PNG||height="250"]] |
| |
13.1 | 52 | |
| |
79.5 | 53 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Tape"/}}Tape == |
| |
14.1 | 54 | |
| |
63.1 | 55 | * Click the 'main tape' icon |
| |
23.1 | 56 | * Change the velocity by typing anything from **0.3-3.0 mm/s** |
| 57 | * Common velocity is 1.0-1.5 mm/s | ||
| 58 | * kamzik displays the used tape in m and %. At 98% the tape will automatically stop since the rolls need to be exchanged at this point. | ||
| |
14.1 | 59 | |
| |
83.3 | 60 | [[image:attach:kamzik_tape.PNG||height="400"]] |
| 61 | |||
| 62 | |||
| |
79.5 | 63 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Samplenozzle"/}}Sample nozzle == |
| |
23.1 | 64 | |
| |
62.1 | 65 | * Click on the 'nozzle' icon. |
| |
23.1 | 66 | * ((( |
| |
19.1 | 67 | The nozzle position can be adjusted in xyz by clicking on the arrows up and down. (Double arrow = 10 steps). Step size can be varied, 1mm steps are rather big and should be used carefully. |
| |
17.1 | 68 | The absolute position is **not calibrated** and therefore changes after each restart of kamzik. |
| 69 | |||
| |
36.1 | 70 | |
| |
83.3 | 71 | (% style="color:#ff0000" %)**!!! **(% style="color:#000000" %)**During data collection make sure in which direction you are moving the nozzle, do not move nozzle into beam**(% style="color:#ff0000" %)** !!!**(%%) |
| |
36.1 | 72 | \\Adjust the nozzle position by eye until it nearly touches the tape and roughly meets the X-ray interaction point. Then, move to the control hutch to use the on-axis microscope for fine adjustment. Move the nozzle tip to the beam position (red X) and write down the absolut nozzle position. From there move the nozzle in +x to your desired distance.Different distances combined with the tape speed result in several delay times for time-resolved experiments. |
| 73 | |||
| |
44.1 | 74 | (% class="wrapped" %) |
| |
17.1 | 75 | |=((( |
| |
77.1 | 76 | |
| |
17.1 | 77 | )))|=((( |
| 78 | direction | ||
| 79 | )))|=((( | ||
| |
77.1 | 80 | recommended step size |
| |
17.1 | 81 | for visual adjustment |
| 82 | )))|=(% colspan="1" %)((( | ||
| 83 | recommended step size | ||
| 84 | during data collection | ||
| 85 | ))) | ||
| 86 | |((( | ||
| 87 | +x | ||
| 88 | )))|((( | ||
| |
18.1 | 89 | away from X-ray interaction point |
| |
17.1 | 90 | )))|((( |
| 91 | 1.0 - 0.5 mm | ||
| 92 | )))|(% colspan="1" %)((( | ||
| 93 | 0.1 - 0.2 mm | ||
| 94 | ))) | ||
| 95 | |((( | ||
| 96 | +y | ||
| 97 | )))|((( | ||
| 98 | up | ||
| 99 | )))|((( | ||
| 100 | 1.0 - 0.5 mm | ||
| 101 | )))|(% colspan="1" %)((( | ||
| 102 | 0.1 - 0.2 mm | ||
| 103 | ))) | ||
| 104 | |((( | ||
| 105 | +z | ||
| 106 | )))|((( | ||
| 107 | towards detector tower, away from tape | ||
| 108 | )))|((( | ||
| 109 | 0.5 - 0.2 mm | ||
| 110 | )))|(% colspan="1" %)((( | ||
| 111 | 0.1 - 0.2 mm | ||
| 112 | be careful with -z, tape could be pushed out of focus | ||
| 113 | ))) | ||
| |
14.1 | 114 | |
| |
77.1 | 115 | |
| |
17.1 | 116 | ))) |
| 117 | |||
| |
83.3 | 118 | [[image:attach:kamzik_nozzle.PNG||height="400"]] |
| 119 | |||
| 120 | |||
| |
79.5 | 121 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Temperaturecontrol/Chiller"/}}Temperature control/Chiller == |
| |
23.1 | 122 | |
| |
34.1 | 123 | * The chiller circulates fluid through the gas nozzle. |
| |
30.1 | 124 | |
| |
79.5 | 125 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Gasnozzle"/}}Gas nozzle == |
| |
17.1 | 126 | |
| 127 | |||
| |
79.6 | 128 | == {{id name="14.SerialCrystallography:CFELTapeDrive-IRcamera"/}}IR camera == |
| |
33.1 | 129 | |
| |
23.1 | 130 | |
| |
13.1 | 131 | Once the hutch is interlocked, set remote control to the TapeDrive laptop by opening a terminal and executing the following command: |
| 132 | |||
| 133 | xfreerdp +clipboard /size:1920x1080 /u:Cfelusr /v:cfeld-pcx22611 | ||
| |
77.1 | 134 | password: //written on control laptop (changes every 6 months)// |
| |
13.1 | 135 | |
| |
6.1 | 136 | |
| 137 | |||
| |
47.1 | 138 | ---- |
| |
12.1 | 139 | |
| |
81.1 | 140 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.4Taperollexchange"/}}8.4. Tape roll exchange = |
| |
47.1 | 141 | |
| |
19.1 | 142 | The tape stops automatically at 98% used length, if you need to change the rolls for orther reasons, stop the tape (velocity = 0.0 mm/s). |
| |
12.1 | 143 | |
| |
19.1 | 144 | * Remove the (almost) empty feeder roll by pulling it upwards. |
| |
22.1 | 145 | * Cut the tape with some cm overlap to glue to the new roll. **Do not discard empty roll!** |
| |
19.1 | 146 | * Get a new tape roll (bottom left on the cart). **Polypropylen 15 µm** |
| |
35.1 | 147 | * Cut the first cm of the new tape roll, directly behind the black sticky part. |
| 148 | * Place new roll on roll holder and use sticky tape to attach the end of the old tape to the beginning of the new roll. | ||
| |
77.1 | 149 | * Open magnetic tape stabilizer on the **left side**. (% style="color:#ff0000" %)//!!!BEAMSTOP!!!// |
| |
35.1 | 150 | * Start the tape (3mm/s). Once the connetion side has arrived at the collector roll, stop the tape (0mm/s). |
| 151 | * Again, cut the tape directly behind the connection side. Replace the the old roll with the **empty **one. Old roll can be discarded. | ||
| 152 | * Attach new tape to the empty roll by using some sticky tape. | ||
| |
22.1 | 153 | * Close tape stabilizer. |
| |
35.1 | 154 | * Reset tape counter in kamzik by clicking "<Call>" in "Main-Tape". |
| |
19.1 | 155 | |
| |
77.1 | 156 | **[[image:attach:20211201_094101.jpg||height="250"]][[image:attach:20211201_094111.jpg||height="250"]][[image:attach:tape reset.PNG||height="250"]]** |
| |
19.1 | 157 | |
| |
77.1 | 158 | |
| |
43.1 | 159 | {{/layout-cell}} |
| 160 | {{/layout-section}} | ||
| |
28.1 | 161 | |
| |
43.1 | 162 | {{layout-section ac:type="single"}} |
| 163 | {{layout-cell}} | ||
| |
47.1 | 164 | ---- |
| |
12.1 | 165 | |
| |
81.1 | 166 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.5Chopper"/}}8.5. Chopper = |
| |
47.1 | 167 | |
| |
42.1 | 168 | start chopper gui from terminal: |
| |
28.1 | 169 | |
| |
42.1 | 170 | (% class="code" %) |
| 171 | ((( | ||
| |
77.1 | 172 | cd /gpfs/local/shared/ChopperControl |
| |
42.1 | 173 | ))) |
| 174 | |||
| 175 | (% class="code" %) | ||
| 176 | ((( | ||
| 177 | python chopperControl.py | ||
| 178 | ))) | ||
| 179 | {{/layout-cell}} | ||
| 180 | {{/layout-section}} | ||
| 181 | |||
| 182 | {{layout-section ac:type="two_equal"}} | ||
| 183 | {{layout-cell}} | ||
| 184 | [[image:attach:20211212_233140.jpg||height="250"]] | ||
| 185 | {{/layout-cell}} | ||
| 186 | |||
| 187 | {{layout-cell}} | ||
| 188 | **Chopper → no Chopper** | ||
| 189 | |||
| |
77.1 | 190 | * decrease frequency by max. 10 Hz steps |
| |
42.1 | 191 | ** click arrow down 10x, "Set", arrow down 10x, "Set", .... |
| 192 | * at frequency = 10 Hz, click "Stop" | ||
| |
77.1 | 193 | * set "Hole" to <none> (% style="color:#ff0000" %)//Takes some minutes// |
| |
42.1 | 194 | |
| |
77.1 | 195 | (% style="color:#000000" %)**no Chopper → Chopper** |
| |
42.1 | 196 | |
| |
77.1 | 197 | * (% style="color:#000000" %)set "Hole" to <Inner hole (largest)> (% style="color:#ff0000" %)//Takes some minutes// |
| 198 | * (% style="color:#000000" %)increase frequency by max. 10 Hz steps | ||
| 199 | ** (% style="color:#000000" %)click arrow up 10x, "Set", arrow up 10x, "Set", ..... | ||
| 200 | * (% style="color:#000000" %)//usually 130 Hz, results in exposure time of 3.7 ms (technical exposure will always be 7.7 ms, since max. frame rate is 130 Hz// | ||
| |
42.1 | 201 | {{/layout-cell}} |
| 202 | {{/layout-section}} | ||
| 203 | |||
| |
59.1 | 204 | {{layout-section ac:type="single"}} |
| |
42.1 | 205 | {{layout-cell}} |
| |
69.1 | 206 | ---- |
| 207 | |||
| |
81.1 | 208 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.6Datacollection"/}}8.6. Data collection = |
| |
47.1 | 209 | |
| |
36.1 | 210 | Once the hutch is interlocked, set remote control to the TapeDrive laptop by opening a terminal and executing the following command: |
| 211 | |||
| |
40.1 | 212 | (% class="code" %) |
| 213 | ((( | ||
| |
76.1 | 214 | xfreerdp +clipboard /size:1920x1080 /u:cfelusr /v:cfeld-tapetop |
| |
40.1 | 215 | password: written on control laptop (changes every 6 months) |
| 216 | ))) | ||
| |
36.1 | 217 | |
| |
51.1 | 218 | //>>usually the terminal is open, just repeat previous command with arrow up, enter and type in the password// |
| |
36.1 | 219 | |
| |
77.1 | 220 | |
| |
59.1 | 221 | {{/layout-cell}} |
| 222 | {{/layout-section}} | ||
| |
12.1 | 223 | |
| |
59.1 | 224 | {{layout-section ac:type="two_left_sidebar"}} |
| 225 | {{layout-cell}} | ||
| |
51.1 | 226 | **Check list:** |
| |
40.1 | 227 | |
| |
77.1 | 228 | (% style="color:#ff0000" %)//always after entering the hutch!// |
| |
40.1 | 229 | |
| |
77.1 | 230 | (% style="color:#000000" %)Click "Run" icon in kamzik. |
| |
51.1 | 231 | |
| |
83.6 | 232 | * Put detector distance 200 mm in //prepare_for_measurement ( )// |
| |
77.1 | 233 | * Click "<Call>" next to //prepare_for_measurement// |
| 234 | This will: | ||
| |
75.1 | 235 | ** drive the collimator in //IN// position |
| 236 | ** drive detector to 200 mm | ||
| |
51.1 | 237 | |
| |
77.1 | 238 | * Open beam shutter BS1 in //CrystalControl //or// P11 XRayFeed // |
| |
51.1 | 239 | |
| |
68.1 | 240 | //**Set run parameters and go 🏃💥**// |
| |
36.1 | 241 | |
| |
39.1 | 242 | 1. Set your desired No. of frames |
| |
76.1 | 243 | 1. Enter the protein ID of your crystal sample |
| |
67.1 | 244 | 1. Match exposure time with chopper setting or set desired exposure time |
| |
39.1 | 245 | 1. Check trigger setting and match to chopper setting |
| |
77.1 | 246 | no chopper → external triffer //off// |
| 247 | chopper → external trigger// on// | ||
| |
68.1 | 248 | 1. To start the run, click "<Call>" next to //start_run (exposure )// |
| 249 | {{/layout-cell}} | ||
| |
40.1 | 250 | |
| |
68.1 | 251 | {{layout-cell}} |
| |
69.1 | 252 | [[image:attach:Kamzik_run(2).PNG]] |
| |
37.1 | 253 | {{/layout-cell}} |
| |
68.1 | 254 | {{/layout-section}} |
| |
37.1 | 255 | |
| |
71.1 | 256 | {{layout-section ac:type="single"}} |
| |
37.1 | 257 | {{layout-cell}} |
| |
77.1 | 258 | (% class="relative-table wrapped" style="width:55.9569%" %) |
| |
36.1 | 259 | |=((( |
| 260 | Parameter | ||
| 261 | )))|=((( | ||
| 262 | explanation | ||
| 263 | )))|=(% colspan="1" %)((( | ||
| 264 | value | ||
| 265 | ))) | ||
| 266 | |((( | ||
| 267 | Images number | ||
| 268 | )))|((( | ||
| |
74.1 | 269 | number of frames you want to collect |
| |
36.1 | 270 | )))|(% colspan="1" %)((( |
| 271 | usually 100k - 200k, but adjust according to hitrate | ||
| 272 | |||
| 273 | orientation: 10 % hitrate needs at least 100k images | ||
| 274 | ))) | ||
| 275 | |((( | ||
| 276 | exposure | ||
| 277 | )))|((( | ||
| 278 | exposure time of Eiger | ||
| 279 | |||
| |
77.1 | 280 | |
| |
36.1 | 281 | )))|(% colspan="1" %)((( |
| |
76.1 | 282 | with chopper → opening time displayed in chopper GUI |
| |
36.1 | 283 | no chopper → 7.7 ms |
| 284 | |||
| 285 | ---- | ||
| 286 | ))) | ||
| 287 | |((( | ||
| 288 | run id | ||
| 289 | )))|((( | ||
| 290 | changes automatically | ||
| 291 | )))|(% colspan="1" %)((( | ||
| |
77.1 | 292 | |
| |
36.1 | 293 | ))) |
| 294 | |(% colspan="1" %)((( | ||
| 295 | Detector distance | ||
| 296 | )))|(% colspan="1" %)((( | ||
| 297 | current detector postion readout | ||
| 298 | )))|(% colspan="1" %)((( | ||
| |
77.1 | 299 | |
| |
36.1 | 300 | ))) |
| |
76.1 | 301 | |(% colspan="1" %)((( |
| 302 | protein ID | ||
| 303 | )))|(% colspan="1" %)((( | ||
| 304 | protein ID of crystal sample (see AMARCORD) | ||
| 305 | )))|(% colspan="1" %)((( | ||
| |
77.1 | 306 | |
| |
76.1 | 307 | ))) |
| |
68.1 | 308 | |
| |
71.1 | 309 | ---- |
| |
69.1 | 310 | {{/layout-cell}} |
| 311 | {{/layout-section}} | ||
| 312 | |||
| 313 | {{layout-section ac:type="two_equal"}} | ||
| 314 | {{layout-cell}} | ||
| |
68.1 | 315 | **After data collection/Before entering the exp. hutch:** |
| 316 | |||
| 317 | 1. Go to "Safety" in kamzik. | ||
| 318 | 1. Click "<Call>" next to //prepare_to_open_hutch. //This will automatically: | ||
| 319 | 11. Drive the collimator out | ||
| 320 | 11. Drive the detector back to 1500 mm | ||
| 321 | 1. Close beam shutter BS1 and break door interlock in //P11 XRayFeed //(monitor top left). | ||
| 322 | |||
| |
70.1 | 323 | [[image:attach:Screenshot from 2022-04-04 19-36-29.png]] |
| |
68.1 | 324 | {{/layout-cell}} |
| |
69.1 | 325 | |
| 326 | {{layout-cell}} | ||
| |
77.1 | 327 | |
| |
72.1 | 328 | |
| |
69.1 | 329 | [[image:attach:safety_kamzik.PNG]] |
| 330 | {{/layout-cell}} | ||
| |
37.1 | 331 | {{/layout-section}} |
| |
36.1 | 332 | |
| |
37.1 | 333 | {{layout-section ac:type="single"}} |
| 334 | {{layout-cell}} | ||
| |
41.1 | 335 | ---- |
| 336 | |||
| |
81.1 | 337 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.7Troubleshooting"/}}8.7. Troubleshooting = |
| |
29.1 | 338 | |
| 339 | * ((( | ||
| |
79.6 | 340 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Tapestopped"/}}Tape stopped == |
| |
41.1 | 341 | |
| 342 | * Tape roll empty? | ||
| 343 | * motor connected (icon green)? | ||
| |
29.1 | 344 | ))) |
| |
41.1 | 345 | |
| |
29.1 | 346 | * ((( |
| |
79.6 | 347 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Nozzlemotorsarenotresponding"/}}Nozzle motors are not responding == |
| |
41.1 | 348 | |
| 349 | * displayed in green=connected? | ||
| 350 | * nozzle holder colliding somewhere? | ||
| 351 | * motor limits reached? → position displayed in red | ||
| |
29.1 | 352 | ))) |
| |
41.1 | 353 | |
| |
29.1 | 354 | * ((( |
| |
80.1 | 355 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Sampleflowisnotrespondingtohigherpressure"/}}Sample flow is not responding to higher pressure == |
| |
41.1 | 356 | |
| 357 | * channel turned on? | ||
| 358 | * Sample empty? | ||
| 359 | * Nozzle or lines clogged? → flush with water, change nozzle | ||
| |
29.1 | 360 | ))) |
| |
51.1 | 361 | |
| |
49.1 | 362 | * ((( |
| |
80.1 | 363 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Simplonfilewriter/eigerstreamissues"/}}Simplon filewriter/eiger stream issues == |
| |
49.1 | 364 | |
| 365 | * First, restart kamzik (server+client) and see if this solves the issue | ||
| 366 | * If not, restart the Simplon server (in Astor → haspp11exp03, right click on Simplon/EH.1 and restart) | ||
| |
51.1 | 367 | * ((( |
| |
77.1 | 368 | If nothing works, kill the Simplon process and then start the server again:* |
| 369 | |||
| 370 | ((( | ||
| |
51.1 | 371 | (% class="code" %) |
| 372 | ((( | ||
| 373 | ssh haspp11exp03 | ||
| |
49.1 | 374 | ))) |
| |
51.1 | 375 | ))) |
| |
77.1 | 376 | |
| |
51.1 | 377 | * ((( |
| 378 | (% class="code" %) | ||
| 379 | ((( | ||
| 380 | ps -ef | grep Simplon | ||
| 381 | ))) | ||
| 382 | ))) | ||
| 383 | * ((( | ||
| 384 | (% class="code" %) | ||
| 385 | ((( | ||
| 386 | kill -9 simplon_process_id | ||
| 387 | ))) | ||
| 388 | ))) | ||
| 389 | ))) | ||
| |
76.1 | 390 | * After the Simplon server is back up, close all kamzik windows and restart (first server, then client) |
| |
51.1 | 391 | ))) |
| |
37.1 | 392 | {{/layout-cell}} |
| 393 | {{/layout-section}} | ||
| 394 | {{/layout}} |