forked from dfguan/deSPI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeSPI-index
executable file
·99 lines (77 loc) · 2.01 KB
/
deSPI-index
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
#!/bin/bash
REFERENCE_LIB_PATH=$1
KMER_SIZE=31
TAXONOMY_TREE_PATH=$2
DESPI_BIN_PATH=$3
INDEX_DIR=$4
USAGE="
`basename $0` <REF_DIR> <NODE_PATH> <DESPI_BIN_DIR> <INDEX_DIR>
ARGUMENT
<REF_DIR> directory of reference library.
<NODE_PATH> location of nodes.dmp file.
<DESPI_BIN_DIR> directory of deSPI execuative files.
<INDEX_DIR> directory to store deSPI's index.
"
if [ $# -lt 4 ]
then
echo "ERROR: Parameters are not enough"
printf "$USAGE"
exit 1
fi
check_for_jellyfish() {
command -v jellyfish >/dev/null 2>&1 || return `false`
JELLYFISH_VERSION=$(jellyfish --version | awk '{print $2}')
#echo $JELLYFISH_VERSION
if [[ $JELLYFISH_VERSION =~ ^1\. ]]
then
return `true`
else
return `false`
fi
}
TRANSIT=transit
if check_for_jellyfish
then
find $REFERENCE_LIB_PATH/ -name '*.fna' | xargs -n 1 cat > deSPI-wgs.fa
FILE_SIZE=$(ls -l deSPI-wgs.fa | awk '{print $5}')
#echo $FILE_SIZE
let JELLYFISH_HASH_SIZE=FILE_SIZE*115/100
#echo $JELLYFISH_HASH_SIZE
mkdir -p $INDEX_DIR
mkdir -p $TRANSIT
cd $TRANSIT
jellyfish count -m $KMER_SIZE -s $JELLYFISH_HASH_SIZE -t 4 ../deSPI-wgs.fa
if [ -e "mer_counts_1" ]
then
#echo hahahha
jellyfish merge -o database.jdb.tmp mer_counts_*
else
mv mer_counts_0 database.jdb.tmp
fi
mv database.jdb.tmp ../database.jdb
cd ..
rm -rf $TRANSIT
if [ -f "$DESPI_BIN_PATH/deSPI-sort" ]
then
echo "sorting kmers......"
$DESPI_BIN_PATH/deSPI-sort database.jdb $KMER_SIZE >/dev/null 2>/dev/null
rm -f database.jdb
else
echo "deSPI-index requires deSPI-sort"
exit 1
fi
if [ -f "$DESPI_BIN_PATH/deSPI" ]
then
echo "building deSPI index......"
$DESPI_BIN_PATH/deSPI index database.srt $TAXONOMY_TREE_PATH deSPI-wgs.fa $INDEX_DIR >/dev/null 2>/dev/null
else
echo "deSPI-index requires deSPI"
fi
rm -f deSPI-wgs.fa database.srt
cp $TAXONOMY_TREE_PATH $INDEX_DIR/map
echo "finished building deSPI index ^_^"
else
echo "deSPI requires jellyfish version 1"
exit 1
fi
cd ..