Newer
Older
#!/bin/sh -
# this script will run a search program on a sequence input file or on each
# file in a file of filenames
# to customise this script see the function called run_one_prog below
RCS_HEADER="$Header: //tmp/pathsoft/artemis/etc/run_tblastx,v 1.4 2005-12-20 13:50:10 tjc Exp $"
PROG=`echo $RCS_HEADER | sed 's/.*run_\(.*\),v.*/\1/'`
if [ $# = 4 -a x$1 = x-onefile ]
then
shift
ONEFILE=t
DATABASE=$3 export DATABASE
else
if [ $# = 2 ]
then
DATABASE=$2 export DATABASE
else
echo usage: $0 -onefile input_file output_file database 1>&2
echo or: $0 file_of_filenames database 1>&2
exit 1
fi
fi
# expand any ~ or environment variables
#EXPANDED_DATABASE=`echo "echo $DATABASE" | /bin/csh -f`
eval EXPANDED_DATABASE="$DATABASE"
### change this function to suit your site:
run_one_prog () {
INPUT_FILE=$1
OUTPUT_FILE=$2
DATABASE=$3
### change these lines:
EXEC=${EXEC-`which blastall 2>/dev/null`}
if [ ! -x "$EXEC" ]; then
EXEC=`find Artemis* -name blastall 2>/dev/null`
fi
if [ ! -d "$BLASTDB" ]; then
DATABASE_TMP="$PWD/"`find Artemis* -name blast-data 2>/dev/null`"/$DATABASE"
if [ -f "$DATABASE_TMP" ]; then
DATABASE="$DATABASE_TMP"
fi
fi
echo "about to start $EXEC with input from $INPUT_FILE and output to" 1>&2
echo "$OUTPUT_FILE using database $DATABASE" 1>&2
EXTRA_ARGS=
# add/change the flags to suit your site:
HOSTNAME=`hostname`
REMOTE=N
case $HOSTNAME in
deskpro*)
REMOTE=Y ;;
*)
esac
if [ $REMOTE = "Y" ]; then
WDIR=`pwd`
export WDIR
# rsh babel "cd $WDIR; lsrun -v blastwrap.pl $EXEC -d $DATABASE -i $INPUT_FILE -p tblastx \
# $EXTRA_ARGS >! $OUTPUT_FILE"
rsh babel "cd $WDIR; bsub -q longblastq -o $OUTPUT_FILE -e ${PROG}_errors.new -I flexi_blast.pl -tx $DATABASE $INPUT_FILE $EXTRA_ARGS"
# lsrun -v blastwrap.pl $EXEC -d $DATABASE -i $INPUT_FILE -p tblastx \
# $EXTRA_ARGS 2>&1 > $OUTPUT_FILE |
# tee ${PROG}_errors.new 1>&2
bsub -q longblastq -o $OUTPUT_FILE -e ${PROG}_errors.new -I flexi_blast.pl -tx $DATABASE $INPUT_FILE $EXTRA_ARGS
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#### end of changes
# Artemis can read compressed files
gzip -9 $OUTPUT_FILE &
if [ -s ${PROG}_errors.new ]
then
( echo ERROR running $PROG: ; echo;
echo ===================================================
cat ${PROG}_errors.new ) >> $OUTPUT_FILE
cat ${PROG}_errors.new >> ${PROG}_errors
fi
}
(echo "#!/bin/sh -"; echo "kill $$") > $PROG.kill
chmod a+x $PROG.kill
if [ x$ONEFILE = x ]
then
for i in `cat $1`
do
run_one_prog $i $i.out $EXPANDED_DATABASE
done
else
run_one_prog $1 $2 $EXPANDED_DATABASE
fi
exit 0