Ajout un calcul --haplotype
Cela concerne :

  • Le calcul des phases parentales
  • Le calcul des probabilité de transmissions des segments parentaux
  • La construction des haplotypes parentaux

Ajout de l'interface

Ajout d'une constante identifiant pour le nouveaux calcul

Modifier le fichier source data/m_qtlmap_const.f95. Ici on ajoute la derniere constante VERSION_HAPLOTYPE_NEW


!!//   Constant when phases are provided by a external software
   integer, public, parameter             :: VERSION_HAPLOTYPE_PARENTAL_EXTERNAL = 0
!!//   Constant for the first version of the haplotypes routines
   integer, public, parameter             :: VERSION_HAPLOTYPE_V1                = 1  ! Original version
!!//   Constant for the second version of the haplotypes routines
   integer, public, parameter             :: VERSION_HAPLOTYPE_V2                = 2  !
!!//   Constant for the third version of the haplotypes routines
   integer, public, parameter             :: VERSION_HAPLOTYPE_V3                = 3  !
!!//   Constant for the 4th version of the haplotypes routines
!!//   Elsen JM. A fast algorithm for estimating transmission probabilities in QTL detection designs with dense maps.
   integer, public, parameter             :: VERSION_HAPLOTYPE_SNP               = 4  !

!!//   Constant for the 5th version of the haplotypes routines
!!//   Phase construction (Favier et al. 2010), Elsen JM. A fast algorithm for estimating transmission probabilities in QTL detection designs with dense maps.
   integer, public, parameter             :: VERSION_HAPLOTYPE_SYMMAX2SAT_SNP    = 5  !

!!//   Constant for the 6th version of the haplotypes routines
!!//   Phase construction (Favier et al. 2010), Elsen JM. A fast algorithm for estimating transmission probabilities in QTL detection designs with dense maps.
!!//   PDD are computed on fly...
   integer, public, parameter             :: VERSION_HAPLOTYPE_SYMMAX2SAT_PDD_VOLATIL_SNP    = 6  !

!!// NOUVEAU CALCUL
   integer, public, parameter             :: VERSION_HAPLOTYPE_NEW               = 7  !

Connecter la méthode haplotype au nouveau calcul

Dans la foncion haplotype du module haplotype/m_qtlmap_haplotype.f95

   subroutine haplotype(dataset,spt,opt_version)
        type(QTLMAP_DATASET)       ,intent(inout)         :: dataset
        type(PDD_BUILD)            ,intent(inout)         :: spt
        integer                    ,intent(in)            :: opt_version

        !//free structure if allocated
        call spt%release()

        select case (opt_version)

        case (VERSION_HAPLOTYPE_V1)
         call log_mess('Computation of transmission probabilities V1',INFO_DEF)
         call haplotype_V1(dataset,spt)
...

        case (VERSION_HAPLOTYPE_NEW)
          call log_mess('Computation of the new method',INFO_DEF)
          call mynewmethod(dataset,spt)
...
        case default
         call stop_application('bad value of opt_version['//trim(str(opt_version))//'].')
       end select

       call log_mess("** END module haplotype ** ",DEBUG_DEF)
      end subroutine haplotype

La fonction mynewmethod peut provenir d'un nouveau module dédié à l’implémentation de la nouvelle méthode.

Test de l'implementation

Pour tester le fonctionnement, il suffit d'appeler qtlmap avec l'identifiant du calcul que l'on vient d'implémenter

>qtlmap p_analyse --haplotype=7