# Population\_template error on linear transformation

**URL:** <https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081>\
**Category:** Uncategorized\
**Created:** [September 9, 2020, 10:44pm UTC](https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081 "2020-09-09T22:44:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rbell](https://community.mrtrix.org/letter_avatar_proxy/v4/letter/r/e68b1a/32.png) [@rbell](https://community.mrtrix.org/u/rbell)\
**Post date:** [September 9, 2020, 10:44pm UTC](https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081/1 "2020-09-09T22:44:20Z")

</div>

Dear Experts,

I am trying to run population\_template on my data which is consisting of CSD and it seems to error out doing the linear\_transforms, but only once it gets to the sixth iteration and always the same participant. The data seems to be fine, and I don’t understand why it could go through five iterations of linear transformation with that participant without error. Any help would be greatly appreciated and please let me know what additional info I can provide.

Thank you in advance!  
Ryan

```auto
population_template: Optimising template with linear registration (stage 7 of 12)... [===========================population_template: [WARNING] large scaling ([1.5033561096399, 0.96437798612909, 2.17591063875253]) in linear_transforms_6/01170.txt
population_template: [WARNING] large shear ([-0.0657805887928978, -0.749354551949378, -0.0510109745261085]) in linear_transforms_6/01170.txt
population_template: [WARNING] large scaling ([25.971895892697, 1.79162526802418, 14.3706421536904]) in linear_transforms_6/01170.txt
population_template: [WARNING] large shear ([-4.55398543579927, -18.2900798830257, 3.29183772435699]) in linear_transforms_6/01170.txt
population_template: [WARNING] you might want to manually repeat mrregister with different parameters and overwrite the transformation file: 
linear_transforms_6/01170.txt
press enter to continue population_templateTraceback (most recent call last):
  File "/usr/local/packages/mrtrix3/bin/population_template", line 621, in <module>
    check_linear_transformation(os.path.join('linear_transforms_%i' % level, '%s.txt' % i.prefix), command, pause_on_warn=do_pause_on_warn)
  File "/usr/local/packages/mrtrix3/bin/population_template", line 133, in check_linear_transformation
    return check_linear_transformation (transformation, newcmd, max_scaling, max_shear, max_rot, pause_on_warn = pause_on_warn)
  File "/usr/local/packages/mrtrix3/bin/population_template", line 138, in check_linear_transformation
    input("press enter to continue population_template")
EOFError: EOF when reading a line
----JOB [pop_template.sh.2323249] STOP [Thu Aug 27 10:40:46 EDT 2020]----

```

---

<div class="post-metadata">

**Author:** ![maxpietsch](https://community.mrtrix.org/user_avatar/community.mrtrix.org/maxpietsch/32/25_2.png) [@maxpietsch](https://community.mrtrix.org/u/maxpietsch)\
**Post date:** [September 10, 2020, 8:57am UTC](https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081/2 "2020-09-10T08:57:22Z")

</div>

If you used default parameters, `linear_transforms_6` should be the first affine registration, before that only rigid registrations were used. The previous registrations might have been poor as well but were not detected as the detection mechanism uses non-rigid properties (shear, scaling). While you could ignore this warning via the option `-linear_no_pause`, given the scaling and shear, the registration went completely wrong and would unlikely recover in subsequent steps.

For below, I am assuming you used intensity normalised Orientation Distribution Function (ODF) images as input and corresponding masks and the latest version of `MRtrix3`.

To debug `population_template` problems, it is best to go to the scratch directory of `population_template` (printed at the beginning of the output of the script) and have a look at its content. The file `log.txt` contains the commands that were run. Close to the end you should see `mrregister` and subsequent `mrtransform` calls that should guide you on what data to inspect. The folder content should look something like this:

```auto
├── average_header.mif
├── average_header_c0.mif
├── command.txt
├── cwd.txt
├── initial_template_c0.mif
├── input_transformed_c0
│ ├── 0.mif
│ ├── 1.mif
│ └── 2.mif
├── isfinite_c0
│ ├── 0.mif
│ ├── 1.mif
│ └── 2.mif
├── isfinite_c0.mif
├── linear_template00_c0.mif
├── linear_template01_c0.mif
├── linear_template02_c0.mif
├── linear_template03_c0.mif
├── linear_template04_c0.mif
├── linear_template05_c0.mif
├── linear_transform_average.txt
├── linear_transform_average_inv.txt
├── linear_transforms
├── linear_transforms_00
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_01
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_02
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_03
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_04
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_05
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_06
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── linear_transforms_07
├── linear_transforms_08
├── linear_transforms_09
├── linear_transforms_10
├── linear_transforms_11
├── linear_transforms_initial
│ ├── 0.txt
│ ├── 1.txt
│ └── 2.txt
├── log.txt
├── mask_transformed
│ ├── 0.mif
│ ├── 1.mif
│ └── 2.mif
├── warps_00
├── warps_01
├── warps_02
├── warps_03
├── warps_04
├── warps_05
├── warps_06
├── warps_07
├── warps_08
├── warps_09
├── warps_10
├── warps_11
├── warps_12
├── warps_13
├── warps_14
└── warps_15

```

You probably best start comparing the current template and previous registration result, which is used for initialisation to the registration that went wrong.

```auto
mrcat linear_template05_c0.mif $(mrgrid input_transformed_c0/01170.mif regrid -template linear_template05_c0.mif -) -axis 4 - | mrview - -roi.load mask_transformed/01170.mif -roi.opacity 0.3

```

`shift + right,left` in `mrview` allows you to switch between template (volume group 0) and transformed subject image (1). Look for gross misalignment and global and local large intensity differences between the images as well as poor mask coverage. Affine registration going wrong can usually be traced back to one of these reasons. If your input is not scalar (ODFs), check also a few volumes (`right,left` in `mrview`).

If the subject data is grossly misaligned (large rotation or translation) with the template, have a look at the data from previous registration stages:

```auto
mrcat linear_template05_c0.mif $(mrtransform -reorient_fod <yes,no> <INPUT DATA/>01170.mif -template linear_template05_c0.mif -linear linear_transforms_<previous stage number>/01170.txt -) -axis 4 - | mrview -

```

If your data and mask are OK, you have a few options:

- don’t include that subject in the template, once the template is done you can register each subject of interest to the template
- if you have abnormal data (lesions, tumour, artefacts) masked out, use `-nanmask` to exlude these areas from appearing in the template
- dilate or erode that subject’s mask to nudge registration in a hopefully better direction
- experiment with parameters to `population_template`. For instance, increase the initial scale and number of steps in `-affine_scale`, set `-affine_lmax` to zero, or force nonlinear registration to take over the affine part `-type rigid_nonlinear` (might yield suboptimal results)
- intervene manually in the registration for that subject using the pause functionality (requires you to experiment with `mrregister` parameters to overwrite the transformation that went wrong and then press enter once you found settings that worked to continue `population_template`)

---

<div class="post-metadata">

**Author:** ![rbell](https://community.mrtrix.org/letter_avatar_proxy/v4/letter/r/e68b1a/32.png) [@rbell](https://community.mrtrix.org/u/rbell)\
**Post date:** [September 17, 2020, 10:50pm UTC](https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081/3 "2020-09-17T22:50:10Z")

</div>

Thank you so much for the reply. I really do appreciate it. Quick question. My scratch directory does not contain any of files or folders with \_c0. Is this an issue?

Thank You,

Ryan

---

<div class="post-metadata">

**Author:** ![maxpietsch](https://community.mrtrix.org/user_avatar/community.mrtrix.org/maxpietsch/32/25_2.png) [@maxpietsch](https://community.mrtrix.org/u/maxpietsch)\
**Post date:** [September 21, 2020, 8:24am UTC](https://community.mrtrix.org/t/population-template-error-on-linear-transformation/4081/4 "2020-09-21T08:24:37Z")

</div>

`_c<integer>` extensions were introduced with multi-contrast registration, your version of MRtrix3 seems to be not up to date. This might not be a problem, but in general, I’d advise updating to the latest stable version unless you are currently processing a cohort of subjects for which you’d want to freeze the version of the software.
