Alignement d une séquence avec une banque. Thierry Lecroq Université de Rouen 1



Documents pareils
Jean-Philippe Préaux

Cours d analyse numérique SMI-S4

LIAISON A50 A57 TRAVERSEE

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

Vecteurs. I Translation. 1. Définition :

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

sommaire Introduction Fiches des 41 soldats disparus Le devoir de mémoire lettre à la mère de Maurice Quemin Glossaire / Sources

Plus courts chemins, programmation dynamique

Peut-on perdre sa dignité?

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

1. GENERALITES OBJET DU MARCHE DUREE DU MARCHE REGLEMENTATION SECURITE ASTREINTE ET GESTION DES

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exercices de géométrie

Perl Orienté Objet BioPerl There is more than one way to do it

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

! " #$ % $! & '(# ) (%%

ARBRES BINAIRES DE RECHERCHE

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

de calibration Master 2: Calibration de modèles: présentation et simulation d

Cours d Analyse. Fonctions de plusieurs variables

!" #$#% #"& ' ( &)(*"% * $*' )#""*(+#%(' $#),")- '(*+.%#"'#/* "'") $'

Chapitre 5 : Flot maximal dans un graphe

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Exemple d application: l annuaire DNS Claude Chaudet

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Optimisation for Cloud Computing and Big Data

Université Paris-Dauphine DUMI2E 1ère année, Applications

INFORMATIONS DIVERSES

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Continuité et dérivabilité d une fonction

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

à la bonne gestion du courrier guide pratique pour les professionnels

Bougez, protégez votre liberté!

Le Préfet de Seine et Marne, Officier de la Légion d'honneur, Officier de l'ordre National du Mérite,

!"" # $%%&'())) * + ' # ()))'()),!"" -. /

Initiation à l algorithmique

Algorithmes de recherche

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Données Réparties. Thibault BERNARD.

Algorithmique et Programmation, IMA

MCMC et approximations en champ moyen pour les modèles de Markov


Centre d'etudes Nucléaires de Fontenay-aux-Roses Direction des Piles Atomiques Département des Etudes de Piles

Quantification Scalaire et Prédictive

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

4 Exemples de problèmes MapReduce incrémentaux

TP1 Méthodes de Monte Carlo et techniques de réduction de variance, application au pricing d options

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Une comparaison de méthodes de discrimination des masses de véhicules automobiles

Corrigé des TD 1 à 5

Structures algébriques

Coefficients binomiaux

1 Définition et premières propriétés des congruences

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Optimisation Combinatoire (Méthodes approchées) II. Recherche Locale simple (Les bases)

Exercice 6 Associer chaque expression de gauche à sa forme réduite (à droite) :

Activités de mesure de longueur avec des unités conventionnelles

Logiciel XLSTAT version rue Damrémont PARIS

Intégration et probabilités TD1 Espaces mesurés Corrigé

Conception de bâtiments d habitation adaptés aux personnes âgées Aide-mémoire

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Chap. 3: Le modèle de données entité-association (E.A.)

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Le théorème de Thalès et sa réciproque

ESSEC. Cours «Management bancaire» Séance 3 Le risque de crédit Le scoring

Architecture des Systèmes d Information Architecture des Systèmes d Information

Bases de données réparties: Fragmentation et allocation

Exercice numéro 1 - L'escalier

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nouveau Barème W.B.F. de points de victoire 4 à 48 donnes

OUTILS EN INFORMATIQUE

4. Verdissement, une PAC plus verte

Comment insérer une image de fond?

Vu le dahir du 7 kaada 1371 (30 Juillet 1952) relatif à l urbanisme et, notamment, son article 18 ;

5 Gestionnaire de dépenses

Introduction à la théorie des graphes. Solutions des exercices

Traitement du Signal Février 05

Ekoconstruct / Catalogue ek construct

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Objets Combinatoires élementaires

Travaux en cours. Diaporama réalisé par Thierry MARBEHAN Avec la collaboration de la société SIEMENS CERBERUS

Fête de la science Initiation au traitement des images

Étude des formes de pratiques de la gymnastique sportive enseignées en EPS à l école primaire

