1 Étudiants: Professeur: Salamin Nicolas Assistante: Maryam Zaheri.

Slides:



Advertisements
Présentations similaires
S-SYSTEMS ETAPPROCHE HYBRIDE
Advertisements

Modélisation markovienne et phylogénie moléculaire:
Cladogramme.
Apprentissage spectral
Modèle des jeux et des mécanismes
Classification et prédiction
Recherche de motifs par méthodes exploratoires: Comparaisons de performances et statistiques sur le score.
Localisation fine de QTL par déséquilibre de liaison Simon BOITARD Durée : octobre 2003-septembre 2006 Laboratoire : BIA (biométrie et intelligence artificielle)
DE ZÉRO à PAUP : Délimitation du groupe d'intérêt ("ingroup")
Diagram-Based Techniques
Phylogénie et distances génétique
OBJECTIFS FouDanGA : Fouille de données pour lannotation de génomes dactinomycètes CONTEXTE Laccumulation des séquences.
Colloque Traitement et Analyse de séquences : compte-rendu
Simultaneous Registration and Activation Detection for fMRI
Modélisation Bayésienne par chaines de Markov Monte Carlo
Un nouveau regard sur les données moléculaires
Modélisation markovienne en phylogénie :
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
Christelle Scharff IFI 2004
Vers un indicateur de la qualité des cours d’ eau…
QTLmap et les données ayant une distribution non gaussienne
Septième étape : travailler avec des graphes probabilistes
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Structures de données et algorithmes – TP2
2.1.5 Rotations in 3D: Rotation axis
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Caricature IDF Dis, M'sieur le Moniteur de Biologie marine c'est quoi t'est-ce donc la classification phylogénétique ? Non ! Claude Duboc Professeur de.
METHODE GLOBALE de construction d’un arbre phylogénétique
UBLO Comparaison de génomes bactériens : questions méthodologiques autour de la définition du squelette et des boucles
Les fichiers indexés (Les B-arbres)
Modèles d’implantation
Démographie d'entreprises sur la base des chaînes de Markov: une application aux données belges François COPPENS Fabienne VERDUYN Direction Analyse Micro-économique.
1 Décisions dans lincertain Eric Sanlaville ISIMA 3 F3, master SIAD novembre 2008.
1.
Plan Buts principaux Intérêt et pertinence du projet Rappel concernant la phylogénie Travail accompli jusquà maintenant Travail restant à accomplir Difficultés.
Supervisors: Anna Kostikova, Nicolas Salamin
Réseaux bayésiens: Inférence
Jean Dubé CRDT, Université du Québec à Rimouski Mars 2012
High genomic deleterious mutation rates in hominids Eyre-Walker & P. D. Keightley Letters to Nature, Jan. 99.
Modèle neuromimètique de l’apprentissage par renforcement Les aspects temporels (réponse retardée) peuvent être facilement intégrés au niveau cortical.
SOUTENANCE DE DEUXIEME ANNEE
Le passage de l’ARNm à la protéine Professeur Jremías González B.
Le belge : une espèce en voie de disparition ? Un contexte démographique dans les leçons de mathématiques. CREM, Nivelles, 07/05/08 Johan Deprez cfr.
Évaluation des programmes de premier cycle/Evaluation of undergraduate programs Université d’Ottawa/ University of Ottawa 1 Auto-evaluation Report Objectives.
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
Introduction à la Phylogénie
Formation Bio-informatique IRD
Familles de gènes Nadia El-Mabrouk.
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Module « Epidémiologie »
Approche probabiliste pour la commande orientée
Décomposition de graphes pour la reconstruction de réseaux phylogénétiques V. Berry (MAB) et C. Paul (VAG, HdR) Candidat AMN : Philippe Gambette (LIAFA)
Probabilités et Statistiques
Alignement de séquences biologiques
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Inférence phylogénétique
20/06/2015propagation de signatures lexicales dans le graphe du Web 1 Propagation de signatures lexicales dans le graphe du Web M. Bouklit M. Lafourcade.
Projet GenoTo3D Apprentissage automatique appliqué à la prédiction de la structure tertiaire des protéines GenoTo3D Guermeur Y 1, Benabdelsem K 2, Bréhélin.
Ménard Murielle Fernandez Gildas
Génétique et évolution La variabilité interespèces Outils pour la construction “à haut débit“ d’arbres phylogénétiques Réflexion sur les espèces situées.
Recherche heuristique dans les bases de données L’algorithme BLAST
L’établissement des relations phylogénétiques
Surfaces de Bézier.
Un segment peut contenir plusieurs gènes les gènes sont nombreux et/ou en interaction leurs effets sont inégaux et instables les mutations se fixent séquentiellement.
« Ecologie et dynamique des populations » Unité de Pathologie Végétale
Les mesures de tendance centrale
Note 1 : Tous les rapports de T.P. devront être soumis avant la date limite via le serveur Esilbac. Aucune autre forme de remise ne sera acceptée. Note.
The final intercalibration process Prerequisites 1. Good status boundaries have been set by Member States. 2. IC process has passed “feasibility checks“.
Classification évolutive Travaux pratiques et cas de la lignée verte Cours du 10/03/2016 Présentation: Hugo FONTES Conception : Hugo FONTES et Pierre CELLIER.
Index fonctionnels : comment calculer leur valeur économique dans l’index de synthèse ? Functional index: how to estimate their economic value for total.
Transcription de la présentation:

