流程描述性语言的可视化显示方法、装置、设备和介质

文档序号:1298342 发布日期:2020-08-07 浏览:29次 >En<

阅读说明:本技术 流程描述性语言的可视化显示方法、装置、设备和介质 (Visual display method, device, equipment and medium of flow descriptive language ) 是由 李明壮 程少军 龚梅 杨海生 关彦彬 于 2020-03-17 设计创作,主要内容包括:本说明书一个或多个实施例提供一种流程描述性语言的可视化方法、装置、设备及介质,其中的方法包括:获取以流程描述性语言编排的流程文件,以预设规则对所述流程文件进行解析,以得到所述流程文件转换后对应的关系型数据;对所述关系型数据分析得到所述流程文件的节点对象以及节点对象的属性;根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。本发明能够快速将流程文件转换成流程可视化图,有效降低生物信息技术分析人员基于流程运行任务的门槛,快速进行问题的定位和解决。(One or more embodiments of the present specification provide a method, an apparatus, a device, and a medium for visualizing a process descriptive language, where the method includes: acquiring a process file arranged by a process descriptive language, and analyzing the process file by a preset rule to obtain corresponding relational data after the process file is converted; analyzing the relational data to obtain node objects of the process file and attributes of the node objects; determining a hierarchical relationship according to the attribute of each node object, determining a path relationship of the node object according to the hierarchical relationship, and sending the node object and the path relationship to an image rendering unit to generate a flow visualization graph of each node object. The method can quickly convert the flow file into the flow visualization chart, effectively reduces the threshold of the biological information technical analyst based on the flow operation task, and quickly positions and solves the problem.)

流程描述性语言的可视化显示方法、装置、设备和介质

技术领域

本说明书一个或多个实施例涉及技术领域,尤其涉及一种流程描述性语言的可视化显示方法、装置、设备和介质。

背景技术

随着基因检测生物信息技术飞速发展,基因检测市场规模也进一步扩大,可预测的相关市场未来五年内的年均复合增长率将超过30%,基因检测算法是基因检测生物信息技术的重要组成部分。

生物信息技术分析流程是基因检测算法分析的基础,复杂多样性,使得编排分析流程的方式也趋于复杂,作为目前主流的流程编排语言WDL(workflow descriptionlanguage,流程描述性语言),使用WDL编排的生物信息技术分析流程的内部结构以及流程各节点之间的路径对于使用者来说是一个黑盒,尤其在使用此方式编排的流程运行任务时,使用者无法得知流程开始的节点以及结束节点,任务失败后,也无法直观的去关联上下文快速定位问题。

目前还没有能够解决上述问题的方法或者装置出现。

发明内容

有鉴于此,本说明书一个或多个实施例的目的在于提出一种流程描述性语言的可视化显示方法、装置、设备和介质,以解决目前的生物信息技术分析流程存在的无法直观透明显示的问题。

基于上述目的,第一方面,本说明书一个或多个实施例提供了一种流程描述性语言的可视化方法,所述方法包括:

获取以流程描述性语言编排的流程文件,以预设规则对所述流程文件进行解析,以得到所述流程文件转换后对应的关系型数据;

对所述关系型数据分析得到所述流程文件的节点对象以及节点对象的属性,所述节点对象的属性至少包括节点对象的节点标识和节点ID;

根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。

上述的方法,所述以预设规则对所述流程文件进行解析,包括:

至少以所述流程文件的工作流、变量、函数及工作任务为依据,分别提取所述关系型数据中对应的工作流名称、变量值、方法块及执行函数;

以预设格式对所述工作流、变量、函数及工作方法及提取的工作流名称、变量值、方法块及执行函数进行组织,以得到所述流程文件转换后对应的关系型数据。

上述的方法,所述根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,包括:

根据所述节点对象的节点标识对所述节点对象的集合进行遍历操作,确定每一所述节点对象的父节点对象及子节点对象;

