1 TP 4 : Comparaison des distances

1.1 Construction des arbres

On a construit 2 arbres de gène en utilisant une partie différente de l’alignement :

  • arbre gag+pol+vif : positions 1 à 1400 de l’alignement
  • arbre env+nef : position 1400 à fin d’alignement

Notez que les valeurs le long des branches sont des longueurs de branches et pas des valeurs de bootstrap (case Br lengths cochées en haut)

1.2 Calcul des distances

On peut obtenir les distances calculées entre chaque paire de feuilles dans un arbre. Pour faire ça : menu File > Save patristic distances depuis la fenêtre d’un arbre. Vous obtenez un fichier qui ressemble à ça :

#patristic distances (tree length=1.200950)
HIV-1-M_D-1,HIV-1-M_F: 0.111630
HIV-1-M_D-2,HIV-1-M_F: 0.105390
HIV-1-M_B-1,HIV-1-M_F: 0.104920
HIV-1-M_B-2,HIV-1-M_F: 0.097810
HIV-1-M_F,HIV-1-M_H: 0.109730
HIV-1-M_C-2,HIV-1-M_F: 0.116890
HIV-1-M_C-1,HIV-1-M_F: 0.126290
HIV-1-M_A-2,HIV-1-M_F: 0.119540
HIV-1-M_A-1,HIV-1-M_F: 0.111670
HIV-1-M_F,HIV-1-N: 0.182420
...

HIV-1-N,SIVcpz_Ptt_US: 0.203110
...
...

A gauche, c’est le nom des 2 feuilles dont on calcule la distance. A droite, la distance calculée. Simple.

Chaque distance est obtenue en parcourant l’arbre depuis la feuille A vers la feuille B, en prenant le plus court chemin. On additionne simplement les distances de chaques branches parcourues. Par exemple, pour obtenir la distance entre SIVcpz_Ptt_US et HIV-1-N :

\(0.097+0.009+0.015+0.083 = 0.204 \approx 0.203110\) (en faisant le calcul à la main il y a des arrondis). Dans notre cas c’est seaview qui fait le calcul, avec les valeurs exactes. Vous avez pas besoin de savoir le faire à la main c’est juste pour comprendre.


Puisqu’on s’intéresse seulement aux distances entre HIV-N et [SIVcpz_US, HIV-O, HIV-M], on sélectionne dans le fichier les paires qui nous intéresse, par exemple :

HIV-1-N,SIVcpz_Ptt_US: 0.203110
HIV-1-N,HIV-1-O_1: 0.261150
HIV-1-M_D-2,HIV-1-N: 0.176430

Notez que le sujet est vague, et vous dit pas quelle séquence prendre exactement au sein des groupes M et O. Vous pouvez prendre n’importe laquelle, ça n’aura pas d’influence (les longueurs de branche intra-groupes sont assez homogènes). Il est possible que si vous prenez les mêmes que moi vous ayez des valeurs un peu différentes.

On répète ça pour l’autre arbre, en prenant les distances pour les mêmes paires – rappel, on a fait ces deux arbres pour pouvoir comparer ces distances entre eux.

HIV-1-N,SIVcpz_Ptt_US: 0.284060
HIV-1-N,HIV-1-O_1: 0.582420
HIV-1-M_D-2,HIV-1-N: 0.408540

1.3 Représentation des distances entre feuilles selon la région de l’alignement

C’est fait en R pour avoir une belle figure, mais c’est facile à faire à la main… Le TP demande juste des résultats qualitatifs, en gros il faut juste positionner les courbes relativement les unes aux autres, on s’en fout de la valeur exacte.

N_HIV_O = c(0.261150, 0.582420)
N_cpzUS = c(0.203110, 0.284060)
N_HIV_M = c(0.176430, 0.408540)
distances = as.data.frame(cbind(N_HIV_O, N_cpzUS, N_HIV_M))
rownames(distances) = c("1-1400", "1400-fin")
distances
N_HIV_O N_cpzUS N_HIV_M
1-1400 0.26115 0.20311 0.17643
1400-fin 0.58242 0.28406 0.40854
distances %>%
  add_column(pos=rownames(distances)) %>%
  melt(value.name="distance") %>%
  ggplot() +
  geom_line(aes(x=pos, y=distance, group=variable, col=variable)) +
  geom_point(aes(x=pos, y=distance, col=variable))+
  theme_bw()

