2015-10-23GeneDock

Robot Lee:拯救大兵李小明


黑夜似一头巨兽,吞没了这座充斥着现代气息的古老城市。

夜色渐浓,城市中心偏西北,那个靠近宇宙中心的地方,一扇窗户如往常那样闪着幽幽的光。

从窗户望进去,便会看到惊人的一幕:在两面巨大的显示屏背后,一位少年正在用匪夷所思的动作忙碌着。他十指在键盘上高速跳动,偶尔飞快地移动一下鼠标。少年的双手在空中留下了一串串残影,两面屏幕上则有代码如瀑布般倾泻而下。


伴随着屏幕上窗口的飞速切换,少年始终稳坐在变换闪烁的光芒中。突然,他停止了所有动作,面前的屏幕上弹出一个对话框,里面赫然写着:

“小明,检查一下A客户的数据是否上传完成。传完了就开始跑吧,记得E流程之后接F流程。辛苦了。 ——CTO”

在屏幕光芒的照耀下,键盘上隐约可见两朵水花……

拯救大兵李小明计划,就此展开!





       为了将千千万万如李小明一样辛劳的生信工程师从繁重的流程值守工作中解放出来,GeneDock专门开发了Robot Lee这一功能模块。顾名思义,Robot Lee是通过程序来代替李小明同学,自动化完成数据分析流程中的步骤衔接工作。作为值守功能模块,用户只需要简单地对Robot Lee进行参数设置,即可实现当满足特定条件时,按照规定运行特定程序的功能。

       作为GeneDock自主开发的模块,Robot Lee和GeneDock的其他服务一样,用Python编写。结构上分为:接口层、执行计划的管理模块、执行计划解释器、条件监测模块和工作流启动模块。该结构与动态语言解释器的结构很相似,实现的功能也十分相似。这也意味着,Robot Lee不仅支持配置文件一次性导入的执行模式,也支持边执行、边修改执行计划的动态执行模式,极大提升了执行的灵活性和对不同场景的适用性。

Robot Lee系统架构图

       常规流程中,用户一般会在测序数据上传完成后,再检查一遍数据上传是否完整,然后选择所需的workflow,执行数据分析任务。如果恰逢数据上传在非工作时间内完成,整个流程可能就会被拖慢至次日。通过配置Robot Lee,用户可直接定义上传完成后,自动检查数据是否上传成功,然后依照预先制订的规则执行相应workflow。即使数据在半夜上传完成,也可立即开始分析。从而实现流程无人值守,节约大量时间。

       与之类似,Robot Lee还可以在初步分析完成后,按照预设参数检查分析结果,并自动运行深度分析流程,从而使自动化分析流程之间的切换步骤也实现了自动化。此外,Robot Lee也可用于其他流程步骤的自动判断和运行,比如将报告与数据发送至指定位置;数据分析完成后将数据传输至划定的存储区域;将流程日志汇总到项目特定路径下;通过多途径通知指定负责人关于流程运行过程中出现的异常信息。

       作为前端的值守功能模块,Robot Lee可以覆盖分析任务不同步骤之间的gap。通过合理的设置,Robot Lee更可以进一步对多个分析任务进行监控和处理,将耗时费力的批量数据分析任务简化为设置完成后即可自动运行的工作流。大兵李小明同学从此无需再花费大量精力来监控和处理数据分析过程了。拯救计划,顺利完成!


“喂,CTO嘛。跟您汇报一下,几个任务都在正常运行,明天上午用户就可以拿到报告了……不辛苦不辛苦,这是我应该做的……明早带蛋糕犒劳我?哎呀,这么客气干嘛,蓝莓拿破仑就可以,我这个人不挑的……好,明天见!”

李小明将手机放在床边,裹紧被子,进入了梦乡Zzz