确定所述节点对象中的首节点对象及尾节点对象;

结合所述首节点对象、尾节点对象以及其它各节点对象的父子关系,根据所述父子关系确定所有节点对象之间的路径。

上述的方法,所述确定所述节点对象中的首节点对象及尾节点对象,包括:

对所述节点对象的集合进行遍历操作,查找不存在父节点对象的节点对象,根据该节点对象的属性确定首节点对象;查找不存在子节点对象的节点对象,根据该节点对象的属性确定尾节点对象。

上述的方法,所述根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,包括:

所述节点对象的属性还包括连线信息;

根据节点对象的属性确定首节点对象和尾节点对象;

获取所述首节点对象和尾节点对象之外的其它节点对象的连线信息,根据各连线信息的尾端标识确定连接信息的两个端点的节点对象,以确定层级信息;

根据所述层级信息确定所述节点对象之间的路径。

上述的方法,所述将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图,包括:

将所述节点对象以及所述路径关系发送至dagre-d3渲染引擎绘制流程流程可视化图,所述dagre-d3渲染引擎为Web页面的插件。

第二方面,本说明书一个或多个实施例提供了一种流程描述性语言的可视化装置,其特征在于,所述装置包括:

第一解析模块,用于获取以流程描述性语言编排的流程文件,以预设规则对所述流程文件进行解析,以得到所述流程文件转换后对应的关系型数据;

第二解析模块,用于对所述第一解析模块得到的所述关系型数据进行分析,得到所述流程文件的节点对象以及节点对象的属性,所述节点对象的属性至少包括节点对象的节点标识和节点ID;

图像渲染模块,用于根据所述第二解析模块得到的各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。

上述的装置,所述第一解析模块包括服务器解析模块,所述服务器解析模块用于:

至少以所述流程文件的工作流、变量、函数及工作任务为依据,分别提取所述关系型数据中对应的工作流名称、变量值、方法块及执行函数;

以预设格式对所述工作流、变量、函数及工作方法及提取的工作流名称、变量值、方法块及执行函数进行组织,以得到所述流程文件转换后对应的关系型数据。

第三方面,本说明书一个或多个实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述流程描述性语言的可视化方法。

第四方面,本说明书一个或多个实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述流程描述性语言的可视化方法。

从上面所述可以看出,本说明书一个或多个实施例提供的流程描述性语言的可视化方法,针对基于WDL语言编排的流程,能够快速转换成Web可视化的展现形式,让编排的流程内部结构更加直观,有效降低生物信息技术分析人员基于流程运行任务的门槛,快速进行问题的定位和解决。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书一个或多个实施例的流程描述性语言的可视化显示方法流程示意图;

图2为本说明书一个或多个实施例的流程可视化图示意图;

图3为本说明书一个或多个实施例流程描述性语言的可视化显示装置示意图;

图4为本说明书一个或多个实施例流程描述性语言的可视化显示具体实施例的示意图;

图5为本说明书一个或多个实施例流程描述性语言的可视化显示方法具体实施例时流程示意图;

图6为本说明书一个或多个实施例的设备结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

本发明涉及一种流程描述性语言的可视化显示方法、装置、设备及介质,其主要运用于需要对以自然流程语言编排生成的文件进行可视化的场景中,其基本思想是:对流程文件进行解析和格式的转换,针对于转换后的格式数据进行分析后得到流程文件中的关键参数所蕴含的节点对象,从节点对象之间的层级信息确定节点对象之间的路径关系,并结合路径关系在网页的图像渲染插件中绘制流程可视化图,解决了之前流程文件无法透明、直观地显示的弊端,有效降低生物信息技术分析人员基于流程运行任务的门槛,快速进行问题的定位和解决。

本实施例可适用于带有解析转换模块的智能型终端中以进行流程描述性语言的可视化显示的情况中,该方法可以由解析转换装置来执行,其中该装置可以由软件和/或硬件来实现,一般地可集成于智能终端中,或者终端中的中心控制模块来控制,如图1所示,为本发明流程描述性语言的可视化显示方法的基本流程示意图,所述方法具体包括如下步骤:

