Ubuntu 20.04, 22.04 に HCP Pipeline の環境を設定する方法

しばらく前に、Ubuntu 18.04用にHCP Pipelineの環境を設定する方法を記載しましたが、いくつかアップデートもあるので、Ubuntu 20.04用以降でも設定できるようにします。

*2023/10/08追記: Neurodebianの設定についてうまく動かないミスがありましたので修正しました。神谷先生、ご指摘ありがとうございました。

*2024/03/29追記: Ubuntu 22.04でFreeSurferのスクリプトがダウンロードできない不具合を解消しました。金子先生、ご指摘ありがとうございました。

主要な解析ソフトのインストール

以下のソフトウェアをインストールする必要があります。
– HCP pipelines
– Workbench
– FreeSurfer  https://surfer.nmr.mgh.harvard.edu/fswiki
– FSL https://fsl.fmrib.ox.ac.uk/fsl/fslwiki
– MSM (HCP用)バイナリファイル
– R
– FIX
– Gradunwarp (Optional)

以下、各ソフトのインストールについて解説します。この通りにしていけば、設定できます。

HCP Pipeline

  • Human connectome projectにおけるMRI解析処理で使用されているスクリプト集です。HCP Pipelineの公式サイトには、~/projects の下に置くことを前提に書いてあります。今後のアップデートを考えると、若干ディスク容量を浪費しますが、git clone したものを、コピーするのが結果的には楽かなと思いました。また、Exampleにあるスクリプトは、~/projects/Pipelines なので、~/git の下にクローンを起き、そしてそれを、~/projects の下に Pipelines という名前でコピーします。
mkdir ~/git ~/projects
cd ~/git
git clone https://github.com/Washington-University/HCPpipelines.git
cp -r HCPpipelines ~/projects/Pipelines

Connectome Workbench

  • HCPの基幹となるソフトウェアです。Ubuntu用にNeurodebianが準備しているのでそれを使うのがとても便利です。(Lin4Neuroにはセットアップ済みです)

  • まだNeurodebianの設定をしていない場合、以下でセットアップします。

cat << EOS > neurodebian.sources.list
deb [arch=amd64 signed-by=/usr/share/keyrings/neurodebian.gpg] http://neuroimaging.sakura.ne.jp/neurodebian data main contrib non-free
deb [arch=amd64 signed-by=/usr/share/keyrings/neurodebian.gpg] http://neuroimaging.sakura.ne.jp/neurodebian $(lsb_release -cs) main contrib non-free
EOS
sudo mv neurodebian.sources.list /etc/apt/sources.list.d/

wget -O- http://neuro.debian.net/_static/neuro.debian.net.asc |\
  sudo gpg --dearmor --yes --output /usr/share/keyrings/neurodebian.gpg

sudo apt update
  • Neurodebianの設定が終わっている場合は、以下でConnectome workbenchをインストールします。
sudo apt install connectome-workbench

FreeSurfer

  • FreeSurferのインストールに特化したスクリプトを私が準備してあるので、それを走らせるのが簡単です。
  • 以下のリンクから、ライセンスを入手し、license.txt を ~/Downloads に保存します。
    https://surfer.nmr.mgh.harvard.edu/registration.html
  • その後、以下で必要なパッケージとFreeSurferのインストールとセッティングが行われます。
  • FreeSurferは7.xがリリースされていますが、現時点では、FreeSurfer 6.0.xを使用することが勧められています。
  • もし、VirtualBox内のubuntuに対して設定するのならば、VirtualBoxにあわせた修正をしますかという質問にYesと答えてください。recon-allがVirtualBoxの共有フォルダでは動かない問題を解決してあります。
  • スクリプトが走り終わった後、新たにターミナルを起動することで、FreeSurferは使用可能になります。

  • Ubuntu 20.04の場合

    cd ~/Downloads
    wget https://gitlab.com/kytk/lin4neuro-focal/-/raw/master/installer-scripts/freesurfer6.0.1_installer.sh
    chmod 755 freesurfer6.0.1_installer.sh
    ./freesurfer6.0.1_installer.sh
    

  • Ubuntu 22.04の場合

    cd ~/Downloads
    wget https://gitlab.com/kytk/lin4neuro-jammy/-/raw/main/installer-scripts/freesurfer6.0.1_installer.sh
    chmod 755 freesurfer6.0.1_installer.sh
    ./freesurfer6.0.1_installer.sh
    

