Gridengine の Ubuntu 18.04LTS へのインストール方法

1. はじめに

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へのインストール方法」をベースに、筑波大学精神科の根本清貴が改変したものです。この場を借りて宮田淳先生に御礼申し上げます。なお根本は(もちろん宮田先生も)本マニュアルの内容に関して一切の責任を負いません。あくまで自己責任でこのマニュアルをご使用下さい。

続きを読む

Print Friendly, PDF & Email

Son of Grid EngineのUbuntu 18.04 LTS / RHEL7 / CentOS7 へのインストール方法

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系があります。

インストールにはいろいろ工夫が必要ですが、このたび、京都大学の宮田淳先生がそのインストールマニュアルを作成してくださいました。

宮田先生のご厚意で公開をご快諾いただきましたので、公開します。

Son of Grid Engine の Ubuntu 18.04LTS へのインストール方法

Son of Grid Engine の CentOS7 へのインストール方法

Print Friendly, PDF & Email

2019年度第1回脳画像解析勉強会(2019年12月1日開催)

※満席になりましたので、申し込みを締め切らせていただきました。

これまでに脳画像解析勉強会を開催してまいりましたが、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
– 「今さら聞けないことを聞きたい」質疑応答コーナー

Print Friendly, PDF & Email

FSLをCPUによる並列処理で高速化する(Chris Rorden版fsl_subの使用)

FSL(FMRIB Software Library)には、fsl_subというプログラムがあります。これは並列処理をするためのプログラムですが、基本、クラスターコンピューティングを想定しており、CPUによる並列処理に対応していません。
Chris Rorden先生が、CPUでの並列処理に対応したfsl_subを公開されています。CPUでの高速化の手順を研究室の黒下君がまとめてくれましたので、公開します。

続きを読む

Print Friendly, PDF & Email

SPMの結果から、自動で各座標の解剖学的名称を抽出するスクリプト

SPMの結果から領域名を抽出するのに苦労している方は多いと思います。
SPM12からは、GUIを用いて簡単に同定することはできるようになりましたが、
(この方法を知りたい方は、こちらの記事を参照してください)
それでも何十箇所もある場合、マウスで一つ一つ確認するのは骨が折れます。

先日、SPMのMLで、Guillaume Flandinがこのようなメールを流していたことに気づきました。

続きを読む

Print Friendly, PDF & Email

Ubuntu 18.04 で、NVIDIAのリポジトリを利用してtensorflow-gpu環境を構築するシンプルな方法

Ubuntu 18.04で、ディープラーニング環境を構築したいと考えました。

いろいろネットの情報を得てトライしてみたのですが、苦戦しました。
しかし、トライしているうちに、いくつか大事なことがわかってきました。

ポイントは、以下のとおりです。

  • グラフィックボードのドライバーによって使えるCUDAのバージョンが異なる
  • まずいちばん大事なのはこれです。ドライバーが古いものしか対応していないと、対応するCUDAのバージョンも古くなります。

  • NVIDIAはリポジトリをdebファイルで配布しているので、それを使うのがよい
  • これから詳しく記載します。

  • カーネルはデフォルトのものを使う
  • カーネルを最新のものを追いかけるとCUDAは動かないという事象が起きます。Ubuntu 18.04では、標準が4.15、そしてHWEが4.18です。CUDAは、この2つのバージョン(標準とHWEカーネル)だけサポートします。詳しくは、NVIDIAのページをご覧ください。

これらのコツをつかんだら、再現性が高くセットアップすることができるようになりました。
Step by Stepで示します。

続きを読む

Print Friendly, PDF & Email

グラフィックカードの出力が全くうつらなくなった時にはDisplay Portを疑うのもひとつ

現在、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に切り替えてみよう」ということでした。

Print Friendly, PDF & Email

According to … は情報源を示す時に使うもの

先日、論文校正をお願いしたのですが、そこでひとつ学びがありました。

「査読者の提案に従って」という内容を私は

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のサービス利用者の一人という立場であり、宣伝依頼などは何も受けていません。

Print Friendly, PDF & Email

FSLやSPMを用いて画像の左右を反転する方法

DICOM→NIFTIに変換する際に、MRI画像の左右を反転する方法はありますか?というご質問をいただきました。

DICOM→NIFTIの際に変換する方法は私が知る限りあまりないと思いますが、NIFTI画像に対する方法はあります。

この方法を紹介します。

FSLに、”MNI152_T1_2mm_LR-masked” というファイルがあります。

画像の反転の確認にはわかりやすいファイルなので、今回はこれを使用します。

Mangoで見ると、画像に埋め込まれている”R”が実際にR側にあることに気をつけてください。

続きを読む

Print Friendly, PDF & Email

Linuxでdcmtkを利用することにより、DICOMヘッダーから被験者のID、生年月日、性別、年齢を取得できるワンライナー

ある研究データセットにおいて、被験者リストに性別や年齢の記載もれがあり、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

以下、解説です。

続きを読む

Print Friendly, PDF & Email

Mozc (およびGoogle日本語) 用に作成した脳領域名の日本語変換辞書