在步骤110中,获取以流程描述性语言编排的流程文件,以预设规则对所述流程文件进行解析,以得到所述流程文件转换后对应的关系型数据;

本发明实施例中,所述流程描述性语言为WDL(workflow description language,流程描述性语言)语言,编排,包括编写和排版,具体而言指的是代码的编写与排版,通过WDL语言编写和排版形成的流程文件为WDL文件。

所述WDL文件为后缀为.wdl的文件,一般地,其至少应包括task(工作方法)以及workflow(工作流),以及相关的WDL语法、变量和函数的定义,具体地,本发明实施例中WDL文件如pipeline.wdl包括如下:

以预设规则对所述流程文件如pipeline.wdl文件进行解析,以得到所述流程文件转换后对应的关系型数据,其中,所述预设规则可以为将所述WDL文件转换为常规数据格式的规则,本发明实施例中,所述转换规则可以为:

至少以所述流程文件的工作流、变量、函数及工作任务为依据,分别提取所述关系型数据中对应的工作流名称、变量值、方法块及执行函数;

以预设格式对所述工作流、变量、函数及工作方法及提取的工作流名称、变量值、方法块及执行函数进行组织,以得到所述流程文件转换后对应的关系型数据。

其中,所述流程文件的工作流、变量、函数、工作任务均为流程文件的参数,各参数对应的工作流名称、变量值、方法块及执行函数等可以为运行变量,不同流程文件的参数及运行变量均是不相同的,且流程文件的参数及运行变量可以存储于相应数据库的不同数据表中,以便于后续前端与后台之间的运行分离。

具体地,针对于上述pipeline.wdl文件,通过读取该pipeline.wdl文件得到其WDL语法,以WDL语法作为前提,以workflow(工作流)为依据,提取其后的值(piplinetest)作为工作流名称;以file和String变量等类型为依据,分别提取其后对应的变量值fq1和region_type等;以call函数和标准output函数调用为依据,分别提取不同的方法块newcfg、otu及输出定义;以task(工作方法)方法为依据,分别提取不同的方法块beta_diversity、beta_sup、newcfg等,最终将其组织转换成json格式等类型的关系型数据。

上述pipeline.wdl文件采用上述的预设规则转换后得到的json格式数据(json字符串)为:

