专栏首页图形化开放式生信分析系统开发图形化开放式生信分析系统开发 - 4 生信分析流程图形化
原创

图形化开放式生信分析系统开发 - 4 生信分析流程图形化

在上文图形化开放式生信分析系统开发 - 3 生信分析流程的进化 讨论了生信分析pipeline的进化,从手动到自动,但仍然停留在终端命令行阶段,为了让更多非生信专业的人能够使用,就要想办法实现生信分析pipeline的图形化:提供能够快速上手的UI,简单点击鼠标就能够运行的图形化系统。

核心功能:pipeline的图形化工作流设计器

变量处理:要实现pipeline图形设计器,首先要先对用到的变量,做统一的设计。

变量的分类: 根据实际经验,pipeline变量用到根据用途可以分为以下几类:

  1. 分析数据目录${data} 分析过程输出目录${result}
  2. 分析用到的软件 bwa ${tools.bwa};samtools ${tools.samtools}
  3. 分析流程中用的reference文件以及数据库,如 hg19.fa ${ref.hg19}
  4. 分析流程中,用到的cutoff值. 如 cnv的cutoff值 ${cutoff.cnv}
  5. 分析流程运行时配置的资源,如 线程数 ${threads} 分配内存大小${mem}

变量值的类型:

  1. 字符:通用的格式,比较宽松
  2. 程序:校验变量值时,判断文件是否存在,是否有可执行权限
  3. 文件:校验变量值时,判断文件是否存在,是否有读写权限
  4. 目录:校验变量时,判断目录是否存在,是否有读写权限
  5. 数值:校验变量时,判断是否为数值格式

最终设计数据好数据结构,做好增删改查功能,UI如下:

分析步骤/节点设计:前文提到,生信分析pipeline其实就是基于文件输入输出的工作流,这里对工作流做了简化,归纳起来工作流中有4种节点。

  1. Input节点,提供pipeline的起始输入文件

2. Output节点,获取pipeline的最终输出文件

3. Task节点,输入文件,运行分析过程,输出分析过程运行结果

4. Database节点,部分pipeline运行结果,需要将输出文件保存至系统数据库中

工作流设计: 最后,有了变量,和节点,最后就是工作流的设计了。用连接线,将以上4中节点连接起来,计算相互之间的依赖关系,用统一的格式保存起来。

设计器功能增强:

  1. 当分析节点没有相互连接时候,要提示错误
  1. 修正Start的错误后,重新验证状态时:

在Task任务中选择Start输入的文件,并填写好输出文件后:保存时提示,没有运行的命令:

  1. 在Task中输入运行的命令,可以看到:变量提供了语法着色显示,防止输错
  1. 最终满足校验要求后,工作流是这样的:

最后上一张,完成了的工作流设计器:

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图形化开放式生信分析系统开发 - 1 需求分析及技术实现

    从三年前开始,工作的原因接触到了NGS(二代测序)技术和相关的生信分析,在公司技术到临床应用转化过程中遇到一系列问题,在问题中挣扎、解决问题的过程中逐渐有了开发...

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 7 分析报告的模板定制与自动生成

    在前文中描述了生信分析流程的整个设计、图形化、服务器端运行、批量运行与过程控制(手动停止,恢复运行、覆盖运行),本文尝试解决分析报告的模板定制与自动生成。

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 3 生信分析流程的进化

    接上两篇内容,本文主要讲述工作中NGS从科研进入医学临床领域,工作中接触到生信流程,以及最终在实现的过程。

    SliverWorkspace
  • 一个开源P2P-IM项目研究

    现在,小伙伴觉得隐私是非常重要的一件事情,谁也不希望裸奔在互联网的汪洋大海之中,那么如何做到,P2P IM,无服务器IM.

    brzhang
  • ★Outlook联系人组

    林万程
  • 循环神经网络(Recurrent Neural Networks)简介

    在介绍 RNN 的诸多文章中,通常都是介绍 RNN 的使用方法和实战效果,很少有文章会介绍关于该神经网络的训练过程。本文将会使用传统的后向传播算法来训练 RNN...

    张戎
  • 宋宝华: Linux 性能调优的分析与实战

    系统的性能是受多方面因素影响的,性能调优是一个非常困难的任务,它要求对硬件、操作系统、和应用都有着相当深入的了解。本文讲述了Linux 系统性能调优分析与实战。

    Linuxer
  • 宋宝华: Linux 性能调优的分析与实战

    系统的性能是受多方面因素影响的,性能调优是一个非常困难的任务,它要求对硬件、操作系统、和应用都有着相当深入的了解。本文讲述了Linux 系统性能调优分析与实战。

    Linuxer
  • 随机计算图:连续案例

    去年我介绍了一些现代的变分推理理论。 这些方法通常与深度神经网络结合使用,形成深度生成模型(例如VAE),或者利用随机控制丰富确定性模型,从而导致更好的探索。 ...

    人工智能资讯小编
  • SAP SRM ABAP Webdynpro和CFCA usb key集成的一个原型开发

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券