1 --- !ruby/ShaXpear::Treatment 2 name: taux_reproduction 3 experiment: takeOverTime # l'experience sur la quelle on s'applique 4 parents: # les traitements qui doivent être effectués avant celui-ci 5 # on peut ainsi utiliser leurs fichiers de sortie 6 # (un peu comme les dépendances d'un makefile) 7 date: 8 doc: 9 name: Taux de reproduction moyen 10 author: shaXpear team 11 keywords: [ test ] 12 desc: A lot of stuff very interesting. 13 outputs: 14 - file: # fichiers generes 15 name: taux 16 pattern: taux.dat 17 desc: plein de trucs 18 data: 19 type: column 20 content: 21 - { name: density, desc: the density } 22 - { name: temperature, desc: the temperature } 23 - { name: taux_mean, desc: the mean of taux } 24 - file: 25 name: age_mean 26 pattern: age_mean.dat 27 desc: age moyen maximal de la pop en fonction de la temperature 28 data: 29 type: column 30 content: 31 - { name: temperature, desc: la temperature } 32 - { name: age_mean, desc: "l'age moyen" } 33 - file: 34 name: age_max 35 pattern: age_max.dat 36 desc: age moyen maximal de la population 37 data: 38 type: one_value 39 - file: 40 name: ab_max 41 pattern: means.dat 42 desc: voir traitements... 43 data: 44 type: column 45 content: 46 - { name: mean, desc: moyenne des max de a et b des file2 } 47 body: # descriptions des traitements à effectuer (par chaine de traitement) 48 - chain: # une chaine de traitement 49 descr: > 50 ce traitement cree un tableau a 2 dimensions en faisant 51 la moyenne de la colonne taux des fichiers file1 52 pour chaque valeur du couple (density,temperature). 53 treatments: 54 # Pour les traitements nous avons distingué plusieurs niveaux 55 # Note pour les explications: 56 # Par soucis de simplicité, nous allons dire que tous les labels sont 57 # des colonnes. Bien évidemment, les explications resteront valables 58 # en inversant lignes et colonnes. 59 # row: opérations sur une ligne (inter-colonnes) 60 # label: opérations sur une colonne (pour un fichier) 61 # run: opérations sur les fichiers d'un run 62 # pset: opérations sur les fichiers d'un jeu de paramètre 63 # global: opérations sur tous les fichiers 64 # 65 label_level: mean # on fait la moyenne des elements de chaque colonne taux 66 run_level: last 67 pset_level: max # on fait le maximum de toutes les moyennes 68 input: 69 - { file: file1, labels: [ taux ] } # on ne regardera que la ligne/colonne taux des fichiers 'file1' 70 vars: 71 - density # on répartit les fichiers en fonctions des paramètres 72 - temperature # 'density' et 'temperature' 73 output: taux # on écrit le résultat dans le fichier taux 74 # exemple de sortie: 75 # +---------+-------------+-----------+ 76 # | density | temperature | taux_mean | 77 # +---------+-------------+-----------+ 78 # | 1.320 | 2.454 | 1.072 | 79 # | 1.320 | 2.277 | 3.085 | 80 # | 3.120 | 2.454 | 4.123 | 81 # | ... | ... | ... | 82 # +---------+-------------+-----------+ 83 # 84 # en réalité: 85 # 1.320 2.454 1.072 86 # 1.320 2.277 3.085 87 # 3.120 2.454 4.123 88 - chain: 89 descr: > 90 le maximum des ages moyens en fonction de la temperature 91 treatments: 92 label_level: mean 93 files_level: max 94 inputs: 95 - { file: file1, label: [age] } 96 vars: [ temperature ] 97 output: age_mean 98 - chain: 99 descr: | 100 le maximum des ages moyen de la population. 101 treatments: 102 label_level: max # un seul fichier, donc on aura au final une valeur unique 103 inputs: # age_mean a été 'initialisé' (un traitement a écrit dedans), on peut donc l'utiliser 104 - { file: age_mean, label: [age_mean] } 105 output: best # le résultat est une valeur unique, donc le type du fichier doit être one_value 106 - chain: 107 descr: 108 treatments: 109 row_level: max # on fait le max entre les valeurs des colonnes a et b pour chaque ligne 110 label_level: mean # on fait la moyenne de la colonne ainsi obtenue 111 inputs: 112 - { file: file1, label: [a,b] } # on prend 2 colonnes 113 output: ab_max 114