{"nodes":{"MY16S241.alpha_diversity":{"ItemInfo":{"Name":"MY16S241.alpha_diversity"},"ItemId":"","NodeId":"MY16S241.alpha_diversity","ItemLevel":0},"MY16S241.beta_diversity":{"ItemInfo":{"Name":"MY16S241.beta_diversity"},"ItemId":"","NodeId":"MY16S241.beta_diversity","ItemLevel":0},"MY16S241.beta_sup":{"ItemInfo":{"Name":"MY16S241.beta_sup"},"ItemId":"","NodeId":"MY16S241.beta_sup","ItemLevel":0},"MY16S241.data_filter":{"ItemInfo":{"Name":"MY16S241.data_filter"},"ItemId":"","NodeId":"MY16S241.data_filter","ItemLevel":0},"MY16S241.newcfg":{"ItemInfo":{"Name":"MY16S241.newcfg"},"ItemId":"","NodeId":"MY16S241.newcfg","ItemLevel":0},"MY16S241.otu":{"ItemInfo":{"Name":"MY16S241.otu"},"ItemId":"","NodeId":"MY16S241.otu","ItemLevel":0},"MY16S241.otu_sup":{"ItemInfo":{"Name":"MY16S241.otu_sup"},"ItemId":"","NodeId":"MY16S241.otu_sup","ItemLevel":0},"MY16S241.qc_clean":{"ItemInfo":{"Name":"MY16S241.qc_clean"},"ItemId":"","NodeId":"MY16S241.qc_clean","ItemLevel":0},"MY16S241.qc_merge":{"ItemInfo":{"Name":"MY16S241.qc_merge"},"ItemId":"","NodeId":"MY16S241.qc_merge","ItemLevel":0},"MY16S241.result":{"ItemInfo":{"Name":"MY16S241.result"},"ItemId":"","NodeId":"MY16S241.result","ItemLevel":0}},"paths":[{"end":"MY16S241.data_filter","start":"MY16S241.newcfg"},{"end":"MY16S241.qc_clean","start":"MY16S241.data_filter"},{"end":"MY16S241.qc_clean","start":"MY16S241.newcfg"},{"end":"MY16S241.qc_merge","start":"MY16S241.qc_clean"},{"end":"MY16S241.qc_merge","start":"MY16S241.data_filter"},{"end":"MY16S241.otu","start":"MY16S241.qc_merge"},{"end":"MY16S241.otu","start":"MY16S241.newcfg"},{"end":"MY16S241.otu_sup","start":"MY16S241.otu"},{"end":"MY16S241.alpha_diversity","start":"MY16S241.otu"},{"end":"MY16S241.alpha_diversity","start":"MY16S241.newcfg"},{"end":"MY16S241.beta_sup","start":"MY16S241.newcfg"},{"end":"MY16S241.beta_sup","start":"MY16S241.alpha_diversity"},{"end":"MY16S241.beta_diversity","start":"MY16S241.newcfg"},{"end":"MY16S241.beta_diversity","start":"MY16S241.otu"},{"end":"MY16S241.beta_diversity","start":"MY16S241.alpha_diversity"},{"end":"MY16S241.beta_diversity","start":"MY16S241.beta_sup"},{"end":"MY16S241.result","start":"MY16S241.qc_merge"},{"end":"MY16S241.result","start":"MY16S241.data_filter"},{"end":"MY16S241.result","start":"MY16S241.otu_sup"},{"end":"MY16S241.result","start":"MY16S241.alpha_diversity"},{"end":"MY16S241.result","start":"MY16S241.beta_diversity"}],"pipeline_id":28}

在步骤120中,对所述关系型数据分析得到所述流程文件的节点对象以及节点对象的属性,所述节点对象的属性至少包括节点对象的节点标识和节点ID;

本发明实施例中,对所述关系型数据进行分析,即对所述json格式数据进行分析,可首先对所述json格式数据转化为可视化语言所需对象,所需对象专指JavaScript(简称js)中的数据存储结构,本发明中的分析方法并不限于js,在本发明实施例的可行的实施场景中,对于上述json格式数据进行分析的方法还可以为java。

将json格式数据转化为js的数据存储结构可存储于关系型数据库中,如mysql或sql数据库。

从数据库中调用所述json数据,并从中解析得到节点对象,所述节点对象为json数据中的“node(s)”类型的数据,所述节点对象对应于WDL(pipeline.wdl)文件中的task方法块结构信息,即每一节点对象对应于WDL文件中的一个task方法,同样地,每一节点对象亦对应于上述json字符串中实现一个具体功能的一组js语句。

所述节点标识为节点对象的节点名称,结合图2所示,例如其可以为data_filter、newcfg、qc_clean、otu等。

所述节点ID为所述节点对象的身份标识与上述json字符串中的“nodeID”相对应,以便于对节点对象进行区分。

在步骤130中,根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。

结合图2所示,上述json字符串中确定的节点对象包括:data_filter、newcfg、qc_clean、otu、alpha_diversity、beta_sup、out_sup、beta_diversity、result及qc_merge等10个节点对象。

根据各所述节点对象的属性确定层级关系,可通过以下方法进行:

根据所述节点对象的节点标识对所述节点对象的集合进行遍历操作,确定每一所述节点对象的父节点对象及子节点对象;

结合图2所示,以节点对象qc_merge为例,其父节点对象及子节点对象均包括两个,其父节点对象包括data_filter及qc_clean,其子节点对象包括otu及result。