1.4 Interprétation

La séquence de 1 à 1400 correspond aux gènes gag, pol et vif. La séquence de 1400 à la fin correspond aux gènes env et nef. On a fait l’hypothèse à la suite du TP que ces deux groupes de gènes n’était pas issus d’une seule souche virale mais provenait d’un événement de co-infection puis de recombinaison entre une souche HIV-M (gag+pol+vif) et une souche SIV (env+nef).
Cette conclusion est soutenue par les distances calculées entre la souche N et les autres souches.

  • La distance entre N et O et la plus grande quelque soit la sous-séquence considérée : on ne les retrouve jamais groupés ensemble dans les arbres qu’on a construits.
  • La distance entre N et SIVcpzUS est la plus faible quand on regarde les positions 1 à 1400. Ça correspond au regroupement de N et SIVcpz dans l’arbre et soutient notre hypothèse pour l’origine des gènes gag, pol et env en début de séquence de N
  • La distance entre N et M est la plus faible quand on regarde les positions à partir de 1400. Réciproquement, ça correspond au regroupement de N et M dans l’arbre correspondant, et soutient l’idée que les gènes env et nef de N proviennent d’une souche de SIV.

NB : Les distances sont globalement plus faibles quand on regarde les pos 1-1400 par rapport aux position 1400-end. Cette différence n’est pas forcément dûe aux origines différentes de ces séquences, même si il peut y avoir un lien. La distance nous donne une idée de nombre de substitutions qui séparent deux séquences. Pour un même temps \(t\) depuis la divergence, des branches plus longues (=distances plus longues) indiquent une divergence plus importante : davantage de mutations.
Ici, on peut supposer que les séquences env et nef sont moins conservées et subissent une pression de sélection moindre, donc plus de substitutions.

2 Exemples d’arbre de gène avec le placement des événements

Notez que les noeuds de speciation séparent les espèces l’une de l’autre, et que les noeuds de duplication séparent des groupes contenant une même espèce (ou les deux) de chaque côté du sous-arbre.

Un autre exemple qui met en relation avec les notions d’homologie, paralogie et orthologie :

Et un dernier qui est dans votre cours :

3 La saturation

Il s’agit de la saturation du signal phylogénétique. Elle désigne le fait que la divergence entre deux séquences apparaît être plus basse qu’elle ne l’est vraiment.

La divergence observée entre deux séquences peut être définie comme le nombre de substitutions entre deux séquences. On pourrait être tenté de l’interpréter directement comme le nombre de substitutions qui ont effectivement eu lieu au cours de l’évolution des séquences. Mais il s’agit d’une mesure biaisée qui sous-estime la distance réelle entre les séquences, car elle ne prend pas en compte certains événements de substitutions indétectables. Elle est de moins en moins fiable à mesure que la saturation augmente.

La divergence estimée est le nombre de substitutions attendues par site. C’est une estimation statistique, qui dépend du modèle utilisé. On la détermine à partir de la divergence observée (le signal qui est dans les séquences et leur alignement) en corrigeant sa valeur en fonction du modèle utilisé. La longueur des branches dans les arbres phylogénétiques correspond à cette divergence estimée, c’est à dire le nombre de substitutions attendues par site (sauf max. de parcimonie et méthode des distances sans modèle, qui se basent directement sur le nombre de substitutions observées).

Si il y a saturation, cela peut-être le résultat (les figures montrent un seul site pour faire simple):

  • de substitutions multiples sur un même site d’une séquence (deux exemples)
    A gauche, on observe un site identique, alors qu’il y a eu deux événements de substitution
    A droite, on observe une substitution, mais on est incapable de dire combien il y en a eu au total. On sait juste qu’il y en a eu au moins une.
    Attention : la seule chose qu’on connaît, c’est l’état des séquences aux feuilles. L’histoire des noeuds internes et des branches doit être inférée, mais on ne peut pas l’observer directement.

  • de substitutions identiques sur les deux séquences

    Le site est perçu comme identique (0 substitutions observées) alors qu’il est le résultat de deux substitutions sur chaque séquence (4 en tout).

