3D SlicerのSegment Statisticsの使い方

3D Slicerである点の画素値などを得る場合, マウスのある点の値はSlicerのウィンドウ左下にあるパネルで確認できます.

ある領域の画素値の平均などは, Segment Statistics モジュールを使うことで得ることができきます. 放射線治療のデータで言うと, ある輪郭への線量の平均値などを得るときにもこの Segment Statisticsモジュールが使えます. 単純にセグメントごとに対象データの統計的な値を出してくれるので何かと重宝するのではと思います.

今回はSegment Statisticsモジュールの使い方について記載します.

前準備 Labelmapを作る

Segment Statisticsで使用する”Segment”はBinary Labelmap のことになります. Segment Editor で作成したデータは基本的にvtkMRMLSegmentationNodeなので, labelmapではありません. そのため, SegmentをLabelmapに変換しておく必要があります.

まずDataモジュールで, 対象としたいSegment(ここではRTStructure)を選びます. 目玉マークが目が開いている(表示されている)ものがLabelmapに変換されますので, 必要な輪郭を表示, いらないものを非表示にしておいてください.

その後, SegmentationNodeで右クリックすると下図のようにメニューが出ますので,「Export visible segments to binary labelmap」を選択してください. 少し時間がかかる場合がありますが, これだけで変換は終わりになります. Dataモジュールの一覧に選択したvtkMRMLSgmentationNodeの名前(下図では「1:RTSTRUCT:ANON」)に「-label」と末尾についたvtkMRMLLabelmapVolumeNode (1:RTSTRUCT:ANON-label) が出来ていることを確認してください. ただし, もとのsegmentのようにpatientやGTVなどには別れていません.

DataモジュールでSegmentationNOでをLabelmapに変換

Segment Statisticsでのデータのとり方

Segment Statisticsで得られるのは統計的な値です. つまり平均値や最大値, 最小値, 標準偏差などになります.

ここで重要なのは, 出力されるデータの単位は対象とするデータ(vtkMRMLScalarVolumeNode)によることになります.

つまり, 線量分布を保存するScalarVolumeNodeを対象とすれば, 値はGyなど線量を示す値で出されます. 長さを表すScalarVolumeNodeであれば, mmやmなどの単位となります. そのため, 結果には単位が表記されません. 単位については対象データの方でしっかり確認しておく必要があります(とくに, mmなのかcmなのか, など同じものだけど桁が違う場合もありえます).

Segment Statisticsで対象にできるデータは, vtkMRMLScalarVolumeNode, vtkMRMLBinaryLabelmapNode, vtkMRMLClosedSurfaceNodeとなります. それぞれいられる出力は選択できるので,試して確認してみてください.

今回は, 治療計画のデータからSegmentごとの線量値の平均値などを取りたいと思います.

まず, Segment Statisticsモジュールですが, モジュールのプルダウンのなかの「Quantification」の中にあります.

Segment Statisticsモジュールを開くと, 下のような選択項目があります.

Segment Statisticsモジュールのパネル

ここで「Segmentation」に指定するのがLabelmapです (上図では名前の末尾に−lableがついてないですが). Labelmapにした輪郭ごとに統計的データが計算されることになります.

Scalar Volumeがまとめるデータが含まれるデータとなります.ここではRTDOSEを指定しています. つまり, 線量のデータを保存したデータなので, 輪郭ごとの線量値の統計データが出力されることになります.

Output tableは出力結果を表示する表データの指定です. 基本的には「Create new table」で問題ないと思います.

基本的には, これらを指定すれば後は「Apply」ボタンをクリックするだけです.

結果は下のように画像の下の表として出力されます. 下図の結果では, 出力する値を絞って選択してあります.

SegmentStatisticsの結果表示

出力される値の種類を選びたいときは2つ上の画像(Segment Statisticsモジュールのパネル)にある「Advanced」から, 「Enabled segment statistics plugins:」で対象Volumeに合わせてチェックを外したり, その横の「Options」ボタンをクリックすると, 下図のように計算する値を選択できます.

下図はSclar VolumeのOptionsですが, Labelmapやclosed surfaceのOptionもそれぞれに応じた出力の種類が列挙されており選択できる.

Scalar Volume statisticsのOptionsボタンをクリックすることで表示されるウィンドウ.

Labelmap statisticsはSegmentationで指定したLabelmapから, Scalar Volume statisticsはScalar Volumeで指定したデータから, Closed surface statisticsはLabelmapで閉じた領域になっているものから計算されると思います.

結果の表のデータは, Slicer本体のSave機能でテキスト形式やCSV形式で保存できます.