生信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,正是在此基礎上進行開發的。