2020/02/03 ここで紹介する方法はもう使えなくなっています。Homebrew経由でインストールするのが一番確実かと思います
macOS High Sierraから、セキュリティが以前よりも厳しくなりました。
これによっていろいろなソフトウェアをインストールする際の手順がめんどくさくなりました。
VirtualBoxも例外ではありません。
2020/02/03 ここで紹介する方法はもう使えなくなっています。Homebrew経由でインストールするのが一番確実かと思います
macOS High Sierraから、セキュリティが以前よりも厳しくなりました。
これによっていろいろなソフトウェアをインストールする際の手順がめんどくさくなりました。
VirtualBoxも例外ではありません。
しばらく前に、ANTsのUbuntu 14.04へのインストール方法(ソースからのコンパイル)という記事を書きましたが、最近のANTsは、cmakeのバージョンが3.10以上でないとコンパイルできなくなっていました。
方法を探してみましたが、cmakeのコンパイルを説明するページが圧倒的でした。
しかし、さらに探していたところ、pipを使えばすんなりいくことがわかりました。
pipは、pythonのパッケージ管理システムで、この中にcmakeも入っています。
ということで、改めて記事を書いていきます。
※2020/02/02 現在はUbuntuのcmakeは3.13までアップグレードしましたので、pipでなくても大丈夫になりました。
sudo apt install cmake
だけでも以下のコンパイルはできます。
2018/8/28 13:40 満席となりましたので、受付を終了いたしました。
2018年3月にABiS脳画像解析チュートリアルにおいてFreeSurferのチュートリアルを行いましたが、アンコールのリクエストを複数いただいているので、今回も岩手医科大学の山下典生先生の協力を得て、2018年11月18日に東京でFreeSurferの勉強会を開催することとしました。
今回は、研究費のサポートがあるため、無料です。
これまでに開催してきたチュートリアルのように、ご自身のパソコンを持ち込んでいただき、FreeSurferにじっくり触れていただきます。
想定している対象者は、FreeSurferの経験がまだ少ない方です。全く経験がない方もOKです。また、recon-allはやったことがあるけれども、マニュアル修正をやったことがない方はとてもいい経験になると思います。これらの経験がある中級者以上の方には物足りないかと思います。
日程及び場所は以下になります。
東京駅八重洲口徒歩5分
根本清貴(筑波大学医学医療系精神医学)
山下典生(岩手医科大学医歯薬総合研究所超高磁場MRI診断・病態研究部門)
・FreeSurferの概要
・recon-allを用いた前処理の方法
・ROI解析
・個人解析結果のマニュアル修正
・Qdecを用いた基本的なグループ解析
・コマンドラインを用いたグループ解析
使いたいGPU計算ソフトがCUDAの特定のバージョンでしか動かないことがあると思います。
CUDAのバージョンの切り替え方を書いておきます。
切り替え先のバージョンがインストールしてある必要があります。
sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.5 100 sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-11.0 90 sudo update-alternatives --install /usr/local/cuda cuda /usr/local/cuda-10.2 80
sudo update-alternatives --config cuda
$ sudo update-alternatives --config cuda alternative cuda (/usr/local/cuda を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/local/cuda-11.5 100 自動モード 1 /usr/local/cuda-10.2 80 手動モード 2 /usr/local/cuda-11.0 90 手動モード 3 /usr/local/cuda-11.5 100 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:
すると、以下のような表示になります。
update-alternatives: /usr/local/cuda (cuda) を提供するためにマニュアルモードで /usr/local/cuda-10.2/ を使います
私は、できるだけ .bashrc をいじらないでというのを最近、モットーにしています。Ubuntuでは .bashrc の中で読み込まれる .bash_aliases があるのでそちらに追記します。.bash_aliases はその名の通り、本来はエイリアスの設定を書くものと思いますが、様々なパスをここに書いておくと、.bashrc を直接いじらなくていいので安全かと思います。
update-alternatives を併用すると、以下のような記載で大丈夫になります。LD_LIBRARY_PATHは、自分が使い分けをしたいCUDAの lib64 のパスをひたすら書いていきます。
# CUDA
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-10.2/lib64:/usr/local/cuda-11.0/lib64:/usr/local/cuda-11.5/lib64${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}}
$ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Wed_Oct_23_19:24:38_PDT_2019 Cuda compilation tools, release 10.2, V10.2.89
nvcc -V
例:CUDA5.0に切り替える場合
sudo unlink /usr/local/cuda sudo ln -s /usr/local/cuda-5.0 /usr/local/cuda
nvcc -V

