#!/bin/bash
#
# Plot output of a gil run
#
function usage {
echo 2>&1 "Usage: $0 [-w <width>] [-h <height>] [-t <title>] [-x <xlabel>] [-y <ylabel>] [-lt ltfile | -m <molecules>] [-c <colorfile>] [-v] [<datafile>]"
exit 1
}
ltfile=gil.lt
colorfile=gil.col
plotoptions=
yrange="[-10:110]"
title=" "
width=350
height=200
varbands=
xlabel="time (minutes)"
ylabel="Number of molecules"
while [ $# -gt 0 ]
do
case "$1" in
--help) usage;;
-lt) ltfile="$2"; shift;;
-m) molecules="$2"; shift;;
-c) colorfile="$2"; shift;;
-w) width="$2"; shift;;
-h) height="$2"; shift;;
-t) title="$2"; shift;;
-x) xlabel="$2"; shift;;
-y) ylabel="$2"; shift;;
-v) varbands=true;;
--) shift; break;;
-*) plotoptions="$plotoptions $1 $2"; shift;;
*) if [ "$datafile" == "" ]
then
datafile=$1;
else
echo "extra arg: $1"
usage
fi;;
esac
shift
done
# word counter function
wordcount() { echo $#; }
v_option=
if [ "$molecules" != "" ]; then
molecules=`echo $molecules|sed 's/,/ /g'`
columns_cmd="./columns t $molecules"
if [ "$varbands" != "" ]; then
columns_cmd="$columns_cmd `echo $molecules | sed 's/\</S_'/g`" # add the stdev columns
(( vcol = `wordcount $molecules` + 2 )) # counting the 't'
v_option="-v $vcol"
fi
ltfile=/tmp/$$.lt
# set -i i
i=1
for m in $molecules; do
color=`egrep "^\<$m\>" $colorfile | awk '{print $2}'`
if [ "$color" == "" ]; then
echo $m not found in $colorfile
exit
fi
echo "set linetype $i lc rgb \"$color\" lw 2" >> $ltfile
(( i++ ))
done
else
columns_cmd=cat
fi
cat $datafile | $columns_cmd | ./plot -t " " -k "outside spacing 4" -x "$xlabel" -y "$ylabel" -t "$title" -w "$width" -h "$height" $v_option $plotoptions -lt $ltfile