Combinatoire et algorithmique de l’ARN - Partie 2 Programmation dynamique
Alain Denise
Yann Ponty
´ CNRS/LIX, Ecole Polytechnique AMIB, Inria Saclay PIMS Vancouver Simon Fraser University Canada
http://tinyurl.com/EPIT14-Ponty
http://goo.gl/Nic9kJ
http://www.lix.polytechnique.fr/~ponty/enseignement/2014-05-EPIT-RNA-Part2-Ponty.pdf
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Avant propos . . . . . . ou comment gagner 1 million$ (+garder votre job) en rendant la monnaie ! ! ` ` Probleme : Vous disposez de pieces de 1, 20 et 50 centimes. Comment rendre N sans surcharger inutilement les poches du client ? ´ ` ´ Strategie 1 : Commencer par les grosses pieces puis completer. 21 = ? ? = = =
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Avant propos . . . . . . ou comment gagner 1 million$ (+garder votre job) en rendant la monnaie ! ! ` ` Probleme : Vous disposez de pieces de 1, 20 et 50 centimes. Comment rendre N sans surcharger inutilement les poches du client ? ´ ` ´ Strategie 1 : Commencer par les grosses pieces puis completer. 21 =
+
55 = ? ? = =
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Avant propos . . . . . . ou comment gagner 1 million$ (+garder votre job) en rendant la monnaie ! ! ` ` Probleme : Vous disposez de pieces de 1, 20 et 50 centimes. Comment rendre N sans surcharger inutilement les poches du client ? ´ ` ´ Strategie 1 : Commencer par les grosses pieces puis completer. 21 =
+
55 =
+
+
+
+
+
60 = ? ? =
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Avant propos . . . . . . ou comment gagner 1 million$ (+garder votre job) en rendant la monnaie ! ! ` ` Probleme : Vous disposez de pieces de 1, 20 et 50 centimes. Comment rendre N sans surcharger inutilement les poches du client ? ´ ` ´ Strategie 1 : Commencer par les grosses pieces puis completer. 21 =
+
55 =
+
+
+
+
+
60 =
+
+
+
+
+
+
+
+
+
+
??
=
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Avant propos . . . . . . ou comment gagner 1 million$ (+garder votre job) en rendant la monnaie ! ! ` ` Probleme : Vous disposez de pieces de 1, 20 et 50 centimes. Comment rendre N sans surcharger inutilement les poches du client ? ´ ` ´ Strategie 1 : Commencer par les grosses pieces puis completer. 21 =
+
55 =
+
+
+
+
+
60 =
+
+
+
+
+
=
+
+
+
+
+
+
+
??
!
` ´ ` Probleme non-resoluble ( ? !) en temps polynomial pour un jeux de pieces arbitraire (≈ Pb. sac a` dos NP-complet) (Algo. polynomial ⇒ P=NP ⇒1M$)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ ´ ` Strategie 2 : Recurrence sur nombre min. #MinPieces de pieces rendues : ∅ → 0 → 1 + #MinPieces(N − 1) [Si N ≥ 1] #MinPieces(N) = Min → 1 + #MinPieces(N − 20) [Si N ≥ 20] → 1 + #MinPieces(N − 50) [Si N ≥ 50] Parcours exhaustif (redondant) de l’arbre des possibles
N ` → Θ(#Pieces )
Programmation dynamique Pour tout N 0 ∈ 0, 1, 2 → N, I
Calculer #MinPieces(N 0 )
I
´ ´ Memoriser le resultat
→ O(1)
` Reconstruire les pieces rendues en retrac¸ant les termes contribuant au Min. ⇒ Algorithme en Θ(N × #MinPieces) a ` a. Remarque : Algorithme correct pour tout jeux de pieces, mais on n’a pas gagne´ le million (; P=NP), car N est potentiellement exponentiel sur son codage. La complexite´ de cet algorithme est donc exponentielle.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Programmation dynamique
R. Bellman
C. E. Wilson
´ Programmation dynamique = Technique algorithmique de resolution des ` problemes d’optimisation. ´ ` Principe : Partant d’une equation liant le score optimal d’un (sous-)probleme ` a` celui de certains de ses sous-problemes, I
` Calculer efficacement le score optimal du probleme initial
I
´ Reconstruire la (ou les) solution(s) associee(s) au score optimal
´ Technique robuste face a` des alterations locales de la fonction objectif ´ ⇒ Omnipresente en bioinformatique : Alignement, repliement. . . Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Challenge ´ Trouver l’equation de programmation dynamique
´ es ´ requises Propriet
´ d’une equation de prog. dyn. =
1
´ e´ des sous-problemes ` Correction du score optimal herit
2
´ Completude dans le parcours de l’espace des solutions
ˆ ´ par ex. pour elaguer ´ Remarques : 2 peut etre viole, des sous-optimaux. ´ ´ 2 + 3 ⇒ Bijection : espace de recherche ⇔ executions de la recurrence
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Challenge ´ Trouver l’equation de programmation dynamique
´ es ´ requises /souhaitables d’une equation ´ Propriet de prog. dyn. = 1
´ e´ des sous-problemes ` Correction du score optimal herit
2
´ Completude dans le parcours de l’espace des solutions
3
´ Non-ambiguite´ de la decomposition
ˆ ´ par ex. pour elaguer ´ Remarques : 2 peut etre viole, des sous-optimaux. ´ ´ 2 + 3 ⇒ Bijection : espace de recherche ⇔ executions de la recurrence
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Challenge ´ Trouver l’equation de programmation dynamique
´ es ´ requises /souhaitables d’une equation ´ Propriet de prog. dyn. = 1
´ e´ des sous-problemes ` Correction du score optimal herit
2
´ Completude dans le parcours de l’espace des solutions
3
´ Non-ambiguite´ de la decomposition
ˆ ´ par ex. pour elaguer ´ Remarques : 2 peut etre viole, des sous-optimaux. ´ ´ 2 + 3 ⇒ Bijection : espace de recherche ⇔ executions de la recurrence Approche combinatoire peut aider : I
´ ´ Grammaire/specification Recurrences de comptage ´ ⇒ Completude et non-ambiguite´
I
+Correction ´ ⇒ Equation de programmation dynamique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Alignement local de sequence (Algorithme Smith/Waterman) ` Probleme : Trouver l’alignement local a = ((i1 , j1 ), (i2 , j2 ), · · · , (ik , jk )) , ix < ix+1 et jx < jx+1 , ´ de deux sequences s et t qui maximise la similarite´ X X W (a) = msi ,tj + (ir +1 − ir − 1) · pi + (jr +1 − jr − 1) · pd (i,j)∈a
r ∈[1,k−1]
´ ´ Recurrence pour l’alignement optimal Wi,j? des prefixes [1, i] et [1, j] : i -1 i
1
1
? Wi,0
=
0
? W0,j
=
0
=
? Wi−1,j−1 + msi ,tj ? max Wi−1,j + pi ? Wi,j−1 + pd
Wi,j?
1
i
1
1
j
1
Match/Mismatch
i -1 i
Insertion
j
1
i
1
Deletion j -1 j
Exercices : I
´ Quelle complexite´ pour deux sequences de taille N et M ?
I
´ Ce schema est-il complet ? non-ambigu ? Comment le corriger ? Yann Ponty
j -1 j
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Solutions ´ Complexite´ du calcul depend de : I
` Taille de l’espace des sous-problemes
I
` ´ es ´ (#Termes decomposition) ´ Nombres de sous-problemes consider i -1 i
1
1
i : 1 → N + 1 ⇒ Θ(N) j : 1 → M + 1 ⇒ Θ(M) ´ Trois operations en O(1) par sous-calcul ´ ⇒ Θ(M · N) temps/memoire
1
i
1
1
j
1
Match/Mismatch
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
´ Ce schema de programmation dynamique est ambigu, car on obtient ´ ´ l’alignement vide sur M+N executions differentes : N AAA - - - - - BBB
⇔
- - - AAA BBB - - -
Yann Ponty
⇔
-A-A-A B-B-B-
⇔
···
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
j -1 j
0
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
i -1 i
Insertion
A
0
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
A
0
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
A
0
2
2
5
4
5
4
3
4
C
0
A
0
C
0
A
0
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
C C
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
A A
C C
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
C C
A A
C C
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
G -
C C
A A
C C
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple complet ´ Exemple : Alignement local de sequences AGCACACA et ACACACTA ´ Couts pi = pj = −1 ˆ : Match mi,j = +2, Insertion/Deletion i -1 i
1
1
1
i
1
1
j
1
W ? (i, 0) = 0
Match/Mismatch
A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
j -1 j i -1 i
Insertion
j
1
i
1
Deletion j -1 j
W ? (0, j) = 0 ? W (i − 1, j − 1) + msi ,tj ? W (i, j) = max W ? (i − 1, j) + pi W ? (i, j − 1) + pd
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
Meilleur alignement
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
A A
G -
C C
A A
C C
A A
C C
T
A A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Retour a` l’ARN ´ A l’echelle nanoscopique, la structure de l’ARN fluctue (chaˆıne de Markov).
T →∞
´ l’equilibre ´ Convergence vers une distribution stationnaire de probabilite, de ´ Boltzmann, ou` la probabilite´ est exponentiellement faible sur l’energie libre. Corollaire : La conformation initiale est sans d’importance. ` Problemes algorithmiques ´ ` ´ Etant donne´ modeles pour l’ensemble des conformations et l’energie libre. ´ ´ A. Determiner la structure la plus probable (ou stable) a` l’equilibre ´ ´ es ´ moyennes de l’ensemble de Boltzmann B. Determiner des propriet Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T =0
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T = 1h
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T = 2h
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T = 5h
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T = 10h
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre
´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T →∞ ´ ´ avant 7h (Org. : Souris [SSN+ 09]). Mais majorite´ des ARNm degrad es
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Hors de l’equilibre ´ e´ sans appariement (Sauf exception) Transcription : ARN synthetis
T = 10h ´ ´ avant 7h (Org. : Souris [SSN+ 09]). Mais majorite´ des ARNm degrad es ` Problemes algorithmiques ´ ´ A. Determiner struct. la plus probable (= Energie libre min.) a` l’equilibre ´ ´ es ´ moyennes de l’ensemble de Boltzmann B. Determiner des propriet ´ C. Determiner la structure la plus probable a` temps T . ´ (c.f. H. Isambert par simulation, NP-complet en deterministe [MTSC11]) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Repliement par minimisation d’energie
` ´ ´ Probleme A : Determiner la structure d’energie minimale. Repliement ab initio = ´ Trouver structure d’un ARN ω uniquement a` partir de sa sequence.
I
I
I
Conformations : Ensemble Sω des structures secondaires compatibles avec la structure primaire ω (contrainte d’appariements). ´ ´ ´ Fonction d’energie Energie libre associant une valeur numerique Eω,S ´ (KCal.mol−1 ) a` tout couple sequence/conformation (ω, S). ´ Structure native : Conformation fonctionnelle de la molecule.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Nussinov/Jacobson Modele
` de Nussinov/Jacobson [NJ80] Modele Plus proche voisins simple : I
´ Seuls les appariements contribuent a` l’energie
I
Uniquement liaisons Watson/Crick (A/U,C/G) et Wobble (G/U) ⇒ Eω,S = −#Paires(S)
´ Minimisation de l’energie ⇔ Maximisation du nombre de paires de bases. Exemple :
UUUUCCCUAAAAGG
´ ` Variante : Ponderer les paires selon leur nombre de liaisons hydrogene ∆G(G≡C) = -3 ∆G(A=U) = -2 ∆G(G−U) = -1
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Decomposition de Nussinov/Jacobson
≥θ = i
+
j
Ni,t
=
0,
Ni,j
=
min
i
i+1
∀t ∈ [i, i + θ]
j
Ni+1,j
i
k
i non apparie´
j
min Ei,k + Ni+1,k−1 + Nk+1,j
k=i+θ+1
i apparie´ a` k
´ ou` Ei,k = Energie d’appariement des positions i et k (1/ + ∞ ou ∆G(si ≡ sk ))
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
j
´ Decomposition de Nussinov/Jacobson
≥θ = i
+
j
Ni,t
=
0,
Ni,j
=
min
i
i+1
∀t ∈ [i, i + θ]
j
Ni+1,j
i
k
i non apparie´
j
min Ei,k + Ni+1,k−1 + Nk+1,j
k=i+θ+1
i apparie´ a` k
´ ou` Ei,k = Energie d’appariement des positions i et k (1/ + ∞ ou ∆G(si ≡ sk ))
Exercice I Correction ? I Completude ´ ? I Non-ambiguite ´? Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
j
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C . 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G . 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C . 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G . 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C . 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G . 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C . 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G . 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G . 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C . 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G . 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C . 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U . 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A . 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U ( 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A ) 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U ( 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A ) 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U ( 4 4 3 2 0 0 0 0 0
C . 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G . 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A ) 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U ( 4 4 3 2 0 0 0 0 0
C ( 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G ) 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A ) 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
Nussinov/Jacobson
C G G A U A C U U C U U A G A C G A
C ( 0
G ( 0 0
G ( 0 0 0
A . 0 0 0 0
U . 0 0 0 0 0
A . 0 0 0 0 0 0
C ) 3 3 3 0 0 0 0
U . 4 4 3 2 0 0 0 0
U ( 4 4 3 2 0 0 0 0 0
C ( 6 6 5 2 0 0 0 0 0 0
U . 6 6 5 2 2 2 0 0 0 0 0
U . 6 6 5 4 2 2 0 0 0 0 0 0
A . 6 6 5 4 4 2 2 2 2 0 0 0 0
G ) 9 7 6 5 5 5 5 3 3 3 0 0 0 0
≥θ = i
j
+ i
i+1
j
i
k
j
A ) 9 9 8 7 7 5 5 5 5 3 2 0 0 0 0
C ) 11 11 10 7 7 5 5 5 5 3 2 0 0 0 0 0
G ) 14 11 10 8 8 8 8 6 5 5 2 1 0 0 0 0 0
Ei,k = 1 (G−U), 2 (A=U) ou 3 (G≡C) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
A . 14 11 10 10 10 8 8 7 7 5 3 2 0 0 0 0 0 0
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire :
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire : I
Boucles internes
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire : I
Boucles internes
I
Renflements
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire : I
Boucles internes
I
Renflements
I
Boucles terminales
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire : I
Boucles internes
I
Renflements
I
Boucles terminales
I
Boucles multiples
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner Modele ´ sur decomposition ´ Basee non-ambigue¨ en boucles de la structure 2aire : I
Boucles internes
I
Renflements
I
Boucles terminales
I
Boucles multiples
I
Empilements
´ ´ Energies libres ∆G des boucles dependent des ´ bases, asymetrie, bases libres (dangle) . . . ´ ´ experimentalement ´ Determin ees + Interpolation pour grandes boucles. ´ ˆ a` la prise en compte des empilements. Meilleures predictions grace
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner : Decomposition ´ Modele
= Tiges boucles
Boucle terminale
Empilement
Renflement/Boucle interne
Boucle multiple ´ ≥2 helices) ´ (Seq.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner : Decomposition ´ Modele
= Tiges boucles
Boucle terminale
= ´ helices ´ Seq. Empilement
´ ´ Seq.+ Helice
Renflement/Boucle interne
Boucle multiple ´ ≥2 helices) ´ (Seq.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner : Decomposition ´ Modele
= Tiges boucles
Boucle terminale
= ´ helices ´ Seq. Empilement
´ ´ Seq.+ Helice
´ Helice
Renflement/Boucle interne
Boucle multiple ´ ≥2 helices) ´ (Seq.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
` de Turner : Decomposition ´ Modele
= Tiges boucles
Boucle terminale
= ´ helices ´ Seq. Empilement
Renflement/Boucle interne
= Boucle multiple
´ Helice
´ ≥2 helices) ´ (Seq.
Yann Ponty
´ ´ Seq.+ Helice
´ Helice
´ Base non-appariee
Tige-boucle
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme MFold [ZS81]
=
=
=
??
⇔
= +
´ Decomposition non-ambigue¨ → Ok ! ` ´ ´ eratrices ´ Complete ? Comparons les series gen ...
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
=
=
=
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
A(z) =
=
=
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 n W(z) := sn z = 2z 2 n≥0
A(z) =
S(z) =
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 n W(z) := sn z = 2z 2 n≥0
A(z) =
S(z) z 2 A(z)
=
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z A(z) = +z S(z) z 2 A(z) S(z)z
=
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
=
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
B(z) =
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 n W(z) := sn z = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
B(z) =
B(z) C(z)
=
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
B(z) =
B(z) C(z) S(z) B(z) =
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
B(z) =
C(z) =
B(z) C(z) S(z) B(z)
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 W(z) := sn z n = 2z 2 n≥0
S(z) z A(z) A(z) = z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z) 2
B(z) = C(z) =
B(z) C(z) S(z) B(z) C(z) z
S(z) = 1 + z S(z)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Validation ´ ´ eratrice ´ Rappel : Serie gen des structures secondaires [Wat78] √ X 1 − z + z 2 − 1 − 2z − z 2 − 2z 3 + z 4 n W(z) := sn z = 2z 2 n≥0
A(z) =
S(z) z 2 A(z) z S(z) z 2 A(z) + z 2 A(z) S(z) z +z S(z) z 2 A(z) S(z)z B(z) C(z)
B(z) =
B(z) C(z)
S(z) B(z) C(z) z C(z) = z 2 A(z)
S(z) = 1 + z S(z) A(z)
= =
1 − z −z 2 − W(z) − 1
√ 1 − 2z − z 2 − 2z 3 + z 4 2z 2
(Oubli de la str. sec. de longueur 0)
´ ⇒ Schema complet, correct par construction ⇒ Minimisation possible. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
MFold Unafold ´ par une paire (i , j ) EH (i , j ) : Energie de boucle terminale fermee ´ par une paire (i , j ) EBI (i , j ) : Energie de renflement ou boucle interne fermee I ES (i , j ) : Energie d’empilement (i , j )/(i + 1, j − 1) I a,c,b : Penalit ´ ´ ´ dans multiboucle. e´ de boucle multiple, helice et non-appariees
I
I
=
=
=
Calcul des matrices
M0 i,j
Mi,j M1 i,j
EH (i, j) ES (i, j) + M0 i+1,j−1 = min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink (Mi+1,k −1 + M1 k ,j−1 ) o n =Mink min (Mi,k −1 , b(k − 1)) + M1 k ,j n o =Mink b + M1 i,j−1 , c + M0 i,j Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ (Backtracking) Remontee ´ Reconstruction de la structure d’energie minimale : EH (i, j) ES (i, j) + M0 i+1,j−1 M0 i,j = Min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink ( Mi+1,k−1 + M1 k,j−1 ) n o Mi,j = Mink min (Mi,k−1 , b(k − 1)) + M1 k ,j n o M1 i,j = Mink b + M1 i,j−1 , c + M0 i,j
1. Avec une astuce pour les bulges/boucles internes ... Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ (Backtracking) Remontee ´ Reconstruction de la structure d’energie minimale : EH (i, j) ES (i, j) + M0 i+1,j−1 M0 i,j = Min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink ( Mi+1,k−1 + M1 k,j−1 ) n o Mi,j = Mink min (Mi,k−1 , b(k − 1)) + M1 k ,j n o M1 i,j = Mink b + M1 i,j−1 , c + M0 i,j
1. Avec une astuce pour les bulges/boucles internes ... Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ (Backtracking) Remontee ´ Reconstruction de la structure d’energie minimale : EH (i, j) ES (i, j) + M0 i+1,j−1 ??? M0 i,j = Min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink ( Mi+1,k−1 + M1 k,j−1 ) n o Mi,j = Mink min (Mi,k−1 , b(k − 1)) + M1 k ,j n o M1 i,j = Mink b + M1 i,j−1 , c + M0 i,j
Θ(n) contributeurs potentiels au Min : ⇒ Complexite´ au pire en O(n2 ) pour un backtrack naif.
1. Avec une astuce pour les bulges/boucles internes ... Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ (Backtracking) Remontee ´ Reconstruction de la structure d’energie minimale : EH (i, j) ES (i, j) + M0 i+1,j−1 M0 i,j = Min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink ( Mi+1,k−1 + M1 k,j−1 ) n o Mi,j = Mink min (Mi,k−1 , b(k − 1)) + M1 k ,j n o M1 i,j = Mink b + M1 i,j−1 , c + M0 i,j
Θ(n) contributeurs potentiels au Min : ⇒ Complexite´ au pire en O(n2 ) pour un backtrack naif. Garder les meilleurs contributeurs aux Min ⇒ Backtrack en O(n) 1 ´ temps/memoire ´ ´ Complexites en O(n3 )/O(n2 ) pour le precalcul
1. Avec une astuce pour les bulges/boucles internes ... Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ (Backtracking) Remontee ´ Reconstruction de la structure d’energie minimale : EH (i, j) ES (i, j) + M0 i+1,j−1 M0 i,j = Min Mini 0 ,j 0 (EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Mink ( Mi+1,k −1 + M1 k,j−1 ) n o Mi,j = Mink min (Mi,k−1 , b(k − 1)) + M1 k,j n o M1 i,j = Mink b + M1 i,j−1 , c + M0 i,j
Θ(n) contributeurs potentiels au Min : ⇒ Complexite´ au pire en O(n2 ) pour un backtrack naif. Garder les meilleurs contributeurs aux Min ⇒ Backtrack en O(n) 1 ´ temps/memoire ´ ´ Complexites en O(n3 )/O(n2 ) pour le precalcul ´ ⇒ UnaFold [MZ08] minimise l’energie de Turner.
1. Avec une astuce pour les bulges/boucles internes ... Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Ensemble canonique de Boltzmann
L’ARN respire ⇒ Il n’existe pas UNE unique conformation native. Nouveau paradigme Les conformations d’un ARN coexistent dans une distribution de Boltzmann.
´ ˆ ´ Consequence : La probabilite´ de la MFE peut etre negligeable. ⇒ Comprendre les modes d’actions de l’ARN exige de prendre en ´ consideration l’ensemble des structures. En particulier, des structures proches peuvent se grouper et devenir le ´ candidat le plus credible fonctionnellement.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Ensemble canonique de Boltzmann
L’ARN respire ⇒ Il n’existe pas UNE unique conformation native. Nouveau paradigme Les conformations d’un ARN coexistent dans une distribution de Boltzmann.
´ ˆ ´ Consequence : La probabilite´ de la MFE peut etre negligeable. ⇒ Comprendre les modes d’actions de l’ARN exige de prendre en ´ consideration l’ensemble des structures. En particulier, des structures proches peuvent se grouper et devenir le ´ candidat le plus credible fonctionnellement.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Distribution de Boltzmann : Definition ´ Notations : Sequence d’ARN ω I
Sω = ensemble des conformations compatibles avec ω.
I
´ ES,ω = energie libre de S (kCal.mol−1 )
I
´ T = temperature (K)
I
R = constante des gaz parfaits (1.986.10−3 kCal.K−1 .mol−1 )
´ Definition (Distribution de Bolzmann) Poids d’une structure S = facteur de Boltzmann : BS,ω = e
−ES,ω RT
´ sur Sω par la fonction de partition : Distribution renormalisee Zω =
X
e
−ES,ω RT
.
S∈Sω
Probabilite´ de Boltzmann d’une structure S : PS,ω =
BS,ω Zω
.
` Probleme : Comment calculer efficacement la fonction de partition ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0)
Comptage → (+, ×, 1, 1) ≥θ
= i
j
+ i
i+1
j
i
k
j
´ ´ Recurrence sur l’energie minimale d’un repliement : Ni,t
=
Ni,j
=
∀t ∈ [i, i + θ] Ni+1,j min minjk=i+θ+1 Ei,k +Ni+1,k −1 +Nk +1,j 0,
´ (i non apparie) (i comp. avec k )
´ Recurrence de comptage des structures compatibles : Ci,t
=
Ci,j
=
∀t ∈ [i, i + θ] ( X Ci+1,j X j k =i+θ+1 1×Ci+1,k −1 ×Ck+1,j
1,
Yann Ponty
´ (i non apparie) (i comp. avec k )
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
−E(·)/RT
Comptage → (+, ×, 1, 1)
, 1)
´ e´ des structures compatibles Fonction de partition = Comptage ponder ≥θ = i
j
Z i,t
=
Z i,j
=
+ i
i+1
j
i
k
j
∀t ∈ [i, i + θ] Z i+1,j X j X 1 × Z i+1,k−1 × Z k +1,j 1,
k =i+θ+1
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
−E(·)/RT
Comptage → (+, ×, 1, 1)
, 1)
´ e´ des structures compatibles Fonction de partition = Comptage ponder ≥θ = i
j
Z i,t
=
Z i,j
=
+ i
i+1
j
i
k
j
∀t ∈ [i, i + θ] Z i+1,j X j −Ei,k X e RT × Z i+1,k−1 × Z k +1,j
1,
k=i+θ+1
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
=
−E(·)/RT
, 1)
=
Mi,j
=
[McC90, MZ08]
EH (i, j) ES (i, j) + M0 i+1,j−1 Min(EBI (i, i 0 , j 0 , j) + M0 i 0 ,j 0 ) a + c + Min Mi+1,k −1 + M1 k,j−1 n o =Min Min (Mi,k −1 , b(k − 1)) + M1 k ,j
M0 i,j =Min
Comptage → (+, ×, 1, 1)
Yann Ponty
n o M1 i,j =Min b + M1 i,j−1 , c + M0 i,j
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
=
−E(·)/RT
M0 i,j =Min
e
Min e e
=
[McC90, MZ08]
−EH (i,j) RT
+ M0 i+1,j−1
−EBI (i,i 0 ,j 0 ,j) RT
+ M0 i 0 ,j 0
−(a+c) RT
+ Min Mi+1,k−1 + M1 k ,j−1 −b(k−1) =Min Min Mi,k −1 , e RT + M1 k ,j
Mi,j
e −ES (i,j) RT
, 1)
=
Comptage → (+, ×, 1, 1)
Yann Ponty
n −b o −c M1 i,j =Min e RT + M1 i,j−1 , e RT + M0 i,j EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
=
−E(·)/RT
M0 i,j =Min
=
[McC90, MZ08]
−EH (i,j) RT
−ES (i,j) RT
e M0 i+1,j−1 −EBI (i,i 0 ,j 0 ,j) RT Min e M0 i 0 ,j 0 −(a+c) RT
Min Mi+1,k −1 M1 k ,j−1 −b(k−1) =Min Min Mi,k −1 , e RT M1 k,j
Mi,j
e
, 1)
=
Comptage → (+, ×, 1, 1)
e
Yann Ponty
n −b o −c M1 i,j =Min e RT M1 i,j−1 , e RT M0 i,j EPIT’14 - ARN Partie 2 - Programmation Dynamique
Calcul de la fonction de partition ´ eme ` Theor (Meta) ´ ` et non-ambigue, ¨ score defini ´ Decomposition complete additivement : Optimisation → (min / max, +, E(·), 0) Fonction de partition → (+, ×, e
=
−E(·)/RT
, 1)
=
e
=
[McC90, MZ08]
−EH (i,j) RT
−ES (i,j) RT
e Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT e + Z 0 (i 0 , j 0 ) −(a+c) P +e RT Z(i + 1, k − 1)Z 1 (k, j − 1) X −b(k −1) Z(i, j) = Z(i, k − 1)+e RT Z 1 (k , j)
Z 0 (i, j) =
X
Comptage → (+, ×, 1, 1)
Yann Ponty
−b
−c
Z 1 (i, j) =e RT Z 1 (i, j − 1)+e RT Z 0 (i, j)
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Echantillonnage statistique de structures d’ARN ˆ ´ ´ par un ensemble D La MFE (struc. probabilite´ maximale) peut etre ecras ee de sous-optimaux structurellement similaires. ´ plus probablement dans D. ⇒ Conformation fonctionnelle trouvee
MFE
´ Experience : [DCL05] I
Engendrer des structures selon une distribution de Boltzmann
I
Effectuer un clustering sur la structure
I
Construire structure consensus dans le plus lourd cluster
´ ´ ⇒ Amelioration relative pour specificit e´ (+17.6%) et sensibilite´ (+21.74%, sauf Introns du groupe II) ` ´ Probleme : Comment echantillonner la distribution de Boltzmann ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee
Z 0 (i, j)
=
X ???
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Yann Ponty
Z(i + 1, k − 1)Z 1 (k , j − 1)
B
C
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Yann Ponty
Z(i + 1, k − 1)Z 1 (k , j − 1)
B
C
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
3
´ Rappels recursifs sur les termes issus de la contribution choisie.
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Yann Ponty
Z(i + 1, k − 1)Z 1 (k , j − 1)
B
C
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) : Complexite´ ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
3
´ Rappels recursifs sur les termes issus de la contribution choisie.
Z 0 (i, j)
=
X ???
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme (Reformulation SFold [DL03]) : Complexite´ ´ Precalcul : Calculer les matrices (Z, Z 0 , Z 1 ) de la fonction de partition. ´ ´ ´ stochastique) : Generation (Remontee 1
´ ´ Tirer un nombre aleatoire r uniformement sur [0, Z 0 (i, j)[
2
Soustraire a` r les contributions a` Z 0 (i, j), jusqu’a` ce que r < 0
3
´ Rappels recursifs sur les termes issus de la contribution choisie.
Z 0 (i, j)
=
X
e
e
−EH (i,j) RT
−(a+c) RT
−ES (i,j)
A
+ e RT Z 0 (i + 1, j − 1) −EBI (i,i 0 ,j 0 ,j) P RT Z 0 (i 0 , j 0 ) e P
Z(i + 1, k − 1)Z 1 (k , j − 1) r
B
C
A1 — A2 — Bi — Bi+1 —. . . — Bj−1 — Bj — Ci — Ci+1 —. . . — Cj−1 — Cj ` Θ(n) operations, ´ ´ ere ` sur un interval de taille n − 1 Apres on reit ´ ⇒ Complexite´ au pire en O(n2 k ) pour k echantillons ´ ´√eration ´ ´ ´ ee ´ [DPT10]. Remarque : Equivalent a` une gen aleatoire ponder Complexite´ en moyenne en Θ(n n), mais Parcours Boustrophedon [Pon08] → O(n log nk) au pire. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi c¸a marche ? ´ erateur ´ Equation de prog. dyn. = Gen d’un (sous) espace de recherche ´ ´ Completude : Parcours integral de l’espace de recherche Non-ambiguite´ : Choix locaux → ensembles mutuellement disjoints Correction du comptage
A1
A = A1 ∪ A2 ∪ · · · ∪ Ak ´ + Ai ∩ Aj = ∅, ∀i 6= j (non-ambiguite) ⇒ |A| = |A1 | + |A2 | + |Ak |
Vq
´ Cas non lineaire : Argument similaire
E1,q E 2,q = max min Ek,q
+ Vq1 + Vq2 .. . + Vqk
A1 → A1,1 × A1,2 × · · ·
A2 .. .
Ak
|A1 | → |A1,1 | × |A1,2 | × · · ·
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi c¸a marche ? ´ erateur ´ Equation de prog. dyn. = Gen d’un (sous) espace de recherche ´ ´ Completude : Parcours integral de l’espace de recherche Non-ambiguite´ : Choix locaux → ensembles mutuellement disjoints Correction du comptage
A1
A = A1 ∪ A2 ∪ · · · ∪ Ak ´ + Ai ∩ Aj = ∅, ∀i 6= j (non-ambiguite) ⇒ |A| = |A1 | + |A2 | + |Ak |
Vq
´ Cas non lineaire : Argument similaire
E1,q E 2,q = max min Ek,q
+ Vq1 + Vq2 .. . + Vqk
A2 .. .
A1 → A1,1 × A1,2 × · · ·
Ak
|A1 | → |A1,1 | × |A1,2 | × · · ·
´ Correction de l’echantillonnage (Ei := ∪m k=i+1 Ak ) pS =
B(E1 ) B(E2 ) B(E3 ) B({S}) · · ... B(Sw ) B(E1 ) B(E2 ) B(Em )
Yann Ponty
A2
A4
Am
S
A1
A3
A5
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi c¸a marche ? ´ erateur ´ Equation de prog. dyn. = Gen d’un (sous) espace de recherche ´ ´ Completude : Parcours integral de l’espace de recherche Non-ambiguite´ : Choix locaux → ensembles mutuellement disjoints Correction du comptage
A1
A = A1 ∪ A2 ∪ · · · ∪ Ak ´ + Ai ∩ Aj = ∅, ∀i 6= j (non-ambiguite) ⇒ |A| = |A1 | + |A2 | + |Ak |
Vq
´ Cas non lineaire : Argument similaire
E1,q E 2,q = max min Ek,q
+ Vq1 + Vq2 .. . + Vqk
A2 .. .
A1 → A1,1 × A1,2 × · · ·
Ak
|A1 | → |A1,1 | × |A1,2 | × · · ·
´ Correction de l’echantillonnage (Ei := ∪m k=i+1 Ak ) pS =
B({S}) 1 1 1 · · ... B(Sw ) 1 1 1
Yann Ponty
A2
A4
Am
S
A1
A3
A5
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi c¸a marche ? ´ erateur ´ Equation de prog. dyn. = Gen d’un (sous) espace de recherche ´ ´ Completude : Parcours integral de l’espace de recherche Non-ambiguite´ : Choix locaux → ensembles mutuellement disjoints Correction du comptage
A1
A = A1 ∪ A2 ∪ · · · ∪ Ak ´ + Ai ∩ Aj = ∅, ∀i 6= j (non-ambiguite) ⇒ |A| = |A1 | + |A2 | + |Ak |
Vq
´ Cas non lineaire : Argument similaire
E1,q E 2,q = max min Ek,q
+ Vq1 + Vq2 .. . + Vqk
A2 .. .
A1 → A1,1 × A1,2 × · · ·
Ak
|A1 | → |A1,1 | × |A1,2 | × · · ·
´ Correction de l’echantillonnage (Ei := ∪m k=i+1 Ak )
A2
A4
Am
S
B({S}) e−Es /RT pS = = = PS,ω B(Sw ) Z Yann Ponty
A1
A3
A5
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Formalisation de la programmation dynamique The development of successful dynamic programming recurrences is a matter of experience, talent and luck – Anonyme, 2000 ´ Tout algorithme de programmation dynamique definit : 1
Espace de recherche
2
Fonction objectif ou score
3
´ Decomposition
´ conceptuelles non-independantes ´ Entites : I
´ Decomposition doit parcourir tout l’Espace de recherche de fac¸on unique
I
´ Decomposition doit permettre un calcul local de la Fonction objectif
´ Choix d’une bonne decomposition est crucial ! ´ ´ ements ´ Compilation de ces trois el ⇒ Equation de programmation dynamique. Question : Comment formaliser cette notion de compilation ? Propositions : Grammaires (Giegerich et al [SMJG13]) Yann Ponty
Hypergraphes (Roytberg et al [FR93]) EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi les hypergraphes ? Needleman-Wunsch [NW70] (alignement global) : ´ = Chemin de score maximal dans la matrice Remontee A
C
A
C
A
C
T
A
0
0
0
0
0
0
0
0
0
A
0
2
1
2
1
2
1
0
2
G
0
1
1
1
1
1
1
0
1
C
0
0
3
2
3
2
3
2
1
A
0
2
2
5
4
5
4
3
4
C
0
1
4
4
7
6
7
6
5
A
0
2
3
6
6
9
8
7
8
C
0
1
4
5
8
8
11
10
9
A
0
2
3
6
7
10
10
10
12
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi les hypergraphes ? Needleman-Wunsch [NW70] (alignement global) : ´ = Chemin de score maximal dans la matrice Remontee
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi les hypergraphes ? Smith-Waterman [SW81] (alignement global) : ´ = Chemin de score maximal dans la matrice Remontee
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Pourquoi les hypergraphes ? Smith-Waterman [SW81] (alignement global) : ´ = Chemin de score maximal dans la matrice Remontee
´ ´ sont des arbres. Mais : Analogie precaire en ARN car les remontees Il faudrait des graphes dont les chemins sont des arbres ? ? ? → Hypergraphes ! Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Hypergraphes 5
1
2
6
3
7
4
8
´ gen ´ eralisent ´ ´ grace ˆ a` des Les hypergaphes (orientes) les graphes (diriges) ´ entrant/sortant arbitraires. (hyper) arcs de degres ´ Definition (Hypergraphes) Un hypergraphe H est un couple (V , E) tel que : I
V = ensemble de sommet
I
E = ensemble d’hyperarcs e = (t(e) → h(e)) tels que t(e), h(e) ⊂ E
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Hypergraphes 5
1
2
6
3
7
4
8
´ gen ´ eralisent ´ ´ grace ˆ a` des Les hypergaphes (orientes) les graphes (diriges) ´ entrant/sortant arbitraires. (hyper) arcs de degres ´ Definition (Hypergraphes) Un hypergraphe H est un couple (V , E) tel que : I
V = ensemble de sommet
I
E = ensemble d’hyperarcs e = (t(e) → h(e)) tels que t(e), h(e) ⊂ E
Les hypergraphes avant, ou F(orward)-graphes, sont des hypergraphes dont ´ les arcs ont degre´ entrant exactement egal a` 1. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
5
5
2
6
1
3
3 1
3
2
1
3
3
7
1
2 4
1
F-graphe
5
1
6
3
7
1
Weight 45 Score : 13
1
3
2
Weight 2 Score : 3
1
2
3
Weight Score: :18 8
1
3
4
3
6
2
Weight Score : 6
1
3
4
2
7
1
Weight 3 Score : 4
1
3
4
5 1
1
Tous les F-chemins partant du sommet 1
´ Definition (F-chemin) Un F-chemin est un arbre de racine s ∈ V , et dont les fils sont des F-chemins construits a` partir des sommets sortants d’un arc e = (s → t) ∈ E. ´ Remarque : Des arcs de degre´ sortant nul (t = ∅) ferment cette definition.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
5
5
2
6
1
3
3 1
3
2
1
3
3
7
1
2 4
1
F-graphe
5
1
6
3
7
1
Weight 45 Score : 13
1
3
2
Weight 2 Score : 3
1
2
3
Weight Score: :18 8
1
3
4
3
6
2
Weight Score : 6
1
3
4
2
7
1
Weight 3 Score : 4
1
3
4
5 1
1
Tous les F-chemins partant du sommet 1
´ Definition (F-chemin) Un F-chemin est un arbre de racine s ∈ V , et dont les fils sont des F-chemins construits a` partir des sommets sortants d’un arc e = (s → t) ∈ E. ´ Remarque : Des arcs de degre´ sortant nul (t = ∅) ferment cette definition. ´ ´ Independance : Un F-graphe est independant ssi chaque arc est emprunte´ au plus une fois par chaque chemin.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
5
5
2
6
1
3
3 1
3
2
1
3
3
7
1
2 4
1
F-graphe
5
1
6
3
7
1
Weight 45 Score : 13
1
3
2
Weight 2 Score : 3
1
2
3
Weight Score: :18 8
1
3
4
3
6
2
Weight Score : 6
1
3
4
2
7
1
Weight 3 Score : 4
1
3
4
5 1
1
Tous les F-chemins partant du sommet 1
´ Definition (F-chemin) Un F-chemin est un arbre de racine s ∈ V , et dont les fils sont des F-chemins construits a` partir des sommets sortants d’un arc e = (s → t) ∈ E. ´ Remarque : Des arcs de degre´ sortant nul (t = ∅) ferment cette definition. ´ ´ Independance : Un F-graphe est independant ssi chaque arc est emprunte´ au plus une fois par chaque chemin. ´ Valuation : Fonction π : E → R donnant valeur reelle aux arcs e ∈ E. I
Poids d’un chemin = Produit des valeurs de ses arcs.
I
Score d’un chemin = Somme des valeurs de ses arcs. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
5
5
2
6
1
3
3 1
3
2
1
3
3
7
1
2 4
1
F-graphe
5
1
6
3
7
1
Weight 45 Score : 13
1
3
2
Weight 2 Score : 3
1
2
3
Weight Score: :18 8
1
3
4
3
6
2
Weight Score : 6
1
3
4
2
7
1
Weight 3 Score : 4
1
3
4
5 1
1
Tous les F-chemins partant du sommet 1
´ Definition (F-chemin) Un F-chemin est un arbre de racine s ∈ V , et dont les fils sont des F-chemins construits a` partir des sommets sortants d’un arc e = (s → t) ∈ E. ´ Remarque : Des arcs de degre´ sortant nul (t = ∅) ferment cette definition. ´ ´ Independance : Un F-graphe est independant ssi chaque arc est emprunte´ au plus une fois par chaque chemin. ´ Valuation : Fonction π : E → R donnant valeur reelle aux arcs e ∈ E. I
Poids d’un chemin = Produit des valeurs de ses arcs.
I
Score d’un chemin = Somme des valeurs de ses arcs. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Generic algorithms [PS11] H = (s0 , V , E, π) : F-graphe acyclique s0 : Noeud initial π : Valuation Exemple : t1 ! ms
=
min
e=(s→t)∈E
w(e) +
X
w(e)
mu
s
u∈t
t10 00
0
w(e ) w(e )
+ t20
` Probleme
´ Recurrence
´ Temps/memoire !
Score min.
ms = min
e=(s→t)
w(e) +
Yann Ponty
X
mu
Θ(|E| + |V |)/Θ(|V |)
u∈t
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Generic algorithms [PS11] H = (s0 , V , E, π) : F-graphe acyclique s0 : Noeud initial π : Valuation Exemple : t1 ns
=
X Y
nu
s
(s→t)∈E u∈t
t10 × t20
` Probleme
´ Recurrence
´ Temps/memoire !
Score min. #Chemins
X
mu w(e) + X Y u∈t ns = nu
ms = min
e=(s→t)
Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |)
(s→t) u∈t
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Generic algorithms [PS11] H = (s0 , V , E, π) : F-graphe acyclique s0 : Noeud initial π : Valuation Exemple : t1 ws
X
=
Y
w(e) ·
w(e)
ws 0
s
s0 ∈h(e)
e=(s→h(e))∈E
t10 00
0
w(e ) w(e )
× t20
` Probleme
´ Recurrence
´ Temps/memoire ! X
#Chemins
mu w(e) + X Y u∈t ns = nu
Poids total
X(s→t) u∈t Y ws = w(e) · ws0
Score min.
ms = min
e=(s→t)
e=(s→t)
Yann Ponty
Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |)
s0 ∈t
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Generic algorithms [PS11] ` Probleme
´ Recurrence
´ Temps/memoire !
Score min.
X
ms = min
#Chemins
w(e) + mu X Y u∈t ns = nu
Poids total
X(s→t) u∈t Y ws = w(e) · ws 0
e=(s→t)
Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |)
s0 ∈t
e=(s→t)
´ ee ´ (Boltzmann) sur les F-paths P : Supposons une distribution ponder Y P(p) = π(e)/ws0 e∈p
` Probleme
Algorithme
´ Temps/memoire
´ aleatoire ´ Gen.
Calculer ws ; En partant de s ← s0 , choisir Q un arc s → (t1 , t2 , . . .) avec ´ erer ´ proba. wti /ws et reit sur les ti .
Θ(|E| + |V |)/Θ(|V |)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Generic algorithms [PS11] ` Probleme
´ Recurrence
´ Temps/memoire !
Score min.
X
ms = min
#Chemins
w(e) + mu X Y u∈t ns = nu
Poids total
X(s→t) u∈t Y ws = w(e) · ws 0
e=(s→t)
Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |) Θ(|E| + |V |)/Θ(|V |)
s0 ∈t
e=(s→t)
´ ee ´ (Boltzmann) sur les F-paths P : Supposons une distribution ponder Y P(p) = π(e)/ws0 e∈p
` Probleme ´ aleatoire ´ Gen.
Proba. arcs
´ Temps/memoire
Algorithme Calculer ws ; En partant de s ← s0 , choisir Q un arc s → (t1 , t2 , . . .) avec ´ erer ´ proba. wti /ws et reit sur les ti . Q bt(e) · s0 ∈h(e) ws0 pe = X ws0 0 Y bs = (1+) π(e )bs0 wti s0 →(t1 ···s··· )
Yann Ponty
Θ(|E| + |V |)/Θ(|V |)
Θ(|E| + |V | +
P
Θ(|V |)
ti
EPIT’14 - ARN Partie 2 - Programmation Dynamique
|h(e)|2 )
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : I
Inside :
|t ∗ |-uplet
issu de
s0
t∗
s∗
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : I
Inside :
|t ∗ |-uplet
issu de
s0
t∗
s∗
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : |t ∗ |-uplet
I
Inside :
I
Arc distingue´ e∗
I
Outside : Contexte ou` e∗ apparaˆıt : I
issu de
s0
t∗
Chemin p = (s0 , s1 , . . . , s∗ ) empruntant F-arcs (e1 , . . . , ek )
s∗
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : |t ∗ |-uplet
I
Inside :
I
Arc distingue´ e∗
I
Outside : Contexte ou` e∗ apparaˆıt : I
I
issu de
s0
t∗
Chemin p = (s0 , s1 , . . . , s∗ ) empruntant F-arcs (e1 , . . . , ek ) Pour chaque sommet s ∈ h(ei ), ´ s∈ / p, completer le F-chemin en ´ considerant les cousins de s.
.. .. s∗ ..
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : |t ∗ |-uplet
I
Inside :
I
Arc distingue´ e∗
I
Outside : Contexte ou` e∗ apparaˆıt : I
I
issu de
s0
t∗
Chemin p = (s0 , s1 , . . . , s∗ ) empruntant F-arcs (e1 , . . . , ek ) Pour chaque sommet s ∈ h(ei ), ´ s∈ / p, completer le F-chemin en ´ considerant les cousins de s.
.. .. s∗ ..
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : |t ∗ |-uplet
I
Inside :
I
Arc distingue´ e∗
I
Outside : Contexte ou` e∗ apparaˆıt : I
I
issu de
s0
t∗
..
Chemin p = (s0 , s1 , . . . , s∗ ) empruntant F-arcs (e1 , . . . , ek ) Pour chaque sommet s ∈ h(ei ), ´ s∈ / p, completer le F-chemin en ´ considerant les cousins de s.
.. .. ..
s∗
t1∗ t2∗
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Algorithme Inside/outside [Bak79] ´ Decomposition F-chemins empruntant e∗ = (s∗ → t∗ ) : I
Inside : |t ∗ |-uplet issu de t∗
I
Arc distingue´ e∗
I
Outside : Contexte ou` e∗ apparaˆıt : I
I
s0
s∗
, . . . , s∗ )
Chemin p = (s0 , s1 empruntant F-arcs (e1 , . . . , ek ) Pour chaque sommet s ∈ h(ei ), ´ s∈ / p, completer le F-chemin en ´ considerant les cousins de s.
t1∗t2∗
´ ´ ` non-ambigue¨ F-graphe acyclique independant ⇒ Decomposition complete ´ Recurrence sur la proba. totale pe∗ des F-chemins empruntant e∗ : Q bs∗ · π(e) · s0 ∈t ∗ ws0 pe ∗ = ws0 X Y bs = 1s=s0 + ws00 , ∀s ∈ V π(e0 ) · bs0 · e0 =(s0 →t0 )∈E s. t. s∈t Yann Ponty
s00 ∈t0 s00 6=s EPIT’14 - ARN Partie 2 - Programmation Dynamique
Retour vers l’ARN ´ ´ Soit une sequence d’ARN ω et une fonction d’energie E, supposons : I
Un hypergraphe acyclique H t.q. F-chemins ⇔ conformations (avec PK)
I
´ Une fonction de valuation α : F-chemin p → energie libre Eω,s de s sur ω.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Retour vers l’ARN ´ ´ Soit une sequence d’ARN ω et une fonction d’energie E, supposons : I
Un hypergraphe acyclique H t.q. F-chemins ⇔ conformations (avec PK)
I
´ Une fonction de valuation α : F-chemin p → energie libre Eω,s de s sur ω.
Application ´ Prediction repliement Fonction de partition Echantillonnage Proba. paires de bases
⇔ ⇔ ⇔ ⇔
Algorithme Hypergraphe Score min. Poids total ´ eration ´ ´ Gen aleatoire Proba Arcs
Yann Ponty
` Parametres (H, α) (H, e−α/RT ) (H, e−α/RT ) (H, e−α/RT )
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Retour vers l’ARN ´ ´ Soit une sequence d’ARN ω et une fonction d’energie E, supposons : I
Un hypergraphe acyclique H t.q. F-chemins ⇔ conformations (avec PK)
I
´ Une fonction de valuation α : F-chemin p → energie libre Eω,s de s sur ω.
Application ´ Prediction repliement Fonction de partition Echantillonnage Proba. paires de bases
⇔ ⇔ ⇔ ⇔
Algorithme Hypergraphe Score min. Poids total ´ eration ´ ´ Gen aleatoire Proba Arcs
` Parametres (H, α) (H, e−α/RT ) (H, e−α/RT ) (H, e−α/RT )
Message ´ Equations de programmation dynamique sont le produit d’une decomposition combinatoire (⇒ Famille d’hypergraphes).
Comment concevoir la bonne famille d’hypergraphes ? ` la main, mais la combinatoire peut aider . . . A
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple : Maximisation de paires de bases (Nussinov) ´ Decomposition : ≥1 = i
j
+ i
i+1
Yann Ponty
j
i i+1
k-1 k k+1
EPIT’14 - ARN Partie 2 - Programmation Dynamique
j
Exemple : Maximisation de paires de bases (Nussinov) ´ Decomposition : ≥1 = i
j
+ i
i+1
j
i i+1
k-1 k k+1
En tant qu’hypergraphe : Θ(n2 ) noeuds, Θ(n3 ) arcs (n = |ω|). 1,|ω|
i+1,j
0 i,j
Eω,i,i+2
Noeud initial
i+1,i+1
i,i-1 0
i+3,j
Eω,i,i+3
Noeud terminal i+1,i+2 i+4,j ...
Yann Ponty
Eω,i,j =
−1 +∞
Si ωi s’apparie avec ωj Sinon
´ Fonction d’energie
EPIT’14 - ARN Partie 2 - Programmation Dynamique
j
Exemple : Maximisation de paires de bases (Nussinov) ´ Decomposition : ≥1 = i
j
+ i
i+1
j
i i+1
k-1 k k+1
j
En tant qu’hypergraphe : Θ(n2 ) noeuds, Θ(n3 ) arcs (n = |ω|). 1,|ω|
i+1,j
0 i,j
Eω,i,i+2
Noeud initial
i+1,i+1
i,i-1 0
i+3,j
Eω,i,i+3
Noeud terminal i+1,i+2 i+4,j
Eω,i,j =
−1 +∞
Si ωi s’apparie avec ωj Sinon
´ Fonction d’energie
...
´ eriques, ´ ´ Remarque : Avant d’appliquer les algorithmes gen verifier : I
F-chemins ⇔ Structures secondaires
I
Poids/Scores ⇔ Energie libre
Yann Ponty
´ ´ eratrices ´ → Series gen
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Exemple : Maximisation de paires de bases (Nussinov)
En tant qu’hypergraphe : Θ(n2 ) noeuds, Θ(n3 ) arcs (n = |ω|). 1,|ω|
i+1,j
0 i,j
Eω,i,i+2
Noeud initial
i+1,i+1
i,i-1 0
i+3,j
Eω,i,i+3
Noeud terminal i+1,i+2 i+4,j
Eω,i,j =
Algorithme Score minimal Poids total Proba. arcs ´ aleatoire ´ Gen.
Yann Ponty
Si ωi s’apparie avec ωj Sinon
´ Fonction d’energie
...
Application ´ Minimisation d’energie Fonction de partition Proba. paires de bases ´ Echantillonnage (k str.)
−1 +∞
Valuation E −E e RT −E e RT −E e RT
´ Temps/Memoire O(n3 )/O(n2 ) O(n3 )/O(n2 ) O(n3 )/O(n2 ) 3 O(n + kn log n)/O(n2 )
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Faire tourner la presse a` publis . . . Message (cf ADP) ˆ ´ ´ des Les applications de la prog. dyn. peuvent (devraient) etre detach ees ´ ˆ ´ a` un niveau abstrait (combinatoire). equations, et etre exprimees ´ Echantillonnage Comptage
Str. sec. Nussinov
´ Minimisation d’energie libre
Str. sec. Turner
Function de partition PK Akutsu Probabilities paires de bases PK Kissing Hairpins
...
Credits [PS11] : I
Roytberg/Finkelstein : Prog. dyn. par hypergraphes en Bioinformatique ;
I
´ L. Hwang : Prog. dyn. algebrique par hypergraphe ;
I
´ R. Giegerich : Prog. dyn. algebrique par grammaires.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Faire tourner la presse a` publis . . . Message (cf ADP) ˆ ´ ´ des Les applications de la prog. dyn. peuvent (devraient) etre detach ees ´ ˆ ´ a` un niveau abstrait (combinatoire). equations, et etre exprimees ´ Echantillonnage Comptage
Str. sec. Nussinov
´ Minimisation d’energie libre
Str. sec. Turner Hypergraph
Function de partition
PK Akutsu Probabilities paires de bases PK Kissing Hairpins
...
Credits [PS11] : I
Roytberg/Finkelstein : Prog. dyn. par hypergraphes en Bioinformatique ;
I
´ L. Hwang : Prog. dyn. algebrique par hypergraphe ;
I
´ R. Giegerich : Prog. dyn. algebrique par grammaires.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Faire tourner la presse a` publis . . . Message (cf ADP) ˆ ´ ´ des Les applications de la prog. dyn. peuvent (devraient) etre detach ees ´ ˆ ´ a` un niveau abstrait (combinatoire). equations, et etre exprimees ´ Echantillonnage Comptage
Str. sec. Nussinov
´ Minimisation d’energie libre
Str. sec. Turner Hypergraph
Function de partition
PK Akutsu Probabilities paires de bases PK Kissing Hairpins
... Moments de la distribution de Boltzmann
Credits [PS11] : I
Roytberg/Finkelstein : Prog. dyn. par hypergraphes en Bioinformatique ;
I
´ L. Hwang : Prog. dyn. algebrique par hypergraphe ;
I
´ R. Giegerich : Prog. dyn. algebrique par grammaires. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ Resum e´ 1
Rappels de programmation dynamique
2
´ Repliement par minimisation d’energie Apparte´ thermodynamique ` de Nussinov Modele ` de Turner Modele MFold/Unafold
3
Ensemble de Boltzmann ´ Definition Calcul de la fonction de partition ´ Echantillonnage statistique
4
´ ´ eriques ´ Programmation dynamique : Methodes gen
5
´ Algorithmique ensembliste avancee Distribution exacte Calcul des moments
6
Conclusion Analyse syntaxique
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Motivation 1 23
1
20
23
20
1 23
10
1
23
20 10 10
1
30
23
30
1
30
1
23
1
36
36 1
1
1
23 23
1
1
36
23 23
´ Constat : Grande diversite´ des ensembles de Boltzmann pour des sequence ´ ´ a` des roles ˆ ´ differentes, associes fonctionnels differents. Comment extraire l’information fonctionnelle de l’ensemble de Boltzmann ? ´ : Observer la distribution d’un parametre ` Idee structurel additif I
´ #Helices ;
I
#Paires de bases ;
I
Energie libre ;
I
...
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Distribution des paires de bases ´ BP = Variable aleatoire #paires de bases dans une struct. sec., compatible ´ selon la distribution uniforme (resp. Boltzmann). avec ω, et engendree m Ci,j ` Probleme : Calculer la distribution de BP ∈ [0, n], c’est a` dire |{S ∈ Sω | #BP(S) = m}| 1 = |Sω | |Sω |
X
∀m ∈ [0, n] : P(BP = m | ω) ≡
S∈Sω #BP(S)=m
´ du comptage Solution na¨ıve : Adaptee m
m0
m =
i
j
Ci,t
=
Ci,j
=
m − m0 − 1
+ i
i+1
j
i i+1
∀t ∈ [i, i + θ] Ci+1,j X j X 1×Ci+1,k−1 ×Ck+1,j
k-1 k k+1
j
1,
´ (i non apparie) (i comp. avec k )
k=i+θ+1
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Distribution des paires de bases ´ BP = Variable aleatoire #paires de bases dans une struct. sec., compatible ´ selon la distribution uniforme (resp. Boltzmann). avec ω, et engendree m Ci,j ` Probleme : Calculer la distribution de BP ∈ [0, n], c’est a` dire |{S ∈ Sω | #BP(S) = m}| 1 = |Sω | |Sω |
X
∀m ∈ [0, n] : P(BP = m | ω) ≡
S∈Sω #BP(S)=m
´ → Temps : Θ(n5 ), Memoire : Θ(n3 )
´ du comptage Solution na¨ıve : Adaptee m i
m Ci,t
m Ci,j
j
+ i
i+1
=
1m=0 , ∀t ∈ [i, i + θ]
=
m Ci+1,j X j X
k=i+θ+1
m − m0 − 1
m0
m = j
i i+1
k-1 k k+1
j
´ (i non apparie) m−1 X
0
m−m m 1×Ci+1,k−1 ×Ck+1,j
0
−1
(i comp. avec k )
m0 =0
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Distribution des paires de bases ´ BP = Variable aleatoire #paires de bases dans une struct. sec., compatible ´ selon la distribution uniforme (resp. Boltzmann). avec ω, et engendree m Ci,j ` Probleme : Calculer la distribution de BP ∈ [0, n], c’est a` dire X
∀m ∈ [0, n] : P(BP = m | ω) ≡
S∈Sω #BP(S)=m
|{S ∈ Sω | #BP(S) = m}| 1 = |Sω | |Sω | ´ → Temps : Θ(n5 ), Memoire : Θ(n3 )
´ du comptage Solution na¨ıve : Adaptee Par interpolation [WP11] : I I
´ Considerer les polynomes Ci,j (z) = 3
Pn
m=0
m Ci,j · zm
2
´ via : Evaluation possible en Θ(n )/Θ(n ) pour z ∈ R+ donne, ´ (z) (i non apparie) Ci+1,j X j X Ci,j (z) = z · Ci+1,k −1 (z) · Ck +1,j (z) (i comp. avec k ) k=i+θ+1
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Distribution des paires de bases ´ BP = Variable aleatoire #paires de bases dans une struct. sec., compatible ´ selon la distribution uniforme (resp. Boltzmann). avec ω, et engendree m Ci,j ` Probleme : Calculer la distribution de BP ∈ [0, n], c’est a` dire X
∀m ∈ [0, n] : P(BP = m | ω) ≡
S∈Sω #BP(S)=m
´ du comptage Solution na¨ıve : Adaptee
|{S ∈ Sω | #BP(S) = m}| 1 = |Sω | |Sω | ´ → Temps : Θ(n5 ), Memoire : Θ(n3 )
´ → Temps : Θ(n4 ), Memoire : Θ(n2 ) Pn m ´ Considerer les polynomes Ci,j (z) = m=0 Ci,j · zm
Par interpolation [WP11] : I I
´ via : Evaluation possible en Θ(n3 )/Θ(n2 ) pour z ∈ R+ donne, ´ (z) (i non apparie) Ci+1,j X j X Ci,j (z) = z · Ci+1,k −1 (z) · Ck +1,j (z) (i comp. avec k ) k=i+θ+1
I I
ˆ Evaluer le polynome C1,n (z) en n + 1 valeurs distinctes (z1 , z2 , · · · , zn+1 ) m Interpoler les coeff. de C1,n (z) → Ci,j → FFT [SSD+ 12] : Θ(n log(n)) Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Motivation
1 23
1
20
23
20
1 23
10
1
23
20 10 10
1
30
23
30
1
30
1
23
1
36
36 1
1
1
23 23
1
1
36
23 23
´ Constat : Grande diversite´ des ensembles de Boltzmann pour des sequence ´ ´ a` des roles ˆ ´ differentes, associes fonctionnels differents. Comment extraire l’information fonctionnelle de l’ensemble de Boltzmann ? ´ : Observer la distribution d’un parametre ` Idee structurel additif ´ Mais : Calcul exact couteux + Moyenne, ecart-type . . . suffisent souvent ˆ . . . Comment calculer efficacement les moments de la distribution ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Extraction des moments ` ´ ` Probleme : Etant donne´ un ARN ω calculer le 1er , . . . , pieme moment de BP : • P p C i,j X S∈Sω #BP(S) p p E(BP | ω) = pS · #BP(S) = |Sω | S∈Sω
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Extraction des moments ` ´ ` Probleme : Etant donne´ un ARN ω calculer le 1er , . . . , pieme moment de BP : • P p C i,j X S∈Sω #BP(S) p p E(BP | ω) = pS · #BP(S) = |Sω | S∈Sω
Pourquoi ? I
1er moment : Nombre moyen de paires de bases µ := E(BP)
I
` ´ 2eme moment : Permet calcul de variance/ecart-type σ=
X S∈Sω
2
pS · (#BP(S) − µ) =
X
2
pS · #BP(S) − 2 ·
S∈Sω
Yann Ponty
X
2
2
pS · #BP(S) · µ + µ = E(BP ) − µ
S∈Sω
EPIT’14 - ARN Partie 2 - Programmation Dynamique
2
Extraction des moments ` ´ ` Probleme : Etant donne´ un ARN ω calculer le 1er , . . . , pieme moment de BP : • P p C i,j X S∈Sω #BP(S) p p E(BP | ω) = pS · #BP(S) = |Sω | S∈Sω
Pourquoi ? I
1er moment : Nombre moyen de paires de bases µ := E(BP)
I
` ´ 2eme moment : Permet calcul de variance/ecart-type σ=
X
2
pS · (#BP(S) − µ) =
S∈Sω
X
2
pS · #BP(S) − 2 ·
S∈Sω
X
2
2
pS · #BP(S) · µ + µ = E(BP ) − µ
S∈Sω
´ [PS11] : Transformer/dupliquer la decomposition ´ Idee de fac¸on a` engendrer ´ toute struct. sec. avec multiplicite´ egale a` son nombre de paires de bases. • • ⇒
´ Compter dans cette decomposition •
•
⇔ Calculer C i,j
•
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
2
En pratique ´ → Temps : Θ(n3 ), Memoire : Θ(n2 )
Calcul du premier moment
=
•
+
•
C
C +
+
•
C
C
=
•
C
C
C
C
C
C
•
+
C
C
Equation de prog. dyn. : •
•
C i,j = C i+1,j +
• • C i+1,k−1 · C k+1,j j X • +Ci+1,k −1 · C k +1,j
k ∈i+θ+1
•
+C i+1,k−1 · Ck +1,j
` Exercice : Deuxieme moment ? Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
En pratique Calcul du premier moment
´ → Temps : Θ(n3 ), Memoire : Θ(n2 )
` Calcul du deuxieme moment
´ → Temps : Θ(n3 ), Memoire : Θ(n2 )
•◦
=
+
•◦
C
C + C + +
C •◦
◦
•
C C
C
C
◦
C
•
◦
C
C
C
C
+ +
C +
+
C
C •
•◦
◦
•
C
C
C
C
+
´ ˆ ´ mais les constantes explosent ! Ordres superieurs : Meme complexite,
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ eriques ´ Des optimisations gen ´ eralisent ´ Ces principes se gen sans difficulte´ : I
´ Distribution de Boltzmann (+ Facteur B ; fonc. part. Z au denom.) ;
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ eriques ´ Des optimisations gen ´ eralisent ´ Ces principes se gen sans difficulte´ : I
´ Distribution de Boltzmann (+ Facteur B ; fonc. part. Z au denom.) ;
I
Toute valuation additive (Attention au #Vals distinctes en distr. exacte) ;
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ eriques ´ Des optimisations gen ´ eralisent ´ Ces principes se gen sans difficulte´ : I
´ Distribution de Boltzmann (+ Facteur B ; fonc. part. Z au denom.) ;
I
Toute valuation additive (Attention au #Vals distinctes en distr. exacte) ;
I
` ´ Distributions jointes sur plusieurs parametres (e.g. #Paires vs #Helices) ;
m
m
m
´ eraux ´ Moments gen : E(α1 1 α2 2 · · · αk k ) =
Yann Ponty
P
p∈Ps
π(p) ws
Qk
i=1
αi (p)mi = csm /ws
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ eriques ´ Des optimisations gen ´ eralisent ´ Ces principes se gen sans difficulte´ : I
´ Distribution de Boltzmann (+ Facteur B ; fonc. part. Z au denom.) ;
I
Toute valuation additive (Attention au #Vals distinctes en distr. exacte) ;
I
` ´ Distributions jointes sur plusieurs parametres (e.g. #Paires vs #Helices) ;
´ Tout schema non-ambigu de programmation dynamique. Ex. : Analyser la diversite´ des solutions quasi-optimales en optimisation. P Qk m m m mi ´ eraux ´ Moments gen : E(α1 1 α2 2 · · · αk k ) = p∈Ps π(p) = csm /ws i=1 αi (p) ws I
´ eme ` ´ Theor (Recurrence de calcul des csm
csm
=
X e=(s→t)
π(e) ·
X
k Y
i=1 00 m0 , m00 1 ,··· ,m|t| 0 P 00 s. t. m + j mj =m
[PS11])
mi 00 00 mi0 , m1,i , · · · , m|t|,i
Q + Temps : O (|E| + |V |) · k · t + · ki=1 mit +1 Q ´ Memoire : Θ |V | · ki=1 mi Yann Ponty
!
0
· αi (e)mi ·
|t| Y
m00 i
cti
i=1
(t + = degre´ sortant max)
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ ` de Turner) [PS11] Decomposition Mfold/Unafold (modele
Application
Algorithm
Weight fun.
Time/Space
Ref.
Energy minimization
Minimal weight
πT
O(n3(4) )/O(n2 )
[ZS81]
Partition function
Weighted count
e
−π T RT
O(n
Base-pairing probabilities
Arc-traversal prob.
e
−π T RT
O(n3(4) )/O(n2 )
[McC90]
e
−π T RT
O(n3(4) + kn log n)/O(n2 )
[DL03, Pon08]
O(n3(4) )/O(n2 )
[MMN05]
Statistical sampling (k -samples)
Random gen.
3(4)
2
)/O(n )
[McC90]
Moments of energy (Mean, Var.)
Moments extraction
e
−π T RT
m-th moment of additive features
Moments extraction
e
−π T RT
O(m3 · n3(4) )/O(m · n2 )
–
e
−π T RT
O(n3(4) )/O(n2 )
–
Correlations of additive features
Moments extraction
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
2. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
I
` La programmation dynamique y regne sans partage, et suscite des ´ ´ eriques ´ developpements gen et transposables
2. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
I
` La programmation dynamique y regne sans partage, et suscite des ´ ´ eriques ´ developpements gen et transposables
I
´ Au coeur de la demarche de conception en prog. dyn., l’objet crucial est ´ ´ ´ ´ e´ la decomposition, et l’equation de recurrence n’est qu’un produit deriv
2. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
I
` La programmation dynamique y regne sans partage, et suscite des ´ ´ eriques ´ developpements gen et transposables
I
´ Au coeur de la demarche de conception en prog. dyn., l’objet crucial est ´ ´ ´ ´ e´ la decomposition, et l’equation de recurrence n’est qu’un produit deriv
I
` ` de la prog. dyn. : Encore des problemes difficiles/ouverts, a` la lisiere ´ ´ Prediction avec pseudonoeuds, Design d’ARN, Cinetique des ARN
2. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
I
` La programmation dynamique y regne sans partage, et suscite des ´ ´ eriques ´ developpements gen et transposables
I
´ Au coeur de la demarche de conception en prog. dyn., l’objet crucial est ´ ´ ´ ´ e´ la decomposition, et l’equation de recurrence n’est qu’un produit deriv
I
` ` de la prog. dyn. : Encore des problemes difficiles/ouverts, a` la lisiere ´ ´ Prediction avec pseudonoeuds, Design d’ARN, Cinetique des ARN
I
` Nombreuses hypotheses testables sur la relation structure/fonction, ´ ` et au dela` de l’ARN : Reconciliations, alignement, sac-a-dos ... ´ (mais jamais rarement plus de 24h dans une journee)
2. Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Conclusion
I
` des problemes ` L’algorithmique du repliement des ARN souleve a` la ` entre combinatoire et optimisation frontiere
I
` La programmation dynamique y regne sans partage, et suscite des ´ ´ eriques ´ developpements gen et transposables
I
´ Au coeur de la demarche de conception en prog. dyn., l’objet crucial est ´ ´ ´ ´ e´ la decomposition, et l’equation de recurrence n’est qu’un produit deriv
I
` ` de la prog. dyn. : Encore des problemes difficiles/ouverts, a` la lisiere ´ ´ Prediction avec pseudonoeuds, Design d’ARN, Cinetique des ARN
I
` Nombreuses hypotheses testables sur la relation structure/fonction, ´ ` et au dela` de l’ARN : Reconciliations, alignement, sac-a-dos ... ´ (mais jamais rarement plus de 24h dans une journee)
Merci de votre attention ! 2
´ 2. Reveillez vous ! Tous a` la plage ! Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
References I J. K. Baker. Trainable grammars for speech recognition. The Journal of the Acoustical Society of America, 65(S1) :S132–S132, 1979. Y. Ding, C. Y. Chan, and C. E. Lawrence. RNA secondary structure prediction by centroids in a boltzmann weighted ensemble. RNA, 11 :1157–1166, 2005. Y. Ding and E. Lawrence. A statistical sampling algorithm for RNA secondary structure prediction. Nucleic Acids Research, 31(24) :7280–7301, 2003. Alain Denise, Yann Ponty, and Michel Termier. Controlled non-uniform random generation of decomposable structures. Theoretical Computer Science, 411(40) :3527–3552, 2010. A. V. Finkelstein and M. A. Roytberg. Computation of biopolymers : a general approach to different problems. Biosystems, 30(1-3) :1–19, 1993. J.S. McCaskill. The equilibrium partition function and base pair binding probabilities for RNA secondary structure. Biopolymers, 29 :1105–1119, 1990. ´ Miklos, ´ Irmtraud M Meyer, and Borbala ´ Nagy. Istvan Moments of the boltzmann distribution for rna secondary structures. Bull Math Biol, 67(5) :1031–1047, Sep 2005. ´ Manuch, ˇ Jan Chris Thachuk, Ladislav Stacho, and Anne Condon. Np-completeness of the direct energy barrier problem without pseudoknots. Natural Computing : an international journal, 10 :391–405, 2011.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
References II Nicholas R Markham and Michael Zuker. Unafold : software for nucleic acid folding and hybridization. Methods Mol Biol, 453 :3–31, 2008. R. Nussinov and A. B. Jacobson. Fast algorithm for predicting the secondary structure of single stranded RNA. Proc. Natl. Acad. Sci. U. S. A., 77(11) :6309–6313, 1980. S.B. Needleman and C.D. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. J. Mol. Bio., 48 :443–453, 1970. Y. Ponty. Efficient sampling of RNA secondary structures from the boltzmann ensemble of low-energy : The boustrophedon method. J Math Biol, 56(1-2) :107–127, Jan 2008. ´ Yann Ponty and Cedric Saule. A combinatorial framework for designing (pseudoknotted) rna algorithms. In TeresaM. Przytycka and Marie-France Sagot, editors, Algorithms in Bioinformatics, volume 6833 of Lecture Notes in Computer Science, pages 250–269. Springer Berlin Heidelberg, 2011. ¨ Stefan Janssen, and Robert Giegerich. Georg Sauthoff, Mathias Mohl, Bellman’s gap—a language and compiler for dynamic programming in sequence analysis. Bioinformatics, 29(5) :551–560, 2013. Evan Senter, Saad Sheikh, Ivan Dotu, Yann Ponty, and Peter Clote. Using the fast fourier transform to accelerate the computational search for rna conformational switches. PLoS ONE, 7(12) :e50506, 12 2012. Lioudmila V Sharova, Alexei A Sharov, Timur Nedorezov, Yulan Piao, Nabeebi Shaik, and Minoru S H Ko. Database for mrna half-life of 19 977 genes obtained by dna microarray analysis of pluripotent and differentiating mouse embryonic stem cells. DNA Res, 16(1) :45–58, Feb 2009.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
References III
T. F. Smith and M. S. Waterman. Identification of common molecular subsequences. J Mol Biol, 147 :195–197, 1981. M. S. Waterman. Secondary structure of single stranded nucleic acids. Advances in Mathematics Supplementary Studies, 1(1) :167–212, 1978. ´ ome ˆ Jer Waldispuhl ¨ and Yann Ponty. An unbiased adaptive sampling algorithm for the exploration of rna mutational landscapes under evolutionary pressure. Journal of Computational Biology, 18(11) :1465–1479, 2011. M. Zuker and P. Stiegler. Optimal computer folding of large RNA sequences using thermodynamics and auxiliary information. Nucleic Acids Res, 9 :133–148, 1981.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Contenu indicible
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes
I
Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees).
I
Approche Hypergraphe : Espace de recherche = (hyper-)chemins d’un hypergraphe.
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes
I
Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 1 (Caravane d’El Mamoun) : Grammaire = {S → S + S | S × S | 1} ´ Quelle(s) valeur(s) pour une expression arithmetique sans pa´ renthesage : 1+1×1+1+1= ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes × + 1 I
+ 1
1 +
1 1 Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 1 (Caravane d’El Mamoun) : Grammaire = {S → S + S | S × S | 1} ´ Quelle(s) valeur(s) pour une expression arithmetique sans pa´ renthesage : 1 + 1 × 1 + 1 + 1 = = (1 + 1) × (1 + (1 + 1)) = 6 ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes + 1
I
× 1 + + 1
Approches analyse syntaxique (parsing) : 1 1 ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 1 (Caravane d’El Mamoun) : Grammaire = {S → S + S | S × S | 1} ´ Quelle(s) valeur(s) pour une expression arithmetique sans pa´ renthesage : 1 + 1 × 1 + 1 + 1 = = 1 + (1 × ((1 + 1) + 1)) = 4 ?
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes + +
I
1
+ 1 1 ×
Approches analyse syntaxique (parsing) : 1 1 ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 1 (Caravane d’El Mamoun) : Grammaire = {S → S + S | S × S | 1} ´ Quelle(s) valeur(s) pour une expression arithmetique sans pa´ renthesage : 1 + 1 × 1 + 1 + 1 = = ((1 + (1 × 1)) + 1) + 1 = 4 ? ´ eral ´ : Se demander comment parentheser ´ En gen l’expression de fac¸on ` a` min (resp.max)-imiser la valeur de l’expression est un probleme ´ e). ´ d’analyse syntaxique (ponder
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes
I
Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 2 (ARN) : R → ARUR | URAR | GRCR | CRGR | GRUR | URGR | AR | CR | GR | UR | ε
` (Regles p) ` (Regles s)
Arbres de syntaxe abstraite pour CAGU : s s p s
C A
p
C G
ε U (.). CAGU
s
s
A ε
s
G
s
C U
ε .(.) CAGU
Yann Ponty
ε
A G
s
C
s
A p
ε U ..() CAGU
G ε
s
U ε .... CAGU
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes I
Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 2 (ARN) : R → ARUR | URAR | GRCR | CRGR | GRUR | URGR | AR | CR | GR | UR | ε
` (Regles p) ` (Regles s)
´ ` + Ponderation des regles (Ex : 1/0 pour p/s) ´ e´ sans equation ´ ⇒ Repliement a` la Nussinov = Parsing ponder explicite ! ´ et ˆ : Inter I I I I I
´ erique ´ Algorithmique gen en O(n3 ) Pas de manipulation des indices ⇒ moins d’erreurs . . . ` Grammaires plus modulaires : Robustesse au changement de modele ´ ´ Separation assez naturelle espace de recherche/score d’evaluation Extensions possibles a` certaines grammaires faiblement contextuelles (surcout ˆ algorithmique)
Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
Deux grandes familles de formalismes I
Approches analyse syntaxique (parsing) : ` : Grammaire non-contextuelle Modele Espace de recherche = Arbres de syntaxe abstraite (parse trees). Exemple 2 (ARN) : R → ARUR | URAR | GRCR | CRGR | GRUR | URGR | AR | CR | GR | UR | ε
` (Regles p) ` (Regles s)
´ ` + Ponderation des regles (Ex : 1/0 pour p/s) ´ e´ sans equation ´ ⇒ Repliement a` la Nussinov = Parsing ponder explicite ! ´ et ˆ : Inter I I I I I
´ erique ´ Algorithmique gen en O(n3 ) Pas de manipulation des indices ⇒ moins d’erreurs . . . ` Grammaires plus modulaires : Robustesse au changement de modele ´ ´ Separation assez naturelle espace de recherche/score d’evaluation Extensions possibles a` certaines grammaires faiblement contextuelles (surcout ˆ algorithmique)
´ Inconvenients : I I
I
Apprendre le formalisme ´ Performances : Pertes de constantes d’implementation, voir d’ordre de grandeur algorithmique pour structures plus complexes ` ´ semantique ´ ´ a` complexes a` definir ´ Problemes d’ambiguites dej Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ ´ erique ´ Deux implementations de l’analyses syntaxique gen
´ : J. Waldispuhl] [Credit ¨ I
´ (Lefebvre, Waldispuhl Grammaires (multibandes) attribuees ¨ et al) ` Calculer/minimiser un score sur un systeme d’attribut. ˆ ´ grace a` des Avantages : Pseudonoeuds simples peuvent etre explores grammaires multibandes en synchronisant les analyses syntaxiques . ´ Inconvenient : Induction de surcout ˆ algorithmique substantiel pour certaines ´ erement ` familles leg contextuelles (ex : Repliement avec pseudonoeuds).
http://people.csail.mit.edu/jw/software.php Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique
´ ´ erique ´ Deux implementations de l’analyses syntaxique gen Grammaire d’analyse (yield grammar) :
` ´ Algebre d’evaluation (base-pair algebra) :
>nussinov78 alg inp = axiom s where > (nil,left,right,pair,split,h) = alg > s = tabulated ( > nil right x _ = x > pair _ x _ = x + 1 > split x y = x + y > h xs = [maximum xs]
I
´ Programmation dynamique algebrique (ADP, Giegerich et al) Avantages : I
I
´ erale ´ ˆ a` une separation ´ Applications plus gen grace de grammaires ´ a` l’analyse syntaxique et a` l’evaluation. ´ respectivement consacrees ´ ` Cadre formel et implementation in-extenso (> 20 publis, dont 3 theses).
´ Inconvenient : I I
I
´ ´ fortement au langage Haskell. Notations cryptiques, implementation liee ˆ ´ perdant une partie des Pseudonoeuds : Formalisme doit etre hacke, ´ efice ´ ´ erique. ´ ben de l’approche gen ` des notations (trop ?) abstraites. Structure combinatoire disparaˆıt derriere ` ´ impossible a` traiter de fac¸on purement ⇒ Gros problemes d’ambiguite, ´ (Problemes ` ´ automatisee indecidables).
http://bibiserv.techfak.uni-bielefeld.de/adp/ Yann Ponty
EPIT’14 - ARN Partie 2 - Programmation Dynamique