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")