DOCK6

De MaGridWiki
Aller à : Navigation, rechercher

N.B :

  • Ce tutoriel explique un exemple d’exécution de l'application DOCK sur la grille de calcul.
  • Ce tutoriel est adapté principalement à la VO nationale : magrid
  • L'utilisateur est supposé connecté à l'interface utilisateur (ex: ui2.cnrst.magrid.ma), authentifié (certificat valide) et autorisé (vo magrid).


Sommaire

Description du DOCK

DOCK aborde le problème de "docking" des molécules les unes aux autres. En général, le "docking" est l'identification des modes de faible énergie de liaison d'une petite molécule, ou ligand, au sein du site actif d'une macromolécule, ou récepteur, dont la structure est connue. Un composé qui interagit fortement avec, ou qui se lie à un récepteur associé à une maladie peut inhiber sa fonction et donc agir comme une drogue. Résoudre le problème numériquement nécessite une représentation précise de l'énergétique moléculaire ainsi qu'un algorithme efficace de rechercher les modes de liaisons potentiels.

Deux versions du DOCK sont activement développées DOCK6 et DOCK3.

Ce tutoriel concerne DOCK6.

Descriptions des inputs/outputs

L'exemple qu'on va étudier s'appelle : ligand_sampling_demo. C'est un exemple qui provient avec les tutoriels de DOCK6.

Veuillez se référer au différent fichiers READMEs dans l'exemple.

La structure du dossier est la suivante :