Sylvain Meille. Étude du comportement mécanique du plâtre pris en relation avec sa microstructure.

Parking. Les places accessibles devront être les plus proches de l entrée.

FONDS DE L AVENIR DE LA SANB INC. RÈGLEMENT ADMINISTRATIF RÉGISSANT LES POLITIQUES DE

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

Caractérisation de défauts par Magnétoscopie, Ressuage, Courants de Foucault

C2 - DOSAGE ACIDE FAIBLE - BASE FORTE

ALGORITHMIQUE ET PROGRAMMATION En C

Etude et développement d un moteur de recherche

chapitre 4 Nombres de Catalan

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Baies serveur CATALOGUE DES PRODUITS DE ZPAS GROUPE. ZPAS-ESTCI 7, rue de l industrie SOULTZ contact@estci.fr

Transcription:

Alignement d une séquence avec une banque 1

Problématique générale Localiser des alignements significatifs entre une séquence requête x dans une banque de p séquences Y = {y 0,y 1,,y p 1 }. La solution par programmation dynamique en O(mn) si m = x et n = Σ y i est trop coûteuse. Il faut donc développer des heuristiques. 2

FASTA (alignement global avec brêche) [Pearson & Lipman 1988] On traite les y i séparément les unes à la suite des autres. On considère deux entiers : k,l > 0. 3 phases : localisation des facteurs de longueur l de x dans y ; sélection de la diagonale d contenant le plus de facteurs de longueur l ; alignement par programmation dynamique sur une bande de largeur 2k autour de la diagonale d. 3

n = y On définit la diagonale d sur { 1,0,1,,m 1} x { 1,0,1,,n 1} comme étant l ensemble des couples (i,j) tels que j i = d. 4

On définit l ensemble Z l par Z l = { (i,j) 0 i m l, 0 j n l et x[i..i+l 1] = y[j..j+l 1]} Autrement dit, l ensemble Z l contient tous les couples (i,j) tel que le facteur de longueur l qui commence à la position i sur x est égal au facteur de longueur l qui commence à la position j sur y. 5

Pour chaque diagonale m d n on considère le nombre d éléments de Z l se trouvant sur cette diagonale : compte[d] = card { (i,j) Z l j i = d } 6

Pour calculer les valeurs de la table compte : on associe de manière bijective un rang à chaque lettre a de l alphabet A : 0 rang(a) card A 1 pour a A 7

On pose l 1 code(w[0.. l 1]) = Σ rang(w[i]) x (card A) i i = 0 pour w A* et w = l. 8

Ainsi code(w[i..i+l 1]) = code(w[i 1..i+l 2]) / card A + rang(w[i+l 1]) x (card A) l 1 9

Les codes des facteurs de longueur l de x sont calculés en une seule passe et on accumule les facteurs dans une table position à (card A) l éléments : position[c] = { i code(x[i.. i+l 1]) = c } 10

algo HACHAGE(x,m,l) pour c 0 à (card A) l 1 faire position[c] exp 1 code 0 pour i 0 à l 1 faire code code + rang(x[i]) x exp exp exp x card A position[code] { 0 } pour i l à m 1 faire code code div card A + rang(x[i]) x exp position[code] position[code] U { i l+1 } retourner position 11

algo DIAGONALE(x,m,y,n,l) pour d m à n faire compte[d] 0 exp 1 code 0 pour j 0 à l 1 faire code code + rang(y[j]) x exp exp exp x card A pour chaque i position[code] faire compte[ i] 1 pour j l à n 1 faire code code div card A + rang(y[j]) x exp pour chaque i position[code] faire compte[j l+1 i] compte[j l+1 i] + 1 retourner compte 12

Il suffit alors de repérer la diagonale d ayant le compte le plus élevé pour ensuite effectuer un alignement par programmation dynamique autour de cette diagonale. 13

