Différentes applications de l oracle des facteurs Thierry Lecroq LITIS Thierry.Lecroq@univ-rouen.fr http://www-igm.univ-mlv.fr/~lecroq en collaboration avec : Joël l Alexandre, Hélène H Dauchel,, Arnaud Lefebvre et Élise Prieur. Séminaire MORO 01/02/06
Plan rappels de biologie moléculaire (en images) notations oracle des facteurs FORRepeats compression vecteurs des suffixes Séminaire MORO 01/01/06-2
Une cellule eucaryote Séminaire MORO 01/01/06-3
Un chromosome Séminaire MORO 01/01/06-4
L ADN Séminaire MORO 01/01/06-5
Les paires de bases Séminaire MORO 01/01/06-6
Les nucléotides Séminaire MORO 01/01/06-7
De l ADN à la protéine (en passant par l ARN) Séminaire MORO 01/01/06-8
La réplication de l ADN Séminaire MORO 01/01/06-9
Les gènes Séminaire MORO 01/01/06-10
De l ADN à l ARN : la transcription Séminaire MORO 01/01/06-11
L ARN Séminaire MORO 01/01/06-12
Les codons Séminaire MORO 01/01/06-13
Le code génétique Séminaire MORO 01/01/06-14
Tailles des génomes (Mb) Escherichia coli (bactérie) 4,6 Saccharomyces cerevisiae (levure) 13 C. elegans (ver) 100 Arabidopsis thaliana (plante) 125 Drosophila melanogaster (mouche) 180 Riz 400 Homo sapiens 3300 Fougère 160 000 Amoeba dubia (amibe) 670 000 Séminaire MORO 01/01/06-15
Les deux thèmes d ABISS Répétitions Épissage alternatif Séminaire MORO 01/01/06-16
Les répétitions On estime que le génome g humain contient plus de 90% de séquences répétées r qui peuvent être de plusieurs types : répétitions en tandem ; répétitions dispersées. es. Séminaire MORO 01/01/06-17
L épissage alternatif 1 ARN messager prémature exon 1 exon 2 exon 3 épissage 1 épissage 2 exon 1 exon 2 exon 3 exon 1 exon 3 plusieurs ARN messagers Séminaire MORO 01/01/06-18
L épissage alternatif (2) nombre de génes humains escomptés s avant séquençage : ~ 100 000 nombre de gènes g estimés s après s séquens quençage : ~ 30 000 une explication possible : l épissage alternatif Séminaire MORO 01/01/06-19
Notations Α : alphabet (ensemble de lettres ou bases) : concaténation nation Α* * : ensemble des suites finies de lettres w Α* * : mot ou séquence w : longueur du mot w w = w[0] w[1] w[ [ w -1] -1] = w[0.. [0.. w -1] -1] i (0 i w -1) -1) : position sur le mot w ε : mot vide ( ε = 0) Séminaire MORO 01/01/06-20
Notations (2) u est un préfixe v est un suffixe de w si w = uzv z est un facteur Fact(w) ) : ensemble des facteurs de w Alph(w) ) : ensemble des lettres de w Séminaire MORO 01/01/06-21
Séquences biologiques ADN : Α = {a,{ c, g, t } (acides nucléiques, paires de base) ARN : Α = {a,{ c, g, u } protéine : card A = 20 (acides aminés) Séminaire MORO 01/01/06-22
Répétitions exactes M. Crochemore,, An optimal algorithm for computing the repetitions in a word, Information Processing Letters 12 (5) (1983) 244-250. R. Kolpakov & G. Kucherov,, On maximal repetitions in words, Journal of Discrete Algorithms 1 (1) (2000) 159-186. W. F. Smyth,, Repetitive perhaps, but not boring, Theoretical Computer Science 249 (5) (2000) 345-355. Séminaire MORO 01/01/06-23
Structures d'index Arbre des suffixes Arbre compact des suffixes Table des suffixes Automate des suffixes (DAWG) Automate compact des suffixes (CDAWG) Vecteurs de suffixes Séminaire MORO 01/01/06-24
Oracle des facteurs Allauzen,, Crochemore, Raffinot, 1999 Pour un mot w de longueur m l'oracle des facteurs de w est un automate (Q,( q 0, F, δ) ) où o : Q = {0, 1,..., m} } est l'ensemble des états q 0 = 0 est l'état initial F = Q est l'ensemble des états terminaux δ est la fonction de transition Séminaire MORO 01/01/06-25
Oracle des facteurs Allauzen, Crochemore, Raffinot,, 1999 Pour un mot w de longueur m l'oracle des facteurs de w : reconnaît t au moins tous les facteurs de w possède exactement m + 1 états possède entre m et 2m 2-1 transitions Séminaire MORO 01/01/06-26
Exemple d'oracle des facteurs w = aattatt a a t t a t t 0 1 2 3 4 5 6 7 t t a Fact(w) = { ε, a, b, aa, at, ta, tt, aat, att, tat, tta, aatt, atta, tatt, ttat, aatta, attat, ttatt, aattat, attatt, aattatt } Séminaire MORO 01/01/06-27
w = aattatt Langage de l'oracle a a t t a t t 0 1 2 3 4 5 6 7 t t a ata est reconnu bien qu'il ne soit pas un facteur de aattatt Séminaire MORO 01/01/06-28
Construction de l'oracle des facteurs w = aatt a a t t 0 1 2 3 4 t t Lien suffixe de l'état i : suf(i) = δ(0,x) où x est le plus long suffixe répété de w[0..i-1] Séminaire MORO 01/01/06-29
Construction de l'oracle des facteurs w = aatta a a t t 0 1 2 3 4 a 5 t t a Séminaire MORO 01/01/06-30
Construction de l'oracle des facteurs w = aattag a a t t 0 1 2 3 4 a 5 g 6 t t a g g Séminaire MORO 01/01/06-31
Construction de l'oracle des facteurs Théor orème [ACR 99] : L'oracle des facteurs d'un mot de longueur m peut être construit en temps et en espace O(m). Séminaire MORO 01/01/06-32
Oracle des facteurs d'un mot w bijection entre : les longueurs des préfixes de w les états de l'oracle des facteurs de w toutes les transitions qui mènent m à l'état i sont étiquetées es par la lettre w[i-1] deux types de transitions : transitions internes : δ(i, w[i]) = i+1 pour 0 1 pour 0 i m- m-1 transitions externes : δ(i, w[j-1]) = j avec j-i > 1 pour 0 i < j m Séminaire MORO 01/01/06-33
Représentation de l'oracle des facteurs w = aattatt a a t t a t t 0 1 2 3 4 5 6 7 t t a aattatt,(0,3),(1,3),(3,5) représentation indépendante de l'alphabet Séminaire MORO 01/01/06-34
Taille en pratique de l oracle environ 10,5 fois la longueur de la séquences (sans raffinement) Séminaire MORO 01/01/06-35
Recherche exacte de mot L'oracle des facteurs d'un mot w de longueur m ne reconnaît t qu'un seul mot de longueur m Séminaire MORO 01/01/06-36
Calcul de répétitions avec l'oracle des facteurs Pour un mot w de longueur m on définit d : LRS[i] ] = max { v v est suffixe de w[0.. [0..i]] et v est facteur de w[0.. [0..i-1] } pour 0 i < m Théor orème [LL2000] : il est possible de calculer en temps et espace O(m) ) pour 0 i < m : 0 lrs[i] LRS[i] En pratique lrs[i] ] est très s proche de LRS[i]. Séminaire MORO 01/01/06-37
Que calcule-t-on? w suf(i) i lrs(i) lrs(i) Séminaire MORO 01/01/06-38
Calcul de répétitions avec l'oracle des facteurs w = attcatcgatc 0 a 1 t 2 t 3 c 4 a 5 t 6 c g a t c 7 8 9 10 11 0 0 1 0 1 2 2 0 1 2 2 Séminaire MORO 01/01/06-39
Séminaire MORO 01/01/06-40
Séminaire MORO 01/01/06-41
Séminaire MORO 01/01/06-42
Double-cliquez pour ajouter un titre Double-cliquez pour ajouter un plan Séminaire MORO 01/01/06-43
Double-cliquez pour ajouter un titre Double-cliquez pour ajouter un plan Séminaire MORO 01/01/06-44
Double-cliquez pour ajouter un titre Double-cliquez pour ajouter un plan Séminaire MORO 01/01/06-45
Double-cliquez pour ajouter un titre Double-cliquez pour ajouter un plan Séminaire MORO 01/01/06-46
Séminaire MORO 01/01/06-47
Double-cliquez pour ajouter un titre Double-cliquez pour ajouter un plan Séminaire MORO 01/01/06-48
Résultats expérimentaux Mb exact H. pylori 1,59 2s B. subtilis 4,02 6s E. coli 4,42 6s S. cerevisiae 11,50 14s A. thaliana II et IV 35,47 57s C. elegans 92,40 122s 500 MHz, 1 Go Séminaire MORO 01/01/06-49
Recherche de répétitions approchées Extension à droite et à gauche des répétitionsr exactes en utilisant différentes distances. En étendant les répétitions r de longueur 15 et en fixant un seuil de 85% d identitd identité on double les temps de calcul. Séminaire MORO 01/01/06-50
Compression séquentielle sans perte On code les mots soit par une lettre lors de sa première occurrence soit par des couples (position, longueur) lors de répétitions r de facteurs Séminaire MORO 01/01/06-51
Compression séquentielle sans perte On suppose que w[0.. [0..i]] a déjà d été codé j = min{ k > i k - lrs[k] ] > i + 1 et pour i < h < k : h - lrs[h] i + 1 } alors on code : (suf(j-1) - j + 1 + i, j - 1 i) w[i + 1] si w[i + 1] Alph(w[0.. [0..i]) Séminaire MORO 01/01/06-52
Exemple de compression séquentielle w = attcatcgatc 0 a 1 t 2 t 3 c 4 a 5 t 6 c g a t c 7 8 9 10 11 0 0 1 0 1 2 2 0 1 2 2 at(1,1) (1,1)c(0,2)(3,1)g(0,2)(3,1) Séminaire MORO 01/01/06-53
Compression séquentielle : résultats gzip compror bzip2 Fichier bpc ct dc % ct dt % ct dt ChrIV 2,17 230,00 2,00 2,9 37,00 9,65 2,13 37,00 9,65 ChrII 2,18 261,00 2,00 2,9 42,00 10,90 2,14 40,00 12,00 bib 2,5 0,14 0,01 3,1 0,21 0,06 1,97 0,17 0,04 book1 3,25 1,18 0,08 3,8 2,00 0,50 2,42 1,47 0,47 book2 2,7 0,68 0,06 3,3 1,30 0,35 2,06 1,1 0,33 progc 2,67 0,04 0,01 3,8 0,09 0,02 2,53 0,07 0,02 trans 1,61 0,08 0,01 2,16 0,13 0,04 1,52 0,14 0,03 thesis 1,74 7,47 0,65 0,94 7,65 2,37 1,3 18,6 3,44 article1 1,65 5,14 2,5 1,2 37,5 2,5 1,65 5,14 2,5 article2 2,2 24,6 7,1 1,25 51,5 8,2 2,04 8,8 8,6 alpha 0,03 0,08 0,57 0,002 0,3 0,55 0,003 4,45 0,6 Séminaire MORO 01/01/06-54
Arbres des suffixes Arbre des suffixes de aatttatttatta$ Séminaire MORO 01/01/06-55
Vecteurs des suffixes Vecteurs des suffixes de aatttatttatta$ Séminaire MORO 01/01/06-56
Vecteurs des suffixes Séminaire MORO 01/01/06-57
Vecteur compact des suffixes Séminaire MORO 01/01/06-58
Références Maxime Crochemore,, Christophe Hancart et Thierry Lecroq Algorithmique du texte Vuibert,, 2001. http://chl.univ-mlv.fr Séminaire MORO 01/01/06-59
Références The National Health Museum Graphics Gallery http://www.accessexcellence.org www.accessexcellence.org/ab/gg/ Séminaire MORO 01/01/06-60
Références A. Lefebvre, Une nouvelle heuristique pour la détection d de répétitions r sur des génomes g complets, pour la comparaison de génomes g et pour la compression,, thèse de doctorat de l Universitl Université de Rouen, 2003. A. Lefebvre et T. Lecroq,, A heuristic for computing repeats with a factor oracle: Application to biological sequences, International Journal of Computer Mathematics 79(12) (2002) 1303-1315. A. Lefebvre, T. Lecroq et J. Alexandre,, An improved algorithm for finding longest repeats with a modified factor oracle, Journal of Automata, Languages and Combinatorics 8(4) (2003) 647-658. A. Lefebvre, T. Lecroq,, H. Dauchel et J. Alexandre, FORRepeats: : detects repeats on entire chromosomes and between genomes, Bioinformatics 19(3) (2003) 319-326. A. Lefebvre et T. Lecroq, Compror: : on-line lossless compression with a factor oracle, Information Processing Letters 83(1) (2002) 1-6. Séminaire MORO 01/01/06-61
Références L. Cleophas,, G. Zwaan et B. Watson,, Constructing Factor Oracles, in Proceedings of the Prague Stringology Conference 2003, 2003. R. Kato,, A New Full-Text Search Algorithm Using Factor Oracle as Index, Research Report, Tokyo Institute of Technology,, 2003. R. Kato,, A New Text Search Algorithm Using Factor Oracle as Full-Text Index, Research Report, Tokyo Institute of Technology,, 2003. A. Mancheron et C. Moan,, Combinatorial Characterization of the Language Recognized by Factor and Suffix Oracles, in Proceedings of the Prague Stringology Conference 2004, 2004. R. Kato, Finding Maximal Repeats with Factor Oracles, Research Report, Tokyo Institute of Technology,, 2004. R. Kato et O. Watanabe, Substring search and repeat search using factor oracles, Information Processing Letters 93( 6) 2005, 269-274. H. Iwasaki, Error analysis of factor oracles, Research Report, Tokyo Institute of Technology,, 2005. H. Iwasaki,, A detail analysis on factor oracle construction of computing repeated factors, Research Report, Tokyo Institute of Technology,, 2006. Séminaire MORO 01/01/06-62
Perspectives construire l'oracle des facteurs de w[i+k....j+k] à partir de l'oracle des facteurs de w[i....j]] en temps amorti O(k) ) ; Séminaire MORO 01/01/06-63
Perspectives construire l'oracle des facteurs de w[i+k....j+k] à partir de l'oracle des facteurs de w[i....j]] en temps amorti O(k) ) ; construire une base d oracles ; alignement multiple avec F. Guinand (LIH, Le Havre). Séminaire MORO 01/01/06-64