首页> 中国专利> 海量多道神经信息综合处理系统及其控制方法

海量多道神经信息综合处理系统及其控制方法

摘要

本发明涉及神经电生理信息数据处理领域,它提出了一种海量多道神经信息综合处理系统,包括脚本驱动控制组件、数据获取操纵组件、数据分析处理组件、数据可视化处理组件。它将多通道神经信息采集、处理、可视化过程进行组件化集成建立了统一服务接口,能够在脚本的控制下,批量自动化的完成海量多通道神经信息的处理过程,并给出可视化结果。同时,将神经电生理信息数据处理的流程保存在存储介质中,提高了数据处理的可重复性和可控性。本发明还具有的有益效果包括:将硬件控制与数据处理相结合,根据神经电生理信息数据的处理结果,控制硬件运行,动态的修改实验方案;通过统一的接口,能够动态的扩展处理和可视化算法。

著录项

  • 公开/公告号CN101561850A

    专利类型发明专利

  • 公开/公告日2009-10-21

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN200910303107.2

  • 发明设计人 骆清铭;蒲江波;李向宁;

    申请日2009-06-10

  • 分类号G06F19/00(20060101);G06F9/44(20060101);A61B5/04(20060101);

  • 代理机构北京市德权律师事务所;

  • 代理人周发军

  • 地址 430074 湖北省武汉市洪山区珞瑜路1037号

  • 入库时间 2023-12-17 22:48:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-10

    未缴年费专利权终止 IPC(主分类):G06F19/00 授权公告日:20111228 终止日期:20170610 申请日:20090610

    专利权的终止

  • 2011-12-28

    授权

    授权

  • 2009-12-16

    实质审查的生效

    实质审查的生效

  • 2009-10-21

    公开

    公开

说明书

技术领域

本发明涉及神经电生理信息数据处理领域。尤其涉及一种操作多通道神经电生理数据的组件化综合处理系统及其控制方法。

背景技术

在神经信息处理领域,研究人员面对的信息一般具有:(1)海量的数据大小;(2)复杂的数据定义;(3)灵活的数据处理方法等特征。一次典型的神经电生理实验可产生大于2G字节的实验数据,此实验数据通常包含多个通道的时变的神经电信号。根据实验目的,数据的具体定义往往是复杂多变的,例:通道数目的动态变化、刺激参数的指定等。同时,对实验数据的处理流程体现出灵活多变的特征。根据实验数据的时空特性,数据处理流程需要指派不同算法。算法须满足动态增加、删除、修改的需求。此外,由于神经电生理信息数据量庞大,研究人员对各批次数据需要分别指派不同运算,并根据运算结果进行后续分析,这对数据处理初步结果的即时可视化提出了迫切需求。此外,科学研究的最终成果需要产生印刷质量的结果图,例如线图、框图、饼图等。因此可视化结果必须满足科研刊物出版要求(如大小、灰度、清晰度等)。然而,现有组件无法满足上述实验数据的处理要求。

在目前神经电生理实验数据处理过程中,数据采集、存储、处理和可视化过程一般是由各自分立的软件完成,缺乏统一的工作流管理和控制框架。并且,(1)数据采集对具体硬件和操作系统环境高度依赖;(2)数据读写对厂商定义的具体文件格式高度依赖,并且在存储管理上缺乏对数据文件描述的索引和搜索;(3)数据处理缺乏定制性,仅能按照指定的顺序运行现有的处理算法,算法逻辑的新增和修改十分困难;(4)缺少一种批量处理符合指定条件数据的自动化机制;(5)数据可视化与数据处理被硬编码,无法增加新的绘制方法或修改已有的方法,并且可视化结果与出版要求差距大,无法直接用于出版。

神经电生理研究是一个从(1)实验设计;(2)实验数据产生、分析、处理;(3)根据已有结果修正实验设计;(4)获得最终实验结果等的完整流程。现有各阶段分别由分立软件完成,这提出了两个问题:(1)如何保证各软件间高效可靠的数据交换;(2)如何从全局角度保存实验处理和分析流程,便于重现实验步骤,提高计算机辅助实验设计和分析的效率。因此,需要一种适用于神经电生理研究的组件化并且可扩展的综合处理系统。

发明内容

针对上述技术问题,本发明提出一种海量多道神经信息综合处理系统及其控制方法,实现神经信息的采集、处理、可视化三个过程的整合和批处理,并确保处理过程中数据流和控制流的一致性和可再现性。

为解决上述技术问题,本发明提出的一种海量多道神经信息综合处理系统,其特征在于,包括脚本驱动控制组件、数据获取操纵组件、数据分析处理组件、数据可视化处理组件;

所述脚本驱动控制组件,用于提供用户交互控制界面,所述用户交互控制界面接受用户指令,生成脚本命令;所述脚本驱动控制组件解释脚本命令,调用所述数据获取操纵组件、数据分析处理组件、数据可视化处理组件执行相应任务,并向用户反馈处理结果;

所述数据获取操纵组件,连接脚本驱动控制组件、神经电生理实验系统、数据读写系统,用于接受脚本驱动控制组件发出的数据获取操纵请求,驱动所述神经电生理实验系统动作,并接收所述神经电生理实验系统的返回数据;或者,控制所述数据读写系统进行数据读写;然后,向脚本驱动控制组件返回处理结果;