FSL

  • fslinstaller.py を入手することで、あとはほぼ自動でインストールおよび設定が完了します。
  • 初回は、以下のリンクからregistrationを行います。(fslinstaller.pyは、下に示す方法で入手できます)
    https://fsl.fmrib.ox.ac.uk/fsldownloads_registration
  • 現在入手できるfslinstaller.pyはpython3で動くようになりました。

cd ~/Downloads
curl -O https://fsl.fmrib.ox.ac.uk/fsldownloads/fslinstaller.py
python fslinstaller.py
  • インストール完了後、ログアウトし、再度ログインします。

MSM (Multimodal Surface Matching)

  • FreeSurfer等のCortical Surface registration を補助するツールです。
  • Fuctional MRIやDiffusionなどの解析結果をSurfaceにMappingする際に個人の脳溝・脳回特徴をより反映させてくれる為、疾患解析等での精度があがるようです。
  • FSLに搭載されているものをより新しいものに置き換えます。
cd $HOME/Downloads
wget https://github.com/ecr05/MSM_HOCR/releases/download/v3.0FSL/msm_ubuntu_v3
sudo cp msm_ubuntu_v3 /usr/local/fsl/bin
cd /usr/local/fsl/bin
sudo mv msm msm.orig
sudo mv msm_ubuntu_v3 msm
sudo chmod 755 msm

R

  • FIXは3.4以上が必要となります。Ubuntu 20.04のデフォルトは3.6、Ubuntu 22.04のデフォルトは4.1.2です。今後、Rは4.0以降が主流になると考え、Rの公式サイト の方法に従いR 4.x をインストールします。

<h1>前のバージョンを削除</h1>

sudo apt purge r-base

<h1>aptのアップデート</h1>

sudo apt update

<h1>必要なソフトウェアのインストール</h1>

sudo apt install --no-install-recommends software-properties-common dirmngr

<h1>署名の追加</h1>

<h1>To verify key, run gpg --show-keys /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc</h1>

<h1>Fingerprint: E298A3A825C0D65DFD57CBB651716619E084DAB9</h1>

wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc

<h1>R 4.0 リポジトリをCRANから追加</h1>

sudo add-apt-repository &quot;deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/&quot;
sudo apt update

<h1>Rをインストール</h1>

sudo apt install -y --no-install-recommends r-base
  • 様々なツールをユーザー権限で入れられるように、ホームディレクトリの下にRというディレクトリを作成し、そこに入れるようにします。環境変数R_LIBSを設定するとそこにインストールされます。便利です。
mkdir ~/R
echo '#R' >> ~/.bash_aliases
echo 'export R_LIBS=$HOME/R' >> ~/.bash_aliases
source ~/.bashrc
  • Fixは特定のバージョンのパッケージをインストールする必要があるため、devtoolsをいれる必要があります。そのために、以下のパッケージをまずインストールします。このリストは、Rで writeLines(pak::pkg_system_requirements("devtools", "ubuntu", "20.04")) をタイプすることによりわかりました。また、gfortranもパッケージのインストールの際に必要なことがわかったので入れておきます。

<h1>devtools に必要なパッケージのインストール</h1>

sudo apt install -y libfreetype6-dev libfribidi-dev libharfbuzz-dev git libxml2-dev \
 make libfontconfig1-dev libicu-dev pandoc zlib1g-dev libssl-dev libjpeg-dev libpng-dev \
 libtiff-dev libgit2-dev libcurl4-openssl-dev gfortran
  • FIXに必要なRパッケージをインストールします。
  • 以下、Rを起動していれるのではなく、必要なものをスクリプト化します。
  • (10月19日追記:upgrade=”never”を追記することによりバージョンをしっかり固定できるので、coinとpartyも同時に入れられることがわかりました)
