Specifications

Dépendances logiciels pour le dev

  • Le programme est écrit en C++ et utilise la librairie Lapack.
  • La partie GLMNET est une interface C++ au source écrit en fortran du package glmnet : http://cran.r-project.org/web/packages/glmnet/index.html
  • utilisation de la suite autotools/automake pour la generation des makefiles

Composition du répertoire

  • doc : documentation écrite en LATEX
  • examples : example d'execution de pls4snp et glmnet4snp sur un jeux de données exemple QTLMas
  • ext : source externe au projet (glmnet.f90)
  • man : man d'utilisation des executable
  • R : scripts d'origine pour la PLS
  • src : les sources du programme
  • testdev : tests de non regression

Sources

Sources communs à Pls4Snp et Glmnet4Snp

Classe Description
Common routine d'interface à lapack + routines basiques (statistiques basiques, manipulation de chaîne)
Cli Classe en charge des options/arguments en entrée des deux programmes
DataGen Classe comportant les données utilisateurs (phenotype+genotype)
CalculDataGen Classe calculant des informations ou modifiant les valeurs d'un objet DataGen
Convert Classe template pour transformer un string en type et vice versa
FactoryData Classe en charge de la construction d'un objet DataGen à partir de la lecture des fichiers utilisateurs

Flow d'exécution du programme Glmnet4Snp

Le programme comporte 4 principales fonctionnalités glmnet, predict, valid, effect.

  • on s'assure de la bonne utilisation des options dans le source principal (main) (utilisation de la classe cli)
  • La classe command est dédié à la lecture/ecriture des données et des résultats de l'utilisateurs. Il contrôle également le flow d'execution de la fonctionnalité.
  • la classe WorkGlmnet implémente les fonctionnalités : écriture et lecture du fichier binaire contenant la solution, appel au programme fortran elnet (du package glmnet/R), calcul des predictions.

Flow d'exécution du programme Pls4Snp

glmnet_seq1.png (79,885 ko) Olivier Filangi, 11/06/2014 11:05

glmnet_seq2.png (81,838 ko) Olivier Filangi, 12/06/2014 14:14

pls_seq1.png (109,974 ko) Olivier Filangi, 12/06/2014 14:16