1 Étudiants: Professeur: Salamin Nicolas Assistante: Maryam Zaheri

2 Likelihood (L) estimation for a simple tree of nucleotides sequences Understand the mathematicals processes under this estimation Programming a general fonction in R to calculate L for a specific tree Buts principaux

3 Intérêt et pertinence du projet La méthode du ML permet d’optimiser les paramètres pour trouver le meilleur arbre phylogénétique Détecter la pression sélective pour étudier le rôle d’un gène, les gènes importants sont très conservés Utilisation et interprétation des données phylogénétiques Etude et modélisation de l’évolution des espèces à partir des séquences trouvées

4 Méthodologie Figure 1: représentation des substitutions multiples à un site (Yang, Computational molecular evolution, Oxford universtiy press, 2006) la distance entre 2 séquences s’estime par le nombre de nucléotides différents à chaque site Problème: sous estimation des substitutions (substitutions multiples, hidden substitutions) Markov chain (fig. 1) Continuous-time Markov process: est un modèle probabilistique qui décrit tous les possibles substitutions qui peuvent se passer à un site on se basant sur la situation actuelle (markov property) et on assumant que chaque site évolue indépendamment la distance entre 2 séquences s’estime par le nombre de nucléotides différents à chaque site Problème: sous estimation des substitutions (substitutions multiples, hidden substitutions) Markov chain (fig. 1) Continuous-time Markov process: est un modèle probabilistique qui décrit tous les possibles substitutions qui peuvent se passer à un site on se basant sur la situation actuelle (markov property) et on assumant que chaque site évolue indépendamment

5 Markov chain model JC69:  Modèle simple pour nucléotides (T,C,A,G), bon modèle pour des petites distances  Q={q ij } est la matrice des taux de substitution:  qij est le taux instantané de substitution du nucléotide i au nucléotide j  la somme de chaque colonne vaut 0  a la même valeur pour chaque nucléotide (ex =1)  qij∆t donne la probabilité de substitution dans un petit intervalle de temps  P(t)={p ij (t)} est la matrice des probabilités de transition:  pij(t) est la probabilité qu’un nucléotide i devient j après un temps t  cette matrice considère et calcule tous les possible voies par lesquelles est passé le processus évolutif  même dimensions de la matrice Q, la somme de chaque colonne vaut 1  se calcule ainsi: Markov chain model JC69:  Modèle simple pour nucléotides (T,C,A,G), bon modèle pour des petites distances  Q={q ij } est la matrice des taux de substitution:  qij est le taux instantané de substitution du nucléotide i au nucléotide j  la somme de chaque colonne vaut 0  a la même valeur pour chaque nucléotide (ex =1)  qij∆t donne la probabilité de substitution dans un petit intervalle de temps  P(t)={p ij (t)} est la matrice des probabilités de transition:  pij(t) est la probabilité qu’un nucléotide i devient j après un temps t  cette matrice considère et calcule tous les possible voies par lesquelles est passé le processus évolutif  même dimensions de la matrice Q, la somme de chaque colonne vaut 1  se calcule ainsi:

6 Likelihood method:  méthode pour calculer la distance entre 2 séquences  la topologie de l’arbre est fixé  on assume que chaque site évolue indépendamment des autres  the nesting rule : on somme les états du nœud ancestrale après avoir fait la somme pour chaque nœud descendant  utilise une matrice data de dimension s x n Likelihood method:  méthode pour calculer la distance entre 2 séquences  la topologie de l’arbre est fixé  on assume que chaque site évolue indépendamment des autres  the nesting rule : on somme les états du nœud ancestrale après avoir fait la somme pour chaque nœud descendant  utilise une matrice data de dimension s x n Pour un nœud: Pour un site de l’arbre: Pour tous les sites de l’arbre:

7 Résultats Topologie de l’arbre phylogénétique The Newick tree format est une écriture utilisé pour représenter des arbres Topologie de l’arbre phylogénétique The Newick tree format est une écriture utilisé pour représenter des arbres tr <- read.tree() (((S1:0.2,S2:0.2)node1:0.1,S3:0.2)node3:0.1,(S4:0.2,S5:0.2)node2:0.1)node4:0.1; plot.phylo(tr,root.edge=TRUE,underscore=TRUE,no.margin=TRUE,font=2)nodelabels(c("node4","node3","node1","node2"),frame="c",bg="white")

8 site <- function(seq,Q){ dna<-c(-3,1,1,1,1,-3,1,1,1,1,-3,1,1,1,1,-3) Q<-matrix(dna,nrow=4,ncol=4,dimnames=list("bases"=c("T","C","A","G"), "bases"=c("T","C","A","G"))) seq <- read.dna("/Users/Deketek/Scuola/Mathematique/mc.paml", format="sequential",as.character=TRUE) L <- numeric(length=length(seq[1,])) t1 <- 0.2 t2 <- 0.2 t3 <- 0.2 t4 <- 0.2 t5 <- 0.2 t6 <- 0.1 t7 <- 0.1 t8 <- 0.1 p <- c(0.25,0.25,0.25,0.25) x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0)} else{if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0)} else{if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0)} else{if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}} P1<-expm(Q*t1) l <- length(P1[1,]) c <- length(P1[,1]) sum1 <- c(0,0,0,0) C1 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i]}} P2<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum2 <- c(0,0,0,0) C2 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i]}} node1 <- sum1*sum2 P3<-expm(Q*t4) l <- length(P1[1,]) c <- length(P1[,1]) sum3 <- c(0,0,0,0) C3 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C3[i,j] <- P3[i,j]*x[4,j] sum3[i] <- C3[i,j]+sum3[i]}} P4<-expm(Q*t5) l <- length(P2[1,]) c <- length(P2[,1]) um4 <- c(0,0,0,0) C4 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C4[i,j] <- P4[i,j]*x[5,j] sum4[i] <- C4[i,j]+sum4[i]}} node2 <- sum3*sum4 P5<-expm(Q*t7) l <- length(P1[1,]) c <- length(P1[,1]) sum5 <- c(0,0,0,0) C5 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C5[i,j] <- P5[i,j]*node1[j] sum5[i] <- C5[i,j]+sum5[i]}} P6<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum6 <- c(0,0,0,0) C6 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C6[i,j] <- P6[i,j]*x[3,j] sum6[i] <- C6[i,j]+sum6[i]}} node3 <- sum5*sum6 P7<-expm(Q*t6) l <- length(P1[1,]) c <- length(P1[,1]) sum7 <- c(0,0,0,0) C7 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C7[i,j] <- P7[i,j]*node3[j] sum7[i] <- C7[i,j]+sum7[i]}} P8<-expm(Q*t8) l <- length(P2[1,]) c <- length(P2[,1]) sum8 <- c(0,0,0,0) C8 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C8[i,j] <- P8[i,j]*node2[j] sum8[i] <- C8[i,j]+sum8[i]}} node4 <- sum7*sum8 L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) }

