清晰,整洁与统一的工程管理可以令我们事半功倍。今天介绍一下如何进行工程的组织与记录。
图片来源:https://www.ntaskmanager.com/blog/how-to-become-a-project-manager工程目录结构
不同的生物信息学家的工程组织风格可能不同,这里作者给出自己的结构(以玉米SNP识别为例):
mkdir zmays-snp
cd zmays-snp
mkdir data
mkdir data/seqs scripts analysis
- data:文件夹下面存放所有的原始数据与中间数据
- scripts:存放所有的脚本文件,文件很多的话可以创建子目录
- analysis:存放小的分析结果(例如数据质量评估)或者生成最终的图表的数据
注意:
- 保持良好的命名习惯,只使用字母,数字,下划线和连接号(-)。不要使用空格,因为空格在命令行里面是有意义的,需要使用引号转义。
- 脚本里面尽量使用相对目录,例如
../data/abc.txt
,可以方便整个工程的移植。
工程记录方式
有了清晰的结构后还需要清晰的记录方式,在几个月或者更久的时间后再看自己的工程依然能够清楚所有的细节,别人拿到你的工作后也可以在不询问你的情况下了解所有的内容。
- 记录方法与流程
上方也提及过,记录所有对数据处理的命令。需要注意的是最好能够记录下参数,哪怕使用的是默认参数,因为软件更新后默认参数可能会变化。 - 记录数据的来源
无论是下载,还是别人发给你的数据都要记录好来源,不同来源的数据可能会不同 - 记录数据下载时间
外部数据的提供者可能会对数据进行更新,所以需要记录好下载时间。 - 记录数据的版本号
某些数据存在特定的版本号,例如COSMIC数据库提供的癌基因已经更新到了V92(2020年8月27日发布)。 - 记录数据下载方式
通过R包?命令行?还是数据库?不同的下载方式数据也有可能不同。 - 记录好软件的版本号
之前碰到过一种情况,设定种子的情况下不同版本的R生成的随机数依然会不同:
# R 3.5.3版本
> set.seed(1999)
> sample(LETTERS, 3)
[1] "T" "N" "L"
# R 3.6.0版本
set.seed(1999)
sample(LETTERS, 3)
[1] "D" "Z" "R"
所以记录下软件版本号还是比较重要的,软件一般都可以通过命令行查阅版本号。如果没有版本号的话记录下软件发行时间与下载时间即可。
注意:
- 所有文件最好采用纯文本README的形式,简单方便可移植。
- 在工程的每个主文件夹下面都存放一个README文件,例如通过下面的代码生成README文件记录琐碎的数据信息。即使是简单介绍此目录里面是什么,怎么来的也可以。当你的工程变得庞杂起来,这些记录将变得很有帮助。
touch README data/README
网友评论