Combinatoire et algorithmique de l'ARN - Partie 2 ... - LIX

Parcours exhaustif (redondant) de l'arbre des possibles. → Θ(#Pi`ecesN ) ...... a,c,b : Pénalité de boucle multiple, hélice et non-appariées dans multiboucle. =.
3MB taille 3 téléchargements 305 vues
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