引用本文: 李诗琪, 聂涌, 王俊清, 李康, 沈彬. LLMKA:基于Matlab的下肢骨肌运动分析工具箱. 中国修复重建外科杂志, 2022, 36(5): 525-533. doi: 10.7507/1002-1892.202202033 复制
骨肌运动分析可从人眼观察到的运动特征轨迹计算出作用于骨骼系统的净外力,推断出肌肉骨骼的内部状态[1-5]。商用的具有图形界面的骨肌运动分析平台操作简单,但价格昂贵,且没有开源,导致不能对肌骨模型及分析流程进行深度个性化定制[6-7]。一些开源骨肌运动分析程序,各步骤配置繁琐且耗时、耗力,例如使用OpenSim进行骨肌运动分析,通常需要5个步骤 [Scale、Inverse Kinematics(IK)、Residual Reduction Algorithm(RRA)、Static Optimization(SO)、Joint Reaction Analysis(JRA)][8-10];各步骤都需先设置配置文件,再执行该步骤,其设置过程既繁冗又易出错[11]。临床研究人员需等待此步骤执行完后方可对下一步进行配置,整个骨肌运动分析流程较为碎片化,大大加重了临床研究人员的疲劳程度,难以保证数据质量及科研实施效率。因此亟待开发一种简单易用的工具箱,管控需繁琐配置的骨肌运动分析流程,提升骨肌运动分析效率。
Matlab功能强大且应用于众多领域,现有许多基于Matlab开发的工具箱,如Biomechanical ToolKit(Barre 等, 2014)利用Matlab和生物力学工具箱(btk)将实验数据转换为OpenSim兼容的文件[12];MOtoNMS(Alice Mantoan等,2015)处理来自不同运动捕捉设备的实验数据,然后生成可由神经肌肉骨骼建模输入的文件[13];针对肌肉弥散张量MRI示踪的Matlab工具箱,可完成文件输入、图像配准、去噪和扩散张量计算的预处理任务等功能[14];针对图像处理的Matlab工具箱,实现了读取、存储、显示、加噪、去噪、增强、边缘检测、图像分割等功能[15]。因此,可利用Matlab强大的数学计算能力及调用接口能力,来管控骨肌运动分析流程。
本研究基于Matlab开发了一种工具箱LLMKA(Lower Limbs Musculoskeletal Kinematics Analysis),通过对比使用该工具箱与使用OpenSim进行骨肌运动分析,验证其是否能在保证骨肌运动分析过程和结果一致性的前提下提高骨肌运动分析效率。
1 研究方法
1.1 LLMKA工具箱的设计
1.1.1 功能设计
采用“批处理驭繁琐操作”的设计理念,绘制设计框架(图1)。利用Matlab强大的数据处理能力和调用OpenSim库能力[16-21],实现自动骨肌运动分析(图1绿色方框);并要求该工具箱可批处理多个患者(图1黑色方框)。选用以下几个步骤方可进行骨肌运动分析[8]:① 模型缩放:基于患者静态实验数据对通用OpenSim模型进行缩放,以此来满足特定受试者。② 逆运动学分析:将患者的三维标签轨迹转化为广义坐标轨迹(关节角度和/或平移)。③ 残差缩减算法:最大程度地减少建模和标记数据处理错误的影响。④ 静态肌力优化:将每个瞬间的净关节力矩分解为单个肌肉力[21]。⑤ 关节力分析:计算约束身体运动的关节力。

1.1.2 程序设计
① 界面设计:根据设计框架采用Matlab界面编程设计LLMKA界面(图2)。界面包含Button Set板块和Patient Information板块,Button Set板块包含Select Folder按钮(功能对应图1蓝色方框)和Run按钮(功能对应图1黑色方框),Patient Information板块用于展示患者姓名(第1列)和骨肌运动分析完成进度(第3列),并在第2列中输入患者体质量数据(功能对应图1灰色方框)。

