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 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#!/bin/bash
outprefix=$1
shift
INFILESTR=${@}
INFILES=(${INFILESTR// / })
NFILES=${#INFILES[@]}
if [ $NFILES -eq 1 ]
then
cp $1 $outprefix.pairs.gz
pairix -f $outprefix.pairs.gz
else
# unzipping to named pipes
arg=''
k=1
for f in $INFILESTR
do
mkfifo pp.$k
arg="$arg pp.$k"
gunzip -c $f | grep -v '^#' > pp.$k &
let "k++"
done
# header
gunzip -c ${INFILES[0]} | grep "^#" | grep -v '^#command:' > $outprefix.pairs
for f in $INFILESTR
do
gunzip -c $f | grep '^#command:' >> $outprefix.pairs
done
# merging
sort -m -k2,2 -k4,4 -k3,3g -k5,5g $arg >> $outprefix.pairs
# compressing
bgzip -f $outprefix.pairs
# indexing
pairix -f $outprefix.pairs.gz
# clean up
k=1
for f in $INFILESTR
do
rm pp.$k
let "k++"
done
fi
|