def apply_rotation_gaps(angleset1, qrot): from EMAN2 import Transform, Vec2f import types if (type(qrot) == list): rot = Transform({ "type": "spider", "phi": qrot[0], "theta": qrot[1], "psi": qrot[2] }) else: rot = qrot for i in range(len(angleset1)): if (len(angleset1[i]) > 1): T1 = Transform({ "type": "spider", "phi": angleset1[i][0], "theta": angleset1[i][1], "psi": angleset1[i][2], "tx": 0.0, "ty": 0.0, "tz": 0.0, "mirror": 0, "scale": 1.0 }) T1.set_trans(Vec2f(-angleset1[i][3], -angleset1[i][4])) T = T1 * rot d = T.get_params("spider") angleset1[i] = [d["phi"], d["theta"], d["psi"], -d["tx"], -d["ty"]]
def apply_rotation_gaps(angleset1, qrot): from EMAN2 import Transform, Vec2f import types if(type(qrot) == types.ListType): rot = Transform({"type":"spider","phi":qrot[0],"theta":qrot[1],"psi":qrot[2]}) else: rot = qrot for i in xrange(len(angleset1)): if(len(angleset1[i]) > 1): T1 = Transform({"type":"spider","phi":angleset1[i][0],"theta":angleset1[i][1],"psi":angleset1[i][2],"tx":0.0,"ty":0.0,"tz":0.0,"mirror":0,"scale":1.0}) T1.set_trans(Vec2f(-angleset1[i][3], -angleset1[i][4])) T = T1*rot d = T.get_params("spider") angleset1[i] = [d["phi"], d["theta"], d["psi"], -d["tx"], -d["ty"]]
def make_proj(dens, meta): """ Project and CTF filter density according to particle metadata. :param dens: EMData density :param meta: Particle metadata (Euler angles and CTF parameters) :return: CTF-filtered projection """ t = Transform() t.set_rotation({'psi': meta.psi, 'phi': meta.phi, 'theta': meta.theta, 'type': 'spider'}) t.set_trans(-meta.x_origin, -meta.y_origin) proj = dens.project("standard", t) ctf = generate_ctf(meta.ctf_params) ctf_proj = filt_ctf(proj, ctf) return ctf_proj
def apply_rotation(angleset1, qrot): from EMAN2 import Transform, Vec2f """ if indexes != None: new_ang1 = [] new_ang2 = [] for i in indexes: new_ang1.append(angleset1[i]) new_ang2.append(angleset2[i]) angleset1 = new_ang1 angleset2 = new_ang2 """ import types if(type(qrot) == types.ListType): rot = Transform({"type":"spider","phi":qrot[0],"theta":qrot[1],"psi":qrot[2]}) else: rot = qrot for i in xrange(len(angleset1)): T1 = Transform({"type":"spider","phi":angleset1[i][0],"theta":angleset1[i][1],"psi":angleset1[i][2],"tx":0.0,"ty":0.0,"tz":0.0,"mirror":0,"scale":1.0}) T1.set_trans(Vec2f(-angleset1[i][3], -angleset1[i][4])) T = T1*rot d = T.get_params("spider") angleset1[i] = [d["phi"], d["theta"], d["psi"], -d["tx"], -d["ty"]]