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:

  1. Configure the installer in config.sh, then run install.
  2. 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. with source ~/.opentox/opentox-ui.sh), so any newly started shell will be configured.
  3. Use the system, in particular by starting webservices (see below). For BASH users, a set of tools (ot-tools) is available.
  4. 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

Published

09 August 2012

Tags