② 文件存取设计:LLMKA工具箱文件存放位置见图3。图3a展示的输入文件存放位置中,setupFiles文件夹存放着进行骨肌运动分析五步骤所需的配置文件模板,modelFiles文件夹存放着OpenSim通用模型,patientsData文件夹存放着需进行骨肌运动分析的N例患者并以患者名字建立文件夹,文件夹内存放其静态和动态实验数据。图3b展示了使用LLMKA工具箱对患者A进行骨肌运动分析后的输出文件存放位置。

a. 输入文件存放位置;b. 输出文件存放位置
Figure3. Document storage locationa. Input file storage location; b. Output file storage location
③ 主要程序设计:首先通过函数式编程预先定义执行模型缩放、逆运动学分析、残差缩减算法分析、静态肌力优化分析、关节力分析五步骤的功能函数[22]。骨肌运动分析工作流程(图4):基于图3a setupFiles文件夹中的通用配置文件,再根据当前患者信息将其设置为该患者在此步骤的特定配置文件,并保存配置文件(如图3b下方文件所示),再使用run函数运行该步骤。

椭圆框对应图1相应步骤的橙色方框
Figure4. Flow chart of the musculoskeletal kinematics analysisThe oval box corresponded to the orange box of the corresponding step in Fig.1
最后,基于Matlab的Application compiler将该程序打包为独立应用程序exe,应用程序图标见图5a,它可以在不安装Matlab的电脑上使用LLMKA工具箱。图5b是安装LLMKA应用程序图标,安装完成后即可在电脑桌面得到图5a所示图标。

a. LLMKA应用程序图标;b. LLMKA 安装应用程序图标
Figure5. The toolbox icon of LLMKAa. LLMKA application icon; b. LLMKA installation application icon
1.2 LLMKA工具箱的验证
1.2.1 软硬件环境
硬件环境:电脑型号,hp ProOne 400 G5 23.8-in ALL-in-one;处理器,Intel(R)Core(TM)i3-8100T CPU@3.10GHz;内存,8 192MB RAM;系统类型,64位;显卡,inter(R)UHD Graphics 630。软件环境:Windows 10 企业版;LLMKA.exe(基于MatlabR2020b开发);OpenSim4.2。
1.2.2 患者来源
临床研究人员进行膝关节骨关节炎患者的步态研究时,招募了120例膝关节内侧骨关节炎患者,通过光学动作捕捉系统(Oqus300;Qualisys公司,瑞典)和测力台(Bertec公司,美国)采集患者的步态实验数据,采样频率290 Hz,采样时间约3 s。使用LLMKA工具箱对这些数据进行骨肌运动分析。
1.2.3 骨肌运动分析过程和结果一致性检验
选择1位骨肌运动分析临床研究人员,分别采用LLMKA工具箱和OpenSim两种方法,对同1例膝关节内侧骨关节炎患者进行骨肌运动分析,记录并比较两种方法分析步骤和结果,验证这两种方法进行骨肌运动分析的过程是否具有一致性。因运行模型缩放步骤后输出结果为OpenSim模型文件(osim格式),不易对比分析,因此采用检验后续步骤结果一致性的方法反证模型缩放结果的一致性。其余四步骤运行后输出结果为表格形式,因此绘制4个Bland-Altman图对应四步骤运行结果一致性检验,以此查验两种方法得到的逆运动学分析结果、残差缩减算法结果、静态肌力优化结果、关节力分析结果是否具有一致性[23]。用黑色虚线表示差值平均值为 0的基准线,未用其他线表示一致性界限的上下限,数据点越靠近基准线,则两方法的分析结果一致性越高。
1.2.4 骨肌运动分析时间和效率检验
研究人员使用LLMKA工具箱对120例患者进行骨肌运动分析,并记录完成分析的操作步骤和分析总时间、人工参与时间。由于120例患者骨肌运动分析数据已通过LLMKA工具箱获得,无需再重复使用OpenSim进行分析,因此OpenSim对120例患者进行骨肌运动分析的操作步骤和分析总时间,根据1例患者的数据进行估算。因为使用OpenSim进行骨肌运动分析有五步,每步骤运行时间平均为2 min,研究人员一般等待上一步骤执行完后再对下一步骤进行配置,因此使用OpenSim进行骨肌运动分析的总时间即为人工参与时间。最后对比两种方法在骨肌运动分析过程中所花费的总时间、人工参与时间以及操作步骤。
2 结果
2.1 骨肌运动分析过程和结果一致性检验
使用LLMKA工具箱对1例患者进行骨肌运动分析,需进行模型缩放、逆运动学分析、残差缩减算法、静态肌力优化、关节力分析五步骤,分别对应于使用OpenSim对同一例患者进行骨肌运动分析的Scale、IK、RRA、SO、JRA五步骤[6]。因此,使用LLMKA工具箱进行骨肌运动分析与使用OpenSim的分析过程具有一致性。并且使用LLMKA工具箱或使用OpenSim运行某步骤后,输出结果数目一致。见表1。

