Competence centre MoBrain

From EGIWiki
Jump to: navigation, search
EGI-Engage Competence centres: Main page ELIXIR BBMRI MoBrain DARIAH LifeWatch EISCAT_3D EPOS Disaster Mitigation | EGI-Engage Knowledge Commons



Contents


Mobrain.png


MoBrain: A Competence Center to Serve Translational Research from Molecule to Brain



CC Coordinator: Alexandre M.J.J. Bonvin

CC Coordinator deputy: Antonio Rosato

CC members' list: cc-mobrain AT mailman.egi.eu

CC meetings: https://indico.egi.eu/indico/categoryDisplay.py?categId=145



Introduction

Today’s translational research era calls for innovative solutions to enable researchers and clinicians to build bridges between the microscopic (molecular) and macroscopic (human) scales. This requires building both transversal and vertical connections between techniques, researchers and clinicians to provide them with an optimal e-Science toolbox to tackle societal challenges related to health.

The main objective of the MoBrain Competence Center (CC) is to lower barriers for scientists to access modern e-Science solutions from micro to macro scales. MoBrain builds on grid- and cloud-based infrastructures and on the existing expertise available within WeNMR (www.wenmr.eu), N4U (neugrid4you.eu), and technology providers (NGIs and other institutions, OSG). This initiative aims to serve its user communities, related ESFRI projects (e.g. INSTRUCT) and in the long term the Human Brain Project (FET Flagship), and strengthen the EGI services offering.

By integrating molecular structural biology and medical imaging services and data, MoBrain will kick-start the development of a larger, integrated, global science virtual research environment for life and brain scientists worldwide. The mini-projects defined in MoBrain are geared toward facilitating this overall objective, each with specific objectives to reinforce existing services, develop new solutions and pave the path to global competence center and virtual research environment for translational research from molecular to brain.

There are already many services and support/training mechanisms in place that will be further developed, optimized and merged during the operation of the CC, building onto and contributing to the EGI service offering. MoBrain will produce a working environment that will be better tailored to the end user needs than any of its individual components. It will provide an extended portfolio of tools and data in a user-friendly e-laboratory, with a direct relevance for neuroscience, starting from the quantification of the molecular forces, protein folding, biomolecular interactions, drug design and treatments, improved diagnostic and the full characterization of every pathological mechanism of brain diseases through both phenomenological as well as mechanistic approaches.


MoBrain partners

The CC is open for additional members. Please email the CC coordinator to join.


Tasks

T1: Cryo-EM in the cloud: bringing clouds to the data

T2: GPU portals for biomolecular simulations

T3: Integrating the micro- (WeNMR/INSTRUCT) and macroscopic (NeuGRID4you) virtual research communities

T4: User support and training

Deliverables

Technical documentations

How to run the DisVis and PowerFit docker images on the enmr.eu VO (updated 14th of July 2016)

$ voms-proxy-init --voms enmr.eu 
$ glite-ce-job-submit -o jobid.txt -a -r cegpu.cerm.unifi.it:8443/cream-pbs-batch disvis.jdl

where disvis.jdl is: 

[
executable = "disvis.sh";
inputSandbox = { "disvis.sh" ,"O14250.pdb" , "Q9UT97.pdb" , "restraints.dat" };
stdoutput = "disvis.out";
outputsandboxbasedesturi = "gsiftp://localhost";
stderror = "disvis.err";
outputsandbox = { "disvis.out" , "disvis.err" , "res-gpu.tgz"};
GPUNumber=1;
]

and disvis.sh is (assuming docker engine is installed on the grid WNs):

#!/bin/sh
driver=$(nvidia-smi | awk '/Driver Version/ {print $6}')
echo hostname=$(hostname) 
echo user=$(id) 
export WDIR=`pwd` 
mkdir res-gpu
echo docker run disvis... 
echo starttime=$(date)
rnd=$RANDOM 
docker run --name=disvis-$rnd --device=/dev/nvidia0:/dev/nvidia0 --device=/dev/nvidia1:/dev/nvidia1 \
           --device=/dev/nvidiactl:/dev/nvidiactl --device=/dev/nvidia-uvm:/dev/nvidia-uvm \
           -v $WDIR:/home indigodatacloudapps/disvis:nvdrv_$driver /bin/sh \
           -c 'disvis /home/O14250.pdb /home/Q9UT97.pdb /home/restraints.dat -g -a 5.27 -vs 1 -d /home/res-gpu; \
               nvidia-smi --query-accounted-apps=timestamp,pid,gpu_serial,gpu_name,gpu_utilization,time --format=csv' 
docker rm disvis-$rnd
echo endtime=$(date) 
tar cfz res-gpu.tgz res-gpu

How to run the DisVis and PowerFit docker images on the enmr.eu VO (updated 19th of September 2016)

If docker engine is not available on the grid WNs, you can use the INDIGO-DataCloud "udocker" tool. This has the advantage that docker containers are run in the user space, so the grid user does not obtain root privileges in the WN, avoiding this way any security concern. The disvis.sh file in this case is as below:

#!/bin/sh
driver=$(nvidia-smi | awk '/Driver Version/ {print $6}')
echo hostname=$(hostname)
echo user=$(id)
export WDIR=`pwd`
echo udocker run disvis...
echo starttime=$(date)
git clone https://github.com/indigo-dc/udocker
cd udocker
./udocker.py pull indigodatacloudapps/disvis:nvdrv_$driver
echo time after pull = $(date)
rnd=$RANDOM
./udocker.py create --name=disvis-$rnd indigodatacloudapps/disvis:nvdrv_$driver
echo time after udocker create = $(date)
mkdir $WDIR/out
./udocker.py run --hostenv --volume=$WDIR:/home disvis-$rnd disvis /home/O14250.pdb /home/Q9UT97.pdb /home/restraints.dat -g -a 5.27 -vs 1 -d /home/out
nvidia-smi --query-accounted-apps=timestamp,pid,gpu_serial,gpu_name,gpu_utilization,time --format=csv
echo time after udocker run = $(date)
./udocker.py rm disvis-$rnd
./udocker.py rmi indigodatacloudapps/disvis:nvdrv_$driver
cd $WDIR
tar zcvf res-gpu.tgz out/
echo endtime=$(date)

The example input files specified in the jdl script above were taken from the GitHub repo for disvis available from: https://github.com/haddocking/disvis

The performance on the GPGPU grid resources is what is expected for the card type.

The timings were compared to an in-house GPU node at Utrecht University (GTX680 card), but can differ with the last update of the DisVis code:

GPGPU-type Timing[minutes]
GTX680     19
M2090 (VM) 15.5
1xK20 (VM) 13.5
2xK20      11
1xK20      11

This indicates that DisVis, as expected, is currently incapable of using both the available GPGPUs. However, we plan to use this testbed to parallelize it on mulitple GPUs, which should be relatively straightforward. Values marked with (VM) refers to GPGPUs hosted in the FedCloud (see next section).

For running PowerFit just replace disvis.jdl with a powerfit.jdl like e.g.: 

[
executable = "powerfit.sh";
inputSandbox = { "powerfit.sh" ,"1046.map" , "GroES_1gru.pdb" };
stdoutput = "powerfit.out";
outputsandboxbasedesturi = "gsiftp://localhost";
stderror = "powerfit.err";
outputsandbox = { "powerfit.out" , "powerfit.err" , "res-gpu.tgz"};
GPUNumber=1;
]

with powerfit.sh as here and input data taken from here (courtesy of Mario David)

How to run the DisVis and PowerFit on VMs of the Federated Cloud using the enmr.eu VO (updated 14th of July 2016)

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Print/export