# Table convention

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.

## Contents

## Tags

*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.

## aligned

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.

## averaged

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.

## dx,dy,dz

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

## tdrot,tilt,narot

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`