生信小技巧:如何管理你的文件目录与记录分析流程(4)
现在很多文章都是关于如何使用生信不同的工具,进行数据分析。但是,学会如何正确管理好你分析中产生的文件,并且记录好实验的代码步骤,也是一件重要的技能。大家别小看这个能力,这是作为一个生信工作者在找工作时最基本的一个要求,也会为你职业生涯带来很多好处,例如适当整理后你会有很多属于你自己的pipeline。
试想一下,如果你有很多数据,在不断的分析过程中你可能会产生很多很多文件,然后有一天你在运行这个项目6个月后,你或者你的老板想重复你第一个月所做的分析,又或者当你投稿发文章时,某些杂志的编辑需要你提供详尽的分析过程。
在这样情况下,如果你没有很好的记录下,你当时运行文件的每一步,这将会是一个灾难性的时刻,因为你要花很多时间去思考你当时做了什么,还可能要逐一查看每一个生成的文件,进而推断出当时运行的代码。这是一个很多生信新手都会遇到的问题,因此如何正确的将他们归类管理,并适当记录当时的流程步骤,就变得非常的重要了。
管理文件的基本原则
管理我们数据文件有两个最重要的原则。
- 要做到一个不了解你项目的人,可以轻松的通过你的文件夹,了解你所做了什么,为什么要这样做。(通过你的命名,还有文件夹的结构,明白你的思路,找到对应的文件)
- 你现在做的每一个分析步骤,你将来都有可能会重复再做一次。我们可以通过管理文件和记录达成这两条原则。
文件夹的管理结构
下面以“A Quick Guide to Organizing Computational Biology Projects” 这篇文章所提到的结构给大家做一个简单的事例:
此处输入图片的描述在一个项目中,我们可以将所需的文件分成五大块。第一数据(data),储存你所用的所有的raw data数据。第二结果(results),存储每一步你所做所做的分析得到的结果文件。第三编写的代码(src),存储你分析过程中用到的代码或者你所编写的代码。第四工具(tool),存储一些这个项目特定使用到的工具,一般是第三方已经编写好的,你下载下来的工具。个人习惯是,对于普遍使用到的工具,可以放在home/biosoft的文件夹里,方便在不同project中全局调用。第五,文件(doc),存放你发表paper所用到的图和表。
文献中作者,提议我们可以使用按时间顺序来命名下层文件夹来管理我们所生成的文件。个人觉得可以在此基础上再添加一些具体的分析信息,例如2009-01-23_Mapping。 这样一分类,整体的结构还有思路就很清晰了,极大的增加了该项目的"可读”性还有重复性。
代码/实验流程步骤记录
现在有很多记录的软件可以用来记录我们分析所用到的代码和参数,这里推荐使用Jupyter notebooks。http://jupyter.org
推荐的原因,不但可以记录日常的所用的代码,还可以分享你所得到的分析结果。另外Jupyter notebooks,还有内置的RStudio or IPython, 你可以一边写代码,一边检验修改他。前一段时间生信菜鸟团的其他小编还推荐了一个网上云端版的Jupyer notebooks,更加方便了我们使用该软件(特别对一些不会安装Jupyer notebooks,并联系本地的python和R的同学来说是个福音)。
总结
在湿实验室中,我们有时候很难百分百完全再重复你所做的实验。但是,在生物信息的分析中,只要我们掌握好记录和管理文件的技巧,重复一个数据分析的流程是再简单不过了。
参考文章:
Noble, W. S. (2009). A quick guide to organizing computational biology projects. PLoS computational biology, 5(7), e1000424.
这只是我个人的一些理解,如果你在管理文件或者记录实验步骤流程很有自己的心得,欢迎在后台回复中留言,分享你独特的见解。