pwem.protocols.protocol_projection_edit module

class pwem.protocols.protocol_projection_edit.ProtProjectionEditor(**kwargs)[source]

Bases: EMProtocol

This protocol edits the projection directions of all the items of a set of particles using a formula. This could be useful for applying geometrical transformation to a set of particles.

Several predefined operation are offered such as * apply the rotation matrix define by an origin vector and a target vector * rotate the projection vector around a given vector by A degrees * convert between icosahedral symmetries * convert between dihedral symmetries * convert between tetrahedral symmetries

CHOICE_DIHEDRAL = 3
CHOICE_ICOSAHEDRAL = 2
CHOICE_LABEL = {0: 'move source vector to target vector', 1: 'rotate around vector', 2: 'convert between icosahedral symmetries', 3: 'convert between dihedral symmetries', 4: 'convert between tetrahedral symmetries', 5: 'move to unit cell'}
CHOICE_MOVE_UC = 5
CHOICE_MOVE_VECTOR = 0
CHOICE_ROTATE_VECTOR = 1
CHOICE_TETRAHEDRAL = 4
DIHEDRAL_SYM_NAME = {1: 'Dxn', 2: 'Dyn'}
ICOSAHEDRAL_SYM_NAME = {7: 'I222', 8: 'I222r', 9: 'In25', 10: 'In25r', 11: 'I2n3', 12: 'I2n3r', 13: 'I2n5', 14: 'I2n5r'}
TETRAHEDRAL_SYM_NAME = {3: 'T222', 4: 'Tz3', 5: 'Tz3r'}
applyMatrix(matrix)[source]

Applies the matrix the to whole input set and creates the output

createOutput(inputSet, modifiedSet)[source]
moveToUCStep()[source]

Moves the particle alignment information to the same unit cell based on the symmetry specified.

rotateDiStep()[source]

Compute rotation matrix from one dihedral symmetry to another and apply it to the projection directions

rotateIcosahedralStep()[source]

Compute rotation matrix from one icosahedral symmetry to another and apply it to projection directions. Reconstructed volume should change symmetry

rotateStep()[source]
Compute rotation matrix between user provided vectors

(x,y,z) and (x’,y’,z’) and apply it

to projection directions. Reconstructed volume should rotate

rotateTetraStep()[source]

Compute rotation matrix between tetrahedral symmetries and apply it to the projection directions

rotateVectorStep()[source]
Compute rotation matrix around user provided vector
(x,y,z) and rotate “angle” degrees the projection directions.

Reconstructed volume should rotate around axis