1#! /bin/sh 2 3# 4# template-test 5# 6# 7# Part of TREE-PUZZLE 5.2 (July 2004) 8# 9# (c) 2003-2004 by Heiko A. Schmidt, Korbinian Strimmer, and Arndt von Haeseler 10# (c) 1999-2003 by Heiko A. Schmidt, Korbinian Strimmer, 11# M. Vingron, and Arndt von Haeseler 12# (c) 1995-1999 by Korbinian Strimmer and Arndt von Haeseler 13# 14# All parts of the source except where indicated are distributed under 15# the GNU public licence. See http://www.opensource.org for details. 16# 17# ($Id$) 18# 19 20fname=`echo $0 | sed 's/.*\///'` 21GENERATE=0 22TESTTYPE="Testing: " 23 24if test 0 -ne $# 25then 26 case "$1" in 27 -g*) 28 GENERATE=1 29 TESTTYPE="Generating: " 30 ;; 31 *) 32 echo "Usage: $fname [-g] " 33 echo 34 echo " Test a TREE-PUZZLE scenario." 35 echo " With -g no test is performed, but the " 36 echo " template for a future test is created." 37 echo 38 exit 1 39 ;; 40 esac 41fi 42 43########################################################################## 44 45TEST_PREF=`echo $fname | sed s/\.test//` 46INUTREE=${TEST_PREF}.trees 47INCTREE=${TEST_PREF}.ctrees 48PARAMS=${TEST_PREF}.param 49# default 50DATA=nucl 51INFILE=${TEST_PREF}.${DATA} 52INFILESOURCE=../data/marswolf.n 53INUTREESOURCE=../data/marswolf.trees 54INCTREESOURCE=../data/marswolf.ctrees 55 56# 57# data type 58# 59case "$TEST_PREF" in 60 *-nucl) 61 TESTTYPE="${TESTTYPE}nucleotide data" 62 DATA=nucl 63 INFILE=${TEST_PREF}.${DATA} 64 INFILESOURCE=../data/marswolf.n 65 INUTREESOURCE=../data/marswolf.trees 66 INCTREESOURCE=../data/marswolf.ctrees 67 echo d > $PARAMS 68 case "$TEST_PREF" in 69 *-hky*) 70 TESTTYPE="${TESTTYPE}, HKY" 71 ;; 72 *-tn*) 73 TESTTYPE="${TESTTYPE}, TN" 74 echo m >> $PARAMS 75 ;; 76 *-gtr*) 77 TESTTYPE="${TESTTYPE}, TN" 78 echo m >> $PARAMS 79 echo m >> $PARAMS 80 ;; 81 *-sh*) 82 TESTTYPE="${TESTTYPE}, SH" 83 echo m >> $PARAMS 84 echo m >> $PARAMS 85 echo m >> $PARAMS 86 ;; 87 *) 88 TESTTYPE="${TESTTYPE}, default model" 89 esac 90 ;; 91 *-prot) 92 TESTTYPE="${TESTTYPE}protein data" 93 DATA=prot 94 INFILE=${TEST_PREF}.${DATA} 95 INFILESOURCE=../data/globin.a 96 INUTREESOURCE=../data/globin.trees 97 INCTREESOURCE=../data/globin.ctrees 98 echo d > $PARAMS 99 echo d >> $PARAMS 100 case "$TEST_PREF" in 101 *-dayhoff*) 102 TESTTYPE="${TESTTYPE}, Dayhoff" 103 echo m >> $PARAMS 104 ;; 105 *-jtt*) 106 TESTTYPE="${TESTTYPE}, JTT" 107 echo m >> $PARAMS 108 echo m >> $PARAMS 109 ;; 110 *-mtrev*) 111 TESTTYPE="${TESTTYPE}, mtREV" 112 echo m >> $PARAMS 113 echo m >> $PARAMS 114 echo m >> $PARAMS 115 ;; 116 *-blosum*) 117 TESTTYPE="${TESTTYPE}, BLOSUM" 118 echo m >> $PARAMS 119 echo m >> $PARAMS 120 echo m >> $PARAMS 121 echo m >> $PARAMS 122 ;; 123 *-vt*) 124 TESTTYPE="${TESTTYPE}, VT" 125 echo m >> $PARAMS 126 echo m >> $PARAMS 127 echo m >> $PARAMS 128 echo m >> $PARAMS 129 echo m >> $PARAMS 130 ;; 131 *-wag*) 132 TESTTYPE="${TESTTYPE}, WAG" 133 echo m >> $PARAMS 134 echo m >> $PARAMS 135 echo m >> $PARAMS 136 echo m >> $PARAMS 137 echo m >> $PARAMS 138 echo m >> $PARAMS 139 ;; 140 *) 141 TESTTYPE="${TESTTYPE}, default model" 142 esac 143 ;; 144 *-bin) 145 TESTTYPE="${TESTTYPE}binary data" 146 DATA=bin 147 INFILE=${TEST_PREF}.${DATA} 148 INFILESOURCE=../data/primates.b 149 INUTREESOURCE=../data/primates.trees 150 INCTREESOURCE=../data/primates.ctrees 151 echo d > $PARAMS 152 echo d >> $PARAMS 153 echo d >> $PARAMS 154 ;; 155 *) 156 TESTTYPE="${TESTTYPE}default data, default model" 157 ;; 158esac 159 160case "$TEST_PREF" in 161 *-clock*) 162 TESTTYPE="${TESTTYPE}, clock" 163 echo z >> $PARAMS 164 ;; 165esac 166case "$TEST_PREF" in 167 *-rhet4*) 168 TESTTYPE="${TESTTYPE}, rate heterogeneity (4 rates)" 169 echo w >> $PARAMS 170 echo c >> $PARAMS 171 echo 4 >> $PARAMS 172 ;; 173 *-rhet*) 174 TESTTYPE="${TESTTYPE}, rate heterogeneity" 175 echo w >> $PARAMS 176 ;; 177esac 178 179CHECK_PREF=check-$INFILE 180 181case "$TEST_PREF" in 182 qp-*) 183 TESTTYPE="${TESTTYPE}, quartet puzzling" 184 cp $INFILESOURCE $INFILE 185 RESULT_PREF=$INFILE 186 echo y >> $PARAMS 187 echo; echo "$TESTTYPE ($TEST_PREF)" 188 ../src/puzzle$EXEEXT -randseed1001 ${INFILE} < $PARAMS > ${INFILE}.out 2>&1 189 ;; 190 lm-*) 191 TESTTYPE="${TESTTYPE}, likelihood mapping" 192 cp $INFILESOURCE $INFILE 193 RESULT_PREF=$INFILE 194 echo b >> $PARAMS 195 echo y >> $PARAMS 196 echo; echo "$TESTTYPE ($TEST_PREF)" 197 ../src/puzzle$EXEEXT -randseed1001 ${INFILE} < $PARAMS > ${INFILE}.out 2>&1 198 ;; 199 ut-*) 200 TESTTYPE="${TESTTYPE}, user tree evaluation" 201 cp $INFILESOURCE $INFILE 202 cp $INUTREESOURCE $INUTREE 203 RESULT_PREF=$INUTREE 204 echo y >> $PARAMS 205 echo; echo "$TESTTYPE ($TEST_PREF)" 206 ../src/puzzle$EXEEXT -randseed1001 ${INFILE} ${INUTREE} < $PARAMS > ${INFILE}.out 2>&1 207 ;; 208 cons-*) 209 TESTTYPE="${TESTTYPE}, consensus construction" 210 cp $INFILESOURCE $INFILE 211 cp $INCTREESOURCE $INCTREE 212 RESULT_PREF=$INCTREE 213 echo k >> $PARAMS 214 echo y >> $PARAMS 215 echo; echo "$TESTTYPE ($TEST_PREF)" 216 ../src/puzzle$EXEEXT -randseed1001 ${INFILE} ${INCTREE} < $PARAMS > ${INFILE}.out 2>&1 217 ;; 218 *) 219 echo; echo "$TESTTYPE ($TEST_PREF)" 220 echo UNKNOWN analysis type: test ignored 221 exit 77 222 ;; 223esac 224 225if test $GENERATE == 1; then 226 cat ${RESULT_PREF}.puzzle \ 227 | grep -v "^Date and time" \ 228 | grep -v "^Runtime (" \ 229 | sed "s/$VERSION//g" \ 230 > check-${TEST_PREF} 231 exit 0 232else 233 cat ${RESULT_PREF}.puzzle \ 234 | grep -v "^Date and time" \ 235 | grep -v "^Runtime (" \ 236 | sed "s/$VERSION//g" \ 237 > ${RESULT_PREF}.clean 238 diff ${RESULT_PREF}.clean check-${TEST_PREF} 239 result=$? 240 exit $result 241fi 242