1. 目的
2. データ準備
3. MIFフォーマットに変換
4. 渦電流および頭部の動き補正
5. 脳マスクの作成
6. 応答関数(Response function)の推定
7. 白質配向分布の推定
8. Tractographyの実行
9. Track Density Imaging (TDI)
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
でアンマウントできますのでその後はいつでも取り出せます。
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です。
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 でエラーが出なくなりました。
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'
sudo apt update sudo apt install anydesk
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/
いつも探すので備忘録として書いておきます。
FreeSurfer 7.2.0が発表されました。
このバージョンからついに deb ファイルが提供されるようになりました。嬉しいことですね。
デフォルトのインストール先は、/usr/local/freesurfer/7.2.0 となります。
eddy implemented in FSL is time-consuming program. FSL recommends using eddy_cuda, GPU version of eddy. They ship eddy_cuda8.0 and edddy_cuda9.1. If you use Ubuntu 18.04, you can make use of eddy_cuda9.1 with only 4 commands.
Disclaimer: Installing nvidia-driver could cause display problem. I am not responsible for the problem…
FSLにはeddyという拡散MRI画像の渦電流を補正するプログラムが搭載されています。
かつてはeddy_correctというシンプルなプログラムでしたが、
今のeddyは、計算量がとてつもなく大きな(=処理時間がかかる)プログラムとなっています。
Liux版のFSLには、eddy_openmp というCPU版と、eddy_cuda{8.0,9.1}というGPU版があります。
Ubuntu 18.04 が搭載されているLinuxで NVIDIA製のグラフィックボードが搭載されている場合、eddy_cudaを比較的簡単にセットアップできるので紹介します。
注意:NVIDIAのドライバを入れる時点で、ディスプレイの解像度が変になることがあります。現在の実働マシンに使う場合は相当注意しながら行ってください。個々人の環境があまりにも違うのでこの方法で不具合が起こっても責任は負いかねます。(すでに3台のマシンでセットアップを行い問題ないことを確認していますが…)
UbuntuでRを使っていらっしゃる方は多いと思います。
R3.5以上を使う場合、https://cran.rstudio.com/bin/linux/ubuntu bionic-cran35 を使っている場合が多いです。
このリポジトリの署名が2020年10月16日に失効しました。
imglob or imcp provided with FSL requires numpy.testing.decorators. However, numpy.testing.decorators has been deprecated from numpy 1.18. So, if you use numpy >=1.18, you see the following error:
HCP Pipelineを準備するのは簡単ではありませんが、東京大学小池研の植松明子さんとディスカッションしている中で、Ubuntu 18.04にHCP Pipelineを設定する方法を確立できたのでご紹介します。植松さんのinputに感謝申し上げます。
あるプロジェクトで、csvファイルをxlsxに変換する必要がありました。
いろいろな方法がありますが、比較的やりやすかった方法がありましたので、備忘録として記載します。
方法は、gnumeric (とnkf)を使う方法です。インストールは簡単です。
sudo apt install gnumeric nkf
ここでは、例として、sample.csv を sample.xlsx に変換したいと考えます。
日本語が入っている場合、Shift-JISなどだとうまくいかない場合があるので、文字コードをUTF-8に変換します。
nkf -wLu --overwrite sample.csv
Gnumericについているssconvertというプログラムが簡単に変換してくれます。
ssconvert sample.csv sample.xlsx
簡単なのですが、この場合、sample.xlsxのシート名が sample.csv となってしまいます。これは気持ち悪いなと思いました。
なので、これを取り除く工夫が以下です。xlsxをxmlに変換し、xmlの中の.csvをsedで取り除き、そして、再度xmlをxlsxに変換します。
ssconvert --export-type=Gnumeric_XmlIO:sax:0 $sample.xlsx sample.xml sed -i 's/.csv//' sample.xml ssconvert --export-type=Gnumeric_Excel:xlsx sample.xml sample.xlsx rm sample.xml
これで望みどおりの変換ができました。
以上、まとめると、以下のようなスクリプトになります。
#!/bin/bash #prerequisites: nkf and gnumeric for f in *.csv do nkf -wLu --overwrite $f base=${f%.csv} ssconvert $f ${base}.xlsx ssconvert --export-type=Gnumeric_XmlIO:sax:0 ${base}.xlsx ${base}.xml sed -i 's/.csv//' ${base}.xml ssconvert --export-type=Gnumeric_Excel:xlsx ${base}.xml ${base}.xlsx rm ${base}.xml mv $f csv done
最近、あるワークステーションを新規にセットアップしました。
いつもファイルはDropbox経由で同期することによって楽しているので、今回も同じようにしたら、
1週間たっても同期がされません。
おかしいなと思っていろいろ調べてみたら、公式ドキュメントにヒントがありました。
同期できない場合 – 互換性のない特殊文字と不良なファイル名に関する問題の解決方法
Linux で 1 万件以上のフォルダを監視する
Linux 版の Dropbox デスクトップ アプリは、デフォルト設定により 1 万件以上のフォルダを監視することはできません。制限数を超えた場合は監視されないため、同期中に無視されます。簡単な回避策として、まずターミナルを開き、次を入力してください。
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
このコマンドでシステムに 10 万件までのフォルダを監視するように指示することができます。コマンドを入力しパスワードを入力したら、すぐに Dropbox が同期を再開します。
私のDropbox内のフォルダ数はどのくらいだろう?と思って、以下のコマンドでディレクトリ数を数えてみました。
find Dropbox -type d | wc -l
その結果ですが、14454 と出てきました。1万件超えています。
そこで、アドバイス通り、以下のコマンドを入力しました。
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
そうしたところ、同期がはじまりました!システムで何か変な設定をしてしまったのではないかと心配だったのでほっとしました。
普段使っているDropboxは、少しずつ増えていっているので、おそらく監視しているフォルダ数がそれほど多くないのかもしれませんね。
Ubuntu上でFSLやFreeSurferを走らせる時、
Syntax error: "(" unexpected.
といったエラーが出ることがあります。
この原因を探っていたらわかったことがありました。
FSLのプログラムは、基本、bashで動くことを前提にしていますが、ファイルの冒頭のShebang行は、#!/bin/shとなっています。
RedHatやCentOSは、/bin/sh は、bashにシンボリックリンクが張られていますが、
Ubuntuでは、dashにシンボリックリンクが張られています。
ls -l で確認するとすぐに確認できます。
$ ls -l /bin/sh lrwxrwxrwx 1 root root /bin/sh -> dash
dashとbashは完全に互換性がないため、ときにbashの文法が通用しないことがあります。
解決策は以下の2つです。
自分でシェルスクリプトを書く場合などはこれがいいでしょう。
しかし、FSLでは、300以上のスクリプトがありますので、これを全部変えるのはめんどくさいですね。
Ubuntuでは、 dpkg-reconfigure dash というコマンドで、dashを使わずにbashを使うようにすることができます。
インタラクティブに行うには、以下のコマンドを叩きます。
$ sudo dpkg-reconfigure dash
すると、次の画面が出るので、「いいえ」を選びます。
再度、/bin/shのシンボリックリンク先を確認してみます。
$ ls -l /bin/sh lrwxrwxrwx 1 root root /bin/sh -> bash
今度はbashに変更されていることがわかります。
なお、インタラクティブでなく変更したい際は、以下で行います。
いくつかのサイトで情報が提供されていましたが、正しくないものもありましたので、試行錯誤した結果、以下が最適な解決法とわかりました。
echo "dash dash/sh boolean false" | sudo debconf-set-selections sudo dpkg-reconfigure --frontend=noninteractive dash
これまで2TBよりも大きいHDDの増設には parted を使用してきましたが、先日うまくいかないことがあり、 gdisk を試したところ、いい感じでうまくいったので、メモしておきます。
Ubuntu 18.04で経験した現象ですが、無線LANは接続できるのに、有線LANで接続しようとすると、
「デバイスは管理されていません」”device not managed” と出てしまって接続できないことがあります。
こんな感じです。
ネットを探してみるといろいろな情報が出てきますが、日本語の情報だと、「PCにあったドライバをインストールする」という情報が多いです。
しかし、これは汎用的ではありません。もっと根本的な解決法がほしいと思いました。
自分が頻回に遭遇するエラーなので、備忘録として載せておきます。
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の仮想マシンが起動するようになります。