所述数据分析处理组件,连接脚本驱动控制组件,用于接受脚本驱动控制组件发起的数据分析处理请求,调用各种数据分析处理算法对神经电生理信息数据分析处理,将历史的分析处理算法及其数据保存在数据文件中,并向脚本驱动控制组件返回处理结果;

所述数据可视化处理组件,用于接受脚本驱动控制组件发起的可视化处理请求,调用各种数据可视化处理算法对神经电生理信息数据进行可视化处理,将历史的可视化处理算法及其数据保存在数据文件中,并向脚本驱动控制组件返回处理结果。

优选的,所述脚本驱动控制组件包括:命令行交互和脚本文件接口单元,系统指令解析单元,用户指令解析单元,任务执行时间规划单元,任务状态保存和监控单元,任务执行接口单元,

所述命令行交互和脚本文件接口单元,用于接收用户命令,并识别用户命令中的工作规划指令,将所述工作规划指令提交至所述任务执行时间规划单元;将用户命令中的非工作规划指令提交至所述系统指令解析单元;并接收所述系统指令解析单元返回的非工作规划指令,识别为用户指令提交至所述用户指令解析单元;

所述系统指令解析单元,用于识别非工作规划指令中的系统指令,将所述系统指令生成系统指令系统调用提交至所述任务执行时间规划单元;并将其不能识别的非工作规划指令返回所述命令行交互和脚本文件接口单元;

所述用户指令解析单元,用于接受所述命令行交互和脚本文件接口单元提交的用户指令,生成用户指令系统调用提交至所述任务执行时间规划单元;

所述任务执行时间规划单元,用于根据所述工作规划指令对所述系统指令系统调用、用户指令系统调用进行优先顺序安排,生成任务执行流,并提交至任务状态保存和监控单元;

所述任务状态保存和监控单元,用于管理和调用任务执行接口,

所述任务执行接口,用于执行所述系统指令系统调用、用户指令系统调用,控制所述数据获取操纵组件、数据分析处理组件、数据可视化处理组件执行任务。

优选的,所述数据获取操纵组件包括:数据请求和数据交换接口单元,硬件请求代理层单元,硬件控制组件,文件请求代理层单元,文件协议组件,数据库组件;

所述数据请求和数据交换接口单元,用于接收脚本驱动控制组件发起的数据处理请求,判断所述数据处理请求的目标类型为神经电生理实验操作还是数据读写操作?若为神经电生理实验操作请求,则调用所述硬件请求代理层单元;若为数据读写操作请求,调用文件请求代理层单元,最终向所述脚本驱动控制组件返回结果;

所述硬件请求代理层单元,用于根据所述数据请求和数据交换接口单元的指令,调用所述硬件控制组件,

所述硬件控制组件连接包括所述神经电生理数据采集装置、神经电生理刺激输出装置的神经电生理实验系统,用于驱动包括所述神经电生理数据采集装置、神经电生理刺激输出装置动作,根据所述神经电生理实验系统的输出结果向所述硬件请求代理层单元返回包括数据及状态字的处理结果;

所述文件请求代理层单元,用于根据所述数据请求和数据交换接口单元的指令,调用数据库组件或所述文件协议组件,

所述数据库组件,用于根据所述文件请求代理层单元的包含文件特征查询的SQL字串的数据查询和/或写入请求,调用数据库执行查询指令或者调用所述文件协议组件,并向所述数据请求和数据交换接口单元返回包括数据及状态字的文件操作结果;

所述文件协议组件,用于直接调用文件存储设备进行文件储存处理,并向其自身的调用者返回结果。

优选的,所述数据分析处理组件包括处理请求解释与结果反馈接口,数据输入层组件,处理算法托管层组件,运算结果输出接口,处理算法执行单元;

所述处理请求解释与结果反馈接口,用于接收所述脚本驱动控制组件发起的数据分析处理请求,调用所述数据输入层组件,处理算法托管层组件进行处理,并向所述脚本驱动控制组件返回处理结果;

所述数据输入层组件,用于接收所述处理请求解释与结果反馈接口发出的数据流对象,将所述数据流对象提交所述处理算法单元进行处理,

所述处理算法托管层组件,用于接收所述处理请求解释与结果反馈接口发出的指令流对象,调用所述处理算法单元进行处理,

所述处理算法执行单元,用于根据所述数据流对象、指令流对象进行运算处理,运算处理结束后向所述算法托管层组件返回运行状态字,运算结果数据通过所述运算结果输出接口输出;

所述运算结果输出接口,接受来自所述处理算法执行单元的输出结果,并向所述处理请求解释与结果反馈接口返回。

优选的,所述数据可视化处理组件包括可视化请求与结果传送接口,可视化方法执行单元,

所述可视化请求与结果传送接口用于接收来自脚本驱动控制组件发起的数据可视化请求,调用所述可视化方法执行单元,并向脚本驱动控制组件返回结果;

所述可视化方法执行单元,用于根据所述数据可视化请求执行结果图形的绘制,和/或将图形存储在文件系统和/或数据库中,并将图形向可视化请求与结果传送接口返回结果。

本发明同时还提出了一种海量多道神经信息综合处理系统的控制方法,包括以下步骤:

装载所述脚本驱动控制组件;

运行所述脚本驱动控制组件;

