这篇主要记录linux下写简单shell脚本调用bwa对fastq文件作mapping
code
输入两个或者三个参数,分别表示SE PE的情况,第一个参数是ref,可选为在reference所在目录下的已经建好Index的参考基因组,如Ecoli.fa Human.fa 等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #!/bin/bash
if [ $# -lt 2 ];then echo 'Wrong parameters.' exit fi
ref=$1 fq1=$2 fq2=$3
dn=$(dirname $fq1) bn=${bn%%.*} bam=$dn/$bn.bam reference=/home/tigerrose/REF/BWA_REF/$ref
if [[ -e $fq2 ]]; then p1=$dn/$bn.pipe bn=$(basename $fq2) dn=$(dirname $fq2) bn=${bn%%.*} p2=$dn/$bn.pipe bam=$dn/${bn%_*}.bam
if [ ! -e ${p1} ];then mkfifo ${p1}; fi if [ ! -e ${p2} ];then mkfifo ${p2}; fi
bwa aln -t 20 -l 25 $reference $fq1 > $p1 & bwa aln -t 20 -l 25 $reference $fq2 > $p2 & bwa sampe $reference $p1 $p2 $fq1 $fq2 | samtools view -bS - > $bam
rm $p1 rm $p2 else bwa aln -t 20 -l 25 $reference $fq1 | bwa samse $reference - $fq1 | samtools view -bS - > $bam fi
|
shell脚本基础
这个简单的脚本中用到了一些shell脚本的基础知识
1 2 3 4 5 6 7
| $# -lt $(dirname $var) ${var%%.*} -e $var mkfifo $var exe1 | exe2 -
|