forked from StochSS/stochss
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run.linux.sh
executable file
·152 lines (126 loc) · 5.39 KB
/
run.linux.sh
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/bin/bash
# Attempt to install StochKit 2.0.8
#
# Install it in the user's home folder by default, to override
#
#
#read -p "Select a directory to use as StochSS home (leave blank to use current directory): " MY_PATH
MY_PATH="`dirname \"$0\"`" # relative
MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
STOCHSS_HOME=$MY_PATH
STOCHSS_HOME="`( cd \"$STOCHSS_HOME\" && pwd )`"
echo "Installing in $STOCHSS_HOME"
if [ "$(echo $STOCHSS_HOME | grep " ")" != "" ]; then
echo "Cannot execute StochSS under any directory that contains spaces (which the filename listed above has). This is an known issue"
exit -1
fi
STOCHKIT_VERSION=StochKit2.0.8
STOCHKIT_PREFIX="$STOCHSS_HOME"
export STOCHKIT_HOME="$STOCHKIT_PREFIX/$STOCHKIT_VERSION"
export STOCHKIT_ODE="$STOCHSS_HOME/ode"
echo -n "Testing if StochKit2 built... "
rundir=$(mktemp -d /tmp/tmp.XXXXXX)
rm -r "$rundir"
if "$STOCHKIT_HOME/ssa" -m "$STOCHKIT_HOME/models/examples/dimer_decay.xml" -r 1 -t 1 -i 1 --out-dir "$rundir" >& /dev/null; then
echo "Yes"
echo "$STOCHKIT_VERSION found in $STOCHKIT_HOME"
else
echo "No"
echo "Installing in $STOCHSS_HOME/$STOCHKIT_VERSION"
echo "Cleaning up anything already there..."
rm -rf "$STOCHKIT_PREFIX/$STOCHKIT_VERSION"
if [ ! -e "$STOCHKIT_PREFIX/$STOCHKIT_VERSION.tgz" ]; then
echo "Downloading $STOCHKIT_VERSION..."
curl -o "$STOCHKIT_PREFIX/$STOCHKIT_VERSION.tgz" -L "http://sourceforge.net/projects/stochkit/files/StochKit2/$STOCHKIT_VERSION/$STOCHKIT_VERSION.tgz"
fi
echo "Building StochKit"
echo " Logging stdout in $STOCHKIT_HOME/stdout.log and "
echo " stderr in $STOCHKIT_HOME/stderr.log "
echo " * This process will take at least 5 minutes to complete, please be patient *"
wd=`pwd`
cd "$STOCHKIT_PREFIX"
tar -xzf "$STOCHKIT_VERSION.tgz"
tmpdir=$(mktemp -d /tmp/tmp.XXXXXX)
mv "$STOCHKIT_HOME" "$tmpdir/"
cd "$tmpdir/$STOCHKIT_VERSION"
./install.sh 1>stdout.log 2>stderr.log
cd $wd
mv "$tmpdir/$STOCHKIT_VERSION" "$STOCHKIT_HOME"
rm -r "$tmpdir"
rm -r "$rundir"
# Test that StochKit was installed successfully by running it on a sample model
if "$STOCHKIT_HOME/ssa" -m "$STOCHKIT_HOME/models/examples/dimer_decay.xml" -r 1 -t 1 -i 1 --out-dir "$rundir" >& /dev/null; then
echo "Success!"
else
echo "Failed"
echo "$STOCHKIT_VERSION failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_HOME"
exit -1
fi
fi
echo -n "Testing if StochKit2 ODE built... "
rm -r "$rundir"
if "$STOCHKIT_ODE/ode" -m "$STOCHKIT_HOME/models/examples/dimer_decay.xml" -t 1 -i 1 --out-dir "$rundir"; then
echo "Yes"
echo "ode found in $STOCHKIT_ODE"
else
echo "No"
echo "Installing in $STOCHSS_HOME/ode"
echo "Cleaning up anything already there..."
rm -rf "$STOCHSS_HOME/ode"
stdout="$STOCHKIT_ODE/stdout.log"
stderr="$STOCHKIT_ODE/stderr.log"
echo "Building StochKit ODE"
echo " Logging stdout in $STOCHKIT_ODE/stdout.log and "
echo " stderr in $STOCHKIT_ODE/stderr.log "
echo " * This process should take about a minute to complete, please be patient *"
wd=`pwd`
tar -xzf "ode.tgz"
cd "ode/cvode"
tar -xzf "cvode-2.7.0.tar.gz"
cd "cvode-2.7.0"
./configure --prefix="$PWD/cvode" 1>"$stdout" 2>"$stderr"
if [ $? != 0 ]; then
echo "Failed"
echo "StochKit ODE failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_ODE"
exit -1
fi
make 1>"$stdout" 2>"$stderr"
if [ $? != 0 ]; then
echo "Failed"
echo "StochKit ODE failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_ODE"
exit -1
fi
make install 1>"$stdout" 2>"$stderr"
if [ $? != 0 ]; then
echo "Failed"
echo "StochKit ODE failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_ODE"
exit -1
fi
cd ../../
make 1>"$stdout" 2>"$stderr"
if [ $? != 0 ]; then
echo "Failed"
echo "StochKit ODE failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_ODE"
exit -1
fi
cd ../
cd $wd
rm -r "$rundir"
# Test that StochKit was installed successfully by running it on a sample model
if "$STOCHKIT_ODE/ode" -m "$STOCHKIT_HOME/models/examples/dimer_decay.xml" -t 1 -i 1 --out-dir "$rundir"; then
echo "Success!"
else
echo "Failed"
echo "StochKit ODE failed to install. Consult logs above for errors, and the StochKit documentation for help on building StochKit for your platform. Rename successful build folder to $STOCHKIT_ODE"
exit -1
fi
fi
rm -r "$rundir"
echo -n "Configuring the app to use $STOCHKIT_HOME for StochKit... "
echo -n "Configuring the app to use $STOCHKIT_ODE for StochKit ODE... "
ln -s "$STOCHKIT_HOME" StochKit
# Write STOCHKIT_HOME to the appropriate config file
echo -n "$STOCHKIT_HOME" > "$STOCHSS_HOME/conf/config"
echo -n "$STOCHKIT_ODE" >> "$STOCHSS_HOME/conf/config"
echo "Done!"
exec python "$STOCHSS_HOME/launchapp.py" $0