FSLのGLMで対応のあるt検定のdesign matrixを作成・修正する方法

私がもっているデータのひとつに縦断DTIデータがあり、東京都健康長寿医療センターの下地先生が包括脳/ABiSチュートリアルで教えてくださっているTBSSを用いて解析を行っています。(下地先生は非常にわかりやすい講義をしてくださることで人気の先生です。)

GLMでDesign matrixを作成する時にひとつ困ったことに遭遇しました。

FSLのGLM Wizardでは、対応のあるt検定のDesign matrixを簡単に作成することができます。

続きを読む

How to run FSL on Windows 10 using Bash on Ubuntu on Windows

FSL_on_Windows

Since Aug 2016, Bash is available inside Windows.
That means, several neuroimaging software such as FSL or AFNI can be run from Windows.

I gave a try and confirmed FSL can run on Windows 10.

Below is what I did.

  1. Install Bash on Ubuntu on Windows
  2. First of all, we need to install bash on Windows.

    There is a good tutorial on this topic, so please follow the link below.

    How to Install and Use the Linux Bash Shell on Windows 10

  3. Install Xming
  4. Next, we neet to get Xming and install it. It seems the latest version is not free, but FSL can run with free version.

    You can get free version of Xming from here.

    Installation is simple. Default setting should work.

    After reboot, run xming. Though nothing seems to happen, please check the task bar of Windows on the right bottom corner.

    xming

    If you move cursor on the icon of Xming, it shows something like “Xming Server:0.0”. We use the information “0.0” later.

  5. Install FSL
  6. Next we run bash. type

    bash
    

    in the command prompt. (You already did this when you install bash on the first step)

    Ubuntu on Windows is based on Ubuntu 14.04 LTS, so we utilize Neurodebian repository for installation.

    Type the following in the command prompt.

    sudo apt-get update
    sudo apt-get dist-upgrade
    wget -O- http://neuro.debian.net/lists/trusty.us-nh.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list
    sudo apt-key adv --recv-keys --keyserver hkp://pgp.mit.edu:80 0xA5D32F012649A5A9
    sudo apt-get update
    sudo apt-get install fsl
    

    (There are some mirrors of Neurodebian, so please check http://neuro.debian.net/ to find the closest mirror for you.)

    Here we do

    • Update repository
    • Update the system to the latest
    • Setup neurodebian repository
    • Get key for neurodebian repository
    • update repository again to enable neurodebian
    • Install FSL
  7. Add some lines to .bashrc
  8. Finally, type the following.

    echo ". /etc/fsl/fsl.sh" >> ~/.bashrc
    echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
    

    This operation writes the following lines to .bashrc

    . /etc/fsl/fsl.sh
    export DISPLAY=localhost:0.0
    

    First line is necessary to run FSL, and the second line is to show the system where display is for GUI.

  9. Check the installation
  10. To enable change on .bashrc you need to exit bash once.

    exit
    

    Then type “bash” again.

    bash
    

    Then type

    fsl
    

    will bring up FSL menu.

    fslview
    

    will bring up FSLView.

Windows 10でFSLをネイティブ環境で起動する方法

FSL_on_Windows

2016年8月1日、Windows 10がAnniversary updateされました。
そこで、かねてから話題になっていたことですが、ついにUbuntuがWindowsに搭載されました。
ここ数年Ubuntuユーザーである私からしたら、別にどうってことないんですが、
これはWindowsで画像解析をやってきた方々には、すごく意味のある変化です。

Windows上でFSLが動かせる可能性が出てきた

ということですので。

早速、人柱的にやってみました。

普通に起動するところまでは成功しました!

  1. Windows 10 Anniversary Updateの入手(2016年9月9日現在、これはもうしなくて大丈夫です)
  2. まずはこれをしないことには話がはじまりません。(と書いていますが、2016年9月にはAnniversary Updateは普通に配布されているので、最新版に更新していただければ、終了です)

    Windows 10の「設定」→「更新とセキュリティ」に進んだ後、一番下にある「詳細情報」をクリックします。

    そうすると、Windows10の更新履歴のページが立ち上がるはずです。(直接左のリンクをクリックするのもありです)

    そこに「Anniversary Updateを入手する」とありますので、素直にクリックします。

    そうするとアップデートがはじまります。素直に従えば30分程度ですべて起動するはずです。

  3. Windows Subsystem for Linux(beta)の有効化
  4. 再起動後、スタートボタンを右クリックし、コントロールパネルを開きます。

    「プログラム」→「Windowsの機能の有効化または無効化」をクリックします。

    そうすると、ダイアログが開きますので、Windows Subsystem for Linux(beta)のチェックボックスにチェックを入れて「OK」とします。
    再起動を求められますので、再起動します。

  5. 開発者モードの有効化
  6. 次に、また「設定」→「更新とセキュリティ」に行きます。
    左側のメニューに「開発者向け」というものがあります。
    そこをクリックし、出てきた画面で、「開発者モード」を選択します。

    また再起動を要求されますので、再起動します。

  7. Xmingの入手
  8. 次に、Xmingを入手します。最新版はお金を寄付しないと入手できないようなので、無料版を手に入れます。
    こちらから入手できます。

    インストールはシンプルです。すべてデフォルトのままでOKです。

    早速起動します。といっても何もおきません。
    ただ、Windowsの右端のタスクバーを見ると、そこにちゃっかりといます。

    xming

    Xmingの上にマウスをもってくると、今の場合、Xming Server:0.0となっています。この0.0をあとで使います。

  9. bashの起動
  10. ここまで来たら、bashを起動します。

    まず、Windowsからコマンドプロンプトを起動します。簡単な方法は、メニュー左下の「何でもきいてください」というところに cmd とタイプすることです。
    そうすると、コマンドプロンプトが起動します。

    そこで

    bash
    

    とタイプしてください。
    そうすると、質問されますので “y” と答えると、bashのインストールがはじまります。
    そのうちに、ユーザー名とパスワードを設定するようにたずねられますので、それぞれ設定してください。

    ここでインストールされるものはUbuntu 14.04となります。

  11. FSLのインストール
  12. 次に、FSLをインストールします。

    下記をそのままコピペしてください。

    sudo apt-get update
    sudo apt-get dist-upgrade
    wget -O- http://neuro.debian.net/lists/trusty.jp.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list
    sudo apt-key adv --recv-keys --keyserver hkp://pgp.mit.edu:80 0xA5D32F012649A5A9
    sudo apt-get update
    sudo apt-get install fsl
    

    何をしているかというと、

    ・リポジトリを更新します
    ・Ubuntuを最新の状態にアップデートします
    ・Neurodebianリポジトリを有効にします
    ・Neurodebianリポジトリのための鍵を入手します
    ・上記の作業を有効にするためにリポジトリを更新します
    ・FSLをインストールします

  13. .bashrcへの追記
  14. 最後に以下をタイプしてください。

    echo ". /etc/fsl/fsl.sh" >> ~/.bashrc
    echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
    

    これは

    . /etc/fsl/fsl.sh
    export DISPLAY=localhost:0.0

    という2行を.bashrcというファイルに書き込みます。

    最初の行は、FSLの起動のために必要なコマンドで、
    2行目は、GUIを起動するためにbashにXmingがどこにあるかを伝えています。
    0.0は先ほどXmingで確認した数値です。もし、自分の環境で異なっていたら適宜修正してください。

  15. 起動確認
  16. 一度bashを終了します。

    exit
    

    とタイプしてください。
    そうすると普通にコマンドラインに戻るので、改めて

    bash
    

    とタイプしてください。

    そのうえで

    fsl
    

    とタイプすると、FSLが起動しないでしょうか。

    fslview
    

    でFSLViewも起動します。

    お試しあれ。
    今後、いろいろ動きが起こりそうです。
    ここ最近何回かやってきたシェルスクリプトの講習会などもより意味を持つようになってきますね。

FSLを用いたシェルスクリプト演習:3次元脳MRIの水平断一覧画像の作成

あるプロジェクトにおいて、「MRI画像の一覧画像を作成してもらいたい」という依頼を受けました。

イメージとしては、下記のようなものです。

LB_example

以前、FSLのシェルスクリプトチュートリアルを翻訳していた際に、演習に
Lightbox Viewerがあったのを思い出して、改めて、それを見ながら、さらに機能を追加したスクリプトを考えてみました。

作成しながら勉強になることがいくつもあったので、細かくわけてみたいと思います。

続きを読む

覚えておくと便利なFSLViewのオプション3つ

FSLViewを使うと、2つの画像を簡単に重ねあわせて表示できるわけですが、その際に様々なオプションを組み合わせることで画像をわかりやすく見せることができます。

主に3つ覚えておけば、結構いけるなと思いましたので、その3つを紹介します。

その3つとは、

  • -l (Lookup table)
  • -b (Brightness)
  • -t (Transparency)

です。

続きを読む

AFNIの3dresampleを使った画像のボクセルサイズの変更

これまで、MRI画像のボクセルサイズを変更する時に、簡単な方法がないなと思っていました。

コマンドひとつで簡単にできないかなといろいろ検索したところ、AFNIの3dresampleというプログラムに行き着きました。

書式は簡単です。
たとえば、ボクセルサイズを2mm x 2mm x 2mm にしたいとしたら、

$ 3dresample -dxyz 2 2 2 -prefix 出力画像 -inset 入力画像

となります。

入力画像、出力画像、ともにNIFTI画像(.nii, .nii.gz)が使えます。

FSLViewやITK-SNAPでは、2つの画像を重ねあわせる時、ボクセルサイズが一致していることが必須ですので、これを知っていることで、作業が簡単になるかもしれません。

続きを読む

fslmathsでproportional scalingをするワンライナー

Proportional scalingは割り算するだけなので大変ではありません。
スクリプトを書くまでもなく、ワンライナーでいけないかと思いました。
次のような感じでばっちりいけました。

必要なものはファイル名となんらかのglobalが記載されているテキストファイルです。ここでは、id_volume.txtとします。

$ cat id_volume.txt

filename1 1.34
filename2 1.43
filename3 1.36
...
filename4 1.47

それでは、本題です。

$ cat id_volume.txt | while read line; \
do id=`echo $line | awk '{ print $1 }'`; \
icv=`echo $line | awk '{ print $2 }'`; \
echo "ID=${id} and ICV=${icv}"; \
fslmaths ${id} -div ${icv} p${id}; done

これで、ファイル名の前にpがついたファイルができます。

Mac OSX YosemiteにアップグレードしたらFSLが動かなくなった場合の対処法

私自身も遭遇しましたし、他の方からも問い合わせがありましたので、簡単に記載しておきます。

MacをYosemiteにアップグレードした際に、FSLが動作しなくなることがあります。
その際には、バタバタする前に、まず、XQuartzを再インストールしてみてください。
それだけで問題が解決することがあります。

本家にも情報がありました。

Note for Yosemite (10.10) users: even if you have previously installed X11, you will need to reinstall it from the XQuartz web page to get FSL to work.

これで、問題解決といって大丈夫そうです。

Scripts to convert hdr/img format into nii format

Nifti file havs two kinds of extensions, hdr/img or nii.
Sometimes hdr/file nifti files can be confusing because the extension is the same as ANALYZE format.
There are some ways to convert hdr/img into nifti.
One is to use fslchfiletype included in FSL. This is the easiest, but it requires FSL.
The other is to use SPM. However, some scripting is needed.
So I wrote tiny scripts for converting hdr/img format into nii format.

If you prefer SPM, use img2nii_spm.m. Save the script into a folder under MATLAB path and type “img2nii_spm” from MATLAB command window.

%%img2nii.m--------------------------------------------
%Script to convert hdr/img files to nii.
%This script uses SPM function, so you need to install SPM5 or later.
%Kiyotaka Nemoto 05-Nov-2014

%select files
f = spm_select(Inf,'img$','Select img files to be converted');

%convert img files to nii
for i=1:size(f,1)
	input = deblank(f(i,:));
	[pathstr,fname,ext] = fileparts(input);
    output = strcat(fname,'.nii');
    V=spm_vol(input);
    ima=spm_read_vols(V);
    V.fname=output;
    spm_write_vol(V,ima);
end

If you prefer FSL, use img2nii_fsl.sh. Save the script into a folder, add executable attribute using “chmod 755 img2nii_fsl.sh”.
Wild card can be used for selecting files.

#!/bin/sh

#Image file type converter using fslchfiletype
#This script converts various image files into NIFTI format (.nii) files.
#K. Nemoto 19 Jan 2013

if [ $# -lt 1 ] ; then
	echo "Please specify the files you want to convert!"
	echo "Usage: $0 filename"
	exit 1
fi

for file in "$@" ; do
	if [ -f $file ] ; then
		fslchfiletype NIFTI $file
	else
		echo "$file: No such file"
	fi
done

Download img2nii_spm.m (Right-click and save).
Download img2nii_fsl.sh (Right-click and save).

FSLユーザーのためのシェルスクリプトチュートリアル

FSLを開発しているFMRIBグループは、FSL courseのスライドおよびデータセットを公開してくださっています。ここで勉強しているときに、さりげなくシェルスクリプトのチュートリアルもあることが気になっていました。

先日、時間をとってこのチュートリアルを丁寧に見ていったところ、非常に勉強になることが多く、シェルスクリプトの理解が深まりました。FSLユーザーのみならず、脳画像解析でUNIX系のOS(Macも含む)を使う方々にとって有益な情報が多いと思いましたので、日本語にしておきたいと思い、FMRIBのSteve Smith教授の承諾を得て、このチュートリアルを翻訳させていただきました。

オリジナルのサイト自体は、スライド形式になっており、レクチャーと演習部分にわかれています。しかし、翻訳していく段階でこれを完全に模倣するよりは、レクチャーと演習をそれぞれ別の媒体として準備するのも勉強するのには都合がいいかもと考え、それぞれ別のPDFを準備しました。

関心のある方は、以下のリンクからPDFをご覧いただけたらと思います。

FSL course: シェルスクリプト
FSL course: シェルスクリプト演習

FSLViewで画像が正しい向きで表示されない時

FSLViewで画像を表示すると、思ったような向きで表示されないときがあります。
下に例を示します。

fslview01

ここでは、上にある水平断、冠状断が角度が変になってしまっています。

しかし、よくみると、FSLViewは画像の前後をきちんと認識しています。
画像のまわりにあるアルファベットはそれぞれ

A: anterior
P: posterior
L: left
R: right
I: inferior
S: superior

を意味しますが、正しくなっています。

それでは、「正しく」表示するにはどうしたらよいでしょうか。

fslにはfslreorient2stdというコマンドがあります。

元画像のファイル名をv001、向きを変えた画像をv001_stdとします。
次のように端末でタイプします。

$ fslreorient2std v001 v001_std

この結果作成されるv001_std.nii.gzをFSLで表示すると下のようになります。

fslview02

すっきりする表示の仕方ですね。

FSLViewでは、MRIのスキャナで撮影した通りに画像を表示するとのことです。
その向きが左下に表示されます。

例で使った画像は矢状断の画像ですので、左下が矢状断となったわけです。

詳しい説明はFSL−Wikiにあります。下記のリンクが参考になります。


http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/Orientation Explained

FSLのMac OSXへのインストール方法

Mac OSXにFSLをインストールする機会がありました。
いくつか工夫が必要だったので、メモします。

(9/Dec/2014: fslinstaller.pyはスーパーユーザーでなくても大丈夫と気づいたので、修正しました。また、Yosemiteの場合についても追記しました。)
(1/Mar/2014: .bash_profileがない場合の対処を追記しました。また、改行コードについての注意も記載しました)

続きを読む

How to install FSL on Ubuntu

If you use Debian or Ubuntu, you can install FSL easily using neurodebian repository.
Below is what you need to install FSL.

  1. Add the neurodebian repository
  2. Follow the guideline described here.

  3. update the sources.list
  4. $ sudo apt-get update

  5. install FSL (and related packages)
  6. $ sudo apt-get install fsl fsl-doc fslview fslview-doc fsl-atlases fsl-possum-data fsl-first-data fsl-feeds dicomnifti libvtk5-dev vtk-examples vtk-doc

  7. Add the following line to .bashrc
  8. This is the thing people often forget. Without this, you can’t run fsl from shell.

    . /etc/fsl/fsl.sh

    That’s it.

A study of FSLUTILS: a script to convert image files into NIFTI format

FSL has a set of many useful command-line utilities. One of the utilities is “fslchfiletype” which can change the file type of an image (e.g. from ANALYZE to NIFTI).

Using this utility, I wrote a very tiny script with which one can convert many types of image files into NIFTI format. This is very effective if you have many ANALYZE format files and want to convert them into NIFTI format in one shot.

#!/bin/sh
#Image file type converter using fslchfiletype
#This script converts image files into NIFTI format files.
for f in $*
do
fslchfiletype NIFTI $f
done

Download image2nii.sh