Installation of MRtrix3Tissue

I am trying to install MRTrix3tissue for using ss3t-csd-beta1 on my single-shell MRI data. I already have mrtrix3-3.0.4 installed along with fsl and ANTs. I have followed the installation procedure as given in the original website:

git clone https://github.com/3Tissue/MRtrix3Tissue.git MRtrix3Tissue`
cd MRtrix3Tissue/
./configure
./build

This is the output of the ./configure:

bvrk@bvrk-ws1:~/MRtrix3Tissue$ ./configure

MRtrix3Tissue build type requested: release version

MRtrix3Tissue is a fork of the MRtrix3 project

Detecting OS: linux
Looking for compiler [clang++]: Ubuntu clang version 14.0.0-1ubuntu1.1
Checking for C++11 compliance: ok
Checking shared library generation: ok
Detecting pointer size: 64 bit
Detecting byte order: little-endian
Checking for variable-length array support: ok
Checking for non-POD variable-length array support: ok
Checking for ::max_align_t: 16 bytes
Checking for std::max_align_t: 16 bytes
Checking for Eigen3 library: 3.4.0
Checking for zlib compression library: 1.2.11
Checking for "JSON for Modern C++" requirements: ok
Checking for TIFF library: not found - TIFF support disabled
Checking for PNG library: Header: 1.6.37; library: 1.6.37
Checking for FFTW library: fftw-3.3.8-sse2-avx
Checking for Qt moc: moc (version 5.15.8)
Checking for Qt qmake: qmake (version 5.15.8)
Checking for Qt rcc: rcc (version 5.15.8)
Checking for Qt: 5.15.8

writing configuration to file './config': ok

However, when I run ./build, I am getting the following error:

bvrk@bvrk-ws1:~/MRtrix3Tissue$ ./build
(  3/506) [CC] tmp/core/formats/nifti2.o
(  1/506) [CC] tmp/core/file/ofstream.o
(  2/506) [CC] tmp/core/image_io/fetch_store.o
(  4/506) [CC] tmp/core/file/png.o
(  5/506) [CC] tmp/core/file/dicom/dict.o
(  6/506) [CC] tmp/core/formats/mrtrix.o
(  7/506) [CC] tmp/core/formats/xds.o
(  8/506) [CC] tmp/core/image_io/base.o
(  9/506) [CC] tmp/core/mrtrix.o
( 10/506) [CC] tmp/core/formats/nifti1.o
( 12/506) [CC] tmp/core/dwi/gradient.o
( 11/506) [CC] tmp/core/math/stats/permutation.o

ERROR: (  9/506) [CC] tmp/core/mrtrix.o

clang++ -c -std=c++11 -DMRTRIX_BUILD_TYPE="release version" -pthread -fPIC -DMRTRIX_WORD64 -idirafter /home/bvrk/fsl/include -DMRTRIX_PNG_SUPPORT -idirafter /home/bvrk/fsl/include/libpng16 -idirafter /home/bvrk/fsl/include -DEIGEN_FFTW_DEFAULT -idirafter /home/bvrk/fsl/include -Wall -O3 -DNDEBUG -Isrc -I./core -Icmd -idirafter /home/bvrk/fsl/include/eigen3 -DEIGEN_DONT_PARALLELIZE core/mrtrix.cpp -o tmp/core/mrtrix.o

failed with output

In file included from core/mrtrix.cpp:17:
In file included from ./core/mrtrix.h:37:
./core/types.h:326:9: error: redefinition of 'Vector3' as different kind of symbol
  using Vector3 = Matrix<MR::default_type, 3, 1>;
        ^
/home/bvrk/fsl/include/eigen3/Eigen/src/Core/Matrix.h:541:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(3, 3)
^
/home/bvrk/fsl/include/eigen3/Eigen/src/Core/Matrix.h:523:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
In file included from core/mrtrix.cpp:17:
In file included from ./core/mrtrix.h:37:
./core/types.h:327:9: error: redefinition of 'Vector4' as different kind of symbol
  using Vector4 = Matrix<MR::default_type, 4, 1>;
        ^
/home/bvrk/fsl/include/eigen3/Eigen/src/Core/Matrix.h:542:1: note: previous definition is here
EIGEN_MAKE_TYPEDEFS(4, 4)
^
/home/bvrk/fsl/include/eigen3/Eigen/src/Core/Matrix.h:523:67: note: expanded from macro 'EIGEN_MAKE_TYPEDEFS'
template <typename Type>                                          \
                                                                  ^
2 errors generated

and the list goes on. I am unable to resolve this issue. How to fix this problem ? Any help will be useful.

Additional info: this is my .bashrc file configuration:

# Mrtrix setup
MRTRIXDIR=/home/bvrk/mrtrix3-3.0.4/bin
export PATH="${MRTRIXDIR}:$PATH"

# FSL setup
export FSLDIR=~/fsl
source ${FSLDIR}/etc/fslconf/fsl.sh
export PATH=${FSLDIR}/bin:$PATH

ANTSDIR=/home/bvrk/bin/ants
#export PATH=${ANTSDIR}:${PATH}
PATH=${ANTSDIR}/ANTS-build/Examples:${PATH}
export ANTSDIR PATH

Any help will be greatly appreciated. Regards

This is a fork of MRtrix that is not maintained by the MRtrix developers. You should seek advice at Issues · 3Tissue/MRtrix3Tissue · GitHub

The reason you are seeing this error is because the fork is based on an outdated MRtrix version that does not support Eigen 3.4: Eigen 3.4 compatibility by jdtournier · Pull Request #2368 · MRtrix3/mrtrix3 · GitHub

Thank you for your response. Downgrading the eigen from 3.4 to 3.3.9 solved the issue. Much appreciated. Regards.

Hello, may i ask you how did you downgrade eigen to older versions? Do i need to install the older package and delete the one preinstalled on my computer?

Hello,
This is the link for eigen3.3.9: https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.bz2

After downloading, run the following:

$ tar -xvjf eigen-3.3.9.tar.bz2
$ EIGEN_CFLAGS="-isystem /home/bvrk/eigen-3.3.9"

Just change the path according to your system. Hope that helps.

1 Like