Rで用いることのできるネットワーク解析ツールに igraph があります。
何かよいチュートリアルがないかと探していたところ、Katherine Ognyanova女史によるすばらしいチュートリアルを見つけました。
とてもよいものだったので、ぜひ日本語化したいと思い、Ognyanova女史に翻訳の許可を求めたところ、快諾してくださいましたので、我々の研究室の田村昌士先生が中心に翻訳してくださいました。
以下に公開します。
Rとigraphを使ったネットワーク解析と可視化のチュートリアル
Lin4Neuro (L4N)は、isoイメージファイルおよびVirtualBoxの仮想アプライアンスを配布しています。
ここでは、isoイメージファイルを用いてVirtualBoxにL4Nをインストールする方法を解説します。
この方法は若干だけ手間がかかりますが、以下のメリットがあります。
これが一番大きいメリットかと思われます。
ご自身で設定できます。
具体的な方法を以下に示します。Acknowledgmentとして、我々の研究室の山田典子さんが以下を準備してくださいました。
VirtualBoxのインストールまでは済んでいるものとして話をすすめます。なお、この方法では、VirtualBox Extension Packは不要です。
自分が頻回に遭遇するエラーなので、備忘録として載せておきます。
Ubuntuでカーネルをアップデートすると、VirtualBoxを起動するときに、以下のエラーが出ます。

このエラーがでたときに、このまま
sudo /sbin/vboxconfig
としてもエラーが出て解決しません。(細かいエラーを保存し忘れました)
解決方法はシンプルで、新しいカーネルにあったカーネルヘッダーをインストールすることです。
以下に具体的な解決法を示します。
$ uname -r 4.15.0-22-generic
今の場合、4.15.0-22-generic であることがわかります
上記を賢く使ってインストールします。
$ sudo apt update $ sudo apt install linux-headers-$(uname -r)
これでカーネルヘッダーがインストールされます
$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: Starting VirtualBox services.
これで無事にVirtualBoxの仮想マシンが起動するようになります。
VirtualBox上にUbuntu (正確にはLin4Neuroなのですが)をインストールしたところ、下図のように画面が乱れるという現象が再現性をもって起こりました。

ログイン画面が表示されているのですが、これでは全く使いものになりません。
いろいろ調べていたのですが、なかなかわからなかったのですが、ふと、「仮想ターミナルを立ち上げて戻ってきたらどうだろう?」と思い、試したところ解決しました。
VirtualBoxのHotkey (デフォルトは右Ctrl) + F1 を押します。
私の環境で、 右Ctrl + F1 を押すと以下のようになりました。

きれいに見えます。
ここで、さらに、Hotkey + F7 を押します。
私の環境では、右Ctrl + F7 を押してみました。

