Ajout d'une options dans le module CLI

concerne le module data/m_qtlmap_type_cli.F95

On utilise une norme classique pour la specification des options dans QTLMap :

  • "2 tirets" : --<nom-long-de-l'option>, exemple : --le-truc-qui-fait-ca
  • "1 tiret " : -<une-lettre> , exemple : -l

Exemple pour ajouter l'option "toto" (--toto, -q)

Ajouter une donnée membre dans la classe QTLMAP_CLI

c'est ici qu'on nomme l'option (longue et courte)

type , public :: QTLMAP_CLI
...
!!// number of simulation for the bootstrap option to calculate Confidence Intervalle
character(len=LEN_OPT)                       ,public  :: OPT_CI_NSIM          ='--ci-nsim'
!!// ma nouvelle option        
character(len=LEN_OPT)                       ,public  :: OPT_TOTO             ='--toto'
character(len=LEN_OPT)                       ,public  :: OPT_TOTO_SHORT       ='-q'

Ajouter une fonction membre dans la classe QTLMAP_CLI

Pour faciliter l'usage de l'option, on crée une fonction membre (définit à l'intérieure de la classe) qui nous permet de tester l'existence de l'option dans la liste des arguments qui est donné à l'executable qtlmap

type , public :: QTLMAP_CLI
...

contains
       !// True if the user want totorize
        procedure,public :: cli_is_toto

...

    function cli_is_toto(this) result(val)
        class(QTLMAP_CLI)  , intent(in)  :: this
        logical :: val
        val = this%key_exist(this%OPT_TOTO)
        if (.not. val) val = this%key_exist(this%OPT_TOTO_SHORT)
    end function cli_is_toto

end type QTLMAP_CLI

Il y a des exemples pour récuperer des valeurs d'option (ex: --toto=34) : cli_get_family, cli_get_nsim, ...

Utilisation

On peut récuperer les information du module CLI dans l'ensemble des subroutines de QTLMap. (Attention, L'objet QTLMAP_DATASET
doit etre passé en argument de la fonction)

Exemple dans le module m_qtlmap_analyse :


hdam        = .not. dataset%cli%cli_is_no_hdam()
biq         = dataset%cli%cli_is_biq()
interaction = dataset%cli%cli_is_interaction()