Ubuntu 18.04 に HCP Pipeline の環境を設定する方法

HCP Pipelineを準備するのは簡単ではありませんが、東京大学小池研の植松明子さんとディスカッションしている中で、Ubuntu 18.04にHCP Pipelineを設定する方法を確立できたのでご紹介します。植松さんのinputに感謝申し上げます。

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

以下のソフトウェアをインストールする必要があります。
– 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解析処理で使用されているスクリプト集です。
cd /usr/local
sudo git clone https://github.com/Washington-University/HCPpipelines.git

Connectome Workbench

  • HCPの基幹となるソフトウェアです。
cd ~/Downloads
curl -O https://www.humanconnectome.org/storage/app/media/workbench/workbench-linux64-v1.4.2.zip
unzip workbench-linux64-v1.4.2.zip
find workbench/ -type d -exec chmod 755 {} \;
find workbench/ -type f -exec chmod 644 {} \;
find workbench/bin_linux64 -type f -exec chmod 755 {} \;
find workbench/exe_linux64 -type f -exec chmod 755 {} \;
sudo mv workbench /usr/local
    
#PATH settins for workbench
cat << 'EOS' >> ~/.bash_aliases
    
#workbench
export PATH=$PATH:/usr/local/workbench/bin_linux64
EOS

FreeSurfer

  • FreeSurferのインストールに特化したスクリプトを私が準備してあるので、それを走らせるのが簡単です。
  • 以下のリンクから、ライセンスを入手し、license.txt を ~/Downloads に保存します。
    https://surfer.nmr.mgh.harvard.edu/registration.html
  • その後、以下で必要なパッケージとFreeSurferのインストールとセッティングが行われます。
  • FreeSurferは7.1.1がリリースされていますが、現時点では、FreeSurfer 6.0.xを使用することが勧められています。
cd ~/Downloads
wget https://github.com/kytk/lin4neuro-bionic/raw/master/installer-scripts/freesurfer6.0.1_installer_bionic.sh
chmod 755 freesurfer6.0.1_installer_bionic.sh
./freesurfer6.0.1_installer_bionic.sh

  • もし、VirtualBox内のubuntuに対して設定するのならば、VirtualBoxにあわせた修正をしますかという質問にYesと答えてください。recon-allがVirtualBoxでは動かない問題を解決してあります。
  • スクリプトが走り終わった後、新たにターミナルを起動することで、FreeSurferは使用可能になります。

FSL

  • fslinstaller.py を入手することで、あとはほぼ自動でインストールおよび設定が完了します。
  • 初回は、以下のリンクからregistrationを行います。(fslinstaller.pyは、下に示す方法で入手できます)
    https://fsl.fmrib.ox.ac.uk/fsldownloads_registration
cd ~/Downloads
curl -O https://fsl.fmrib.ox.ac.uk/fsldownloads/fslinstaller.py
python2.7 fslinstaller.py

  • インストール完了後、ログアウトし、再度ログインします。

MSM (Multimodal Surface Matching)

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

R

  • FIXは3.4以上が必要となります。Ubuntu 18.04のデフォルトは3.4ですが、今後、3.6以降が必要になるパッケージも多いため、3.6をインストールします。
# 前のバージョンを削除
sudo apt-get purge r-base
    
# keyを追加
sudo apt-key adv --keyserver keyserver.ubuntu.com \
     --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
    
#cloud.r-project.org のリポジトリを追加
sudo add-apt-repository \
    'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
    
sudo apt-get -y update
sudo apt-get install r-base

  • 様々なツールをユーザー権限で入れられるように、ホームディレクトリの下にRというディレクトリを作成し、そこに入れるようにします。これはAFNIでもとられている方法ですが便利です。
mkdir ~/R
echo 'export R_LIBS=$HOME/R' >> ~/.bash_aliases
source ~/.bashrc

  • Fixは特定のバージョンのパッケージをインストールする必要があるため、devtoolsをいれる必要があります。そのために、以下のパッケージをまずインストールします。
# devtools に必要なパッケージのインストール
sudo apt-get install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev

  • FIXに必要なRパッケージをインストールします。
  • 以下、Rを起動していれるのではなく、必要なものをスクリプト化します。
cd ~
cat << 'EOS' > FIX_Rpackages.R
install.packages("devtools")
require(devtools)
install_version("kernlab", version="0.9-24")
install_version("caTools", version="1.16")
install_version("ROCR", version="1.0-7")
install_version("class", version="7.3-14")
install_version("mvtnorm", version="1.0-8")
install_version("multcomp", version="1.4-8")
install_version("e1071", version="1.6-7")
install_version("randomForest", version="4.6-12")
EOS

  • 以下で一気にkernlab, caTools, ROCR, class, mvtnorm, multcomp, e1071, randomForest をインストールできます。
Rscript FIX_Rpackages.R
rm FIX_Rpackages.R

  • coin と party はRを起動していれた方がうまくいくので、Rからインストールします。そして、FIXのキモはこの2つのパッケージなので、ここは必ずバージョンを固定してください。
R #Rが起動する。以降はRでタイプする
require(devtools)
install_version("coin", version="1.2-2")
install_version("party", version="1.0-25")

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 Runtime をインストールします。which_mcr.shを実行することで、どのmcrをダウンロードすべきかわかります。
/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) をダウンロードすればよいことがわかる
#2020年8月9日現在では、以下
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

  • こうすると、GUIが起動します。基本、デフォルト通りでOKですが、インストール場所は、/usr/local/MATLAB/MCR としました。/usr/local/MATLAB/MCR/v93にインストールされることになります。

  • FIXの設定ファイルの編集

    • geditなどのテキストエディタで /usr/local/fix/setting.sh を 開きます