从人机交互界面输入命令行脚本;

所述脚本驱动控制组件解析所述命令行脚本,生成工作指令序列;

所述脚本驱动控制组件顺序执行所述工作指令序列,并对每条所述工作指令赋予状态对象;

当某工作指令调用所述数据获取操纵组件时,所述数据获取操纵组件根据所述工作指令调用,驱动所述神经电生理实验系统动作,并接收所述神经电生理实验系统的返回数据;或者,控制所述数据读写系统进行数据读写;然后,向脚本驱动控制组件返回处理结果;

当某工作指令调用所述数据分析处理组件时,所述数据分析处理组件调用各种数据分析处理算法对神经电生理信息数据分析处理,向脚本驱动控制组件返回处理结果,并提交历史的分析处理算法及其数据;

当某工作指令调用所述数据可视化处理组件时,所述数据可视化处理组件调用各种数据可视化处理算法对神经电生理信息数据进行可视化处理,向脚本驱动控制组件返回处理结果,并提交历史的可视化处理算法及其数据;

继续执行下一条工作指令,直至工作指令序列中的所有指令执行完毕。

作为优选方案,所述装载脚本驱动控制组件包括以下步骤:

装载所述命令行交互和脚本文件接口单元,

装载所述系统指令解析单元、用户指令解析单元,

装载所述任务执行时间规划单元,

装载所述任务状态保存和监控单元,

装载所述任务执行接口单元。

同样作为优选方案,所述脚本驱动控制组件解析所述命令行脚本,生成工作指令序列,包括以下步骤:

所述命令行交互和脚本文件接口单元接收用户命令,

识别用户命令是否为工作规划指令?

若是工作规划指令,则将工作规划指令提交至所述任务执行时间规划单元;

若非工作规划指令,则将非工作规划指令提交至所述系统指令解析单元;所述系统指令解析单元接收并识别非工作规划指令,判断是否为系统指令?若是系统指令,则将所述系统指令生成系统指令系统调用提交至所述任务执行时间规划单元;

若非系统指令,则将非系统指令返回所述命令行交互和脚本文件接口单元;命令行交互和脚本文件接口单元将非系统指令识别为用户指令提交至所述用户指令解析单元;所述用户指令解析单元将用户指令生成用户指令系统调用提交至所述任务执行时间规划单元;

所述任务执行时间规划单元根据所述工作规划指令对所述系统指令系统调用、用户指令系统调用进行优先顺序安排,生成任务执行流,并提交至任务状态保存和监控单元;

所述任务状态保存和监控单元管理和调用任务执行接口,

所述任务执行接口执行所述系统指令系统调用、用户指令系统调用,控制所述数据获取操纵组件、数据分析处理组件、数据可视化处理组件执行任务。

同样作为优选方案,所述数据获取操纵组件根据所述工作指令调用,驱动所述神经电生理实验系统动作,并接收所述神经电生理实验系统的返回数据;或者,控制所述数据读写系统进行数据读写;然后,向脚本驱动控制组件返回处理结果,包括以下步骤:

所述数据请求和数据交换接口单元接收脚本驱动控制组件发起的数据处理请求,

判断所述数据请求数据处理请求的目标类型为神经电生理实验系统操作还是数据读写操作?

若为神经电生理实验系统操作请求,则调用所述硬件请求代理层单元,所述硬件请求代理层单元根据所述数据请求和数据交换接口单元的指令,调用所述硬件控制组件,所述硬件控制组件驱动包括所述神经电生理数据采集装置、神经电生理刺激输出装置的神经电生理实验系统动作并采集其输出数据,向所述数据请求和数据交换接口单元返回包括数据及状态字的处理结果,

所述数据请求和数据交换接口单元向所述脚本驱动控制组件返回结果状态字,并提交检测到的数据;

若为数据读写操作请求,则调用所述文件请求代理层单元,所述文件请求代理层单元根据所述数据请求和数据交换接口单元的指令,调用所述文件协议组件或调用所述数据库组件:

抓若调用所述文件协议组件,则所述文件协议组件调用文件存储设备,所述文件存储设备进行文件储存处理,然后向所述文件协议组件返回处理结果,所述文件协议组件向所述文件请求代理层单元返回处理结果;

抓若调用所述数据库组件,则数据库组件根据所述文件请求代理层单元的包含文件特征查询的SQL字串的数据查询和/或写入请求,调用数据库执行查询指令,并向所述文件请求代理层单元返回处理结果,所述文件请求代理层单元向所述文件请求代理层单元返回处理结果;

所述数据请求和数据交换接口单元向所述脚本驱动控制组件返回结果。

同样作为优选方案,所述数据分析处理组件调用各种数据分析处理算法对神经电生理信息数据分析处理,向脚本驱动控制组件返回处理结果,并提交历史的分析处理算法及其数据,包括以下步骤:

所述处理请求解释与结果反馈接口接收所述脚本驱动控制组件发起的数据分析处理请求,将所述数据分析处理请求解析为包括算法指令流对象、数据流对象;

所述数据输入层组件接收所述处理请求解释与结果反馈接口发出的数据流对象,

所述处理算法托管层接收所述处理请求解释与结果反馈接口发出的算法指令流对象,