以节点对象alpha_diversity为例,其父节点对象包括newcfg及otu,其子节点对象包括beta_diversity、beta_sup及result。

确定所述节点对象中的首节点对象及尾节点对象;这一过程包括:

判断某一节点对象不存在父节点对象时确定该节点对象为首节点对象,判断某一节点对象不存在子节点对象时确定该节点对象为尾节点对象。

结合所述首节点对象、尾节点对象以及其它各节点对象的父子关系,根据所述父子关系确定所有节点对象之间的路径。

当确定所述首节点对象、尾节点对象后,首先确定第二层级的节点对象,结合图2所示,例如首节点对象newcfg的子节点对象包括data_filter、qc_clean、beta_diversity、otu及beta_sup,则data_filter、qc_clean、beta_diversity、otu及beta_sup均暂时定义为第二层级,检测第二层级的各节点对象除了首节点对象newcfg外是否还存在其它的父节点对象,当存在时,则由对应的父节点对象向第二层级的节点对象绘制路径;重复以及步骤,直至最后层级result。

本发明实施例另一种可行的实施方式中,所述根据各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,还可以通过以下方式进行:

通过JavaScript语言对各所述节点对象进行解析,得到节点对象的相关属性,包括节点ID、子节点ID、Label(节点标识,即节点对象的名称)、edegs(当前节点关联的edge,连接线)。

当获取各所述节点对象的若干属性后,根据节点对象的属性确定首节点对象和尾节点对象,这一过程包括:

针对节点对象的属性子节点ID进行分析,当某一节点对象不存在子节点ID时该节点对象为尾节点对象,当某一节点对象不存在父节点ID时该节点对象为首节点对象。

获取所述首节点对象和尾节点对象之外的其它节点对象的连线信息,根据各连线信息的尾端标识确定连接信息的两个端点的节点对象,以确定层级信息;

本发明实施例中,可直接从mysql或sql数据库WDL文件对应的json数据结构中获取每一节点对象之间的连线对象信息,以及各节点对象之间的上下文内在关联关系。

从首节点对象开始从上至下一次获取连线信息,并通过连线信息生成连线数组,获取连线数组之后采取For循环方式获取每个连线尾端获取节点ID,之后根据获取的节点ID在节点对象集合中进行Node Map中hash查找得到连接端,通过递归调用完成连线解析,以得到各节点对象之间的层级信息,进而根据所述层级信息确定所述节点对象之间的路径。

根据所述路径,按照节点对象的层级从上至下对各节点对象进行连线,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。

本发明实施例的方法,对以流程语言编排生成的不透明的流程文件进行解析以实现格式上的转换,使得流程文件转化为易于处理的计算机语言,针对于转换后的常见格式数据进行分析后得到流程文件中的关键参数所蕴含的节点对象,从节点对象之间的层级信息确定节点对象之间的路径关系,并结合路径关系在网页的图像渲染插件中绘制流程可视化图,解决了之前流程文件不能透明、不能直观地显示的弊端,有效降低生物信息技术分析人员基于流程运行任务的门槛,快速进行问题的定位和解决。

本发明实施例的一种可行的实施方式中,所述将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图,包括:

将所述节点对象以及所述路径关系发送至dagre-d3渲染引擎绘制流程流程可视化图,所述dagre-d3渲染引擎为Web页面的插件。

dagre-d3为实现自动布局并且绘制流程图的开源JavaScript库,将所述节点对象以及所述路径关系发送至dagre-d3可实现对节点对象生成流程可视化图并自动渲染的效果,在显示界面,当点击其中的一个节点对象之后还可设置其关联的父节点对象和/或子节点对象高亮或闪烁显示。

图3为本发明实施例提供的一种流程描述性语言的可视化装置的结构示意图,该装置可由软件和/或硬件实现,一般地集成于智能终端中,可通过流程描述性语言的可视化方法来实现。如图所示,本实施例可以以上述实施例为基础,提供了一种流程描述性语言的可视化装置,其主要包括了第一解析模块310、第二解析模块320以及图像渲染模块330。

