- General Description and functionnalities
- Documentations
- Spécifications techniques
- Développement des nouvelles analyses
- Installation
- Tests de non régression
- Stats d'utilisations de QTLMap sur les serveurs du CTIG
- QTLMap au CTIG
General Description and functionnalities¶
Authors : P. Le Roy, INRA, JM. Elsen, INRA, H. Gilbert, INRA, C. Moreno, INRA, A. Legarra, INRA, O. Filangi, INRA
Background¶
QTLmap is a linkage analysis software dedicated to the analysis of outbred population in an experimental design. This software is developed at INRA (french National Institute for Agronomical Research) to map following linkage analyses approaches in various experimental populations. Specific models were implemented to take maximum advantage of large data sets now available for QTL detection and get fine locus descriptions (indications of pleiotropy, of linked loci…)to facilitate further explorations. In QTLMAP, the basis of the QTL detection technique is an interval mapping applied to half-sib families or a mixture of full- and half-sib families where the exact computation of phase probability is undertaken from a 2 or 3 generation pedigree. The test statistics are computed either using exact calculation of likelihood ratios or using partial linear approximations of the likelihood or complete regression on marker genotypes.
Various genetic models will be proposed depending on 1) the QTL allele segregation (biallelic in crosses between monomorphic breeds, biallelic without hypothesis on the origin, multiallelic, haplotype identity), 2) the number of QTL segregating (one, two linked, several unlinked), 3) the number of traits under the QTL influence. The trait determinism is envisaged depending on 1) the trait distribution (gaussian trait, survival trait or threshold distribution), 2) the interactions between the QTL and fixed effects or other loci, 3) the residual variance structure (homo- or heteroskedasticity for half-sib families). Due to differences with the asymptotical conditions from the chi2 theory, the test statistic significance are evaluated either through numerical approximations, or through empirical calculations obtained from permutations or simulations under the null hypothesis.
Finally, the software will be released in coordination with procedures for data verification to facilitate genotyping validations and trait evaluations of data sets.
Available Functionnalities¶
Up to now, the following functionnalities have been implemented :- QTL detection in half-sib families or mixture of full- and half-sib families
- One or two linked QTL segregating in the population
- Single trait or multiple trait analyses
- Nuisance parameters (e.g. sex, batch, weight...) and their interactions with QTL can be included in the analysis
- Gaussian, discrete or survival (Cox model) data
- Familial heterogeneity of variances (heteroscedasticity)
- Can handle eQTL analyses
- Computation of transmission and phase probabilities adapted to high throughput genotyping (SNP)
- Empirical thresholds are estimated using simulations under the null hypothesis or permutations of trait values
- Computation of power and accuracy of your design or any simulated design
References¶
- Knott SA, Elsen JM, Haley CS, 1996. Methods for multiple marker mapping of quantitative trait loci in half-sib populations. Theor. Appl. Genet. : 93 : 71-80.
- Elsen JM, Mangin B, Goffinet B, Boichard D, Le Roy P, 1999. Alternative models for QTL detection in livestock. I. General introduction. Genet. Sel. Evol., 31, 213-224
- Mangin B, Goffinet B, Le Roy P, Boichard D, Elsen JM, 1999. Alternative models for QTL detection in livestock. II. Likelihood approximations and sire marker genotype estimations. Genet. Sel. Evol., 31, 225-237.
- Goffinet B, Le Roy P, Boichard D, Elsen JM, Mangin B, 1999. Alternative models for QTL detection in livestock. III. Heteroskedastic model and models corresponding to several distributions of the QTL effect.. Genet. Sel. Evol., 31, 341-350.
- Moreno C.R., Elsen J.M., Le Roy P., Ducrocq V., 2005. Interval mapping methods for detecting QTL affecting survival and time–to–event phenotypes. Genet. Res. Camb., 85 : 139-149.
- Gilbert H, Le Roy P., 2007. Methods for the detection of multiple linked QTL applied to a mixture of full and half sib families. Genet Sel Evol., 39(2):139-58.
- Gilbert H., Le Roy P., Moreno C., Robelin D., Elsen J. M., 2008. QTLMAP, a software for QTL detection in outbred population. Annals of Human Genetics, 72(5): 694.
- Filangi.O , Moreno C. , Gilbert H. , Legarra A. , Le Roy P. , Elsen JM. QTLMap, a software for QTL detection in outbred populations. 9th World Congress on Genetics Applied to Livestock Production, Leipzig. 2010.
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"