9 site <- function(seq,Q){ dna<-c(-3,1,1,1,1,-3,1,1,1,1,-3,1,1,1,1,-3) Q<-matrix(dna,nrow=4,ncol=4,dimnames=list("bases"=c("T","C","A","G"), "bases"=c("T","C","A","G"))) seq <- read.dna("/Users/Deketek/Scuola/Mathematique/mc.paml", format="sequential",as.character=TRUE) L <- numeric(length=length(seq[1,])) t1 <- 0.2 t2 <- 0.2 t3 <- 0.2 t4 <- 0.2 t5 <- 0.2 t6 <- 0.1 t7 <- 0.1 t8 <- 0.1 p <- c(0.25,0.25,0.25,0.25) x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0)} else{if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0)} else{if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0)} else{if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}} P1<-expm(Q*t1) l <- length(P1[1,]) c <- length(P1[,1]) sum1 <- c(0,0,0,0) C1 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i]}} P2<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum2 <- c(0,0,0,0) C2 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i]}} node1 <- sum1*sum2 P3<-expm(Q*t4) l <- length(P1[1,]) c <- length(P1[,1]) sum3 <- c(0,0,0,0) C3 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C3[i,j] <- P3[i,j]*x[4,j] sum3[i] <- C3[i,j]+sum3[i]}} P4<-expm(Q*t5) l <- length(P2[1,]) c <- length(P2[,1]) um4 <- c(0,0,0,0) C4 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C4[i,j] <- P4[i,j]*x[5,j] sum4[i] <- C4[i,j]+sum4[i]}} node2 <- sum3*sum4 P5<-expm(Q*t7) l <- length(P1[1,]) c <- length(P1[,1]) sum5 <- c(0,0,0,0) C5 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C5[i,j] <- P5[i,j]*node1[j] sum5[i] <- C5[i,j]+sum5[i]}} P6<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum6 <- c(0,0,0,0) C6 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C6[i,j] <- P6[i,j]*x[3,j] sum6[i] <- C6[i,j]+sum6[i]}} node3 <- sum5*sum6 P7<-expm(Q*t6) l <- length(P1[1,]) c <- length(P1[,1]) sum7 <- c(0,0,0,0) C7 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C7[i,j] <- P7[i,j]*node3[j] sum7[i] <- C7[i,j]+sum7[i]}} P8<-expm(Q*t8) l <- length(P2[1,]) c <- length(P2[,1]) sum8 <- c(0,0,0,0) C8 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C8[i,j] <- P8[i,j]*node2[j] sum8[i] <- C8[i,j]+sum8[i]}} node4 <- sum7*sum8 L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) }

10 Résultats Les inputs de notre fonction: > Q bases bases T C A G T C A G La matrice Q > seq[,1:5] [,1] [,2] [,3] [,4] [,5] S1 "t" "g" "t" "a" "g" S2 "t" "t" "g" "g" "c" S3 "g" "t" "g" "t" "t" S4 "t" "g" "t" "a" "g" S5 "a" "g" "g" "c" "a" Les séquences à analyser site <- function(seq,Q){

11 site <- function(seq,Q){ dna<-c(-3,1,1,1,1,-3,1,1,1,1,-3,1,1,1,1,-3) Q<matrix(dna,nrow=4,ncol=4,dimnames=list("bases"=c("T","C","A","G"), "bases"=c("T","C","A","G"))) seq <- read.dna("/Users/Deketek/Scuola/Mathematique/mc.paml", format="sequential",as.character=TRUE) L <- numeric(length=length(seq[1,])) t1 <- 0.2 t2 <- 0.2 t3 <- 0.2 t4 <- 0.2 t5 <- 0.2 t6 <- 0.1 t7 <- 0.1 t8 <- 0.1 p <- c(0.25,0.25,0.25,0.25) x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0)} else{if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0)} else{if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0)} else{if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}} P1<-expm(Q*t1) l <- length(P1[1,]) c <- length(P1[,1]) sum1 <- c(0,0,0,0) C1 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i]}} P2<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum2 <- c(0,0,0,0) C2 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i]}} node1 <- sum1*sum2 P3<-expm(Q*t4) l <- length(P1[1,]) c <- length(P1[,1]) sum3 <- c(0,0,0,0) C3 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C3[i,j] <- P3[i,j]*x[4,j] sum3[i] <- C3[i,j]+sum3[i]}} P4<-expm(Q*t5) l <- length(P2[1,]) c <- length(P2[,1]) um4 <- c(0,0,0,0) C4 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C4[i,j] <- P4[i,j]*x[5,j] sum4[i] <- C4[i,j]+sum4[i]}} node2 <- sum3*sum4 P5<-expm(Q*t7) l <- length(P1[1,]) c <- length(P1[,1]) sum5 <- c(0,0,0,0) C5 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C5[i,j] <- P5[i,j]*node1[j] sum5[i] <- C5[i,j]+sum5[i]}} P6<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum6 <- c(0,0,0,0) C6 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C6[i,j] <- P6[i,j]*x[3,j] sum6[i] <- C6[i,j]+sum6[i]}} node3 <- sum5*sum6 P7<-expm(Q*t6) l <- length(P1[1,]) c <- length(P1[,1]) sum7 <- c(0,0,0,0) C7 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C7[i,j] <- P7[i,j]*node3[j] sum7[i] <- C7[i,j]+sum7[i]}} P8<-expm(Q*t8) l <- length(P2[1,]) c <- length(P2[,1]) sum8 <- c(0,0,0,0) C8 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C8[i,j] <- P8[i,j]*node2[j] sum8[i] <- C8[i,j]+sum8[i]}} node4 <- sum7*sum8 L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) }

