FreeSurfer で Local Gyrification Index を求めるための準備

FreeSurfer では Local Gyrification Index (LGI) を求めることができます。LGIを一言で言えば、脳の皮質の折りたたみの状態を指標化とでも言えるでしょうか。
詳細は、本家のウェブサイトにありますが、ポイントを示します。

  • 必要なソフトウェアとしては、Matlab と Matlab Imaging Toolbox が必要となります。
  • Matlab のパスに $FREESURFER_HOME/matlab を追加しておくことが必要です。
  • 画像の準備としては、recon-all が終わっていることが必要です。

この3つを準備しておけば、あとは、以下のコマンドをタイプするだけです。

recon-all -s <fsid> -localGI

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のスクリプトがダウンロードできない不具合を解消しました。金子先生、ご指摘ありがとうございました。

続きを読む

macOSへのFreeSurfer7.3.2のインストールスクリプト

FreeSurfer 7.3.2が公開されました。色々新しい機能が実装されています。

macOSへのインストールはデモ動画が示されていますが、コマンドラインで一気にインストールしたいと思いました。

インストールスクリプトを作成しましたので、公開します。

スクリプトの内容はこちらから確認できます。実際の方法は下に記載してありますので、そちらに従ってください。

続きを読む

XFCEのウィンドウのサイズ変更は、Alt + 右クリック + 矢印が便利

Lin4NeuroはXFCEを採用しています。とても軽量なのでいいのですが、ウィンドウのサイズ変更でウィンドウの端を上手につかむことができず困ることがあります。
いいショートカットを教えていただきました。「Altキーを押しながら右クリックして、マウスを動かす」です。

私はマウスはできるだけ使わない方がうれしい人間なので、マウスを矢印キーで代用できないか試してみたらバッチリでした。

Alt + 右クリック + 矢印キーで、ウィンドウのサイズが比較的簡単に変更できます。

お試しあれ。

すぐに認識されないDVD/Blu-rayディスク(udf形式)のUbuntuへの読み込み

UDF形式はDVDやブルーレイの標準フォーマットですが、Ubuntuでは、デフォルトではディスクを挿入しただけでは認識されないことがあります。

以下のようにすることで対応できます。

  • 光学ドライブのデバイス名を確認する

Ubuntuの「ディスク」アプリ (gnome-disks) を起動します。

ここで、光学ドライブを選択し、「デバイス」にあるパスを確認します。

上図では、/dev/sr0 であることがわかります。

  • マウントポイントを作成する

Ubuntu 18.04以降では、/media/ユーザ名/ の下にリムーバブルディスクがマウントされますので、ここに udf というディレクトリを作成します。(udfでなくても自分の好きな名前で大丈夫です) 

sudo mkdir /media/ユーザ名/udf
  • マウントする

以下のコマンドでマウントします。

sudo mount -t udf /dev/sr0 /media/ユーザ名/udf

こうすると、デスクトップ上にディスクが表示されるようになります。

ディスクが表示されず困った時、試してみる価値があります。

  • アンマウントする

GUIでは、ディスクのアイコンで右クリックをして「取り出す」で大丈夫です。
コマンドラインでは、sudo umount /media/ユーザ名/udf でアンマウントできますのでその後はいつでも取り出せます。

dcm2niix -r y でDICOMソートができる!

DICOMファイルがひとつのディレクトリに入っていて、パルスシーケンスごとにわけたくなることがありませんか?
これまで、私はpydicomを使ったり、DCMTKのツールを使ったスクリプトを使用していました。
しかし、先日、dcm2niixにDICOMソート機能があることを知りました。

ヘルプには

-r : rename instead of convert DICOMs (y/n, default n)

としか書いていないのですが、dcm2niix のGitHubのissue 604に以下の記載がありました。
https://github.com/rordenlab/dcm2niix/issues/604#issuecomment-1120269405

dcm2niix -r y /path/to/DICOMS – this will simply rename rather than convert the data. It sorts each session into a separate folder, which makes subsequent conversion much easier.

実際試してみます。DICOM というディレクトリにDICOM画像が入っていて、sorted というディレクトリに保存したいとします。

mkdir sorted
dcm2niix -r y -o sorted DICOM

これで見事、sortedディレクトリの下に撮像年月日のディレクトリが作成され、その下にシーケンスごとにサブディレクトリにソートされたDICOM画像ができていました!

