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