#!/bin/sh

##############################
# SHARKhunt execution script #
# 27/11/04                   #
##############################

progname=`basename $0`

# resolve links - $0 may be a link
PRG=$0

while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '.*/.*' > /dev/null; then
    PRG="$link"
  else
    PRG="`dirname $PRG`/$link"
  fi
done

SHARKHOME=`dirname "$PRG"`

# classpath
CLASSPATH=$SHARKHOME/java/sharkhunt1.0.jar:$SHARKHOME/java/jdom.jar:$SHARKHOME/java/jakarta-regexp-1.2.jar

############################################

# default directories
TMP=`pwd`
PROFILES=$SHARKHOME/priam_06_linux
BLASTHOME=$SHARKHOME/blast
WISEHOME=$SHARKHOME/wise2
OUTPUT=`pwd`
VER=priam_06

# default options
EUK=true
BLASTCUT=1.0
LEEWAY=2000
MAXREGIONS=5
MODE=both
FINALCUT=0.1
XMX=64M

############################################


# check user options
#if [ $# = 0 ]
#then
#    :
#else
    if [ $# -lt 2 -o "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" ]
    then
        cat <<EOF
usage: $progname [options] genome_path genome_id

options:
-euk        Eukaryotic genome [T/F]
            (default=$EUK)
-leeway     No. of bases to extract each side of BLAST hit [integer]
            (default=$LEEWAY)
-blastcut   Cutoff E-value for initial BLAST search [real]
            (default=$BLASTCUT)
-maxregions No. of best BLAST regions to take forward to Wise2 search [integer]
            (default=$MAXREGIONS)
-mode       Wise2 running mode [wing|global|both]
            (default=$MODE)
-finalcut   Final E-value cutoff [real]
            (default=$FINALCUT)
-tmp        Directory for working files [string]
            (default=$TMP)
-out        Output directory [string]
            (default=$OUTPUT)

advanced options:
--profiles  Specify profile directory [String]
            (default=$PROFILES)
--blasthome Specify BLAST directory [String]
	    (default=$BLASTHOME)
--wisehome  Specify Wise2 directory [String]
	    (default=$WISEHOME)
--Xmx       Specify JVM size [String]
	    (default=$XMX)

EOF
        exit 0
    fi


    while test $# != 0
    do
        case $1 in
        -euk) EUK="$2"; shift;;
        -blastcut) BLASTCUT="$2"; shift;;
        -leeway) LEEWAY="$2"; shift;;
        -maxregions) MAXREGIONS="$2"; shift;;
        -mode) MODE="$2"; shift;;
        -finalcut) FINALCUT="$2"; shift;;
        -out) OUTPUT="$2"; shift;;
        -tmp) TMP="$2" ; shift ;;

        --profiles) PROFILES="$2"; shift;;
        --blasthome) BLASTHOME="$2"; shift;;
        --wisehome) WISEHOME="$2"; shift;;
        --Xmx) XMX="$2"; shift;;

        *) break ;;
        esac
        shift
    done

#  fi

 if [ "$EUK" = "f" -o "$EUK" = "F" -o "$EUK" = "FALSE" ]
 then
     EUK=false;
 else if [ "$EUK" = "t" -o "$EUK" = "T" -o "$EUK" = "TRUE" ]
      then
        EUK=true;
      fi
 fi

BLASTMAT=$BLASTHOME/data
export BLASTMAT

# data path and genome name
DATA=$1
GENOME=$2


# run SharkHunt

java -Xmx$XMX -cp $CLASSPATH -Dshark.tempdir=$TMP -Dshark.eukaryote=$EUK -Dshark.genomepath=$DATA -Dshark.profiles=$PROFILES -Dshark.blasthome=$BLASTHOME -Dshark.wisehome=$WISEHOME -Dshark.output=$OUTPUT -Dshark.maxregions=$MAXREGIONS -Dshark.wisemode=$MODE -Dshark.cutoff=$BLASTCUT -Dshark.maxsig=$FINALCUT -Dshark.leeway=$LEEWAY -Dshark.wisemode=$MODE -Dshark.profiles_version=$VER sharkhunt.SharkHunt $GENOME

