技术文章及通讯

开发matRad,一个用于放射治疗计划的开源剂量计算和优化工具包

作者:Mark Bangert博士,德国癌症研究中心(DKFZ), Oliver教授Jäkel,德国癌症研究中心(DKFZ)和海德堡大学,Niklas Wahl博士,德国癌症研究中心(DKFZ), Hans-Peter Wieser博士,Ludwig-Maximilian-Universität München (LMU Munich)


放射治疗、手术和化疗是癌症治疗的三大支柱。放射治疗的一个关键因素是一个被称为放射治疗计划的大量计算机辅助过程。在这个过程中,肿瘤学家和其他临床医生依靠治疗计划软件来精确模拟辐射对患者组织的影响,并优化辐射剂量,以确保肿瘤覆盖,同时保留周围组织和器官。

商业开发的放射治疗计划软件是专有的和封闭的,这限制了它对致力于推进治疗计划技术的研究人员的价值。因此,许多研究所和大学要么投入大量精力开发和维护自己的软件,要么使用开源软件包,其中大多数只关注治疗计划的单个步骤或单一的辐射方式。

我们在德国癌症研究中心(Deutsches Krebsforschungszentrum,或DKFZ)的开发团队创建了matRad1matRad是一个开源的、多模态剂量计算和辐射治疗计划优化工具包(图1)。因为matRad完全是用MATLAB编写的®在美国,研究人员可以很容易地修改代码来评估新的算法。MATLAB擅长执行处理计划中涉及的许多稀疏矩阵运算;因此,matRad可以像其商业产品一样快速简便地制定临床准确的治疗计划。

图1。matRad 2.10.0接口,具有工作流、计划、优化和可视化控件。该界面显示了一个前列腺治疗计划,使用两个相反的光束角度和扫描的质子

图1。matRad 2.10.0接口,具有工作流、计划、优化和可视化控件。该界面显示了一个前列腺治疗计划,使用两个相反的光束角度和扫描的质子

在治疗计划工作流中使用matRad

matRad包包括MATLAB脚本、函数和类,涵盖整个治疗计划工作流程,从设置治疗参数和优化计划到可视化和评估结果。研究人员在matRad接口或MATLAB命令行中启动该工作流中的每个步骤。

研究人员首先从他们自己的患者或matRad提供的匿名患者病例中导入计算机断层扫描(CT)扫描数据。该软件使用图像处理工具箱™中的函数从MATLAB文件或医学数字成像和通信(DICOM)和DICOM- rt标准格式的文件中读取数据。

接下来,研究人员为治疗计划和要使用的放射治疗机指定参数。这些参数可以包括龙门架的角度数(用于在患者周围放置辐射源)和要应用的治疗方式:强度调制光子、扫描质子或扫描碳离子。可以通过接口或编辑matRad脚本设置参数(图2)。

matRad script for setting the treatment plan parameters used for the plan displayed in Figure 1.

" data-toggle="lightbox" class="add_margin_0 ">图2。matRad脚本的一段,用于设置用于图1中显示的计划的治疗计划参数。

图2。一段matRad脚本,用于设置治疗计划参数用于图1中所示的计划。

matRad根据指定的参数生成光束几何形状。然后,研究人员调用matRad剂量计算函数,该函数为每个辐射源元素计算传递到目标肿瘤的各个区域和周围正常组织的剂量矩阵(图3)。

图3。用于剂量计算的质子治疗计划设置示意图。来自虚拟辐射源(黄色)的肿瘤或患者(绿色)内的目标体积(红色)被单独的质子束覆盖,在一定范围内形成所谓的布拉格峰(黑色实线和点)。matRad剂量计算函数通过患者(实线和虚线)进行体积射线投射,以捕获解剖异质性,然后计算每个射线在患者中的剂量贡献。

图3。质子治疗计划的示意图剂量计算.来自虚拟辐射源(黄色)的肿瘤或患者(绿色)内的目标体积(红色)被单独的质子束覆盖,在一定范围内形成所谓的布拉格峰(黑色实线和点)。matRad剂量计算函数通过患者(实线和虚线)进行体积射线投射,以捕获解剖异质性,然后计算每个射线在患者中的剂量贡献。

最后,研究人员确定了治疗的临床目标和限制条件。这些可能包括规定的递送到肿瘤的最小剂量和允许到达附近器官的最大剂量。在将这些临床目标和约束转化为数学目标和约束后,matRad运行优化求解器来找到最佳剂量分布。为了优化,可以设置matRad来使用fmincon来自Optimization Toolbox™或IPOPT,这是一个用c++编写的开源优化软件库,并以MEX文件的形式导入MATLAB。优化结果可以在matRad中以各种图和可视化的形式查看(图4)。

