Documentations

- Utilisation de QTLMap (pas à jours => voir plutot le .docx)

Spécifications techniques

- Types structurés et description des structures - Version 0.9.6

Développement des nouvelles analyses

- Modèle biallélic/farnir
- epistasie - modele pere avec un effet d interaction
- Modèle Animal

Installation

Dépendances

  • GCC 4.8.2
  • CMake 2.8.2
  • Lapack ou MKL (selon la compilation Intel ou GCC)
  • CUDA 5.5

Recupération des versions QTLMap

(depuis la version initiale packagée par D.Robelin)

Des versions figées sont disponibles dans le dépot SVN :

Pour récuperer la liste des versions de QTLMap

svn list https://forge-dga.jouy.inra.fr/svn/qtlmap/tags

0.2.0/
0.3.0/
0.4.0/
0.7.0/
0.8.4/
0.8.5/
0.8.9/
0.9.0/
0.9.1/
0.9.3/
0.9.4/
0.9.5/
0.9.6/
0.9.6b/
0.9.7/
0.9.7b/
0.9.7c/

Pour sortir une version (0.9.7c dans l'exemple)

svn export https://forge-dga.jouy.inra.fr/svn/qtlmap/tags/0.9.7c qtlmap

Récupération de la version de développement

Il faut sortir la version en cours de développement. Celle ci sera sous gestion des sources (en cohérence avec le dépot) pour pouvoir faire des commit (inserer les modifcations dans le dépot) et des updates (mettre à jours ses sources locales)

svn co https://forge-dga.jouy.inra.fr/svn/qtlmap/trunk qtlmap

Information sur CMake et les scripts CMakeLists.txt de QTLMap

Description des fichiers CMakeLists.txt

Compilation la suite GCC

le script env-gcc-4.8.2.sh et le chemin /bao/dev/lib/lapack/3.5.0 sont specifiques à l'environnement CTIG

en mode release:

source /bao/dev/env/env-gcc-4.8.2.sh
mkdir -p build/gcc;cd build/gcc
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DLAPACK_PATH=/bao/dev/lib/lapack/3.5.0 ../..
make -j 4

en mode debug :

source /bao/dev/env/env-gcc-4.8.2.sh
mkdir -p build/gcc;cd build/gcc
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DLAPACK_PATH=/bao/dev/lib/lapack/3.5.0 ../..
make -j 4

avant d'executer qtlmap (dans un autre shell par exemple) il faudra faire source /bao/dev/env/env-gcc-4.8.2.sh systématiquement pour recharger l'environnement dans lequel qtlmap a été compilé.

Compilation ifort 14

le script env-ifort-2013-1.106.sh est specifique à l'infrastructure du CTIG

source /bao/dev/env/env-ifort-2013-1.106.sh
mkdir -p build/ifort;cd build/ifort
cmake -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc ../..
make -j 4

avant d'executer qtlmap (dans un autre shell par exemple) il faudra faire source /bao/dev/env/env-ifort-2013-1.106.sh systématiquement pour recharger l'environnement dans lequel qtlmap a été compilé.

Compilation avec CUDA (Utilisation des GPU)

Il faut dans un premier temps récuperer le kit de développement pour CUDA (sdk cuda) https://developer.nvidia.com/cuda-downloads et l'installer sur la machine ou le GPU est disponible.
Par défaut CUDA est installé dans /usr/local. Il faudra changer les chemin dans les descriptions qui suivent si vous changez le chemin d'installation.

Il ne faut pas oublier de charger l'environnement GCC (la compilation Intel/Cuda n'a jamais été testé).


export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
mkdir -p build/release-cuda
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran -DGENCODE_CUDA="arch=compute_20,code=sm_20" -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda -DCUDA_IMPL=true ../..

Tests de non régression

Depuis 2 ans, QTLMap est soumis à des tests de non régréssion. Ces tests peuvent être automatisés en utilisant Jenkins jenkins-ci.org(Execution d'un test lorsqu'il y a un commit dans le depot SVN).

