第1回国際脳MRI・臨床データ解析チュートリアル(2020年2月6日〜7日@東大駒場キャンパス)

2020年2月6・7日に、東京大学駒場キャンパスにおいて、「国際脳MRIプロトコルデータ(HCP data 含む)と精神疾患臨床データの前処理・解析」というテーマにおいて、脳MRI・臨床データ解析チュートリアルが開催されます。ついに日本でHCPデータの解析法などを学べる時が来ました。

主催の東京大学の小池先生から情報をいただきましたので、告知させていただきます。

関心ある方は、こちらをご確認ください。

私は講師としては参加しませんが、HCP readyのLin4Neuroを提供します。

2019年度第2回脳画像解析(FreeSurfer)勉強会(2020年1月12日開催)

2019年11月16日7時で定数に達しましたので、締め切りました。

2020年1月12日開催予定の『FreeSurfer勉強会』のご案内をいたします。
まい参加希望の方は、下記のフォームにて、お申し込みをしていただけますよう、お願い申し上げます。
FreeSurferの勉強会を開催します。
今回は、「FreeSurferでrecon-allはやってみた。でも、もう少し学んでみたい」方を対象にしたいと思います。
現時点では、内容は以下を予定しています。

9:00-15:00
– recon-allのステップの理解
– ROI解析
– 縦断解析
– TRACULA(予定です)

15:00-17:00
– スクリプト化演習

日時:2020年1月12日(日)9:00-17:00
場所:オフィス東京(東京駅八重洲口から徒歩5分)
費用:無料
定員:30名(先着順)
受講条件:
– これまでにFreeSurferの解析を一度はやったことがある方
– ご自身のPCを持ち込んで作業ができる方

Gridengine の Ubuntu 18.04LTS へのインストール方法

1. はじめに

