# Mrregister type choice

Dear mrtrix experts,

I want to achieve an affine (including rigid) and nonlinear transformation, but have some questions:

1. What is the difference between `rigid_affine_nonlinear` and `affine_nonlinear` in the `mrregister` command?
Intuitively I would think the ‘affine’ part already covers rigid transformations. Is there a special reason why ‘rigid’ should be added explicitly besides affine, i.e. does it perform better?

Also, I’m confused about the output options:

1. Suppose I choose the registration type `-type rigid_affine_nonlinear`, should I then define both rigid and affine outputs e.g. `-rigid rigid.txt -affine affine.txt`, or is it sufficient to put `-affine rigid_affine.txt` in the assumption that ‘rigid_affine.txt’ would then be the full affine transform (containing rigid transformation as well).
And if I would put `-rigid rigid.txt -affine affine.txt` instead, would that mean that `affine.txt` contains also the rigid transformations (i.e. equal to rigid_affine.txt in my previous example), or only the scaling and skewing, not covered by `rigid.txt`?

Kind regards,

Thibo

All registration types are performed consecutively and each one is initialised with the result of the previous one.

The latter performs a rigid registration followed by an affine which is initialised with the rigid registration’s transformation matrix.

The additional rigid step is often useful if there are large size differences between the brains.`rigid_affine_nonlinear` first tries to get the translation and rotation in a sensible ballpark and then perform the full affine registration including scaling and shearing.

The output is the result of the respective registration type. If you are only interested in the final result then all you need is the warp field as it also contains the linear transformation it was initialised with. Transformation matrices always contain the full linear (rigid or affine) transformation in homogeneous coordinates. You can decompose it into shear and scale with `transformcalc` if you want but it is not necessary.

1 Like

Alright, thanks for the explanation Max!

T