Les calculs des intervalles de confiance

Le module source:trunk/src/analyse/m_qtlmap_calcul_ic.f95 implémente l'ensemble des méthodes décrite par la suite.

Le module définit une fonction publique "point d'entré" qui permet de router vers la bonne méthode selon l'option donnée en ligne de commande --ci:

subroutine computingIC(dataset,lrtsol,listincsol,opt_qtl)
type(QTLMAP_DATASET)                                      , intent(in)  :: dataset
integer                                                   ,intent(in)   :: opt_qtl
type(TYPE_LRT_SOLUTION)        ,dimension(dataset%phenoModel%ncar,opt_qtl)   , intent(inout)  :: lrtsol
type(TYPE_INCIDENCE_SOLUTION)  ,dimension(dataset%phenoModel%ncar,opt_qtl+1) , intent(in)  :: listincsol

  • dataset est le jeu de données utilisateur (QTLMAP_DATASET)
  • lrtsol est l'objet mémorisant le calcul du maximum de vraisemblance (TYPE_LRT_SOLUTION)
  • listincsol est l'objet mémorisant la valeur des estimations des paramètres au maximul de vraisemblance (TYPE_INCIDENCE_SOLUTION)

attention, il existe une seconde option qui influe sur les méthodes de boostrap pour le calcul d'intervalle de confiance : --ci-nsim qui permet de paramétrer le nombre de simulation.

Par défaut on execute systematiquement un drop off et le calcul Hengde Li. L'utilisateur obtient ces deux résultats dans le fichier resultat principale
L'option "confidence intervalle" passée en argument de qtlmap, OPT_CI, permet d'obtenir la liste des méthodes à appliquer sur son analyse.

if ( dataset%cli%key_exist(dataset%cli%OPT_CI) ) then
   call dataset%cli%get_key_list_values(dataset%cli%OPT_CI,10,values,nargs)
   if (nargs==0) then
      nargs=1
      values(nargs) = trim(str(DROP_OFF_CI))
      nargs=2
      values(nargs) = trim(str(HENGDE_LI_CI))
   end if
else
   nargs=1
   values(nargs) = trim(str(DROP_OFF_CI))
   nargs=2
   values(nargs) = trim(str(HENGDE_LI_CI))
end if

Méthode du Drop off

subroutine drop_off(dataset,iarg,opt_calcul,opt_qtl,lrtsol)
          type(QTLMAP_DATASET)                                      , intent(in)  :: dataset
          integer                                                   , intent(in)  :: iarg,opt_calcul,opt_qtl
          type(TYPE_LRT_SOLUTION)     ,target   ,dimension(dataset%phenoModel%ncar,opt_qtl)   , intent(inout)  :: lrtsol

code du programme : source:trunk/src/analyse/m_qtlmap_calcul_ic.f95#L133

Méthode Hengde Li

 subroutine hengde_li(dataset,iarg,nsim,opt_calcul,opt_qtl,cli_haplo,lrtsol,&
                         listincsolFromAnalyse,hdam,biq,interaction)
          type(QTLMAP_DATASET)                                      , intent(in)  :: dataset
          integer                                                   , intent(in)  :: iarg,nsim,opt_calcul
          integer                                                   , intent(in)  :: opt_qtl,cli_haplo
          logical                                                   , intent(in)  :: biq,interaction
          type(TYPE_LRT_SOLUTION)        ,dimension(dataset%phenoModel%ncar,opt_qtl)   , intent(inout)  :: lrtsol
          type(TYPE_INCIDENCE_SOLUTION)  ,dimension(dataset%phenoModel%ncar,opt_qtl+1) , intent(in)  :: listincsolFromAnalyse
          logical                                                   , intent(in)  :: hdam

Description de l'algo dans Li J Genet 2011.pdf page 358

code du programme : source:trunk/src/analyse/m_qtlmap_calcul_ic.f95#L482

Les Méthodes boostrap

La méthode generique boostrap implémente deux variantes de boostrap
  • simple, tirage avec remise d'un tableau de ND individus
  • gardant la structure familliale : garde les effectif intra famille de pere-mere avec NDMIN suffisamment grand ou, le cas écheant, intra famille de père seulement

Le role de la subroutine boostrap est d'éviter la réecriture des morceaux de code redondant pour toutes les calculs d'intervalles de confiances via une méthode de boostrap

Pour toutes les simulations :

  • Simulation d'un jeu de données
  • Appel generique d'une fonction de boostrap
  • Calcul des phases/PDD
  • analyse (dépendant de opt_calcul)
  • Enregistrement du max LRT et pos max
  • Libération de la mémoire

Boostrap

subroutine create_dataset_full_sample

Boostrap gardant la structure familiale

subroutine create_dataset_sib_family_sample

Li J Genet 2011.pdf (509,62 ko) Olivier Filangi, 23/01/2013 17:04