この数日、ある総説を書いていたのですが、mozcの辞書に脳解剖の用語があまりにも入っていなくて困ったなと思いました。
オープンソースの医療辞書を探してみた所、DMiME 医学用語変換辞書ORCA projectによる医療辞書を発見しました。これらを入れてみた所、医療辞書としてはとてもいいのですが、脳解剖の用語(たとえば背外側前頭前野であったり、海馬傍回であったり)は登録されていません。
Linux界隈では、「ないものは作って共有する」のが原則ですので、とりあえず、作成してみました。
mozcはGoogle日本語のオープンソースですから、Google日本語入力でも使用できるかと思います→使用できるという報告をいただきました。

続きを読む

Print Friendly, PDF & Email

Ubuntuで有線LANで接続しようとしても、「デバイスは管理されていません」と出てしまう時の簡単な解決法

Ubuntu 18.04で経験した現象ですが、無線LANは接続できるのに、有線LANで接続しようとすると、
「デバイスは管理されていません」”device not managed” と出てしまって接続できないことがあります。

こんな感じです。

ネットを探してみるといろいろな情報が出てきますが、日本語の情報だと、「PCにあったドライバをインストールする」という情報が多いです。

しかし、これは汎用的ではありません。もっと根本的な解決法がほしいと思いました。

続きを読む

Print Friendly, PDF & Email

WindowsでのMRIcronのインストール方法

dcm2niiを使う為には、まずMRIcronをインストール必要があります。

MRIcronは、http://people.cas.sc.edu/rorden/mricron/index.htmlよりダウンロードします。

トップページ上に表示されている[Installation]をクリックして下さい。

すると、MRIcronで使用できるOS (Windows、Linux、Macの3種類で使用できます)の説明が出てきます。ご自分の作業環境にあったOSを選択し、ファイルをダウンロードして下さい。ここでは、Windowsを使用すると仮定して、説明を進めていきたいと思います。

Windowsでは、下図のように[file.win.zip]をクリックします。

ダウンロードするファイルの一覧が掲載されたページに移動しますので、ここからダウンロードを開始して下さい。

dcm2niiを使用する為には、[MRIcron/NPM/dcm2nii 2MAY2016]は必要になります。下図のように、[MRIcron/NPM/dcm2nii 2MAY2016]の横には、それぞれのOSで使用できるファイルが置いてありますので、必要なファイルにチェックを入れて、ファイル名をクリックします。

ファイルをダウンロードするにあたっての規約が表示されますので、[I Agree]をクリックします。

[ファイルを保存する]にチェックを入れて、[OK]をクリックします。

すると、下図のようにダウンロードが完了します。

ファイルが圧縮されていますので、解凍してください。Windows10では[圧縮フォルダツール]の[展開]タブ→[すべて展開]をクリックします。

すると、下図のようにファイルが解凍されます。

Print Friendly, PDF & Email

SPMの結果から閾値をこえる領域のすべての座標を求める方法

最近、ある方にこういう依頼を受けました。

「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列の行列です。
これは扱いにくいので、転置してあげると扱いやすくなります。

>&gt; A=xSPM.XYZmm;
>&gt; 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離れたピーク領域しか表示されませんが、このような方法を使えば自分が気になっている領域が入っているかどうかを確認できます。

Print Friendly, PDF & Email

Ubuntu 18.04 mini.iso から構築するLin4Neuro 18.04版

現在、Lin4Neuro 18.04版を開発しており、仮想マシン版は公開できているのですが、iso版はまだ公開できていません。
リマスタリングに苦労しております。

もし、WorkstationにLin4Neuroを構築したい場合、Ubuntuから公開されている mini.iso を利用することで、
(比較的容易に)構築することができます。

以下、方法を示します。なお、スクリーンショットはVirtualBoxを用いて作成したものです。
仮想マシンで試されてから実機に応用していただけたらと思います。
なお、実機の場合、ネットワークは最初は無線LANは自動で認識しませんので、有線LANでネットワークに接続してください。

続きを読む

Print Friendly, PDF & Email

FSL で imglob: command not found と出た時の対処方法

FSLをきちんとインストールしたつもりなのに、imglob, imcp, immv のいずれかを実行したり、eddy などのコマンドを実行すると、

imglob: command not found

というエラーが出ることがあります。

これは、FSLのインストールがうまくいっていないサインです。

FSLのサイトにも記載があります。

しかし、もうひと工夫必要なので記載します。

続きを読む

Print Friendly, PDF & Email

MRIcroGL および dcm2niix の MacOSでのセットアップ方法

2019.01.07 追記: MRIcroGLは開発者のChris Rorden教授のGitHubから直接ダウンロードした方がバージョンが新しいので、こちらで案内することとしました。

DICOM -> nifti ツールとして dcm2nii が有名ですが、開発者の Chris Rorden は、 dcm2nii の開発はすでに終了しており、後継の dcm2niix の開発を継続しています。
dcm2niix は dcm2nii よりも変換速度が非常に速く、BIDS形式にも対応しているなど、使い勝手も向上しています。
MRIcroGLに搭載されていますので、MRIcroGLをインストールすることで使えますが、パスの設定を通しておかないともったいないのでその方法を記載します。

続きを読む

Print Friendly, PDF & Email