基于Web的意识障碍脑电数据分析系统
文献发布时间:2023-06-19 11:17:41
技术领域
本发明涉及电生理成像技术,特别是一种基于Web的意识障碍脑电数据分析系统。
背景技术
意识障碍(Disorder of Consciousness,DOC)是一种脑功能紊乱的疾病,造成意识障碍的原因有许多种,但是临床的主要表现都是有觉醒但无明确的意识。在意识障碍中,通过分析行为睡眠-觉醒周期和无目的性的反射行为,可以将患者分为无反应觉醒综合征(Unresponsive Wakefulness Syndrome,UWS)或者植物状态(Vegetative State,VS)和最小意识状态(Minimally Conscious State,MCS)。
目前,临床上对意识障碍患者的意识水平评估主要依靠的是修订版昏迷恢复量表(Coma Recovery Scale-revised,CRS-R)与医生的诊断经验相结合。该量表包含觉醒、听觉、视觉、运动、言语和交流水平六个子量表,评分范围为0-23。归功于神经影像学和电生理技术的迅速发展,意识水平的评估方法有了新的科学依据。大量研究表明,脑电信号能够间接地反映一些人脑的功能活动情况和疾病信息。利用现代信息处理技术对脑电信号进行分析,分析结果能够为患者的诊断和治疗提供有效的辅助参考。脑电图(Electroencephalogram,EEG)具有检测成本低、非侵入式和时间分辨率高等特点。另外,相比于使用CRS-R评分量表需要复杂的诊断流程,EEG获取的便携性使得在病人床边进行实时的诊断成为了可能,同时还能实现病人在意识恢复过程中的全程监护。因此,利用EEG来判别患者的意识水平具有一定的价值和独特的优势。但是,目前分析EEG的方法主要是通过科研人员与医生合作,科研人员拿到临床数据后完成分析,将分析结果反馈给临床医生。这个合作的过程有两个严重的缺陷,一是合作流程过于冗长,浪费了许多不必要的时间成本,二是缺乏跨专业跨学科的人才,使得合作的效果大幅下降。综上,需要一种科研人员与医生在数据分析方面合作的新模式。又由于国内外互联网技术的飞速发展与医院信息化系统的逐步建设,搭建一个面向临床医生的EEG分析的Web平台,能够最大限度地帮助EEG各方面优势的发挥。
发明内容
针对上述技术中存在的不足,本发明提供了一种基于Web的意识障碍脑电数据分析系统,其目的之一:利用互联网构建数据分析者与临床医生之间的桥梁,这也是数据分析者与患者之间的间接桥梁;其目的之二是为DOC(意识障碍)临床评估提供计算机辅助系统。
为实现上述目的,本发明采用的技术方案是提供一种基于Web的意识障碍脑电数据分析系统,其中:该系统包括有脑电信号采集装置、数据分析平台两部分。所述脑电信号采集装置采集脑电信号上传数据;在数据分析平台中分为四部分,平台的前端网页,前后端通信,平台的后端服务和数据分析。所述平台的前端网页,用于用户的登录和数据分析结果呈现;所述前后端通信,前端后端数据、请求、分析结果的传输;平台的后端服务,用于处理前端请求、调用函数、修改数据库;数据分析,用于实现对脑电数据的分析、预处理、功率谱、多层网络分析等。
数据分析平台(2)包括前端网页(8)、前后端通信(9)、后端服务(10)及数据分析(11);
前端网页(8)引入Javascript的脚本库jQuery以及响应式开发框架Vue;采用Model-View-View Model(MVVM)开发模式;
前后端通信(9)使用Ajax技术实现数据传输的轻量化以提高系统的响应速度,数据传输使用Javascript Object Notation,即JavaScript对象简谱,作为规范格式;
后端服务(10)采用NodeJS作为服务端技术,与前端相对应:选用非关系型数据库MongoDB;
数据分析(11),在NodeJS通过中child_process模块就能实现对Python语言编写的数据分析的算法程序的调用;其中,数据分析的算法用于对脑电信号进行预处理、功率谱和多层网络分析,并构建意识水平评估模型;
数据分析(11)中预处理的实现过程是:先进行EEG数据读取(12),按用户需求进行EEG数据截取(13),通过python的mne工具包的read_raw_edf读入EEG数据,再转换为list数据类型进行数据截取,输入起止时间,点击预处理,会读入EEG数据,进行截取,然后进行降采样和滤波,降采样14和滤波15用mne工具包的resample和filter进行;再采用ICA独立成分分析去除眼电伪迹影响,ICA独立成分分析16用sklearn工具包的fastica进行分析;再进行分频段处理,分频段17使用python的scipy工具包的signal模块的butter进行,最后进行数据保存,数据保存18用于对分频前后数据保存成mat及npy文件并对MongoDB数据库进行修改;
数据分析(11)中的功率谱,读入分频数据,用平均周期图法计算功率谱密度,以及各频段所占总功率百分比的相对功率;
数据分析(11)中多层网络分析的实现流程是:采用无重叠的滑动窗对预处理后EEG数据进行分段处理,接着利用希尔伯特变换解析信号相角,计算相位同步指数PLV,完成构建功能连接网络(19),根据功能连接网络,随后采用多层网络模块化划分方式获取每个时间窗下的脑网络社区结构,使用Louvain算法进行社团划分的网络模块划分(20),对社团参数指标,选取空间结构参数和动态网络参数来体现脑网络模块之间的连接状态,构建阈值化关联矩阵,使用阈值化关联矩阵完成了一致性模块划分,据模块划分结果计算模块化相关参数,将参数计算结果汇总在结果展示页中多样本模块参数展示页;最后以挑选的最佳空间结构参数和动态网络参数作为输入特征,以MCS和UWS作为输入构建得到意识水平评估模型。
与现有技术相比,本发明的有益效果是:
本发明的效果是解决了科研人员与临床医师高效合作的平台,前沿研究成果的临床转化问题。可实现集医护人员需求与科研工作者需求为一体的意识水平评估与科研平台,有助于推动基于神经影像数据的计算机辅助分析技术在DOC临床评估上的快速转化。
整个系统分别从前后端通信、后端服务搭建和数据分析算法嵌入的角度完成了各个模块的实现。整个搭建流程符合前后端分离和全栈结构分层的开发思想,使用了功能完善的开发框架和中间件,使得整个系统架构清晰,方便维护且易于扩展。
附图说明
图1为本发明的基于Web的意识障碍脑电数据分析系统平台结构;
图2为本发明的实验数据获取过程;
图3为本发明数据分析平台结构;
图4为本发明结果查看页;
图5为本发明数据实现预处理流程图;
图6为本发明的功能网络流程图;
图7为本发明数据预处理页;
图8为本发明的单导联数据分频查看页;
图9为本发明的功率谱各导联展示页;
图10为本发明的多样本模块化参数展示页;
图11为本发明的预测评估页;
图中:
1、脑电信号采集实验,2、数据分析平台,3、静息态实验范式,4、实验对象,5、电极帽,6、脑电放大器,7、脑电记录仪,8、前端网页,9、前后端通信,10、后端服务,11、数据分析,12、EEG数据读取,13、EEG数据截取,14、降采样,15、滤波,16、ICA独立成分分析,17、分频段,18、数据保存,19、构建功能连接网络,20、网络模块划分,21、模块化参数计算,22、截取数据和数据预处理,23、导联模块,24、电极位置图,25、功率谱模块,26、多层网络页面,27、评估结果。
具体实施方式
下面结合附图和实施例对本发明的基于Web的意识障碍脑电数据分析系统结构加以说明,但并不以此作为对本申请保护范围的限定。
本发明的基于Web的意识障碍脑电数据分析系统的设计思想是:如图1所示,首先设计脑电信号采集实验1,获取实验样本数据,然后通过javascript编写的数据分析平台2,调用python语言编写的数据分析的算法进行处理,再将得到的结果通过Ajax技术返回前端网页进行呈现。
所述的脑电信号采集实验1,实验数据获取过程如图2所示:包括电极帽、脑电放大器和脑电记录仪,选取静息态实验范式3,让实验对象4平躺于光线暗淡的房间内(避免外界环境干扰),由操作人员将电极帽5佩戴在实验对象头部,并注射导电膏,随后打开脑电放大器6,脑电放大器的作用是将微弱的脑电信号进行放大,同时还有抗干扰能力和噪声抑制能力,电极帽将采集的数据经脑电放大器传输给脑电记录仪7,由记录仪对采集的数据进行记录存储。采集过程中,由操作人员全程观察受试者的情况,确保患者尽量处于睁眼状态。若受试者表现出嗜睡迹象,则由操作人员进行声音刺激或CRS-R量表唤醒方案使被试处于非睡眠状态。整个实验过程由一名神经外科医生全程陪同,以确保患者的安全。每名受试者的采集时间均在15分钟以上。
所述的数据分析平台2的构成如图3所示,全栈遵循MVC开发模式。Controller层包含服务接口脚本和数据分析脚本,实现了整个系统的路由调度以及数据分析。其中用户接口接收携带用户信息的请求,并做校验相关工作,数据接口接收携带数据信息的请求,并通过调用与回调实现与数据分析脚本的通信。数据分析脚本包含了预处理、功率谱分析和多层网络分析。Model层包含数据库连接脚本以及数据持久化脚本,实现了整个系统的数据存储功能。View层包含了静态文件脚本,定义了整个系统的数据显示逻辑,包含注册页、登录页、用户管理页、数据分析页和结果查看页等。View层位于前端,凭借Vue框架将View层再作MVVM细化分层。Controller层与View层的通信通过HTTP的请求和响应实现,Controller层中还包含了数据库内容的修改和查询的实现。
将技术栈分层,不同层的技术栈实现不同的功能,技术栈分层架构包括展示层、接口层、服务层、计算层、持久层、数据库层,展示层包含前端网页绘制相关技术,接口层包含前后端通信技术与数据交换格式,服务层包含后端搭建服务器的技术,计算层包含用于数据分析的技术,持久层包含将内存数据存入数据库而达到数据持久化效果的技术,数据库层包含了整个系统所使用的数据库。
数据分析平台主要由四部分组成,分别为平台的前端网页8、前后端通信9、平台的后端服务10、数据分析11。
前端网页8,使用Vue框架和jQuery库在保证界面易用性的同时实现前端网页交互界面的快速搭建。其中的注册、登录页,用户管理页,实现普通用户的注册、登录功能和管理员的用户管理功能,管理员需要对普通用户的账户进行修改、查询、删除操作。当需要请求用户管理页,请求修改用户信息、请求删除用户信息,如果请求的不是整个网页,都使用Ajax技术,向后端请求部分数据,并利用JavaScript修改DOM而达到部分更新视图的效果。通过使用不同的HTTP方法和不同的统一资源定位符(Uniform Resource Locator,URL)向后端发送不同的请求,后端会通过识别不同的HTTP方法和URL提供不同的服务。
前端网页的数据分析页和结果查看页包含数据上传(数据文件上传、数据描述上传)、分析(单步分析、多步分析)、结果可视化(单样本查看、多样本对比)等功能。当前端发送上传数据、分析数据、修改数据、删除数据的请求时,要求后端对本地数据进行更改,因此需要将相应数据写入请求体中,包含的数据有被试名称、数据类型、数据编号、数据描述、医学数据文件等,数据写入请求体由前端的表单元素实现。结果查看页包含内容如图4所示,包括预处理、功率谱、多层网络、意识评估四方面的结果查看,预处理页面中包括数据预处理页(实现了所有导联EEG数据查看,通过拖动滑动块实现时间轴的滚动,并且提供截取数据与数据预处理(22)的功能,呈现原始数据波形以及预处理的执行命令)、预处理结果页(数据截取后的结果及整个预处理后的结果)、单导联数据分频查看页(图8);功率谱页面包括功率谱各导联展示页(展示电极位置图(24)及功率谱模块(25)的功率谱密度以及相关功率图)和多样本功率谱统计页;多层网络页面展示多样本模块化参数展示页,意识评估页面为预测评估页(包含评估结果(27)、样本被用于预测评估的参数维度、意识水平评估结果以及评估准确性)。
当前端需要发送分析数据请求时,通过勾选复选框选取所需分析的被试数据,由于Vue是MVVM模式,完成了View与Model的绑定,所勾选的数据会体现在ViewModel中,将ViewModel中的数据经过格式转换生成数据定位信息存入Model中。数据定位信息包含了被试名称、数据类型、数据编号和已经过的分析流程。同理,数据分析的算法信息也通过数据转换存入Model中,经过前端的确认后向后端发送请求,数据定位信息、数据分析的算法信息和确认请求。如单步分析确认请求使用预处理算法,分析相对路径;多步分析请求:数据依次进行预处理、构建相位同步网络(计算相位同步指数PLV值得到的网络)、网络模块划分等多个操作。
后端的数据信息存储是各个功能实现的底层基础,后端数据包含医学数据和数据分析的算法。因此将医学数据的描述信息保存成目录结构filePathTree,储存在数据库中,将医学数据文件根据目录结构存在硬盘中。根据数据库中的目录结构中的数据定位就能查找相应的医学数据文件。目录结构filePathTree包含被试名称、数据格式、数据编号、可选的数据描述以及已有的分析结果。
数据分析的算法被存放在methodStorage根目录下,并根据分析的数据类型和数据分析的算法分别储存在不同子文件夹下。用户数据被存放在dataStorage根目录下,并依次按照用户编号、被试名称、数据类型、数据序列号、数据分析中间结果分别存储在不同子文件夹下。
数据分析的算法由Python编写并嵌入到数据分析系统,后端只需要调用数据分析的算法而无需对数据分析的算法做修改。数据分析的算法依照分析的数据类型存于不同的文件夹下,将数据分析的算法路径存入数据库供后端服务调用。除了通过用户的数据上传和数据分析获得的数据,服务器端还有存储在本地的医学数据,这些数据与通过用户上传或分析得到的数据具有相同的存储位置和存储结构。因此,后端只需要读取本地数据存储的文件路径,并将数据目录结构保存至数据库中,就能使本地数据接入到数据分析系统中,实现数据的统一管理。读取本地数据目录结构和数据分析的算法目录结构的工作通过Python实现,使用广度优先遍历算法和Python的os模块中的listdir函数实现目录结构的读取。
使用Express的mongoose中间件可以实现内存中的数据存到数据库中实现数据持久化。通过Express框架提供的接口定义路由中间件来实现路由功能,根据浏览器的不同请求作出不同响应。不同路由中间件将匹配相应的URL并实现功能,如果URL没有匹配任何自定义的路由中间件,将会匹配最底部的中间件并返回404错误,这部分脚本位于Controller层中。
当后端接收到数据目录结构请求时,后端根据cookie中的用户编号字段查询数据库并将filePathTree属性的值传给前端,前端利用filePathTree的值与Vue中的模板引擎构建该用户的数据概略信息块,整个过程使用了Ajax技术。
当后端接收到上传数据请求时,后端使用Express框架的multer中间件接收请求体中的医学数据文件,并且解析请求体中的被试名称、数据类型、数据编号和数据描述。根据这些参数将医学数据文件存入相应文件夹,存入成功后修改数据库中的数据目录,并再次将filePathTree发送给前端,前端会做出相应的视图变化。
当后端接收到数据分析请求时,会根据数据分析的算法信息调用相应的数据分析Python脚本,并将数据定位信息传入Python脚本。Python脚本执行数据分析,分析完成后将分析结果存入指定的文件夹并修改数据库的目录结构,最后通知NodeJS重新读取数据库中的filePathTree并发送给前端。NodeJS会解析请求体中的数据定位信息和数据分析的算法信息,将所有的数据分析的算法加入队列。首先,根据数据定位信息中的数据类型,进入数据分析的算法目录,再将数据分析的算法出队,根据出队的具体数据分析的算法确认方法路径。然后使用child_process模块中提供的exec方法,开启子进程以使用系统命令调用Python脚本,并传入数据定位信息。Python脚本根据数据定位信息后读取数据,经过数据分析的算法运算后将分析结果文件存入指定的文件路径下,并修改数据库中的相应用户的目录结构filePathTree,然后将分析结果的路径传递给系统命令模块,再通过系统命令模块传递给NodeJS。NodeJS接收到结果路径后,判断数据数据分析的算法队列中是否还有待执行的数据分析的算法,如果有则循环调用,并将之前的分析结果路径作为队列中下一个数据分析的算法的输入参数。如果没有则结束。当分析流程执行完后,前端刷新页面,请求更新目录结filePathTree并对数据分析页进行修改。
前端网页能够提供可视化的分析结果有两种,一是分析结果能过通过图片的形式展示,前端将图片合理排布后再呈现,如下文的功率谱分析结果的查看。二是结果能够以参数形式展示,这种情况下结果将以JSON文件格式存储在目标文件路径下,如下文的多层网络分析结果的查看。前端请求相关分析结果时,后端会读取JSON文件并将结果返回给前端网页,前端网页将数据与模板引擎结合渲染出当前结果的可视化页。
所述的数据分析的预处理实现过程如图5所示,包括EEG数据读取12、EEG数据截取13、降采样14、滤波15、ICA独立成分分析16、分频段17、数据保存18,通过python的mne工具包的read_raw_edf读入EEG数据,再转换为list数据类型进行数据截取,输入起止时间,点击预处理,会读入EEG数据,进行截取,降采样14和滤波15用mne工具包的resample和filter进行,ICA独立成分分析16用sklearn工具包的fastica进行分析,去除与眼电相关系数较高的部分,分频段17使用python的scipy工具包的signal模块的butter进行,数据保存18用于对分频前后数据保存成mat及npy文件并对数据库进行修改。
预处理第一步是人为截取连续周期内受肌肉运动诱发的尖峰脉冲干扰较小的EEG。由于脑电信号幅值是非常微弱的,而眨眼、眼动及肌肉活动产生的电信号即伪迹信号的幅值较大,在截取时尽量避免波动较大的信号段,同时将数据长度进行规范化,有利于后续的数据分析。之后,对截取的数据进行降采样处理以减少计算量。使用零相移滤波器去除信号的低频漂移和高频伪迹,达到滤除工频伪迹的作用。之后,采用快速独立成分分析(ICA)方式对EEG中的由眼球运动和无意识眨眼产生的电信号进行去除。分频后,数据分为delta、theta、alpha、beta、gamma五个频段,完成了EEG信号的分频。
对读入的EEG数据经调用预处理过程后得到保存的数据,调用matplotlib模块进行绘图,预处理后的结果在前端预处理页面中显示,如图7所示。在预处理页面中设置有导联模块,在导联模块23中,对预处理后数据,选择不同导联,会对不同导联数据调用分频的数据分析的算法,并在单导联数据分频查看页中可显示出每个导联分频后五个频带的脑电波形结果,如图8所示。
所述的数据分析11中,功率谱结果在前端功率谱页面中的功率谱各导联展示页进行展示,如图9所示,功率谱各导联展示页中具有电极位置图24,显示出不同导联在大脑上的位置分布,可选择不同导联进行功率谱分析。功率谱各导联展示页中具有功率谱模块25,功率谱模块25作用是:逐个窗调用scipy工具包的signal.welch函数并做均值运算,得到单个导联的功率谱,采用平均周期图法计算功率谱密度,使用求和方式能得到单导联的相对功率,并matplotlib工具包pyplot的plot函数绘图展示在前端功率谱各导联展示页中。
所述的数据分析中多层网络分析的实现流程如图6所示,首先,采用无重叠的滑动窗对预处理后EEG数据(分频段后的预处理数据)进行分段处理,接着利用希尔伯特变换解析信号相角,计算相位同步指数PLV,完成构建功能连接网络19。根据功能连接网络,随后采用多层网络模块化划分方法获取每个时间窗下的脑网络社区结构,使用Louvain算法进行社团划分(模块划分)的网络模块划分20,对社团参数指标,选取5个参数来体现脑网络模块之间的连接状态,主要有空间结构参数和动态网络参数。空间结构参数包含模块内连接强度、模块间连接强度、模块空间平均距离、模块空间半径,动态网络参数选用网络灵活性,将参数计算结果汇总在结果展示页中多样本模块参数展示页。构建阈值化关联矩阵,使用阈值化关联矩阵完成了一致性模块划分,据模块划分结果计算模块化相关参数21。最后,将数据以JSON格式存储,在如图10所示的前端多层网络页面26中展示某一个对象不同频段不同参数数值,多样本模块化参数展示页会展示多个对象的不同频段不同参数数值,其中模块化参数值社团划分后计算的社团参数指标。同时,多步分析中每一步的分析结果都会得到保存,以便于使用不同的分析算法对中间结果再分析,但是只有最后的模块化相关参数结果能够提供可视化的查看。
脑功能网络的构建的基于两两导联之间的同步相关参数,使用锁相值(PhaseLocking Value,PLV)。计算锁相值的方法被称为相位锁定统计(Phase LockingStatistic,PLS),具体方法为在合适时间(本文选取100毫秒)内测量两个导联之间的相位协方差的显著性,计算方法如下:
其中n表示时间点,Φxt、Φyt分别表示信号x、y在时间点t处的相角。PLV的取值范围为[0,1],值越大表示两个信号之间的相位同步程度越强。使用广义质量函数对模块划分的结果进行评价。公式如下:
其中A
网络模块划分的过程是:对每一层网络使用了200次Louvain算法,并且根据关联矩阵计算出两个节点在同一模块的概率;随后将关联矩阵与由100个原始分区的随机排列生成的随机矩阵进行比较;选取随机矩阵的值58作为阈值,并将关联矩阵中小于该阈值的部分设为零,以去除随机性对关联矩阵的影响;最后,采用Louvain算法对阈值化的关系矩阵进行聚类;对网络的每一层进行模块划分,将不同的模块标记为一个集合。
有四种分类结果:TP(True Positive)是真正例,被模型预测为正的正样本数,在本文中为被模型预测为MCS的MCS样本数;FP(False Positive)是假正例,被模型预测为正的负样本数,在本文中为被模型预测为MCS的UWS样本数;FN(False Negative)是假负例,被模型预测为负的正样本数,在本文中为被模型预测为UWS的MCS样本数;TN(True Positive)是真负例,被模型预测为负的负样本数,在本文中为被模型预测为UWS的UWS样本数。
由于患者的意识水平评估需要综合考虑多个参数,且UWS患者与MCS患者的区分本质上属于二分类问题。利用已获取的多个分析结果作为参数训练意识水平评估的支持向量机(SVM)模型。SVM模型是监督式学习模型,是定义在特征空间上的间隔最大的线性分类器,即求解能够正确划分训练数据集并且间隔最大的分离超平面,因此能够实现二分类。
用采集到的25个MCS样本和45个UWS样本进行实验。随机选择20个MCS样本和36个UWS样本作训练集,5个MCS样本和9个UWS样本作测试集,根据测试结果评价模型的性能。主要的评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)。公式分别如式(6)、(7)、(8)所示。
进行了基于功率谱和脑网络的特征训练,基于功率谱的特征训练若干个组合的准确率能够达到80%以上,但是精确率与召回率都未达到80%,尤其是召回率较低。因此考虑使用脑功能网络相关的参数做模型训练。结果使用训练标签为delta频段的模块间连接强度和模块空间平均距离、alpha频段的模块内连接强度时模型效果最好。使用该训练标签作为意识水平评估模型的输入。
所述的数据分析中的意识水平评估模型,使用了脑功能网络参数中的delta频段的模块间连接强度和模块空间平均距离和alpha频段的模块内连接强度作为训练标签,模型指标分别为准确率92.86%,精确率83.33%,召回率100%。前端中预测评估页中能够显示评估结果27,如图11所示,图11中第一行的分析页是标签为MCS的样本的分析结果,最小意识状态MCS时病人类型数据,第二、三行的分析页是标签为UWS的样本的分析结果,即指医生确诊后得到的病人类型数据。图11中放大的部分为每个人在意识水平评估模型里进行预测后的预测结果。
基于已有数据分析成果的初步模型,需要在系统数据的不断沉淀中完成评估模型的不断迭代,随着数据分析系统数据量的不断增加,可以获得更多样本的分析结果,提高意识水平评估模型的准确性。
多样本功率谱统计页用于展示选中的所有样本的功率谱分析结果,并提供功率谱密度和相对功率的分频段对比,点击对比按钮将返回多样本功率谱分频段对比页。
多样本模块化参数展示页中展示了所有样本的多层网络分析结果。
以上所述仅为本发明的实施例,并非对本发明的技术范围做任何限制,固凡是利用本发明说明书及附图所做的任何细微修改、等效转换,均包括在本发明的权利要求保护范围内。
本发明未述及之处适用于现有技术。
- 基于Web的意识障碍脑电数据分析系统
- 一种基于听觉诱发脑电信号分析的意识障碍辅助诊断系统