由于运行残差缩减算法和静态肌力优化后得到的输出结果有多个,因此Bland-Altman 图中采用不同颜色或形状代替某步骤的不同输出文件。结果显示,使用LLMKA工具箱进行骨肌运动分析,在逆运动学分析、残差缩减算法、静态肌力优化、关节力分析四步骤中得到的输出变量与使用OpenSim对应步骤得到的数据偏差均落在0值基准线[24],表明这两种方法得到的结果完全一致。见图6。

a. 逆运动学分析结果;b. 残差缩减算法结果;c. 静态肌力优化结果;d. 关节力分析结果
Figure6. Bland-Altman grapha. Inverse kinematics analysis results; b. Residual reduction algorithm results; c. Static optimization results; d. Joint reaction analysis results
2.2 骨肌运动分析时间和效率检验
2.2.1 操作步骤比较
以1例患者为例,使用OpenSim进行骨肌运动分析需在2个平台操作、完成10个流程、操作129次;使用LLMKA工具箱只需在1个平台操作、完成4个流程、操作6次,其中点击Select Folder按键的操作步骤有3次是指点击按键、选择文件、确定文件。见图7。

a. 使用OpenSim;b. 使用LLMKA工具箱
Figure7. Comparison of the operation process and operation steps of two methods on a patienta. Using the OpenSim; b. Using the LLMKA toolbox
随患者数量增加,使用OpenSim进行骨肌运动分析的操作步骤呈线性增加,而使用LLMKA工具箱分析的操作步骤则呈缓慢增加。当需处理120例患者时,使用LLMKA工具箱比使用OpenSim操作步骤减少99.19%。见图8。

