2020年2月6・7日に、東京大学駒場キャンパスにおいて、「国際脳MRIプロトコルデータ(HCP data 含む)と精神疾患臨床データの前処理・解析」というテーマにおいて、脳MRI・臨床データ解析チュートリアルが開催されます。ついに日本でHCPデータの解析法などを学べる時が来ました。
主催の東京大学の小池先生から情報をいただきましたので、告知させていただきます。
関心ある方は、こちらをご確認ください。
私は講師としては参加しませんが、HCP readyのLin4Neuroを提供します。
2020年2月6・7日に、東京大学駒場キャンパスにおいて、「国際脳MRIプロトコルデータ(HCP data 含む)と精神疾患臨床データの前処理・解析」というテーマにおいて、脳MRI・臨床データ解析チュートリアルが開催されます。ついに日本でHCPデータの解析法などを学べる時が来ました。
主催の東京大学の小池先生から情報をいただきましたので、告知させていただきます。
関心ある方は、こちらをご確認ください。
私は講師としては参加しませんが、HCP readyのLin4Neuroを提供します。
2019年11月16日7時で定数に達しましたので、締め切りました。
2020年1月12日開催予定の『FreeSurfer勉強会』のご案内をいたします。
まい参加希望の方は、下記のフォームにて、お申し込みをしていただけますよう、お願い申し上げます。
FreeSurferの勉強会を開催します。
今回は、「FreeSurferでrecon-allはやってみた。でも、もう少し学んでみたい」方を対象にしたいと思います。
現時点では、内容は以下を予定しています。
9:00-15:00
– recon-allのステップの理解
– ROI解析
– 縦断解析
– TRACULA(予定です)
15:00-17:00
– スクリプト化演習
日時:2020年1月12日(日)9:00-17:00
場所:オフィス東京(東京駅八重洲口から徒歩5分)
費用:無料
定員:30名(先着順)
受講条件:
– これまでにFreeSurferの解析を一度はやったことがある方
– ご自身のPCを持ち込んで作業ができる方
コマンドラインはどうしても苦手意識がある方々がいらっしゃると思います。
ふだん、GUIでやっていることをコマンドラインでやるとどうなるか、3月までラボを助けてくださった山田さんが作成してくださいました。
PDFで公開します。
FSLやそれを利用したHCPパイプラインでは、計算を高速化するためにCPUあるいはGPUを介した並列分散処理を行います。CPUの並列分散化には、Sun Microsystemsが開発していたオープンソースのSun Grid Engine(SGE)が使われます。しかし、同社は2010年にOracleが買収し、ソースコードがクローズドになってしまいました(現在はUnivaが引き継いでいますが、これもクローズドです)。これを受けて、リバプール大のグループがSun Grid Engineのオープンソースの最終版である6.2u5をベースに、オープンソースでの開発を継続し、Son of Grid Engineとして公開しています。(https://arc.liv.ac.uk/trac/SGE/wiki )しかし、Son of Grid Engineも2016年を最後に開発が停止しています。一方、Debian/Ubuntu系では、”gridengine” として同様の試みがなされてきており、現在も開発が継続されています。そこで、Ubuntu18.04LTSへのgridengineのインストール方法について紹介します。なお、本稿は京都大学精神科の宮田淳先生が作成した「Son of Grid EngineのUbuntu18.04LTSへのインストール方法」をベースに、筑波大学精神科の根本清貴が改変したものです。この場を借りて宮田淳先生に御礼申し上げます。なお根本は(もちろん宮田先生も)本マニュアルの内容に関して一切の責任を負いません。あくまで自己責任でこのマニュアルをご使用下さい。
FSLやそれを利用したHCPパイプラインでは、計算を高速化するためにCPUあるいはGPUを利用した介した並列分散処理を行います。CPU の並列分散化には、Sun Microsystems が開発していたオープンソースの Sun Grid Engine(SGE)が使われます。しかし同社は2010年にOracle買収し、ソースコードがクローズドになってしまいました。
これを受けて、リバプール大のグループがSun Grid Engine のオープンソースの最終版である 6.2u5 を利用したベースに、オープンソースでの開発を継続し、Son of Grid Engine として公開しています。Son of Grid Engine も SGE と呼ばれています。
https://arc.liv.ac.uk/trac/SGE/wiki
対応OSはLinuxのみで、Debian/Ubuntu系、RedHat/CentOS系があります。
インストールにはいろいろ工夫が必要ですが、このたび、京都大学の宮田淳先生がそのインストールマニュアルを作成してくださいました。
宮田先生のご厚意で公開をご快諾いただきましたので、公開します。
※満席になりましたので、申し込みを締め切らせていただきました。
これまでに脳画像解析勉強会を開催してまいりましたが、2019年度も2回開催予定です。
今回は、「SPM-VBMの基本は理解できた、その先をもう少し知りたい」方を対象にしたいと思います。
日時:2019年12月1日(日)9:00-17:00
場所:オフィス東京(東京駅八重洲口から徒歩5分)
費用:無料
定員:30名(先着順)
受講条件
– Matlabを既にお持ちであること
– 「すぐできるVBM」の内容は理解されていること
勉強会の内容(予定)
9:00-15:00
– Matlab入門(兼予習)
– SPMを利用したMatlabスクリプト
– SPMの結果をFigureにしていく方法
– VBMのTips
15:00-17:00
– 「今さら聞けないことを聞きたい」質疑応答コーナー
2021/12/19追記: より新しく確実な方法を書きましたので、そちらをご参照ください。これはもう古いです。こちら(Ubuntu 20.04 / 18.04 環境で CUDA 10.2, FSL 6.0.5, Tensorflow, PyTorch をセットアップする方法)になります。CUDA 10.2 ですが、他のバージョンにも容易に応用できる方法です。
Ubuntu 18.04で、ディープラーニング環境を構築したいと考えました。
いろいろネットの情報を得てトライしてみたのですが、苦戦しました。
しかし、トライしているうちに、いくつか大事なことがわかってきました。
ポイントは、以下のとおりです。
まずいちばん大事なのはこれです。ドライバーが古いものしか対応していないと、対応するCUDAのバージョンも古くなります。
これから詳しく記載します。
カーネルを最新のものを追いかけるとCUDAは動かないという事象が起きます。Ubuntu 18.04では、標準が4.15、そしてHWEが4.18です。CUDAは、この2つのバージョン(標準とHWEカーネル)だけサポートします。詳しくは、NVIDIAのページをご覧ください。
これらのコツをつかんだら、再現性が高くセットアップすることができるようになりました。
Step by Stepで示します。
現在、GPUでの機械学習ができる環境を構築しています。
様々な試行錯誤があるので、これはこれで別の記事になるのですが、
非常に困ったことが起こりました。
NVIDIAのGeForce RTX2070というグラフィックボードを入手したのですが、
Linux (Lin4Neuro based on Ubuntu 18.04)のインストールまでは全く問題ないのですが、NVIDIAのドライバーをインストールすると、再起動後、画面が全くうつらなくなるのです。
そして、Ctrl+Alt+Deleteも受け付けなくなり、ハードリセットしか方法がなくなります。
折角よい性能のグラフィックボードを入手したのにどうしてうつらなくなってしまうんだろうとネットの情報を探しまくりましたがなかなか情報が見つかりませんでした。
1ヶ月、問題が解決しませんでした…。
そのような中、ふと「ソフトがダメならハードか?」と思いました。
Display Portを使って画面を出力していましたが、HDMIに変えてみたらどうだろうと思い、変えてみたところ、あっさりうつりました…。
“NVIDIA” “Display Port” “Black screen”で調べると情報がちらほら出てきました。
やらなきゃいけないことがたくさんあるので、これ以上の調査はしないでおきますが、
今日の結論は、「画像の出力がおかしかったらDisplay PortをHDMIに切り替えてみよう」ということでした。
先日、論文校正をお願いしたのですが、そこでひとつ学びがありました。
「査読者の提案に従って」という内容を私は
According to the reviewer’s suggestion, …
と書いていたのですが、それが
As per the reviewer’s suggestion, …
と修正されていました。
According toはどうしてよくないのかなと思って、校正をお願いした野口メリッサさんに「According toとAs perの使い分けを教えてください」とお聞きしたところ、とてもわかりやすい回答をいただきました。
ご本人の許可をいただいたので、そのまま転載します。
Those phrases can be really confusing. I’m not sure why, but your original (incorrect) use of ‘according to’ is a very common mistake among Japanese writers. Perhaps it was taught wrong in school, or perhaps you read it in other articles so you get the false sense that it’s correct. I believe that most people who make this mistake are mixing up the two phrases ‘according to’ and ‘in accordance with’.
“According to” is used to refer to a fact or information that is reported by someone else. For example, I might say something like, “according to the weather forecast, it’s going to rain tomorrow;” or, “according to the Ministry of Education, 63% of high school graduates go on to university.”
“In accordance with” is used when you are doing something based on a rule or a law, or when you’re doing something based on a strong recommendation or a suggestion from a expert or respected source. For example, “in accordance with the law, I never drive above the speed limit;” or, “in accordance with the committee’s recommendation, the company decided to reduce their staff by 15%.”
“As per” (or simply “per”) has basically the same meaning as “In accordance with.” (see: https://www.collinsdictionary.com/dictionary/english/as-per )
“According to” は、ある情報に言及する際に、情報源を示す場合に使う
“In accordance with” は、その文章の主語が行動を起こす際に、「(法律、規則や専門家の意見など)に従って…」、という場合に使う
“As per” は、”in accordance with”と同じ
ということですね。
Collins辞書をご紹介いただいたので、According toも調べてみました。
https://www.collinsdictionary.com/dictionary/english/according-to
If someone says that something is true according to a particular person, book, or other source of information, they are indicating where they got their information.
「情報源」を示しているわけですね。
In accordance withはこう紹介されています。
https://www.collinsdictionary.com/dictionary/english/in-accordance-with
If something is done in accordance with a particular rule or system, it is done in the way that the rule or system says that it should be done.
「従うべきものに従って」行う時に使う感じが伝わってきますね。
となると、私がもともと使った”According to the reviewer’s suggestion”ははっきり間違いとわかります。
査読者の指摘に従ってこう修正しましたと言いたいのに、査読者に向かって「あなたから得た情報によると」というのはおかしいですよね。
むしろ、「専門家であるあなたの意見に従います」ということで、In accordance with the reviewer’s suggestion, もしくは、As per the reviewer’s suggestion, とするのがより適切なわけですね。
勉強になったのと、おそらく誤用されていることが多いと思うので、紹介させていただきました。
私がいつも校正でお世話になっているELCS; English Language Consultation Services(エルクス英語コンサルタント)さんはとてもよい仕事をしてくださいます。日頃からたくさん助けていただいているので紹介させていただきます。なお、私はELCSのサービス利用者の一人という立場であり、宣伝依頼などは何も受けていません。
DICOM→NIFTIに変換する際に、MRI画像の左右を反転する方法はありますか?というご質問をいただきました。
DICOM→NIFTIの際に変換する方法は私が知る限りあまりないと思いますが、NIFTI画像に対する方法はあります。
この方法を紹介します。
FSLに、”MNI152_T1_2mm_LR-masked” というファイルがあります。
画像の反転の確認にはわかりやすいファイルなので、今回はこれを使用します。
Mangoで見ると、画像に埋め込まれている”R”が実際にR側にあることに気をつけてください。

ある研究データセットにおいて、被験者リストに性別や年齢の記載もれがあり、MRIのDICOMデータから取得することを考えてみました。
説明が不要な方は、dcmtkさえインストールしてあれば、次のワンライナーで得られます。
$ for f in $(ls -F | grep /); do echo $f; dcmdump $(find $f -type f | sed -n 1p) | grep -E "0010,0020|0010,0030|0010,0040|0010,1010" | awk '{ print $7, $3}' ; echo ""; done
以下、解説です。
この数日、ある総説を書いていたのですが、mozcの辞書に脳解剖の用語があまりにも入っていなくて困ったなと思いました。
オープンソースの医療辞書を探してみた所、DMiME 医学用語変換辞書やORCA projectによる医療辞書を発見しました。これらを入れてみた所、医療辞書としてはとてもいいのですが、脳解剖の用語(たとえば背外側前頭前野であったり、海馬傍回であったり)は登録されていません。
Linux界隈では、「ないものは作って共有する」のが原則ですので、とりあえず、作成してみました。
mozcはGoogle日本語のオープンソースですから、Google日本語入力でも使用できるかと思います→使用できるという報告をいただきました。
これまで2TBよりも大きいHDDの増設には parted を使用してきましたが、先日うまくいかないことがあり、 gdisk を試したところ、いい感じでうまくいったので、メモしておきます。
Ubuntu 18.04で経験した現象ですが、無線LANは接続できるのに、有線LANで接続しようとすると、
「デバイスは管理されていません」”device not managed” と出てしまって接続できないことがあります。
こんな感じです。


ネットを探してみるといろいろな情報が出てきますが、日本語の情報だと、「PCにあったドライバをインストールする」という情報が多いです。
しかし、これは汎用的ではありません。もっと根本的な解決法がほしいと思いました。
LinuxホストからVirtualBoxのextnesion packを削除するには、以下のコマンドです。
$ sudo vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"
なお、GUIからは、
ファイル→環境設定→機能拡張 から削除できます。
備忘録までに。
最近、ある方にこういう依頼を受けました。
「SPMの結果から閾値を超えるクラスターの全領域名が知りたい」
このためには、まず、閾値を超えるクラスターの座標を知る必要があります。
SPMの構造体には、座標がすべて入っています。
SPMで結果を出した後に、Matlabのコマンドウィンドウに以下をタイプするだけでOKです。
xSPM.XYZmm
SPMの統計結果は xSPM という構造体におさめられています。
xSPMとタイプすると構造体の内容を見ることができます。
>> xSPM
xSPM =
フィールドをもつ struct:
swd: 'ワーキングディレクトリ'
title: 'コントラストのタイトル'
Z: [1×1102 double]
n: 1
STAT: 'T'
df: [1.0000 250.0000]
STATstr: 'T_{250}'
Ic: 2
Im: []
pm: []
Ex: []
u: 3.1232
k: 100
XYZ: [3×1102 double]
XYZmm: [3×1102 double]
S: 70831
R: [1 41.5028 447.2876 1.2207e+03]
FWHM: [3.6448 3.8374 3.7707]
M: [4×4 double]
iM: [4×4 double]
DIM: [3×1 double]
VOX: [3 3 3]
Vspm: [1×1 struct]
thresDesc: 'p<0.001 (unc.)'
VRpv: [1×1 struct]
Pp: [1×116 double]
Pc: [1×58 double]
uc: [4.8405 Inf 62.0000 62.0000]
units: {'mm' 'mm' 'mm'}
これを改めてみると、SPMのResultsに出てくる内容がほぼ網羅されていることがわかります。
Z: [1×1102 double] はZ値が1102個あるということです。つまり、閾値を超えるボクセルが1102ボクセルあるということがわかります。
u: 3.1232 は p<0.001, uncorrectedに相応するT値、k: 100 はextent thresholdです。
XYZ: [3×1102 double]には、ボクセルの位置が入っており、XYZmmに、そのMNI座標が入っています。
とこんな感じでいろいろな情報が入っています。
XYZmmは3×1102ですから、3行1102列の行列です。
これは扱いにくいので、転置してあげると扱いやすくなります。
>> A=xSPM.XYZmm;
>> A'
ans =
-9 54 21
-6 54 24
-9 54 24
-12 54 24
-6 57 24
-9 57 24
-12 57 24
-15 57 24
(…以下、この例の場合では1102行の出力が続きます)
こうやってすべての座標を得ることができました。
SPMでは、統計の結果はデフォルトでは、8mm離れたピーク領域しか表示されませんが、このような方法を使えば自分が気になっている領域が入っているかどうかを確認できます。
2019.01.07 追記: MRIcroGLは開発者のChris Rorden教授のGitHubから直接ダウンロードした方がバージョンが新しいので、こちらで案内することとしました。
DICOM -> nifti ツールとして dcm2nii が有名ですが、開発者の Chris Rorden は、 dcm2nii の開発はすでに終了しており、後継の dcm2niix の開発を継続しています。
dcm2niix は dcm2nii よりも変換速度が非常に速く、BIDS形式にも対応しているなど、使い勝手も向上しています。
MRIcroGLに搭載されていますので、MRIcroGLをインストールすることで使えますが、パスの設定を通しておかないともったいないのでその方法を記載します。
(2018.12.05 満席となりました)
脳画像解析を行っていくうえで、コマンドラインに慣れることは必須です。
しかし、コマンドラインを習得するよいテキストはなかなかありません。
このため、脳画像解析を行ううえで有用なコマンドラインを習得するための勉強会を企画しました。