Wiki source code of CFEL TapeDrive: Serial Crystallography
Last modified by chatzies on 2025-11-27 11:35
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{layout}} | ||
| 2 | {{layout-section ac:type="single"}} | ||
| 3 | {{layout-cell}} | ||
| 4 | [[image:attach:TapeDrive_beschriftet-tile.jpg||height="400"]] | ||
| 5 | |||
| 6 | |||
| 7 | {{toc/}} | ||
| 8 | |||
| 9 | |||
| 10 | ---- | ||
| 11 | |||
| 12 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.1Samplecharacteristicsandpreparation"/}}8.1. Sample characteristics and preparation = | ||
| 13 | |||
| 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. | ||
| 15 | |||
| 16 | Preparation: | ||
| 17 | |||
| 18 | * filter through 30 µm (green) or 50 µm (yellow) cell filter into an Eppendorf or Falcon (original!) tube | ||
| 19 | |||
| 20 | [[image:attach:20211201_095534.jpg||height="250"]] | ||
| 21 | |||
| 22 | |||
| 23 | ---- | ||
| 24 | |||
| 25 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.2ConnectingsampletoElveFlow,sampleexchange"/}}8.2. Connecting sample to ElveFlow, sample exchange = | ||
| 26 | |||
| 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!** | ||
| 28 | |||
| 29 | Be aware to which channel and nozzle line your sample is connected. | ||
| 30 | |||
| 31 | Red → Channel 1, crystal line (nozzle capillary without marks/with red marks) | ||
| 32 | |||
| 33 | Green → Channel 2, substrate line (nozzle capillary is marked in black) | ||
| 34 | |||
| 35 | [[image:attach:20211201_095033.jpg||thumbnail="true" height="250"]] | ||
| 36 | |||
| 37 | After finishing data collection, flush all lines by connecting an Eppi or syringe filled with ddH,,2,,O. | ||
| 38 | |||
| 39 | [[image:attach:20211201_095232.jpg||height="250"]][[image:attach:20211201_095205.jpg||height="250"]] | ||
| 40 | |||
| 41 | |||
| 42 | ---- | ||
| 43 | |||
| 44 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.3TapeDriveoperation"/}}8.3. TapeDrive operation = | ||
| 45 | |||
| 46 | The TapeDrive is controlled through kamzik. To open kamzik, start the server. A terminal will open and shortly after a small window. | ||
| 47 | |||
| 48 | Now start the client. Same thing, a terminal will open, shortly after a small window. | ||
| 49 | |||
| 50 | Click 'Devices' in the **client session** to open the control window. | ||
| 51 | [[image:attach:screen.PNG||height="250"]][[image:attach:server client.PNG||height="250"]] | ||
| 52 | |||
| 53 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Tape"/}}Tape == | ||
| 54 | |||
| 55 | * Click the 'main tape' icon | ||
| 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. | ||
| 59 | |||
| 60 | [[image:attach:kamzik_tape.PNG||height="400"]] | ||
| 61 | |||
| 62 | |||
| 63 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Samplenozzle"/}}Sample nozzle == | ||
| 64 | |||
| 65 | * Click on the 'nozzle' icon. | ||
| 66 | * ((( | ||
| 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. | ||
| 68 | The absolute position is **not calibrated** and therefore changes after each restart of kamzik. | ||
| 69 | |||
| 70 | |||
| 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" %)** !!!**(%%) | ||
| 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 | |||
| 74 | (% class="wrapped" %) | ||
| 75 | |=((( | ||
| 76 | |||
| 77 | )))|=((( | ||
| 78 | direction | ||
| 79 | )))|=((( | ||
| 80 | recommended step size | ||
| 81 | for visual adjustment | ||
| 82 | )))|=(% colspan="1" %)((( | ||
| 83 | recommended step size | ||
| 84 | during data collection | ||
| 85 | ))) | ||
| 86 | |((( | ||
| 87 | +x | ||
| 88 | )))|((( | ||
| 89 | away from X-ray interaction point | ||
| 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 | ))) | ||
| 114 | |||
| 115 | |||
| 116 | ))) | ||
| 117 | |||
| 118 | [[image:attach:kamzik_nozzle.PNG||height="400"]] | ||
| 119 | |||
| 120 | |||
| 121 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Temperaturecontrol/Chiller"/}}Temperature control/Chiller == | ||
| 122 | |||
| 123 | * The chiller circulates fluid through the gas nozzle. | ||
| 124 | |||
| 125 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Gasnozzle"/}}Gas nozzle == | ||
| 126 | |||
| 127 | |||
| 128 | == {{id name="14.SerialCrystallography:CFELTapeDrive-IRcamera"/}}IR camera == | ||
| 129 | |||
| 130 | |||
| 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 | ||
| 134 | password: //written on control laptop (changes every 6 months)// | ||
| 135 | |||
| 136 | |||
| 137 | |||
| 138 | ---- | ||
| 139 | |||
| 140 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.4Taperollexchange"/}}8.4. Tape roll exchange = | ||
| 141 | |||
| 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). | ||
| 143 | |||
| 144 | * Remove the (almost) empty feeder roll by pulling it upwards. | ||
| 145 | * Cut the tape with some cm overlap to glue to the new roll. **Do not discard empty roll!** | ||
| 146 | * Get a new tape roll (bottom left on the cart). **Polypropylen 15 µm** | ||
| 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. | ||
| 149 | * Open magnetic tape stabilizer on the **left side**. (% style="color:#ff0000" %)//!!!BEAMSTOP!!!// | ||
| 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. | ||
| 153 | * Close tape stabilizer. | ||
| 154 | * Reset tape counter in kamzik by clicking "<Call>" in "Main-Tape". | ||
| 155 | |||
| 156 | **[[image:attach:20211201_094101.jpg||height="250"]][[image:attach:20211201_094111.jpg||height="250"]][[image:attach:tape reset.PNG||height="250"]]** | ||
| 157 | |||
| 158 | |||
| 159 | {{/layout-cell}} | ||
| 160 | {{/layout-section}} | ||
| 161 | |||
| 162 | {{layout-section ac:type="single"}} | ||
| 163 | {{layout-cell}} | ||
| 164 | ---- | ||
| 165 | |||
| 166 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.5Chopper"/}}8.5. Chopper = | ||
| 167 | |||
| 168 | start chopper gui from terminal: | ||
| 169 | |||
| 170 | (% class="code" %) | ||
| 171 | ((( | ||
| 172 | cd /gpfs/local/shared/ChopperControl | ||
| 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 | |||
| 190 | * decrease frequency by max. 10 Hz steps | ||
| 191 | ** click arrow down 10x, "Set", arrow down 10x, "Set", .... | ||
| 192 | * at frequency = 10 Hz, click "Stop" | ||
| 193 | * set "Hole" to <none> (% style="color:#ff0000" %)//Takes some minutes// | ||
| 194 | |||
| 195 | (% style="color:#000000" %)**no Chopper → Chopper** | ||
| 196 | |||
| 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// | ||
| 201 | {{/layout-cell}} | ||
| 202 | {{/layout-section}} | ||
| 203 | |||
| 204 | {{layout-section ac:type="single"}} | ||
| 205 | {{layout-cell}} | ||
| 206 | ---- | ||
| 207 | |||
| 208 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.6Datacollection"/}}8.6. Data collection = | ||
| 209 | |||
| 210 | Once the hutch is interlocked, set remote control to the TapeDrive laptop by opening a terminal and executing the following command: | ||
| 211 | |||
| 212 | (% class="code" %) | ||
| 213 | ((( | ||
| 214 | xfreerdp +clipboard /size:1920x1080 /u:cfelusr /v:cfeld-tapetop | ||
| 215 | password: written on control laptop (changes every 6 months) | ||
| 216 | ))) | ||
| 217 | |||
| 218 | //>>usually the terminal is open, just repeat previous command with arrow up, enter and type in the password// | ||
| 219 | |||
| 220 | |||
| 221 | {{/layout-cell}} | ||
| 222 | {{/layout-section}} | ||
| 223 | |||
| 224 | {{layout-section ac:type="two_left_sidebar"}} | ||
| 225 | {{layout-cell}} | ||
| 226 | **Check list:** | ||
| 227 | |||
| 228 | (% style="color:#ff0000" %)//always after entering the hutch!// | ||
| 229 | |||
| 230 | (% style="color:#000000" %)Click "Run" icon in kamzik. | ||
| 231 | |||
| 232 | * Put detector distance 200 mm in //prepare_for_measurement ( )// | ||
| 233 | * Click "<Call>" next to //prepare_for_measurement// | ||
| 234 | This will: | ||
| 235 | ** drive the collimator in //IN// position | ||
| 236 | ** drive detector to 200 mm | ||
| 237 | |||
| 238 | * Open beam shutter BS1 in //CrystalControl //or// P11 XRayFeed // | ||
| 239 | |||
| 240 | //**Set run parameters and go 🏃💥**// | ||
| 241 | |||
| 242 | 1. Set your desired No. of frames | ||
| 243 | 1. Enter the protein ID of your crystal sample | ||
| 244 | 1. Match exposure time with chopper setting or set desired exposure time | ||
| 245 | 1. Check trigger setting and match to chopper setting | ||
| 246 | no chopper → external triffer //off// | ||
| 247 | chopper → external trigger// on// | ||
| 248 | 1. To start the run, click "<Call>" next to //start_run (exposure )// | ||
| 249 | {{/layout-cell}} | ||
| 250 | |||
| 251 | {{layout-cell}} | ||
| 252 | [[image:attach:Kamzik_run(2).PNG]] | ||
| 253 | {{/layout-cell}} | ||
| 254 | {{/layout-section}} | ||
| 255 | |||
| 256 | {{layout-section ac:type="single"}} | ||
| 257 | {{layout-cell}} | ||
| 258 | (% class="relative-table wrapped" style="width:55.9569%" %) | ||
| 259 | |=((( | ||
| 260 | Parameter | ||
| 261 | )))|=((( | ||
| 262 | explanation | ||
| 263 | )))|=(% colspan="1" %)((( | ||
| 264 | value | ||
| 265 | ))) | ||
| 266 | |((( | ||
| 267 | Images number | ||
| 268 | )))|((( | ||
| 269 | number of frames you want to collect | ||
| 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 | |||
| 280 | |||
| 281 | )))|(% colspan="1" %)((( | ||
| 282 | with chopper → opening time displayed in chopper GUI | ||
| 283 | no chopper → 7.7 ms | ||
| 284 | |||
| 285 | ---- | ||
| 286 | ))) | ||
| 287 | |((( | ||
| 288 | run id | ||
| 289 | )))|((( | ||
| 290 | changes automatically | ||
| 291 | )))|(% colspan="1" %)((( | ||
| 292 | |||
| 293 | ))) | ||
| 294 | |(% colspan="1" %)((( | ||
| 295 | Detector distance | ||
| 296 | )))|(% colspan="1" %)((( | ||
| 297 | current detector postion readout | ||
| 298 | )))|(% colspan="1" %)((( | ||
| 299 | |||
| 300 | ))) | ||
| 301 | |(% colspan="1" %)((( | ||
| 302 | protein ID | ||
| 303 | )))|(% colspan="1" %)((( | ||
| 304 | protein ID of crystal sample (see AMARCORD) | ||
| 305 | )))|(% colspan="1" %)((( | ||
| 306 | |||
| 307 | ))) | ||
| 308 | |||
| 309 | ---- | ||
| 310 | {{/layout-cell}} | ||
| 311 | {{/layout-section}} | ||
| 312 | |||
| 313 | {{layout-section ac:type="two_equal"}} | ||
| 314 | {{layout-cell}} | ||
| 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 | |||
| 323 | [[image:attach:Screenshot from 2022-04-04 19-36-29.png]] | ||
| 324 | {{/layout-cell}} | ||
| 325 | |||
| 326 | {{layout-cell}} | ||
| 327 | |||
| 328 | |||
| 329 | [[image:attach:safety_kamzik.PNG]] | ||
| 330 | {{/layout-cell}} | ||
| 331 | {{/layout-section}} | ||
| 332 | |||
| 333 | {{layout-section ac:type="single"}} | ||
| 334 | {{layout-cell}} | ||
| 335 | ---- | ||
| 336 | |||
| 337 | = {{id name="14.SerialCrystallography:CFELTapeDrive-14.7Troubleshooting"/}}8.7. Troubleshooting = | ||
| 338 | |||
| 339 | * ((( | ||
| 340 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Tapestopped"/}}Tape stopped == | ||
| 341 | |||
| 342 | * Tape roll empty? | ||
| 343 | * motor connected (icon green)? | ||
| 344 | ))) | ||
| 345 | |||
| 346 | * ((( | ||
| 347 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Nozzlemotorsarenotresponding"/}}Nozzle motors are not responding == | ||
| 348 | |||
| 349 | * displayed in green=connected? | ||
| 350 | * nozzle holder colliding somewhere? | ||
| 351 | * motor limits reached? → position displayed in red | ||
| 352 | ))) | ||
| 353 | |||
| 354 | * ((( | ||
| 355 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Sampleflowisnotrespondingtohigherpressure"/}}Sample flow is not responding to higher pressure == | ||
| 356 | |||
| 357 | * channel turned on? | ||
| 358 | * Sample empty? | ||
| 359 | * Nozzle or lines clogged? → flush with water, change nozzle | ||
| 360 | ))) | ||
| 361 | |||
| 362 | * ((( | ||
| 363 | == {{id name="14.SerialCrystallography:CFELTapeDrive-Simplonfilewriter/eigerstreamissues"/}}Simplon filewriter/eiger stream issues == | ||
| 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) | ||
| 367 | * ((( | ||
| 368 | If nothing works, kill the Simplon process and then start the server again:* | ||
| 369 | |||
| 370 | ((( | ||
| 371 | (% class="code" %) | ||
| 372 | ((( | ||
| 373 | ssh haspp11exp03 | ||
| 374 | ))) | ||
| 375 | ))) | ||
| 376 | |||
| 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 | ))) | ||
| 390 | * After the Simplon server is back up, close all kamzik windows and restart (first server, then client) | ||
| 391 | ))) | ||
| 392 | {{/layout-cell}} | ||
| 393 | {{/layout-section}} | ||
| 394 | {{/layout}} |