2.2.2 时间比较
以1例实验数据采样时间为1.79 s的患者为例,使用OpenSim进行骨肌运动分析,需先在Matlab平台将实验数据转化为OpenSim可识别的格式(用时2 min 58 s),然后在OpenSim平台完成后续流程(用时10 min 57 s),合计13 min 55 s。使用LLMKA工具箱进行骨肌运动分析,仅需在当前软件提供的图形用户界面进行操作,在界面上选择文件夹并输入患者体质量,然后点击运行(人工参与时间27 s,程序运行4 min 32 s),合计4 min 59 s。
采用LLMKA工具箱对120例患者进行骨肌运动分析的人工参与时间为0.079 1 h(4 min 45 s),程序运行约9.15 h,总时间为9.229 1 h。根据1例患者的分析时间估算得到使用OpenSim进行骨肌运动分析的总时间(人工参与时间)约为27.83 h。可见与使用OpenSim相比,使用LLMKA工具箱的分析总时间减少了66.84%,人工参与时间减少了99.72%。
3 讨论
本研究开发的LLMKA 工具箱,是应用OpenSim 接口函数保证骨肌运动分析过程和结果一致性[25],应用函数式+命令式编程显著提高骨肌运动分析效率[22],实现一键对多例患者进行骨肌运动分析的批处理功能。
2021年Bedo等[18]建立了BOPS工具箱,通过Matlab批量处理常用OpenSim程序,促进肌肉骨骼建模和模拟;但BOPS工具箱未能批处理Scale以及RRA的OpenSim程序,且使用BOPS工具箱需要临床用户将实验数据转化为OpenSim可识别的格式。而本研究开发的LLMKA工具箱是首个从实验数据进行骨肌运动分析,且是独立执行的软件,程序执行不用打开OpenSim软件和安装Matlab软件,更适合临床用户使用。另外,LLMKA工具箱的图形界面操作步骤少,在输入患者体质量数据后点击Run按键,即可对大批量患者进行骨肌运动分析,用户无需再操作。实验结果也表明使用LLMKA工具箱对120例患者进行骨肌运动分析,与使用OpenSim相比,分析总时间减少66.84%,人工参与时间仅需4 min 45 s,操作步骤减少99.19%。
LLMKA工具箱依托OpenSim在肌肉骨骼建模和运动方面已成熟的技术,保证了使用LLMKA工具箱和使用OpenSim进行骨肌运动分析的过程和结果具有一致性,因此120例患者的个体差异或采样时间差异不会影响分析过程和结果的一致性。而面对使用OpenSim需繁琐配置且各步骤之间未建立连接的不足,LLMKA工具箱可自动设置配置文件再运行,程序的设置速度快于人工设置,且连接骨肌运动分析的各步骤,多例患者可按顺序等待分析。所以每例患者的分析过程不需要人工参与,使用该工具箱仅需2次点击+输入体质量数据即可对大批量患者进行分析,避免研究人员使用OpenSim对120例患者进行骨肌运动分析需点击15 480次的疲劳情况,使研究人员从繁冗的步骤和重复过程中解放出来;且该程序实现批处理功能,也可在夜间工作。因此我们可以合理预想,随着患者数量的增加,使用LLMKA工具箱比使用OpenSim进行骨肌运动分析的效率更高。
在骨肌运动分析时间和效率检验实验中,因为120例患者的骨肌运动分析结果已由LLMKA工具箱得到,无需再花费研究人员的大量时间使用OpenSim重复该分析过程。因此,在排除因研究人员疲劳而造成的误操作情况下,使用OpenSim对每例患者进行骨肌运动分析的操作步骤一样。使用OpenSim进行骨肌运动分析总时间,是随患者实验数据采样时间的不同以及研究人员对OpenSim的熟练状态而变化的。同一项目120例患者的步态实验数据采样时间变化很小,约为2 s,所以本研究取采样时间最接近2 s的1例患者为代表,并选用对OpenSim很熟练的研究人员进行操作。因此,对120例患者进行分析的总时间和操作步骤约等于1例的结果乘以120例。
综上述,LLMKA是基于Matlab开发,旨在保证骨肌运动分析过程和结果一致性前提下提高分析效率的工具箱,其能对多位患者进行骨肌运动分析。经验证,与使用OpenSim进行骨肌运动分析相比,使用LLMKA工具箱能显著减少操作步骤和人工参与时间,且将临床研究人员从繁琐重复的操作中解放出来。LLMKA是一个持续开发的工具箱,将来会包括骨肌运动分析结果的参数处理程序,为研究人员提供建议,避免人工寻找比对参数的疲劳性,使其有更多精力投入到骨肌运动分析结果的临床意义研究。
利益冲突 在课题研究和文章撰写过程中不存在利益冲突;项目经费支持没有影响文章观点和对研究数据客观结果的报道
伦理声明 研究方案经四川大学华西医院生物医学伦理分委会批准[2016年审(200)号]
作者贡献声明 李诗琪:工具箱的设计、文章撰写;聂涌:审核工具箱功能、指导文章写作;王俊清:患者数据采集并行对比实验;李康、沈彬:文章审阅
骨肌运动分析可从人眼观察到的运动特征轨迹计算出作用于骨骼系统的净外力,推断出肌肉骨骼的内部状态[1-5]。商用的具有图形界面的骨肌运动分析平台操作简单,但价格昂贵,且没有开源,导致不能对肌骨模型及分析流程进行深度个性化定制[6-7]。一些开源骨肌运动分析程序,各步骤配置繁琐且耗时、耗力,例如使用OpenSim进行骨肌运动分析,通常需要5个步骤 [Scale、Inverse Kinematics(IK)、Residual Reduction Algorithm(RRA)、Static Optimization(SO)、Joint Reaction Analysis(JRA)][8-10];各步骤都需先设置配置文件,再执行该步骤,其设置过程既繁冗又易出错[11]。临床研究人员需等待此步骤执行完后方可对下一步进行配置,整个骨肌运动分析流程较为碎片化,大大加重了临床研究人员的疲劳程度,难以保证数据质量及科研实施效率。因此亟待开发一种简单易用的工具箱,管控需繁琐配置的骨肌运动分析流程,提升骨肌运动分析效率。
Matlab功能强大且应用于众多领域,现有许多基于Matlab开发的工具箱,如Biomechanical ToolKit(Barre 等, 2014)利用Matlab和生物力学工具箱(btk)将实验数据转换为OpenSim兼容的文件[12];MOtoNMS(Alice Mantoan等,2015)处理来自不同运动捕捉设备的实验数据,然后生成可由神经肌肉骨骼建模输入的文件[13];针对肌肉弥散张量MRI示踪的Matlab工具箱,可完成文件输入、图像配准、去噪和扩散张量计算的预处理任务等功能[14];针对图像处理的Matlab工具箱,实现了读取、存储、显示、加噪、去噪、增强、边缘检测、图像分割等功能[15]。因此,可利用Matlab强大的数学计算能力及调用接口能力,来管控骨肌运动分析流程。
本研究基于Matlab开发了一种工具箱LLMKA(Lower Limbs Musculoskeletal Kinematics Analysis),通过对比使用该工具箱与使用OpenSim进行骨肌运动分析,验证其是否能在保证骨肌运动分析过程和结果一致性的前提下提高骨肌运动分析效率。
1 研究方法
1.1 LLMKA工具箱的设计
1.1.1 功能设计
采用“批处理驭繁琐操作”的设计理念,绘制设计框架(图1)。利用Matlab强大的数据处理能力和调用OpenSim库能力[16-21],实现自动骨肌运动分析(图1绿色方框);并要求该工具箱可批处理多个患者(图1黑色方框)。选用以下几个步骤方可进行骨肌运动分析[8]:① 模型缩放:基于患者静态实验数据对通用OpenSim模型进行缩放,以此来满足特定受试者。② 逆运动学分析:将患者的三维标签轨迹转化为广义坐标轨迹(关节角度和/或平移)。③ 残差缩减算法:最大程度地减少建模和标记数据处理错误的影响。④ 静态肌力优化:将每个瞬间的净关节力矩分解为单个肌肉力[21]。⑤ 关节力分析:计算约束身体运动的关节力。

