cctbx で直交座標系での対称操作を列挙する方法を訊かれて書いたコード。
from scitbx import matrix from cctbx import crystal # example is 4BWY symm = crystal.symmetry((197.725, 197.725, 562.576, 90, 90, 120), space_group="H32") uc = symm.unit_cell() frac = matrix.sqr(uc.fractionalization_matrix()) ortho = matrix.sqr(uc.orthogonalization_matrix()) for symop in symm.space_group().all_ops(): print ortho * symop.r().as_rational() * frac print ortho * symop.t().as_rational()
Public Domain とします。