Commit patch to not break on spaces.
[bowtie.git] / scripts / make_b_taurus_UMD3.sh
1 #!/bin/sh
2
3 #
4 # Builds an index from UMD Freeze 3.0 of the Bos Taurus (cow) genome.
5 #
6
7 BASE_CHRS="\
8 Chr1 \
9 Chr2 \
10 Chr3 \
11 Chr4 \
12 Chr5 \
13 Chr6 \
14 Chr7 \
15 Chr8 \
16 Chr9 \
17 Chr10 \
18 Chr11 \
19 Chr12 \
20 Chr13 \
21 Chr14 \
22 Chr15 \
23 Chr16 \
24 Chr17 \
25 Chr18 \
26 Chr19 \
27 Chr20 \
28 Chr21 \
29 Chr22 \
30 Chr23 \
31 Chr24 \
32 Chr25 \
33 Chr26 \
34 Chr27 \
35 Chr28 \
36 Chr29 \
37 ChrX \
38 ChrU \
39 ChrY-contigs \
40 ChrY-contigs.SHOTGUN_ONLY"
41
42 CHRS_TO_INDEX=$BASE_CHRS
43
44 get() {
45         file=$1
46         if ! wget --version >/dev/null 2>/dev/null ; then
47                 if ! curl --version >/dev/null 2>/dev/null ; then
48                         echo "Please install wget or curl somewhere in your PATH"
49                         exit 1
50                 fi
51                 curl -o `basename $1` $1
52                 return $?
53         else
54                 wget $1
55                 return $?
56         fi
57 }
58
59 BOWTIE_BUILD_EXE=./bowtie-build
60 if [ ! -x "$BOWTIE_BUILD_EXE" ] ; then
61         if ! which bowtie-build ; then
62                 echo "Could not find bowtie-build in current directory or in PATH"
63                 exit 1
64         else
65                 BOWTIE_BUILD_EXE=`which bowtie-build`
66         fi
67 fi
68
69 FTP_BASE=ftp://ftp.cbcb.umd.edu/pub/data/Bos_taurus/Bos_taurus_UMD_3.0
70 OUTPUT=b_taurus
71
72 INPUTS=
73 for c in $CHRS_TO_INDEX ; do
74         if [ ! -f ${c}.fa ] ; then
75                 F=${c}.fa.gz
76                 get ${FTP_BASE}/$F || (echo "Error getting $F" && exit 1)
77                 gunzip $F || (echo "Error unzipping $F" && exit 1)
78         fi
79         [ -n "$INPUTS" ] && INPUTS=$INPUTS,${c}.fa
80         [ -z "$INPUTS" ] && INPUTS=${c}.fa
81 done
82
83 CMD="$BOWTIE_BUILD_EXE $* $INPUTS $OUTPUT"
84 echo $CMD
85 if $CMD ; then
86         echo "$OUTPUT index built; you may remove fasta files"
87 else
88         echo "Index building failed; see error message"
89 fi