#!/bin/sh # If an argument was supplied, that tells the script to run the parallel setup/install # i.e. "if [ $# -gt 0 ]" if [ ! -d ../../bin ]; then echo "Install AmberTools before attempting to install Amber." exit 1 fi # require AMBERHOME if [ -z $AMBERHOME ]; then export AMBERHOME=`dirname \`dirname $PWD\`` echo "AMBERHOME is not set. Assuming it is $AMBERHOME" fi # Find the proper python if [ -x $AMBERHOME/bin/python ]; then echo " Using AmberTools' python" pythonexe=$AMBERHOME/bin/python pythonstring="\$AMBERHOME/bin/python" amberpy='yes' else echo " Using system python" pythonexe=`which python` pythonstring=`which python` amberpy='no' fi # Create ante-MMPBSA.py sed -e "s@PYTHONEXE@$pythonexe@g" < ante-MMPBSA.py > ../../../bin/ante-MMPBSA.py chmod +x ../../../bin/ante-MMPBSA.py if [ $# -gt 0 ]; then # try to see if we already have mpi4py installed $pythonexe -c "from mpi4py import MPI" > /dev/null 2>&1 # if it's not installed/working, build it (again?) if [ $? -gt 0 -a "$amberpy" = 'yes' ]; then rm -fr mpi4py-1.2.2/ tar zxf mpi4py-1.2.2.tar.gz cd mpi4py-1.2.2/ echo " Building mpi4py (this may take a while)..." $pythonexe setup.py build > ../../mpi4py_install.log 2>&1 if [ $? -gt 0 ]; then echo " Error in mpi4py install. Check mpi4py_install.log" else $pythonexe setup.py install >> ../../mpi4py_install.log 2>&1 if [ $? -gt 0 ]; then echo " Error installing mpi4py in python library directory. Check mpi4py_install.log" fi fi echo " Done building mpi4py." cd .. fi # create the MMPBSA.py.MPI file $pythonexe ppp.py -DMPI MMPBSA.pypp > MMPBSA.py.MPI # create the wrapper script cat > ../../../bin/MMPBSA.MPI << EOF #!/bin/sh if [ -z \$AMBERHOME ]; then echo "Error: AMBERHOME must be set for MMPBSA!" exit 1 fi if [ ! -f \$AMBERHOME/AmberTools/src/mmpbsa_py/MMPBSA.py.MPI ]; then echo "Error: Can't find MMPBSA.py.MPI! Re-install MMPBSA.py in parallel." exit 1 fi $pythonstring \$AMBERHOME/AmberTools/src/mmpbsa_py/MMPBSA.py.MPI \$* EOF chmod +x ../../../bin/MMPBSA.MPI else # serial version ./ppp.py MMPBSA.pypp > MMPBSA.py # create the wrapper script cat > ../../../bin/MMPBSA << EOF #!/bin/sh if [ -z \$AMBERHOME ]; then echo "Error: AMBERHOME must be set for MMPBSA!" exit 1 fi if [ ! -f \$AMBERHOME/AmberTools/src/mmpbsa_py/MMPBSA.py ]; then echo "Error: Can't find MMPBSA.py! Reinstall MMPBSA.py in serial!" exit 1 fi $pythonstring \$AMBERHOME/AmberTools/src/mmpbsa_py/MMPBSA.py \$* EOF chmod +x ../../../bin/MMPBSA fi # Make sure we can find the chemistry package if we didn't install our own python if [ "$amberpy" = 'no' ]; then export PYTHONPATH=$AMBERHOME/AmberTools/src/etc\:$PYTHONPATH fi $pythonexe -c "from MMPBSA_mods import *" if [ $? -gt 0 ]; then echo "Error importing MMPBSA python modules! MMPBSA.py will not work." exit 1 fi if [ "$amberpy" = 'yes' ]; then if [ "`uname -s`" = "Darwin" ]; then /bin/cp -r MMPBSA_mods ../../../Python.framework/Versions/2.6/lib/python2.6/site-packages else /bin/cp -r MMPBSA_mods ../../../lib/python2.6/site-packages fi else /bin/cp -r MMPBSA_mods ../../../bin /bin/cp -r ../etc/chemistry . fi