所述算法托管层向所述处理算法执行单元查询,能否处理该算法指令流对象?若是,则所述处理算法执行单元调用该算法指令流对象对应的具体算法处理从所述数据输入层组件获得数据流对象,运算结果数据返回所述运算结果输出接口;所述运算结果输出接口接受来自所述处理算法执行单元的输出结果,并向所述处理请求解释与结果反馈接口返回;

否则,向所述算法托管层组件返回“算法不存在”状态字,所述算法托管层组件向所述处理请求解释与结果反馈接口返回状态字;

所述处理请求解释与结果反馈接口向所述脚本驱动控制组件返回处理结果。

同样作为优选方案,所述数据可视化处理组件调用各种数据可视化处理算法对神经电生理信息数据进行可视化处理,向脚本驱动控制组件返回处理结果,并提交历史的可视化处理算法及其数据,包括以下步骤:

所述可视化请求与结果传送接口用于接收来自所述脚本驱动控制组件发起的数据可视化请求,

调用所述可视化方法执行单元,

所述可视化方法执行单元执行结果图形的绘制,并向所述可视化请求与结果传送接口返回执行结果;

所述可视化请求与结果传送接口向所述脚本驱动控制组件返回结果。

基于上述技术方案,本发明具有下述整体性能特点:

(1)将多通道神经信息采集、处理、可视化过程进行组件化集成融合,建立了统一服务接口,允许各种具体方法在运行时动态挂接到三大服务接口上。

(2)本系统建立了一套可扩展的神经信息处理指令集,用于操纵数据,调用数据处理算法,启动不同的可视化方法并输出。该指令集包括预定义的系统指令和用户自定义指令两部分。系统指令包括对命令流的控制指令和内置指令。内置指令包括硬件操作指令和内置算法的调用指令。通过可扩展的指令存储和调用机制,用户可自行编写算法或挂接外部动态链接库,扩展自定义指令集。

(3)提供了一个可供脚本驱动的处理界面,用于接受并执行神经信息处理指令集;操纵神经电生理硬件。脚本驱动包含两层含义,一方面,脚本内容是一系列依次执行的神经信息处理指令集,神经信息处理界面接受这些指令,执行并给以用户反馈;另一方面,脚本的输入和执行可以是交互式的依次输入,也可以是读入存储为文件形式的脚本文件,自动解释执行。

通过实施上述技术方案,本发明能够达到下列有益效果:

(1)使神经信息处理的全过程能够在一个统一的框架内完成。

(2)能够在脚本的控制下,批量自动化的完成海量多通道神经信息的处理过程,并给出可视化结果。

(3)能够将神经电生理信息数据处理的流程保存在存储介质中,提高了数据处理的可重复性和可控性。

(4)将硬件控制与数据处理相结合,能够根据神经电生理信息数据的处理结果,控制硬件运行,动态的修改实验方案。

(5)通过统一的接口,能够动态的扩展处理和可视化算法。

附图说明

图1是依照本发明的一个实施例,显示出示例系统的整体框图。

图2是依照本发明的一个实施例,显示出数据获取接口层的内部运行框图。

图3是依照本发明的一个实施例,显示出数据处理接口层的内部运行框图。

图4是依照本发明的一个实施例,显示出数据可视化接口层的内部运行框图。

图5是依照本发明的一个实施例,显示出脚本驱动用户界面的内部运行框图。

图6是依照本发明的一个实施例,显示出系统中指令的执行流程,并同时显示出指令流和数据流的关系的一种示例。

图7是依照本发明的一个实施例,显示出在一个数据对象的生命周期中,各种算法与可视化方法与数据对象相结合的流程图。

具体实施方案

首先参考图1,框图依照本发明的一个实施例示出了一个可扩展的海量多道神经信息综合处理系统100。系统100包括但不限于:数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103、脚本驱动控制组件104。在一个实施例中,系统100是由一个或多个组件(如:数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103、脚本驱动控制组件104)构成的软件系统。在另一实施例中,系统100是由包括本发明的实施例的一个或多个应用和/或软件系统和电生理硬件系统构成的集成软件应用系统,如多通道神经电生理实验系统。

数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103是各对应服务的服务接口,是对应服务提供者组件与系统交互的唯一接口,是脚本内包含的神经信息处理指令集的内部执行接口。

图1中,脚本驱动控制组件104和数据获取操纵组件101间存在数据请求和返回的指令和数据流105。指令和数据流105中包括,来自脚本驱动控制组件104向数据获取操纵组件101发起的数据请求指令和/或相应的上传数据流以及数据获取操纵组件101处理后返回的下载数据流。数据请求指令包括但不限于:对数据文件内包含的数据流的请求、对数据流的存储请求、对神经电生理信号采集硬件的数据采集请求、对神经电生理刺激硬件的刺激波形输出请求等。

图2示例了一个实施例中,数据获取操纵组件101内部的组件关系框图。数据获取操纵组件101的主要功能是与硬件和存储介质交互,完成数据写入和读出请求。来自脚本驱动控制组件104的数据请求指令105被提交到数据请求和数据交换接口单元201。数据请求和数据交换接口单元201对数据请求指令进行分析,判断其数据请求的目标类型。若数据请求指令带有硬件操作标识符,数据请求解释和数据交换接口201则将该指令和/或上传数据流作为一个硬件指令工作对象211传入硬件请求代理层单元202。

