BlochSolver実行のための入力テキスト(command.txt)の書き方
BlochSolverは,さまざまなパルスシーケンス,画像マトリクス数,画像サイズ,サブボクセル数,数値ファントム,静磁場分布,勾配磁場非線形性,高周波磁場分布(送受信)に対応している.
それらは,ユーザーズマニュアルなどに詳しく記載されているが,ここでは,第5章~第17章で解説したパルスシーケンスのBlochシミュレーションを実行するための,パラメタの設定に関して説明する.これらのパラメタを設定するためのファイルが,command.txtというテキストファイルである.
基本的なcommand.txtの例(先頭の行番号は実際は説明のため付加):
1: set dim 256 256 256
2: set actual-dim 220.0 220.0 220.0
3: set subvoxel-dim 1 1 32
4: set pd "./phantom/3T_brain/pd.flt" dtype=float32 factor=1.0 offset=0.0
5: set t1 "./phantom/3T_brain/t1.flt" dtype=float32 factor=1.0 offset=0.0
6: set t2 "./phantom/3T_brain/t2.flt" dtype=float32 factor=1.0 offset=0.0
7: set sequence "./sequence/SequenceGenerator14/2D_PDW_MS_FSE.seq.py"
8: start
9: save complex "./result/${DATE}/${SERIAL_ID}-${SEQUENCE_NAME}-complex.flt"
- quit
1行目には,数値ファントムのマトリクスサイズを整数値で指定する.x,y,zの順番に指定する.
2行目には,数値ファントムの実際のサイズをx,y,zの順番に指定する.単位はmmである.
3行目には,サブボクセル数をx,y,zの順番に指定する.
4行目には,プロトン密度分布のファイル名を指定する.データタイプは,32ビット浮動小数点数,乗数(倍率)と加える数を,factorとoffsetで指定する.データタイプは,他にもdouble,int32などが使用可能である.
5行目には,T1分布のファイル名を指定する.データタイプなどは,上記と同様である.
6行目には,T2分布のファイル名を指定する.データタイプなどは,上記と同様である.
7行目には,パルスシーケンスファイル名を指定する.
静磁場分布,勾配磁場非線形性,高周波磁場分布(送信と受信)などは,別途指定しても良いが,必須ではない.指定されない場合には,いずれも,均一なものとして扱われる.
8行目は,Bloch simulationの計算の開始である.
1~7行目に記載された内容が,BlochSolverの文法に沿っていない場合や,ファイルが見つからない場合,パルスシーケンスの文法などが不適切な場合などには,エラーコメントが表示される.いっぽう,それらが適切な場合には,計算が開始される.
9行目は,計算結果を保存する命令が記載されている.Resultというフォルダの中の,その日のフォルダ(なければ自動的に作成される)の中に,結果のシリアル番号順に,シーケンスファイルの中に記述されたシーケンス名に,-complex.fltという項目を付加して保存する.complex.fltは,MR信号のreal partとimaginary partが,それぞれ32ビット浮動小数点数で,ペア(複素数)として保存されていることを表している.
10行目は,このバッチファイルが終了することを示している.
以下は,第5章~第17章で紹介したパルスシーケンスで使用したサブボクセル数の例である.ただし,以下のシーケンスは,axial sliceを前提としているため,z方向(スライス方向)のサブボクセルが多くなっているが,coronal sliceではy方向,sagittal方向ではz方向のサブボクセルを多くする.ただし,2D_SPGR,3D_SPGR,MPRAGEの場合には,リード方向のサブボクセル数を増加させる.
2D gradient echo (RF spoiled) : 4 x 1 x 4
2D balanced SSFP : 1 x 1 x 4
2D Spin Echo : 1 x 1 x 4
2D GRE-EPI : 1 x 1 x 4
2D SE-EPI : 1 x 1 x 4
2D_multiple_GRE : 1 x 1 x 4
2D_multiple_SE : 1 x 1 x 32
2D_multislice_multiple_SE : 1 x 1 x 32
2D_PDW_FSE (single slice) : 1 x 1 x 32
2D_T1W_FSE (single slice) : 1 x 1 x 16
2D_T2W_FSE (single slice) : 1 x 1 x 32
2D_FLAIR (single slice) : 1 x 1 x 32
2D_MS_PDW_FSE (single slice) : 1 x 1 x 32
2D_MS_T1W_FSE (single slice) : 1 x 1 x 16
2D_MS_T2W_FSE (single slice) : 1 x 1 x 32
2D_MS_FLAIR (single slice) : 1 x 1 x 32
3D_SPGR : 32 x 1 x 1
MPRAGE : 32 x 1 x 1
3D_FSE : 160 x 1 x 1
2D_Radial : 1 x 1 x 4
2D_Spiral : 1 x 1 x 4