Table convention

From Dynamo
Jump to navigation Jump to search

As a rule, regular users don't necessarily need to remember the structure of a Dynamo table. However, it might be useful in order to interprete the results of a project, to check if a table has been correctly generated/imported or to diagnose problems.

The column convention used to define a table can be consulted by just typing dthelp, which should produce this output:

1 : tag tag of particle file in data folder

2 : aligned value 1: marks the particle for alignment

3 : averaged value 1: the particle was included in the average

4 : dx x shift from center (in pixels)

5 : dy y shift from center (in pixels)

6 : dz z shift from center (in pixels)

7 : tdrot euler angle (rotation around z, in degrees)

8 : tilt euler angle (rotation around new x, in degrees)

9 : narot euler angle (rotation around new z, in degrees)

10 : cc Cross correlation coefficient

11 : cc2 Cross correlation coefficient after thresholding II

12 : cpu processor that aligned the particle

13 : ftype 0: full range; 1: tilt around y ( ... dhelp dtutorial for more options)

14 : ymintilt minimum angle in the tilt series around tilt axis (i.e. -60)

15 : ymaxtilt maximum angle in the tilt series around tilt axis (i.e. 60)

16 : xmintilt minimum angle in the tilt series around second tilt axis (i.e. -60)

17 : xmaxtilt maximum angle in the tilt series around second x (i.e. 60)

18 : fs1 free parameter for fourier sampling #1()

19 : fs2 free parameter for fourier sampling #2()

20 : tomo tomogram number

21 : reg for arbitrary assignations of regions inside tomograms

22 : class class number

23 : annotation use this field for assigning arbitrary labels

24 : x x coordinate in original volume

25 : y y coordinate in original volume

26 : z z coordinate in original volume

27 : dshift norm of shift vector

28 : daxis difference in axis orientation

29 : dnarot difference in narot

30 : dcc difference in CC

31 : otag original tag (subboxing)

32 : npar number of added particles (compactions) / subunit label (subboxing)

34 : ref reference. Used in multireference projects

35 : sref subreference (i.e. generated by Dynamo PCA)

36 : apix angstrom per pixel

37 : def defocus (in micron)

41 : eig1 "eigencoefficient" #1

42 : eig2 "eigencoefficient" #2

more columns can be added for user-defined properties.

The shortnames can actually used in some programs of Dynamo (as dtgrep and dtplot) to refer to the columns.


Main article: Particle tags

The tags, in column one, are the link between a table and the data folder that is intended to be talked to by the table.


When a table is passed to a project, you can set to zero the particles in the data folder that you don't want to included into the alignment or classification project. Of course, you can just a table that does not include the particles you want to exclude.

When Dynamo runs a refinement project that operates some particle thresholding from iteration to iteration, the table in the subsequent iteration will not just omit the particles of the previous iteration, but will mark with zero the particles that are not to be aligned in the subsequent iteration.


This column is never set by the user, but it is typically filled by Dynamo during an alignment project. Dynamo generates several tables during the project (for each reference and for each iteration), and this column allows to track which particle contributed to which reference at which iteration.


The shift parameters, in pixels, measured always from the center of the box.


A set of euler angles in ZXZ convention.

Convention interpretation

Volume rotation

If v is a template (say, pointing to the "north" ), and [tdrot, tilt, narot] are the angles that appear in the table for a given particle, then:

 vRotated = drot(v,[tdrot, tilt, narot]); 

would produce a cube containing the template rotated in the direction of the particle.

If the unrotated particle (i.e., the Subtomogram directly cropped form the tomogram) is contained in the volume p, then the particle aligned in the direction expressed in the table would be created through

 alignedParticle = trot(p, -[narot,tilt,tdrot]) ;

Note the inverse ordering of the angles and the minus sign.

Coordinate rotation

The rotation matrix of a given triplet [tdrot, tilt, narot] can be computed as:

 m = dynamo_euler2matrix([tdrot, tilt, narot]);

If vRotated is the volume resulting from applying the triplet [tdrot, tilt, narot] onto a volume v:

 vRotated= drot(v,[tdrot, tilt, narot]); 

then a coordinate r inside v will land in the coordinate tRotated = inv(m)*r inside vRotated inside vRotated

  • Both coordinates are assumed to be defined from the rotation center of the volume
  • An explanation on how the derivation of the relationship between angle triplet and matrix has been computed can be found inside: dynamo_euler2matrix_derivation