algo ALIGNEMENT BANDE(x,m,y,n,d,k) i max { 1, d 1 k} i min { d 1+k,m 1} j max { 1,d 1 k} j min {d 1+k,n 1} c g pour i i à i faire T[i, 1] c c c+g c g pour j j à j faire T[ 1,j] c c c+g pour i 0 à m 1 faire pour j i+d k à i+d+k faire si 0 j n 1 alors T[i,j] T[i 1,j 1] + Sub(x[i],y[j]) si j i 1 d k alors T[i,j] min { T[i,j],T[i,j 1]+g } si j i+1 d k alors T[i,j] min { T[i,j],T[i 1,j]+g } retourner T 14

Exemple x = YWCQPGK, m = 7 y = LAWYQQKPGKA, n = 11 l = 2 k = 2 card A = 20 a A C G K L P Q W Y rang(a) 0 1 5 8 9 12 13 18 19 15

16 165 112 253 261 38 379 code(x[i..i+l 1]) GK PG QP CQ WC YW x[i..i+l 1] 5 4 3 2 1 0 i 0 2 3 5 4 1 position[c] 379 261 253 165 112 38 c 8 165 112 248 173 273 279 399 360 9 code(y[j..j+l 1)] KA GK PG KP QK QQ YQ WY AW LA y[j..j+l 1] 9 8 7 6 5 4 3 2 1 0 j

17 8 165 112 248 173 273 279 399 360 9 code(y[j..j+l 1)] KA GK PG KP QK QQ YQ WY AW LA y[j..j+l 1] 9 8 7 6 5 4 3 2 1 0 j 2 compte [d] 11 10 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 d

T 1 0 1 2 3 4 5 6 7 8 9 10 L A W Y Q Q K P G K A 1 0 Y 1 W 2 C 3 Q 4 P 5 G 6 K 18

T 1 0 1 2 3 4 5 6 7 8 9 10 L A W Y Q Q K P G K A 1 0 Y 1 W 2 C 3 Q 4 P 5 G 6 K 19

20 19 13 16 13 K 6 19 16 13 14 11 G 5 19 16 13 12 9 P 4 19 16 13 10 7 Q 3 19 16 13 10 7 C 2 17 14 11 8 5 W 1 15 12 9 8 5 Y 0 15 12 9 6 3 1 A K G P K Q Q Y W A L 10 9 8 7 6 5 4 3 2 1 0 1 T

21 19 13 16 13 K 6 19 16 13 14 11 G 5 19 16 13 12 9 P 4 19 16 13 10 7 Q 3 19 16 13 10 7 C 2 17 14 11 8 5 W 1 15 12 9 8 5 Y 0 15 12 9 6 3 1 A K G P K Q Q Y W A L 10 9 8 7 6 5 4 3 2 1 0 1 T

YWCQ PGK AWYQQKPGK YWC Q PGK AWYQQKPGK YW CQ PGK AWYQQKPGK 22

l : ktup 6 pour les acides nucléiques 2 pour les acides aminés 23

BLAST (Alignement local sans brêche) [Altschul et al 1990] On considère deux entiers k et l. On considère le score s défini par u 1 s(u,v) = Σ Sub(u[i],v[i]) pour deux mots u et v de même longueur. i=0 24

On va construire l ensemble des voisins fréquentables de tous les facteurs de x de longueur l. Fact l (x) = { w w fact x et w = l } V k (Fact l (x)) = { z A l s(w,z) k 25 pour w Fact l (x) }

L ensemble V k (Fact l (x)) peut être construit en temps O(card V k (Fact l (x)) ) si on dispose pour chaque lettre a A de la liste des lettres de l alphabet triée dans l ordre décroissant des scores de leur substitution à a. Les éléments de cette liste sont des couples (b, Sub(a,b)) lettre score 26

Ces listes sont rangées dans une table à deux dimensions notée L. 27

algo GENERER VOISINS(l) V seuil[l 1] k pour i 0 à m l faire pour j l 1 à 1 faire seuil[j 1] seuil[j] score(l[x[i+j],0]) GV(i,ε,0,0,0) retourner V 28

algo GV (i,v,j,p,t) si j = l alors V V U { v } sinon si t < card A alors c L[x[i ],t] si p + score[c] seuil[j ] alors v v lettre[c] GV(i +1,v[0..j ],j +1,p+score[c],0) GV(i,v[0..j 1],j,p,t+1) 29

