Install opentox development environment
in-silico toxicology gmbh blog
Architecture overview and how to install recent opentox services on Ubuntu or Debian.
Philosophy
The opentox installer provides a POSIX compatible way to prepare Debian-based systems and install ISTs OpenTox compatible web-services and library code. Please report bugs here.
Apart from some basic Debian packages, no action requires root access. Everything is installed in the user’s home directory. Inside it, the installer prepares the base directory (referred to as OT_PREFIX
) for OpenTox REST services and provides libraries for the installation and shell integration of services.
Here are some more goals we had in mind when writing the installer:
- Safe (existence of all binaries will be checked before running, apart from GNU Core Utils)
- Idempotent (multiple execution incurs no changes to the system)
- Atomic (return value of non-elementary actions asserted to be TRUE)
- Encapsulated (everything installed in
OT_PREFIX
) - Logged (all non-elementary actions are logged)
Conceptual approach:
- Configure the installer in config.sh, then run
install
. - Configure the system by adding a line to the startup file of your favorite shell (e.g. BASH with the file
~/.bashrc
) to read in~/.opentox/opentox-ui.sh
(e.g. withsource ~/.opentox/opentox-ui.sh
), so any newly started shell will be configured. - Use the system, in particular by starting webservices (see below). For BASH users, a set of tools (ot-tools) is available.
- To uninstall, simply remove the line from the startup file. To save disc space also remove directory
OT_PREFIX
(not recommended). To remove also the configuration, remove~/.opentox
(not recommended).
Installation
Installation (development
at the point of writing this = 08/2014) tested with Debian 7.6 (wheezy), kernel 3.2.0-4-amd64, GNOME 3.4.2. Installer available at github.
Check you can run “sudo” commands (e.g. sudo ls
), which is required for base packages. Install git:
# Install git
sudo apt-get install git
Download, configure and execute the installer (You might add your public key at https://github.com
):
git clone "https://github.com/opentox/install.git" $HOME/install
cd $HOME/install
git checkout development
# First check config.sh with your favorite editor
./install silent
This will prepare the system for opentox web services, including dependencies.
Install OpenTox services
You can run the following steps with a script:
bash $HOME/install/service_install.sh
Load environment (general):
. $HOME/.opentox/config/install/config.sh
. $OT_PREFIX/install/utils.sh
Load environment (with BASH):
. $HOME/.opentox/ot-tools.sh
otconfig
Download and install opentox-client and opentox-server:
for f in opentox-client opentox-server; do
git clone "https://github.com/opentox/$f.git" $OT_PREFIX/$f
cd $OT_PREFIX/$f
git checkout development 2>/dev/null
done
cd $OT_PREFIX/opentox-client/bin
./opentox-client-install silent
cd $OT_PREFIX/opentox-server/bin
./opentox-server-install silent
Download and install services and tests:
for f in algorithm compound dataset feature model validation task opentox-test; do
git clone "https://github.com/opentox/$f.git" $OT_PREFIX/$f
cd $OT_PREFIX/$f
git checkout development 2>/dev/null
if [ -f $OT_PREFIX/$f/bin/$f-install ]; then
cd $OT_PREFIX/$f/bin
./$f-install silent
fi
done
notify
OpenTox compatible web services are now installed and configured.
Activate and use ot-tools for BASH
NOTE: ot-tools require BASH.
Add ot-tools to your .bashrc
:
echo '. $HOME/.opentox/ot-tools.sh' >> ~/.bashrc
# source .bashrc or restart shell
All ot-tools (otconfig
, ottail
, otless
, otstart
, otkill
, otupdate_repo
) are available in your shell. General usage:
[otstart|otkill|otupdate_repo] [all|algorithm|compound|dataset|feature|
model|task|validation|4store]
otconfig
is the only command not taking an argument. It sets the environment variables for all services.
Start all services and the 4store backend with:
otstart all
Kill all services and the 4store backend with:
otkill all
It is possible to manage single services (e.g. otstart dataset
to run dataset web service).
Access web services
The default port setting for the web services and the 4store backend, (see config files ~/.opentox/config/*.rb
):
Service | URI |
---|---|
Algorithm | localhost:8081/algorithm |
Compound | localhost:8082/compound |
Dataset | localhost:8083/dataset |
Feature | localhost:8084/feature |
Model | localhost:8085/model |
Task | localhost:8086/task |
Validation | localhost:8087/validation |
4store | localhost:9088/ |
NOTE: Only installed service URIs are set in the config files. Model and validation service are not available yet.
Testing services
cd $OT_PREFIX/opentox-test
otconfig
ruby opentox-client-short.rb
# Or a longer test script
ruby opentox-client-all.rb
The tests take some time and finish with a short report:
Finished tests in 375.726618s, 0.2741 runs/s, 14.1193 assertions/s.
103 tests, 5305 assertions, 0 failures, 1 errors, 0 skips
To test one specific service, run its script (ruby [service_name].rb
) in $OT_PREFIX/opentox-test/test
.
blog comments powered by Disqus