Les paramètres utilisateurs définis dans le fichier paramètre

Structuration

Le module source:/trunk/src/data/m_qtlmap_type_parameter.f95 contient :

  • le type PARAMETER_BASE pour accéder aux données typé "ENTIER" ou "FLOTTANT" (ndmin,prob_seuil_gam,...)
  • La définition de l'ensemble des clefs définissables dans le fichier de paramètre (opt_step,in_genealogy,etc...)

Ce type contient les fonctions membres publiques suivantes :

  • set : initialise les données typées (ndmin,prob_seuil_gam,...)
  • get_string_val(K_KEY) : retourne la valeur en chaine de caractère de la clef K_KEY
  • get_int_val(K_KEY) : retourne la valeur en entier de la clef K_KEY
  • get_real_val(K_KEY) : retourne la valeur en reel de la clef K_KEY
  • get_file_val(K_KEY) : retourne la valeur en chaine de caractère (format len=fichier) de la clef K_KEY
  • key_exist(K_KEY) : retourne vrai si la clef K_KEY est définit dans le fichier de paramètre

L'ensemble des clefs sont définit dans le même fichiers et sont des constances àppartenant au module (accès publique).
Voir l'ensemble des clefs définis : source:/trunk/src/data/m_qtlmap_type_parameter.f95#L27

On peut donc récupérer la valeur de NDMIN de deux manières :

dataset%params%ndmin

ou
dataset%params%get_int_val(K_NDMIN)

Savoir si le fichier de genealogy a été définit dans le fichier de paramètre et ouverture du fichier

if ( dataset%params%key_exist(K_GENEA)) then
 open(ios,file=dataset%params%get_file_val(K_GENEA))
 ...
end if

Ajouter une clef pour les future développement

Pour définir une nouvelle cléf utilisable à partir du fichier paramètre p_analyse:

# analysis step :  in Morgan 
#minimum : 0.000001
opt_step = 0.01 #step 5 cMorgan
# minimal number of progeny by dams 
opt_ndmin=20
#my new key
opt_my_new_key=0.01

Il faut dans un premier temps ajouter une clefs dans le module m_qtlmap_type_parameter:

 character(len=LEN_L)    ,parameter    , public :: K_MY_NEW_KEY       ='opt_my_new_key'

puis, si cette variable est optionnelle, incrémenter la variable NUMBER_OPT_KEYS

ou bien, si cette variable est obligatoire, :
  1. incrémenter la variable NUMBER_AUTO_KEYS
  2. ajouter le nom de cette variable au tableau index_key
  3. ajouter la valeur par défaut de cette variable au tableau default_values

Dans les deux cas, si vous voulez que qtlmap n'affiche pas un warning 'option inconnue', il faudra l'ajouter au tableau all_key

Une fois ces actions réalisé, vous pouvez utiliser cette option via les fonctions membres du type PARAMETER_BASE