[Debian Wiki] Update of "BOINC/ServerGuide/AutoDockApp" by SteffenMoeller

Debian Wiki debian-www at lists.debian.org
Sun Aug 14 22:00:28 UTC 2011


Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Debian Wiki" for change notification.

The "BOINC/ServerGuide/AutoDockApp" page has been changed by SteffenMoeller:
http://wiki.debian.org/BOINC/ServerGuide/AutoDockApp?action=diff&rev1=7&rev2=8

Comment:
First review.

  #language en
  #pragma section-numbers 1
- #pragma keywords BOINC, Grid Computing, Volunteer Computing, Open Source, Debian
+ #pragma keywords BOINC, AutoDock, Debian, virtual screening, molecular docking
- #pragma description Tutorial for preparing a example docking app for a BOINC project using autodock.
+ #pragma description Tutorial for preparing a example docking app for a BOINC project using AutoDock.
- 
- '' THESE PAGES ARE STILL UNDER DEVELOPMENT ''
  
  '''The scripts and files mentioned in this document can be obtained from [[DebianMed]] BOINC scripts git repository, available [[http://anonscm.debian.org/gitweb/?p=pkg-boinc/scripts.git|here]]''' ( server-examples subsection)
  
  = BOINCed variant of the tutorial for running AutoDock on Debian and Ubuntu =
  
  We took a nice publicly available walk through for AutoDock and the MGLTools and modified that. There original is [[http://users.ox.ac.uk/~jesu1458/docker/|here]] which you may decide to walk through to increase your familiarity with the technology (biochemist or not). As you will see, that script was split in three sections. The first and last are left almost untouched. The middle one, i.e. the invocation of the tool, this is now modified for BOINC.
- 
  
  The idea is to provide help for a smaller group of researchers to obtain computing resources from the masses. Also it will help to bridge some amount of gap that exists between general public and the research group.
  
@@ -34, +31 @@

  
  The application is designed using the [[BOINC/ServerGuide/WrapperApp]] framework. The static binary of autodock is used in the app.
  
- Here, we present the steps to create such an application with ''boinc-server-maker'' and ''boinc-app-examples'' packages provided by debian. The steps illustrated should with some minor changes (Though difficult and lengthy) should work for a generic BOINC system.
+ Here, we present the steps to create such an application with ''boinc-server-maker'' and ''boinc-app-examples'' packages provided by Debian. The steps illustrated should work with any regular installtion of a BOINC server.
  
- The illustration assumes that reader have a working BOINC project in hand, the process required to make one is described at [[BOINC/ServerGuide]].
+ The following illustration assumes that reader have a working BOINC server project readily installed at his fingertips. How to get there is described at [[BOINC/ServerGuide]].
   
  === Prepare the Biology ===
  
@@ -70, +67 @@

  }}}
  
  {{{
- cat << EOFPRE >> dock-pre.sh
+ cat << EOFPRE > dock-pre.sh
  #!/bin/bash
  
  set -e
@@ -90, +87 @@

  autogrid4 -p $RECEPTOR.gpf -l $RECEPTOR.glg
  
  echo "Done."
- 
  
  if [ -z "$LIGANDS" ]; then
      LIGANDS=ligands
@@ -126, +122 @@

  	if [ -r $(echo $f|sed -e 's/.mol2$/.pdbqt/') ]; then continue; fi
  	python $pythonPath/AutoDockTools/Utilities24/prepare_ligand4.py -l $f
  done
- 
  
  if [ ! -r "$RECEPTOR.pdbqt" ]; then
  	echo "Linking ../$RECEPTOR.pdbqt to local directory"
@@ -150, +145 @@

  	    -p ga_num_evals=1000000 \
  	    -p ga_pop_size=100 \
  	    -p ga_run=30
- 
  done
- 
  
  echo "Done."
  echo "Find the ligand files in the $origDir/ligands subdirectory."
@@ -207, +200 @@

  
  === App Deployment ===
  
- As the autodock binary is non native to BOINC, we use a WrapperApp to bridge them. The Wrapper is responsible for invocation, running, and reporting of the actual task.Deployment of a generic wrapper is described at [[BOINC/ServerGuide/WrapperApp]]. 
+ As the autodock binary is non native to BOINC, i.e. it does not know how to open files that BOINC provides at a central place or how to return results in a way that the BOINC client would understand it. We use a wrapper, as explained [[WrapperApp|here]] to help bridging BOINC with AutoDock. The wrapper is responsible for invocation, running, and reporting of the actual task. The deployment of a generic wrapper is described at [[BOINC/ServerGuide/WrapperApp]]. 
  
- ==== Autodock ====
+ ==== AutoDock ====
+ 
+ One can retrieve dynamically linked binaries of autodock again with the fetch-script that we have used before to retrieve the wrapper. It is however technically favorable to have static binaries. This way, one is less dependent on the version of the libc run at different sites. But those must be compiled manually for all platforms that shall not run in a virtualised environment. For the static version do {{{
- Static binary of the autodock is used. 
-  * The pre-built binaries for i686 and amd64 can be found [[http://anonscm.debian.org/gitweb/?p=pkg-boinc/scripts.git;a=tree;f=server-examples/autodock/boinc-app/static_binaries;hb=HEAD|here]]
-  * Or you can build one easily.
- {{{
     apt-get source autodocktools
     cd autodocktools-*/autodock
     ./configure LDFLAGS=-static && make
@@ -221, +212 @@

  
  ==== Wrapper ====
  
- The job description file is used to pass information on the work to the wrapper, it contains details about the binary to call, the arguments to apps, the outputs etc etc.
+ The job description file is used to pass information on the work to the wrapper, it contains details about the binary to call, the arguments to apps, the outputs etc.
  
  AutoDockApp preforms docking, the corresponding command from docker.sh which the wrapper should be calling 
  {{{
  autodock4 -p ligand_receptor.dpf -l result.dlg
  }}}
  
- Job description file is named job.xml, and it should be present in the app directory for wrapper to find and parse. 
+ The wrapper's job description file is named job.xml. It should be located in the app directory for wrapper to find and parse. 
- 
  {{{
  cat <<EOFJOB > job.xml 
  <job_desc>
@@ -241, +231 @@

  EOFJOB
  }}}
  
- Summarizing, AutoDockApp needs following files, Stage and sighn them them inside the $projectroot/apps directory.
+ Summarizing, AutoDockApp needs following files, Stage and sign them them inside the $projectroot/apps directory.
  {{{
  apps
  |      
@@ -265, +255 @@

  |-- receptor.SA.map
  |-- ZINC00034176.pdbqt
  `-- ZINC00034176_receptor.dpf
- 
  }}}
+ Also sign the binaries:
  {{{
- # Sign the bianries.
- 
  for f in apps/wrapper/*/; do
      name = $(basename $f)
      /path/to/sigh_executable $f /path/to/code_sign_private >> $name.sig
  done
  }}}
  
- Add app definition to project.xml, update the database with new application included, add start the project.
+ Then add the information on applications to the project.xml file, update the database with new application included, add start the project.
  {{{
  bin/xadd && bin/update_versions
  bin/start
@@ -284, +272 @@

  
  === Work Generation ===
  
- The BOINC app should be fed with the work to perform, or in BOINC terminology a workunit. The workunit consists of input files and work and result definitions. Thease defnitions are specified in a xml document called template. Theres separate template for workunit or the input and result or output. Even though the design of docking permits multiple ligands in a single workunit, Here we restrict each workunit to contain only one ligand to reduce complexity and also considering low end clients.
+ The BOINC app should be fed with the work to perform, or in BOINC terminology a workunit. The workunit consists of input files and work and result definitions. These definitions are specified in an XML document called template. There are separate templates for the workunit (input) and the result (output). Even though the design of docking permits multiple ligands in a single workunit, Here we restrict each workunit to contain only one ligand. This reduces the complexity and also allows for considering less performant clients.
  
  ==== Workunit Templates ====
+ 
  The workunit has to define the input files, which is specified in workunit template, 
  {{{
  cat <<EOFTEMP >> wu_template.xml 
@@ -439, +428 @@

  EOFTEMP   
  }}}
  
+ Please adjust that workunit template for your project. The majority of those files will be available after the invocation of autogrid.
+ 
- ''<sticky/>'' attribute specifies that the files are same among all workunits, so some bandwidth can be saved. 
+ The ''<sticky/>'' attribute specifies that the files are same among all workunits, so some bandwidth can be saved. 
  
- Result is obtained as a dlg file, which should be transported back.
+ The result is obtained as a dlg file, which should be transported back.
  
  {{{
- cat <<EOFTEMP >> reusult_template.xml
+ cat <<EOFTEMP >> result_template.xml
  <file_info>
    <name><OUTFILE_0/></name>
    <generated_locally/>
@@ -465, +456 @@

  
  ==== dock-genwu.sh ====
  
- The scripts used to generate work, assumed to run inside the same directory as ''dock-pre.sh'', BOINC project variables should be edited to suite your setup.
+ The scripts used to generate work are assumed to be run inside the same directory as ''dock-pre.sh'', The  BOINC project variables should be edited to suite your setup.
  
  {{{
- cat <<EOFGEN >> dock-genwu.sh
+ cat <<EOFGEN > dock-genwu.sh
  #!/bin/bash
  set -e
  



More information about the pkg-boinc-commits mailing list