なんときれいになりました。
忘れないようにメモとして残しておきます。
今、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のオプションが説明されています。
そのまま引用します。
-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系のみで動作しますので、そのことも覚えておいた方がいいでしょう。
USBメモリは多くの場合、FAT32形式でフォーマットされています。これは汎用性がありますが、4GBの壁があり、4GBをこえるファイルは使うことができません。
WindowsにはNTFS形式があり、これは4GBを超えて保存できますが、MacでNTFSでフォーマットされたUSBメモリを読み込むにはひと手間必要です。
では、WindowsでもMacでもLinuxでも4GB以上のファイルをUSBメモリで扱うにはどうしたらいいでしょうか。
それに対する答えのひとつが exFAT形式です。
exFAT形式は、Microsoftが主にリムーバブルメディア向けに開発したファイルシステムだそうです。WindowsでもMacでも普通に読み込むことができます。
Ubuntuでもソフトウェアを2つ入れればすぐに使えます。それはexfat-fuse と exfat-utilsです。
Ubuntu 14.04の場合は、PPA経由で入れます。
sudo apt-add-repository ppa:relan/exfat sudo apt-get update sudo apt-get install exfat-fuse exfat-utils
Ubuntu 16.04以降では本家から普通に入れられます。
sudo apt-get update sudo apt-get install exfat-fuse exfat-utils
それで、フォーマットの仕方は非常に簡単です。
sudo mkfs -t exfat [ -n 名前 ] デバイス
もしくは
sudo mkfs.exfat [ -n 名前 ] デバイス
mkfs -t exfatも、mkfs.exfatも mkexfatfs へのシンボリックリンクのようです
たとえば、/dev/sdf を DATA と名づけたい場合
sudo mkfs.exfat -n DATA /dev/sdf
となります。
フォーマットが非常に速くて便利です。
クロスプラットフォームで4GB超の大容量ファイルが扱えるのと、フォーマットの速さが魅力的なので今はUSBメモリはとりあえず exFAT にフォーマットしてから使用するようになりました。
先日、ABiSチュートリアルで順天堂大学の鎌形先生から、FSL, FreeSurfer, MRtrix3を組み合わせたコネクトーム解析の素晴らしい講義を聞く機会がありました。
MRtrix3はインストールしなきゃと思いつつできていませんでしたが、せっかくですから、モチベーションが高いうちにインストールしようと思い、Ubuntu 16.04へのインストールを行いました。
http://mrtrix.readthedocs.io/en/latest/installation/linux_install.html
こちらに説明がありますが、これをまとめてみました。
関心のある方はこちらからダウンロードしてみてください。(右クリック→名前をつけて保存)
保存した後、
$ chmod 755 mrtrix3_installer_ubuntu1604.sh $ ./mrtrix3_installer_ubuntu1604.sh
でインストールができます。
ちなみに、上記スクリプトは以下のようになっています。
GitHubからダウンロードし、コンパイルし、.bashrcにパスを通すというシンプルなことをやっています。
#!/bin/bash #Script to setup mrtrix3 for Ubuntu 16.04 #Install prerequisite packages sudo apt-get install git g++ python libgsl0-dev zlib1g-dev libqt4-opengl-dev libgl1-mesa-dev libqt5svg5* libeigen3-dev #Download MRtrix3 source if [ ! -e $HOME/git ]; then mkdir $HOME/git fi cd $HOME/git git clone https://github.com/MRtrix3/mrtrix3.git #Configuration and build cd mrtrix3 ./configure ./build #.bashrc echo >> $HOME/.bashrc echo "#MRtrix3" >> $HOME/.bashrc echo 'export PATH=$PATH:$HOME/git/mrtrix3/bin:$HOME/git/mrtrix3/scripts' >> $HOME/.bashrc
Ubuntu mini.iso is useful when we want to build a system with minimal packages.
It is useful to make a bootable USB stick.
Below is how to make UEFI-based bootable USB stick with Ubuntu mini.iso.
Required package: 7-zip
You can get 7-zip with the following command;
sudo apt install p7zip-full
Now we will use “7z” command.
Two options are needed. “x” for extract and “-o” to specify output directory. If the directory doesn’t exist, 7z creates automatically.
Now I want to extract images into “usbdisk” directory.
7z x -ousbdisk mini.iso
This will make “usbdisk” directory and extract into the directory. Note that no space is allowed between “-o” and target directory. I tried space or quotation, without success.
One more thing. In order to make the USB stick bootable with UEFI, we need to extract efi.img under boot/grub. This can be easily done with the following command. (You don’t have to change directory.)
7z x -ousbdisk usbdisk/boot/grub/efi.img
This command will extract efi.img, which will be “efi” directory under which bootx64.efi and grubx64.efi exist into the usbdisk directory.
Finally we just copy the contents under usbdisk to a USB.
That’s it. Now try to boot from USB disk.
I tried to install igraph simply by running install.packages(‘igraph’), which resulted in compile error.
Gathering information scatterd on websites, I came to the conclusion.
My Circumstance is as follows;
Ubuntu
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
$ uname -a
Linux vincent 4.10.0-42-generic #46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
R-studio
Version 1.1.383
sudo apt update sudo apt install libssl-dev libcurl4-openssl-dev libxml2-dev
Then running install.packages(‘igraph’) in R-studio succeeded without error.
多くの方から、”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” をクリックしてください。

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

