基于深度学习方法实现SPECT放射性核素定量测量(二)—GATE仿真
(1)GATE介绍
GATE(GEANT4 Application for Emission Tomography)由OpenGATE组织开发,是一个基于GEANT4的软件包。它封装了GEANT4库,是一个专用于核医学领域的免费开源、通用性、脚本化、模块化的仿真平台。GATE继承了GEANT4仿真工具包的优势,其中包括经过验证的物理模型、复杂几何的描述、强大的可视化功能和3D渲染工具等,并且具有发射断层成像特有的功能。GATE软件的架构可由图1所示的层级结构表示,以GEANT4为内核(GEANT4 kernel),由核心层(Core layer)、应用层(Application layer)以及用户层(User level)组成。
GATE仿真步骤由图2所示,包括设计探测器几何结构、设置体模参数、设置物理过程、初始化、设置电子学参数、设置放射源、设置随机数以及定义数据输出格式、开始仿真。在仿真中针对各步骤编写GATE宏语言,通过可视化检查探测器结构,最后通过主文件调用各模块代码执行程序。其中设置探测器结构、物理过程、电子学参数和放射源设置是GATE仿真重点。本课题仿真过程基于GATE9.0版本(目前最新版本貌似为9.1),在linux系统下实现,并且采用多线程并行计算加快仿真速度,缩短仿真时长。
GATE具体使用说明可以参考官方说明:http://opengatecollaboration.org/
(2)设置探测器
仿真探测器设置以西门子公司Symbia T2型双探头SPECT/CT系统为原型,构建SPECT系统结构。使用SPECTHead系统作为探测器几何结构的模板,自上而下定义的几何结构分别为:World、SPECTHead、 Shielding、Collimator、Scintillator、Back Compartment,然后需要将Scintillator通过attach命令将其连接到CrystalSD层次,使Scintillator具备记录粒子与物质相互作用信息的功能。定义的SPECTHead系统结构如图3所示。设置探测器选择360度,为了加快仿真速度,可以使用四个探头,每个探头只需选择90度即可,如图4所示。各结构材料如表1所示。

探测器设置的代码如下所示:
# V I S U A L I S A T I O N
#####
/vis/disable
# M A N D A T O R Y
#####
/gate/geometry/setMaterialDatabase GateMaterials.db
# G E O M E T R Y
#####
# World
# Define the world dimensions
##
/gate/world/geometry/setXLength 100 cm
/gate/world/geometry/setYLength 100 cm
/gate/world/geometry/setZLength 100 cm
# Scanner Head
# Create a new box representing the main head-volume
# SPECThead is the name of the predefined SPECT system
# Create the SPECT system, which will yield an Interfile output of projection data
##
/gate/world/daughters/name SPECThead
/gate/world/daughters/insert box
/gate/SPECThead/geometry/setXLength 7. cm
/gate/SPECThead/geometry/setYLength 21. cm
/gate/SPECThead/geometry/setZLength 30. cm
/gate/SPECThead/placement/setTranslation 0. 25. 0. cm
/gate/SPECThead/placement/setRotationAxis 0 0 1
/gate/SPECThead/placement/setRotationAngle 90 deg
/gate/SPECThead/repeaters/insert ring
/gate/SPECThead/ring/setRepeatNumber 4
/gate/SPECThead/setMaterial Air
/gate/SPECThead/moves/insert orbiting
#/gate/SPECThead/orbiting/setSpeed 2.8125 deg/s
/gate/SPECThead/orbiting/setSpeed 1.40625 deg/s
#/gate/SPECThead/orbiting/setSpeed 0.703125 deg/s
/gate/SPECThead/orbiting/setPoint1 0 0 0 cm
/gate/SPECThead/orbiting/setPoint2 0 0 1 cm
/gate/SPECThead/vis/forceWireframe
# Shielding
# Create the shielding volume
##
/gate/SPECThead/daughters/name shielding
/gate/SPECThead/daughters/insert box
/gate/shielding/geometry/setXLength 7. cm
/gate/shielding/geometry/setYLength 21. cm
/gate/shielding/geometry/setZLength 30. cm
/gate/shielding/plac