Un algorithme d’indexation de motifs approchés An approximate motifs indexing algorithm Johann P ELFRÊNE Saïd A BDEDDAÏM Joël A LEXANDRE LIFAR / ABISS - Université de Rouen ABISS, UMR CNRS 6037 - Université de Rouen ExonHit Therapeutics - 65, Boulevard Masséna 75013 Paris Mel : {johann.pelfrene,said.abdeddaim,joel.alexandre}@univ-rouen.fr Résumé Dans ce travail, nous proposons un nouvel algorithme pour indexer l’ensemble des motifs approchés présents dans une ou plusieurs séquences. L’indexation de motifs exacts est un problème qui connaît des solutions algorithmiques satisfaisantes. Cependant le fait de se limiter à des motifs exacts réduit considérablement l’intérêt en ce qui concerne les séquences biologiques. Après avoir exposé les bases et les contraintes de l’indexation de motifs approchés, nous expliquons brièvement l’approche utilisée ainsi que les tests que nous avons réalisés. Mots clés : index, motif approché, algorithme Abstract In this work, we propose a new algorithm, designed for indexing approximate motifs occurring in one or more sequences. Indexing exact motifs is a problem that has good algorithmic solutions. Therefore, being limited to exact motifs reduces amazingly the interest concerning biosequences. After having described indexing approximate motifs basis and constraints, we will quickly explain our approach, and the tests we realized. Keywords: index, approximate motif, algorithm 1 Introduction La croissance exponentielle des données de séquençages et d’expressions disponibles fait qu’à terme, les temps de parcours de toutes ces banques risquent de devenir un facteur limitant pour en extraire l’information. Une des solutions pour réduire le temps de parcours est de créer un index. De même que lorsque l’on recherche un mot dans un livre, il est plus simple de parcourir son index que de lire intégralement toutes les pages. Cette création d’index, même si elle est très coûteuse dans un premier temps, permet d’accélérer les recherches ultérieures dans les banques. Un motif approché est un motif dans lequel on autorise qu’à certaines positions, la lettre ne soit pas fixée (joker). Notre objectif est de développer un nouvel algorithme pour l’indexation des motifs approchés afin de constituer une nouvelle méthode d’assemblage d’EST qui viendra se substituer aux logiciels mis en œuvre dans le logiciel ACCES (cf. "Détection d’événements d’épissage alternatif par l’Assemblage Consensuel de Contig à partir d’ESt : ACCES", B. Bely). Dans un premier temps, nous présenterons les problèmes liés à l’indexation, puis nous expliquerons notre nouvel algorithme d’indexation de motifs approchés primitifs, ainsi que quelques tests que nous avons effectués. 2 Motif primitif versus Motif non redondant De nombreuses méthodes d’indexation ont été proposées pour la construction d’index de motifs répétés de manière exacte [1, 2]. Si les performances de l’indexation de motifs exacts sont tout à fait satisfaisantes, le fait d’exiger que le motif se retrouve exactement (sans tolérer d’éventuelles petites différences) dans les séquences limite considérablement l’intérêt de ces méthodes. Indexer efficacement des motifs approchés reste cependant un problème qui n’est pas encore parfaitement résolu : créer un index exhaustif des motifs approchés n’est pas possible. En effet, la taille d’un tel index, et le temps de calcul croissent exponentiellement avec la taille des séquences ! Un résultat récent [3] montre cependant qu’un petit sous-ensemble de motifs approchés, dits motifs maximaux non redondants, permet de déduire tous les autres motifs. On considère un seuil , le nombre minimal de répétition du convention CIFRE - ExonHit Therapeutics Ce travail est soutenu dans le cadre du programme "Bio-ingénierie 2000" du Ministère de la Recherche JOBIM 2002 UnPelfrêne, J. JOBIM algorithme 2002 S.d’indexation Abdeddaïmde et motifs J. Alexandre approchés 263 motif dans le texte (séquence). Dans toute la suite, nous ne retiendrons que les motifs atteignant un seuil fixé . On dira qu’un motif est maximal s’il n’existe pas un autre motif plus grand apparaissant aux mêmes positions (à un décalage près) dans un texte donné. Nous notons l’ensemble des positions du motif dans le texte . Un motif est redondant dans un texte si il existe des motifs maximaux tels que . Par exemple dans la séquence AAGAAACAAATA, le motif A__AA__A est redondant pour les deux motifs A__AA__AA et AA_AAA_A (pour !#" ) et AA__A est non redondant. Laxmi Parida [3] montre qu’il existe au plus $% (où % est la taille du texte) motifs maximaux non redondants, et donne un algorithme en &'%)(+*,.-%) pour les trouver. Si ce résultat réduit considérablement le nombre de motifs à considérer, la complexité de l’algorithme limite sur une application en génomique où la taille des séquences peut être très importante. Nous proposons une définition des motifs primitifs, plus stricte que la notion de redondance : un motif maximal est primitif dans un texte s’il n’existe pas de motifs maximaux et / 1032 tels que 4567 98:/ . Pour le seuil fixé à 1, le texte lui-même est l’unique motif primitif. 3 Extraction des motifs primitifs pour un seuil de 2 Nous avons établi un nouvel algorithme, et une preuve que le nombre de motifs primitifs pour le seuil de 2 est inférieur à % , la taille du texte. Dans un premier temps, notre approche consiste à comparer le texte avec chacun de ses suffixes : nous allons obtenir %;5< motifs maximaux en &'%>=. . Cet ensemble contient au moins tous les motifs primitifs. Dans un second temps, on élimine de cet ensemble les motifs maximaux non primitifs. Cette étape nécessite un temps en &'%)(? . L’index consiste en un automate reconnaissant l’ensemble des motifs primitifs du texte pour le seuil . 4 Tests Nous avons testé notre programme sur quelques séquences d’EST. Voici un tableau récapitulatif sur trois séquences : Num Acc taille séquence nb motifs primitifs nb motifs non primitifs lg moyenne AA054825 BG673928 AI392072 196 473 618 172 451 585 8 15 22 101 241 318 TAB . 1 – Résultats de quelques tests Nous constatons bien que le nombre de motifs primitifs est très faible par rapport au nombre de motifs approchés qui peuvent être trouvés dans les séquences. Par exemple une séquence de longueur 64 peut contenir "A@B motifs approchés. "9@B , ramené sur une échelle de temps, est supérieur à la durée de vie (en secondes) de notre soleil ! Nos autres tests montrent qu’il y a toujours plus de non primitifs lorsque l’on étudie une seule séquence (6% à 7%), qu’avec plusieurs (environ 3%). Il s’avère donc que le nombre de motifs non primitifs trouvés est très restreint, et l’on peut donc s’interroger sur l’utilité pratique d’appliquer cette étape de d’élimination, d’autant plus que l’étape nécessaire à la détection de ces motifs non primitifs trouvés par l’algorithme est très gourmande en temps. 5 Conclusion Nous expliquons un nouvel algorithme permettant de détecter tous les motifs primitifs d’un texte pour un seuil fixé à 2, ainsi qu’une nouvelle borne pour le nombre de ces motifs dans ce cas. Nous pensons que cet algorithme va nous servir de base pour écrire un algorithme incrémental, qui nous permettra d’obtenir les motifs primitifs pour un seuil quelconque , à partir motifs primitifs avec un seuil C;D< . Références [1] C ROCHEMORE , H ANCART et L ECROQ , Algorithmique du Texte, Vuibert, 2001, chapitre 5. [2] NAVARRO , BAEZA -YATES, S UTINEN et TARHIO , « Indexing methods for approximate string matching », IEEE Data Engineering Bulletin 24, 2001. [3] PARIDA , F LORATOS et R IGOUTSOS, « Pattern discovery on character sets and real-valued data : Linear bound on irredundant motifs and an efficient polynomial time algorithm », SODA, 2000. 264 JOBIM 2002