硬件请求代理层单元202具有两大功能。一方面,它是数据请求指令的抽象层。硬件的数据请求指令包括但不限于:数据采集卡开始采集、停止采集、电生理刺激器刺激模式选择、刺激程序上传、刺激数据流的指定、开始刺激、停止刺激等。这些硬件请求指令包含在数据请求指令流105中,并封装为硬件指令工作对象211的一部分。硬件请求代理层单元202接受工作对象211中的硬件请求指令,并根据硬件操作标识符中的硬件类型和型号调用不同硬件控制组件204。在一个实施例中,硬件类型包括采集设备(如数据采集硬件207)和刺激输出设备(如电刺激硬件208)。硬件型号是指具体的设备型号,不同的设备型号对应了不同的硬件控制组件204。另一方面,硬件请求代理层单元202是各个硬件控制组件204的服务宿主。硬件控制组件204面向具体的硬件,将硬件请求代理层单元202转发的硬件请求指令213转换成对应硬件驱动程序接口的控制字,操纵具体硬件工作。

在一个具体的实施例中,进行硬件操作时,指令和数据流105中的上传数据流封装为硬件指令工作对象211的另一部分,并通过硬件控制组件204提交给具体的硬件驱动程序。

对于数据采集硬件207,该硬件不处理上传数据流,但能够返回一个连续的数据流,该数据流将作为硬件请求指令213的结果返回,并转换成硬件指令工作对象211的一部分返回数据请求解释和数据交换接口201,最终作为指令和数据流105中返回的数据流。同时,硬件控制组件应当根据操作的成功与否返回一个状态字,该状态字也作为硬件请求指令213的结果返回,同属于硬件指令工作对象211的一部分,最终作为指令和数据流105中返回的指令执行状态字。

在一个具体的实施例中,对于电刺激硬件208,该硬件将上传数据流视为刺激程序,但没有数据流返回,仅有指令执行状态字返回数据请求解释和数据交换接口201,并最终作为指令和数据流105中返回的指令执行状态字。这种情况下,指令和数据流105中返回的数据流为空。

若数据请求指令不带有硬件操作标示符,则数据请求解释和数据交换接口201将该指令和/或上传数据流包装为存储系统工作对象212的一部分提交到文件请求代理层单元203。

文件请求代理层单元203是解释从脚本驱动控制组件104中传递来的文件相关的数据请求指令的最终解释者。文件相关的数据请求指令可包括但不限于:包含文件具体存储位置的数据请求指令、包含文件特征查询的SQL字串的数据请求指令、包含文件具体存储位置和文件特征的数据读写指令。对于包含文件具体存储位置的数据请求指令,文件请求代理层单元203根据数据请求指令中的文件类型标识符,向不同的文件协议组件206发出文件请求214。文件协议组件206直接向文件存储设施209(如:硬盘存储器)请求文件,并按照不同的文件格式协议解释文件数据,将数据流作为文件请求214的结果返回给文件请求代理层单元203,并作为存储系统工作对象212的一部分返回数据请求解释和数据交换接口201,最终作为指令和数据流105中返回的数据流。同时,文件协议组件206应当根据文件访问的成功与否返回一个状态字,该状态字也作为文件请求214的结果返回,同属于存储系统工作对象212的一部分,最终作为指令和数据流105中返回的指令执行状态字。

对于包含文件特征查询的SQL字串的数据请求指令,文件请求代理层单元203设置数据库请求215中的查询条目状态字为真,并将执行语句设置为该SQL字串,最后把数据库请求215提交给数据库组件205。包含文件特征查询的SQL字串的数据请求指令可包括但不限于:根据文件命名规则进行的查询、根据文件所对应的特征信息,例如数据的元信息,包括实验日期、实验操作人、实验类型、实验目的、数据处理所使用的算法类型等数据文件的附加信息,这些信息不是数据本身,但它们能够唯一的将数据产生的附属情况描述出来。进行查询时,数据库组件205将SQL请求提交给数据库程序210。若查询得到空结果,则数据库组件205将把数据库请求215的返回结果设置查询失败状态字。相应的,文件请求代理层单元203接受到此失败状态字后,设置存储系统工作对象212的状态字为失败,并设置212的数据流为空,状态字和数据流最终作为指令和数据流105的执行结果返回。若查询得到1个或多个文件条目,数据库组件205将数据库查询结果和查询成功状态字作为数据库请求215的结果一并返回给文件请求代理层单元203。数据库查询结果包括文件代理请求层203获取到文件条目名称后,按照“包含文件具体存储位置的数据请求指令”的执行方法,向文件协议组件206发起请求,这将得到两个结果:文件请求状态字和文件请求数据流。文件代理请求层203将文件请求状态字、数据库查询请求状态字和文件请求数据流一并作为存储系统工作对象212的执行结果返回数据请求解释和数据交换接口201,最终作为指令和数据流105的执行结果返回。

