Labkey-UKC

Resources

Labkey UKC

Available at 10.3.249.171.

Labkey

Installed labkeyDocker in /home/labkey (port 8081) and /home/labkey1 (8082, dedicated to pharmaceutical use).

Orthanc

Installed dockerOrthanc. Standard user/password, port 8042.

Software (nixWorker)

Slicer

Install dependent software:

sudo apt-get install libpulse-dev libnss3 libglu1-mesa
sudo apt-get install --reinstall libxcb-xinerama0
sudo apt-get install libasound2
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

Get Slicer from the link (at the moment, the link looks like this https://download.slicer.org/bitstream/64e0b4a006a93d6cff3638ce, but it is actual .tar.gz).

Get SlicerLabkeyExtension and associated xpra to run fake X on headless server.

sudo apt-get install xpra

Testing by running:

~/software/install/SlicerLabkeyExtension/slicerScripts/runSlicerFg.sh test.py

where test.py has a single line with a print command and a quit().

Matlab

For matlab, see installation at VanGogh.

DynamicSPECT

For dynamicSPECT, the dependencies are (requirements.txt is part of dynamicSPECT distribution):

sudo apt-get install virtualenv

Install dynamicSPECT and setup virtualenv to run dynamicSPECT python code:

git clone https://git0.fmf.uni-lj.si/studen/dynamicSPECT.git
virtualenv ~/env/dynamicSPECT -p python3
. ~/env/dynamicSPECT/bin/activate
pip install -r requirements.txt

Analysis interface

virtualenv ~/venv/labkey -p python3
cd ~/venv/labkey
wget https://git0.fmf.uni-lj.si/studen/venv/raw/master/labkey/requirements.txt
pip install -r requirements.txt
git clone https://git0.fmf.uni-lj.si/studen/analysisInterface.git

Setup remote connection in labkey-ukc.json. Edit setup.json, add analysisInterface under venv:

{"venv":
{ "analysisInterface":"/home/nixWorker/venv/labkey"}
}

Analysis module

Project setup

Add WithStrings view to runs list. Correct server in log and logDirectory fields.

Labkey side, docker container

cd ~/labkey/externalModules
git clone https://git0.fmf.uni-lj.si/studen/analysisModule.git
cd ~/labkey/software
git clone https://git0.fmf.uni-lj.si/studen/websocket.git
cd websocket
#change origin to labkey-ukc in send.py
docker network inspect labkey_network
#this lists ip of the client, 
#server is the same subnetwork, just replace last digit with 1
#X.X.X.n -> X.X.X.1
#this should be used in Analysis/Run setup

Analysis side, nixWorker

cd ~/software/src
git clone https://git0.fmf.uni-lj.si/studen/websocket.git
cd websocket
#add labkey-ukc to list of origins in websocketServer.py
cp serviceScripts/env.sh.sample serviceScripts/env.sh
vi serviceScripts/env.sh
#change IPSERVER to ip address glimpsed from docker network inspect
./serviceScripts/start.sh
#stop can be done from different terminal, 
./serviceScripts/stop.sh

Test from Labkey side

As labkey user

docker exec -it config-labkey-web_1 bash
#IP is the IPSERVER address set above
~/software/src/websocket/send.py IP:TEST

On the analysis side, as nixWorker user:

cat ~/logs/websocketServer.log
<<< FROM: X.X.X.1
<<< X.X.X.3:TEST
Test

Discussion