图4。在matRad中生成的可视化。左图:头颈癌病例冠状面CT和计划质子剂量。中间:相同可视化的3D渲染。右:样本剂量直方图和统计表。

图4。在matRad中生成的可视化。左图:头颈癌病例冠状面CT和计划质子剂量。中间:相同可视化的3D渲染。右:样本剂量直方图和统计表。

研究人员可以补充或修改matRad中使用的算法,以探索改进治疗计划的想法。通过这种方式,matRad充当了一个原型化和评估新方法的平台。事实上,在过去的三年里,matRad已经被40多篇发表的同行评审研究论文引用,并且它被积极地用于全球众多研究小组

matRad在教室里

matRad不仅用于研究;它也被用作教学工具。例如,在海德堡大学(Heidelberg University)的一门课程中,学生们使用matRad来了解粒子疗法(一种相对较新的治疗方式)的治疗计划。matRad在让学生探索不同的医疗决策、患者场景和机器功能如何影响治疗计划方面发挥着重要作用。我们用MATLAB编译器™打包了一个独立版本的matRad,供没有安装MATLAB的学生使用。

对于高中生,国际粒子物理研究小组提供了一系列的国际大师班。在一个新的粒子治疗大师班我们于2019年与欧洲核子研究中心(CERN)和达姆施塔特大学(GSI Darmstadt)合作启动了该项目,学生们学习使用放射疗法治疗癌症,并观看使用独立版本matRad的治疗计划演示。

为什么MATLAB ?

有几个因素促使我们的团队在MATLAB中开发matRad。首先,MATLAB在医学物理界和研究型大学中被广泛使用。此外,MATLAB使我们能够快速地建立新算法的原型。它的可视化功能支持快速调试,并提供对结果的透视图,从而打开其他金宝app探索途径。MATLAB非常适合matRad使用稀疏矩阵执行的计算。MATLAB中高度优化的线性代数运算使我们能够完成实际病例的剂量计算和优化,其运行时间与商业治疗计划系统相当。最后,在MATLAB中开发matRad使我们能够使软件具有高度的通用性:用户可以通过接口或MATLAB命令行与软件交互,开发自己的功能,并将matRad用于研究和教学。

持续的matRad开发

matRad仍然处于积极的开发中,我们定期接受研究人员对代码的某些方面进行改进的请求。例如,我们最近与智利Pontificia Universidad Católica de Chile的Edgardo博士Dörner合作,将蒙特卡洛光子剂量计算引擎集成到matRad中。引擎是用C语言编写的,并作为MEX文件导入到matRad中。

此外,我们已经开始利用MATLAB面向对象编程的特性。例如,matRad现在使用面向对象的框架来设置优化目标。对探索新的优化目标感兴趣的研究人员可以从我们现有的类中派生出他们自己的类,实现改进,然后立即在测试治疗计划中尝试新的目标。

我们现在使用并行计算工具箱™在多个计算核上执行matRad。例如,在不确定性分析中,我们计算不同病人体位的多个剂量。并行计算工具箱使我们能够在多核工作站上快速设置和运行这个令人尴尬的并行任务。我们还开始在OpenStack上运行matRad,以利用云中更大的高性能计算资源池。

matRad是作为研究工具设计的,因此不能用于治疗真正的患者。然而,它产生的剂量计算与临床批准的治疗计划系统产生的剂量计算非常匹配。这种性能水平为使用matRad作为验证其他软件生成的治疗方案的独立工具提供了机会。

1当前版本为matRad ' Blaise ' 2.10.0

作者简介

Mark Bangert博士在DKFZ担任博士后和小组组长期间发起了matRad项目。他目前在海德堡数据分析公司HMS Analytical software担任软件工程师,同时仍在海德堡德国癌症研究中心(DKFZ)的医学物理系担任兼职职位。

Oliver Jäkel教授是海德堡大学医学院医学物理学的正教授,也是海德堡离子束治疗设施(HIT)的医学物理学主任。他也是DKFZ放射肿瘤学医学物理系的负责人。

Niklas Wahl博士目前是DKFZ放射肿瘤学医学物理系放射治疗优化组的博士后研究员和领导matRad开发。

Hans-Peter Wieser博士是路德维希-马克西米利安大学医学物理系的博士后研究员München。此前,他在DKFZ的放射肿瘤学医学物理系获得博士学位,在那里他对matRad做出了重大贡献。

2020年出版的

查看相关行业的文章