1.1.2 程序设计
① 界面设计:根据设计框架采用Matlab界面编程设计LLMKA界面(图2)。界面包含Button Set板块和Patient Information板块,Button Set板块包含Select Folder按钮(功能对应图1蓝色方框)和Run按钮(功能对应图1黑色方框),Patient Information板块用于展示患者姓名(第1列)和骨肌运动分析完成进度(第3列),并在第2列中输入患者体质量数据(功能对应图1灰色方框)。

② 文件存取设计:LLMKA工具箱文件存放位置见图3。图3a展示的输入文件存放位置中,setupFiles文件夹存放着进行骨肌运动分析五步骤所需的配置文件模板,modelFiles文件夹存放着OpenSim通用模型,patientsData文件夹存放着需进行骨肌运动分析的N例患者并以患者名字建立文件夹,文件夹内存放其静态和动态实验数据。图3b展示了使用LLMKA工具箱对患者A进行骨肌运动分析后的输出文件存放位置。

a. 输入文件存放位置;b. 输出文件存放位置
Figure3. Document storage locationa. Input file storage location; b. Output file storage location
③ 主要程序设计:首先通过函数式编程预先定义执行模型缩放、逆运动学分析、残差缩减算法分析、静态肌力优化分析、关节力分析五步骤的功能函数[22]。骨肌运动分析工作流程(图4):基于图3a setupFiles文件夹中的通用配置文件,再根据当前患者信息将其设置为该患者在此步骤的特定配置文件,并保存配置文件(如图3b下方文件所示),再使用run函数运行该步骤。