12 Résultats > xsite1 bases seq T C A G S S S S S  x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0) } else{ if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0) } else{ if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0) } else{ if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}}

13 site <- function(seq,Q){ dna<-c(-3,1,1,1,1,-3,1,1,1,1,-3,1,1,1,1,-3) Q<matrix(dna,nrow=4,ncol=4,dimnames=list("bases"=c("T","C","A","G"), "bases"=c("T","C","A","G"))) seq <- read.dna("/Users/Deketek/Scuola/Mathematique/mc.paml", format="sequential",as.character=TRUE) L <- numeric(length=length(seq[1,])) t1 <- 0.2 t2 <- 0.2 t3 <- 0.2 t4 <- 0.2 t5 <- 0.2 t6 <- 0.1 t7 <- 0.1 t8 <- 0.1 p <- c(0.25,0.25,0.25,0.25) x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0)} else{if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0)} else{if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0)} else{if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}} P1<-expm(Q*t1) l <- length(P1[1,]) c <- length(P1[,1]) sum1 <- c(0,0,0,0) C1 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i]}} P2<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum2 <- c(0,0,0,0) C2 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i]}} node1 <- sum1*sum2 P3<-expm(Q*t4) l <- length(P1[1,]) c <- length(P1[,1]) sum3 <- c(0,0,0,0) C3 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C3[i,j] <- P3[i,j]*x[4,j] sum3[i] <- C3[i,j]+sum3[i]}} P4<-expm(Q*t5) l <- length(P2[1,]) c <- length(P2[,1]) um4 <- c(0,0,0,0) C4 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C4[i,j] <- P4[i,j]*x[5,j] sum4[i] <- C4[i,j]+sum4[i]}} node2 <- sum3*sum4 P5<-expm(Q*t7) l <- length(P1[1,]) c <- length(P1[,1]) sum5 <- c(0,0,0,0) C5 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C5[i,j] <- P5[i,j]*node1[j] sum5[i] <- C5[i,j]+sum5[i]}} P6<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum6 <- c(0,0,0,0) C6 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C6[i,j] <- P6[i,j]*x[3,j] sum6[i] <- C6[i,j]+sum6[i]}} node3 <- sum5*sum6 P7<-expm(Q*t6) l <- length(P1[1,]) c <- length(P1[,1]) sum7 <- c(0,0,0,0) C7 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C7[i,j] <- P7[i,j]*node3[j] sum7[i] <- C7[i,j]+sum7[i]}} P8<-expm(Q*t8) l <- length(P2[1,]) c <- length(P2[,1]) sum8 <- c(0,0,0,0) C8 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C8[i,j] <- P8[i,j]*node2[j] sum8[i] <- C8[i,j]+sum8[i]}} node4 <- sum7*sum8 L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) }

14 Résultats P1<-expm(Q*t1) sum1 <- c(0,0,0,0) l <- length(P1[1,]) c <- length(P1[,1]) C1 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i] }} P2<-expm(Q*t2) sum2 <- c(0,0,0,0) l <- length(P2[1,]) c <- length(P2[,1]) C2 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i] }} node1 <- sum1*sum2 Exemple pour le premier noeud > P 4 x 4 Matrix of class "dsyMatrix" bases bases T C A G T C A G Exemple avec t = 0.2 X t1 t2 Node 1 sum1 sum2 X[1,j]X[2,j]