Pour lancer les tests :
  • mettre dans la variable d'environnement PATH l'executable qtlmap à tester( ex: export PATH=/home/moi/qtlmap-dev/build/debug/src/:$PATH)
  • il faut se placer à la racine de QTLMap et executer le script :
    ./check
    

L'execution du script dure quelques minutes si celui-ci s'execute entierement. Si une erreur (anormale) intervient, le script s arrete en rendant compte de l'erreur.

Stats d'utilisations de QTLMap sur les serveurs du CTIG

Pour générer des stats d'utilisation il faut demander au CTIG d'intégrer le groupe baoadm

Lorsque qtlmap est executé au CTIG (dga12,dga11) des informations sont enregistrées dans le fichier /bao/qtlmap/log/qtlmap_log

Des rapports d'utilisation de QTLMap sont régulièrement générés pour obtenir des informations sur les besoins en ressources de l'outil (calcul, mémoire)
Ces rapports se trouvent dans le répertoire @/bao/qtlmap/log/*

Pour généré un nouveau rapport

cd /bao/qtlmap/log
./analyse_log.sh qtlmap_log > `date +%d%m%y`_RAPPORT.txt

Informations générées (depuis 26 Mars 2013) :

  • quantiles des temps d'execution en seconde
  • quantiles du nombre threads utilisé
  • nombre de jobs executés avec 1,2,4,8 ou 12 threads
  • nombre de jobs executés par version de qtlmap (depuis la 0.9.3)
  • nombre de jobs lancé par utilisateurs
  • nombre de jobs lancé sur DGA12
  • nombre de jobs lancé sur DGA11

QTLMap au CTIG

Pour installer une version de qtlmap dans /bao il faut demander au CTIG à etre intégrer au groupe baoadm

Les versions de qtlmap sont installé dans /bao/qtlmap. Pour plus de sécurité nous gardons une ancienne version en production et la version courante.

en Juin 2014, le ls du repertoire

0.9.7b  0.9.7c  log  qtlmap.sh  utils

  • le répertoire utils n'est plus utilisé (l'ensemble des librairies utilisées pour qtlmap se trouve dans /bao/dev/env)
  • le scrtip qtlmap.sh est un "wrapper" pour l'execution de qtlmap. Les utilisateurs qui lancent qtlmap dans un shell executent en fait ce script
[ofilangi@dga11 ~]$ which qtlmap
/usr/bin/qtlmap
[ofilangi@dga11 ~]$ ll /usr/bin/qtlmap
lrwxrwxrwx 1 root root 21 Jun 18  2012 /usr/bin/qtlmap -> /bao/bin/dga11/qtlmap
[ofilangi@dga11 ~]$ ll /bao/bin/dga11/qtlmap
lrwxrwxrwx 1 root baoadm 15 Sep 13  2012 /bao/bin/dga11/qtlmap -> ../dga12/qtlmap
[ofilangi@dga11 ~]$ ll /bao/bin/dga12/qtlmap
lrwxrwxrwx 1 root baoadm 22 Sep 13  2012 /bao/bin/dga12/qtlmap -> ../../qtlmap/qtlmap.sh
[ofilangi@dga11 ~]$ 
Ce script permet :
  • de modifier rapidement la version de qtlmap a executer
  • d'écrire les informations pour les stats d'utilisation dans /bao/qtlmap/log/qtlmap_log
  • de fixer par défaut le nombre de threads à 1

installation d'une version

Il faut recuperer une version du depot SVN et compiler cette version (dans l'exemple 0.9.6)

cd /bao/qtlmap
svn export https://forge-dga.jouy.inra.fr/svn/qtlmap/tags/0.9.6
cd 0.9.6/
mkdir -p build/release
cd build/release/
source /bao/dev/env/env-gcc-4.8.2.sh
cmake -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DLAPACK_PATH=/bao/dev/lib/lapack/3.5.0 ../..
make -j 4
make install

l'exécutable se trouve ici /bao/qtlmap/0.9.6/bin/qtlmap

Dans le script /bao/qtlmap/qtlmap.sh, il faut changer la version de qtlmap à executer en modifiant la variable d environnement VERSION

VERSION="0.9.6"