博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
部署一个简单的生信分析流程
阅读量:5930 次
发布时间:2019-06-19

本文共 763 字,大约阅读时间需要 2 分钟。

在生信公司里,有相当一部分人都是负责编写流程和维护流程。

流程pipeline,就是让用户(前端)在填写配置文件后能够一键运行的脚本,最终自动得出结果,并生成报告,有的公司还会将结果上传。

 

自动化pipeline必须具备的功能:

  • 读取配置文件,生成相应的待执行的脚本
  • 按照先后逻辑关系依次向集群投递任务
  • 能将大任务分割成小的任务,并行执行,缩短项目周期

 

必须使用的工具:

  • 一门脚本语言,Shell、Perl 或 Python
  • 集群调度系统工具,SGE 或 monitor
  • 工具必须都使用绝对路径,因为这脚本是给同部门的人用的,如果你要提高可移植性,可以将工具路径写到配置文件里。
  • 写流程前,最好先画出 pipeline 的分析流程图
  • 配置好软件工具及库的路径

首先所有的模块生成都是使用了一个脚本:

sh run.sh

脚本内容为:

perl generate.pl -conf XX.conf -list sample.list -outdir result

执行后, 会在本地生成所有的框架.


最终前端只需要执行result里的一个脚本就可以了:

sh qsub.sh

脚本里的内容:

monitor taskmonitor 
-i qsub.conf

配置文件conf里的内容:

是monitor准备的待执行脚本, 包含了脚本的执行逻辑, 以及每个脚本执行时所需的内存.


看了别人的流程, 发现都不够完美, 因为我不熟悉面向对象的编程思想, 但我对模块化编程思想的理解已经非常深刻了, 我觉得一个好的流程一定得模块化, 各个功能之间相互独立, 大问题划分为小问题, 这样在写代码、调试和以后流程修改时就非常简单和方便了,效率大大的提高了,别人要干一个季度的事,我一个月就可以搞定。

 

 

参考:

转载地址:http://tbutx.baihongyu.com/

你可能感兴趣的文章
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
快速排序——Java
查看>>
unity游戏与我
查看>>
187. Repeated DNA Sequences
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
行列式的乘法定理
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
MySQL 5.6为什么关闭元数据统计信息自动更新&统计信息收集源代码探索
查看>>
apache prefork模式优化错误
查看>>
jmeter高级用法例子,如何扩展自定义函数
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
JS页面刷新保持数据不丢失
查看>>
清橙A1202&Bzoj2201:彩色圆环
查看>>
使用data pump工具的准备
查看>>