15 site <- function(seq,Q){ dna<-c(-3,1,1,1,1,-3,1,1,1,1,-3,1,1,1,1,-3) Q<matrix(dna,nrow=4,ncol=4,dimnames=list("bases"=c("T","C","A","G"), "bases"=c("T","C","A","G"))) seq <- read.dna("/Users/Deketek/Scuola/Mathematique/mc.paml", format="sequential",as.character=TRUE) L <- numeric(length=length(seq[1,])) t1 <- 0.2 t2 <- 0.2 t3 <- 0.2 t4 <- 0.2 t5 <- 0.2 t6 <- 0.1 t7 <- 0.1 t8 <- 0.1 p <- c(0.25,0.25,0.25,0.25) x <- matrix(data=NA,nrow=5,ncol=4) for(h in 1:length(seq[1,])){ for(k in 1:length(seq[,1])){ if(seq[k,h]=="t"){ x[k,] <- c(1,0,0,0)} else{if(seq[k,h]=="c"){ x[k,] <- c(0,1,0,0)} else{if(seq[k,h]=="a"){ x[k,] <- c(0,0,1,0)} else{if(seq[k,h]=="g"){ x[k,] <- c(0,0,0,1) }}}}} P1<-expm(Q*t1) l <- length(P1[1,]) c <- length(P1[,1]) sum1 <- c(0,0,0,0) C1 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C1[i,j] <- P1[i,j]*x[1,j] sum1[i] <- C1[i,j]+sum1[i]}} P2<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum2 <- c(0,0,0,0) C2 <- matrix(data=0,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C2[i,j] <- P2[i,j]*x[2,j] sum2[i] <- C2[i,j]+sum2[i]}} node1 <- sum1*sum2 P3<-expm(Q*t4) l <- length(P1[1,]) c <- length(P1[,1]) sum3 <- c(0,0,0,0) C3 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C3[i,j] <- P3[i,j]*x[4,j] sum3[i] <- C3[i,j]+sum3[i]}} P4<-expm(Q*t5) l <- length(P2[1,]) c <- length(P2[,1]) um4 <- c(0,0,0,0) C4 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C4[i,j] <- P4[i,j]*x[5,j] sum4[i] <- C4[i,j]+sum4[i]}} node2 <- sum3*sum4 P5<-expm(Q*t7) l <- length(P1[1,]) c <- length(P1[,1]) sum5 <- c(0,0,0,0) C5 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C5[i,j] <- P5[i,j]*node1[j] sum5[i] <- C5[i,j]+sum5[i]}} P6<-expm(Q*t2) l <- length(P2[1,]) c <- length(P2[,1]) sum6 <- c(0,0,0,0) C6 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C6[i,j] <- P6[i,j]*x[3,j] sum6[i] <- C6[i,j]+sum6[i]}} node3 <- sum5*sum6 P7<-expm(Q*t6) l <- length(P1[1,]) c <- length(P1[,1]) sum7 <- c(0,0,0,0) C7 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C7[i,j] <- P7[i,j]*node3[j] sum7[i] <- C7[i,j]+sum7[i]}} P8<-expm(Q*t8) l <- length(P2[1,]) c <- length(P2[,1]) sum8 <- c(0,0,0,0) C8 <- matrix(data=NA,nrow=l,ncol=c) for(i in 1:l){ for(j in 1:c){ C8[i,j] <- P8[i,j]*node2[j] sum8[i] <- C8[i,j]+sum8[i]}} node4 <- sum7*sum8 L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) }

16 L <- numeric(length=length(seq[1,])) Résultats for(h in 1:length(seq[1,])){ L[h]<- log(sum(node4*p)) } LT <- sum(L) return(LT) } Vecteur vide à remplir avec le likelihood pour chaque site Loop pour calculer le likelihood de chaque site Définir la valeur qui entre dans le vecteur L et l’output de la fonction

17 Perspectives Optimisation des paramètres de l’arbre Passage du modèle JC69 à des modèles pour nucléotides plus complexes Passage au Codon-based model: La chaîne de Markov décrit les substitutions d’un codon i en j Ne considère pas les délétions/insertions Les mutations se passent indépendamment au 3 sites des codons Les paramètres de Q: {q ij } = 0 si i et j diffèrent à 2 ou 3 positions du codon  j si i et j diffèrent d’une transversion synonyme  j si i et j diffèrent d’une transition synonyme  j si i et j diffèrent d’une transversion non-synonyme  j si i et j diffèrent d’une transition non-synonyme Estimation du taux de substitutions nonsynonyme/ synonyme (ω= dn/ds) est un important indicateur de la pression sélective: ω = 1 -> neutral mutations ω purifyng selection ω > 1 -> diversifyng positive selection

18 Bibliographie Yang Z., Computational Molecular Evolution, Oxford university press, 2006 Masatoshi N./Sudhir K., Molecular Evolution and Phylogenetics, Oxford university press, 2000 Paradis E., Analysis of Phylogenetics and Evolution with R, Springer, 2006 Livres: Articles: Goldman N./Yang Z., "A Codon-based Model of Nucleotide Substitution for Protein- coding DNA Sequences", The University of Chicago, 1994 Yang & all, "Codon-Substitution Models for Heterogeneous Selection Pressure at Amino Acid Sites", Genetics nb 155, p , 2000

19 Merci pour l’attention!! Questions?