既に匿名化されているDICOMなどは、これを使うだけでソートが問題なくできますね。

知られていない裏技だと思うので紹介しておきます。

bedpostx_gpu のエラー: –cnonlinear/bin/merge_parts_gpu: そのようなファイルやディレクトリはありません の対処法

bedpostx_gpu を走らせると、以下のエラーがでます。

/usr/local/fsl/bin/bedpostx_postproc_gpu.sh: 行 20: --cnonlinear/bin/merge_parts_gpu: そのようなファイルやディレクトリはありません

この解決法がFSLのMLで紹介されています。

https://www.jiscmail.ac.uk/cgi-bin/wa-jisc.exe?A2=FSL;ee0b1626.2112

具体的には、

${FSLDIR}/bin の中にある bedpostx_postproc_gpu.sh の

# last 2 parameters are subjdir and bindir
parameters=""
while [ ! -z "$2" ]
do

# last 2 parameters are subjdir and bindir
parameters=""
while [ ! -z "${2+x}" ]
do

に変更します。

while の後の test文 の中が、 $2 が ${2+x} になっています。

これで無事に動きます。

ご紹介まで。(金子貴久子先生、情報提供ありがとうございました)

NVIDIAのリポジトリのキーが更新されました。(2022年4月28日)

4月30日にUbuntuのアップデートをしたら、以下のようなメッセージが出ました。

W: GPG エラー: https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY A4B469963BF863CC
E: リポジトリ https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 InRelease はもう署名されていません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

NVIDIAのリポジトリが変更があったのかなと思い、NVIDIAのサイトを見に行ったら、きちんと書いてありました。

Updating the CUDA Linux GPG Repository Key

このページに書いてありますが、Ubuntu 18.04の場合は行うべきことは以下になります。(Ubuntu 20.04は1804を2004に変えるだけです)

sudo apt-key del 7fa2af80
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb 
sudo apt update

これで公開鍵が更新されます。

ただ、人によっては以下のメッセージが出てくるかもしれません。

W: ターゲット Packages (Packages) は /etc/apt/sources.list:63 と /etc/apt/sources.list.d/cuda-ubuntu1804-x86_64.list:1 で複数回設定されています

これは、/etc/apt/sources.list と /etc/apt/sources.list.d/cuda-ubuntu1804-x86_64.list

に同じ内容が記載されていることによります。
この場合は、

/etc/apt/sources.list にある

deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /

を削除すればOKです。

How to setup CUDA 10.2, 11.0, and 11.5 in order to use eddy_cuda10.2 (in FSL 6.0.5.x), PyTorch, and Tensorflow 2

ATTENTION (16 Apr 2023): From 6.0.6, you can use the latest CUDA to run eddy_cuda10.2. So this post is obsolete. I wrote a new post, so please check it out.

FSL 6.0.5 ships eddy_cuda10.2 which literally uses CUDA 10.2.
I explored a way to use eddy_cuda10.2, PyTorch and Tensorflow concurrently. Below is How-To for Ubuntu 18.04/20.04.

続きを読む

ubuntu-drivers devices で “FileNotFoundError: [Errno 2] No such file or directory: ‘aplay'” が出たときの対処法

Ubuntuでグラフィックドライバを入れるときなど、ubuntu-driversが便利ですが、あるマシンでこんなエラーが出ました。

