简介
BioNote 2020-09-03
有些教程的个人网页有可能失效,不失效有公司背景维护的多又是一堆广告;在这里做一些生信相关又不全是生信的笔记,方便自己以后查阅。
记得最早学生信最难的不是编程,而是软件安装,一天安装不了一个软件,陷入无限的系统重装和各类包版本的尝试中。接触到conda之后这个问题有所缓解,但不同环境的整理和切换也很麻烦,特别是在计算集群的环境下(使用module类工具管理软件是解决方案之一,但按我使用体验来看,用起来仍是不如docker或者singularity方便)。
按照现在IT发展趋势,推崇搞DevOps和基于容器编排技术的k8s。生信既要写代码又要大量的计算资源,我感觉生信后续也应该要走这个路子,轻量级运维;Docker解决环境问题,Git控制代码版本回退和更新,如果云上部署的话,k8s可以用于削平计算资源需求的波峰波谷,就不用时刻维护一个庞大的线下集群,需要使用时可以秒级扩容。
使用Docker进行环境管理,docker镜像通过Dockerfile构建,分析代码和Dockerfile通过git进行版本控制,使用CI进行自动化构建和测试。通过git可以同时将软件环境版本和分析代码版本管理起来,做到流程真正可复现。
之前生信靠perl、python或者shell串联的流程,没办法利用好容器化技术,难以快速部署到HPC,并且运行步骤写在脚本内部逻辑中,有时候会有多层脚本嵌套,阅读困难、维护麻烦;Nextflow这类工具的出现极大简化了生信流程的构建,并且兼容容器技术和各类调度技术,我看好NF作为新的生信数据流框架的发展。
交个朋友: pengbing996@126.com