PHITS Multi-Purpose Particle and Heavy Ion Transport code System 治療応用実習(VI) 強度変調放射線治療のシミュレーション 2015年2月改訂 title 1 本実習の目標 時間変化を考慮した複数回のPHITSを連続実行す ることにより、強度変調放射線治療(IMRT; intensity-modulated radiotherapy)のシミュレーション ができるようになる。 時間変化するマルチリーフコリメーターを通して 水ファントムにX線を照射した場合の吸収線量分布 Purpose 2 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 3 IMRT.inp 30 cm Collimator 5 cm Input file 4 30 cm Water phantom 20 cm Photon 8 MeV 半径5cm幅の 一様なビーム (上流部分を簡略化) 約80 cm 10 cm 初期設定の体系 体系の確認 はじめに、このインプットファイルで構築している 3次元体系を描画機能を用いて把握しましょう。 Icntl=8としてPHITSを実行すると2つの[t-track]から2次 元平面図がそれぞれ出力され、 icntl=11として実行する と[t-3dshow]の結果が出力されます。 [T-Track] title = Track in xyz mesh ・・・・・・ axis = xz file = track_xz.out ・・・・・・ [ T - 3Dshow ] title = Geometry check using [T-3dshow] file = 3dshow.out ・・・・・・ ・・・・・・ ・・・・・・ [T-Track] title = Track in xyz mesh ・・・・・・ axis = yz file = track_yz.out ・・・・・・ Geometry 5 体系の確認 track_xz.eps 3dshow.eps 水ファントム コリメーター Geometry 6 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 7 課題1 サイズを変えたドーナツ型のコリメーターを z=-78~-70cmの位置に追加してみましょう。 11 -12 13 -14 [Surface] ・・・・・・ 11 pz -85.0 12 pz -80.0 13 cz 5.0 14 cz 10.0 track_xz.eps 30 cm [Cell] ・・・・・・ 11 3 -11.34 10 cm IMRT.inp 8 cm コピーしてコリメーターを追加 *円柱の厚さや内半径、外半径が どの数字と対応するのかを考える Geometry 8 課題1の答え合わせ サイズを変えたドーナツ型のコリメーターを z=-78~-70cmの位置に追加してみましょう。 [Surface ・・・・・・ 11 pz 12 pz 13 cz 14 cz 15 pz 16 pz 17 cz 18 cz ] 11 -12 13 -14 15 -16 17 -18 track_xz.eps 30 cm [Cell] ・・・・・・ 11 3 -11.34 12 3 -11.34 10 cm IMRT.inp 8 cm -85.0 -80.0 5.0 10.0 -78.0 -70.0 5.0 15.0 Geometry 9 課題2 マルチリーフコリメーターをz=-60cmの位置に 追加してみましょう。 • Cell.inp, RemovedCell.inp, Surfacex1.inp , Surfacey.inp , Surfacez.inpをinflコマンドを用いて取り込む • IMRT.inpの一行目に“file = IMRT.inp” • 変数c1からc6を設定 track_xz.eps Geometry 10 Cell.inp, RemovedCell.inp, Surfacex1(y,z).inp: 治療計画装置により得られたある状態にあるマルチ リーフコリメーターの情報をPHITS形式に変換した データファイル(変換方法については後述) Surfacex1(y,z).inp Cell.inp 1001 px -3.00*(-1)*c1-c2 2001 px -3.00*(-1)*c1 ・・・・・・ 1001 3 -11.34 1001 -2001 3000 -3001 4001 -4002 1002 3 -11.34 1002 -2002 3001 -3002 4001 -4002 1003 3 -11.34 1003 -2003 3002 -3003 4001 -4002 ・・・・・・ 3000 py c3+c4*0 3001 py c3+c4*1 ・・・・・・ 追加したセルを空気の領域(セル 番号998)より取り除くため 4001 pz c6 4002 pz c6+c2 RemovedCell.inp #1001 #1002 #1003 ・・・・・・ 変数c1~c6 set: set: set: set: set: set: c1[50/100] c2[10] c4[0.25] c5[120] c3[-c4*c5/4] c6[-65] Geometry $ Scaling factor $ width of leaves [cm] $ thickness of leaves [cm] $ Number of leaves $ y-coordinate of the first leaf [cm] $ z-coordinate of multi-leaf collimator 11 課題2の答え合わせ マルチリーフコリメーターをz=-60cmの位置に 追加してみましょう。 IMRT.inp file = IMRT.inp ・・・・・・ ・・・・・・ ・・・・・・ [Cell] 1 1 -1.0 1 -2 3 -4 5 -6 998 2 -1.20e-3 -999 #1 #11 #12 infl: {RemovedCell.inp} 999 -1 999 11 3 -11.34 11 -12 13 -14 12 3 -11.34 15 -16 17 -18 infl: {cell.inp} [Surface] ・・・・・・ ・・・・・・ ・・・・・・ 17 cz 5.0 18 cz 15.0 set: c1[50/100] $ Scaling factor set: c2[10] $ width of leaves [cm] set: c4[0.25] $ thickness of leaves [cm] set: c5[120] $ Number of leaves set: c3[-c4*c5/4] $ y-coordinate of the first leaf [cm] set: c6[-65] $ z-coordinate of multi-leaf collimator infl: {surfacex1.inp} infl: {surfacey.inp} infl: {surface.zinp} Geometry 12 課題2の答え合わせ マルチリーフコリメーターをz=-60cmの位置に 追加してみましょう。 track_xz.eps Geometry 13 課題3 マルチリーフコリメーターの状態をxy断面図で 見てみましょう。 • axis=xzの[t-track]をコピー&ペーストして、axis=xyの[t-track]を 追加する • xとyの範囲を-10cmから+10cmとし、nxとnyは100とする • zの範囲は-65cmから-60cmとし、nzは1とする • ファイル名をtrack_xy-1.outに変更 track_xz.eps この位置の断面図 Geometry 14 課題3の答え合わせ マルチリーフコリメーターの状態をxy断面図で 見てみましょう。 IMRT.inp [T-Track] title = Track in xyz mesh mesh = xyz x-type = 2 xmin = -10.0 xmax = 10.0 nx = 100 y-type = 2 ymin = -10.0 ymax = 10.0 ny = 100 z-type = 2 zmin = -65.0 zmax = -60.0 nz = 1 ・・・・・・ axis = xy file = track_xy-1.out ・・・・・・ track_xy.eps Geometry 15 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 16 課題4 エネルギー分布をもつ線源を設定してみましょう。 • • • • [source]セクションにおいてs-typeを4に変更 e0の行をコメントアウト e-type = 1とし、ne = 28とする その下の行にinflコマンドを用いてspectrum.inp を読み込む • Icntl=0として輸送計算を実行 スペクトル(spectrum.inp) Source 17 課題4の答え合わせ エネルギー分布をもつ線源を設定してみましょう。 IMRT.inp [Source] s-type = 4 proj = photon $ e0 = 8.0 r0 = 5.00 x0 = 0.0 y0 = 0.0 z0 = -100.0 z1 = -100.0 dir = 1.0 e-type = 1 ne = 28 infl:{spectrum.inp} track_xz.eps(2ページ目) Source 18 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 19 課題5 [t-deposit]を用いて水ファントムの表面付近にお ける吸収線量を調べてみましょう IMRT.inp [T-Track] ・・・・・・ nx = 100 y-type = 2 ymin = -10.0 ymax = 10.0 ny = 100 z-type = 2 zmin = -65.0 zmax = -60.0 nz = 1 e-type = 1 ne = 1 0.0 1000.0 unit = 1 axis = xy file = track_xy-1.out part = electron ・ ・ ・ • • • • • • Axis=xyの[t-track]セクションをコピー&ペースト Xとyの範囲はそのままで、nxとnyは60とする zの範囲は-15cmから0cmとし、nzは1とする E-typeサブセクションはコメントアウト fileはdeposit_xy-1.outとする この領域を Partはallに変更する タリーする Dose distribution 20 課題5の答え合わせ [t-deposit]を用いて水ファントムの表面付近にお ける吸収線量を調べてみましょう IMRT.inp deposit_xy-1.eps [ T - deposit ] ・・・・・・ nx = 60 y-type = 2 ymin = -10.0 ymax = 10.0 ny = 60 z-type = 2 zmin = -15.0 zmax = 0.0 nz = 1 $ e-type = 1 $ ne = 1 $ 0.0 1000.0 unit = 1 axis = xy file = deposit_xy-1.out part = all コリメーターの隙間 と対応している Dose distribution 21 課題6 マルチリーフコリメーターが別の状態にある場合 の吸収線量を調べてみましょう • [surface]セクションでinflしているsurfacex1.inpを surfacex9.inpに変更 • Axis=xyとしている[t-track]のfileをtrack_xy-9.outに 変更 • Axis=xyとしている[t-deposit]のfileをdeposit_xy-9.out に変更 • まずはicntl=8としてtrack_xy-9.epsを見てマルチリー フコリメーターの形状を確認し、次にicntl=0として deposit_xy-9.epsの吸収線量の分布を調べる Dose distribution 22 課題6の答え合わせ マルチリーフコリメーターが別の状態にある場合 の吸収線量を調べてみましょう IMRT.inp [Surface] ・・・・・・ infl: {surfacex9.inp} infl: {surfacey.inp} infl: {surface.zinp} ・・・・・・ ・・・・・・ [T-Track] ・・・・・・ axis = xy file = track_xy-9.out ・・・・・・ [ T - deposit ] ・・・・・・ axis = xy file = deposit_xy-9.out part = all track_xy-9.eps deposit_xy-9.eps コリメーターの隙間 と対応している Dose distribution 23 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 24 課題7 Sumtally機能を使って、2つのマルチリーフコリメー ターの結果を足しあわせましょう • [t-deposit]の最後でsumtally.inpをinflコマンドを 用いることでsumtally subsectionを設定する • [parameters]セクションにおいてicntlを13とする Sumtally.inp Sumtally subsection の始まりと 終わり sumtally start isumtally = 2 nfile = 2 deposit_xy-1.out 3.0 deposit_xy-9.out 1.0 sfile = result.out sumfactor = 1.0 sumtally end 足し合わせるファイル数 足し合わせるファイル名 と重み付けの値 足し合わせた結果のファ イル名 規格化定数 sumtally 25 課題7の答え合わせ Sumtally機能を使って、2つのマルチリーフコリメー ターの結果を足しあわせましょう IMRT.inp result.eps [Parameters] icntl = 13 ・・・・・・ ・・・・・・ ・・・・・・ [ T - deposit ] ・・・・・・ axis = xy file = deposit_xy-9.out part = all gshow = 1 epsout = 1 infl: {sumtally.inp} Surfacex1.inpとSurfacex9.inpの結果が 3:1で足しあわせられている sumtally 26 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 27 課題8 スクリプト言語によるプログラムautorun.batを用いて、 複数回PHITSを実行しましょう • PHITSで計算した結果をコピーするためにoutputという名前 のフォルダを作成する • [surface]セクションでinflしているsurfacex9.inpをsurfacex.inp に変更 • Axis=xyとしている[t-deposit]のfileをdeposit_xy.outに変更 • Icntlを0に戻す • Autrun.batを実行 – (Windowsの場合)Autrun.batをダブルクリック – (Macの場合) autorun_mac.commandをダブルクリック Auto-run program 28 Autrun.bat (autorun_mac.command): 1. フォルダ”MultiLeafCollimator”にあるsurfacex***.inpをコピー 2. その情報を用いてPHITSを実行 3. PHITSの計算終了後、出力ファイルであるphits.outと deposit_xy.outをフォルダ”output”に移動 autorun.bat @echo off echo Calculating %%i ... SET PHITSEXE=“C:\phits\bin\phits274_win.exe" SET OUTDIR="output" ① copy MultiLeafCollimator\surfacex%%i.inp surfacex.inp copy MultiLeafCollimator\cell.inp . copy MultiLeafCollimator\sumtally.inp . copy MultiLeafCollimator\RemovedCell.inp . ② %PHITSEXE% < IMRT.inp for /l %%i in (1, 1, 9) do ( For文の中は→ ) pause exit ③ move phits.out %OUTDIR%\phits-%%i.out move deposit_xy.out %OUTDIR%\deposit_xy-%%i.out move deposit_xy_err.out %OUTDIR%\deposit_xy-%%i_err.out 初期値1、変化量1として、 9まで変数%%iの数字を 変えながら動作する Auto-run program 29 課題8の答え合わせ スクリプト言語によるプログラムautorun.batを用いて、 複数回PHITSを実行しましょう Outputフォルダ内 deposit_xy-1.out deposit_xy-1_err.out deposit_xy-2.out deposit_xy-2_err.out deposit_xy-3.out ・・・・・・ deposit_xy-9_err.out phits-1.out phits-2.out phits-3.out phits-4.out phits-5.out ・・・・・・ phits-9.out 9個のdeposit_xy.outと deposit_xy_err.out、phits.outが 出力されていればOK もし時間が掛かるようであれば、 IMRT.inpのmaxcasを100にして 実行してみてください Auto-run program 30 実習内容 1. 2. 3. 4. 5. 6. 7. 体系の確認 コリメーターのモデリング 線源の設定 吸収線量の空間分布の評価 Sumtallyによるタリー結果の足しあわせ スクリプト言語を用いたPHITSの連続実行 強度変調放射線治療シミュレーションにお ける線量分布 Table of contents 31 課題9 Sumtally機能を使って、autorun.batにより得られた複 数のタリー結果を加重平均により足し合わせましょう • [parameters]セクションにおいてicntlを13とする • sumtally.inpが更新されているのを確認する Sumtally.inp sumtally start isumtally = 2 nfile = 9 output/deposit_xy-1.out 0.2000-0.0000 output/deposit_xy-2.out 0.3000-0.2000 output/deposit_xy-3.out 0.4000-0.3000 ・・・・・・ output/deposit_xy-9.out 1.0000-0.9000 sfile = result.out sumfactor = 1.0 sumtally end sumtally 32 課題9の答え合わせ Sumtally機能を使って、autorun.batにより得られた複 数のタリー結果を加重平均により足し合わせましょう result.eps Sumtally.inp sumtally start isumtally = 2 nfile = 9 output/deposit_xy-1.out output/deposit_xy-2.out output/deposit_xy-3.out ・・・・・・ output/deposit_xy-9.out sfile = result.out sumfactor = 1.0 sumtally end 0.2000-0.0000 0.3000-0.2000 0.4000-0.3000 1.0000-0.9000 これらの重み付けで 各マルチリーフコリメーター の計算結果が足しあわせ られている sumtally 33 まとめ • マルチリーフコリメーターをモデリングし、時間変化 により様々な形状をとった場合の計算ができるよう になった。 • Sumtally機能を用いて複数のタリー結果を足し合わ せることにより、強度変調放射線治療を模擬した吸 収線量の空間分布を求めた。 • スクリプト言語を用いて、複数回のPHITS計算を実 行した。 Summary 34
© Copyright 2024 ExpyDoc