ここで統計の閾値を設定します。今は、FDRで多重比較補正をかけて p<0.05 となります。 閾値を変更したかったらここで変更します。
その下にあるのは、統計結果です。領域が出ているところを選択すると、左側でどのconnectivityかを示してくれます。
表示も変えてみましょう。
メニューの View -> axial view を選んでください。

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

きれいですね。
coronal, sagittalも同様です。
そして、3d viewを選択すると、以下のようになります。

これも素敵ですね。
こんな感じで結果を表示できます。
SPM12のアップデートのリリースが先ほどされました。
様々なバグ修正が行われています。
アップデートのREADMEを見ると、自分的に興味深いことを発見しました。
コマンドラインでですが、octaveでの動作ができるようにいろいろ試みられているようです。
バッチ処理などにmatlabなしでoctaveだけでできたら、応用範囲が一気に広がります。
すでにSPM12をインストールしている方々でしたら、アップデートは、Matlabから下記のコマンドを打てば自動でできます。
spm_update update
お試しあれ。
私は、Ubuntu 16.04 (をカスタマイズしたLin4Neuro 16.04)でfcitx+mozcで日本語入力を行っています。
エディタはvimを利用しています。
多くの方がネットに記載されていますので、詳細は書きませんが、私がvimで日本語文書を書くとき、
という問題がありました。
この点に関して、私がよく参考にさせていただいている「いくやの斬鉄日記」にまさにこれに関する記事があり、中国語ですが、この問題を解決する .vimrc に記載する設定のリンクが紹介されていました。
早速、以下を ~/.vimrc に記載しました。(中国語のコメントは、英語に変換してあります)
"##### auto fcitx ###########
let g:input_toggle = 1
function! Fcitx2en()
let s:input_status = system("fcitx-remote")
if s:input_status == 2
let g:input_toggle = 1
let l:a = system("fcitx-remote -c")
endif
endfunction
function! Fcitx2zh()
let s:input_status = system("fcitx-remote")
if s:input_status != 2 && g:input_toggle == 1
let l:a = system("fcitx-remote -o")
let g:input_toggle = 0
endif
endfunction
set ttimeoutlen=150
"Leave Insert mode
autocmd InsertLeave * call Fcitx2en()
"Enter Insert mode
autocmd InsertEnter * call Fcitx2zh()
"##### auto fcitx end ######
これでvimを起動したところ、日本語でいろいろ書いた後に、ESCを押してノーマルモードに戻ると、自動でmozcがoffになりました。やった!という感じです。
しかし、もう少し使っていて、不便に感じることがありました。それは、vimを起動して最初の挿入モードになるときに必ず mozc が立ち上がってしまうことです。日本語の文章を書くときはいいのですが、スクリプトを書くときは邪魔になります。ここは自動じゃないほうがいいなと思いました。
で、上の記載をよくよく見ると
Fcitx2en() というファンクションと
Fcitx2zh() というファンクションがあり、
前者はESCが押された時に自動でinput method (IM)をoffにする機能であり
後者は挿入モードになった時に自動でIMをonにする機能のようです。
私は後者の機能がいらないんだと気づきました。
なので、以下のように、Fcitx2zh()のところを削除しました。
"##### auto fcitx ###########
let g:input_toggle = 1
function! Fcitx2en()
let s:input_status = system("fcitx-remote")
if s:input_status == 2
let g:input_toggle = 1
let l:a = system("fcitx-remote -c")
endif
endfunction
set ttimeoutlen=150
"Leave Insert mode
autocmd InsertLeave * call Fcitx2en()
"##### auto fcitx end ######
こうしたところ、私の期待していたように
となりました。
これでvimがさらに便利になりました。
自分の備忘録として記載しておきます。
2018.09.12追記:license.txtの扱いが少し変わったので、修正いたしました。また、High Sierraでもインストールを確認できています。
FreeSurferのMacへのインストールについては、本家のサイトにもstep-by-stepのわかりやすいインストラクションがありますが、ターミナルやFinderの設定も含めて示したいと思います。
※2017年9月15日0:00現在、50名を超える申し込みがありましたので、申し込みは終了いたしました。
これまでVBMチュートリアルを行なってきていますが、受講者のアンケートで、「FreeSurferの勉強をしたい」という意見が一定程度ありました。
構造画像解析において、FreeSurferは通らなければいけないところかと思います。
しかし、日本語でのチュートリアルは過去に2011年に慶應大学の先生方が講習会を開かれていらっしゃいますが、その後、開かれていません。
一定のニーズがあると思いますので、岩手医科大学の山下典生先生の協力を得て、FreeSurferの勉強会を企画しました。
この企画はあくまでも個人的なものであり、研究費の支援などはなく、有料会議室を借りてもいますので、有料講習会とさせていただきます。(その分の学びがあるように準備します!)
これまでに開催してきたチュートリアルのように、ご自身のパソコンを持ち込んでいただき、FreeSurferにじっくり触れていただきます。
想定している対象者は、FreeSurferの経験がまだ少ない方です。全く経験がない方もOKです。また、recon-allはやったことがあるけれども、マニュアル修正をやったことがない方はとてもいい経験になると思います。これらの経験がある中級者以上の方には物足りないかと思います。
もちろん、事前サポートもさせていただきます。FreeSurferだけでなく、他にも必要なソフトなどもありますので、前もって万全な体制を整えて勉強会に臨めるようにサポートさせていただきます。それだけでも、今後の研究をする準備になるかと思います。
日程及び場所は以下になります。
五反田駅東口徒歩2分
東京都品川区東五反田5-27-10 第1野村ビル 5階
Googleマップはこちら
根本清貴(筑波大学医学医療系精神医学)
山下典生(岩手医科大学医歯薬総合研究所超高磁場MRI診断・病態研究部門)
・個人解析(recon-all)の方法、及び多数例解析のための工夫
・個人解析結果の見方、様々な出力ファイルの意義
・個人解析結果のマニュアル修正
・GUIを用いた基本的なグループ解析
定員に達したため、締め切りました。
シェルスクリプトで作業を自動化しようとするとき、ファイル名やディレクトリ名に半角スペースが入っていると、エラーとなります。
この半角スペースを全部アンダースコア( _ ) で置き換えてあげたいと思いました。
それも、カレントディレクトリだけではなく、再帰的にサブディレクトリにあるものもすべてです。
やっぱり楽したいですから…。特に画像解析をやる場合、DICOMのディレクトリ構造は、かなり奥深くにいくので、再帰的にいけると楽になります。
スマートでないかもしれませんが、以下のようなスクリプトを書いてみました。
replace-space-underscore.shのダウンロード(右クリックで名前をつけて保存)
思考過程を書いていこうと思います。