Ces deux types d’événements masquent des substitutions qui ont eu lieu et qui ne sont pas détectables dans les séquences (puisqu’on ne peut voir que le résultat final). De manière générale, on a saturation quand il devient impossible d’évaluer le nombre de subtitutions réelles qui ont eu lieu. Deux séquences homologues sont d’autant plus soumises à la saturation que le temps qui les sépare est long, ou que leur vitesse d’évolution est rapide (p. ex. taux de mutation élevé). C’est pour ça qu’il est plus difficile de reconstruire des phylogénies entre des séquences trop divergentes, d’où l’utilisation de Gblocks en TP pour n’utiliser que les régions suffisamment similaires dans l’alignement.

L’observation de la qualité de l’alignement entre séquences, et de la longueur des branches permet d’avoir une idée du niveau de saturation du jeu de données. Des branches très longues indiquent un long temps de divergence et/ou un taux d’évolution rapide, qui provoquent la saturation du signal.

Rmq : Pour un même jeu de données, si vous construisez un arbre par méthode des distances avec modèle (par ex. Kimura) ou sans modèle:

  • Les deux arbres n’auront pas forcément la même topologie (puisque la construction des branches dépend de la distance entre chaque paire).
  • La longueur d’une même branche aura tendance a être plus grande (= davantage de substitutions attendues) dans l’arbre construit avec le modèle par rapport à celle dans l’arbre construit d’après les distances observées.

Rmq : en terme de topologie des arbres, la saturation peut être l’origine d’un phénomène d’Attraction des Longues Branches. Le principe est qu’une branche particulièrement longue est plus sujette à saturation (vous comprenez pourquoi maintenant), et cela biaise son positionnement dans l’arbre. Cf. votre cours + un exemple bien illustré.

4 Des trucs en vracs

  • La méthode par maximum de parcimonie ne calcule pas de longueurs de branches, contrairement aux deux autres qu’on a vu.
  • Il peut y avoir des égalités en maximum de parcimonie (nombres égaux de substitutions pour faire chaque arbre) : ça aboutit à des multifurcations dans l’arbre final. On a vu en TP un exemple de trifurcation.
  • Vérifiez que vous savez à quoi sert BLAST et les autres outils principaux qu’on a vu…
  • Savoir faire la diff entre un programme et une base de données
  • Si vous devez faire une partie analyse de séquence (comme au TP1), pas oublier de justifier d’où ça vient (quel base de données puis quelles infos permet de répondre à une question donnée)

4.1 Les longueurs de branches

Une question d’un exam des années précédentes :

Que représente la longueur d’une branche dans un arbre phylogénétique généré par chacune des méthodes (parcimonie / vraisemblance / distance) ?

C’est un peu vicieux comme question : en parcimonie, il n’y a pas de longueur de branche. Tout ce que fait la méthode par parcimonie c’est :

  • Générer tous les arbres possibles (SANS longueur de branche, ce sont juste des topologies).
  • Compter pour chaque arbre le nombre total de substitutions : ça donne un score
  • Identifier les arbres ayant le meilleur score (le plus bas)
  • Si il y en a plusieurs à égalité, on les réconcilie : c’est ça qui peut donner des multifurcations dans l’arbre final.

Une réponse concise serait :

Il n’y a pas de longueur de branche dans les arbres construits par parcimonie. En revanche, la longueur d’une branche pour les autres méthodes peut être interprétée comme un nombre moyen de substitutions attendues par site. C’est une manière de quantifier une distance évolutive entre les séquences. La différence entre les longueurs obtenues par la méthode des distances et au maximum de vraisemblance réside dans la manière de les estimer (et dépend aussi du modèle d’évolution utilisé).

Et pour remettre tout ça dans son contexte :
Si on utilise une approche naïve, comme se contenter de compter les substitutions qu’on observe sur les séquences aux feuilles (méthodes des distances observées), on se fait avoir.

En effet, ça suppose que toute subsitution observée correspond à un événement réel de substitution, et réciproquement que chaque substitution ayant eu lieu est visible sur nos séquences contemporaines. Nous avons vu que ce n’est pas le cas, par exemple à cause de la saturation.

Mais en combinant ce qu’on connait des mécanismes de l’évolution dans un modèle, on est capable de mieux prendre en compte un certain nombre de biais, et d’avoir une estimation plus fidèle de la distance évolutive. En pratique, si vous faites un arbre par méthode des distances observées puis un autre avec des distances estimées par un modèle (p. ex. Kimura), le second aura tendance a avoir des branches plus longues, qui tiennent mieux compte des substitutions cachées.