PHITS Multi-Purpose Particle and Heavy Ion Transport code System PHITS 講習会 放射線治療計画シミュレーション 2014年6月改訂 title 1 目的 治療計画シミュレーションの検証をPHITSを用いて行う 後方照射155MU 前方照射86MU Introduction 2 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Table of Contents 3 Dicom形式(バイナリー) 1つのスライスに対するデータ(sample001.dcm) ① Header (撮影日時,ピクセルサイズなどの情報) ② CT値(1,1→2,1→3,1→ … → nx-1, ny → nx, ny)の順番 このファイルがスライス数入ったフォルダで1つの物体を表現 1つのファイルを表示 フォルダ全体のデータを3D表示 Dicom形式からPHITS入力形式に変換する必要有 (CT値・バイナリ) (Universe番号・テキスト) DICOM2PHITS HowTo 4 変換プログラム(dicom2phits) Dicom形式のデータをPHITS形式のボクセルデータに変換 • CT値と物質密度・組成の関係はdata/HumanVoxelTable.data [W. Schneider, Phys. Med. Biol. 45(2000)459-478]を参照 ① 基本情報ファイルを作成(dicom2phits.inp) 指定ディレクトリ内に含まれるDICOMファイルを自動判別 指定した番号範囲のスライスファイルを読み込む "data/HumanVoxelTable.data" "DICOM/" 1 20 70 430 90 460 4 4 1 0 1 0 "PHITSinputs/" ! ! ! ! ! ! ! ! ! File for conversion of human voxel data DICOM DICOMデータの一部を切り出してボクセル化できる file directory Minimum画像を粗くする(分解能を下げる)ことも可能 slice number, Maximum slice number Clipping: Nxmin, Nxmax, Nymin, Nymax Coarse原点情報をDICOMヘッダーから抽出できる graining: Nxc, Nyc, Nzc Origin 0:Center 1:Lab Z direction +1:forward or -1:backward PHITSオプションの最適化を選択 PHITS parameter: 0:Minimal 1:PhotonTherapy 2:ParticleTherapy Filename for PHITS input PHITSインプットを格納するディレクトリを指定 ② (Windows) dicom2phits_win.batにdicom2phits.inpをドラッグ&ドロップ (Mac) dicom2phits_mac.commnadをダブルクリックし、現れる窓にdicom2phits.inpと入力 DICOM2PHITS HowTo 5 DICOM2PHITS実行結果 PHITSのサンプルインプットphits.inpを指定ディレクトリ(PHITSinputs/)に生成 併せて、以下のインクルードファイルを同時に生成 ・material.inp 材質データを格納するファイル ・universe.inp 各材質のユニバースデータを指定するファイル ・voxel.inp PHITS形式に変換したボクセルデータを格納するファイル ・libpath.inp 核データ、光子データのパスを指定するファイル 但し、libpath.inpは必要時(PHITSオプションの最適化1or2)且つ既に存在しない場合に file(7)とfile(14)のサンプルパスを作成する。ユーザーの環境に合わせて変更する必要が あるが、指定ディレクトリに一度作成すれば毎回変更する必要は無い。 DICOM2PHITS HowTo 6 PHITSインプットファイル file=phits.inp [Parameters ] … phits.inp 必ず1行目! inflコマンドを使う時のおまじない [ Source ] set: c81[ 90] $ number of x pixel set: c82[ 92] $ number of y pixel set: c83[ 20] $ number of z pixel set: c84[ 0.18800] $ unit voxel x set: c85[ 0.18800] $ unit voxel y set: c86[ 0.50000] $ unit voxel z … [ Surface ] $ Unit voxel 5000 rpp -c87 -c87+c84 -c88 -c88+c85 -c89 -c89+c86 $ Outer region 99 so 500 $ Main Space 97 rpp -c87+c90 c87-c90 -c88+c90 c88-c90 -c89+c90 c89-c90 ボクセルファン トムのピクセル 数や大きさは DICOMのヘッ ダーから自動 的に設定 [Cell] $ Material universe infl:{universe.inp} $ Voxel universe 5000 0 -5000 lat=1 u=5000 fill= 0: 89 0: 91 0: 19 infl: {voxel.inp} $ Main space 97 0 -97 trcl=500 fill=5000 98 0 -99 #97 $ Void 99 -1 99 $ Outer region ボクセルファントム Include fileコマンド の中心がxyz座標 ファントムを回転・ の原点にくるように 平行移動が可能 配置されている Origin=1でDICOMヘッダーから原点 情報取得し、その位置に平行移動 PHITS形式詳細は phits/lecture/voxel/phits-lec-voxel-jp.ppt 「Voxelファントムの作り方」を参照 DICOM2PHITS HowTo 7 CT値⇔物質密度・組成変換表 data/HumanVoxelTable.data サンプル表 [W. Schneider, Phys. Med. Biol. 45(2000)459を参照] 2行目:分割数 1行目:実行時に画面に表示するコメント Table for human voxel based on W. Schneider, Phys.… 24 ! Number of universe di… 3行目:物質1の定義 -1000.0d0 -1.21e-3 3 ! Lowest CT value, Dens -950.0d0 -0.26 10 ! Universe 2 最小CT値 -120.0d0 -0.927 8 ! Universe 3 -1000 物質1 < -950 -82.0d0 物質密度 -0.958 8 ! Universe 4 NOTE: Den … 構成元素数 -52.0d0 -0.985 9 ! Universe 5 [10^… -22.0d0 -1.012 8 ! Universe 6 [g/… 最後の物質 … の最大CT値 1500.0d0 -1.935 11 ! Universe 24 1600.0d0 ! Highest CT value for… #1 Air :: Air density is used ! Composition 元素名 仕切り行:#で始まる必要あり 14N -75.5 ! Element, Ele… 16O -23.2 ! 物質1の組成 40Ar -1.3 ! #2 Lung :: Lung density is used ! Composition o… 仕切り行:#で始まる必要あり 1H -10.3 12C -10.5 組成割合: >0 = 粒子密度比、< 0 =質量比 14N -3.1 … 物質1の最小CT値よりも小さい ⇒ ワーニングを出して物質1で代用 最後の物質の最大CT値よりも大きい ⇒ ワーニングを出して最後の物質で代用 DICOM2PHITS HowTo 21 ジオメトリの確認 icntl = 11 CT3D.eps icntl = 8 deposit-xy.eps DICOM2PHITS HowTo 9 ボクセル化する範囲の変更 dicom2phits.inp "data/HumanVoxelTable.data" "DICOM/" 1 10 70 270 90 270 4 4 1 0 1 0 "PHITSinput1/" ! File for conversion of human voxel data ! DICOM file directory ! Minimum slice number, Maximum slice number ! Clipping: Nxmin, Nxmax, Nymin, Nymax ! Coarse graining: Nxc, Nyc, Nzc ! Origin 0:Center 1:Lab ! Z direction +1:forward or -1:backward ! PHITS parameter: 0:Minimal 1:PhotonTherapy … ! Filename for voxel include file 変更後(phits.inp) CT3D.eps DICOM2PHITS HowTo deposit-xy.eps 10 線量計算結果 icntl = 0 unit = 2 ⇒ MeV/source 単位 unit = 0 ⇒ Gy/source 単位 deposit-xy.eps xyzメッシュを用いた[t-deposit]の結果 DICOM2PHITS HowTo 11 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Conversion of DICOM 12 DICOMデータの変換 ① dicom2phits.inpを以下のように変更して実行 "data/HumanVoxelTable-KumamotoUniv.data" ! File for conversion of human voxel data "DICOM-KumamotoUniv/" ! DICOM file directory 1 148 ! Minimum slice number, Maximum slice number 1 512 1 512 ! Clipping: Nxmin, Nxmax, Nymin, Nymax 4 4 2 ! Coarse graining: Nxc, Nyc, Nzc 1 ! Origin 0:Center 1:Lab 1 ! Z direction +1:forward or -1:backward 1 ! PHITS parameter: 0:Minimal 1:PhotonTherapy 2:ParticleTherapy "PHITSinputs2/" ! Filename for PHITS input ⇒ phits.inp [ Transform ] $ Transform system according to DICOM header tr500 -32.50000 -32.50000 -29.75100 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 1 [ Parameters ] … $ Optimized for Photon Therapy emin(2) = 1.000000000E-10 … $ Library data paths for file(7) & file(14) infl:{libpath.inp} ② libpath.inpを環境に合わせて変更 file(7) = c:/phits/data/xsdir.jnd file(14) = c:/phits/data/trxcrd.dat Windowsデフォルトインストール の場合変更不要 Conversion of DICOM 13 読込の高速化 目的 PHITSでは一度インプットファイルを全てバイナリー化してから再読込 巨大なボクセルデータをあらかじめバイナリー化して読込時間短縮! 手順 ① [Parameters]セクションのivoxelを有効にする(cを消す) ivoxel = 2 # LatticeのFill部分をバイナリー化としてfile(18)に出力させるオプション file(18) = voxel.bin # 出力するバイナリーファイルのファイル名 ② PHITSを実行する → Binary file was successfully generated!! ③ ivoxel = 1に変更し,Latticeを定義するinflコマンドをコメントアウト ivoxel = 1 # LatticeのFill部分をfile(18)から読み込むオプション $ infl:{voxel1.inp} Conversion of DICOM 高速化! 14 ジオメトリの確認 icntl = 8 deposit-xz.eps deposit-xy.eps Conversion of DICOM 15 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Beam setting 16 ビームの形成 コリメーター domパラメータで 円錐ビームを生成 8cm 9cm z x 照射野 y スペクトル(spectrum.inp) Isocenter 100cm Beam setting (x0,y0,z0)=(-0.5, 6.5, -9) 17 ビームの形成 beam.inp set: c91[ -0.5 ] $ isocenter x set: c92[ 6.5 ] $ isocenter y set: c93[ -9.0 ] $ isocenter z set: c94[ 100.0 ] $ beam distance set: c95[ 9.0 ] $ irradiation field x length set: c96[ 8.0 ] $ irradiation field y length [ Source ] s-type = 5 x0 = c91 x1 = c91 y0 = c92-c94 y1 = c92-c94 y軸正方向 z0 = c93 z1 = c93 dir = 0.0 phi = 90 dom = atan(7.0/c94)*180.0/pi proj = photon e-type = 1 ne = 28 infl:{spectrum.inp} Beam setting domパラメータで 円錐ビームを生成 z x 7cm y dom スペクトルの設定 18 コリメーターの設定 beam.inp c91[ c92[ c93[ c94[ c95[ c96[ -0.5 6.5 -9.0 100.0 9.0 8.0 ] ] ] ] ] ] $ $ $ $ $ $ isocenter x isocenter y isocenter z beam distance irradiation field x length irradiation field y length 9cm set: set: set: set: set: set: 8cm 100cm [ Surface ] $ Outer region 99 so 500 $ Colimator inside 90 rpp c91-0.1*c95 c91+0.1*c95 c92-0.9*c94 c92-0.8*c94 c93-0.1*c96 c93+0.1*c96 $ Colimator outside 91 rpp c91-0.5*c95 c91+0.5*c95 c92-0.9*c94 c92-0.8*c94 c93-0.5*c96 c93+0.5*c96 [ Cell ] $ Main space 98 0 -99 #90 $ 90 -1 90 -91 90 10 -11.34 90 -91 99 -1 99 $ Void $ Void colimator $ Pb colimator $ Outer region Beam setting 19 ビームの確認 beam.inp [ Cell ] $ Main space 98 0 -99 #90 $ 90 90-1-1 90-91 -91 90 $ 90901010-11.34 -11.34 90 90-91 -91 99 -1 99 $ Void Voidcolimator colimator $$Void $$Pb Pbcolimator colimator $ Outer region track-yz.eps マテリアルを外部void (-1) にすることで計算時間短縮 照射野@isocenter track-xz.eps Beam setting 20 多門照射の設定 前方照射86MU 後方照射155MU z x y Isocenter: (x0,y0,z0)=(-0.5, 6.5, -9) Isocenterを中心に Z軸回りにq回転 cosq -sinq 0 x’ y’ = sinq cosq 0 z’ 0 0 1 cosq -sinq 0 x’ y’ = sinq cosq 0 z’ 0 0 1 x-x0 x0 y-y0 + y0 z-z0 z0 x0(1-cosq)+y0sinq x y + y0(1-cosq)-x0sinq z 0 Beam setting 21 多門照射の設定 beam2.inp [ Transform ] set: c91[ -0.5 ] $ set: c92[ 6.5 ] $ set: c93[ -9.0 ] $ set: c94[ 100.0 ] $ set: c95[ 9.0 ] $ set: c96[ 8.0 ] $ set: c97[ 0.0 ] $ set: c98[cos(c97/180*pi) set: c99[sin(c97/180*pi) tr600 ソースのtransformを指定 isocenter x isocenter y isocenter z beam distance irradiation field x length irradiation field z length gantory angle ] $ cos ] $ sin ① [ Source ] trcl = 600 s-type = 5 … ② ③ c91*(1-c98)+c92*c99 -c91*c99+c92*(1-c98) 0 c98 ④-c99⑤ 0 ⑥ c99 ⑦ c98 ⑧ 0 ⑨ 0 ⑩ 0 ⑪ 1⑫ 1 x’ y’ = z’ ④ ⑤ ⑥ cosq -sinq 0 sinq ⑦ cosq⑧ 0⑨ ⑪ ⑫ ⑩ 0 0 1 x y z + x0(1-cosq)+y0sinq ① y0(1-cosq)-x0sinq ② 0③ Beam setting 22 多門照射の確認 track-yz-1.eps track-yz-2.eps beam2.inp [ Transform ] … set: c97[ 180.0 0.0 … ] $ gantory angle [ T-track ] … file = track-xz-2.out track-xz-1.out … [ T-track ] … file = track-yz-2.out track-yz-1.out … track-xz-1.eps track-xz-2.eps Beam setting 23 照射結果の合算 sumtally.inp "track-yz-3.out" 1.0 2 1.0 "track-yz-1.out” 1.0 "track-yz-2.out” track-yz-3.eps Beam setting 24 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Tally setting 25 タリーの設定 phits1.inp $ parameters set: c81[ 128] $ number of x pixel set: c82[ 128] $ number of y pixel set: c83[ 74] $ number of z pixel set: c84[ 0.50781] $ unit voxel x set: c85[ 0.50781] $ unit voxel y set: c86[ 0.50000] $ unit voxel z set: c87[ -0.06348] $ smallest x set: c88[ -0.06348] $ smallest y set: c89[ -0.12500] $ smallest z set: c90[ 0.00001] $ small quota set: c91[ -0.5 ] $ isocenter x set: c92[ 6.5 ] $ isocenter y set: c93[ -9.0 ] $ isocenter z [ Transform ] $ Transform system according to DICOM header tr500 -32.50000 -32.50000 -29.75100 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000 1 Tally setting Isocenter面 [ T-Deposit ] title = [t-deposit: icntl=0] file = deposit-xy-1.out mesh = xyz x-type = 2 nx = 128 xmin = c87 -32.50000 xmax = c87+c81*c84-32.50000 y-type = 2 ny = 128 ymin = c88 -32.50000 ymax = c88+c82*c85-32.50000 z-type = 2 nz = 1 zmin = c93 -1.0 zmax = c93 +1.0 unit = 0 axis = xy output = dose epsout = 1 26 deposit-xz-1.eps 試行結果 deposit-xy-1.eps 統計量を増やす 絶対線量に直す deposit-yz-1.eps Tally setting 27 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Conversion factor 28 校正定数の設定 water.inp 水ファントムへの照射 100cm 10cm X=2.6635*10-14 (Gy/source) 10cm 6MVの光子でのPDD(10cm)=66.1% CF=0.661*10-2 / X (source/MU) Dabs=DMC*CF*MU MU(241)*CF(0.661e-2/2.6635e-14) Conversion factor sumtally.inp "deposit-xy-3.out" 59.81e12 2 86.0 "deposit-xy-1.out” 155.0 "deposit-xy-2.out” 29 講習の流れ 1. DICOM2PHITSの使い方 2. 放射線治療シミュレーション a. b. c. d. e. DICOMデータの変換 ビームの設定 タリーの設定 校正定数の設定 治療計画シミュレーション Results 30 治療計画シミュレーション 統計量増(phits2.inp) ⇒ 実行結果LongCalcディレクトリ maxcas maxbch = = 10000000 10 deposit-xy-1.out (前方照射の結果) deposit-xy-2.out (後方照射の結果) ANGELを使用してEPS化 deposit-xy-3.eps deposit-xy-3x.eps "deposit-xy-3x.out" "deposit-xy-3.out" 59.81e12 2 "deposit-xy-1x.out” 86.0 "deposit-xy-1.out” "deposit-xy-2x.out” 155.0 "deposit-xy-2.out” sumtally.inp deposit-xy-3_err.eps Results 31 おまけ:ANGELの上手な使い方 deposit-xy-1.out カラーマップの上限 線形表示 グラフの フレーム に関する パラメータ きれいな出力のために変更済み 下限 104 #MODIFIED The line below is setting minimum and maxmum of the color 105 set: c3[ 1.400000E-00] c4[ 2.100000E-00] 114 115 … 118 119 #MODIFIED The line below is parameters for contours p: ZLIN IPD2 ICUT(8) CUTS(2.1,2.0,1.9,1.8,1.7,1.6,1.5,1.4) COLS #MODIFIED The line below is parameters for frames p: NOLG NOFR NOMS NOTL ANGL(-90) 127 #MODIFIED Color map (hc) is changed to countor (h2) 128 # hc: カラーマップ h2: 等高線 129 130 h2: y = 32.18229 to -32.30957 by 0.5078100 … 1785 1786 1787 1788 等高線用 パラメータ ; … #MODIFIED Unit has been changed from Gy/source to Gy y: Dose [Gy] カラーバーの横の表示 #MODIFIED Liner color scale p: YLIN カラーバーの線形表示 詳しくはANGELのマニュアル(phits/manual/manual-angel4.pdf)参照 Results 32 おまけ:ANGELの上手な使い方 deposit-xy-1x.out Icntl=8 で出力される幾何形状表示をファイルに追加 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 … #MODIFIED CT-data color map added from result with icntl=8 # #-------------------------------------------------------------# gshow #-------------------------------------------------------------p: legs[c5*0.875] h: x ny1,0 y2=[y1](void),ic[lightgray] -1.000000E+00 -1.000000E+00 hb: line clip z cb(lightgray) frame: -3.2563480E+01 -3.2563480E+01 3.2436200E+01 -3.2563480E+01 ⇒ 幾何形状表示(CTデータ)と線量分布を同時に表示 Results 33
© Copyright 2024 ExpyDoc