对于包含文件具体存储位置和文件特征的数据读写指令,文件请求代理层单元203设置数据库请求215中的添加条目状态字为真,并将执行语句设置成文件特征字串。最后把数据库请求215提交给数据库组件205。数据库组件205首先根据数据库请求215中的文件特征关键词,向数据库程序210查询是否存在同样的索引条目。若已经存在,则数据库组件205将把数据库请求215的返回结果设置添加失败状态字。相应的,文件请求代理层单元203接受到此失败状态字后,设置存储系统工作对象212的状态字为失败,并设置212的数据流为空,状态字和数据流最终作为指令和数据流105的执行结果返回。若数据库中不存在同样的索引条目,则数据库组件205将把词条文件特征存储到数据库中,并根据数据库程序210实际的运行结果返回数据库写入执行状态。在向数据库组件205发出请求的同时,文件请求代理层单元203将包含在存储系统工作对象212中的上传数据流和文件具体存储位置提交给文件协议组件206。文件协议组件206将数据流写入磁盘文件,并返回文件写入执行状态。文件写入执行状态和数据库写入执行状态被作为存储系统工作对象212的状态字返回数据请求和数据交换接口单元201,最终作为指令和数据流105的执行结果返回。

图3示例了一个实施例中,数据分析处理组件102的内部的组件关系框图。数据处理组件的主要功能是,一方面对各种数据处理算法暴露系统的应用程序编程接口,使这些算法挂接到神经信息处理的工作流程中;另一方面,对脚本驱动控制组件104提交现有算法的列表供用户调用。本发明的一个具体实施例中,数据与数据处理算法是松散耦合的,这定义为:用户可根据需求动态地将各种数据处理算法挂接到数据流上进行处理。同时数据流经的处理算法被作为数据的处理历史保存在数据文件的特征表中。

来自脚本驱动控制组件104的处理请求指令106被提交到处理请求解释与结果反馈接口301。处理请求解释与结果反馈接口301将来自脚本驱动控制组件104的数据流作为内部数据流工作对象306提交到数据输入层组件302,将指令流作为内部指令流工作对象307提交到处理算法托管层组件303。

数据输入层组件302可对数据进行必要的缓存,并向具体的处理算法执行单元305提供数据请求通道309,数据请求通道309对处理算法执行单元305屏蔽了数据获取的细节,仅暴露出数据的本质属性,例如:通道号、采集时间轴、事件信息等。处理算法执行单元305运行时可以随时通过数据请求通道309向数据输入层组件302获取数据。在一个具体的实施例中,一个处理算法执行单元305可能需要多个数据流。对于多个数据流的情况,数据流的数目应当由用户在脚本驱动控制组件104中给出,处理请求指令106中已经包含有指向所需数据流的地址。数据输入层组件302不发起新的数据请求。需要说明的是,数据输入层组件302的职责是对处理算法执行单元305提供数据流,因此并不限制在其他的实施例中,数据输入层组件302也能发起新的数据请求。

处理算法托管层组件303是处理算法执行单元305与系统100交互的关键。在一个实施例中,可能存在N个具体的处理算法组件305,这些算法依照预先定义的格式存储在指定的文件系统位置中。系统100启动时,处理算法托管层对指定的文件系统位置进行扫描,获取各处理算法组件305的文件位置和调用格式。在其他的实施例中,可通过其他方式将处理算法注册到处理算法托管层组件303。

脚本驱动控制组件104将处理请求提交到处理请求与结果反馈接口301后,该接口将处理请求中的算法指令进一步提交到处理算法托管层组件303。处理算法托管层组件303查询已注册的算法程序,查询成功则调用该处理算法,并将控制权交由该算法,否则返回“算法不存在”状态字。

处理算法执行单元305在得到处理算法托管层组件303转交的控制权后,通过数据层302获得输入的计算数据;处理算法运行结束,将向处理算法托管层组件303返回运行状态字(如:成功、失败、失败代码、失败原因),运算结果通过运算结果输出接口304输出。运算结果输出接口304一方面接受来自处理算法的输出结果311,并对该结果进行可能的缓存(例如:可缓存在磁盘文件中,也可缓存在内存指定的区域中);另一方面,结果层304向处理请求解释与结果反馈接口301提供一个操作运算结果的指针308。处理请求解释与结果反馈接口301将处理算法执行单元305运行状态字与操作结果指针308一并作为处理请求指令106的运行结果返回脚本驱动控制组件104。

针对某个具体的算法305,数据分析处理组件102能够支持其的各种不同语言实现。在一个实施例中,算法305可以使用C/C++语言编写并编译成可执行程序,最终由处理算法托管层组件303调用。在另一个实施例中,算法305可以使用工程计算语言(如Matlab)编写,并在托管环境中运行,同时为处理算法托管层组件303所调用。在其他的实施例中,遵循算法托管层的函数定义的各种利用其它脚本语言(如Python)编写的算法或可执行程序同样能够注册到处理算法托管层组件303中,并借助脚本驱动控制组件104被用户执行。

图4示例了一个实施例中,数据可视化处理组件103的内部的组件关系框图。数据可视化处理组件103的主要功能是,一方面对各种数据可视化算法暴露系统的应用程序编程接口,使这些可视化方法挂接到神经信息处理的工作流程中;另一方面,对脚本驱动控制组件104提交现有可视化方法的列表供用户调用。本发明的一个具体实施例中,数据处理结果与数据可视化方法同样是松散耦合的,这定义为:用户可根据需求动态地将各种数据可视化方法挂接到数据流上进行处理。同时数据流经的可视化方法被作为数据的处理历史保存在数据文件的特征表中。

