# MRtrix3 version incremented to 0.3.15

**URL:** <https://community.mrtrix.org/t/mrtrix3-version-incremented-to-0-3-15/300>\
**Category:** Announcements\
**Created:** [June 16, 2016, 12:43am UTC](https://community.mrtrix.org/t/mrtrix3-version-incremented-to-0-3-15/300 "2016-06-16T00:43:48Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![rsmith](https://community.mrtrix.org/user_avatar/community.mrtrix.org/rsmith/32/2672_2.png) [@rsmith](https://community.mrtrix.org/u/rsmith)\
**Post date:** [June 16, 2016, 12:43am UTC](https://community.mrtrix.org/t/mrtrix3-version-incremented-to-0-3-15/300/1 "2016-06-16T00:43:50Z")

</div>

Hi _MRtrix_ers,

I’ve just pushed a whole load of changes to the master branch of the GitHub repository. Since there’s quite a few things in there that influence either the interfaces to commands, or the default behaviour of certain operations, I’m also incrementing the software version number from 0.3.14 to 0.3.15. We plan for this to be the _final version update_ before _MRtrix3_ is officially released. So our focus will shift to fixing the last few remaining bugs and critical missing features that are required to bundle up the software for a wider range of distribution mechanisms.

To show what’s been happening with the software since the [last major update](http://community.mrtrix.org/t/major-update-to-mrtrix3/110), I’ve compiled below a list of important changes that have occurred during that time. Changes that are part of today’s specific code merge are highlighted in bold, but all noteworthy changes in the 3 months since the last major update are included.

We highly recommend that users upgrade to this latest version, due to the range of bugs that have been fixed, as well as to ensure that the latest additions to the software are adequately tested before its release. We do however also recommend that users scroll through the list below, in case there have been changes to the software that may influence your particular experiments. The upgrade process itself should be hassle-free, as there are not any changes to software dependencies / binary file locations / etc… It is however preferable to run: `./build clean`, in order to remove the binaries of deprecated commands.

Thanks to all who have provided feedback during this period; please continue to do so!

Best regards  
Rob

# _MRtrix3_ changelog: 0.3.13 to 0.3.15

(Note that tag 0.3.14 was used to indicate fixing of [FSL bvecs handling](http://community.mrtrix.org/t/bug-in-fsl-bvecs-handling/165))

## Major updates:

- **`dwidenoise`** : New command. This command uses the method described in [this paper](http://onlinelibrary.wiley.com/doi/10.1002/mrm.26059/abstract) to selectively filter noise from diffusion-weighted image volumes. We have made this command available to the research community as quickly as we could; so although we have not tested its influence on our own group studies, we are excited about the results we’ve seen.

- **`tcksample`** : Major changes. The existing functionality has been split between two commands, with enhanced functionalities added to both.

- _ **Connectome tools** _: Major change to how node information is managed. The concept of a ‘_connectome config file_’ has _disappeared_; instead, _everything_ is now based on _lookup tables_. The command `labelconfig` has be renamed to `labelconvert` (and its usage has changed; see the [help page](https://mrtrix.readthedocs.io/en/0.3.15/reference/commands/labelconvert.html) and [updated documentation](https://mrtrix.readthedocs.io/en/0.3.15/tutorials/labelconvert.html)), and is best thought of as being responsible for _converting_ a parcellation image from one lookup table to another. This means that a parcellation image will only ever be dependent on one text file, simplifying their subsequent use. It is also no longer necessary to specify the _format_ of a text lookup table at the command-line: this will be detected automatically.  
Note that although the location of the example lookup tables has moved (now located in `src/connectome/tables`), and their contents may have changed, the node indices remain identical to those files provided previously.

- _Registration_: Image registration in _MRtrix3_! Far too much to cover as part of this post; details are provided [here](http://community.mrtrix.org/t/image-registration-and-fixel-based-analysis-now-available-in-mrtrix/207). There’s also been various ongoing updates to both the code and the `population_template` script, as we learn and optimise the behaviour of these capabilities.

## Minor updates:

- `5ttgen fsl`: Option to provide a T2-weighted image in addition to the default T1-weighted image. This is used exclusively during the FAST tissue segmentation step. Its effect should however be considered carefully before being used in large studies.

- `5ttgen` _and_ `labelsgmfix`: `-sgm_amyg_hipp` option can be used to include the amygdalae and hippocampi in the list of sub-cortical grey matter structures. For `5ttgen`, the sub-cortical grey matter priors will be applied by ACT for streamlines entering these structures. For `labelsgmfix`, the FreeSurfer delineations of these structures will be replaced by those from FSL FIRST.

- **`configure`** : Improve and standardise error messages provided by configure script, so that hopefully users are better guided more towards finding a solution for their installation.

- `connectome2tck`: By default, the command will _not_ provide track files for node self-connections. Such data can however be requested using the `-keep_self` option.

- **`dwi2fod` _and_ `msdwi2fod`** : The functionality from both of these has now been merged into a single command `dwi2fod`. The [first argument](http://mrtrix.readthedocs.io/en/latest/reference/commands_list.html#dwi2fod) to the command now indicates the FOD estimation algorithm that you wish to use.

- **`dwi2response msmt_5tt`** : The order of the output responses provided has been changed. The order is now: WM, GM, CSF.

- **`dwi2response tournier`** : Dynamic cleanup of temporary files, to reduce incidence of users running out of storage space on temporary file systems.

- `dwi2tensor`:

- `dwiextract`: Enhanced performance, and ability to set strides for the output image. Will now _always_ output a 4D image, even if there’s only a single volume at the requested _b_-value.

- `fixelmult` _and_ `fixeldivide`: These have been merged into new command `fixelcalc`.

- `fod2fixel`: Increased FOD sampling density to reduce orientation bias in fibre density estimates.

- `mrview`:

- `sh2power`:

- **`tcksift` / `tcksift2`** : Change default behaviour regarding grey matter contamination of FODs. Previously, these commands had been set up to process single-tissue data, where the overall FOD size in the GM is similar to that of WM. This would result in fixels at the GM-WM interface being under-defined by streamlines, as the FOD size would be comparable to that of deep WM but streamlines were only permitted to occupy a fraction of the voxel volume. To compensate, the fibre density was heuristically scaled according to the relative volumes of different tissues from the 5TT image. In light of more frequent usage of multi-tissue approaches, this heuristic is now _disabled_ by default, but can be accessed using the `-fd_scale_gm` option.

- **`transformconvert`** : New command. This will be responsible for _converting_ transformation matrices / files between the conventions used by different software packages, whereas `transformcalc` will focus on _calculations_ involving affine transformation matrices. Currently it is capable of importing transformations from FSL `flirt` and ITK (e.g. ANTs) and saving in _MRtrix3_ convention.

- _Documentation_:

- _Memory allocation_: Detect and report failed memory allocation; applications should give a more meaningful error message if your system does not contain enough RAM to run the command.

- _Memory-mapping_: This is a technique allowing commands to access a file (e.g. an image) on disk as though it were stored on RAM, without requiring that the entire file be explicitly stored on RAM. Previously, we had disabled this functionality for output images, as it would cause commands to stall on clusters when writing to network-based file systems. We are now able to automatically detect whether or not the destination directory for an image is on a network file system, and choose whether or not to use memory-mapping accordingly. This will reduce unnecessary RAM usage for non-networked processing, and may speed up many operations.

- _Scripts_:

- _Testing_: The testing framework has been moved from its own repository into the main MRtrix3 repository. This will simplify our own testing, as well as allow external developers to implement tests for their own commands. The data required for testing will not be downloaded as part of a typical MRtrix3 installation; it will only be downloaded if the user explicitly attempts to invoke the tests.

## Bugs squashed:

- `5ttgen fsl`: Fix errors relating to FSL output image types, users providing pre-masked brain images, and requesting that the output image retain the same dimensions as the input image.

- `5ttgen msmt_5tt`: Respect the user-defined brain mask if provided.

- `build`: Correctly identify individual command target on Windows even if the `.exe` extension is not specified.

- `dwi2response manual`: Fix manually setting maximum spherical harmonic degree per shell.

- `dwi2response msmt_5tt`: Fix detection of b-value shells that only contain a single volume.

- **`dwi2response tournier`** : Fix bug that made the script behaviour inconsistent with Donald’s original proposal. Only the top 300 voxels were being dilated and used for the next iteration, rather than the top 3,000.

- `dwi2tensor`: Fixed bug in tensor calculation following the `updated_syntax` merge.

- `dwipreproc`:

- `fixelcfestats` and `mrclusterstats`: More robust design matrix decomposition.

- `labelsgmfix`: Fix bug preventing over-write of an existing file at completion of the script.

- `mrcalc`: Fix bug where an image used more than once in a single `mrcalc` call could be registered as a complex image, forbidding certain mathematical operations.

- `mrmath product`: More sensible results in the presence of non-finite values.

- `mrview`:

- `sh2response`: Skip voxels for which the provided fibre direction is invalid.

- `tck2connectome`: Fix erroneous warning that no streamlines were found to intersect a particular node.

- **`tckedit`** : Fix handling of streamlines that are cut into multiple sections when using the `-mask` option.

- `tckgen`:

- `tckmap` _(and some other commands)_: Fix minor bug in how streamline interpolation was applied at one endpoint of the streamline.

- `tcksift` / `tcksift2`: Fix `-output_debug` option following `updated_syntax` merge.

- _DICOM import_: Fix import for Siemens mosaics for non-square LR phase-encode EPI.

- _FSL compatibility_: Fix bugs relating to data strides, NIfTI conventions and FSL image handling; more information [here](http://community.mrtrix.org/t/bug-in-fsl-bvecs-handling/165/1).

- _ **MSMT CSD** _: Fix potential bugs due to uninitialized memory. These could affect the application of the non-negativity constraint, and if the requested `-lmax` was greater than that of the response function for the corresponding tissue, but were inconsistent in their appearance.

- _Scripts_: Ensure that the version of _MRtrix3_ commands used is the same version as the script library being invoked.

- _Track file output_: Prevent segmentation fault in cases where the target output file path could not be opened.

- _Windows_:

---

_[View the full topic](https://community.mrtrix.org/t/mrtrix3-version-incremented-to-0-3-15/300)._
