刚开始学习处理生物医疗健康数据的时候,作为初学者的你可能跟我一样需要经历了很长一段在电脑前疯狂挠头的日子,翻论坛、翻博客、找经验贴试图在庞大的互联网上查找自己搞不懂的问题。
捉到一个相关文档,瞬间如获至宝。
然而,参照的时候你可能会被各种不知名bug提示搞得再次焦头烂额。而且东一榔头西一棒子,很难找到成体系,完整集成的软件流程。
因为不同的文章或者不同领域采用的是软件、配置、流程组合可能都有差别。
每每学习其他人分析流程中的软件以及软件下载时候需要的参数配置,以及跑流程中出现各种不兼容报错让人无限的崩溃再崩溃。经验贴以及科研文章中的内容很难完美的运行下来。问题→学习→更多问题... 本来的一个问题可能伴随着无数新的问题出现。
当你已经开始入门的时候,你也许也会遇到另外的问题:部门或科室的一个项目中分批量的多次实验分析或者甚至是多个项目中的类似处理,你可能需要手动一个个进行处理,而这个时候如果你有一个准备好的“SOP”,一个标准工作流程,那是立马起飞,火速下班或者不再数次的一步步机械无脑烦躁的流水线工作啦。
那有没有一种软件、或者流程,只需要我把我的文件数据输入进去,然后鼠标咔一下,就把数据分析结果给我出来了,然后我就可以去写文章了?(梦里啥都有好吧)
不过我们可以尝试尽量让数据分析顺畅丝滑!
一句话,咱们就是想简单点 简单点 就简单点 :分析简单点、分享简单点、重现重用简单点。
我们可以尝试把生物信息分析流程化标准化,做一个pipeline做成SOP,值得尝试。
让它帮我自动化(拯救我的双十一后断掉的手),也可以批量化,不管是一个分析的十个步骤,还是无数样本的相同处理,都不在话下!
理想状态下,我们可以把我们的工作一个步骤或者环节按照特定的规则写成工作流/流程/SOP,所有过程串联起来形成完整的通路,来达到从数据输入到最终需要的分析结果的全流程,并且这个全流程是计算机可以理解的形式,最最后,这个流程还可以移植转移给别人还不会发生变化(bug...容易重复结果)。
咳咳,我们马上进入正题哈。这里给大家介绍一个新工具CWL(Common Workflow Language)。
工作流(Workflow),就是“任务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流。
工作流要解决的主要问题是:为实现某个任务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
相比于shell ,在生物医疗等数据密集型和复杂性应用场景下,它可以很好的处理算法依赖。流程输入输出,脚本共享的门槛,重现性较好等问题哦。用CWL来创建自己的工具和流程,有优越的拓展性和规范性。
针对上述的问题使用CWL是绝佳的选择哦。
CWL这个工具可以帮助你构建明确又独立的分析流程,也可以测试、部署、优化你的流程。
并且灵活、可移植和可扩展:用CWL描述的工具和工作流不仅可以利用Docker等技术,还可以与不同来源的CWL实现一起使用。CWL非常适用于描述集群、云和高性能计算环境中的大规模工作流,这些环境中的任务是在许多节点上并行调度的。
啊,叨叨了这么多CWL的好处,那么怎么上手呢?
为了让大家无痛学习,无痛使用,省心省力省事。
对啊,我们的口号是:简单点,简单点,还是简单点。
我们翻译并托管维护了全网首份CWL中文教程(点击文章末尾原文链接查看)!里面从简单到复杂介绍了关于CWL的语法和写作说明应有尽有,帮助大家快速入门和实践(如果没有就联系我们吧,进群或者去六点了官网反馈哟)。非常贴心了~
从入门到应用的一条龙中文教程快稳准狠帮助你快速实践CWL。
大家可以使用提供的CWL标准流程,也欢迎大家创建自己的工作流程,
更欢迎大家分享出自己的CWL流程,大家共同学习,共同进步。
如果有问题和疑惑,大家可以一起探讨。
网页版和微信向六点了提问~
参考资料:
1、CWL官网:https://www.commonwl.org/
2、CWL 中文教程https://docs.sixoclock.net/dev_guide/CWL/introduction.html#简介
3、基因学院:其实,我也啥都不想做 https://mp.weixin.qq.com/s/voZZR9R7oNGd6JsyfhJUxg
4、生信技能树:生信分析流程构建的几大流派 https://mp.weixin.qq.com/s/SaU3mMg8XPu6Rj-xDCAOJQ
5、工作流基本介绍.https://blog.csdn.net/lxxiang1/article/details/82229772