其中的第一解析模块310,用于获取以流程描述性语言编排的流程文件,以预设规则对所述流程文件进行解析,以得到所述流程文件转换后对应的关系型数据;

其中的第二解析模块320,用于对所述第一解析模块得到的所述关系型数据进行分析,得到所述流程文件的节点对象以及节点对象的属性,所述节点对象的属性至少包括节点对象的节点标识和节点ID;

其中的图像渲染模块330,用于根据所述第二解析模块得到的各所述节点对象的属性确定层级关系,根据所述层级关系确定所述节点对象的路径关系,将所述节点对象以及所述路径关系发送至图像渲染单元以生成各所述节点对象的流程可视化图。

本发明实施例一种可行的实施方式中,所述第一解析模块包括服务器解析模块,所述服务器解析模块用于:

至少以所述流程文件的工作流、变量、函数及工作任务为依据,分别提取所述关系型数据中对应的工作流名称、变量值、方法块及执行函数;

以预设格式对所述工作流、变量、函数及工作方法及提取的工作流名称、变量值、方法块及执行函数进行组织,以得到所述流程文件转换后对应的关系型数据。

本发明实施例一种可行的实施方式中,所述图像渲染模块330,还用于:

根据所述节点对象的节点标识对所述节点对象的集合进行遍历操作,确定每一所述节点对象的父节点对象及子节点对象;

确定所述节点对象中的首节点对象及尾节点对象;

结合所述首节点对象、尾节点对象以及其它各节点对象的父子关系,根据所述父子关系确定所有节点对象的之间的路径。

本发明实施例一种可行的实施方式中,所述确定所述节点对象中的首节点对象及尾节点对象,包括:

对所述节点对象的集合进行遍历操作,查找不存在父节点对象的节点对象,根据该节点对象的属性确定首节点对象;查找不存在子节点对象的节点对象,根据该节点对象的属性确定尾节点对象。

本发明实施例一种可行的实施方式中,所述图像渲染模块330还用于:

所述节点对象的属性还包括连线信息;

根据节点对象的属性确定首节点对象和尾节点对象;

获取所述首节点对象和尾节点对象之外的其它节点对象的连线信息,根据各连线信息的尾端标识确定连接信息的两个端点的节点对象,以确定层级信息;

根据所述层级信息确定所述节点对象之间的路径。

本发明实施例一种可行的实施方式中,所述图像渲染模块330,包括:

将所述节点对象以及所述路径关系发送至dagre-d3渲染引擎绘制流程流程可视化图,所述dagre-d3渲染引擎为Web页面的插件。

上述实施例中提供的流程描述性语言的可视化装置可执行本发明中任意实施例中所提供的流程描述性语言的可视化方法,具备执行该方法相应的功能模块和有益效果,未在上述实施例中详细描述的技术细节,可参见本发明任意实施例中所提供的流程描述性语言的可视化方法。

本发明实施例一种可行的实施方式中,结合图4所示,为本发明的具体实施结构图,在执行流程描述性语言的可视化方法时,可通过以下方式进行:

设置服务端解析器、对象解析器、节点解析器、连线解析器以及可视化组装生成器,其中的服务端解析器用于对获取的WDL文件解析产生json文件;对象解析器,用于将Json文件转换成可视化端语言所需对象;节点解析器,用于解析对象中产生的节点,并提取每一个节点单独保存为一个内部方法;连线解析器,用于解析对象中产生的连线,并提取连线两端上下文的逻辑关系;可视化组装生成器,负责将节点解析器和连线解析器产生的结果通过可视化的方式呈现在可视化界面。

