在分析數據時,經常會有許多機械重復的命令帶入,作為一個半路出家的程序猿,我曾經對這種工作束手無策。不像一個熟手那樣舉重若輕的分析,感覺自己的生信分析完全是個體力活。為了打開這樣的局面,我開始學習如何批量處理這些文件名格式差不多的文件。
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會在后面的博文中找資料做詳細解釋。
用這種方法就可以批量處理文件名格式類似的文件。
另外我發現他的遍歷是字符順序而不是數字順序。
這也是我第一篇博文,撒花!!!!!!!!!!