$ ubuntu-drivers devices
ERROR:root:could not open aplay -l
Traceback (most recent call last):
  File "/usr/share/ubuntu-drivers-common/detect/sl-modem.py", line 35, in detect
    aplay = subprocess.Popen(
  File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'aplay'

No such file or directory: ‘aplay’ と出ます。
これは何だろうなと思って調べたところ、Linuxのオーディオ入出力のALSAの音声再生コマンドであることがわかりました。

ALSAを入れれば問題ないだろうと思ったところ、解決しました。

sudo apt install alsa-base

これで ubuntu-drivers devices でエラーが出なくなりました。

Ubuntu への AnyDesk のインストール

AnyDeskはマルチプラットフォームで動作するリモートデスクトップアプリケーションです。動きがとても軽くて非常に使いやすいです。

本家サイトに ‘AnyDesk DEB repository how-to‘ が紹介されていますが、root で作業するように書かれています。

Ubuntuで普通のユーザーが使う時はちょっとだけ違う方がすんなりインストールできますので紹介します。

  • リポジトリキーを信頼するソフトウェア・プロバイダー・リストに登録する
wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key add -
  • リポジトリを追加する
sudo sh -c 'echo "deb http://deb.anydesk.com/ all main" > /etc/apt/sources.list.d/anydesk-stable.list'
  • リポジトリを更新し、AnyDeskをインストールする
sudo apt update
sudo apt install anydesk

Ubuntu 20.04 / 18.04 環境で eddy_cuda10.2 (in FSL 6.0.5.x), PyTorch, Tensorflow 2 を使えるようにCUDA 10.2, 11.0, 11.5をセットアップする方法

注意(16 Apr 2023): FSL 6.0.6 から、CUDA 11以降でもeddy_cuda10.2が動くようになりました。したがって、以下の内容はもう古くなっています。新しい記事をご確認ください。

私のメインマシンは Lin4Neuro 18.04 ですが、そろそろ Lin4Neuro 20.04 への移行を考えています。

今、実験機には NVIDIA GeForce RTX 2070 が備え付けられています。
これを使って、FSL 6.0.5 の eddy をGPUが使えるように設定し、なおかつ、Tensorflow, Pytorch といった Deep Learning のフレームワークも使えるようにしたいと思います。

FSL 6.0.5 にはデフォルトで CUDA 10.2 に対応した eddy_cuda10.2 が配布されています。なので、CUDA 10.2を入れることにします。

なお、これは Ubuntu 18.04 でも全く問題なくできることがわかりましたので、タイトルを変更しました。

続きを読む

Ubuntu 20.04 の mini.iso

Ubuntu 20.04 の mini.iso はかなり隠れたところにあります。
こちらから入手できます。

http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/

日本のミラーサイトはこちら。
http://jp.archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/

いつも探すので備忘録として書いておきます。

Anacondaに頼らない、pipとvenvを用いたPython環境の構築

最近、Pythonに触れることが多くなってきました。
その中で、環境構築についていろいろ学んできました。

Pythonの参考書の多くは”Anacondaで環境構築しましょう”と書いてあります。
しかし、Anacondaはセットアップファイルだけで4GBもあります。
また、自分のシステムに既に入っているPythonとの相互関係も最初の頃はよくわからなくなります。

Anacondaを横においておくと、Pythonには、パッケージマネージャーとして、”pip” というものがあります。
これも若干クセがあるので、いくつかおさえておくべきことがあります。

さらに、Pythonは”venv”というパッケージを使うことで、仮想環境を簡単に構築できます。
このvenvについて把握すると、Anacondaなどのことも理解しやすくなります。

ということで、私なりに理解したことをここでまとめていきたいと思います。
なお、ここではすべてPython3環境を意識していきます。pipはmacOSやUbuntuでは全部Python3になっています。DebianではPython2のようですが、最近、Debianを使っていないのでよくわかりません。(man pip に書いてある情報から記載しただけです)

現時点での私のおすすめは、
「基本、–userをつけてpipでインストール。試験的に試したかったらvenvで仮想環境内で構築」です。

概要は以下になります。

  1. pip
    1.1 どのpipを使っているかの確認
    1.2 システムへのインストールと個別ユーザーへのインストール
  2. venv
    2.1 仮想環境の構築
    2.2 仮想環境の有効化
    2.3 仮想環境の無効化

続きを読む

macOSでのSPM12のコンパイル方法

ある方から、Apple M1のmacでSPMを起動しようとするとspm_check_installation(‘basic’)でエラーが出て起動しないという相談を受けました。

コンパイルしたら問題は解決しました。コンパイル方法を共有します。

ただし、その後、SPMのMLでこのディスカッションに乗ってみたところ、コンパイルは不要だよということも教えていただきました。なので、コンパイルに挑戦してみたい人向けと思ってください。(普通は不要です)

続きを読む

格安パルスオキシメーターは使えるのか?

久しぶりに脳画像以外のネタを。

COVID-19が猛威をふるう中、動脈血酸素飽和度 (SpO2) を測定できるパルスオキシメーターの需要が増えています。
万が一自宅療養になる時などにそなえてパルスオキシメーターが家にあるといいなと思いましたが、
一般的に購入できる1万円未満のパルスオキシメーターのレビューを見ると、みなさん、様々なことを書いていて、判断に困るなぁと思いました。

そこで、実際どうなのかと思い、自ら人柱になって、自腹で購入して実験してみました。

続きを読む