File: rununique-test.sh

package info (click to toggle)
genometools 1.6.6%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 50,576 kB
  • sloc: ansic: 271,876; ruby: 29,930; python: 5,106; sh: 3,083; makefile: 1,213; perl: 219; pascal: 159; haskell: 37; sed: 5
file content (104 lines) | stat: -rwxr-xr-x 1,921 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/bin/sh

if test $# -lt 4
then
  echo "Usage: $0 <min> <max> <queryfile> <file1> <file2> ..."
  exit 1
fi

fmdir=${PROJECT}/vstree/src/vstree/src/fmmatch

cerr() 
{
  $1
  if test $? -ne 0
  then
    echo "failure: ${1}"
    exit 1
  else
    echo "# success $1"
  fi
}

mkfmindex() 
{
  indexname=$1
  shift
  iiargs=$*
  cerr "${fmdir}/mkfmindex.x -noindexpos -fmout ${indexname} ${iiargs}"
}

mkvtree
{
  cerr "mkvtree.x $*"
}

uniquesub
{
  cerr "${fmdir}/uniquesub.x -output sequence querypos $*"
}

IDIR=../indexdir
mkdir -p ${IDIR}

minval=$1
maxval=$2
queryfile=$3
shift
shift
shift
rfiles=$*

numofrfiles=0
for rfile in ${rfiles}
do
  if test -f ${rfile}
  then
    numofrfiles=`expr ${numofrfiles} + 1`
  else
    echo "# $0: file \"${rfile}\" does not exist"
    exit 1
  fi
done

if test ${numofrfiles} -eq 1
then
  if test ! -f ${IDIR}/mkv-single.rev.prj ||
     test ${rfiles} -nt ${IDIR}/mkv-single.rev.prj   
  then
    mkvtree -rev -dna -indexname ${IDIR}/mkv-single -db ${rfiles} -suf -tis -bwt -pl
  else
    echo "# ${IDIR}/mkv-single.rev is up to date"
  fi
  if test ! -f ${IDIR}/mkv-fm.fma ||
     test ${IDIR}/mkv-single.rev.prj -nt ${IDIR}/mkv-fm.fma
  then
    mkfmindex ${IDIR}/mkv-fm ${IDIR}/mkv-single.rev
  else
    echo "# ${IDIR}/mkv-fm is up to date"
  fi
else
  runmkfm=0
  fn=0
  for rfile in ${rfiles}
  do
    if test ! -f ${IDIR}/midx${fn}.prj || 
       test ${rfile} -nt ${IDIR}/midx${fn}.prj
    then
      mkvtree -rev -indexname ${IDIR}/midx${fn} -db ${rfile} -suf -lcp -tis -pl
      runmkfm=1
    else
      echo "# ${IDIR}/midx${fn} is up to date"
    fi
    indexlist="${indexlist} ${IDIR}/midx${fn}"
    fn=`expr ${fn} + 1`
  done
  if test ${runmkfm} -eq 1
  then
    mkfmindex ${IDIR}/mkv-fm ${indexlist}
  else
    echo "# ${IDIR}/mkv-fm is up to date"
  fi
fi
fmindexname=${IDIR}/mkv-fm
uniquesub -min ${minval} -max ${maxval} -smallindex ${fmindexname} ${queryfile}