来自脚本驱动控制组件104的数据可视化请求107被提交到可视化请求与结果传送接口401。数据可视化请求107包括可视化指令和需要可视化的数据流。每一个可视化指令对应着一个可视化方法执行单元402。在一个实施例中,可能存在N个具体的可视化方法执行单元402,这些组件依照预先定义的格式存储在指定的文件系统位置中。系统100启动时,可视化请求与结果传送接口401对指定的文件系统位置进行扫描,获取各可视化方法执行单元402的文件位置和调用格式。在其他的实施例中,可通过其他方式将可视化方法402注册到可视化请求与结果传送接口401。

来自可视化请求与结果传送接口的指令参数和数据流403提交给可视化方法执行单元402后,可视化方法执行单元402完成对结果图形的绘制,可以将图形存储在用户指定的文件路径下,也可以向可视化请求与结果传送接口返回一个图形句柄,便于将图形与原始数据一并存储在数据库中。

在一个实施例中,可视化方法执行单元402可以用不同的程序语言实现。数据可视化处理组件103可以将对可视化方法执行单元402的请求转换成对C/C++语言的可执行程序的带参数调用,以及各种工程计算语言(如:Matlab)和脚本语言(如:Python、Lua等)。

图5中示例了一个实施例中,脚本驱动控制组件104的内部的组件关系框图。脚本驱动控制组件104的主要功能包括:首先,脚本驱动控制组件104是系统100与用户交互的界面。用户给出的所有指令均以脚本命令的形式向脚本驱动控制组件104发出,脚本驱动控制组件104执行命令并向用户给出反馈;其次,脚本驱动控制组件104是系统内部工作流指派的关键。神经信息处理流程有严格的时间顺序,脚本交互指令能够根据用户给定的指令,规划指令的运行时间和处理器分配,支持多处理器的并行计算;第三,针对神经信息运算耗时长,可能长时间无人值守的特点,脚本驱动控制组件104对指令执行过程监控,在运行每一条指令前都保存了环境状态,某一条指令的失败或系统100的意外崩溃不影响整个工作流的继续执行,系统100能够从某条指令的中断处恢复执行。

命令行交互和脚本文件接口501是命令解释和结果反馈的外壳,它接受两种形式的运行方式。(1)交互方式。用户一次输入一条命令,系统根据具体命令的执行情况立即给出反馈;(2)脚本解释器。各种神经处理命令以脚本文件的方式存储在文件系统中,用户一次性提交,系统执行完成后给出反馈。指令集包括系统指令解析单元502和用户指令解析单元503。系统指令解析单元502是具体实施例中实现命令行交互和脚本文件接口501所使用的程序语言内嵌的各种指令和接口。一个实施例中,使用Python语言编写命令行交互和脚本文件接口501,则系统指令集则包括Python语言的所有关键字。用户指令解析单元503是在数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103中定义的各个具体程序的映射。系统指令解析单元502随命令行接口501在启动时初始化。系统启动时,由数据分析处理组件102中的处理算法托管层组件303和数据可视化处理组件103中的可视化请求与结果传送接口401扫描各种处理算法,完成用户指令解析单元503的初始化。

命令行交互和脚本文件接口501的指令调用(包括系统指令请求507和用户指令请求509)首先通过系统指令解析单元502和用户指令解析单元503的解析,转变成系统调用,进入任务执行时间规划单元504。在任务执行时间规划单元504中,系统指令调用510的执行优先顺序高于用户指令调用511的优先顺序。命令行交互和脚本文件接口501与任务执行时间规划单元504间存在工作规划指令流508,工作规划指令流中包括命令行交互接口501发起的执行优先序调整指令、工作流开始、暂停和终止指令。任务执行时间规划单元504根据指令的优先顺序安排指令执行,优先顺序相同的指令若不存在互斥状态字,则指令被安排到多个处理单元上同时执行。

指令流经过任务执行时间规划单元504后,转换为具体的执行流512,进入任务状态保存和监控单元505。执行流512中的每一个指令在任务状态保存和监控层中被赋予了唯一的状态对象。带有状态对象的指令对象513被提交到任务执行接口单元506,并同时记录在日志文件中,任务执行接口单元506分别调用数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103完成工作。数据获取操纵组件101、数据分析处理组件102、数据可视化处理组件103执行后产生的数据流和状态字返回到任务执行接口单元506后,存储在每条指令对应的状态对象中,并在日志文件中记录一个状态字。日志文件中,没有记录的指令对象被视为没有被执行过的指令,仅有指令记录没有执行状态字的指令对象被视为执行过程中发生意外错误的指令,执行状态字为失败的指令记录被视为执行中因条件未满足或参数错误自行退出的指令。任务状态保存和监控单元505在每次运行一个指令前,均对日志进行检查,发现没有执行成功状态字的指令后,将对任务执行时间规划单元504发起重新调度请求,保证命令的再次执行。

下面结合图6和一个实施例对本发明的指令执行流程做进一步的说明。在本发明中,系统100依靠用户输入的脚本驱动。用户在脚本交互界面104中输入脚本指令。该指令首先通过系统指令集和用户指令集转换为内部指令序列,这些内部指令序列按照任务时间段规划504依次执行的顺序过程定义为指令流。指令序列的执行将伴随着数据对象的创建、修改、保存过程。指令序列的执行中,任务状态保存和监控组件505将定期对执行状态轮询,并存储每一步的执行状态。指令序列执行结束,将数据流的执行结果取出并加上自身的执行状态字作为指令执行结果。

