目次
1. 目的
2. MRIcroGLとは
3. インストール方法
4. PATHの設定
5. 基本的な使い方
5.1. DICOM/NIfTI画像の読み込み
5.2. 画像の操作
5.3. 基本的なツールウィンドウの使い方
5.4. 表示したい断面の選択
5.5. 複数の断面を一度に表示
5.6. ボリュームレンダリング(脳表の表示)
5.7. 標準脳の開き方
5.8. アトラスの重ね合わせ(Overlay)
5.9. 用意した画像を重ね合わせ(Overlay)
5.10. 開いている(重ね合わせている)画像を消去
5.11. 画像の向きの変更
5.12. 画像のリサイズ
5.13. 画像の切り取り
5.14. 画像の鮮鋭化・平滑化
5.15. 頭蓋除去(Skull-stripping)
5.16. 表示されている断面をBMP形式で保存
5.17. Pythonスクリプトを用いた処理
5.18. 画像の保存
6. DICOM形式をNIfTI形式に変換
6.1. マウスを使って操作する場合(GUI)
6.2. 端末(ターミナル)を使って操作する場合(CUI)
7. 関心領域(ROI/VOI)の設定と計測
7.1. 関心領域の定義
7.2. しきい値処理(Intensity Filter)を用いた関心領域の定義
7.3. 関心領域内の値の計測
7.4. 関心領域を用いた画像の切り取り
7.5. 関心領域の拡大・縮小
7.6. 関心領域の保存
7.7. 関心領域を閉じる
7.8. 関心領域の読み込み
1. 目的
- MRIcroGLのインストールと使い方
- NIfTI画像の表示
- DICOM形式からNIfTI形式への変換
- 関心領域(ROI/VOI)の設定
- その他の画像処理
2. MRIcroGLとは
MRIcroGLは、Chris Rorden氏によって開発されたソフトウェアで、脳画像データを表示したり、DICOM形式からNIfTI形式に変換したり、関心領域(ROI/VOI)を設定したりすることができる。
3. インストール方法
こちらから自身のOSにあったファイルを選択後、「Donwload Selected」をクリックしてダウンロードする。
注意事項をよく読み、承諾する場合には「I Agree」をクリック。すると、ダウンロードが開始される。
ダウンロードが完了したら、ダウンロードファイルの圧縮を解凍する。解凍を進めていくと「MRIcroGL」フォルダがでてくる。Windowsの場合、MRIcroGLフォルダの中身は、次の通り。
MacやLinuxの場合、ファイル名の拡張子(.exe)はつかない
MRIcroGL ├── MRIcroGL.exe └── Resources
MRIcroGL.exeを開く。
脳画像が表示されたウィンドウが立ち上がれば、インストールは無事完了。
4. PATHの設定
MRIcroGLフォルダにある「Resources」フォルダには、頭蓋除去をするbet2
や、DICOM形式からNIfTI形式に変換するdcm2niix
がある。これらを、端末(ターミナル)から利用したい場合には、PATHを設定する必要がある(言い換えれば、bet2
やdcm2niix
はここにありますよ!ってPCに教えてあげるイメージ。もともと、dcm2niix
というコマンドはないけど、dcm2niix
にPATHが通してあることで、PC側でああ、あのdcm2niix
を実行しろということね?とdcm2niix
を実行してくれる)。
PATHの通し方は、以下の記事を参考にするとよい。
5. 基本的な使い方
5.1. DICOM/NIfTI画像の読み込み
上タブの「File/Open」を選択(ショートカットキー:CTRL+O)。
開きたい画像(DICOM or NIfTI)を選択し、「開く」ボタンをクリックすると、画像が表示される。
以上の操作は、画像をMRIcroGLにドラッグ&ドロップでも実行可能。
5.2. 画像の操作
- 断面の切り替え:左クリック&ドラッグ
- 平行移動:CTRL+左クリック&ドラッグ
- 拡大・縮小:CTRL+マウスホイール回転
- コントラスト調節:右クリック&ドラッグ
- カラーバーの位置を変更:左ダブルクリック
画像が4Dデータであり、ボリュームを切り替えたい場合。
上タブの「Display」から「Previous/Next Volume」を選択する。
5.3. 基本的なツールウィンドウの使い方
MRIcronGLの左側には、以下のようなウィンドウがある。
それぞれの役割は、以下の通り。
5.4. 表示したい断面の選択
上タブ「Display」の「Axial/Coronal/Sagittal/Multi-Planar」から選択。
5.5. 複数の断面を一度に表示
上タブ「Display/Mosaic」を選択。
このように表示される。
5.6. ボリュームレンダリング(脳表の表示)
上タブ「Display/Render」を選択。
レンダリングすると、以下のような画像が表示される。
5.7. 標準脳の開き方
上タブの「File/Add Standard」から選択。
MNI152(表記:mni152)選択すると、次の画像が表示される。
5.8. アトラスの重ね合わせ(Overlay)
上タブの「File/Add Atlas」から選択。
AALアトラスを。重ね合わせた結果は以下。
5.9. 用意した画像を重ね合わせ(Overlay)
上タブの「File/Add Overlay」をクリック(ショートカットキー:CTRL+A)。
重ね合わせたい画像を選択して、「開く」を選択。
以下では、Natbrainlabのアトラスを標準脳(MNI152)に重ね合わせた。
5.10. 開いている(重ね合わせている)画像を消去
Layersリストの消去したい画像を「右クリック」し、「Close」を選択。
5.11. 画像の向きの変更
上タブの「Import/Tools/Rotation」を選択。
5.12. 画像のリサイズ
上タブの「Import/Tools/Resize」を選択。
各軸に対してスケール(Scale)を何倍にするのか、補間方法(Interpolation)等を設定して、「OK」を選択。
5.13. 画像の切り取り
上タブの「Import/Tools/Crop」を選択。
範囲を設定して、「OK」をクリック。x, y, z方向のみならず、t(Volume)方向の切り取りもできる。
以下の例では、右大脳半球のみを残すように切り取りをした。
結果は、次の通り。
5.14. 画像の鮮鋭化・平滑化
上タブ「View」の「Sharpen/Smooth」を選択。
元に戻したい場合は、上タブの「View/Reset Defaults」を選択。
5.15. 頭蓋除去(Skull-stripping)
上タブ「View」の「Extract Brain」を選択。
しきい値を設定する。値が大きいほど、強く頭蓋除去される(脳実質も除去される可能性も高まる)。
確認画面がでるので、「Yes」を選択。
保存先を指定する。
頭蓋除去された結果は、以下。
5.16. 表示されている断面をBMP形式で保存
上タブの「File/Save Bitmap」を選択。
保存したBMPファイルは以下。
5.17. Pythonスクリプトを用いた処理
上タブの「Scripting」を選択。
例えば、上タブの「Scripting/Templates/glass」を選択すると、下図のようなGlass Brainが生成される。
5.18. 画像の保存
様々な処理をした画像を保存したい場合。
上タブの「File/Save Volume」を選択。
6. DICOM形式をNIfTI形式に変換
6.1. マウスを使って操作する場合(GUI)
上タブの「Import/Convert DICOM to NIfTI」をクリック。
dcm2niixのウインドウが立ち上がる。基本的に、デフォルトで問題ないが、「Output Format:」が正しいかをチェックする。dcm2niixの詳細はこちら。
DICOMが入ったフォルダを、dcm2niixウインドウにドラッグ&ドロップする。
変換が完了すると、デフォルト(Output Directory: Save NIfTI images to the same folder as DICOM)の場合、DICOMフォルダに変換されたNIfTIファイルが保存される。
変換の際に生成されるファイルとして、NIfTIのほかにJSON形式のファイルがある。これは、DICOMから抽出された画像のヘッダー情報がJSON形式のされたものである。TOPUPで必要となる「TotalReadoutTime」もこのファイルに記載されている。
{
“Modality”: “MR”,
“MagneticFieldStrength”: 3,
“ImagingFrequency”: 123.198,
“Manufacturer”: “Siemens”,
“ManufacturersModelName”: “TrioTim”,
“InstitutionName”: “Baylor College of Medicine”,
“DeviceSerialNumber”: “4TUMzYL029kw”,
“PatientPosition”: “HFS”,
“SoftwareVersions”: “syngo MR B15”,
“MRAcquisitionType”: “2D”,
“SeriesDescription”: “DTI_gated”,
“ProtocolName”: “DTI_gated”,
“ScanningSequence”: “EP”,
“SequenceVariant”: “SK\SP”,
“ScanOptions”: “PFP\FS\CT”,
“SequenceName”: “ep_b0”,
“ImageType”: [“ORIGINAL”, “PRIMARY”, “M”, “ND”, “NORM”, “MOSAIC”],
“SeriesNumber”: 3,
“AcquisitionTime”: “13:34:40.080000”,
“AcquisitionNumber”: 1,
“SliceThickness”: 2,
“SpacingBetweenSlices”: 2,
“SAR”: 0.325507,
“EchoTime”: 0.088,
“RepetitionTime”: 0.76,
“FlipAngle”: 90,
“PartialFourier”: 0.75,
“BaseResolution”: 116,
“ShimSetting”: [
14408,
-12729,
3322,
267,
-175,
-259,
12,
-24 ],
“DiffusionScheme”: “Monopolar”,
“TxRefAmp”: 325.987,
“PhaseResolution”: 1,
“ReceiveCoilName”: “HeadMatrix”,
“PulseSequenceDetails”: “%CustomerSeq%\ep2d_advdiff_386b”,
“RefLinesPE”: 32,
“PercentPhaseFOV”: 100,
“PercentSampling”: 100,
“PhaseEncodingSteps”: 90,
“AcquisitionMatrixPE”: 116,
“ReconMatrixPE”: 116,
“BandwidthPerPixelPhaseEncode”: 24.284,
“ParallelReductionFactorInPlane”: 2,
“EffectiveEchoSpacing”: 0.000354995,
“DerivedVendorReportedEchoSpacing”: 0.000709989,
“TotalReadoutTime”: 0.0408244,
“PixelBandwidth”: 1595,
“DwellTime”: 2.7e-06,
“PhaseEncodingDirection”: “j-“,
“SliceTiming”: [
…<省略>
6.2. 端末(ターミナル)を使って操作する場合(CUI)
dcm2niix
はPATHを通していれば、端末(ターミナル)からでも使用できる。
dcm2niix
のヘルプは以下。
Chris Rorden's dcm2niiX version v1.0.20171215 (OpenJPEG build) GCC7.3.0 (64-bit Linux) usage: dcm2niix [options] <in_folder> Options : -1..-9 : gz compression level (1=fastest..9=smallest, default 6) -b : BIDS sidecar (y/n/o(o=only: no NIfTI), default y) -ba : anonymize BIDS (y/n, default y) -c : comment stored as NIfTI aux_file (up to 24 characters) -d : diffusion volumes sorted by b-value (y/n, default n) -f : filename (%a=antenna (coil) number, %c=comments, %d=description, %e echo number, %f=folder name, %i ID of patient, %j seriesInstanceUID, %k studyInstanceUID, %m=manufacturer, %n=name of patient, %p=protocol, %s=series number, %t=time, %u=acquisition number, %v=vendor, %x=study ID; %z sequence name; default '1774_T1w') -h : show help -i : ignore derived, localizer and 2D images (y/n, default n) -m : merge 2D slices from same series regardless of study time, echo, coil, orientation, etc. (y/n, default n) -n : only convert this series number - can be used up to 16 times (default convert all) -o : output directory (omit to save to input folder) -p : Philips precise float (not display) scaling (y/n, default y) -s : single file mode, do not convert other images in folder (y/n, default n) -t : text notes includes private patient details (y/n, default n) -u : up-to-date check -v : verbose (n/y or 0/1/2 [no, yes, logorrheic], default 0) -x : crop (y/n, default n) -z : gz compress images (y/i/n/3, default y) [y=pigz, i=internal:zlib, n=no, 3=no,3D] Defaults file : /home/neuro/.dcm2nii.ini Examples : dcm2niix /Users/chris/dir dcm2niix -c "my comment" /Users/chris/dir dcm2niix -o /users/cr/outdir/ -z y ~/dicomdir dcm2niix -f %p_%s -b y -ba n ~/dicomdir dcm2niix -f mystudy%s ~/dicomdir dcm2niix -o "~/dir with spaces/dir" ~/dicomdir
dcm2niix
の基本的な使い方は、次の通り。
dcm2niix <DICOMディレクトリ>
7. 関心領域(ROI/VOI)の設定と計測
7.1. 関心領域の定義
上タブ「Draw/Draw Color」の「Red/Green/Blue」のいずれかを選択する(ショートカットキー:CTRL+1/2/3)。
「左クリック+ドラッグ」で塗る。
「SHIFT+左クリック+ドラッグ」で消去。消したい領域を囲むように、ドラッグすることで囲った領域をまとめて消すことができる。
ひとつ前の状態に戻りたい場合は、上タブ「Draw/Undo Drawing」を選択(ショートカットキー:CTRL+U)。
定義した関心領域の透明度を変更したい場合、上タブ「Draw/Undo Drawing」から、「25%/50%/90%」のいずれかを選択
7.2. しきい値処理(Intensity Filter)を用いた関心領域の定義
上タブの「Draw/Advanced/Intensity Filter」を選択。
「Action: Add to Drawing」となっている状態で、しきい値を設定し「Apply」をクリック。
しきい値処理が適用されて残った領域が、関心領域として設定される。
7.3. 関心領域内の値の計測
関心領域が設定されている状態で、上タブの「Draw/Advanced/Descriptives」を選択。
関心領域内の画像の値が計測される。
7.4. 関心領域を用いた画像の切り取り
関心領域が設定されている状態で、上タブの「Draw/Advanced/Mask Image」から、「Delete/Preserve regions with VOI」を選択。
関心領域内を消したい場合は「Delete regions with VOI」を、関心領域内を残したい場合は「Preserve regions with VOI」を選択する。
以下の例では、「Preserve regions with VOI」を選択して関心領域内の領域を残すように、画像の切り取りをした。
7.5. 関心領域の拡大・縮小
関心領域が設定されている状態で、上タブの「Draw/Advanced/Dilate or Erode」を選択。
パラメータを設定する。値が大きいほど拡大、小さいほど縮小する。以下の例では、パラメータを5に設定して関心領域を拡大している。
拡大された関心領域が、生成される。
7.6. 関心領域の保存
上タブ「Draw/Save VOI」を選択(ショートカットキー:CTRL+S)。
保存する場所を指定。この時、ファイルの拡張子を「.nii.gz」にしておくと他のソフトウェアでも扱える。
7.7. 関心領域を閉じる
開いていた関心領域が閉じられる。
7.8. 関心領域の読み込み
上タブ「Draw/Open VOI」を選択。
読み込みたい関心領域を選択し、「開く」をクリック。開いた後に、編集も可能。
コメント失礼致します
わかりやすい説明ありがとうございます。
初歩的な質問で大変恐縮ですが,脳画像解析においてMRIcronとMRIcloGLはどちらがおすすめでしょうか。
また両者の違いを教えていただけると嬉しく思います。
よろしくお願いいたします。
MRIcroGL の立ち位置は MRIcron の後継となります。MRIcronは開発はストップしています。MRIcroGLのデメリットは、古いコンピュータでは動かないことなので、これから脳画像解析を行おうと考えている方々であれば、MRIcroGLで全く問題ないと思います。斎藤先生がこの記事で書いてくださっているようなことをしっかり習得されれば、MRIcroGLはとても使いやすいのではないかと思います。MRIcronでしかできないことというのはほとんどないかなと思います。
ピングバック: 【FSL】MRIcron/MRIcroGLを用いたノイズ除去とマスク画像の作成
ピングバック: 【MRtrix】NIfTI形式からMIF形式の変換