椭圆框对应图1相应步骤的橙色方框
Figure4. Flow chart of the musculoskeletal kinematics analysisThe oval box corresponded to the orange box of the corresponding step in Fig.1
最后,基于Matlab的Application compiler将该程序打包为独立应用程序exe,应用程序图标见图5a,它可以在不安装Matlab的电脑上使用LLMKA工具箱。图5b是安装LLMKA应用程序图标,安装完成后即可在电脑桌面得到图5a所示图标。

a. LLMKA应用程序图标;b. LLMKA 安装应用程序图标
Figure5. The toolbox icon of LLMKAa. LLMKA application icon; b. LLMKA installation application icon
1.2 LLMKA工具箱的验证
1.2.1 软硬件环境
硬件环境:电脑型号,hp ProOne 400 G5 23.8-in ALL-in-one;处理器,Intel(R)Core(TM)i3-8100T CPU@3.10GHz;内存,8 192MB RAM;系统类型,64位;显卡,inter(R)UHD Graphics 630。软件环境:Windows 10 企业版;LLMKA.exe(基于MatlabR2020b开发);OpenSim4.2。
1.2.2 患者来源
临床研究人员进行膝关节骨关节炎患者的步态研究时,招募了120例膝关节内侧骨关节炎患者,通过光学动作捕捉系统(Oqus300;Qualisys公司,瑞典)和测力台(Bertec公司,美国)采集患者的步态实验数据,采样频率290 Hz,采样时间约3 s。使用LLMKA工具箱对这些数据进行骨肌运动分析。
1.2.3 骨肌运动分析过程和结果一致性检验
选择1位骨肌运动分析临床研究人员,分别采用LLMKA工具箱和OpenSim两种方法,对同1例膝关节内侧骨关节炎患者进行骨肌运动分析,记录并比较两种方法分析步骤和结果,验证这两种方法进行骨肌运动分析的过程是否具有一致性。因运行模型缩放步骤后输出结果为OpenSim模型文件(osim格式),不易对比分析,因此采用检验后续步骤结果一致性的方法反证模型缩放结果的一致性。其余四步骤运行后输出结果为表格形式,因此绘制4个Bland-Altman图对应四步骤运行结果一致性检验,以此查验两种方法得到的逆运动学分析结果、残差缩减算法结果、静态肌力优化结果、关节力分析结果是否具有一致性[23]。用黑色虚线表示差值平均值为 0的基准线,未用其他线表示一致性界限的上下限,数据点越靠近基准线,则两方法的分析结果一致性越高。
1.2.4 骨肌运动分析时间和效率检验
研究人员使用LLMKA工具箱对120例患者进行骨肌运动分析,并记录完成分析的操作步骤和分析总时间、人工参与时间。由于120例患者骨肌运动分析数据已通过LLMKA工具箱获得,无需再重复使用OpenSim进行分析,因此OpenSim对120例患者进行骨肌运动分析的操作步骤和分析总时间,根据1例患者的数据进行估算。因为使用OpenSim进行骨肌运动分析有五步,每步骤运行时间平均为2 min,研究人员一般等待上一步骤执行完后再对下一步骤进行配置,因此使用OpenSim进行骨肌运动分析的总时间即为人工参与时间。最后对比两种方法在骨肌运动分析过程中所花费的总时间、人工参与时间以及操作步骤。
2 结果
2.1 骨肌运动分析过程和结果一致性检验
使用LLMKA工具箱对1例患者进行骨肌运动分析,需进行模型缩放、逆运动学分析、残差缩减算法、静态肌力优化、关节力分析五步骤,分别对应于使用OpenSim对同一例患者进行骨肌运动分析的Scale、IK、RRA、SO、JRA五步骤[6]。因此,使用LLMKA工具箱进行骨肌运动分析与使用OpenSim的分析过程具有一致性。并且使用LLMKA工具箱或使用OpenSim运行某步骤后,输出结果数目一致。见表1。

