放疗、手术和化疗是癌症治疗的三大支柱。放射治疗的一个关键要素是大量计算机辅助的过程,即放射治疗计划。在这个过程中,肿瘤学家和其他临床医生依靠治疗计划软件精确模拟放疗对患者组织的影响,优化放疗剂量,在保证肿瘤覆盖的同时,保留周围组织和器官。
商业开发的放射治疗计划软件是专有的和封闭的来源,这限制了它的价值研究人员的工作,以推进治疗计划技术。因此,许多研究所和大学要么投入大量精力开发和维护自己的软件,要么使用开源软件包,其中大多数只关注治疗计划的一个步骤或单一的辐射方式。
我们在德国癌症研究中心(Deutsches Krebsforschungszentrum或DKFZ)的开发团队创造了马泰1(图1)因为matRad完全是用MATLAB编写的®,研究人员可以轻松修改代码以评估新算法。Matlab擅长执行治疗计划中涉及的许多稀疏矩阵操作;因此,Matrad将临床准确的治疗计划尽快,随着其商业对应物。
在治疗计划工作流程中使用matRad
matRad包包括MATLAB脚本、函数和类,跨越整个治疗计划工作流,从设置治疗参数和优化计划到可视化和评估结果。研究人员在matRad界面或从MATLAB命令行启动这个工作流中的每一步。
研究人员首先从其自己的患者中的一个进口计算机断层扫描(CT)扫描数据,或者由Matrad提供的一个匿名患者病例中的一个扫描数据。该软件读取来自MATLAB文件的数据或使用来自图像处理工具箱™的功能的MATLAB文件和DICOM-RT标准格式中的数字成像和通信中的文件。
接下来,研究人员规定了用于使用的治疗计划和放射疗法的参数。这些参数可以包括龙门架的角度(用于定位患者周围的辐射源)和待应用的治疗方式:强度调制的光子,扫描质子或扫描的碳离子。可以通过接口或通过编辑Matrad脚本来设置参数(图2)。
matRad根据指定的参数生成波束几何图形。然后,研究人员调用matRad剂量计算函数,该函数计算每个辐射源元素对靶肿瘤单个区域和周围正常组织的剂量矩阵(图3)。
最后,研究人员定义了治疗的临床目标和约束。这些可能包括将规定的最小剂量递送到肿瘤,并且最大剂量允许到达附近器官。在将这些临床目标和限制转化为数学目标和约束之后,Matrad运行优化求解器以找到最佳剂量分布。为了优化,可以设置matrad来使用fmincon
来自优化工具箱™或IPOPT,一个用c++编写的开源优化软件库,并作为一个MEX文件导入MATLAB。优化的结果可以在matRad中以各种图和可视化的方式查看(图4)。
研究人员可以补充或修改在matRad中使用的算法,以探索改进治疗计划的想法。在这种情况下,matRad充当了原型和评估新方法的平台。事实上,在过去的三年里,matRad已经被40多篇同行评议的研究论文引用,并且它被积极地用于全球众多研究机构。
matRad在教室里
matRad不仅用于研究;它也被用作教学工具。例如,在海德堡大学(Heidelberg University)的一门课程中,学生们使用matRad来了解粒子疗法(一种相对较新的治疗方式)的治疗计划。matRad在让学生探索不同的医疗决策、病人情况和机器能力如何影响治疗计划方面扮演着重要的角色。我们打包了一个独立版本的MATLAB编译器™,供没有安装MATLAB的学生使用。
对于高中生,国际粒子物理研究小组提供了一系列的国际大师班。在一个新的粒子疗法大师,我们在2019年开始与CERN和GSI DARMSTADT合作,学生学习使用放射疗法的癌症治疗,并观察使用Matrad的独立版本的治疗计划的演示。
为什么MATLAB ?
几个因素促使我们的团队在MATLAB中开发matRad。首先,MATLAB在医学物理学社区和研究型大学中被广泛使用。此外,MATLAB使我们能够快速原型新的算法。它的可视化功能支持快速调试,并提供关于结果的透视图,为探索提供金宝app了更多的途径。MATLAB非常适合于matRad用稀疏矩阵进行的计算。在MATLAB中高度优化的线性代数运算使我们能够完成剂量计算和优化的实际患者病例,运行时间可媲美那些商业治疗计划系统。最后,在MATLAB中开发matRad使我们的软件具有高度的通用性:用户可以通过界面或通过MATLAB命令行与软件进行交互,开发自己的功能,并将matRad用于研究和教学。
matRad持续发展
matRad仍在积极开发中,我们定期接受对代码某些方面进行改进的研究人员的pull请求。例如,我们最近与智利Pontificia university Católica de Chile的Edgardo博士合作,将蒙特卡洛光子剂量计算引擎整合到matRad中。该引擎是用C编写的,并作为一个MEX文件导入到matRad中。
此外,我们已经开始利用MATLAB的面向对象编程特性。例如,matRad现在使用面向对象的框架来设置优化目标。对探索新的优化目标感兴趣的研究人员可以从我们现有的类中派生出自己的类,实现改进,然后立即在测试治疗计划中尝试新的目标。
我们现在正在使用并行计算工具箱™在多个计算核心上执行Matrad。例如,在不确定性分析中,我们计算来自不同患者位置的多个剂量。并行计算工具箱使我们能够在多核工作站上快速设置并运行此令人尴尬的并行任务。我们还开始在OpenStack上运行Matrad,以利用云中的大型高性能计算资源池。
Matrad被设计为研究工具,因此不能用于治疗真实患者。然而,它产生的剂量计算与临床批准的治疗计划系统产生的那些密切相关。这种性能级别开启了使用Matrad作为用于验证其他软件生成的治疗计划的独立工具的机会。
1目前的释放是matRad 2.10.0布莱斯。