数据对象应指令的执行请求而创建,数据对象创建时需要的数据来源可包括但不限于数据采集硬件对象207、电刺激硬件对象208、文件存储对象209、数据库对象210。数据对象创建后,应指令的执行请求而不断变动,其中包含的数据发生修改。当指令执行完成后,数据对象可保存在文件存储对象209和数据库对象210中,作为永久的数据读写;也可保存在电刺激硬件对象208中,作为电生理刺激器的控制信号。

结合图7和一个实施例,对数据流和算法、可视化方法的动态结合过程做进一步的说明。将数据对象创建、处理、保存和析构的全过程定义为数据对象的生命周期,多个数据对象并行或串行的被创建、修改、保存和析构的过程可视为一个数据流。在一个数据对象中,当数据对象被创建时,将自动产生数据副本0,其中包含着该数据对象的所有数据。通过脚本指令,能够将系统中任一处理算法与数据副本相结合。数据副本中的数据作为处理算法的输入,处理算法的输出将自动的创建新的数据副本。在一个具体的实施例中,数据副本与数据对象是无差别的,数据副本的创建等同于新数据对象的创建。在另一方具体的实施例中,数据对象内部可包含多个数据副本,仅当指令显式地要求创建新的数据对象时才创建。本发明并不具体的限定两种或更多种数据对象和数据副本的相互关系。通过脚本指令,能够将系统中任一处理算法与数据副本相结合,数据副本中的数据作为可视化方法的输入。可视化方法将返回绘图句柄进行屏幕或文件中的绘制,也可将绘图数据返回数据对象,与数据副本一同存储。本发明中,数据对象中保存着处理算法和可视化方法的序列,即:对于数据副本1而言,数据对象将保存着产生数据副本1的处理算法1的相关执行序列信息。这是因为,数据副本1可以通过处理算法1对数据副本0的再次运行来重复获得,只要依次保存每次处理算法的相应信息,就能够重现整个数据流。对于可视化方法序列,数据对象将为数据副本0保存可视化方法1的相关执行序列信息。这是因为,只要通过在数据副本0上重复执行可视化方法1的执行序列,就能重现相关的可视化结果。本发明通过上述方法,保证了数据处理和数据可视化过程中的高度可重复性。

鉴于以上内容,可以看到,实现了本发明的若干目标并获得了其他有利结果。

当依据此处所描述的方法和技术来编程时,本发明也包括计算机和电生理硬件本身。为说明起见,操作系统和其他可执行程序组件此处被示为离散的框,但本领域一般技术人员可以意识到,这些程序和组件在不同的时刻主流在计算机的不同存储组件中,并有计算机的数据处理器来执行。尽管此处结合了包括通用计算机和神经电生理数据采集硬件207、电刺激硬件208的示例性计算系统环境来描述。然而本发明可用众多其他通用或专用计算环境操作,示例中提供的计算系统环境并不旨在对本发明的使用范围或功能提出任何局限。此外,该计算系统环境不应当被解释为对示例性操作环境中所示组件的任一个或其组合具有任何依赖性或要求。适用于本发明的公知的计算系统、环境和/或配置的示例包括但不限于,个人计算机、服务器计算机、多处理系统、基于微处理器的系统、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。

本发明可在一个或多个计算机或其他设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般地,程序模块包括但不限于,例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践。当在分布式计算环境中时,任务通过通信网络连接的远程处理设备来执行,程序模块可以位于包括存储器的本地和远程计算机存储介质中。

软件体系结构环境中的接口层包括软件模块、组件、代码部分、或其他计算机可执行指令序列。接口包括:例如访问第二模块来代表第一模块执行计算任务的第一模块。在一个示例中,第一和第二模块可以是由操作系统提供的应用程序编程接口、组件对象模型接口、进程间通信接口以及可扩展标记语言元数据交换格式接口(如,用于Web服务通信时)。接口可以是例如.Net Frameworks、Java、C++中的紧耦合的同步实现。或者除此之外,接口也可以是例如Web服务中的松耦合的异步实现。一般地,接口包括以下特征的任一组合:紧耦合的、松耦合的、同步和异步的。此外,接口可以符合标准协议、专有协议、或标准和专有协议的任何组合。此处所描述的接口可以都是单个接口的一部分,或者可以被实现为单独的接口或其中的任何组合。接口可以本地或远程地执行以提供功能。此外,接口可包括比此处所示或所描述的更多或更少的功能。

此处所示且描述的方法的执行或实现顺序不是必要的,除非另外指定。即,方法的元素可以用任何顺序来执行,除非另外指定,且方法可包括比此处所揭示的更多或更少的元素。可以认为,在另一元素之前、与其同时或之后执行或实现特定元素是在本发明的范围之内。

当介绍本发明或其实施例的元素时,冠词“一”、“一个”、“该”和“所述”是指存在一个或多个元素。“包括”、“包含”、“具有”旨在包含性的,且意味着除所列出的元素之外还可以有其他元素。

由于可在不脱离本发明的范围的情况下在上述产品和方法中做出各种改变,因此包含在上述说明书并在附图中示出的所有内容都应当被解释为说明性而非限制性的。

最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号