由于运行残差缩减算法和静态肌力优化后得到的输出结果有多个,因此Bland-Altman 图中采用不同颜色或形状代替某步骤的不同输出文件。结果显示,使用LLMKA工具箱进行骨肌运动分析,在逆运动学分析、残差缩减算法、静态肌力优化、关节力分析四步骤中得到的输出变量与使用OpenSim对应步骤得到的数据偏差均落在0值基准线[24],表明这两种方法得到的结果完全一致。见图6。

a. 逆运动学分析结果;b. 残差缩减算法结果;c. 静态肌力优化结果;d. 关节力分析结果
Figure6. Bland-Altman grapha. Inverse kinematics analysis results; b. Residual reduction algorithm results; c. Static optimization results; d. Joint reaction analysis results
2.2 骨肌运动分析时间和效率检验
2.2.1 操作步骤比较
以1例患者为例,使用OpenSim进行骨肌运动分析需在2个平台操作、完成10个流程、操作129次;使用LLMKA工具箱只需在1个平台操作、完成4个流程、操作6次,其中点击Select Folder按键的操作步骤有3次是指点击按键、选择文件、确定文件。见图7。

a. 使用OpenSim;b. 使用LLMKA工具箱
Figure7. Comparison of the operation process and operation steps of two methods on a patienta. Using the OpenSim; b. Using the LLMKA toolbox
随患者数量增加,使用OpenSim进行骨肌运动分析的操作步骤呈线性增加,而使用LLMKA工具箱分析的操作步骤则呈缓慢增加。当需处理120例患者时,使用LLMKA工具箱比使用OpenSim操作步骤减少99.19%。见图8。

