专栏首页图形化开放式生信分析系统开发图形化开放式生信分析系统开发 - 5 生信分析流程服务器端运行
原创

图形化开放式生信分析系统开发 - 5 生信分析流程服务器端运行

在上文图形化开放式生信分析系统开发 - 4 生信分析流程的图形化设计 讨论了生信分析pipeline的图形化,如何用图形的方式显示生信pipeline,但是pipeline脚本按照变量的形式保存之后,如何运行,在什么环境下运行?是本文要解决的问题。

运行方式:本地 VS 远程

1. 本地模式:

  • 优势:容易实现,运行效率高,不依赖网络
  • 劣势:限制了软件的适用范围,本机性能就决定了分析性能,不易扩展,限于运算量较低的业务。

2. 远程模式:

  • 优势:便于扩展,部署方便。本程序作为控制端,可以和分析端部署在一台机器,也可以通过联网方式连接。这样就可以把控制端单独部署,控制一个服务器集合>从单台到简单的集群
  • 劣势:增加了编程复杂度;需要编程实现与服务器端的交互,并保持长连接,时刻保持通信。分析过程状态、服务器运行状态,需要由服务器端推送到用户端。

综合考虑,结合软件设计目标,这里选择远程模式

运行服务器节点:

  1. 服务器节点信息: 经常手动分析脚本的朋友大家的习惯可能是,ssh远程登录Linux服务器,在shell控制台输入各种脚本,软件。这里首先要解决的就是服务器信息的保存,操作。根据日常习惯归纳实现后,上图:

1.

首先这里实现了,服务器账户信息的管理,账户、主机名、端口、密钥、密码,这些信息为了保证安全,需要二次加密,不能将密码明文保存在数据库中,一旦泄漏危害巨大

针对分析流程,按照约定定义了两个变量:${data}数据输入目录,${result}输出目录

  1. 考虑到并行运算,这里设置了该账户可以并行运行的任务数量,已经连续运行任务的最小时间间隔。
  2. 前文中,针对pipeline里的变量,每个服务器账户对应一组变量,彼此独立,互相隔离。
  3. 针对服务器状态,提供状态按钮来验证是否符合要求。网络状态、变量值是否符合要求
  4. Web终端应急操作,可以点击终端按钮直接打开shell,手动操作,见下图:

运行的方式:

之前系统设计时所做的准备:

  1. 通过图形化设计之后获得的pipeline脚本
  2. 对应于服务器账户信息中的变量
  3. 录入系统的样本信息:样本编号,${sn} Run ID ${id}等等

通过将保存的shell脚本,将脚本变量用以上信息替换为实际需要运行的脚本,通过远程连接发送指令在服务器上运行

运行的过程:状态监控,结果的判断

  1. 发送完脚本,服务器端运行状态需要和控制端保持连接,监控运行状态,获取运行输出。
  2. 运行完成后服务器端推送信息到控制端,判断是否符合要求,输出文件是否存在
  3. 运行失败后服务器端推送信息到控制端,显示错误信息,错误日志,便于生信开发人员查找错误
  4. 统计每一个分析步骤的运行时间,便于统计分析

运行的结果:

  1. 如果需要获取分析结果文件的,这时候需要将该文件下载至本系统指定目录中。
  1. 如果需要将分析结果vcf,csv等格式文件保存于数据库,按照前文中,pipeline图形化中设计格式,读取文件保存于系统数据库中。 收集标准化的数据,累积数据,为以后数据挖掘,回归分析做好准备

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 图形化开放式生信分析系统开发 - 6 生信分析流程批量运行与过程控制

    在上文生信分析系统开发 - 5 生信分析流程服务器端运行 解决了设计好的流程在分析服务器上运行的问题,随之而来就衍生出的新需求:

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 2 样本信息处理

    一个样本信息就有二十几个个字段。如果一个一个录入,可能不是很好的体验。可以从以下几点缓解这个问题:

    SliverWorkspace
  • 图形化开放式生信分析系统开发 - 1 需求分析及技术实现V2(2020.7更新)

    从2017年前开始,工作的原因接触到了NGS(高通量测序技术 High-throughput sequencing又称“下一代”测序技术"Next-genera...

    SliverWorkspace
  • [UWP]使用Writeable​Bitmap创建HSV色轮

    HSV都是一种将RGB色彩模型中的点在圆柱坐标系中的表示法,这种表示法试图做到比RGB基于笛卡尔坐标系的几何结构更加直观。HSV即色相、饱和度、明度(英语:Hu...

    dino.c
  • docker启动ubuntu的桌面环境

    由于最近一段时间在家办公,国内服务器在阿里云,国外站点在aws。家里的移动宽带比较差,无法访问aws。

    py3study
  • 成员网研会:云原生工作负载的数据服务(视频+PDF)

    讲者:Abhay Singh,创始工程师和架构师 @Diamanti;Shilpa Mayanna,技术人员 @Diamanti;Naren Narendra,...

    CNCF
  • (删)Java线程同步实现二:Lock锁和Condition

    在上篇文章(3.Java多线程总结系列:Java的线程同步实现)中,我们介绍了用synchronized关键字实现线程同步。但在Java中还有一种方式可以实现线...

    陈树义
  • ini配置文件以及利用python管理ini文件

    在python里面有一个叫做configparser的module,可以用来操作ini文件,从而方便进行配置文件的管理工作.

    qsjs
  • 2018热点总结:BERT最热,GANs最活跃,每20分钟就有一篇论文...

    【导读】本文的作者 Ross Taylor 和 Robert Stojnic 在今年一起启动了一个名为“Paper with Code”的项目,将 AI 领域的...

    abs_zero
  • 2018热点总结:BERT最热,GANs最活跃,每20分钟就有一篇论文...

    【导读】本文的作者 Ross Taylor 和 Robert Stojnic 在今年一起启动了一个名为“Paper with Code”的项目,将 AI 领域的...

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券