Hi Kris, your questions isn't simple and the solution isn't straightforward. The functionality you are looking for isn't implemented in the cctbx. You are right in your assumption that most of what you need is already available, but there are missing pieces. Given a unit cell (your primitive vectors), the cctbx can give you the corresponding highest point-group symmetry (lattice symmetry) in a very robust way, but there is nothing to loop over the compatible space groups and to check if the symmetry operations are compatible with the coordinates. There are some programs out there which do this. I think Ton Spek's PLATON for example. The Superflip program (google) determines the symmetry from a P1 map. There is also J. Appl. Cryst. (2005). 38, 237-238 and J. Appl. Cryst. (1998). 31, 922-928. There may be more. I haven't followed the developments very closely. An idea that has been floating around in my mind for a long time is to use the fast translation function. Make a map given your coordinates, loop over all space group, use the fast translation function to find the origin. This is implemented in phenix.hyss. It should be relatively easy to adapt this implementation for your purpose. You'd get scores (correlation coefficients) instead of yes/no answers. This could be useful to uncover approximate symmetry, but I'm just guessing. If you want to try implementations yourself, I'd be happy to answer specific questions. Ralf ____________________________________________________________________________________ Be a better Globetrotter. Get better travel answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545469