[elkharrim@ui2 ligand_sampling_demo]$ tree . |-- 0README |-- 1_struct | |-- 0README | |-- 1ABE.pdb | |-- lig_charged.mol2 | |-- rec_charged.mol2 | `-- rec_noH.pdb |-- 2_site | |-- 0README | |-- INSPH | |-- rec.ms | |-- script_clean | |-- script_demo | |-- selected_spheres.in | `-- sphgen_cluster.in |-- 3_grid | |-- 0README | |-- box.in | |-- grid.in | |-- rec_box.pdb | |-- script_clean | `-- script_demo |-- 4_dock | |-- 0README | |-- anchor_and_grow.in | |-- rigid.in | |-- script_clean | `-- script_demo |-- script_clean `-- script_demo


Le script script_demo est le fichier d’exécution de l'exemple qui appelle successivement les autres scripts script_demo contenus dans les dossiers 2_site, 3_grid et 4_dock. Le dernier dossier fait appelle l’exécutable de DOCK.

Voici le contenu du script principal i.e. script_demo se trouvant sur la racine de l'exemple:

Fichier: script_demo
#!/bin/sh
 
echo "Generating files that characterize active site"
cd 2_site
./script_demo
cd ..
 
echo "Generating files that contain grid energies"
cd 3_grid
./script_demo
cd ..
 
echo "Performing DOCK run"
cd 4_dock
./script_demo
cd ..


Pour soumettre ce job sur la grille on va écrire un job dont les inputs sera le dossier de l'exemple archivé i.e ligand_sampling_demo.tar.gz.

N.B : Il va falloir remplacer toutes les occurrences des chaines ../../../parameters et ../../../bin qui se trouvent dans certains fichiers de l'exemple par $DOCKROOT/parameters et $DOCKROOT/bin respectivement. $DOCKROOT étant l’emplacement de la racine DOCK. Ceci sera fait par le script exécutable accompagnant le JDL.


  • Inputs: ligand_sampling_demo.tar.gz qui est le fichier contenant le dossier de l'exemple compressé et le fichier exécutable dock6.sh qui fera le traitement nécessaire pour lancer l’exécution de DOCK avec un argument en entrée ligand_sampling_demo


  • Outputs: output_ligand_sampling_demo.tar.gz qui est le dossier compressé contenant les résultats.


Récupérer le tag de DOCK sur le VO magrid

On fait appel au système d'information [1].

[elkharrim@ui2 dock6]$ lcg-infosites --vo magrid tag


Le fichier du job: dock6.jdl

Fichier: dock6.jdl
Executable = "dock6.sh";
Arguments = "ligand_sampling_demo";
InputSandbox = {"dock6.sh","ligand_sampling_demo.tar.gz"};
StdOutput = "std.out";
StdError  = "std.err";
OutputSandbox = {"std.out","std.err","output_ligand_sampling_demo.tar.gz"};
Requirements = Member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
            && Member("MPICH2", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Requirements = Member("VO-magrid-dock_v6.4",other.GlueHostApplicationSoftwareRunTimeEnvironment);

Le fichier exécutable: dock6.sh

Fichier: dock6.sh
#!/bin/bash
#load env variables
source $VO_MAGRID_SW_DIR/setenv_dock_v6.5.sh
 
#processing
tar -xzf $1.tar.gz
cd $1
find $PWD -type f -name "script_*" -exec chmod +x {} \;
for tmp in `find $PWD -type f`; 
do 
 sed -i 's@'../../../parameters'@'$DOCKROOT/parameters'@g' $tmp; 
 sed -i 's@'../../../bin'@'$DOCKROOT/bin'@g' $tmp; 
done
./script_demo
cd ..
mv $1 output_$1
tar -czf output_$1.tar.gz output_$1/

Ce fichier exécute d'abord le fichier setenv_dock_v6.5.sh qui charge l’environnement d’exécution de DOCK, décompresse l'exemple, remplace les occurrences de ../../../parameters et ../../../bin et enfin lance le script script_demo.

Soumettre le job

[2]

Récupérer les résultats du job

[3]


Job avec persual

Il est également possible de visualiser les fichiers de sortie durant l’exécution du job en utilisant la propriété: Persual.

Dans le fichier JDL ajouter les lignes:

Fichier: dock6.sh
# permettre à l'utilisateur de voir les fichier output durant l’exécution job
PerusalFileEnable = true;
# Le téléchargement du fichier output change chaque 1000 secs. C'est l'intervalle minimum toléré.
PerusalTimeInterval = 1000;

Ayant ajouté ces deux lignes, une fois le job est en état de Running, nous pouvons demander au WMS de commencer

à récupérer le fichier de sortie en exécutant la commande suivante:

[elkharrim@ui2 dock6]$ glite-wms-job-perusal --set -i jobId001 -f test.out Reading the jobId from the input file: /home/elkharrim/test/dock6/jobId001 Connecting to the service https://wms.magrid.ma:7443/glite_wms_wmproxy_server ====================== glite-wms-job-perusal Success ====================== File perusal has been successfully enabled for the job: https://wms.magrid.ma:9000/5DmTqEshznPSQflOHr-qTw ==========================================================================

Ensuite, nous pouvons émettre la commande --get pour obtenir la première copie complète (avec --all) du fichier.

[elkharrim@ui2 dock6]$ glite-wms-job-perusal --get -i jobId001 -f test.out --all --dir . Reading the jobId from the input file: /home/elkharrim/test/dock6/jobId001 Connecting to the service https://wms.magrid.ma:7443/glite_wms_wmproxy_server ====================== glite-wms-job-perusal Success ====================== The retrieved files have been successfully stored in: /home/elkharrim/test/dock6 ========================================================================== -------------------------------------------------------------------------- file 1/1: test.out-20111026021521_1-20111026021521_1


Pour actualiser le fichier téléchargé omettre le -all:

[elkharrim@ui2 dock6]$ glite-wms-job-perusal --get -i jobId001 -f test.out --dir .

Si vous obtenez : "No files to be retrieved for the job:" ceci veut dire que le fichier n'a pas été mis à jour lors de la dernière exécution de --get.

Quand c'est fait, exécuter la commande de nettoyage:

[elkharrim@ui2 dock6]$ glite-wms-job-perusal --unset -i jobId001


Jobs de longue durée

Si la durée d’exécution dépasse 12h alors il faut créer un proxy de renouvellement et ajouter dans le fichier JDL:

MyProxyServer = "myproxy.magrid.ma";

Exécuter la commande:

[elkharrim@ui2 dock6]$ voms-proxy-init --voms magrid -valid

et

[elkharrim@ui2 dock6]$ myproxy-init -d -n -s myproxy.magrid.ma


Après soumettre normalement le job.

Plus de détails sur [4].

Job MPI

Pour exécuter DOCK en mode MPI il faut un fichier jdl et une exécutable modifiés, soient dock6-mpi.jdl et dock6-mpi.sh respectivement.

Fichier: dock6-mpi.jdl
Executable = "dock6-mpi.sh";
Arguments = "mpi_demo";
CpuNumber = 4;
InputSandbox = {"dock6-mpi.sh","mpi_demo.tar.gz"};
StdOutput = "std.out";
StdError  = "std.err";
OutputSandbox = {"std.out","std.err","output_mpi_demo.tar.gz"};
Requirements = Member("MPI-START", other.GlueHostApplicationSoftwareRunTimeEnvironment)
            && Member("MPICH2", other.GlueHostApplicationSoftwareRunTimeEnvironment);
Requirements = Member("VO-magrid-dock_v6.4",other.GlueHostApplicationSoftwareRunTimeEnvironment);
Fichier: dock6-mpi.sh
#!/bin/bash
#load env variables and set the MPI settings
source $VO_MAGRID_SW_DIR/setenv_dock_v6.5.sh
 
#processing dock model
tar -xzf $1.tar.gz
cd $1
find $PWD -type f -name "script_*" -exec chmod +x {} \;
for tmp in `find $PWD -type f`; 
do sed -i 's@'../../../parameters'@'$DOCKROOT/parameters'@g' $tmp; 
sed -i 's@'../../../bin'@'$DOCKROOT/bin'@g' $tmp; 
done
./script_demo
time -p $RUNMPI
cd ..
mv $1 output_$1
tar  -czf output_$1.tar.gz output_$1/
Navigation
Administrateur
Utilisateur
Applications
Autorité de Certification