L appel GV(i,ε,0,0,0) calcule tous les voisins fréquentables de x[i..i+l 1]. Au début de GV(i,v,j,p,t) p = s(v[0..j 1],x[i j..i 1]) k et on essaie d étendre v par la lettre de L[x[i ],t]. 30

L 0 1 2 3 4 5 A (A,5) (E, 2) (K, 3) (Q, 3) (R, 4) (Y, 5) E (E,5) (A, 2) (K, 3) (Q, 3) (R, 3) (Y, 5) K (K,5) (A, 3) (E, 3) (K, 3) (Q, 3) (Y, 5) Q (Q,5) (A, 3) (E, 3) (K, 3) (R, 3) (Y, 5) 31

x = EAAQK, k = 8, l = 3 seuil[2] 8 i (0,1,2) j (2,1) 32

i = 0, j = 2, seuil[1] 3 i = 0, j = 1, seuil[0] 2 GV(0,ε,0,0,0) GV(1,E,1,5,0) GV(2,EA,2,10,0) GV(3,EAA,3,15,0) GV(2,EA,2,10,1) GV(3,EAE,3,8,0) GV(2,EA,2,10,2) EAK,7 < seuil[j =2] GV(1,E,1,5,1) GV(2,EE,2,3,0) GV(3,EEA,3,8,0) GV(2,EE,2,3,1) EEE,1 < seuil[j =2] GV(1,E,1,5,2) EK,2 < seuil[j =1] GV(0,ε,0,0,1) GV(1,A,1, 2,0) GV(2,AA,2,3,0) GV(3,AAA,3,8,0) GV(2,AA,2,3,1) AAE,1 < seuil[j =2] GV(1,A,1, 2,1) AE, 4 < seuil[j =1] GV(0,ε,0,0,2) K, 3 < seuil[j =0] 33

GV(1,ε,0,0,0) GV(2,A,1,5,0) GV(3,AA,2,10,0) GV(4,AAQ,3,15,0) GV(3,AA,2,10,1) AAA,7 < seuil[j =2] GV(2,A,1,5,1) GV(3,AE,2,3,0) GV(4,AEQ,3,8,0) GV(3,AE,2,3,1) AEA, 1 < seuil[j =2] GV(2,A,1,5,2) AK,2 < seuil[j =1] GV(1,ε,0,0,1) GV(2,E,1, 2,0) GV(3,EA,2,3,0) GV(4,EAQ,3,8,0) GV(3,EA,2,3,1) EAA,0 < seuil[j =2] GV(2,E,1, 2,1) EE, 4 < seuil[j =1] GV(1,ε,0,0,2) K, 3 < seuil[j =0] 34

GV(2,ε,0,0,0) GV(3,A,1,5,0) GV(4,AQ,2,10,0) GV(5,AQK,3,15,0) GV(4,AQ,2,10,1) AQA,7 < seuil[j =2] GV(3,A,1,5,1) AA,2 < seuil[j =1] GV(2,ε,0,0,1) GV(3,E,1, 2,0) GV(4,EQ,2,3,0) GV(5,EQK,3,8,0) GV(4,EQ,2,3,1) EQA,0 < seuil[j =2] GV(3,E,1, 2,1) EA, 5 < seuil[j =1] GV(2,ε,0,0,2) K, 3 < seuil[j =0] 35

Ensuite on construit un AFD (automate fini déterministe) A tel que L(A) = A*V k (Fact l (x)) et on analyse y avec A. 36

Puis on étend (par programmation dynamique) vers la droite et vers la gauche les facteurs de y contenant des éléments de V k (Fact l (x)). 37

k : T (word score threshold) l : W (word size) 38

Différentes versions BLASTP BLASTN BLASTX requête protéine nucléique protéine banque protéine nucléique nucléique (traduction) TBLASTN TBLASTX nucléique (traduction) nucléique (traduction) protéine 39 nucléique (traduction)

Améliorations PSI BLAST : Position Specific Iterative : crée un profil pendant la recherche et le raffine au fur et à mesure des itérations. 40