2.2.2 时间比较
以1例实验数据采样时间为1.79 s的患者为例,使用OpenSim进行骨肌运动分析,需先在Matlab平台将实验数据转化为OpenSim可识别的格式(用时2 min 58 s),然后在OpenSim平台完成后续流程(用时10 min 57 s),合计13 min 55 s。使用LLMKA工具箱进行骨肌运动分析,仅需在当前软件提供的图形用户界面进行操作,在界面上选择文件夹并输入患者体质量,然后点击运行(人工参与时间27 s,程序运行4 min 32 s),合计4 min 59 s。
采用LLMKA工具箱对120例患者进行骨肌运动分析的人工参与时间为0.079 1 h(4 min 45 s),程序运行约9.15 h,总时间为9.229 1 h。根据1例患者的分析时间估算得到使用OpenSim进行骨肌运动分析的总时间(人工参与时间)约为27.83 h。可见与使用OpenSim相比,使用LLMKA工具箱的分析总时间减少了66.84%,人工参与时间减少了99.72%。
3 讨论
本研究开发的LLMKA 工具箱,是应用OpenSim 接口函数保证骨肌运动分析过程和结果一致性[25],应用函数式+命令式编程显著提高骨肌运动分析效率[22],实现一键对多例患者进行骨肌运动分析的批处理功能。
2021年Bedo等[18]建立了BOPS工具箱,通过Matlab批量处理常用OpenSim程序,促进肌肉骨骼建模和模拟;但BOPS工具箱未能批处理Scale以及RRA的OpenSim程序,且使用BOPS工具箱需要临床用户将实验数据转化为OpenSim可识别的格式。而本研究开发的LLMKA工具箱是首个从实验数据进行骨肌运动分析,且是独立执行的软件,程序执行不用打开OpenSim软件和安装Matlab软件,更适合临床用户使用。另外,LLMKA工具箱的图形界面操作步骤少,在输入患者体质量数据后点击Run按键,即可对大批量患者进行骨肌运动分析,用户无需再操作。实验结果也表明使用LLMKA工具箱对120例患者进行骨肌运动分析,与使用OpenSim相比,分析总时间减少66.84%,人工参与时间仅需4 min 45 s,操作步骤减少99.19%。
LLMKA工具箱依托OpenSim在肌肉骨骼建模和运动方面已成熟的技术,保证了使用LLMKA工具箱和使用OpenSim进行骨肌运动分析的过程和结果具有一致性,因此120例患者的个体差异或采样时间差异不会影响分析过程和结果的一致性。而面对使用OpenSim需繁琐配置且各步骤之间未建立连接的不足,LLMKA工具箱可自动设置配置文件再运行,程序的设置速度快于人工设置,且连接骨肌运动分析的各步骤,多例患者可按顺序等待分析。所以每例患者的分析过程不需要人工参与,使用该工具箱仅需2次点击+输入体质量数据即可对大批量患者进行分析,避免研究人员使用OpenSim对120例患者进行骨肌运动分析需点击15 480次的疲劳情况,使研究人员从繁冗的步骤和重复过程中解放出来;且该程序实现批处理功能,也可在夜间工作。因此我们可以合理预想,随着患者数量的增加,使用LLMKA工具箱比使用OpenSim进行骨肌运动分析的效率更高。
在骨肌运动分析时间和效率检验实验中,因为120例患者的骨肌运动分析结果已由LLMKA工具箱得到,无需再花费研究人员的大量时间使用OpenSim重复该分析过程。因此,在排除因研究人员疲劳而造成的误操作情况下,使用OpenSim对每例患者进行骨肌运动分析的操作步骤一样。使用OpenSim进行骨肌运动分析总时间,是随患者实验数据采样时间的不同以及研究人员对OpenSim的熟练状态而变化的。同一项目120例患者的步态实验数据采样时间变化很小,约为2 s,所以本研究取采样时间最接近2 s的1例患者为代表,并选用对OpenSim很熟练的研究人员进行操作。因此,对120例患者进行分析的总时间和操作步骤约等于1例的结果乘以120例。
综上述,LLMKA是基于Matlab开发,旨在保证骨肌运动分析过程和结果一致性前提下提高分析效率的工具箱,其能对多位患者进行骨肌运动分析。经验证,与使用OpenSim进行骨肌运动分析相比,使用LLMKA工具箱能显著减少操作步骤和人工参与时间,且将临床研究人员从繁琐重复的操作中解放出来。LLMKA是一个持续开发的工具箱,将来会包括骨肌运动分析结果的参数处理程序,为研究人员提供建议,避免人工寻找比对参数的疲劳性,使其有更多精力投入到骨肌运动分析结果的临床意义研究。
利益冲突 在课题研究和文章撰写过程中不存在利益冲突;项目经费支持没有影响文章观点和对研究数据客观结果的报道
伦理声明 研究方案经四川大学华西医院生物医学伦理分委会批准[2016年审(200)号]
作者贡献声明 李诗琪:工具箱的设计、文章撰写;聂涌:审核工具箱功能、指导文章写作;王俊清:患者数据采集并行对比实验;李康、沈彬:文章审阅