Differences between revisions 12 and 25 (spanning 13 versions)
Revision 12 as of 2016-07-28 11:38:00
Size: 2718
Editor: JuanIglesias
Comment:
Revision 25 as of 2021-03-06 11:56:05
Size: 2407
Editor: AndrewHoopes
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
The [[https://surfer.nmr.mgh.harvard.edu/fswiki/BrainstemSubstructures|brainstem]] and [[https://surfer.nmr.mgh.harvard.edu/fswiki/HippocampalSubfields|hippocampal subfield]] modules in FreeSurfer 6.0 require the Matlab R2012 runtime. This runtime is free, and therefore '''NO MATLAB LICENSES ARE REQUIRED TO USE THESE PACKAGES'''. A few freesurfer modules, like fsfast and the subfield/nuclei segmentation tools, require the matlab runtime package (MCR). The MCR allows users to run distributed matlab-compiled programs '''without paying for a matlab license'''. The freesurfer command `fs_install_mcr` can be used to install this package. MCR version requirements are as follows.
Line 5: Line 5:
The runtime is installed as follows (note that some commands might require root permissions, if FreeSurfer 6.0 is installed in a system directory such as /usr/local/): '''To download the runtime for FS version 7''', please install MCR 8.4 (R2014b) by running:
Line 7: Line 7:
 * First, we will define the environment variable FREESURFER_HOME, which points at the FreeSurfer 6.0 directory. For example, in tcsh or csh:
Line 9: Line 8:
setenv FREESURFER_HOME /usr/local/freesurfer
}}}
Or, in bash:
{{{
export FREESURFER_HOME=/usr/local/freesurfer
fs_install_mcr R2014b
Line 16: Line 11:
 * Second, change directory to your FreeSurfer 6.0 directory: '''To download the runtime for FS version 6''', please install MCR 8.0 (R2012b) by running:
Line 18: Line 14:
cd $FREESURFER_HOME fs_install_mcr R2012b
Line 21: Line 17:
 * Next, download the runtime as follows: '''NOTE:''' If the `fs_install_mcr` script is not available in your freesurfer distribution, it can be downloaded by running the following command:
Line 23: Line 19:
In linux:
Line 25: Line 20:
curl "http://surfer.nmr.mgh.harvard.edu/fswiki/MatlabRuntime?action=AttachFile&do=get&target=runtime2012bLinux.tar.gz" -o "runtime2012b.tar.gz" cd $FREESURFER_HOME/bin && curl https://raw.githubusercontent.com/freesurfer/freesurfer/dev/scripts/fs_install_mcr -o fs_install_mcr && chmod +x fs_install_mcr
Line 28: Line 23:
In MAC: === If the programs produce missing library errors... ===

If any of the matlab binaries error due to missing system libraries, try ensuring that the following are installed on your system.

 * on ubuntu: {{{apt-get -y install libxt-dev libxext-dev libncurses5}}}
 * on centos: {{{yum -y install libXt libXext ncurses-compat-libs}}}

Or, if you receive subfield errors (in freesurfer 7) indicating `GLIBC_PRIVATE not defined`, try updating a few files with the following command. This will be fixed in the 7.1.1 patch release.
Line 30: Line 33:
curl "http://surfer.nmr.mgh.harvard.edu/fswiki/MatlabRuntime?action=AttachFile&do=get&target=runtime2012bMAC.tar.gz" -o "runtime2012b.tar.gz" bash <(curl -s https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/patches/fs_update_7.1_subfield_scripts.sh)
Line 33: Line 36:
 * Finally, unpack it with: === If you already have matlab installed... ===

If you already have matlab 2012b/2014b installed on your system, you do not need to install the runtime. Keep in mind that the matlab version must match the freesurfer requirement defined above. All you need to do is create a symbolic link named MCRv80/MCRv84 in your FreeSurfer directory that points to the main matlab install directory. The matlab root directory can be easily obtained by executing the matlab command {{{matlabroot}}}. It typically looks like {{{/Applications/MATLAB_R2014b.app}}} in OSX and {{{/usr/local/matlab/8.4}}} in Linux. For example, if you already have matlab 2014b, just run the following to make it visible to freesurfer:
Line 35: Line 41:
tar xvf runtime2012b.tar.gz cd <FreeSurferRootDirectory> && ln -s <MatlabRootDirectory> MCRv84
Line 37: Line 43:

You are now done! The brainstem and/or hippocampal subfield modules should now work fine. If that is the case, you can delete the packed runtime file with:
{{{
rm $FREESURFER_HOME/runtime2012b.tar.gz
}}}


=== Frequently asked questions (FAQ) ===

 * '''I already have Matlab 2012b installed on my system. Do I really need to download and install the runtime?'''

If you already have Matlab 2012b installed on your system, there is no need to dowload the runtime. '''Note that it has to be this specific version of Matlab'''; if it is not 2012b, you need to download the runtime as described above. If it is indeed 2012b, all you need to do is to create a symbolic link named MCVv80 in your FreeSurfer directory that points to the main Matlab directory.

First, we will define the environment variable FREESURFER_HOME. In tcsh or csh:
{{{
setenv FREESURFER_HOME /usr/local/freesurfer
}}}
Or, in bash:
{{{
export FREESURFER_HOME=/usr/local/freesurfer
}}}

Second, change directory to your FreeSurfer 6.0 directory:
{{{
cd $FREESURFER_HOME
}}}

Finally, create the symbolic link:
{{{
ln -s <MatlabRootDirectory> ./MCRv80
}}}
where the matlab root directory can be easily obtained by executing the command "matlabroot" in Matlab R2012b. It typically looks like "/Applications/MATLAB_R2012b.app/" in MAC, and "/usr/local/matlab/8.0" in Linux.

Matlab Runtime

A few freesurfer modules, like fsfast and the subfield/nuclei segmentation tools, require the matlab runtime package (MCR). The MCR allows users to run distributed matlab-compiled programs without paying for a matlab license. The freesurfer command fs_install_mcr can be used to install this package. MCR version requirements are as follows.

To download the runtime for FS version 7, please install MCR 8.4 (R2014b) by running:

fs_install_mcr R2014b

To download the runtime for FS version 6, please install MCR 8.0 (R2012b) by running:

fs_install_mcr R2012b

NOTE: If the fs_install_mcr script is not available in your freesurfer distribution, it can be downloaded by running the following command:

cd $FREESURFER_HOME/bin && curl https://raw.githubusercontent.com/freesurfer/freesurfer/dev/scripts/fs_install_mcr -o fs_install_mcr && chmod +x fs_install_mcr

If the programs produce missing library errors...

If any of the matlab binaries error due to missing system libraries, try ensuring that the following are installed on your system.

  • on ubuntu: apt-get -y install libxt-dev libxext-dev libncurses5

  • on centos: yum -y install libXt libXext ncurses-compat-libs

Or, if you receive subfield errors (in freesurfer 7) indicating GLIBC_PRIVATE not defined, try updating a few files with the following command. This will be fixed in the 7.1.1 patch release.

bash <(curl -s https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/patches/fs_update_7.1_subfield_scripts.sh)

If you already have matlab installed...

If you already have matlab 2012b/2014b installed on your system, you do not need to install the runtime. Keep in mind that the matlab version must match the freesurfer requirement defined above. All you need to do is create a symbolic link named MCRv80/MCRv84 in your FreeSurfer directory that points to the main matlab install directory. The matlab root directory can be easily obtained by executing the matlab command matlabroot. It typically looks like /Applications/MATLAB_R2014b.app in OSX and /usr/local/matlab/8.4 in Linux. For example, if you already have matlab 2014b, just run the following to make it visible to freesurfer:

cd <FreeSurferRootDirectory> && ln -s <MatlabRootDirectory> MCRv84

MatlabRuntime (last edited 2021-03-06 11:56:05 by AndrewHoopes)