Skip to content
Snippets Groups Projects
run_tblastx 2.81 KiB
Newer Older
  • Learn to ignore specific revisions
  • tjc's avatar
    tjc committed
    #!/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
    
    
    
    tjc's avatar
    tjc committed
    RCS_HEADER="$Header: //tmp/pathsoft/artemis/etc/run_tblastx,v 1.4 2005-12-20 13:50:10 tjc Exp $"
    
    tjc's avatar
    tjc committed
    
    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"
    
    tjc's avatar
    tjc committed
    
    ### change this function to suit your site:
    
    run_one_prog () {
        INPUT_FILE=$1
        OUTPUT_FILE=$2
        DATABASE=$3
    
    
        ### change these lines:
    
    tjc's avatar
    tjc committed
        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
    
    tjc's avatar
    tjc committed
    
        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:
    
    tjc's avatar
    tjc committed
        HOSTNAME=`hostname`
        REMOTE=N
    
        case $HOSTNAME in
            deskpro*)
              REMOTE=Y ;;
            *)
        esac
    
        if [ $REMOTE = "Y" ]; then
          WDIR=`pwd`
          export WDIR
    
    tjc's avatar
    tjc committed
    #      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"
    
    tjc's avatar
    tjc committed
        else
    
    tjc's avatar
    tjc committed
    #      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
    
    tjc's avatar
    tjc committed
        fi
    
    tjc's avatar
    tjc committed
    
        #### 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