#!/bin/sh
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  procheck.scr
#  ------------
#  Shell script for running stereochemical checking programs
#  Roman Laskowski, August 1992
#  Re-written in Bourne shell from the original csh, Dave Love, Apr. '94
#
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# Check that exactly two parameters have been entered

set -e

if [ $# != 2 -a $# != 3 ]; then
  echo ' '
  echo '*** ERROR. Correct usage is:'
  echo ' '
  echo '              procheck  filename  [chain]  resolution'
  echo ' '
  echo ' '
  echo '       where  filename    = the coordinates file in Brookhaven format'
  echo '              [chain]     = an optional one-letter chain-ID'
  echo '              resolution  = a real number giving the resolution'
  echo '                            of the structure'
  echo ' '
  echo 'For example:-'
  echo ' '
  echo '              procheck  /data/pdb/p1amt.pdb  A  1.5'
  echo ' '
else
  echo ' '
  echo ' '
  echo 'Check of stereochemical quality - PROCHECK v.3.5 (Apr 1998)'
  echo '------------------------------------------------'
  echo ' '
  filename=$1
  echo 'Coordinates file:   [' $filename ']'
  echo ' '
  if [ $# = 2 ]; then
    chain=' '
    resolution=$2
  else
    chain=$2
    resolution=$3
    echo 'Chain:              [' $chain ']'
    echo ' '
  fi
  echo 'Resolution:          ' $resolution
  echo ' '
#  echo 'Program directory:   ' $prodir
  echo ' '
#
# If the pdb file exists, then do the business
#
if [ -f $filename ]; then
    #-------------#
    # C L E A N   #
    #-------------#
    echo 'CLEAN - Clean-up program' > clean.log
    echo '------------------------' >> clean.log
    echo ' ' >> clean.log
    echo 'Running clean-up on file: '$filename
    echo ' '
    if [ ! -f resdefs.dat ]; then
      ln -s $CINCL/resdefs.data resdefs.dat
    fi
    proclean >> clean.log << EOD
$filename
EOD
    grep "*" clean.log || true
    echo ' '
    echo '.................................................................'
    #-------------#
    # S E C S T R #
    #-------------#
    echo ' ' > secstr.log
    echo 'SECSTR - Secondary structure assignment' >> secstr.log
    echo '---------------------------------------' >> secstr.log
    echo ' ' >> secstr.log
    echo ' '
    echo 'Secondary structure assignment'
    echo ' '
    secstr >> secstr.log << EOD
$filename
EOD
    grep "*" secstr.log || true
    echo ' '
    echo '..................................................................'
    #-------------#
    # N B         #
    #-------------#
    echo ' ' > nb.log
    echo 'Check of non-bonded contacts' >> nb.log
    echo '----------------------------' >> nb.log
    echo ' ' >> nb.log
    echo ' '
    echo 'Non-bonded interactions'
    echo ' '
    nb >> nb.log << EOD
$filename
EOD
    grep "*" nb.log || true
    echo ' '
    echo '..................................................................'
    #-------------#
    # A N G L E N #
    #-------------#
    echo ' ' > anglen.log
    echo 'ANGLEN - Calculation of bond lengths and angles' >> anglen.log
    echo '-----------------------------------------------' >> anglen.log
    echo ' ' >> anglen.log
    echo ' '
    echo 'Calculation of bond lengths and bond angles'
    echo ' '
    anglen >> anglen.log << EOD
$filename
EOD
    grep "*" anglen.log || true
    echo ' '
    echo '..................................................................'
    #-------------#
    # T P L O T   #
    #-------------#
    if [ ! -f prodata ]; then
      ln -s $CINCL/procheck.dat prodata
    fi
    if [ ! -f procheck.prm ]; then
      cp $CINCL/procheck.prm .
    fi
    echo ' ' > tplot.log
    echo 'Phi-psi and chi1-chi2 distributions' >> tplot.log
    echo '-----------------------------------' >> tplot.log
    echo ' ' >> tplot.log
    echo ' '
    echo 'Phi-psi and chi1-chi2 distributions'
    echo ' '
    tplot >> tplot.log << EOD
$filename
$chain
$resolution
N
EOD
    echo ' '
    grep "*" tplot.log || true
    echo ' '
    echo '..................................................................'
    #-------------#
    # P P L O T   #
    #-------------#
    echo ' ' > pplot.log
    echo 'Plots and residue-by-residue listing' >> pplot.log
    echo '------------------------------------' >> pplot.log
    echo ' ' >> pplot.log
    echo ' '
    echo 'Stereochemical quality plots and residue-by-residue listing'
    echo ' '
    pplot >> pplot.log << EOD
$filename
$chain
$resolution
EOD
    echo ' '
    grep "*" pplot.log || true
    echo ' '
    echo '..................................................................'
    #-------------#
    # B P L O T   #
    #-------------#
    echo ' ' > bplot.log
    echo 'Main-chain bond-lengths and angles, and planar groups' >> bplot.log
    echo '-----------------------------------------------------' >> bplot.log
    echo ' ' >> bplot.log
    echo ' '
    echo 'Main-chain bond-lengths and angles, and planar groups'
    echo ' '
    probplot >> bplot.log << EOD
$filename
$chain
$resolution
EOD
    echo ' '
    grep "*" bplot.log || true
    echo ' '
    echo '..................................................................'
  #
  # Tidy up at end
  # --------------
    rm prodata
    rm resdefs.dat
    rm ps.number

else
    echo 'File not found: '$filename
fi
fi
#
