在分析数据时,经常会有许多机械重复的命令带入,作为一个半路出家的程序猿,我曾经对这种工作束手无策。不像一个熟手那样举重若轻的分析,感觉自己的生信分析完全是个体力活。为了打开这样的局面,我开始学习如何批量处理这些文件名格式差不多的文件。
1 work_dir=/home/genomics/data/rice/variantcalling 2 reference=/home/genomics/data/rice/ref-database/***** 3 bwa_dir=$work_dir/resourses/apps/bwa-0.7.11 4 picard_dir=$work_dir/resourses/apps/picard-tools-1.119 5 for i in *sam 6 do 7 echo $i 8 echo ${i%.*}.sorted.bam 9 nohup java -Xmx60g -jar $picard_dir/AddOrReplaceReadGroups.jar \ 10 I=$i \ 11 O=${i%.*}.sorted.bam \ 12 SORT_ORDER=coordinate \ 13 CREATE_INDEX=true \ 14 RGID=${i%.*} \ 15 RGLB="pe" \ 16 RGPU="Hiseq-2000" \ 17 RGSM=${i%.*} \ 18 RGCN="African rice resequenced" \ 19 RGDS=osativa \ 20 RGPL=illumina \ 21 VALIDATION_STRINGENCY=SILENT 1>${i%.*}.AddOrReplaceReadGroups.log 2>&1 & 22 done
这是一个批量处理sam2bam的脚本,可以遍历work_dir中的所有符合正则表达式
*sam
的文件名,可以解决重复机械的命令输入。最后注意log文件一定要加上,这是nohup的特性,nohup会在后面的博文中找资料做详细解释。
用这种方法就可以批量处理文件名格式类似的文件。
另外我发现他的遍历是字符顺序而不是数字顺序。
这也是我第一篇博文,撒花!!!!!!!!!!