MRtrix 3.0_RC3 -> 3.0.0 changelog

3. Bug fixes

(Note: If checking out the master branch – which is the default behaviour – rather than the explicit 3.0_RC3 tag, you may have received many of these fixes already)

DICOM

  • Null characters: Fix import of DICOM fields with dangling null characters. (Thanks for report @sniogi)

  • Slice timing (2, 3): Fix import of slice timing vector, particularly in Siemens mosaics. (Thanks for report @mblesac)

  • Whitespace data: Strip excess whitespace from DICOM fields prior to numerical conversion to prevent import failures.

  • Whitespace keys: Prevent read_mrtrix() from failing when a header key contains whitespace; as Matlab variable names cannot contain such.

Documentation

  • FBA pipeline (2 3): Fixes to FBA pipelines following 3.0_RC3 update.

Matlab

  • write_mrtrix(): Fix function operation when output is a .mih / .dat file pair rather than a .mif.

Multiple commands

  • Affine transformations: Fix image header information load when header transformation is not rigid (scaling component will be applied to voxel sizes so that transform contains unit-length cosine vectors).

  • b-value clustering: Extract volumes classified as b=0 before running clustering algorithm to prevent low non-b=0 shells being merged with b=0 volumes. (Thanks for report @MikaelNoven)

  • Command-line interface: Fix parsing of abbreviated command-line options when there are identically-named options.

  • JSON orientations: Import and export of orientation-dependent information (e.g. phase / slice encoding directions) has been modified and extensively tested under various scenarios (e.g. different file formats, with / without MRtrix3 internal RAS realignment).

  • Multi-file numbered images: Multiple fixes to cases where more than one image axis is concatenated / split using the square-bracket notation.

  • Progress bars in binaries (2): Restrict construction of progress bars to the main thread. This should prevent various race conditions when performing multi-threaded operations; particularly operations in mrview that take sufficient time for a progress bar to appear.

  • Terminal warnings: Prevent erroneous command-line usage warnings due to presence of piped images.

  • Track files: Prevent erroneous duplication of ROI entries within track file headers.

Package management

Python scripts

  • FSL: Change FSL command detection. Previously, the MRtrix3 Python API was erroneously giving precedence to executables present in PATH beginning with “fsl-5.0-”, which should in fact ideally not be in PATH, and in some instances do not execute correctly; this change ensures that executables corresponding to a properly-installed FSL are instead given precedence.

  • Header key-values: Handle import of image headers when key-value entries in the header contain exotic characters. (Thanks for report @lrq3000)

  • Number of threads: Ensure that if -nthreads 0 is specified, this is appropriately propagated to any underlying MRtrix3 commands executed. (Thanks for report @kjamison & @ThijsDhollander)

  • Progress bars: Fix glitch in progress bar completion messages. (Thanks for report @gfreches)

configure

connectome2tck

  • Non-valid exemplars: Fix to -exemplars output for label images with absent parcels. (Thanks for report @JeroenBlommaert)

  • Non-visited nodes: Fix potential memory bug when one or more nodes within the parcellation image did not have any streamlines assigned to them, and therefore did not appear in the input assignments file (bug only triggered if it was those nodes with the greatest index value that were not visited). (Thanks for report @SyamGadde)

connectomestats

  • Standard deviations: Fix output of per-edge standard deviations (only the standard deviation of edge (1,2) was being written).

dcminfo

dirflip

  • Interface: Fix parsing of -permutations command-line option.

dirmerge

dirsplit

  • Interface: Fix parsing of -permutations command-line option.

dwi2mask

  • Cleaning filter: Fix operation of mask cleaning filter specifically for data where voxels are filled with NaN values.

  • -fslgrad: Fix command failure when using this specific command-line option.

dwi2response

  • Gradient table: Fix for when no gradient table is present in the input image header, and -mask option is not used.

dwiextract

  • Phase encoding: Fix to selection of DWI volumes based on phase encoding information where there are volumes with the same phase encoding direction but different readout times. (Thanks for report @treanus)

dwifslpreproc

  • FSL6 topup: Provide compatibility with FSL6.0.0 when performing explicit volume recombination due to erroneous topup output (subsequently fixed in 6.0.1). (Thanks for report @Ingomar_Gutmann)

  • -eddyqc_all: Fix operation of this option for FSL version 6.0.0. (Thanks for report @araikes)

  • -se_epi: Fixes case where SE-EPI volumes are defined on a different image grid to the DWIs, and do not internally possess any phase-encoding contrast. (Thanks for report @araikes)

dwigradcheck

fixel2voxel

  • Output dimensionality: Fix voxel-wise metric outputs erroneously being 4D images with 2 volumes rather than 3D images.

fixelcfestats

  • Erroneous warnings: Remove erroneous warning about voxels sizes and transforms when -mask option is not used.

label2mesh

  • Absent parcels: Properly ignore index values that are less than the maximum in the image, but for which no voxels are present. (Thanks for report @paul-triebkorn)

labelconvert

  • HCPMMP1 files: Fix some label names in HCPMMP1 parcellation lookup table files (the two files provided were previously self-consistent with one another, but inconsistent with the source parcellation data). (Thanks for report @paul-triebkorn)

mrcat

  • Single-voxel image: Fix segmentation fault in the rare instance where the input images consist of one voxel each.

mrclusterstats

  • Mask: Make sure template mask is 3D (command would hang if mask was erroneously 4D).

mrconvert

  • -axes: Fix interpretation of negative axis indices in the specification of the new axes, which is required to insert additional axes (e.g. going from dimensions [ X Y Z 3 ] to [ X Y Z 1 3 ]).

  • -json_export: Fix to the export of phase encoding information when the output image was in NIfTI format, and the output image was not natively axially aligned.

mrdegibbs

  • -axes: Validate user input to this command-line option.

mrmetric

mrpad

  • Header transform: Fix bug in generation of output image transform in cases where padding in 2nd or 3rd axis did not match that of the 1st.

mrtransform

  • Erroneous warning: Fix erroneous warning message in cases where no linear transform is specified. (Thanks for report @roeysc)

mrview

population_template

  • -continue: Fix error when using -continue option due to attempting to delete a non-existent file. (Thanks for report @anege)

tckdfc

  • -static: Fix absence of output image data when this command-line option was used.

tckedit

  • -inverse and -mask: Fix operation of command specifically when these two options are used in conjunction: Only streamline vertices outside the mask will be written to the output file.

tckgen

  • Downsampler: Fix crashes in rare cases, due to attempting to downsample a track that contains a single vertex. This was likely only applicable when utilised within the dwigradcheck command: streamlines tractography typically incorporates a non-zero minimum length criterion, but such is explicitly disabled in that particular script.

  • Windows crash: Remove source of command sporadically crashing when running on Windows.

tcksift

  • Sorting: Fix to sorting algorithm for tractograms with very few streamlines.

tckstats

  • -explicit: Ensure that all inter-vertex distances are indeed explicitly calculated, in order to properly handle nonlinearly-transformed streamlines. (Thanks for report @cbajada)

transformcalc

warpcorrect

  • NaN handling: Small fix when using NaN as the out-of-bounds marker.