Giter VIP home page Giter VIP logo

3dem-conventions's Introduction

3DEM-conventions

Here you can find a description of standard 3DEM conventions (as proposed by Heymann et al. JSB 151(2), 2005, p. 196-207 with corrections) and conventions used by popular software packages if different.

Content

3DEM standard conventions

Coordinate and rotation convention

Coordinate convention is right-handed Cartesian coordinate system. Display convention is for x-axis to increase from left to right, y-axis to increase from bottom to top, and z-axis to increase from back to front (pointing at viewer) as shown:

image

image

A positive rotation is defined as clockwise for the object. A positive rotation is defined as anti-clockwise for the coordinate system when viewed with the axis of rotation pointing at the viewer. For example, a rotation from the x-axis to the y-axis (about the z-axis) is positive. Note that the object will rotate clockwise when the coordinate system rotates anti-clockwise.

Euler angles

Traditionally in EM the direction of propagation of the electron beam is thought to coincide with z axis, which in addition uniquely specifies xy as the plane in which the data is collected. Thus, it is convenient to express the rotations with respect to the z axis. By using a ZYZ convention (rotation around the z axis, followed by a rotation around y, and another around z), one benefits from the fact that the description bears a simple relation to the description of a point on a sphere; that is to say, we can think of the decomposition as the description of a point on the sphere (the first two Eulerian angles YZ) and a final in-plane rotation (the final Z-Eulerian angle). We denote three respective Euler angles as phi (φ), theta (θ), psi (ψ) and the corresponding rotation in matrix notation as a product of three matrices:

RZ(ψ) RY(θ) RZ(φ)

Euler angles are three successive axial rotations:

  1. phi, a rotation about the z-axis;
  2. theta, a rotation about the y'-axis; and
  3. psi, a rotation about the z''-axis.

Rotations of coordinate system (anti-clockwise):

image

Recall that it is the matrix at the rightmost end that is applied first. So one might write a 3DEM rotation as (φ, θ, ψ), where φ is applied first, θ second and ψ lastly.

Projection direction

Based on definition of Euler angles above, it is easy to see that first two Eulerian angles (φ, θ) define projection direction, while ψ defines rotation of projection in-plane of projection. Thus, as far as projections are concerned ψ is a trivial angle, as its change does not change the 'information content' of the projection.

Degeneracy of Euler angles

The range of possible Eulerian angles for an asymmetric structure is 0≤φ≤360, 0≤θ≤180, 0≤ψ≤360). However, for each projection whose direction is (φ, θ, ψ) there exists a projection that is related to it by an in-plane mirror operation along x-axis and whose direction is (180+φ, 180-θ, -ψ). Note the projection direction of the mirrored projection is also in the same range of Eulerian angles as all angles are given modulo 360 degrees (i.e., if say φ > 360, then φ = φ - 360, also if φ < 0, then φ = φ + 360.

Conversion between packages

Euler angles conversion

Relion <-> FReAlign

image

CTF parameters conversion

DEFOCUS1=DFMID1
DEFOCUS2=DFMID2
DEFANGLE=90-ANGAST
  • CTFFIND3 to SPIDER (now CTFFIND3 is available from inside SPIDER)
defocus = (DFMID1 + DFMID2)/2;
astig = (DFMID2 - DFMID1);
angle_astig = ANGAST - 45;
if (astig < 0) {
    astig = -astig;
    angle_astig = angle_astig + 90;
}
  • Relion to EMAN2 (use e2reliontoeman.py)
defocus=(rlnDefocusU+rlnDefocusV)/20000.0
dfang=rlnDefocusAngle
dfdiff=(rlnDefocusU-rlnDefocusV)/10000.0
df1 = spider.defocus - spider.magastig/2
df2 = spider.defocus + spider.magastig/2
angast = spider.angast + 45

Coordinate conversion

File format conversion

References

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.