7. 《Bioinformatics Data Skills》之工程管理(2)

除了工程结构与实验的记录方式,工程的组织与文件统一命名方式同样很重要。

拆分工程为子工程

分而治之

一旦你开始分析,你的工程里面将会充斥着大量的中间文件。将一个大任务拆分成子任务来创建子文件夹,是保持结构清晰的好方式。

统一的文件命名有助于自动化

自动化

举例说明,首先我们创建工程:

mkdir -p zmays-snp/{data/seqs,scripts,analysis}

注:“{}”用于参数展开,可以同时创建4个文件

接着我们创建一些命名风格统一的文件:

cd zmays-snp/data
touch seqs/zmays{A,B,C}_R{1,2}.fastq
ls seqs
# zmaysA_R1.fastq  zmaysA_R2.fastq  zmaysB_R1.fastq  zmaysB_R2.fastq  zmaysC_R1.fastq  zmaysC_R2.fastq

通过通配符来匹配文件

ls seqs/zmaysB*
# seqs/zmaysB_R1.fastq  seqs/zmaysB_R2.fastq

使用通配符的时候要谨慎,可以加上限制来保持精确:

ls seqs/zmaysB_R?.fastq
# seqs/zmaysB_R1.fastq  seqs/zmaysB_R2.fastq

注:“*”为匹配任意长度字符的通配符;“?”号为匹配单个字符的通配符

选择性地匹配

通过“*”号是很模糊的匹配,如果我们只想要AB样本的fastq文件的话,可以使用"[]"限制只匹配括号内的字符:

ls seqs/zmays[AB]*.fastq
# seqs/zmaysA_R1.fastq  seqs/zmaysA_R2.fastq  seqs/zmaysB_R1.fastq  seqs/zmaysB_R2.fastq

匹配内容很多的话也可以采用缩写:

ls snp_[C-G].txt
# snp_C.txt  snp_D.txt  snp_E.txt  snp_F.txt  snp_G.txt

值得注意的是"[]"只对一位字母或者一位数字(即[0-9])有效,而对多位的数字无效,例如:

ls snp_[10-13].txt
# snp_1.txt  snp_3.txt

没有匹配到我们想要的文件,此时可以采用前面提到的"{}"符号:

ls snp_{10..13}.txt
# snp_10.txt  snp_11.txt  snp_12.txt  snp_13.txt

PS:

最后补充一点,shell是按字母顺序而不是数字顺序排序的,1后面不是2而是10:

ls -l
# total 0
# drwxr-xr-x 1 way way 512 May 25 19:24  seqs
# -rw-r--r-- 1 way way   0 May 25 19:37  snp_1.txt
# -rw-r--r-- 1 way way   0 May 25 19:43  snp_10.txt
# -rw-r--r-- 1 way way   0 May 25 19:43  snp_11.txt
# -rw-r--r-- 1 way way   0 May 25 19:37  snp_2.txt
# -rw-r--r-- 1 way way   0 May 25 19:37  snp_3.txt

通过在数字编号前面补0可以有效地解决排序问题:

touch snp_00{1..9}.txt
touch snp_0{10..15}.txt
ls -l
-rw-r--r-- 1 way way   0 May 25 19:55 snp_001.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_002.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_003.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_004.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_005.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_006.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_007.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_008.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_009.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_010.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_011.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_012.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_013.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_014.txt
-rw-r--r-- 1 way way   0 May 25 19:55 snp_015.txt

你可能感兴趣的:(7. 《Bioinformatics Data Skills》之工程管理(2))