Académie de Montpellier
U n i v e r s i t é M o n t p e l l i e r I I
Sciences et Techniques du Languedoc
Rapport de TER
Pré-traitement de données médicales et mise en
÷uvre de tests
par
Marc B
OURGUÈRE, Guillaume C
AMBAZAR, Cleve K
ENGUEM
ABIALA, Julien R
ÉGALs
encadré par Lisa DI JORIO, Anne L AURENT et Maguelonne TEISSEIRE
Soutenu le 14 Juin 2009
2
Table des matières
Remerciements 5
Introduction 6
1 Contexte médical 10
1.1 Rappels de biologie . . . 11
1.1.1 La cellule . . . 11
1.1.2 Généralités sur le cancer . . . 11
1.1.3 Le génome . . . 12
1.1.4 Les puces à ADN . . . 13
2 Contexte fouille de données 16 2.1 Le processus ECD . . . 17
2.2 Les règles graduelles . . . 18
2.2.1 Généralités . . . 18
2.2.2 Propriétés des règles graduelles . . . 20
2.3 L'algorithme GRITE . . . 21
2.3.1 Espace de recherche graduel . . . 21
2.3.2 Conservation binaire des ordres . . . 22
2.3.3 Calcul du support . . . 24
3 Objectifs et organisation 27 3.1 Objectifs . . . 27
3.1.1 Compréhension du domaine et des règles graduelles . . 27
3.1.2 Expérimentations . . . 28
3.1.3 Acquisition des gènes . . . 28
3.2 Organisation . . . 29
3.2.1 Planning . . . 29
3.2.2 Au sein du groupe . . . 29
3.2.3 Avec nos tuteurs et les professionnels . . . 30
TABLE DES MATIÈRES 4
4 Expérimentations 31
4.1 Objectifs . . . 31
4.2 Le générateur IBM Quest . . . 32
4.2.1 Description . . . 32
4.2.2 Transformations nécessaires . . . 33
4.3 Travail eectué . . . 34
5 Outils de traitement des chiers développés 35 5.1 Pré-traitement des données . . . 36
5.1.1 Inversion des chiers . . . 36
5.1.2 De l'alphanumérique au numérique . . . 39
5.1.3 Traitements complémentaires . . . 40
5.1.3.1 Création du chier de correspondance . . . . 40
5.1.3.2 Création du chier nal . . . 41
5.2 Post-traitement des données . . . 42
5.2.1 Du numérique à l'alphanumérique . . . 42
6 La plateforme nale 44 6.1 Acquisition des gènes . . . 45
6.2 Traitement de données . . . 51
6.2.1 Inversion . . . 53
6.2.2 Conversion en numérique . . . 53
6.2.3 Exécution d'un cron . . . 57
6.3 Parcourir les dossiers . . . 58
6.4 Outils divers . . . 58
6.4.1 Comparateur de chiers . . . 59
6.4.2 Liste des chiers d'une arborescence . . . 59
6.4.3 Concaténation de chiers . . . 60
7 Discussion 61 8 Conclusion 63 A Schéma UML de la base de données locale 65 B Manuel Utilisateur 66 B.1 Acquisition des gènes . . . 66
B.2 Traitement des données . . . 67
B.3 Parcourir les dossiers . . . 68
B.4 Outils divers . . . 69
Table des gures
1.1 La cellule . . . 11
1.2 Expression de gène . . . 12
1.3 Utilisation des puces à ADN . . . 13
2.1 Le processus ECD . . . 17
2.2 Arbre préxé généré à partir du tableau 2.1 . . . 22
2.3 (a) Les diagrammesLs et (b) les listes le composant . . . 24
3.1 Schéma général de notre outil . . . 28
3.2 Diagramme de Gantt décrivant notre planning . . . 30
6.1 Formulaire rempli initialement par les experts de l'Inserm . . . 46
6.2 chromosome 11, position 64,295,063 . . . 48
6.3 Script pour l'acquision des gènes . . . 49
6.4 Formulaire de la page Acquisition des gênes . . . 50
6.5 Formulaire de la page traitement de données . . . 52
6.6 Cadre superposé au formulaire . . . 53
6.7 Fin du pré-traitement des données . . . 57
6.8 Parcours des dossiers de résultats . . . 59
Remerciements
Nous tenons à remercier l'équipe TaToo avec laquelle nous avons travaillé et qui a mis à notre disposition ses avancées dans le domaine de la fouille de données. Merci à Lisa Di Jorio qui nous a suivi tout au long de ce projet pour son écoute, sa compréhension, ses explications et ses relectures diverses de nos diérents rapports. Merci également à Anne Laurent et Maguelonne Teisseire pour leur encadrement, leur soutien et leur apport quant à la mise en forme des diérents documents que nous avons rendus.
Enn, nous remercions Béatrice Orsetti, chercheur à l'INSERM, pour ses éclairages sur nos questions biologiques et nos diverses rencontres qui ont permis de rendre un outil répondant aux besoins attendus.
Introduction
Notre sujet de TER s'inscrit au sein de deux contextes bien particuliers, puisqu'il s'agit d'appliquer des techniques provenant de la fouille de données à des bases biologiques fournies par l'INSERM. L'objectif de ce TER est donc de coupler les avancées de l'informatique dans le domaine de la fouille de données et d'extraction de connaissance à la recherche médicale menée par l'INSERM. Dans la suite de cette introduction, nous présentons de manière séparée chacun de ces deux contextes.
L' INSERM (Institut National de la Santé et de la Recherche Médicale) est un organisme public français entièrement dédié à la recherche biologique, médicale et en santé des populations. Ses chercheurs ont pour vocation l'é- tude de toutes les maladies humaines, des plus fréquentes aux plus rares.
C'est pourquoi un ensemble de solutions et de techniques d'études plus ou moins poussées sont mises en oeuvre. En eet, l'évolution récente des tech- nologies telles que l'acquisition de l'image, ou encore la possibilité d'analy- ses très poussées mettent à disposition quantités d'informations utiles aux chercheurs de l'INSERM. Ainsi, diverses informations concernant un niveau de granularité très n (étude des cellules, des gènes, des protéines) viennent s'additionner aux données cliniques déjà disponibles (antécédents familiaux, ages, etc...).
Parmi les maladies traitées se trouve le cancer. Notre projet est en relation directe avec l'étude de cette maladie. Dans ce contexte, les chercheurs de l'INSERM ont réalisé de nombreuses études tumorales, pour lesquelles ils ont réuni diverses informations médicales. D'après les chercheurs de l'INSERM, l'étude d'une multitude de prols permettra la découverte d'informations intéressantes concernant l'évolution de la maladie.
Cependant, une analyse de puce à ADN produit des informations sur des milliers de gènes. La quantité de données à traiter est telle qu'elle s'avère impossible à traiter manuellement. Il est donc primordial de proposer des outils de traitement adaptés aux experts biologistes. Ce type d'outil fait par- tie des thèmes de recherches regroupés sous l'appellation Extraction de Connaissances dans les grandes bases de Données (ECD) (ou Knowledge
8
Discovery in Databases , KDD). Initialement, ces thèmes avaient pour but la gestion de données volumineuses, mais suite à l'évolution rapide des tech- nologies de l'information (grande capacitde stockage, dévelopement du web), ils visent désormais à tenir compte de l'hétérogénéité des données, de leur format multiple, souvent complexe et de leur qualité variable. La fouille de données est l'une des étape du processus d'ECD, et c'est dans ce contexte que s'inscrit notre TER.
Originellement, les algorithmes d'extraction de données ont été conçus an d'être appliqués sur des bases où le nombre d'objets (par exemple des clients de supermarchés) est largement supérieur au nombre d'items (par exemple des produits en ventes dans un supermarché). Or, l'INSERM pro- duit une très grande quantité de données (items) pour un nombre réduit de patients (objets). Dans de telles circonstances, les méthodes d'extraction classiques arrivent à leurs limites. Il devient alors primordial de proposer de nouvelles méthodes prenant en compte ces diverses spécicités. C'est dans ce contexte que l'équipe TaToo du LIRMM a proposé un algorithme d'extrac- tion de règles graduelles.
Une règle graduelle peut se présenter sous la forme plus X est A, plus Y est B . Ces règles, appliquée sur des tables relationnelles, permet de déter- miner des liens entre diérents objets d'une même table an d'en extraire les corrélations utiles aux experts. Appliquée au monde de la biologie, et plus spéciquement à la recherche sur le cancer, les règles graduelles permettent aux experts de l'INSERM de repérer des liens entre les diérentes données générées par leurs diérentes expérimentations.
Ce travail s'inscrit dans le contexte d'un TER de l'Université Montpellier 2, en collaboration avec l'équipe TaToo du Lirmm. Les thèmes de recherches de cette équipe sont principalement axés sur les processus d'extraction de connaissances, notamment au travers de la conception d'algorithmes d'ex- traction de règles ou motifs. De manière générale, notre travail consiste en la mise en ÷uvre de l'extraction de règles graduelles au sein d'un outil facile- ment exploitable par les experts non informaticiens de l'INSERM.
La diculté de ce projet vient de la spécicité des bases de données traitées, des interactions nécessaires avec une chercheuse non informaticienne (biologiste à l'INSERM) et la nécessité de coupler les systèmes de fouille de données avec des systèmes ouverts sur Internet, comme nous le détaillerons ci-après.
Notre travail a consisté à proposer une plateforme d'extraction de con- naissances utilisable pour le traitement de données médicales par des non in- formaticiens. S'adressant à des non informaticiens, cette plateforme se devait d'être intuitive et ergonomique. Enn, il fallait orir une meilleur lisibilité des résultats retournés par l'algorithme (en recherchant sur Internet les labels
9
complets des éléments apparaissant dans les règles extraites).
Ce rapport est organisé de la manière suivante : nous verrons dans les deux premiers chapitres certains rappels permettant la compréhension des domaines dans lesquels nous allons évoluer. Ensuite, nous présenterons les objectifs qui ont découlés de l'assimilation du sujet. Ensuite, nous dévelop- perons la manière dont nous avons abordé ces diérents objectifs. Enn, nous terminerons ce rapport par une discussion du travail réalisé ainsi qu'une con- clusion.
Chapitre 1
Contexte médical
sectionSommaire
1.1 Rappels de biologie . . . 11
1.1.1 La cellule . . . 11
1.1.2 Généralités sur le cancer . . . 11
1.1.3 Le génome . . . 12
1.1.4 Les puces à ADN . . . 13
1.1 Rappels de biologie 11
Pour bien comprendre le domaine dans lequel nous allons évoluer tout au long de la présentation de ce projet, nous vous proposons quelques rappels de base ainsi que quelques dénitions de termes biologiques utilisés dans ce rapport.
1.1 Rappels de biologie
1.1.1 La cellule
La cellule est l'unité structurale, fonctionnelle et reproductrice constitu- ant tout ou partie d'un être vivant. Chaque cellule est une entité vivante qui, dans le cas d'organismes multicellulaires, fonctionne de manière autonome, mais coordonnée avec les autres. Les cellules de même type sont réunies en tissus, eux-mêmes réunis en organes. La cellule est la plus petite unité du corps humain, son rôle est de se diviser pour produire plus de cellules. Une fois le mécanisme de reproduction et de transmission du patrimoine génétique réalisé, elle meurt. Comme le montre la gure 1.1, la cellule est constituée
Fig. 1.1 La cellule
d'une membrane et possède en son centre un noyau. Ce dernier contient les instructions nécessaires à la réalisation des réactions chimiques (développe- ment et fonctionnement de la cellule). Le support matériel de ces instructions sont les chromosomes.
1.1.2 Généralités sur le cancer
Le cancer est une maladie qui touche la cellule (souvent une seule). La transformation d'une cellule saine en cellule cancéreuse est dûe à l'accumu- lation d'un nombre susant de défauts à l'intérieur du génome d'une cellule.
1.1 Rappels de biologie 12
Les cellules cancéreuses se divisent sans que l'organisme n'en ait besoin, for- mant ainsi une masse de tissus appelée tumeur. De plus, ces cellules sont dîtes immortelles : une fois qu'elles se sont répliquées, elles ne meurent pas, contrairement aux cellules normales. Une tumeur peut être bénigne ou ma- ligne :
la tumeur bénigne ne contient aucune cellule cancéreuse.
la tumeur maligne est par opposition cancéreuse. Les cellules contenues dans la tumeur sont anormales et se divisent de façon totalement anar- chique. Elles peuvent endommager les organes ou tissus alentours mais elles peuvent également se détacher de la tumeur et pénétrer directe- ment dans le sang ou le système lymphatique.
L'étude et la compréhension du cancer passe par une étude approfondie de la cellule.
1.1.3 Le génome
Chez l'Homme, le noyau contient 23 paires de chromosomes. Chaque chro- mosome est composé d'un exemplaire d'origine maternelle et d'un exemplaire d'origine paternelle et contient deux minuscules laments : c'est la double hélice d'ADN. L'ADN est donc le support de l'information génétique trans- mise lors du processus de reproduction cellulaire. L'ensemble du matériel génétique d'une espèce est appelé génome.
Le rôle de l'ADN ne s'arrête pas à porter l'information génétique. De manière générale, l'ADN sert à la synthèse des protéines. Elles sont indis- pensables à la vie puisqu'elles remplissent par la suite diverses fonctions (transport, communication...). Cette synthèse des protéines s'eectue suivant deux grandes étapes : la transcription de l'ADN en ARN messager (ARNm) puis la traduction de l'ARNm en protéine (processus appelé expression de gène), comme le montre la gure 1.2.
ADN (gène) transcription
−→ ARN traduction−→ Protéine Fig. 1.2 Expression de gène
Rapellons qu'une cellule devient cancéreuse suite à l'accumulation d'un nombre susant de défauts à l'intérieur du génome d'une cellule. Cela signie que les gènes ont subi une modication, par conséquent le matériel génétique supporté par les chromosomes a changé, ce qui va également modier l'ex- pression des gènes. Une manière de comprendre le cancer consiste à étudier
1.1 Rappels de biologie 13
ces changements. Pour cela, il est nécessaire de comprendre de quelle manière l'ADN est touché.
1.1.4 Les puces à ADN
Les chromosomes des cellules cancéreuses ont subit d'importantes mu- tations. Celles-ci sont de deux types : quantitative (certains chromosomes apparaissent plus ou moins de fois que normalement) ou qualitative (les chro- mosomes sont déformés).
Les chercheurs de l'INSERM étudient les diérences quantitatives entre cellules normales et cancéreuses grâce à une technique basée sur l'utilisation des puces à ADN. Une puce ADN est une plaque de verre sur laquelle est xé un ensemble de molécules d'ADN. Cette biotechnologie récente permet d'analyser le niveau d'expression des gènes (transcrits) dans une cellule, un tissu, un organe, un organisme ou encore un mélange complexe, à un moment donné et dans un état donné par rapport à un échantillon de référence.
Fig. 1.3 Utilisation des puces à ADN
1.1 Rappels de biologie 14
L'utilisation des puces se décompose de la manière suivante : 1. l'ARN est extrait des cellules (saines et cancéreuses).
2. un ADN se transformant en ARN par transcription, le principe de la rétrotranscription pour transformé l'ARN en ADNc (ADN complémen- taire) est utilisé.
3. l'ADNc est transformé en ARNc.
4. les ARNc sont marqués par deux colorants (vert pour le malade, rouge pour la référence).
5. les ARNc sont dépôsés sur une lâme de verre qui possède des fragments de génome humain.
6. la n de l'hybridation (propriété qu'a l'ADN dénaturé de reformer spon- tanément sa double hélice lorsqu'il est placé face à son complémentaire) s'opère.
7. la puce est nettoyée.
8. l'image est scannée au laser et on interprète la luminosité de chaque point (une perte d'expression sera rouge, un gain sera vert et une ex- pression stable sera jaune).
9. le ratio gain/perte seuillé par 0,5 et 2 (valeurs choisies par les biolo- gistes) est réalisé.
10. le log2 pour normaliser les données est utilisé.
11. ces valeurs sont stockées dans un chier.
Ces données couplées aux données cliniques représentent la carte d'i- dentité d'une tumeur. Selon l'équipe de chercheurs avec laquelle nous avons travaillé, l'étude d'une multitude de prols permettra la découverte d'infor- mations intéressantes concernant l'évolution de la maladie.
Cependant, chaque analyse tumorale produit des milliers d'information (plusieur milliers de gènes par patient). Il devient alors impossible pour les biologistes de les analyser manuellement. C'est pourquoi la fouille de données s'avère une méthode d'analyse interessante. La fouille de données regroupe un ensemble de techniques plus ou moins recentes dont le clustering, la caté- gorisation ou encore la description des données.
Initialement, la fouille de données a été développée an de répondre à des problématique de comportements fréquents dans le domaine commercial. En eet, nous pouvons aisement imaginer qu'il est dicile d'extraire manuelle- ment des corrélations entre les diérents achats d'une centaine de millier de clients concernant quelque millier de produits. Ainsi, de nombreuses méth- odes ecace ont été proposées an de faire face à des bases contenant un très
1.1 Rappels de biologie 15
grand nombre de clients (plus formellement désignés sous le nom d'objets) comparé au nombre de produit (ou items).
Cependant, il se trouve que la masse de données générée par les profession- nels de la santé présente des caractéristiques diérentes des bases habituelle- ment traitées, rendant la plupart des approches classiques inecaces :
Fort nombre d'attributs, et faible nombre de clients : il se trouve que bien souvent, peu d'analyses sont eectuées (coût de ces analyse, obtention de tissus valides). Par contre, le nombre d'attributs générés est extrêmement élevé, comme par exemple le nombre de gènes (dépas- sant 30 000) pour chacun des individus.
Densité : habituellement, les bases se présentent sous une forme bi- naire sous la forme présence / absence (le client a ou n'a pas acheté le produit). La plupart des bases médicales renseignent toutes les valeurs.
Les mesures de fréquences habituelles se retrouvent alors biaisées.
Données numériques : plutôt que des valeurs binaires, les bases ne contiennent que des valeurs numériques (entiers et ottants).
An de répondre à cette problématique, l'équipe TaToo 1 a récemment pro- posé diverses solutions permettant l'extraction de règles graduelles.
1http://www.lirmm.fr/tatoo/
Chapitre 2
Contexte fouille de données
sectionSommaire
2.1 Le processus ECD . . . 17
2.2 Les règles graduelles . . . 18
2.2.1 Généralités . . . 18
2.2.2 Propriétés des règles graduelles . . . 20
2.3 L'algorithme GRITE . . . 21
2.3.1 Espace de recherche graduel . . . 21
2.3.2 Conservation binaire des ordres . . . 22
2.3.3 Calcul du support . . . 24
2.1 Le processus ECD 17
2.1 Le processus ECD
Fig. 2.1 Le processus ECD
Le processus d'Extraction de connaissance dans les grandes bases de Don- nées peut se décomposer en cinq grandes étapes, comme le montre la gure 2.1. Il s'agit d'un processus non trivial, consistant à identier dans les don- nées des schémas nouveaux, valides, potentiellement utiles et surtout com- préhensibles et utilisables [REF FAY]. Tout d'abord, le processus part des données brutes, fournies par les experts. Puis, les données sur lesquelles peuvent s'eectuer la fouille sont selectionnées. Cette selection est guidée par l'algorithme de fouille que l'on souhaite appliquer d'une part, et par le souhait des experts d'autre part. Par exemple, un decideur peut vouloir anal- yser uniquement les données concernant les produits ménagers. Dans ce cas, les informations traitant des autres produits seront supprimés durant cette étape.
Ensuite, les données retenues sont prétraitées. Cette étape vise à trans- former les données an d'être directement exploitées par l'algorithme de fouille de données. Ainsi les données vont être nettoyées (que fait-on des enregistrements contenant des valeurs nulles ?), les sources externes (par ex- emple une ontologie) sont intégrées, et enn les données sont transformées (agrégation, normalisation...). Le but de ces trois premières étapes est de construire une base de données contenant un ensemble d'enregistrement (par exemple des clients de supermarchés) décrits en fonction d'attributs (par ex-
2.2 Les règles graduelles 18
emple les produits de ce supermarché).
Une fois les données préparées, la fouille de données peut être ap- pliquée. Cette étape consiste à extraire de manière automatique des schémas dans un temps acceptable. On distingue trois grandes catégories de fouille :
• la catégorisation, dont le but est d'aecter des données à des classes préalablement dénies ;
• le clustering (ou segmentation) permet de partitionner les données en sous-ensembles (ou groupes) de telle manière que la similarité entre les données d'un même cluster et la dissimilarité entre diérents clusters soient les plus grandes possibles ;
• la description des données peut être réalisée à l'aide des règles d'as- sociation ou des motifs séquentiels, qui permettent d'extraire des cor- rélations tenant ou non compte d'une notion d'ordre ;
Enn, les schéma extraits sont interpretés. Cette étape est souvent réal- isée par l'expert et permet d'une part d'évaluer la pertinence des étapes précedement eectuées, et d'autre part de connaitre les informations perti- nantes contenues dans la base initialement choisie.
Il existe un très grand nombre d'algorithmes de fouilles de données, cha- cun étant plus ou moins adaptés à certains contextes. Dans le cadre de notre TER, nous appliquons un algorithme d'extraction de règles graduelles, dénommé GRITE et proposé dans [REF EGC]. Dans la section suivante, nous décrivons cet algorithmes, an de mieux saisir les contraintes que celui- ci impose pour la bonne réalisation de l'outil demandé.
2.2 Les règles graduelles
2.2.1 Généralités
Une règle graduelle permet de traduire une variation des valeurs d'élé- ments entre ensembles ( Plus un camion est lourd, moins il est rapide ).
Ces règles ont été majoritairement utilisées dans les systèmes experts fonc- tionnant à base de règle. Une règle graduelle s'applique sur les valeurs des items et les comparaisons de ces valeurs se font entre les objets.
Dénition 1 (item graduel) Soit I un ensemble d'items, i ∈ I un item et ∗ ∈ {≤,≥} un opérateur de comparaison. Un item graduel i∗ est déni comme un item i associé à un opérateur *.
Par exemple, à partir du tableau 2.1, six items graduels peuvent être considérés : {A≤, A≥, S≤, S≥, C≤, C≥}. Le premier item, l'âge, nous amène
2.2 Les règles graduelles 19
Objet Âge (A) Salaire (S) Crédit (C)
o1 22 1200 4
o2 28 1850 2
o3 24 1200 3
o4 35 2200 2
o5 38 2000 0
o6 44 3400 1
o7 52 3400 5
o8 41 5000 5
Tab. 2.1 Base exempleBD
à considérer deux items graduels : {A≤, A≥}signiant respectivement "l'âge diminue" et "l'âge augmente". Un itemset graduel est alors déni par : Dénition 2 (itemset graduel) Un itemset graduel(i∗11...i∗nn)est un ensemble non vide d'items graduels. Un k-itemset est un itemset graduel contenant k items graduels.
Par exemple, S1 = (A≥S≥C≤) est un itemset graduel du tableau 2.1.
Cette règle est obtenue par comparaison entre les propriétés de chaque ob- jet : nous avons comparé les variations entre les attributs d'un objet à l'autre.
Habituellement, l'intérêt d'une règle est mesurée par son support, qui reète la proportion d'objets de la base contenant cette règle. Cette notion est dif- férente dans le cas de la gradualité, car il ne s'agit plus de comptabiliser un nombre d'objets supportant l'itemset, mais le nombre d'objets respectant la variation de l'itemset. À partir de la base de la table 1, nous pouvons donner deux ensembles d'objets respectantS1 :{o1o3o2o4o6}et{o1o3o2o5}. Ces listes et ensembles de listes sont formalisés de la manière suivante :
Dénition 3 (Ordre entre deux objets) SoientXetX0deux objets de l'ensem- ble O , et s = (i∗11, ..., i∗kk) un itemset graduel. X précède X0 si ∀l ∈ [1, k]
X[il]∗lX0[il]. Nous utilisons la notation X /sX0.
Dénition 4 X etX0 sont comparables selon un itemset graduels siX /sX0 ou X0/sX. Sinon, ils sont incomparables.
Dénition 5 (Listes d'objets ordonnées) Soit s = (i∗11, ..., i∗kk) un itemset graduel. Une liste de tuple L =<L X1, ..., Xn >L respecte s si ∀p ∈ [1, n− 1],∀l∈[1, k] Xp[il]∗lXp+1[il].
Propriété 1 Il peut exister plus d'une liste de tuples respectant s.
2.2 Les règles graduelles 20
La fréquence d'un itemset graduel est calculée à partir de l'ensemble le plus représentatif, c'est-à-dire la liste contenant le plus d'éléments :
Dénition 6 SoitG∫ ={L1, ..., Lm}l'ensemble de toutes les listes respectant l'itemset graduel s. Alors F req(s) = max1≤i≤m|O| (|Li|)
Nous obtenons F req(s1) = 58 = 0.65, ce qui signie que S1 est supporté par 65% de toutes les personnes. Cependant, la recherche de l'ensemble le plus représentatif revient à calculer tous les ordres possibles de la base, d'autant plus qu'il peut y avoir plusieurs ensembles représentatifs. Ce problème est lié à la fouille d'ordre, dont la solution la plus ecace passe par l'utilisation d'un ordre total.
2.2.2 Propriétés des règles graduelles
Les règles graduelles conservent certaines propriétées recherchées en fouille de données, en particulier l'anti-monotonie.
Dénition 7 (Inclusion) Soient s et s0 deux itemset graduels. s est inclu dans s0 (s ⊆s0) si ∀i∈s, i∈s0
Par exemple, l'itemset(Age≥Credits≥)est inclu dans(Age≥Salaire≤Credits≥), mais pas dans(Age≥Salaire≤Credits≤)(la gradualité sur le crédit diminue).
Proposition 1 (Antimonotonie des itemsets graduels) Soitsets0 deux item- sets graduels, nous avons : s⊆s0 ⇒F req(s)≥F req(s0).
En d'autres termes, la propriété d'antimonotonie illustre le fait suivant : si un itemset graduel est fréquent, alors tous les itemset graduels inclus dans celui-ci le sont également. En revanche, si cet itemset graduel n'est pas fréquent, alors tous les itemsets dans lequel celui-ci est inclus ne le seront pas. Par exemple, si moins de 85% des clients ont acheté du pain et du beurre, il est impossible que plus de 85% des clients aient acheté du pain, du beurre et du chocolat. Cette propriété est largement utilisées en fouille de données, où l'extraction se fait par approche combinatoire. Elle permettra d'arreter la recherche du moment où un itemset graduel ne respecte pas le seuil de fréquence minimal xé par l'utilisateur.
Une autre propriété remarquable des règles graduelles est la complémen- tarité, formellement dénie de la manière suivante :
2.3 L'algorithme GRITE 21
Dénition 8 (complémentaire) Soit r = [{d∗11, ..., d∗nn},∗m] une DG-set. Sa DG-set complémentaire est c(r) = [{d01∗1, ..., d0n∗n},∗0m] si∀j ∈[1, n]dj =d0j et
∗j =c∗(∗0j) et ∗m =c∗(∗0m), où c∗(≥) =≤ et c∗(≤) =≥.
Plus l'âge augmente, plus le salaire augmente et plus l'âge diminue, plus le salaire diminue sont deux itemsets inverses. Il se trouve que tous les objets respectant une règle graduelle respectent son complémentaire : Proposition 2 F req(r) = F req(c(r))
Ceci permet de ne générer que la moitié des itemsets, réduisant de moitié l'espace de recherche.
Une dernière propriété émerge du fait de l'utilisation d'un ordre total. Il est évident que lorsque l'on considère des itemsets graduels de taille 1, tous les objets de la base pourront être ordonnés et la fréquence de l'itemset sera de 100%.
2.3 L'algorithme GRITE
2.3.1 Espace de recherche graduel
L'algorithme Apriori [REF APRIORI] est alors adapté à l'extraction des règles graduelles. Apriori utilise une structure d'arbre préxée comme celle de la gure 2.2. Dans un tel arbre, chaque noeud contient un item, et le chemin de la racine à une feuille représente un itemset. Apriori est un algorithme par niveau (il construit un niveau de l'arbre à chaque passe) qui alterne les phases de génération et de comptage. Les noeuds du niveau k sont générés à partir des noeuds du niveau k−1 en utilisant des opérations basées sur l'intersec- tion. Puis les noeuds générés sont élagués s'ils ne respectent pas le seuil de fréquence minimal xé par l'utilisateur (grâce à la proprité d'antimonotonie).
La proposition 2 permettant de ne générer que la moitié des itemsets graduels, nous illustrons l'extraction de connaissances graduelles sur l'aug- mentation (les supports des diminutions sont obtenues en inversant les opéra- teurs).
L'algorithme 1 constitue la routine principale de l'algorithme GRITE.
Dans cet algorithme, trois étapes sont importantes : la génération du premier niveau (ligne 1), la génération des niveaux k pour k >1 (ligne 4) et enn le comptage de fréquence (lignes 5-7).
Illustrons ce déroulement sur notre exemple principal. Au premier niveau, les noeuds A≥, S≥ et C≥ sont générés et ajoutés à l'arbre. Comme leur fréquence est de 100%, elle n'est pas calculée. Puis, au second niveau, le
2.3 L'algorithme GRITE 22
/
A+
S+
C+ C−
S− C+ C−
S+
C+ C−
C+
Fig. 2.2 Arbre préxé généré à partir du tableau 2.1 Algorithme 1 : Grite
Entrées : Un ensemble d'items B
Un seuil de fréquence minimalσ
Sorties : L'ensemble des itemsets graduels respectantσ L1 ←GenererN iveau1()
1
k←2
2
tant queLk−1 6=∅ faire
3
Lk ←GenererN iveau(Lk−1) pour chaquel ∈ Lk faire
4
siCalculF req(l)< σ alors
5
Lk← {Lk\l}
6
n
7
n
8
k←k+ 1
9
n
10
noeud B≥ est obtenu par jointure entre les noeuds A≥ et B≥ et représente l'itemset graduel (A≥B≥), le noeud B≤ est obtenu par jointure entre les noeuds (A≥ et B≤) et représente l'itemset graduel A≥B≤ et ainsi de suite.
Au troisième niveau, seuls les noeudsS≥etS≤sont générés. Nous expliquons les opérations de jointure et de support dans les sections suivantes.
2.3.2 Conservation binaire des ordres
La jointure de deux itemsets doit conserver d'une part les objets communs entre chaque itemset, et d'autre part les ordres communs.
2.3 L'algorithme GRITE 23
L'opération de jointure sera eectuée un nombre exponentiel de fois. Il est donc indispensable d'utiliser une structure de modélisation adaptée. C'est pourquoi l'équipe TaToo utilise les représentations binaires. En eet, ce type de représentation présente le double avantage d'être peu consommateur de mémoire (un octet représente huit objets) et d'utiliser des opérations binaires très performantes en terme de temps d'exécution. Ainsi, un ensemble de n objets répondant à un itemset peut être projeté en mémoire à l'aide d'une matrice binaire de taille n × n. S'il existe une relation entre un objet o et un objet o', alors le bit correspondant à la ligne o et à la colonne o' vaut 1, et 0 sinon. Par exemple, le tableau ci-dessous modélise les ordres présents à la fois pour(A≥S≥C≤). Pour faciliter l'opération d'intersection, la réduction transitive n'est pas appliquée.
o1 o2 o3 o4 o5 o6 o7 o8
o1 0 1 1 1 1 1 0 0
o2 0 0 0 1 1 1 0 0
o3 0 1 0 1 1 1 0 0
o4 0 0 0 0 0 1 0 0
o5 0 0 0 0 0 0 0 0
o6 0 0 0 0 0 0 0 0
o7 0 0 0 0 0 0 0 0
o8 0 0 0 0 0 0 0 0
(a)
o1 o2 o3 o4 o5 o6
o1 0 1 1 1 1 1
o2 0 0 0 1 1 1
o3 0 1 0 1 1 1
o4 0 0 0 0 0 1
o5 0 0 0 0 0 0
o6 0 0 0 0 0 0
(b)
Tab. 2.2 (a) Matrice binaire (A≥S≥C≤) , (b) Matrice réduite pour (A≥S≥C≤)
À partir des matrices binaires, les sous-séquences communes sont celles dont les bits sont à 1 pour chacune. Ceci est réalisé par l'opération binaire ET entre chaque élément de la matrice :
Théorème 1 Soits00un itemset graduel généré à partir des itemsets graduels s et s0. Nous avons la relation suivante : MGs00 =MGs AND MGs0
Le théorème 1 rend possible l'utilisation des méthodes générer-élaguer dans un temps ecace. En eet, les opérations binaires sont, d'un point
2.3 L'algorithme GRITE 24
de vue processeur, parmi les plus performantes. Pour plus de simplicité et de représentation visuelle, il est possible de dessisner ces matrices sous la forme d'un diagramme de Hasse. Dans un tel diagramme, les éléments (ici les objets) sont représentés par un sommet, et une èche relie les sommets possédant une relation d'ordre.
La table 2.2a montre le diagramme obtenu après la jointure entre les itemsets A≥S≥ etA≥C≤. Notons que les sommets o7 et o8 sont isolés : leurs lignes et leurs colonnes respectives sont à 0. Cela signie que ces deux objets n'ont pas de relation sur les items A≥, S≥ et C≤. La gradualité se mesure d'un objet à l'autre. Ainsi, de tels sommets ne participeront jamais à la liste maximale. Á l'issue de la jointure, de tels sommets sont élagués, ce qui permet de gagner de l'espace mémoire ainsi que du temps. La table 2.2b montre la matrice MLA≥S≥C≤ élaguée.
L'algorithme réalisant l'opération de jointure opère en deux étapes. Tout d'abord, une nouvelle matrice est initialisée avec les objets communs au deux matrices MS et MS0 à joindre. Ensuite, l'opération binaire ET est eectuée entre les objets communs à MS etMS0.
2.3.3 Calcul du support
(a)
Chaîne Longueur {abdei} 5 {abdf ghi} 7 {abdei} 5 {abdf ghi} 7 {jghi} 4
(b)
Fig. 2.3 (a) Les diagrammes Ls et (b) les listes le composant
La fréquence d'un itemset graduel s est la longueur de l'une des listes maximales du diagramme Lss0 associé. Le calcul du plus long chemin est un problème qui peut s'avérer dicile selon les contraintes considérées. Dans notre cas, nous avons un treillis qui peut se ramener à un graphe orienté
2.3 L'algorithme GRITE 25
et acyclique. Les algorithmes de recherche de plus court chemin peuvent alors être appliqués. Cependant, cette classe d'algorithme est polynomiale, et non linéaire. Or, tout comme la jointure, le calcul de support est eectué un nombre exponentiel de fois. C'est pourquoi nous posons la contrainte suivante : chaque sommet ne devra être considéré qu'une seule fois.
Un sommet peut avoir plusieurs niveaux. Par exemple, considérons le di- agramme de la gure 2.3a. Celui-ci est composé de 5 listes énumérées dans le tableau 2.3b. Certains des sommets ont plusieurs pères et participent donc à plusieurs listes. C'est le cas du sommet g, qui a pour pères les sommets f et j. Ainsi, selon le chemin emprunté, on peut considérer le sommet g comme ayant un niveau de 5 ou de 2. Notre but est de maximiser les niveaux. Pour cela, nous avons mis en place un système de "mémoire", qui conserve les données obtenues à partir des n÷uds de niveau supérieur. Lorsque plusieurs solutions sont possibles, nous conservons le niveau le plus élévé.
Algorithme 2 : FreqRecursive Entrées : Un sommet vertex
La mémoire Memory Sorties : Memory complétée Sons←GetSons(vertex);
1
siSons=∅ alors
2
M emory[vertex] = 1 ;
3
sinon
4
pour chaquei∈Sons faire
5
siM emory[i] =−1alors
6
F reqRecursive(i, M emory);
7
n
8
n
9
pour chaquei∈Sons faire
10
M emory[vertex] =max(M emory[vertex], M emory[i] + 1);
11
n
12
n
13
La stratégie adoptée est décrite par l'algorithme 2. Celui-ci prend en en- trée un n÷ud et remplit la mémoire. Cette mémoire, représentée par un tableau contenant autant d'éléments que de sommets, est préalablement ini- tialisée à -1. Ainsi, lorsqu'un -1 est rencontré, cela signie que le sommet correspondant n'a pas été visité. L'algorithme 2 fonctionne de la manière suivante : pour chaque ls du n÷ud en question ayant une mémoire à -1, FreqRecursive est récursivement appelé (ligne 7). Lorsqu'une feuille est ren-
2.3 L'algorithme GRITE 26
contrée, sa mémoire prend pour valeur 1 (ligne 3). Enn, quand chaque ls à sa mémoire renseignée, le père prend le niveau maximal plus un (lignes 10-11-12). Pour fonctionner, cet algorithme est appelé successivement pour chacune des racines du treillis (la mémoire est conservée d'un appel à l'autre).
Déroulons cet algorithme sur le treillis de la gure 2.3a. Le diagramme ne possède qu'une racine : {a}. Supposons que les ls sont considérés dans un ordre lexicographique. L'algorithme 2 est récursivement appelé sur les sommets a, puis b, d, e et i. i n'ayant pas de ls, il est considéré comme une feuille, et sa mémoire prend alors la valeur 1. La récursivité s'arrête, et chaque sommet traversé prend la valeur correspondante (celle de son ls plus un). La table 2.3a montre l'état de la mémoire après le parcours de la première chaîne. L'algorithme continue alors sur le sommet c. La table 2.3b montre la mémoire obtenue après parcours de tout le diagramme. La valeur maximale est de 7, ce qui signie que la chaîne maximale a une longueur de 7.
a b c d e f g h i j
5 4 -1 3 2 -1 -1 -1 1 -1 (a)
a b c d e f g h i j 7 6 6 5 2 4 3 2 1 4
(b)
Tab. 2.3 (a) Mémoire obtenue après le parcours de la première chaîne (b) puis du diagramme complet
Chapitre 3
Objectifs et organisation
3.1 Objectifs
Notre objectif est de proposer un outil intuitif et convivial pour un util- isateur non informaticien. Plus spéciquement, cet outil sera employé par les chercheurs de l'INSERM an d'extraire des règles graduelles à partir d'- analyses tumorales. Au chapitre 2, nous avons présenté le processus complet d'extraction de connaissances. Notre travail part de la selection des données par l'expert, du prétraitement de ces donnée, passe par l'étape d'extrac- tion des règles graduelles puis par le post-traitement des résultats avant leur présentation à l'expert.
Au-delà de l'interface, diérentes tâches distinctes sont à réaliser pour ce TER, dont voici la liste détaillée :
3.1.1 Compréhension du domaine et des règles gradu- elles
La compréhension du domaine et des règles graduelles est une étape pri- mordiale dans la réalisation de notre projet, c'est elle qui conditionnera en grande partie la vitesse d'avancement du projet. En eet, le domaine de la biologie et des règles graduelles est assez complexe et nous ne sommes pas habitués à le traiter. Ainsi, si nous arrivons à maîtriser du mieux possible ce dont il est question et la manière dont nous allons devoir l'implémenter, nous gagnerons un temps important par la suite et nous serons plus ecace dans notre travail. Pour ce faire, nous avons tout d'abord révisé un nombre im- portant de termes concernant la biologie. L'experte de l'INSERM, Béatrice Orsetti, a eu la gentillesse de nous expliquer ce qu'elle faisait et ce qu'elle attendait de l'outil.
3.1 Objectifs 28
Nous avons ensuite lu diverses références conceranant le domaine de la fouille. Notament, nous avons étudié la publication [DJLT09] qui était à l'époque le seul article de l'équipe TaToo concernant les règles graduelles.
Une fois le processus de compréhension terminé, nous sommes passés aux objectif suivants, qui se découpent en deux étapes indépendantes.
3.1.2 Expérimentations
Les expérimentations consistent à tester les limites de l'algorithme d'ex- traction des règles graduelles dans diverses situations, en traitant des bases contenant plus ou moins d'objets et d'items selon les cas possibles. Pour cela, il est necessaire de générer des bases adaptées. Une partie du travail consis- tera donc à trouver et adapter le meilleur générateur. Ces expérimentations seront utiles pour intégrer l'algorithme à notre outil nal et pour optimiser les résultats retournés par celui-ci (choix des paramètres, découpage de la base de départ).
3.1.3 Acquisition des gènes
Fig. 3.1 Schéma général de notre outil
Cet objectif est clairement intégré au processus ECD, puisqu'il s'agit du pré et post traitement des données. Notre travail peut être illustré par le
3.2 Organisation 29
schéma de la gure 3.1. Les bases fournies par l'INSERM ne sont pas di- rectement exploitables, et nécessitent certaines transformations avant l'ap- plication de l'algorithme GRITE. Cela constitue la première étape du travail demandé. Il s'agira alors de supprimer les données de mauvaises qualité (les critères sont fournis par les experts), de selectionner des données cliniques et de les intégrer à la base nale. De plus, les expressions seront ltrées et normalisées pour l'algorithme GRITE. Enn, le nom des attributs (items) sont
Lors de l'extraction des expressions de gènes, les informations sont enreg- istrées en fonction d'un numéro de chromosome et d'une position sur celui-ci.
Dans l'optique de simplier la lecture des résultats, l'objectif est donc ici de remplacer la position retournée par le nom du ou des génes associés. Pour cela, nous devrons faire un script de requetage HTTP vers un site internet externe fournissant la correspondance nécessaire.
3.2 Organisation
3.2.1 Planning
Des tâches décrites ci-dessus, nous pouvons dénir le planning suivant : Compréhension du domaine et des règles graduelles : du 19/01/09 au
05/02/09 (3 semaines)
Acquisition des gènes en fonction de leur chromosome et position sur le chromosome : du 05/02/09 au 26/02/09 (3 semaines)
Expérimentations : du 26/02/09 au 7/04/09 (5 semaines)
Pré traitement / Post traitement des données du 17/03/09 au 14/04/09 (4 semaines)
Création de l'outil utilisable par l'expert : du 01/04/09 au 22/04/09 (3 semaines)
Tests de l'outil : du 15/04/09 au 30/04/09 (2 semaines)
Rédaction du rapport : du 06/02/09 au 30/04/09 (12 semaines)
3.2.2 Au sein du groupe
Des séances de travail commun hebdomadaires seront mises en place en respectant les emplois du temps de chacun an de faciliter la communication.
Des décisions seront ensuite prises à l'issue de ces réunions an que chaque membre puisse être actif de son coté. La messagerie instantanée, le courrier électronique et le téléphone seront également des moyens de communication
3.2 Organisation 30
Fig. 3.2 Diagramme de Gantt décrivant notre planning utilisés.
3.2.3 Avec nos tuteurs et les professionnels
Une fois par semaine, nous verrons nos tuteurs an de leur faire part de l'avancement des travaux, des résultats obtenus et de prendre connaissance de nouvelles directives. Ce moment là sera l'occasion également de leur faire part de nos dicultés ou interrogations sur certains points. Nous utiliserons également régulièrement la communication via messagerie électronique, per- mettant de répondre à de petites interrogations tout en évitant un nouveau rendez-vous.
Nous avons également rencontré l'un des chercheurs de l'INSERM, Béa- trice Orsetti. Cette rencontre a eu pour but de nous éclairer encore davantage sur le domaine dans lequel nous devons intervenir. En eet, obtenir des in- formations de personnes dont la formation est axée dans ce domaine nous a été fortement bénéque.
Chapitre 4
Expérimentations
4.1 Objectifs
L'objectif des expérimentations est de tester les limites de l'algorithme GRITE. Nous devons réaliser des tests de performance en terme de temps d'exécution et d'utilisation mémoire sur divers jeux de données aux carac- téristiques diérentes. Rapellons que dans le cas classique, il est très courant, voire habituel de rencontrer beaucoup d'objets que d'attributs (items) (par exemple 100 000 objets pour 1000 items). Or, dans le cas de l'INSERM, c'est l'inverse : il y a une très grande quantité de données pour peu d'objets (de l'ordre de 100 objets et 30 000 items). De plus, les données utilisées par l'IN- SERM étant sensibles et condentielles car médicales, nous avons dû utiliser au début de notre projet, des jeux de données synthétiques. Puis, nous avons obtenu l'autorisation de travailler directement sur les bases de l'INSERM.
Cependant, cette étape a été utile pour la bonne mise en place de l'outil, c'est à dire pour l'intrégration du lancement de l'algorithme GRITE au sein de la plateforme.
Le travail à réaliser ici est le suivant : transformer des chier de sortie de générateurs de données en chier d'entrée exploitable par GRITE. Nous décrivons dans la section 4.2 les spécicités du premier générateur réalisé, ainsi que les transformations necessaires dans la section 4.2.2. Enn, il s'est avéré que ce générateur n'était pas le plus adapté. Ainsi, nous avons testé un générateur fourni pour l'occasion par l'équipe TaToo.
4.2 Le générateur IBM Quest 32
4.2 Le générateur IBM Quest
4.2.1 Description
Le générateur de données IBM Quest1 a été développé par Agrawal et Srikant an de générer des jeux de données synthétiques pour tester leurs algorithmes d'extraction de règle d'associations (présentés dans [AS94]). Une règle d'association étant ce qui se rapproche le plus des règles graduelles (elles est composé d'items et non d'items graduels et conserve le même principe de support et de conance), il a été le premier générateur testé lors de notre travail.
Le générateur produit un chier de sortie contenant une ligne par objet (apellé transaction en base de données), et énumère les attributs présent pour l'objet. Le tableau 4.1 résume les diérents paramètres disponibles.
Nom Description
ntrans Nombre de transactions en millier (défaut : 1000)
tlen Moyenne du nombre d'items par transaction (défaut : 10) nitems Nombre de diérents items en millier (défaut : 100) npats Nombre de motifs (défaut : 10000)
patlen Moyenne du motif maximal (défaut : 4) corr Corrélation entre les motifs (défaut : 0.25)
conf Moyenne de la conance d'une règle (défaut : 0.75) ascii Générer le chier de sortie en ASCII (défaut : False)
Tab. 4.1 Paramètres du générateur IBM Quest
Malgrè le nombre de paramètres modiables dans ce générateur, nous nous focalisons sur les trois suivants :
ntrans : le nombre de transactions souhaitées dans le chier.
nitems : le nombre d'items.
ascii : permet une sortie de chier au format ascii.
Voici un exemple de chier généré avec les paramètres -ntrans 0.003 -nitems 10 -ascii :
3 1 4 5
1 66 1 4 5 7 8 9
Tab. 4.2 Jeux de données généré par IBM Quest
1http ://www.almaden.ibm.com/cs/projects/iis/hdb/Projects/data_mining/datasets/syndata.html
4.2 Le générateur IBM Quest 33
Ici, chaque ligne correspond à un client (-ntrans = 0.003, soit 3 trans- actions). Le premier chire de chaque ligne correspond au nombre d'items présents dans la transaction courante. Par exemple, la première ligne con- tient trois items : 1, 4, et 5. La liste des items est toujours achée par ordre croissant. Il s'agit alors dans un premier temps de traiter les chiers renvoyés par le générateur an de le rendre exploitable par l'algorithme GRITE.
4.2.2 Transformations nécessaires
Voici le format souhaité pour lancer l'algorithme GRITE : Liste de tous les items, en chire et par ordre croissant Valeur_item1 Valeur_item2 ... Valeur_itemN
Valeur_item1 Valeur_item2 ... Valeur_itemN
Par exemple, pour la base de la table 4.3, nous écrirons le chier représenté à la table 4.4, où l'item 1 est associé à l'âge, l'item 2 est associé au salaire et l'item 3 est associé au crédit. Lorsque la valeur de l'item est nulle, alors on l'associe à une valeur élevée, hors du domaine de valeurs.
Age Salaire Credits
22 1200 0
43 2500 2
21 1800 1
18 0 NULL
Tab. 4.3 Table exemple, format util- isateur
1 2 3 22 1200 0 43 2500 2 21 1800 1 18 0 50000
Tab. 4.4 Table exemple, format GRITE
Cependant, le générateur IBM Quest, même s'il est le plus proche de ce que nous recherchons dans cette partie de notre travail, pose deux problèmes majeurs :
Le générateur de données IBM Quest génère des jeux de données éparses, c'est-à-dire des jeux où les transactions contiennent peu d'items. Or, l'algorithme GRITE est amené, dans notre contexte, à travailler sur des jeux de données denses, c'est-à-dire avec environ 95% des attributs (items) de la base reseignés.
Il ne génére des données que sous la forme présence / absence, c'est-à- dire l'objet possède ou ne possède pas l'item. Or, l'algorithme GRITE travaille sur des données quantiées, et non binaire comme dans le cas présent. Nous avons donc mis en place une stratégie de génération de type random : si l'objet possède l'item, nous lui aectons une valeur aléatoire.
4.3 Travail eectué 34
Ainsi, les premières expérimentations menées n'ont pas été concluantes.
Cela est dû aux deux problèmes cités ci-dessus : d'une part, nous avons es- sayé de générer des bases denses en adaptant les paramètres, mais le random rendait des corrélations graduelles inadéquates, car quasiment à 50% (par exemple, nous obtenions F req(A+ B+) = 48% et F req(A+ B+) = 43%. D'autre part, générer des données moins dense débouchait sur un nombre de règles graduelles quasi nul.
Suite à notre retour, l'équipe TaToo a développé un algorithme qui génère des valeurs aléatoires comprises entre 0 et 10 plus adapté au contexte des règles graduelles. Cet algorithme prend en entrée un chier généré au format ascii par IBM Quest et donne un chier prêt pour l'algorithme GRITE.
4.3 Travail eectué
Suite aux demandes de l'équipe, nous avons généré les bases ayant les spé- cicités décrites par le tableau 4.5. Celles-ci vont varier d'une part le nombre d'items en gardant un faible nombre d'objets (deux premières colonnes) et d'autre part le nombre d'objets en gardant un nombre d'items xe.
Nbr Transactions Nbr Items Nbr Transactions Nbr Items
500 1000 5000 1000
500 1500 7000 1000
500 2000 10000 1000
500 5000 15000 1000
Tab. 4.5 Premiers jeux de test
De plus, nous avons respecté les conventions de nommage demandées par l'équipe, et généré tous les scripts de lancement automatiques.
Chapitre 5
Outils de traitement des chiers développés
sectionSommaire
5.1 Pré-traitement des données . . . 36
5.1.1 Inversion des chiers . . . 36 5.1.2 De l'alphanumérique au numérique . . . 39 5.1.3 Traitements complémentaires . . . 40
5.2 Post-traitement des données . . . 42
5.2.1 Du numérique à l'alphanumérique . . . 42
5.1 Pré-traitement des données 36
5.1 Pré-traitement des données
Les chiers fournis par l'INSERM ne répondent pas totalement aux con- traintes xées par l'algorithme, notamment par rapport au sens de lecture du chier. Cependant, la contrainte la plus forte à respecter vient du fait que le format GRITE n'accepte que des valeurs numériques. Dans les deux sec- tions suivantes, nous décrivons de quelle manière nous réalisons ces diverses modications.
5.1.1 Inversion des chiers
Les chiers que nous avons à traiter proviennent des puces à ADN présen- tées précédemment. Ces chiers contiennent des dizaine de milliers de don- nées. La table 5.1 présente un petit échantillon de ce que contiennent les chiers que nous utiliserons. La première ligne contient les attributs de chaque colonne, qui sont respectivement :
Name : nom du gène.
Chr : numéro du chromosome.
Pos : position sur le chromosome.
Un ensemble de valeurs qui correspondent chacunes à une puce à ADN (i.e une tumeur).
Puis, chaque ligne correspond à la normalisation du ratio gain/perte de chaque gène en fonction de la puce sur laquelle il se trouvait.
Dans la table 5.1, chaque valeur est séparée par une tabulation (caractère
\t).
Name Chr Position 01.0185.3986 01.0752.3987 01.1230.3988 01.1248.3989 b1spot0057-J17 1 849544 0.231 -0.058 0.103 -0.075
b1spot0057-B11 1 968500 -0.141 0.148
b1spot0059-K13 1 1027346 0.207 0.015 0.060 -0.078 Tab. 5.1 Exemple de chier à traiter
Ainsi, nous constatons que les bases fournies par l'INSERM se trouvent dans un format inversé, c'est-à-dire que les attributs sont énumérés en ligne et les objets en colonne. La première étape pour inverser le tableau 5.1 est de lire la première ligne et de la stocker dans un tableau. Cette ligne, qui représente les colonnes, représentera les lignes dans le chier de sortie. On notera que les attributs Name, Chr et Position seront réutilisés d'une manière
5.1 Pré-traitement des données 37
diérente puisqu'ils permettront de condenser les trois premières valeurs de chaque ligne du chier de départ sous la forme gèneChrchrPospos, comme demandé par l'expert.
Puis, pour chaque nouvelle ligne lue, on créé un tableau contenant cette même ligne scindée par \tvia la méthode split(). Ce tableau est stocké dans un autre qui contiendra toutes les lignes du chier, ormis la première.
Une fois ces deux étapes achevées, nous obtenons deux tableaux (dont l'un étant un tableau de tableaux) contenant toutes les informations présentes dans le chier. Les tableaux 5.2 (a) et 5.2 (b) représentent le résultat obtenu à partir du tableau 5.1.
0 1 2 3 4 5 6
Name Chr Position 01.0185.3986 01.0752.3987 01.1230.3988 01.1248.3989 (a)
0 1 2
↓ ↓ ↓
0 b1spot0057-J17 1 12 849544
3 0.231 4 -0.058 5 0.103 6 -0.075
0 b1spot0057-B11 1 12 968500
3 0.141 4 0.148 56
0 b1spot0059-K13 1 12 1027346
3 0.207 4 0.015 5 0.060 6 -0.078 (b)
Tab. 5.2 (a) Première ligne du chier, (b) tableau de tableaux C'est à partir de ces deux tableaux que nous allons créer le chier in- versé. Tout d'abord, il faut créer la première ligne du chier contenant les attributs des colonnes. Nous savons que les nom des items seront de la forme gèneChrchrPospos. Pour y parvenir, nous allons réaliser une boucle de 0 à la taille du tableau 5.2 (b) - 1 et récupérer à chaque passe les valeurs des trois premières cases de chaque tableau. Le premier caractère sera une tabulation.
Nous obtenons donc la première ligne du chier contenu dans le tableau 5.3.
Ensuite, il faut gérer le reste des tableaux. Pour ce faire, nous allons imbriquer deux boucles :
une première qui parcourt les valeurs des puces à ADN (5.2a) avec un
5.1 Pré-traitement des données 38
b1spot0057-J17Chr1Pos849544 b1spot0057-B11Chr1Pos968500 b1spot0059-K13Chr1Pos1027346
Tab. 5.3 Première ligne du chier inversé indice i∈[3;taille−1].
la seconde parcourt le tableau de tableaux (5.2b) avec l'indice j en récupérant pour chaque tableau, la valeur i correspondante.
Par exemple, le tableau 5.4 montre (en gras) les valeurs récupérées pour un indice i= 3.
0 1 2 3 4 5 6
Name Chr Position 01.0185.3986 01.0752.3987 01.1230.3988 01.1248.3989 (a)
0 1 2
↓ ↓ ↓
0 b1spot0057-J17 1 12 849544
3 0.231 4 -0.058 5 0.103 6 -0.075
0 b1spot0057-B11 1 12 968500
3 0.141 4 0.148 56
0 b1spot0059-K13 1 12 1027346
3 0.207 4 0.015 5 0.060 6 -0.078 (b)
Tab. 5.4 Exemple pouri= 3
À chaque passe de la boucle principale (indice i), nous écrivons dans le chier la ligne générée, ce qui donne en sortie de cette première étape le chier représenté à la table 5.5 (chaque élément est séparé par une tabulation).
b1spot0057-J17Chr1Pos849544 b1spot0057-B11Chr1Pos968500 b1spot0059-K13Chr1Pos1027346
01.0185.3986 0.231 0.141 0.207 01.0752.3987 -0.058 0.148 0.015 01.1230.3988 0.103 0.060 01.1248.3989 -0.075 -0.078
Tab. 5.5 Fichier inversé
5.1 Pré-traitement des données 39
5.1.2 De l'alphanumérique au numérique
Nous avons maintenant un chier inversé, ce qui était notre premier but.
Or, nous savons que l'une des contraintes fortes que doit respecter notre chier est qu'il ne doit contenir que des valeurs numériques, car l'algorithme GRITE ne prend que des items ayant des noms numériques. Cependant, comme le montre le tableau 5.5, nous avons des caractères présents. Par con- séquent, nous avons opté pour une solution de correspondance nom / valeur stockés dans un chier. La seconde contrainte provient de l'INSERM. En ef- fet, en marge des données issues du traitement des puces à ADN, il y a des données médicales complémentaires à intégrer (données cliniques). Ces infor- mations sont stockées dans un chier au format CSV (caractère séparateur :
|) et doivent être concaténées au chier inversé généré précédemment.
Une nouvelle fois, ce chier possède des noms de colonnes et des valeurs qui lui sont associées. Ces noms de colonnes devront également être associées à des valeurs numériques. Voici le format type d'un de ces chiers (table 5.6).
CGH|Infos1|Infos2|Infos3|Infos4|Infos5 01.0185.3986|3|12|1|69|30
01.0752.3987|1|ND|ND|56|16 01.1230.3988|2|1|0|58|26 01.1248.3989|2|7|0|61|31
Tab. 5.6 Fichier de données complémentaires
On remarque que la première valeur de chaque ligne (ormis la première) correspond à un nom de puces à ADN présent dans le chier inversé au préal- able. On remarque aussi la présence de valeur non déterminée ("ND") ; elles seront traitées ultérieurement.
Les contraintes liées aux chiers et à leur format ont toutes été décrites.
Cependant, une dernière contrainte de qualité est imposée par l'équipe de chercheur. En eet, les chercheurs souhaitent pouvoir déterminer un inter- valle de valeurs dans lequel les données normalisées lors de l'analyse de la puce à ADN doivent se trouver ainsi qu'un critère de qualité. Ce dernier correspond au nombre de valeurs comprises dans cet intervalle par transac- tion divisé par le nombre de transaction. Si ce ratio est inférieur à ce critère de qualité, la transaction est considérée comme bruitée et ne sera pas présente dans le chier généré.
Nous allons désormais présenter pas à pas la création du chier qui sera utilisé par l'algorithme GRITE. Il peut se décomposer de la manière suivante :
5.1 Pré-traitement des données 40
1. traitement du chier complémentaire.
2. création du chier de correspondance.
3. création du chier nal.
5.1.3 Traitements complémentaires
Cette première sous-étape peut être scindée en deux parties. Tout d'abord, nous allons lire la première ligne, la scinder via la méthodesplit()en utilisant le caractère|, ce qui va nous donner un premier tableau qui sera réutilisé lors de la création du chier de correspondance.
Ensuite, nous allons lire ligne par ligne le reste du chier. Chaque ligne sera elle-même fragmentée pour nous donner un tableau. Ce tableau est par- couru pour modier les valeurs N D en −2000, c'est-à-dire une valeur en dehors du domaine de valeur (cette nouvelle valeur n'aura aucune inuence dans l'extraction de règles graduelles réalisées par GRITE). Enn, chaque tableau sera lui-même stocké dans un tableau indexé par le nom de la puces à ADN correspondant. Le tableau 5.7 montre les deux tableaux obtenus à la n de cette première sous étape.
0 1 2 3 4 5
CGH Infos1 Infos2 Infos3 Infos4 Infos5 (a)
01.0185.3986 01.0752.3987 01.1230.3988 01.1248.3989
↓ ↓ ↓ ↓
0 01.0185.3986
1 3
2 12
3 1
4 69
5 30
0 01.0752.3987
1 1
2 -2000
3 -2000
4 56
5 16
0 01.1230.3988
1 2
2 1
3 0
4 58
5 26
0 01.1248.3989
1 2
2 7
3 0
4 61
5 31
(b)
Tab. 5.7 (a) Première ligne (b) et reste du chier
5.1.3.1 Création du chier de correspondance
Pour générer le chier de correspondance, nous avons donc besoin du tableau 5.7a ainsi que de la première ligne du chier inversé puisque nous