Using SerielEM for image acquisition

I heard that you have written handy SerialEM macros for image acquisition. I am setting up a new cryo-EM facility and have been trying to use SerielEM to collect low-dose images over the holes in a quantifoil grid. If your scripts are available to the community, could I try using them?

I have attached to your post 3 macros we use for hole shots. I explain a little here, even though I am sure you have no trouble at all reading them.


This is the main macro run at each hole. Positioning is the most important part for automation. You make a hole template and put it into buffer P. The template should be at V mag and uses smaller area on CCD instead of full area. You can simply take a V shot. You should use area as big as possible but only contains 1 hole.

The positions are already picked using Navigator -> Draw Grids Point. Usually we do it at lower mag where we can see the whole mesh. And we draw a polygon and click 5 points and draw points.

Then we can simply use "Shift To Marker" under Navigator to correct the position offset between the low mag where you draw the point and V mag.

"ResetImageShift" is important, I think, for final shot at non-zigzag beam condition. I personally believe it is necessary for high

"ShiftItemsByAlignment" will put the point of each hole to center again. Otherwise, the point can "drift" far enough so that the wrong hole is located. After stage moves, the point will change a little. This is due to the stage inaccuracy, which is normal.

Centering beam is kind of useful, in case the beam wanders away slowly. The T beam needs to be slight smaller than the CCD full area so that the edge of the beam is detectable. In SerialEM low dose, all the beams are linked together. Therefore, if you center the beam at high mag, e.g. Focus, then Record beam is also correctly.


We modified the original from David and make it spits out angstrom
instead of nm. Please notice that we set 19 seconds in this macro for interval, and readout adds 1 second roughly, so total is 20 seconds. The distance is divided by 20 and times 10 again to get A/sec. So there is a 2 there. If you change the interval, then this 2 is also needed change accordingly.

To make this part more general form is perhaps better.

Drift rate monitoring is very helpful. You set a threshold, and all the shots will be good. It is much nicer than visually judge by eye.


In order to use film with SerialEM, nothing extra is needed. However, if you want a extra waiting time after plate is pushed in or you want the offset time between two shutters be able to defined, you need a small server program from FEI. This macro is for the case which the little server is installed.

OK, that's it. Let me know if you have questions. Good luck!