Question: Symmetry determination - Do you have a facility for calculating rotational power spectra ? How can I determine the symmetry of my particles ?

Answer: This can be done in EMAN, though it doesn't use rotational power spectra. While we have played with rotational power spectra in the past we didn't find them to be very reliable, and don't currently have an end-user tool for this.

Approach 1: First, center the particles: cenalignint particles.hed maxshift=<pixels>

- or - proc2d particles.hed centered.hed <center | acfcenter>

One of those three should do a decent job centering your particles (they do not need to be in the same orientation).

Then take the centered data and run : startcsym centered.hed <# top view particles to keep> sym=<trial symmetry>

While this is also designed to look for side views, it will find top views (with the corresponding symmetry) very nicely.

So, pick a trial symmetry, and run startcsym. Then look at the first 2 image in classes.hed and the first image in sym.hed. The first image in classes.hed is an unsymmetrized particle with the strongest specified symmetry. The first image in sym.hed is a symmetrized version. If the two look the same and have a visible symmetry, you've probably got the right answer. Repeat for all possible symmetries. The answer will usually stand out very clearly, and can be presented in publication by showing the 2 images side-by-side for each trial symmetry. Note that there are some known situations (detached virus portal complexes, for example) where a single data set may contain particles with multiple symmetries.

Approach 2: Run on your data. You can directly examine the class-averages in and/or the MSA basis images in basis.X.hed to look for symmetry. You can use 'symbest' on the class-averages after centering to find the best particles/averages with a particular symmetry, or you could perform rotational correlation analysis on the centered particles.

There is no user program for doing rotational correlation analysis, but this little python script (you can type it interactively as shown) will read the first image from avg.hed and make a rotational correlation plot in one degree increments. Note that the python 'range' command works with integers only, so if you want to use a finer increment than 1 degree, you will have to also modify (i*pi/180.0).

   1 from EMAN import *
   2 from math import *
   4 a=EMData()
   5 a.readImage("avg.hed",0)
   6 b=a.copy()
   7 out=file("results.txt","w")
   9 for angle in range(0,360):
  10     b.setRAlign(angle*pi/180.0,0,0)
  11     b.rotateAndTranslate()
  12     out.write("%d\t%f\n"%(angle,
  14 out.close()

In general, if none of the techniques give you an 'obvious' symmetry, more mathematical approaches likely aren't going to give you a more reliable answer. The rotational correlation analysis is useful in publications to give some level of quantification to the results. However this entire approach is somewhat questionable from a robust mathematical perspective as there are many 'tricks' you can play with the data which will dramatically enhance the appearance of the rotational correlation plot without substantively altering the underlying data...

FAQ_EMAN_USING_20 (last edited 2009-01-14 15:57:40 by root)