FSLやそれを利用したHCPパイプラインでは、計算を高速化するためにCPUあるいはGPUを介した並列分散処理を行います。CPUの並列分散化には、Sun Microsystemsが開発していたオープンソースのSun Grid Engine(SGE)が使われます。しかし、同社は2010年にOracleが買収し、ソースコードがクローズドになってしまいました(現在はUnivaが引き継いでいますが、これもクローズドです)。これを受けて、リバプール大のグループがSun Grid Engineのオープンソースの最終版である6.2u5をベースに、オープンソースでの開発を継続し、Son of Grid Engineとして公開しています。(https://arc.liv.ac.uk/trac/SGE/wiki )しかし、Son of Grid Engineも2016年を最後に開発が停止しています。一方、Debian/Ubuntu系では、”gridengine” として同様の試みがなされてきており、現在も開発が継続されています。そこで、Ubuntu18.04LTSへのgridengineのインストール方法について紹介します。なお、本稿は京都大学精神科の宮田淳先生が作成した「Son of Grid EngineのUbuntu18.04LTSへのインストール方法」をベースに、筑波大学精神科の根本清貴が改変したものです。この場を借りて宮田淳先生に御礼申し上げます。なお根本は(もちろん宮田先生も)本マニュアルの内容に関して一切の責任を負いません。あくまで自己責任でこのマニュアルをご使用下さい。

続きを読む

Son of Grid EngineのUbuntu 18.04 LTS / RHEL7 / CentOS7 へのインストール方法

FSLやそれを利用したHCPパイプラインでは、計算を高速化するためにCPUあるいはGPUを利用した介した並列分散処理を行います。CPU の並列分散化には、Sun Microsystems が開発していたオープンソースの Sun Grid Engine(SGE)が使われます。しかし同社は2010年にOracle買収し、ソースコードがクローズドになってしまいました。

これを受けて、リバプール大のグループがSun Grid Engine のオープンソースの最終版である 6.2u5 を利用したベースに、オープンソースでの開発を継続し、Son of Grid Engine として公開しています。Son of Grid Engine も SGE と呼ばれています。
https://arc.liv.ac.uk/trac/SGE/wiki

対応OSはLinuxのみで、Debian/Ubuntu系、RedHat/CentOS系があります。

インストールにはいろいろ工夫が必要ですが、このたび、京都大学の宮田淳先生がそのインストールマニュアルを作成してくださいました。

宮田先生のご厚意で公開をご快諾いただきましたので、公開します。

Son of Grid Engine の Ubuntu 18.04LTS へのインストール方法

Son of Grid Engine の CentOS7 へのインストール方法

2019年度第1回脳画像解析勉強会(2019年12月1日開催)

※満席になりましたので、申し込みを締め切らせていただきました。

これまでに脳画像解析勉強会を開催してまいりましたが、2019年度も2回開催予定です。
今回は、「SPM-VBMの基本は理解できた、その先をもう少し知りたい」方を対象にしたいと思います。

日時:2019年12月1日(日)9:00-17:00
場所:オフィス東京(東京駅八重洲口から徒歩5分)
費用:無料
定員:30名(先着順)

受講条件
– Matlabを既にお持ちであること
– 「すぐできるVBM」の内容は理解されていること

勉強会の内容(予定)
9:00-15:00
– Matlab入門(兼予習)
– SPMを利用したMatlabスクリプト
– SPMの結果をFigureにしていく方法
– VBMのTips
15:00-17:00
– 「今さら聞けないことを聞きたい」質疑応答コーナー

FSLをCPUによる並列処理で高速化する(Chris Rorden版fsl_subの使用)

FSL(FMRIB Software Library)には、fsl_subというプログラムがあります。これは並列処理をするためのプログラムですが、基本、クラスターコンピューティングを想定しており、CPUによる並列処理に対応していません。
Chris Rorden先生が、CPUでの並列処理に対応したfsl_subを公開されています。CPUでの高速化の手順を研究室の黒下君がまとめてくれましたので、公開します。

続きを読む

SPMの結果から、自動で各座標の解剖学的名称を抽出するスクリプト

SPMの結果から領域名を抽出するのに苦労している方は多いと思います。
SPM12からは、GUIを用いて簡単に同定することはできるようになりましたが、
(この方法を知りたい方は、こちらの記事を参照してください)
それでも何十箇所もある場合、マウスで一つ一つ確認するのは骨が折れます。

先日、SPMのMLで、Guillaume Flandinがこのようなメールを流していたことに気づきました。

続きを読む

FSLやSPMを用いて画像の左右を反転する方法

DICOM→NIFTIに変換する際に、MRI画像の左右を反転する方法はありますか?というご質問をいただきました。

DICOM→NIFTIの際に変換する方法は私が知る限りあまりないと思いますが、NIFTI画像に対する方法はあります。

この方法を紹介します。

FSLに、”MNI152_T1_2mm_LR-masked” というファイルがあります。

画像の反転の確認にはわかりやすいファイルなので、今回はこれを使用します。

Mangoで見ると、画像に埋め込まれている”R”が実際にR側にあることに気をつけてください。

続きを読む

WindowsでのMRIcronのインストール方法

dcm2niiを使う為には、まずMRIcronをインストール必要があります。

MRIcronは、http://people.cas.sc.edu/rorden/mricron/index.htmlよりダウンロードします。

トップページ上に表示されている[Installation]をクリックして下さい。

すると、MRIcronで使用できるOS (Windows、Linux、Macの3種類で使用できます)の説明が出てきます。ご自分の作業環境にあったOSを選択し、ファイルをダウンロードして下さい。ここでは、Windowsを使用すると仮定して、説明を進めていきたいと思います。

Windowsでは、下図のように[file.win.zip]をクリックします。

ダウンロードするファイルの一覧が掲載されたページに移動しますので、ここからダウンロードを開始して下さい。

dcm2niiを使用する為には、[MRIcron/NPM/dcm2nii 2MAY2016]は必要になります。下図のように、[MRIcron/NPM/dcm2nii 2MAY2016]の横には、それぞれのOSで使用できるファイルが置いてありますので、必要なファイルにチェックを入れて、ファイル名をクリックします。

ファイルをダウンロードするにあたっての規約が表示されますので、[I Agree]をクリックします。

[ファイルを保存する]にチェックを入れて、[OK]をクリックします。

すると、下図のようにダウンロードが完了します。

ファイルが圧縮されていますので、解凍してください。Windows10では[圧縮フォルダツール]の[展開]タブ→[すべて展開]をクリックします。

すると、下図のようにファイルが解凍されます。

SPMの結果から閾値をこえる領域のすべての座標を求める方法

最近、ある方にこういう依頼を受けました。

「SPMの結果から閾値を超えるクラスターの全領域名が知りたい」

このためには、まず、閾値を超えるクラスターの座標を知る必要があります。
SPMの構造体には、座標がすべて入っています。

SPMで結果を出した後に、Matlabのコマンドウィンドウに以下をタイプするだけでOKです。

xSPM.XYZmm

SPMの統計結果は xSPM という構造体におさめられています。
xSPMとタイプすると構造体の内容を見ることができます。

>> xSPM

xSPM = 

  フィールドをもつ struct:

          swd: 'ワーキングディレクトリ'
        title: 'コントラストのタイトル'
            Z: [1×1102 double]
            n: 1
         STAT: 'T'
           df: [1.0000 250.0000]
      STATstr: 'T_{250}'
           Ic: 2
           Im: []
           pm: []
           Ex: []
            u: 3.1232
            k: 100
          XYZ: [3×1102 double]
        XYZmm: [3×1102 double]
            S: 70831
            R: [1 41.5028 447.2876 1.2207e+03]
         FWHM: [3.6448 3.8374 3.7707]
            M: [4×4 double]
           iM: [4×4 double]
          DIM: [3×1 double]
          VOX: [3 3 3]
         Vspm: [1×1 struct]
    thresDesc: 'p<0.001 (unc.)'
         VRpv: [1×1 struct]
           Pp: [1×116 double]
           Pc: [1×58 double]
           uc: [4.8405 Inf 62.0000 62.0000]
        units: {'mm'  'mm'  'mm'}

これを改めてみると、SPMのResultsに出てくる内容がほぼ網羅されていることがわかります。

Z: [1×1102 double] はZ値が1102個あるということです。つまり、閾値を超えるボクセルが1102ボクセルあるということがわかります。
u: 3.1232 は p<0.001, uncorrectedに相応するT値、k: 100 はextent thresholdです。
XYZ: [3×1102 double]には、ボクセルの位置が入っており、XYZmmに、そのMNI座標が入っています。

とこんな感じでいろいろな情報が入っています。

XYZmmは3×1102ですから、3行1102列の行列です。
これは扱いにくいので、転置してあげると扱いやすくなります。

>&gt; A=xSPM.XYZmm;
>&gt; A'

ans =

    -9    54    21
    -6    54    24
    -9    54    24
   -12    54    24
    -6    57    24
    -9    57    24
   -12    57    24
   -15    57    24
 (…以下、この例の場合では1102行の出力が続きます)

こうやってすべての座標を得ることができました。

SPMでは、統計の結果はデフォルトでは、8mm離れたピーク領域しか表示されませんが、このような方法を使えば自分が気になっている領域が入っているかどうかを確認できます。

FSL で imglob: command not found と出た時の対処方法

FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、

imglob: command not found

というエラーが出ることがあります。

これは、FSLのインストールがうまくいっていないサインです。

FSLのサイトにも記載があります。

しかし、もうひと工夫必要なので記載します。

続きを読む

MRIcroGL および dcm2niix の MacOSでのセットアップ方法

2019.01.07 追記: MRIcroGLは開発者のChris Rorden教授のGitHubから直接ダウンロードした方がバージョンが新しいので、こちらで案内することとしました。

DICOM -> nifti ツールとして dcm2nii が有名ですが、開発者の Chris Rorden は、 dcm2nii の開発はすでに終了しており、後継の dcm2niix の開発を継続しています。
dcm2niix は dcm2nii よりも変換速度が非常に速く、BIDS形式にも対応しているなど、使い勝手も向上しています。
MRIcroGLに搭載されていますので、MRIcroGLをインストールすることで使えますが、パスの設定を通しておかないともったいないのでその方法を記載します。

続きを読む

FSLなどで生成したFA画像を、FreeSurferのSurface画像に投影する方法

FreeSurferで画像解析をしていると、「他の画像解析ソフトで解析した画像をFreeSurferで表示できないだろうか?」という疑問が湧いてきます。
今回、慶応大の上田亮先生が、その方法を見出してくださいましたので、上田先生の了解を得て、その方法を説明します。
FSLで作成したFA画像を、FreeSurferのSurface画像に投影してみます。

続きを読む

FSLの異なるバージョンのインストール

2018年10月26日、FSL 6.0.0がリリースされました。
メジャーバージョンアップなのでこれからいろいろ調べないといけませんが、
FSLのインストーラー、fslinstaller.pyをそのまま実行するとFSL 6.0.0がインストールされます。
しかし、従来のFSL 5.0.11をインストールしたい人もいます。
fslinstaller.pyのオプションで、指定できることがわかりました。
なお、fslinstaller.pyはPython2のスクリプトです。最近は、pythonとタイプするとpython3が起動する人も多いので、
python2.7 fslinstaller.py としてあげるといいでしょう。(Linuxはpython2でいいのですが、MacOSはpython2.7と明示しないとうまく動きません)

続きを読む

第2回 FreeSurfer 6.0 勉強会を開催します (2018年11月18日)

2018/8/28 13:40 満席となりましたので、受付を終了いたしました。

2018年3月にABiS脳画像解析チュートリアルにおいてFreeSurferのチュートリアルを行いましたが、アンコールのリクエストを複数いただいているので、今回も岩手医科大学の山下典生先生の協力を得て、2018年11月18日に東京でFreeSurferの勉強会を開催することとしました。

今回は、研究費のサポートがあるため、無料です。

これまでに開催してきたチュートリアルのように、ご自身のパソコンを持ち込んでいただき、FreeSurferにじっくり触れていただきます。

想定している対象者は、FreeSurferの経験がまだ少ない方です。全く経験がない方もOKです。また、recon-allはやったことがあるけれども、マニュアル修正をやったことがない方はとてもいい経験になると思います。これらの経験がある中級者以上の方には物足りないかと思います。

日程及び場所は以下になります。

  • 日程:2018年11月18日(日) 09:00-17:00
  • 場所:オフィス東京
  •    東京駅八重洲口徒歩5分

  • 講師
  • 根本清貴(筑波大学医学医療系精神医学)
    山下典生(岩手医科大学医歯薬総合研究所超高磁場MRI診断・病態研究部門)

  • セミナー内容(予定;基本的には2018年3月に生理研で行われたチュートリアルをベースにしています)
  • ・FreeSurferの概要
    ・recon-allを用いた前処理の方法
    ・ROI解析
    ・個人解析結果のマニュアル修正
    ・Qdecを用いた基本的なグループ解析
    ・コマンドラインを用いたグループ解析

  • 定員:50名(先着順)
  • 参加費:無料

CUDAのバージョンの切り替え方

使いたいGPU計算ソフトがCUDAの特定のバージョンでしか動かないことがあると思います。
CUDAのバージョンの切り替え方を書いておきます。
切り替え先のバージョンがインストールしてある必要があります。

現在のCUDAのバージョンを確認します。

nvcc -V

/usr/local/cuda へのリンクを切り替え先のバージョンのインストール場所に変更します。
例:CUDA5.0に切り替える場合

sudo unlink /usr/local/cuda
sudo ln -s /usr/local/cuda-5.0 /usr/local/cuda

切り替え後のバージョンを確認します。

nvcc -V

なおrebootは不要です。

FSLのインストーラー、fslinstaller.py はすぐに捨てない!

今、MacもLinux (RedHat系, Debian系) もFSLのインストールはfslinstaller.pyを使うようになりました。
これは、インストールだけかと思いきや、アップデートにも使えます。

https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation/MacOsX

https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation/Linux

にfslinstaller.pyのオプションが説明されています。

そのまま引用します。

  • -d specify folder to install FSL into (without ‘fsl’), e.g. /usr/local
  • -e only configure your account for running FSL
  • -E configure FSL for all users (Linux)
  • -v print installer version number and exit
  • -c check for updated versions of FSL
  • -l list versions of FSL available for download
  • -V install specified version number e.g. 5.0.10
  • -s download the source code for the current, or specified version of FSL
  • -f download the FEEDS data set for the current, or specified version of FSL
  • -q silence all messages
  • -p skip environment setup
  • -D switch on debug messages – use this option to generate logging that can be included when requesting installation support

-c がアップデートを確認となっています。

試してみます。

python fslinstaller.py -c

--- FSL Installer - Version 3.0.11 ---
[Warning] Some operations of the installer require administative rights,
    for example installing into the default folder of /usr/local.
    If your account is an 'Administrator' (you have 'sudo' rights)
    then you will be prompted for your administrator password
    when necessary.
When asked a question, the default answer is given in square brackets.
Hit the Enter key to accept this default answer.
Where is the FSL folder (e.g. /usr/local/fsl)? [/usr/local/fsl]: 

ここでそのままEnterを押します。

Looking for new version.
[OK] Version 5.0.11 available.
Would you like to install update? [yes]: 

5.0.11があるのでアップデートする?と聞かれますので、そのままEnterキーを押すか、もしくは yes とタイプすると5.0.11のアップデートがはじまります。

fslinstaller.py自体は自分自身でプログラムをアップデートする機能を持っています。したがって、インストールした後も捨てないということが大事です。

なお、-f がFSL FEEDSのダウンロードとなっていますが、これは -F の間違いです。今度、FSLのMLに投稿しようと思います。

また、このプログラムはpython 2.x系のみで動作しますので、そのことも覚えておいた方がいいでしょう。

CONNチュートリアル 15: Second-level Analysis 群間比較

多くの方から、”Second-level Analysis”のチュートリアルを執筆するように言われていましたが、なかなか時間がとれなかったのでそのままになっていました。
ようやく、時間がとれたので second-level analysis にいきます。

First-level analysisで Done と押すと、以下のような画面になるはずです。

ここで、大事なのは、画面中央の “Subject effects” と “Between-subjects contrast” です。

CONNがすごいのが、SPMで設定するコントラストを自動で考えてくれるところです。

それでは、2群間の比較から行きましょう。

健常者より統合失調症でfunctional connectivityが落ちているところをまず探したいと思います。
年齢と性別は共変量として扱いましょう。

まずは、”Subjects effect” のところで、シフトキーを押しながら、

control
patients
age
gender

の4つを選択します。

次に、Between-subject contrastsで、”Any effects of interest” のところをクリックして、”control > patients”を選択します。

そうすると、上のコントラストが自動で [1 -1 0 0] となります。

つまり、SPMで自分で設定しなければいけないコントラストを、CONNは自動で設定してくれるのです。

そうすると、画面下に、統計の表があらわれます。

ただ、これは味気ないので、もう少しファンシーな結果を見ましょう。
画面左下にある “Results explorer” をクリックしてください。

これを見ていきます。

  • Define connectivity matrix
  • これは、connectivityの行列のサイズを示します。今は、164のROIを使っているとわかります。

  • Select seed ROI(s)
  • これは、左側にある図の seed がどれかを示します。今は、右前頭極がシードになっています。左側の絵が真っ黒ということは、右前頭極と相関をきたす領域で、統合失調症が健常者より落ちているconnectivityはなかったということになります。ちなみに、seedは、ひとつずつ変更していくと、左の絵が変わりますし、CtrlキーやShiftキーを使って複数選ぶことも可能です。下の”Select all”を選ぶと、ROIをすべて選ぶことになります。あたりをつけるために、やってみるといいと思います。今の場合でやった結果を下に示します。

  • Define thresholds
  • ここで統計の閾値を設定します。今は、FDRで多重比較補正をかけて p<0.05 となります。 閾値を変更したかったらここで変更します。

  • 統計結果
  • その下にあるのは、統計結果です。領域が出ているところを選択すると、左側でどのconnectivityかを示してくれます。

表示も変えてみましょう。

メニューの View -> axial view を選んでください。

そうすると、以下のようになります。

きれいですね。

coronal, sagittalも同様です。

そして、3d viewを選択すると、以下のようになります。

これも素敵ですね。

こんな感じで結果を表示できます。

SPM12のアップデート (version 7219) がリリースされました

SPM12のアップデートのリリースが先ほどされました。

様々なバグ修正が行われています。
アップデートのREADMEを見ると、自分的に興味深いことを発見しました。
コマンドラインでですが、octaveでの動作ができるようにいろいろ試みられているようです。
バッチ処理などにmatlabなしでoctaveだけでできたら、応用範囲が一気に広がります。

すでにSPM12をインストールしている方々でしたら、アップデートは、Matlabから下記のコマンドを打てば自動でできます。

spm_update update

お試しあれ。

Ubuntu14.04, 16.04へのFreeSurfer 6.0のインストール

2014年12月にFreeSurfer 5.3のインストールの方法を記載しましたが、しばらく時間が経ちました。最近、FreeSurfer 6.0がリリースされましたので、コピペでもいけるぐらいにまとめてみます。

英語でのFreesurferをLinuxにインストールするときの具体的な方法は、
こちらに書いてあります。以下は英語を読むのがつらい方のためです。

なお、楽をしたい人は、一番最後にある【楽をするためのスクリプト】をご覧ください。

続きを読む