UNIX系OSで、 df というコマンドがあります。ファイルシステムのディスク使用量を知るためのコマンドです。
df -h はファイルサイズをわかりやすく示してくれます。
それぞれの違いを見てみます。
UNIX系OSで、 df というコマンドがあります。ファイルシステムのディスク使用量を知るためのコマンドです。
df -h はファイルサイズをわかりやすく示してくれます。
それぞれの違いを見てみます。
seq -w は、連続する数字のゼロ埋めをする時に便利です。
たとえば
seq -w 10 とすると
$ seq -w 10 01 02 03 04 05 06 07 08 09 10
となります。ひと桁の数字も最初に0をつけて2桁になるようにしてくれます。
Ubuntu 22.04 から、ターミナルでの変数を使ったディレクトリ移動が厄介になりました。
例を挙げます。
FSLのインストールパス は変数 $FSLDIR に入っています。私はこれまでは、$FSLDIR/standard にアクセスしたい場合
cd $FSLDIR までタイプしたら、その後、タブキーをタイプすると、シェルが自動で cd /usr/local/fsl と変数を展開してくれて、その後のディレクトリをタイプしていました。
しかし、Ubuntu 22.04 から、同じことをすると
cd \$FSLDIR/
と変数がエスケープされてしまい展開されなくなってしまいました。
これは不便です。
調べたところ、shopt というコマンドがあることを知りました。
過去に、Anacondaに頼らない、pipとvenvを用いたPython環境の構築 という記事を書きました。今回、改めて、Pythonの仮想環境について理解が深まったので書きたいと思います。
また、LinuxやmacOSにおいて、Pythonは、システムの重要なところを担っていたりします。Ubuntuであれば、 dpkg -l | grep python3 とすると、どれだけ多くの Python3に関連したパッケージがシステムにインストールされているかを確認することができます。
このような状況において、システムのPythonに追加でパッケージを入れていって、もし不具合が起きた場合、システムそのものが不安定になる可能性があります。
Pythonの仮想環境を使うと、システムの中に、独立したPythonの環境を構築することができます。「独立している」というのは、システムに一切影響を与えないということを意味します。不要になったらばっさり削除しても一切問題ありません。
そこで、以下で、仮想環境の構築の仕方を解説します
macOSでPythonを使おうとする時、様々な選択肢があります。
まず、それぞれのインストール方法とそのPythonのパスを明確にします。バージョンは2024年1月現在のものになります。
2023年11月9日に普通にアップデートしたら以下の問題が発生しました。
環境はUbuntu 22.04です。
$ sudo apt update
---(中略)---
これらを直すためには 'apt --fix-broken install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
nvidia-dkms-535 : 依存: nvidia-kernel-common-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
nvidia-driver-535 : 依存: nvidia-compute-utils-535 (= 535.129.03-0ubuntu1) しかし、535.129.03-0ubuntu0.22.04.1 はインストールされています
推奨: libnvidia-gl-535:i386 (= 535.129.03-0ubuntu1)
E: 未解決の依存関係です。'apt --fix-broken install' を実行してみてください (または解法を明示してください)。
nvidia-dkms-535 が nvidia-kernel-common-535 に依存しているとあります。
よくみると、
nvidia-kernel-common-535は
535.129.03-0ubuntu1 が必要なようですが、 535.129.03-0ubuntu0.22.04.1がインストールされていると言われています。
バージョンの小さな違いがエラーを引き起こしているようです。
ある施設のrs-fMRIのDICOMデータをNiftiに変換しようとした時に、以下のようになってしまい、4次元データができませんでした。
sub1_+rsfMRI_201.nii sub1_+rsfMRI_201_t10000.nii sub1_+rsfMRI_201_t100000.nii sub1_+rsfMRI_201_t102500.nii sub1_+rsfMRI_201_t105000.nii sub1_+rsfMRI_201_t107500.nii sub1_+rsfMRI_201_t110000.nii sub1_+rsfMRI_201_t112500.nii sub1_+rsfMRI_201_t115000.nii sub1_+rsfMRI_201_t117500.nii sub1_+rsfMRI_201_t120000.nii sub1_+rsfMRI_201_t122500.nii sub1_+rsfMRI_201_t12500.nii ...
ポイントは、ファイル名の後ろに tの後に数字がつくことです。
Windows 10/11 では、Windows Subsystem for Linux (WSL) を使ってUbuntuなどのLinuxをインストールできます。WSL2 を使うと、GPUも使えるとのことです。
しかし、WSL2は基本、コマンドラインです。LinuxのGUIを起動するためには、工夫が必要です。現在、いくつかのアプリが公開されていますが、FSLの公式ページでは、VcXsrv を勧めていますのでそれを使うのが無難でしょう。
Ubuntu 22.04 も発表されて1年が過ぎて安定してきましたので、ここでは、
をいれたうえで、FSL をインストールしてみます。
なお、このページは、FSLの公式サイトを参考に作成しました。
When using FreeSurfer and FSL 6.0.6 or later, a certain issue may arise:
First, I will explain how to confirm if you are affected by this issue and then provide the solutions along with the reasons.
FreeSurfer と FSL 6.0.6以降を使っていると、ある事象が起きます。
これの影響を受けているかの確認法および対処法を最初に解説した後、その理由を述べます。
ある方から、「CONNで前処理したfMRI画像から、デフォルト・モード・ネットワーク(DMN)の時系列データを取り出すにはどうしたらよいですか?」というご質問をいただきました。
鍵となるプログラムは以下の2つです。
以下に、方法を記載します。
FSL 6.0.6 and later now support CUDA 11 or later.
After various trials and errors, I have found a simple way to use CUDA effectively with FSL, which I will introduce here.
Assuming that FSL 6.0.6 or later is already installed.
FSL 6.0.6 以降で、CUDA 11以降も対応するようになりました。
いろいろ試行錯誤した結果、以下のようなシンプルな方法でFSLでCUDAを上手に使うことができるようになったので紹介します。
なお、Amulet社から販売している Powerstep Tower for Lin4Neuro は、既にこれらの設定が済んでいますので、電源入れたらすぐにEDDY, BEDPOSTX, XTRACTなどがGPUを使って解析できます。
なお、FSL 6.0.6 以降は既にインストールされているとします。
これまで新しいハードディスクを追加する際の tips を書いてきましたが、最初から最後までまとめます。SATA接続のSSDも同様です。
fdisk を使って確認できます。
sudo fdisk -l
詳細はこちらに説明があります。
この後は、 /dev/sda が新たなデバイスであると仮定します。
gdisk を使います。
sudo gdisk /dev/sda
この後、タイプするコマンドは
n #新しいパーティションを追加 設定はすべてデフォルトのままでも可 p #パーティションテーブルを確認 w #パーティションテーブルの書き込み
の3つだけです。
詳細は先ほどと同じく、こちらに説明があります。
mkfs.ext4 を使います。
sudo mkfs.ext4 /dev/sda
blkid で確認できます。
sudo blkid | grep dev\/sda
ここで表示されるUUIDを後ほど使います。
今の場合は /mnt/data1 にマウントするとします。
sudo mkdir /mnt/data1
/etc/fstab に以下の内容を追加します。詳細はここでは説明しませんが、データ用ならば以下の設定でよいのではないかと思われます。
# HDD 2023-04-15 (コメントを記載した方がどのハードディスクかわかります) UUID=上記で調べたUUID /mnt/data1 ext4 defaults 0 0
mount -a でマウントできます。
sudo mount -a
自分だけ使う場合、chown を使ってオーナーを自分にすると使い勝手がいいです。
sudo chown -R $USER:$USER /mnt/data1
これでハードディスクを追加できました。
FSLはデフォルトでは、Linuxの場合は、.profile の下、macOS の場合はお使いのシェルに応じて、.bash_profile もしくは .zprofile の下に 以下のような設定が書き込まれます。(6.0.6以降の設定です)
# FSL Setup
FSLDIR=/usr/local/fsl
PATH=${FSLDIR}/share/fsl/bin:${PATH}
export FSLDIR PATH
. ${FSLDIR}/etc/fslconf/fsl.sh
この内容を理解できると、ソフトの設定がわかるようになるので、1行ずつ解説してみます。
FreeSurfer では Local Gyrification Index (LGI) を求めることができます。LGIを一言で言えば、脳の皮質の折りたたみの状態を指標化とでも言えるでしょうか。
詳細は、本家のウェブサイトにありますが、ポイントを示します。
この3つを準備しておけば、あとは、以下のコマンドをタイプするだけです。
recon-all -s <fsid> -localGI
FSLのバージョン情報がどこにあるか探したので備忘録として書いておきます。
cat /usr/local/fsl/etc/fslversion
で求められます。
しばらく前に、Ubuntu 18.04用にHCP Pipelineの環境を設定する方法を記載しましたが、いくつかアップデートもあるので、Ubuntu 22.04用以降でも設定できるようにします。
*2023/10/08追記: Neurodebianの設定についてうまく動かないミスがありましたので修正しました。神谷先生、ご指摘ありがとうございました。
*2024/03/29追記: Ubuntu 22.04でFreeSurferのスクリプトがダウンロードできない不具合を解消しました。金子先生、ご指摘ありがとうございました。
*2025/12/25追記: Ubuntu 20.04 はサポートが終了したので、タイトルから Ubuntu 20.04 は取り除きました。また、現在は FIX は pyFIXを使うようになったので、FIX関連は取り除きました。上敷領先生、ご指摘ありがとうございました。