Source code for rpxdock.geom.sym

import numpy as np, rpxdock as rp
from rpxdock import homog as hm

tetrahedral_frames = np.load(rp.data.datadir + "/tetrahedral_frames.pickle", allow_pickle=True)
octahedral_frames = np.load(rp.data.datadir + "/octahedral_frames.pickle", allow_pickle=True)
icosahedral_frames = np.load(rp.data.datadir + "/icosahedral_frames.pickle", allow_pickle=True)

[docs]def symframes(sym, pos=None, axis=[0, 0, 1], **kw): arg = rp.Bunch(kw) if isinstance(sym, np.ndarray): assert len(sym) == 1 sym = sym[0] if isinstance(sym, (int, np.int32, np.int64, np.uint32, np.uint64)): sym = int(sym) if isinstance(sym, int) or sym.startswith("C"): if not isinstance(sym, int): sym = int(sym[1:]) return np.array(list(hm.hrot(axis, np.arange(sym) / sym * 360))) elif sym.startswith("D"): assert np.allclose(axis, [0, 0, 1]) if '_' not in sym: nsym = int(sym[1:]) else: nsym = int(sym[1:sym.find('_')]) frames_up = list(hm.hrot([0, 0, 1], np.arange(nsym) / nsym * 360)) frames_dn = list(hm.hrot([1, 0, 0], np.pi) @ frames_up) return np.array(frames_up + frames_dn) elif sym.startswith("T"): return tetrahedral_frames elif sym.startswith("O"): return octahedral_frames elif sym.startswith("I"): return icosahedral_frames elif sym.startswith('H'): assert len(sym) == 2 nfold = int(sym[1]) frames = [np.eye(4)] for i in range(int(np.floor(arg.symframe_num_helix_repeats / 2))): frames.append(pos @ frames[-1]) frames += [np.linalg.inv(x) for x in frames[1:]] return np.array(frames) elif sym == 'P6_632': c6 = hm.hrot(axis, np.arange(6) / 6 * 360) c3 = hm.hrot(axis, np.arange(3) / 3 * 360, center=[pos[1, 0, 3], pos[1, 1, 3], 0]) c2 = hm.hrot(axis, np.arange(2) / 2 * 360, center=[pos[2, 0, 3], pos[2, 1, 3], 0]) frames = c6[None, None, :] @ c3[None, :, None] @ c2[:, None, None] # frames = (c6[:, None, None, None] @ c2[None, :, None, None] @ c3[None, None, :, None] # @ c6[None, None, None, :]) # frames = c3[None, :, None] @ c2[:, None, None] # frames = np.concatenate([c6, c3, c2]) # frames = c6 # frames = np.eye(4) return frames.reshape(-1, 4, 4) elif sym == 'P4M_4': c4a = hm.hrot(axis, np.arange(4) / 4 * 360) c4b = hm.hrot(axis, np.arange(4) / 4 * 360, center=[pos[0, 3], pos[1, 3], 0]) c2 = hm.hrot(axis, np.arange(2) / 2 * 360, center=[pos[0, 3] / 2, pos[1, 3] / 2, 0]) frames = c4a[None, None, :] @ c2[None, :, None] @ c4b[:, None, None] return frames.reshape(-1, 4, 4) else: raise NotImplementedError
frames = dict(T=tetrahedral_frames, O=octahedral_frames, I=icosahedral_frames) tetrahedral_axes = { 2: hm.hnormalized([1, 0, 0]), 3: hm.hnormalized([1, 1, 1]), 33: hm.hnormalized([1, 1, -1]), } # other c3 octahedral_axes = { 2: hm.hnormalized([1, 1, 0]), 3: hm.hnormalized([1, 1, 1]), 4: hm.hnormalized([1, 0, 0]), } icosahedral_axes = { 2: hm.hnormalized([1, 0, 0]), 3: hm.hnormalized([0.934172, 0.000000, 0.356822]), 5: hm.hnormalized([0.850651, 0.525731, 0.000000]), } dihedral_axes = { 2: hm.hnormalized([1, 0, 0]), 22: hm.hnormalized([0, 0, 1]), 3: hm.hnormalized([0, 0, 1]), 4: hm.hnormalized([0, 0, 1]), 5: hm.hnormalized([0, 0, 1]), 6: hm.hnormalized([0, 0, 1]), 7: hm.hnormalized([0, 0, 1]), 8: hm.hnormalized([0, 0, 1]), 9: hm.hnormalized([0, 0, 1]), 10: hm.hnormalized([0, 0, 1]), 11: hm.hnormalized([0, 0, 1]), 12: hm.hnormalized([0, 0, 1]), } axes = dict(T=tetrahedral_axes, O=octahedral_axes, I=icosahedral_axes, D=dihedral_axes) for i in range(2, 13): axes[f'D{i}'] = axes['D'] to_neighbor_olig = dict( T={ 2: frames["T"][2], 3: frames["T"][1], 33: frames["T"][1] }, O={ 2: frames["O"][2], 3: frames["O"][1], 4: frames["O"][1] }, I={ 2: frames["I"][1], 3: frames["I"][1], 5: frames["I"][2] }, D22={ 2: hm.hrot([0, 0, 1], np.pi), 22: hm.hrot([1, 0, 0], np.pi), }, D2={ 2: hm.hrot([0, 1, 0], np.pi), }, ) axes_second = {s: {k: to_neighbor_olig[s][k] @ v for k, v in axes[s].items()} for s in "TOI"} axes_second['D22'] = { 2: to_neighbor_olig['D22'][2] @ dihedral_axes[2], 22: to_neighbor_olig['D22'][22] @ dihedral_axes[22], } axes_second['D2'] = { 2: to_neighbor_olig['D2'][2] @ dihedral_axes[2], } for i in range(3, 13): to_neighbor_olig[f'D{i}'] = { 2: hm.hrot([0, 0, 1], 2 * np.pi / i), i: hm.hrot([1, 0, 0], np.pi), } to_neighbor_olig[f'D{i}2'] = to_neighbor_olig[f'D{i}'] axes_second[f'D{i}'] = { 2: to_neighbor_olig[f'D{i}'][2] @ dihedral_axes[2], i: to_neighbor_olig[f'D{i}'][i] @ dihedral_axes[i], } axes_second[f'D{i}2'] = axes_second[f'D{i}'] # for i in range(2, 13): # axes[f'D{i}'] = axes['D'] # axes_second[f'D{i}'] = axes_second['D'] # tetrahedral_frames = np.array( # [ # ( # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, +1.000000, +0.000000), # (+1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, +0.000000, +0.000000), # (-0.000000, -0.000000, -1.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, -0.000000, -1.000000, +0.000000), # (-1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +0.000000, +1.000000, +0.000000), # (+1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +1.000000, +0.000000), # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, -0.000000, -1.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, -1.000000, +0.000000), # (-1.000000, -0.000000, -0.000000, +0.000000), # (-0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +0.000000, +1.000000, +0.000000), # (-1.000000, +0.000000, -0.000000, +0.000000), # (-0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, -0.000000, -0.000000, +0.000000), # (-0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, +0.000000, -0.000000, +0.000000), # (-0.000000, -1.000000, +0.000000, +0.000000), # (-0.000000, +0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ] # ) # # octahedral_frames = np.array( # [ # ( # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, +0.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, +1.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (-0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +1.000000, +0.000000, +0.000000), # (+1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, +0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, +1.000000, +0.000000), # (-0.000000, +1.000000, +0.000000, +0.000000), # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, -0.000000, +0.000000), # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+1.000000, -0.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +0.000000, -1.000000, +0.000000), # (+1.000000, -0.000000, -0.000000, +0.000000), # (-0.000000, -1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +1.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +1.000000, +0.000000), # (-0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, -0.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +0.000000, +1.000000, +0.000000), # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, -0.000000, +0.000000), # (-0.000000, -0.000000, +1.000000, +0.000000), # (-1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, -1.000000, -0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (+1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.000000, +0.000000, -1.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +0.000000, -1.000000, +0.000000), # (-0.000000, -1.000000, -0.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, +0.000000, +0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (-0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (-0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, -0.000000, +0.000000), # (-1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ] # ) # # icosahedral_frames = np.array( # [ # ( # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, +0.309017, +0.500000, +0.000000), # (+0.309017, +0.500000, -0.809017, +0.000000), # (-0.500000, +0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, +0.309017, +0.500000, +0.000000), # (-0.309017, -0.500000, +0.809017, +0.000000), # (+0.500000, -0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, +0.309017, -0.500000, +0.000000), # (+0.309017, +0.500000, +0.809017, +0.000000), # (+0.500000, -0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, +0.309017, -0.500000, +0.000000), # (-0.309017, -0.500000, -0.809017, +0.000000), # (-0.500000, +0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, -0.309017, +0.500000, +0.000000), # (+0.309017, -0.500000, -0.809017, +0.000000), # (+0.500000, +0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, -0.309017, +0.500000, +0.000000), # (-0.309017, +0.500000, +0.809017, +0.000000), # (-0.500000, -0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, -0.309017, -0.500000, +0.000000), # (+0.309017, -0.500000, +0.809017, +0.000000), # (-0.500000, -0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.809017, -0.309017, -0.500000, +0.000000), # (-0.309017, +0.500000, -0.809017, +0.000000), # (+0.500000, +0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, +0.809017, +0.309017, +0.000000), # (+0.809017, -0.309017, -0.500000, +0.000000), # (-0.309017, +0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, +0.809017, +0.309017, +0.000000), # (-0.809017, +0.309017, +0.500000, +0.000000), # (+0.309017, -0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, +0.809017, -0.309017, +0.000000), # (+0.809017, -0.309017, +0.500000, +0.000000), # (+0.309017, -0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, +0.809017, -0.309017, +0.000000), # (-0.809017, +0.309017, -0.500000, +0.000000), # (-0.309017, +0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, -0.809017, +0.309017, +0.000000), # (+0.809017, +0.309017, -0.500000, +0.000000), # (+0.309017, +0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, -0.809017, +0.309017, +0.000000), # (-0.809017, -0.309017, +0.500000, +0.000000), # (-0.309017, -0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, -0.809017, -0.309017, +0.000000), # (+0.809017, +0.309017, +0.500000, +0.000000), # (-0.309017, -0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.500000, -0.809017, -0.309017, +0.000000), # (-0.809017, -0.309017, -0.500000, +0.000000), # (+0.309017, +0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, +0.500000, +0.809017, +0.000000), # (+0.500000, -0.809017, +0.309017, +0.000000), # (+0.809017, +0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, +0.500000, +0.809017, +0.000000), # (-0.500000, +0.809017, -0.309017, +0.000000), # (-0.809017, -0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, +0.500000, -0.809017, +0.000000), # (+0.500000, -0.809017, -0.309017, +0.000000), # (-0.809017, -0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, +0.500000, -0.809017, +0.000000), # (-0.500000, +0.809017, +0.309017, +0.000000), # (+0.809017, +0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, -0.500000, +0.809017, +0.000000), # (+0.500000, +0.809017, +0.309017, +0.000000), # (-0.809017, +0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, -0.500000, +0.809017, +0.000000), # (-0.500000, -0.809017, -0.309017, +0.000000), # (+0.809017, -0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, -0.500000, -0.809017, +0.000000), # (+0.500000, +0.809017, -0.309017, +0.000000), # (+0.809017, -0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.309017, -0.500000, -0.809017, +0.000000), # (-0.500000, -0.809017, +0.309017, +0.000000), # (-0.809017, +0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, +0.000000, +0.000000), # (+0.000000, -0.000000, +1.000000, +0.000000), # (+1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +1.000000, +0.000000, +0.000000), # (-0.000000, +0.000000, -1.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +0.000000, +1.000000, +0.000000), # (+1.000000, -0.000000, -0.000000, +0.000000), # (+0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, +0.000000, +1.000000, +0.000000), # (-1.000000, +0.000000, +0.000000, +0.000000), # (-0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +1.000000, +0.000000), # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -1.000000, +0.000000, +0.000000), # (-0.000000, -0.000000, -1.000000, +0.000000), # (+1.000000, +0.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, -1.000000, +0.000000), # (+1.000000, +0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, +0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (+0.000000, -0.000000, -1.000000, +0.000000), # (-1.000000, -0.000000, -0.000000, +0.000000), # (-0.000000, +1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, -0.000000, +0.000000, +0.000000), # (+0.000000, -1.000000, -0.000000, +0.000000), # (+0.000000, +0.000000, +1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-1.000000, -0.000000, +0.000000, +0.000000), # (-0.000000, +1.000000, +0.000000, +0.000000), # (-0.000000, -0.000000, -1.000000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, +0.309017, +0.500000, +0.000000), # (+0.309017, -0.500000, +0.809017, +0.000000), # (+0.500000, +0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, +0.309017, +0.500000, +0.000000), # (-0.309017, +0.500000, -0.809017, +0.000000), # (-0.500000, -0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, +0.309017, -0.500000, +0.000000), # (+0.309017, -0.500000, -0.809017, +0.000000), # (-0.500000, -0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, +0.309017, -0.500000, +0.000000), # (-0.309017, +0.500000, +0.809017, +0.000000), # (+0.500000, +0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, -0.309017, +0.500000, +0.000000), # (+0.309017, +0.500000, +0.809017, +0.000000), # (-0.500000, +0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, -0.309017, +0.500000, +0.000000), # (-0.309017, -0.500000, -0.809017, +0.000000), # (+0.500000, -0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, -0.309017, -0.500000, +0.000000), # (+0.309017, +0.500000, -0.809017, +0.000000), # (+0.500000, -0.809017, -0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.809017, -0.309017, -0.500000, +0.000000), # (-0.309017, -0.500000, +0.809017, +0.000000), # (-0.500000, +0.809017, +0.309017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, +0.809017, +0.309017, +0.000000), # (+0.809017, +0.309017, +0.500000, +0.000000), # (+0.309017, +0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, +0.809017, +0.309017, +0.000000), # (-0.809017, -0.309017, -0.500000, +0.000000), # (-0.309017, -0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, +0.809017, -0.309017, +0.000000), # (+0.809017, +0.309017, -0.500000, +0.000000), # (-0.309017, -0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, +0.809017, -0.309017, +0.000000), # (-0.809017, -0.309017, +0.500000, +0.000000), # (+0.309017, +0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, -0.809017, +0.309017, +0.000000), # (+0.809017, -0.309017, +0.500000, +0.000000), # (-0.309017, +0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, -0.809017, +0.309017, +0.000000), # (-0.809017, +0.309017, -0.500000, +0.000000), # (+0.309017, -0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, -0.809017, -0.309017, +0.000000), # (+0.809017, -0.309017, -0.500000, +0.000000), # (+0.309017, -0.500000, +0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.500000, -0.809017, -0.309017, +0.000000), # (-0.809017, +0.309017, +0.500000, +0.000000), # (-0.309017, +0.500000, -0.809017, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, +0.500000, +0.809017, +0.000000), # (+0.500000, +0.809017, -0.309017, +0.000000), # (-0.809017, +0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, +0.500000, +0.809017, +0.000000), # (-0.500000, -0.809017, +0.309017, +0.000000), # (+0.809017, -0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, +0.500000, -0.809017, +0.000000), # (+0.500000, +0.809017, +0.309017, +0.000000), # (+0.809017, -0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, +0.500000, -0.809017, +0.000000), # (-0.500000, -0.809017, -0.309017, +0.000000), # (-0.809017, +0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, -0.500000, +0.809017, +0.000000), # (+0.500000, -0.809017, -0.309017, +0.000000), # (+0.809017, +0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, -0.500000, +0.809017, +0.000000), # (-0.500000, +0.809017, +0.309017, +0.000000), # (-0.809017, -0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, -0.500000, -0.809017, +0.000000), # (+0.500000, -0.809017, +0.309017, +0.000000), # (-0.809017, -0.309017, +0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ( # (-0.309017, -0.500000, -0.809017, +0.000000), # (-0.500000, +0.809017, -0.309017, +0.000000), # (+0.809017, +0.309017, -0.500000, +0.000000), # (+0.000000, +0.000000, +0.000000, +1.000000), # ), # ] # ) # # tetrahedral_frames.dump("rpxdock/data/tetrahedral_frames.pickle") # octahedral_frames.dump("rpxdock/data/octahedral_frames.pickle") # icosahedral_frames.dump("rpxdock/data/icosahedral_frames.pickle")