其中,服务端解析器对WDL文件进行解析的解析规则为:服务端解析器读取该pipeline.wdl文件,将WDL语法作为前提,以关键字workflow为依据,提取其后的值(piplinetest)作为工作流名称;以关键字file和String等变量类型为依据,分别提取其后对应的变量值fq1和region_type等;以关键字call函数和关键字output标准输出函数调用为依据,分别提取不同的方法块newcfg、otu及输出定义;以WDL语言中的关键字task为依据,分别提取不同的执行函数beta_diversity、beta_sup、newcfg等,将提取的所有数据以json格式保存到数据库(mysql)中。

其中,call、output、task均为WDL语法中的关键字(保留字);

task:函数执行块,代表函数任务的具体执行过程;

call:调用函数关键字,即调用脚本中的Task;

outPut:函数返回值关键字。

对象解析器的解析规则:通过异步请求接收服务端格式转换后的JSON格式数据,使用Json.validate函数校验数据合法性,通过后使用Json.parse内置函解析JSON格式数据返回对应的键值JS对象。

节点解析器的解析规则:对象解析完成后提取对应的节点对象信息,提取第一个节点与最后一个节点作为head(首节点对象)与foot(尾节点对象),其余使用Foreach循环组装到Map组成节点集合,以节点ID为Key,以节点对象为Value组成键值对,并以键值对的形式将节点对象(以其属性中的节点ID和节点对象)保存至关系型数据库。

连线解析器的解析规则:从head节点开始从上至下一次获取连线信息,获取连线数组之后采取For循环方式获取每个连线尾端获取节点ID,之后根据获取的节点ID在NodeMap中hash查找得到连接端,通过递归调用完成连线解析。

所述服务端解析器、对象解析器、节点解析器、连线解析器以及可视化组装生成器之间通过统一规格的应用程序编程接口API进行交互和通信,在通信过程中数据可使用TLS协议进行加密,以可靠、安全地传输数据或文件。

本发明实施例的一种更具体的实施方式中,结合图5所示,为本发明实施例对WDL文件进行可视化处理流程示意图,其流程可包括如下:

用户将编排好的流程文件通过可视化界面上传到系统中;

服务端解析器对用户上传到系统的脚本文件进行解析,最终产生Json文件;服务端解析器可以选择使用Java语言进行解析,也可以使用Go语言进行解析(Java语言和Go语言均为一种开源的编程语言);

对象解析器通过Json文件进行解析,解析出json结构中所包含的节点和上下文关系,并将其分别转化为对象,并将其相关信息存储到数据库中。

节点解析器从对象库中获取节点对象信息,并对其进行解析,保存节点相关属性;

连线解析器从对象数据库中获取每个节点之间的连线对象信息以及其上下文内在关联关系;本步骤中连线解析器对各节点对象之间的连线关系进行解析,可提取连线两端的属性值,所述属性值指连接端与被连接端的节点对象,即连线解析器解析获得被连接端的节点对象,对应的属性值包含线两端所连节点对象的节点标识;

可视化组装生成器通过对节点解析器和连线解析器产生的结果进行汇总和解析,最终生成Web可视化数据,通过Web界面呈现;可视化组装生成器对对象解析器以及连线解析器中产生的属性值,按照可视化组装生成器规则的进行可视化组装和渲染;所述对象解析器产生的属性值为JavaScript中的key-value(键值);节点和连线数据通过其对应的解析器解析之后,首先拿到Head节点对象,调用dagre-d3渲染引擎绘制视图,这一过程包括:使用dagre-d3库中的g.setNode函数绘制节点,节点绘制完成之后拿到节点对应的连线对象遍历子节点,并调用dagre-d3库中setEdge()函数传入子节点对象递归调用完成绘制。

本发明实施例Web可视化呈现,用户可以清晰的看到流程的开始节点和结束节点,以及各节点之间的相互关联关系;选中某一个节点,与之关联的节点都会突出显示,清晰展现各节点对象的上下级前后逻辑关系。

可以理解,上述方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。

需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种长非编码RNA的癌症相关可变剪接数据库系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!