cd ~
cat << EOS > FIX_Rpackages.R
install.packages("devtools")
require(devtools)
install_version("kernlab", version="0.9-24", upgrade="never", lib="$HOME/R")
install_version("caTools", version="1.16", upgrade="never", lib="$HOME/R")
install_version("ROCR", version="1.0-7", upgrade="never", lib="$HOME/R")
install_version("class", version="7.3-14", upgrade="never", lib="$HOME/R")
install_version("mvtnorm", version="1.0-8", upgrade="never", lib="$HOME/R")
install_version("multcomp", version="1.4-8", upgrade="never", lib="$HOME/R")
install_version("e1071", version="1.6-7", upgrade="never", lib="$HOME/R")
install_version("randomForest", version="4.6-12", upgrade="never", lib="$HOME/R")
install_version("coin", version="1.2-2", upgrade="never", lib="$HOME/R")
install_version("party", version="1.0-25", upgrade="never", lib="$HOME/R")
EOS
  • 以下で一気にkernlab, caTools, ROCR, class, mvtnorm, multcomp, e1071, randomForest, coin, party をインストールできます。
Rscript FIX_Rpackages.R
rm FIX_Rpackages.R

FIX

  • FIXそのもののダウンロードおよびインストールは以下で行います。
cd ~/Downloads
wget http://www.fmrib.ox.ac.uk/~steve/ftp/fix.tar.gz
tar xvf fix.tar.gz
sudo mv fix /usr/local
  • 次に、Matlab Compile Runtime (MCR) をインストールします。インストール場所は、/usr/local/MATLAB/MCR/v93としました。
/usr/local/fix/which_mcr.sh
#Download MATLAB Compiler Runtime v93 from https://www.mathworks.com/products/compiler/matlab-runtime.html.
#今の場合、v93、すなわち 9.3 (R2017a) をダウンロードすればよいことがわかる
#2022年10月13日現在では、以下
cd ~/Downloads
curl -O https://ssd.mathworks.com/supportfiles/downloads/R2017b/deployment_files/R2017b/installers/glnxa64/MCR_R2017b_glnxa64_installer.zip
mkdir mcr
mv MCR_R2017b_glnxa64_installer.zip mcr
cd mcr
unzip MCR_R2017b_glnxa64_installer.zip
sudo ./install -mode silent -agreeToLicense yes \
    -destinationFolder /usr/local/MATLAB/MCR/v93
  • FIXの設定ファイルの編集
    • geditなどのテキストエディタで /usr/local/fix/settings.sh を 開きます
sudo gedit /usr/local/fix/settings.sh

以下の部分を編集します。

46行目あたり
FSL_FIX_MCRROOT=”/usr/local/MATLAB/MCR”

165行目あたり
FSL_FIX_R_CMD=”/usr/bin/R”

187行目あたり
FSL_FIX_CIFTIRW=”~/projects/Pipelines/global/matlab/@gifti/gifti-1.6″

193行目あたり
#WBENCH=”/opt/fmrib/workbench” ←コメントアウトします

197行目あたり
FSL_FIX_WBC=”/usr/bin/wb_command”

Gradunwarp (optional)

  • 装置による歪み補正を行うpython scriptです。
    • Siemens()とGE()しか対応していない+撮像PCの中にあるcoeff.gradファイルを取得する必要があるため、対応不可ならインストールしなくともOKです。
cd ~/git
git clone https://github.com/Washington-University/gradunwarp.git
cd gradunwarp

<h1>pip を利用してGradunwapに必要なpython packagesをインストール</h1>

pip3 install numpy scipy pydicom nose sphinx nibabel
python3 setup.py install --prefix=~/.local/bin

以上です。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください