生信log-不学就亏了,聊聊生信就业前置技能-便利工具和延伸教程总结
强烈大家去《MIT计算机教育中缺失的一课》, 虽说这个是计算机的课程,但是生物信息不就是一门需要写代码的交叉学科吗?工作中也确实用到这些工具了,而且是天天在用!这篇日志,笔者根据日常项目开发的周期,对课程内容进行了重新的划分。不管是开始学生信、还是已经学习生信或者是准备工作的小白,应该都能从这门课中得到启发也可以通过这门课进行查漏补缺。整门课程围绕的核心都在于“如何减少重复劳动和使用服务器“展开,入股不亏。此篇log总结了一下这门课的要点,更全面的内容请点击文末位置直达官方教程。
0. 涵盖了哪些方面
- 代码项目管理
- 代码编辑器的高效使用
- 代码测试
- 代码以及信息安全
- 如何使用服务器及相关工具(linux的使用和相关的命令行工具)
PS:在这门课中分享了linux环境下的文本和数据处理工具,但这篇日志的侧重点更多地是在项目级别的代码管理这方面。数据这一块会总结工具这门课讲了什么内容,建议直接查看课程大纲。
1. 代码项目管理
Git管理系统
概念解释:Git是一个分布式版本控制系统,用于管理文件的历史更改。GitHub是一个提供Git仓库托管服务的平台,它还包括了代码协作和项目管理的工具。
为什么要使用呢?
记录代码开发的全状态:Git可以全程记录管理代码生产的各个阶段,留下修改的原因。最直观的一个好处就是,不同版本的修改只要它们是被“记录在案”,就可以被恢复到某个提交节点的样子。完全不担心修改了昨天的代码后,因今天的需求变化要用回原来的代码而苦恼或者再留另一份代码作保存(多份代码乱飞真的很烦),从头到尾只需要维护一份代码(节省时间空间)。
提高多人协作的能力:下载别人/自己的代码,编辑别人/自己的代码并记录
关于Git怎么使用
推荐的教程:
附之前写的git笔记:https://zhuanlan.zhihu.com/p/555918453
推荐的视频教程:https://www.bilibili.com/video/BV1u94y1n73L/?spm_id_from=333.337.search-card.all.click&vd_source=e86f853c23d23615e623dd075009ac45
官方的ProGit:官方教程写得通俗易懂,任何有关Git的疑惑应该以这本指南和开发者社区的答案为准!https://git-scm.com/book/en/v2
Makefile&make
工具作用的理解:构建自动化的工具,也即我们常说的流程(包含某些分析的固定步骤,且复用性高)
。生信中与之对标的工具就是shell,WDL,CWL,snakemake
。生信流程语言snakemake,正是在此基础上进行开发的。