技术文章和通讯

开发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)的开发团队创建了matRad1这是一个开源的多模态剂量计算和优化工具包,用于辐射治疗计划(图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来自优化工具箱™或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合作启动了该项目,学生们学习使用放疗进行癌症治疗,并观看使用matRad独立版本的治疗计划演示。

为什么MATLAB ?

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

正在进行的matRad开发

matRad仍然处于积极的开发中,我们定期接受研究人员的pull请求,他们对代码的某些方面进行了改进。例如,我们最近与智利Pontificia大学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分析软件公司担任软件工程师,同时仍在海德堡德国癌症研究中心(DKFZ)的医疗物理系担任兼职职位。

Oliver教授Jäkel是海德堡大学医学院医学物理学的正教授,也是海德堡离子束治疗中心(HIT)的医学物理学主任。他还领导着DKFZ放射肿瘤学医学物理系。

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

Hans-Peter Wieser博士是Ludwig-Maximilian-University München医学物理系的博士后研究员。此前,他在DKFZ的放射肿瘤学医学物理系获得博士学位,在那里他对matRad做出了重要贡献。

2020年出版的

查看相关行业文章