Wiki SparseMethods4Snp

Developpement

Récuperer une version du dépot SVN

svn co https://forge-dga.jouy.inra.fr/svn/pls SparseMethod4PlsDev

ou sans contrôle SVN :

svn export https://forge-dga.jouy.inra.fr/svn/pls SparseMethod4PlsDev

Spécifications

Spécifications de l'implementation

Generation de l'environnement de compilation

aclocal
autoconf
automake -a -c

Generer les Makefiles

mkdir release
cd release
../configure --prefix=<path-to-install>

Generer les Makefiles environnement CTIG

mkdir release
cd release
export LDFLAGS=-L/bao/dev/lib/lapack/3.5.0/lib/
source /bao/dev/env/env-gcc-4.8.2.sh
../configure --prefix=<path-to-install>

en mode debug (dans le cadre d'un développement)

mkdir debug
cd debug
../configure --prefix=<path-to-install> --enable-debug

Obtenir une version simple précision

mkdir release32
cd release32
../configure --prefix=<path-to-install> --disable-double

L'option prefix est utilisé pour l'installation du logiciel sur la machine (make install).Il n'est pas obligatoire pour dans le cadre d'un développement.

Compilation

make

Les exécutables sont dans le répertoire ./src.

Installation dans le répertoire contenu dans l'option --prefix

make install

Creer une distribution

make dist

Execution des tests de non régression

un script ./check.sh exécute un ensemble de tests se situant dans le répertoire testdev.

Le script s'arrete avec une erreur si le comportement est inattendu

Pour executer les tests, il faut initialiser le PATH avec les executables prealablement compilé

exemple :

export PATH=<repertoire-dev>/SparseMethod4PlsDev/release/src/:$PATH
./check.sh

Utilisation sur l'exemple fourni

QTLMAS 2011 DATASET

Ce jeux de données a été généré avec logiciel LDSO (Ytournel, F. (2008). Linkage disequilibrium and QTL fine mapping in a selected
population. PhD thesis, Station de Génétique Quantitative et Appliquée, INRA.) pour le workshop QTLMAS 2011(Rennes).

  • Une population "outbreed" est simulée sur 1000 générations de 1000 individus suivies de 30 générations de 150 individus.
  • 9990 marqueurs SNP sont distribués sur cinq chromosomes.
  • Chaque chromosome a une longueur de 1 Morgan et porte 1998 marqueurs uniformément distribués (1 SNP tous les 0.05 cM).

Les données correspondent à la dernière génération de ce pédigré, à savoir, 3000 individus issues de 20 pères accouplés à 10 dames chacun.

Ce jeux de donnée et les résultats (position des QTL, True Breeding Value) sont librement téléchargeables sur le site du workshop et
accessible depuis ce répertoire.

https://colloque4.inra.fr/qtlmas

  • typage_ap : Le fichier de génotype de la population de référence (1500 individus) au format AIPL.
  • typage_val : Le fichier de génotype de la population de validation (500 individus) au format AIPL.
  • pheno_ap.txt : Le fichier de performance de la population de référence.
  • pheno_val.txt : Le fichier de performance de la population de validation.
  • typage_pred : Le fichier de génotype des animaux à prédire (1000 individus).
  • tbv.txt : Les prédictions QTLMas 2011.

Utilisation de la commande pls4snp

Construction des variables latentes avec la PLS et la population de reference

pls4snp --geno typage_ap --format-geno aipl --pheno pheno_ap.txt --pls --ncomp 20

Validation avec la population de validation

pls4snp --geno typage_val --format-geno aipl --pheno pheno_val.txt --valid --binary pls.bin

Generation des VIP avec le H optimal

pls4snp --vip --binary pls.bin --H 7 --out vip.txt

Generation des predictions du fichier typage_pred

pls4snp --geno typage_pred --format-geno aipl --predict --binary pls.bin --H 7 --out bv.txt

Exemple Fortran

gfortran -o exe pls.f90 -L<path-pls4snp>/lib -L<path-lib-lapack> -lpls4snp -lstdc++ -llapack

Si la compilation se fait dans le répertoire d installation :

gfortran -o exe pls.f90 -L../../../../lib -lpls4snp -lstdc++ -llapack

puis executez :

./exe

Exemple C++

g++ -D DT=double -o exe pls.cpp -I<path-pls4snp>/include -L<path-pls4snp>/lib -lpls4snp -llapack

Si la compilation se fait dans le répertoire d installation :

g++ -D DT=double -o exe pls.cpp -I../../../../include -L../../../../lib -lpls4snp -llapack

puis executez :

./exe

Note : La macro définit la precision des flottant définit dans le programme. Par défaut celui-ci est 'double'. si vous avez toute
fois installer l'outils en simple précision (./configure --disable-double), il faudra définir définir cette macro à DT=float

Utilisation de la commande glmnet4snp

Construction des variables avec GLMNET et la population de reference

glmnet4snp --elnet --family gaussian --alpha 0.5 --lambda-min 0 --nlambda 500 --geno typage_ap --format-geno aipl --pheno pheno_ap.txt --header-pheno --remove-minmaf 0.03

Validation avec la population de validation

glmnet4snp --valid --geno typage_val --format-geno aipl --pheno pheno_val.txt --header-pheno --binary glmnet.bin

Generation des effets SNP

glmnet4snp --lambda --binary glmnet.bin --out RES_EFF.txt --ilmu 93

Generation des predictions du fichier typage_pred

glmnet4snp --predict --binary glmnet.bin --geno typage_val --format-geno aipl --out PHENO_PRED.txt --ilmu 93