技术文章和通讯

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

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


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

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

我们在德国癌症研究中心(Deutsches Krebsforschungszentrum,或DKFZ)的开发团队创建了matRad1.,一个用于放射治疗规划的开源、多模式剂量计算和优化工具包(图1)。因为matRad完全是用MATLAB编写的®,研究人员可以很容易地修改代码来评估新的算法。MATLAB擅长处理处理计划中涉及的许多稀疏矩阵运算;因此,matRad与商业上的同类产品一样,能够快速、轻松地制定出准确的临床治疗方案。

图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">

图2。一部分用于设置治疗计划参数的matRad脚本用于图1中显示的计划。

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

图3。质子处理计划设置示意图剂量计算. 通过虚拟辐射源(黄色),患者体内的肿瘤或目标体积(红色)(绿色)被单独的质子束覆盖,在规定范围内形成所谓的布拉格峰(实心黑线和黑点)。matRad剂量计算功能通过患者(实线和虚线)执行体积光线投射,以捕获解剖异质性,然后计算每条光线在患者体内的剂量贡献。

最后,研究人员确定了治疗的临床目标和限制条件。这些可能包括向肿瘤输送规定的最小剂量和允许到达附近器官的最大剂量。将这些临床目标和约束转化为数学目标和约束后,matRad运行优化解算器以找到最佳剂量分布。对于优化,可以将matRad设置为使用铁铬镍铁合金从优化工具箱™ 或IPopt,一个开源的优化软件库,用C++编写,并导入到Matlab中作为MEX文件。优化结果可以在多种图和可视化中在Malad中查看(图4)。

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

研究人员可以补充或修改matRad中使用的算法,以探索改进治疗计划的想法。通过这种方式,matRad充当了一个原型设计和评估新方法的平台。事实上,在过去三年中,matRad已在40多篇发表的同行评审研究论文中被引用,并在许多领域得到了积极应用全球众多研究机构.

matRad在教室里

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

对于高中生,国际粒子物理研究小组提供了一系列的国际大师班。在一个新的粒子治疗来说,该项目是我们于2019年与CERN和GSI Darmstadt合作发起的,学生们将学习使用放疗的癌症治疗,并观看使用独立版本的matRad的治疗计划演示。

为什么是MATLAB?

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

matRad持续发展

matRad仍在积极开发中,我们定期接受对代码某些方面进行改进的研究人员的pull请求。例如,我们最近与智利卡托利卡天主教大学的Edgardo Dörner博士合作,将蒙特卡罗光子剂量计算引擎纳入matRad。该引擎是编写的以C语言编写,并作为MEX文件导入matRad。

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

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

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

1.当前版本为matRad 2.10.0布莱斯.

关于作者

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

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

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

汉斯·彼得·维瑟博士是慕尼黑路德维希·马克西米利安大学医学物理系的博士后研究员。此前,他获得了博士学位。在DKFZ放射肿瘤学医学物理系,他为matRad做出了重大贡献。

2020年出版

查看相关行业的文章