1#!/bin/bash 2 3# Removes the time from vt stderr output. 4strip_stderr() 5{ 6 sed 's/Time elapsed.*/Time elapsed <stripped>/g' | sed 's/file.*/file <stripped>/g' 7} 8 9DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 10VT=${DIR}/../vt 11REF=${DIR}/ref/20.fa.gz 12TMPDIRS=""; 13 14NO_TESTS=0 15PASSED_TESTS=0 16 17echo "++++++++++++++++++++++" >&2 18echo "Tests for vt normalize" >&2 19echo "++++++++++++++++++++++" >&2 20 21# create temporary directory and ensure cleanup on termination 22CMDDIR=${DIR}/normalize 23TMPDIR=${CMDDIR}/tmp 24mkdir -p ${TMPDIR} 25TMPDIRS+=" $TMPDIR"; 26 27#----------------------- 28echo "testing normalize" 29#----------------------- 30if [ "$1" == "debug" ]; then 31 set -x 32fi 33 34${OUT}${VT} \ 35 normalize \ 36 ${CMDDIR}/01_IN.vcf \ 37 -r ${REF} \ 38 -o ${TMPDIR}/01_OUT.vcf \ 39 2>&1 | strip_stderr > ${TMPDIR}/01_OUT.stderr 40 41OUT=`diff ${CMDDIR}/01_OUT.vcf ${TMPDIR}/01_OUT.vcf` 42ERR=`diff ${CMDDIR}/01_OUT.stderr ${TMPDIR}/01_OUT.stderr` 43 44set +x 45 46((NO_TESTS++)) 47 48echo -n " output VCF file :" 49if [ "$OUT" == "" ]; then 50 echo " ok" 51 ((PASSED_TESTS++)) 52else 53 echo " NOT OK!!!" 54fi 55 56echo -n " output logs :" 57if [ "$ERR" == "" ]; then 58 echo " ok" 59else 60 echo " NOT OK!!!" 61fi 62 63echo "+++++++++++++++++++++++++++++++" >&2 64echo "Tests for vt decompose_blocksub" >&2 65echo "+++++++++++++++++++++++++++++++" >&2 66 67# create temporary directory and ensure cleanup on termination 68CMDDIR=${DIR}/decompose_blocksub 69TMPDIR=${CMDDIR}/tmp 70mkdir -p ${TMPDIR} 71TMPDIRS+=" $TMPDIR"; 72 73#------------------------------------------------------ 74echo "testing decompose_blocksub of even-length blocks" 75#------------------------------------------------------ 76 77if [ "$1" == "debug" ]; then 78 set -x 79fi 80 81${VT} \ 82 decompose_blocksub \ 83 ${CMDDIR}/01_IN_even_length.vcf \ 84 -o ${TMPDIR}/01_OUT_even_length.vcf \ 85 2>&1 | strip_stderr > ${TMPDIR}/01_OUT_even_length.stderr 86 87OUT=`diff ${CMDDIR}/01_OUT_even_length.vcf ${TMPDIR}/01_OUT_even_length.vcf` 88ERR=`diff ${CMDDIR}/01_OUT_even_length.stderr ${TMPDIR}/01_OUT_even_length.stderr` 89 90set +x 91 92((NO_TESTS++)) 93 94echo -n " output VCF file :" 95if [ "$OUT" == "" ]; then 96 echo " ok" 97 ((PASSED_TESTS++)) 98else 99 echo " NOT OK!!!" 100fi 101 102echo -n " output logs :" 103if [ "$ERR" == "" ]; then 104 echo " ok" 105else 106 echo " NOT OK!!!" 107fi 108 109#----------------------------------------------- 110echo "testing decompose_blocksub with alignment" 111#----------------------------------------------- 112 113if [ "$1" == "debug" ]; then 114 set -x 115fi 116 117${VT} \ 118 decompose_blocksub -a \ 119 ${CMDDIR}/02_IN_uneven_length.vcf \ 120 -o ${TMPDIR}/02_OUT_uneven_length.vcf \ 121 2>&1 | strip_stderr > ${TMPDIR}/02_OUT_uneven_length.stderr \ 122 123OUT=`diff ${CMDDIR}/02_OUT_uneven_length.vcf ${TMPDIR}/02_OUT_uneven_length.vcf` 124ERR=`diff ${CMDDIR}/02_OUT_uneven_length.stderr ${TMPDIR}/02_OUT_uneven_length.stderr` 125 126set +x 127 128((NO_TESTS++)) 129 130echo -n " output VCF file :" 131if [ "$OUT" == "" ]; then 132 echo " ok" 133 ((PASSED_TESTS++)) 134else 135 echo " NOT OK!!!" 136fi 137 138echo -n " output logs :" 139if [ "$ERR" == "" ]; then 140 echo " ok" 141else 142 echo " NOT OK!!!" 143fi 144 145#------------------------------------------------------------- 146echo "testing decompose_blocksub of phased even-length blocks" 147#------------------------------------------------------------- 148 149if [ "$1" == "debug" ]; then 150 set -x 151fi 152 153${VT} \ 154 decompose_blocksub \ 155 -p \ 156 ${CMDDIR}/03_IN_phased_even_length.vcf \ 157 -o ${TMPDIR}/03_OUT_phased_even_length.vcf \ 158 2>&1 | strip_stderr > ${TMPDIR}/03_OUT_phased_even_length.stderr 159 160OUT=`diff ${CMDDIR}/03_OUT_phased_even_length.vcf ${TMPDIR}/03_OUT_phased_even_length.vcf` 161ERR=`diff ${CMDDIR}/03_OUT_phased_even_length.stderr ${TMPDIR}/03_OUT_phased_even_length.stderr` 162 163set +x 164 165((NO_TESTS++)) 166 167echo -n " output VCF file :" 168if [ "$OUT" == "" ]; then 169 echo " ok" 170 ((PASSED_TESTS++)) 171else 172 echo " NOT OK!!!" 173fi 174 175echo -n " output logs :" 176if [ "$ERR" == "" ]; then 177 echo " ok" 178else 179 echo " NOT OK!!!" 180fi 181 182trap "rm -rf ${TMPDIRS}" EXIT KILL TERM INT HUP 183 184echo "++++++++++++++++++++++" >&2 185echo "Tests for vt decompose" >&2 186echo "++++++++++++++++++++++" >&2 187 188# create temporary directory and ensure cleanup on termination 189CMDDIR=${DIR}/decompose 190TMPDIR=${CMDDIR}/tmp 191mkdir -p ${TMPDIR} 192TMPDIRS+=" $TMPDIR"; 193 194#----------------------- 195echo "testing decompose for a triallelic variant" 196#----------------------- 197 198if [ "$1" == "debug" ]; then 199 set -x 200fi 201 202${VT} \ 203 decompose \ 204 ${CMDDIR}/01_IN_multi.vcf \ 205 -o ${TMPDIR}/01_OUT_multi.vcf \ 206 2>&1 | strip_stderr > ${TMPDIR}/01_OUT_multi.stderr 207 208OUT=`diff ${CMDDIR}/01_OUT_multi.vcf ${TMPDIR}/01_OUT_multi.vcf` 209ERR=`diff ${CMDDIR}/01_OUT_multi.stderr ${TMPDIR}/01_OUT_multi.stderr` 210 211set +x 212 213((NO_TESTS++)) 214 215echo -n " output VCF file :" 216if [ "$OUT" == "" ]; then 217 echo " ok" 218 ((PASSED_TESTS++)) 219else 220 echo " NOT OK!!!" 221fi 222 223echo -n " output logs :" 224if [ "$ERR" == "" ]; then 225 echo " ok" 226else 227 echo " NOT OK!!!" 228fi 229 230trap "rm -rf ${TMPDIRS}" EXIT KILL TERM INT HUP 231 232echo 233echo -n Passed tests : 234echo -n " " 235echo -n ${PASSED_TESTS} 236echo -n " / " 237echo ${NO_TESTS} 238