sudo gedit /usr/local/fix/setting.sh

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

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

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

187行目あたり
FSL_FIX_CIFTIRW=”/usr/local/HCPpipelines/global/matlab/gifti-1.6″

193行目あたり
WBENCH=”/usr/local/workbench”

Gradunwarp (optional)

  • 装置による歪み補正を行うpython scriptです。
    • Siemens()とGE()しか対応していない+撮像PCの中にあるcoeff.gradファイルを取得する必要があるため、対応不可ならインストールしなくともOKです。
cd
mkdir AnalysisTools
cd ~/AnalysisTools
git clone https://github.com/Washington-University/gradunwarp.git
cd gradunwarp
# pip を利用してGradunwapに必要なpython packagesをインストール
/usr/local/fsl/fslpython/bin/python -m pip install numpy scipy PyDICOM nose sphinx nibabel
sudo /usr/local/fsl/fslpython/bin/conda install -c anaconda numpy-devel
sudo /usr/local/fsl/fslpython/bin/python setup.py install

以上です。

Print Friendly, PDF & Email

5 thoughts on “Ubuntu 18.04 に HCP Pipeline の環境を設定する方法

  1. 根本先生
    広島大学の廣瀬と申します。
    Functional Connectivityの解析のために,Ubuntu18.04上でConnectome mapperを駆動させたいと考えております。
    2点ご教授頂けないでしょうか。私はLinuxの初学者ということもあり,極めて初歩的,あるいは的外れな質問でしたら申し訳ありません。

    1. 本記事の「MSM」について。
    2. 本記事でご解説くださっている「Pipeline」が,以下の記事の「Connectome mapper」とどのような関係にあるのか。
    https://www.nemotos.net/?p=706

    「1」について
    本記事の手順を上から順に進めて行き,MSMの部分で,
    sudo mv msm msm.org
    を実行しましたが,
    mv: ‘msm’ を stat できません: そのようなファイルやディレクトリはありません
    と返ってきました。
    ls -a で /usr/local/fsl/src/MSM にあるファイルを見てみたのですが,上記ファイルやディレクトリは含まれていないようでした。
    こちら,原因について何か思い当たることなどありましたら,ご教授頂けないでしょうか。
    (キャプチャ画像はとってあります)

    「2」について
    本記事の手順でUbuntu18.04にHCP Pipelineを構築したのち,以下の記事にある方法でConnectome mapperをインストールすれば,mapperが使用可能になる,ということなのでしょうか?
    https://www.nemotos.net/?p=706

    このようなお伺いをした背景には,以下のような経緯があります。
    実は,上記記事(p=706)のPDFに沿って,Ubuntu18.04にConnectome mapperをインストールしようとしたところ,あるライブラリにUbuntu18.04に対応したバージョンがなく,それ以上インストールが進められなくなりました。
    そのパッケージは,4~5ページ目の「3.6 Connectome mapper に必要なライブラリのインストール」の,「libblitz0-dev」です。
    以下のライブラリパッケージが置いてあるサイトを見るに,対応しているOSのバージョンは,
    xenial (16.04LTS) (devel),eoan (19.10) (libdevel),focal (20.04LTS) (libdevel),groovy (libdevel)
    とのことでした。
    https://packages.ubuntu.com/search?keywords=libblitz0-dev

    ならば,OSをeoanにアップグレードして試せば良いわけですが,さりとてOSのバージョンをコロコロ変えるのも不安…と考えていたところ,本記事を拝見し,「ひょっとしたら Ubuntu18.04にHCP Pipeline構築→Mapperインストール可能 だったりしないか?」と愚行しまして,質問させていただいた次第です。

    お忙しいところ大変恐縮ですが,ご教授頂けましたら幸いです。

    • 廣瀬先生

      ご質問ありがとうございます。

      libblitz0-devですが、ご指摘のように、Ubuntu 18.04版はリリースされていないので、
      この問題はなかなか難しいですね…。

      Connectome mapperですが、現在、Connectome mapper 3 というものが出ていますね。

      https://connectome-mapper-3.readthedocs.io/en/latest/installation.html

      connectome mapperは、先生のおっしゃるようにバージョンの影響が大きすぎてうまくいかないものがたくさんあったので、すみません、私はある時点から使っていません。
      今、ざっと見た所、connectome mapper 3は、dockerなど使っているので、必要なものをうまく包含した形で入手できるかと思います。(私自身、dockerにまだ慣れていなくてうまく使いこなせないところがたくさんあるのですが)

      一度、こちらをお試しになられてはいかがでしょうか。

      根本清貴

      • 根本先生

        早速のご回答に感謝申し上げます。

        Connectome mapper 3をお教えくださり,ありがとうございました。
        利用できるPCの都合もあり,CONNとの併用も考えておりますので,たいへん助かります。
        HCP Pipelineのほうも試してみます。

        私自身まだまだ不勉強であるため,色々と誤解のあったまま質問させていただくことになってしまったかと思われます。申し訳ありませんでした。

        改めまして,この度はご教授くださり,ありがとうございました。

        廣瀬健司

        • 廣瀬先生

          いえいえ、ここら辺はまだまだリソースが全然少ないですので、
          皆の情報を持ち寄ることが意味があると思います。

          今後ともどうぞよろしくお願いします。

          根本清貴

          • 根本先生

            おっしゃる通り,試行錯誤した結果のシェアが有効かつ必要な状況にあるように感じております。
            何か気づきなどありましたら,(迷惑にならない範囲で)シェアさせていただきます。

            こちらこそ,今後ともどうぞよろしくお願いいたします。

            廣瀬健司

コメントを残す

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