Arbre phylogénétique

À propos des arbres phylogénétiques

Un arbre phylogénétique (aussi appelé phylogramme ou cladogramme) représente l'histoire évolutive inférée d'un groupe d'espèces, de gènes ou de séquences. Les nœuds internes représentent des ancêtres communs hypothétiques ; les feuilles représentent les taxons observés ; les longueurs de branches encodent la distance évolutive ou le temps de divergence. Les biologistes évolutionnistes, les écologistes moléculaires et les microbiologistes cliniques utilisent les arbres phylogénétiques pour reconstruire l'histoire de la vie, suivre les épidémies pathogènes et comprendre l'évolution des familles de gènes.

Schematex accepte les arbres au format Newick — le standard d'échange universel utilisé par PAUP*, IQ-TREE, RAxML, BEAST et pratiquement tous les programmes de phylogénétique — étendu avec les annotations NHX pour les valeurs de bootstrap et les métadonnées de clade. Un DSL basé sur l'indentation est également disponible pour les arbres écrits manuellement. Cette page documente ce que le parseur accepte aujourd'hui.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrate Evolution Phylogenetic tree with 12 taxa, phylogram mode, circular layout Vertebrate Evolution Primates Rodents Carnivora Cetacea Human Chimp Gorilla Mouse Rat Dog Cat Tiger Whale Dolphin Salmon Zebrafish 0.2 substitutions/site
UTF-8 · LF · 7 lines · 657 chars✓ parsed·3.8 ms·9.5 KB SVG

1. Votre premier arbre phylogénétique

Le plus petit arbre utile : quatre taxons, deux clades.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrates Phylogenetic tree with 4 taxa, phylogram mode, rectangular layout Vertebrates Human Chimp Dog Cat 0.1
UTF-8 · LF · 2 lines · 84 chars✓ parsed·0.4 ms·4.3 KB SVG

Trois règles couvrent 80 % des usages :

  1. Commencer par phylo, suivi optionnellement d'un titre entre guillemets et de propriétés entre crochets.
  2. Fournir la topologie de l'arbre au format newick: — la chaîne Newick standard, entre guillemets, sur une seule ligne. Le ; final est optionnel.
  3. Définir optionnellement des groupes de mise en évidence clade et un label scale sous la ligne newick.

Les commentaires doivent commencer par # sur leur propre ligne. Les commentaires de fin de ligne ne sont pas pris en charge.


2. Formats d'entrée

2.1 Format Newick

Newick est l'entrée principale. La grammaire complète est :

(A,B,(C,D));                         # topologie uniquement
(A:0.1,B:0.2,(C:0.3,D:0.4):0.5);    # avec longueurs de branches
((A:0.1,B:0.2):0.05[&&NHX:B=98],(C,D):0.08);  # bootstrap NHX
('Homo sapiens':0.1,'Mus musculus':0.2);        # noms entre guillemets avec espaces

Les longueurs de branches suivent le nom du nœud après deux-points. Les valeurs de support des nœuds internes peuvent apparaître sous forme de crochets simples [95] ou en NHX [&&NHX:B=95].

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Newick examples Phylogenetic tree with 4 taxa, phylogram mode, rectangular layout Newick examples A B C D 98 87 0.1
UTF-8 · LF · 2 lines · 98 chars✓ parsed·0.4 ms·4.6 KB SVG

Règles Newick acceptées par le parseur :

CaractéristiqueSyntaxeNotes
Nom de feuilleA, Homo_sapiensPas d'espaces — utiliser _ ou des guillemets
Nom de feuille entre guillemets'Homo sapiens'Guillemets simples ; '' est un guillemet littéral
Longueur de branche:0.035 après le nomFlottant ; optionnel
Nom de nœud interne(A,B)ancestorAprès le ) fermant
Bootstrap (simple)(A,B)[95]Entier ou flottant entre crochets
Bootstrap (NHX)(A,B)[&&NHX:B=95]Champ B= ; les autres champs NHX sont stockés mais non rendus
Point-virgule; en finOptionnel — le parseur le supprime
Polytomie(A,B,C)Plus de 2 enfants

2.2 DSL par indentation

Pour les arbres écrits manuellement ou de petite taille, Schematex propose une alternative basée sur l'indentation, plus facile à lire et à éditer que le format Newick brut :

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrates (indent DSL) Phylogenetic tree with 1 taxa, phylogram mode, rectangular layout Vertebrates (indent DSL) root 0.2 substitutions/site
UTF-8 · LF · 9 lines · 145 chars✓ parsed·0.9 ms·3.1 KB SVG

Règles du DSL par indentation :

SyntaxeSignification
Name: lengthNœud feuille avec longueur de branche
: lengthNœud interne sans nom avec longueur de branche
NameNœud feuille, sans longueur de branche (cladogramme)
Name [N]Nœud avec valeur de support N
Indentation plus profondeEnfant du nœud situé au niveau d'indentation inférieur
Ligne #Commentaire, ignoré

La première ligne qui se termine par : et ne contient pas d'espaces déclenche le mode arbre par indentation (ex. : root:). Le nom avant les deux-points devient le label racine ; toutes les lignes indentées ci-dessous deviennent ses enfants.


3. Mise en page

Définir la mise en page dans les crochets de l'en-tête : phylo "Title" [layout: rectangular].

Mise en pageValeurDescription
RectangulairerectangularPar défaut. Branches en L ; racine à gauche, feuilles à droite
ObliqueslantedLignes diagonales du parent à l'enfant ; plus compact
CirculairecircularRacine au centre, feuilles sur la circonférence
Non enracinéunrootedRadial à angles égaux ; met en valeur la distance, pas la filiation

[unrooted] comme indicateur seul est équivalent à [layout: unrooted].

Circulaire — racine au centre, feuilles rayonnant vers l'extérieur. Le plus saisissant visuellement pour les arbres à nombreux taxons avec mise en évidence de clades.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrates — circular Phylogenetic tree with 8 taxa, phylogram mode, circular layout Vertebrates — circular Primates Carnivora Human Chimp Gorilla Dog Cat Wolf Salmon Zebrafish 0.2
UTF-8 · LF · 4 lines · 356 chars✓ parsed·0.6 ms·6.5 KB SVG

Rectangulaire — branches en L ; racine à gauche, feuilles à droite. La forme classique de phylogramme pour les figures publiées.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Bacterial Diversity Phylogenetic tree with 10 taxa, phylogram mode, rectangular layout Bacterial Diversity Ecoli Salmonella Vibrio Bacillus Staph Listeria Myco_tb Myco_leprae Strepto Lactobacillus 98 92 100 0.2 substitutions/site
UTF-8 · LF · 5 lines · 503 chars✓ parsed·0.6 ms·8.4 KB SVG

Oblique — lignes diagonales du parent à l'enfant ; plus compact que le rectangulaire, même sens de lecture de gauche à droite.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrates — slanted Phylogenetic tree with 8 taxa, phylogram mode, slanted layout Vertebrates — slanted Human Chimp Gorilla Dog Cat Wolf Salmon Zebrafish 0.2 substitutions/site
UTF-8 · LF · 5 lines · 347 chars✓ parsed·0.4 ms·5.5 KB SVG

Non enraciné — mise en page radiale à angles égaux ; dé-emphasise la racine, met en valeur la distance par paires entre tous les taxons.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Vertebrates — unrooted Phylogenetic tree with 8 taxa, phylogram mode, rectangular layout Vertebrates — unrooted Human Chimp Gorilla Dog Cat Wolf Salmon Zebrafish 0.2
UTF-8 · LF · 4 lines · 314 chars✓ parsed·0.3 ms·5.7 KB SVG

4. Mode

Défini avec [mode: …] dans l'en-tête (ou dans une ligne style [mode: …] n'importe où dans le corps).

ModeValeurSignification de la longueur de branche
PhylogrammephylogramPar défaut. Proportionnelle à la distance évolutive (substitutions/site)
CladogrammecladogramIgnorée — les feuilles s'alignent ; seule la topologie compte
ChronogrammechronogramProportionnelle au temps de divergence ; toutes les feuilles s'alignent sur le « présent »
DendrogrammedendrogramLa longueur de branche est la hauteur de fusion — la distance à laquelle deux clusters se rejoignent

Le chronogramme nécessite des longueurs de branches en unités de temps plus [mrsd: "YYYY"] (date d'échantillonnage la plus récente) dans l'en-tête pour que le rendu puisse aligner les feuilles sur le présent.

phylo "SARS-CoV-2 variants" [mode: chronogram, mrsd: "2023"]
  newick: "((Alpha:0.5,Delta:0.4):0.3,Omicron:0.8);"
  scale "years"

Dendrogramme — la sortie standard du regroupement agglomératif hiérarchique, non de l'évolution. Chaque nœud interne est placé à sa hauteur de fusion (la distance cophénétique à laquelle ses deux clusters enfants fusionnent), toutes les feuilles s'alignent sur une ligne de base commune, et les branches sont des connecteurs coudés rectangulaires. Un axe de hauteur est dessiné pour permettre de lire la distance à laquelle deux feuilles quelconques partagent un cluster en premier. Utilisez ce mode lorsque le même arbre Newick/indentation décrit un résultat de clustering — clusters d'expression génique, similarité d'échantillons, groupes de réponses à une enquête — plutôt qu'une phylogénie.

Ajoutez une ligne cut <value> pour couper l'arbre à une hauteur choisie : tout sous-arbre dont la hauteur de fusion est inférieure au seuil devient un cluster plat, chacun coloré distinctement, et une ligne de seuil en pointillés est tracée à travers l'arbre à cette hauteur. C'est l'équivalent dendrogramme de fcluster dans scipy — transformer un arbre continu en un ensemble discret de groupes.

phylogenetic·§ Newick / NHX
↘ preview
100%
Dendrogram: Gene expression clusters Dendrogram with 5 taxa, dendrogram mode, rectangular layout, cut at 4 into 2 clusters Gene expression clusters A B C D E 0 1 2 3 4 5 cluster distance cut = 4
UTF-8 · LF · 4 lines · 127 chars✓ parsed·9.9 ms·5.6 KB SVG

Omettre cut pour afficher le dendrogramme nu sans coloration de clusters plats :

phylogenetic·§ Newick / NHX
↘ preview
100%
Dendrogram: Sample clustering Dendrogram with 5 taxa, dendrogram mode, rectangular layout Sample clustering A B C D E 0 1 2 3 4 5 cluster distance
UTF-8 · LF · 3 lines · 114 chars✓ parsed·0.6 ms·4.7 KB SVG

5. Mise en évidence des clades

Une ligne clade marque un groupe monophylétique avec une couleur, un label optionnel et un mode de mise en évidence optionnel.

clade ID = (member1, member2, ...) [color: "#hex", label: "text", highlight: mode]
PropriétéValeursEffet
color:chaîne hexadécimale ex. "#1E88E5"Couleur des branches et/ou de l'arrière-plan
label:chaîne entre guillemetsLabel du clade affiché en marge droite
highlight:branch, background, bothbranch colore les lignes ; background ombre la région ; both fait les deux

Les membres sont des identifiants de feuilles (tips) issus de la chaîne Newick. Le rendu calcule le MRCA des feuilles listées et met en évidence l'intégralité du sous-arbre enraciné en ce point.

phylogenetic·§ Newick / NHX
↘ preview
100%
Phylogenetic Tree: Mammal clades Phylogenetic tree with 7 taxa, phylogram mode, rectangular layout Mammal clades Primates Human Chimp Gorilla Mouse Dog Cat Tiger 0.2
UTF-8 · LF · 4 lines · 346 chars✓ parsed·0.5 ms·6.7 KB SVG

6. Barre d'échelle et groupe externe

Barre d'échelle : scale "label" — ajoute une barre en bas. Le label décrit l'unité (ex. "substitutions/site", "Mya"). À omettre en mode cladogramme où les longueurs de branches n'ont pas de signification.

Groupe externe : outgroup: taxonId — enregistre le groupe externe à titre documentaire ; le rendu peut l'utiliser pour marquer visuellement ce taxon.

phylo "Vertebrates"
  newick: "((Human:0.1,Chimp:0.08):0.03,Lamprey:0.8);"
  outgroup: Lamprey
  scale "substitutions/site"

7. Référence des propriétés d'en-tête

Toutes les options vont à l'intérieur de […] sur la ligne d'en-tête phylo, ou dans une ligne style […] n'importe où dans le corps.

PropriétéValeursDéfautEffet
layout:rectangular, slanted, circular, unrootedrectangularMise en page de l'arbre
mode:phylogram, cladogram, chronogram, dendrogramphylogramSémantique des longueurs de branches
unrooted(indicateur)Équivalent à layout: unrooted
branch-width:nombre1.5Épaisseur des branches
openAngle:nombre (degrés)0Écart angulaire pour la mise en page circulaire (0 = 360° complets)
mrsd:chaîne d'année entre guillemetsDate d'échantillonnage la plus récente pour les chronogrammes

8. Labels et commentaires

  • Titre : phylo "Tree of Life" — première ligne uniquement.
  • Label d'échelle : scale "substitutions/site" — un par document.
  • Label de clade : [label: "Primates"] dans une ligne clade.
  • Commentaires : # en début de ligne (après les espaces initiaux). Les commentaires de fin de ligne ne sont pas pris en charge.

9. Erreurs courantes

Ce que vous avez écritMessage du parseurCorrection
newick: (A,B,C); (sans guillemets)PhyloParseError: Phylo document must start with 'phylo'Mettre la chaîne Newick entre guillemets : newick: "(A,B,C);"
Nom de feuille avec espace : Homo sapiens:0.1Analysé comme Homo — l'espace termine un nom sans guillemetsUtiliser un tiret bas (Homo_sapiens) ou des guillemets simples ('Homo sapiens')
L'identifiant de feuille dans clade ne correspond pas au nom NewickLe clade a silencieusement 0 membres ; pas de mise en évidenceCopier les noms exactement tels qu'ils apparaissent dans la chaîne Newick
clade X = (A, B) sans newick: ni arbre par indentationPhyloParseError: No tree definition foundAjouter une ligne newick: ou un bloc d'arbre par indentation
mode: chronogram sans longueurs de branchesLe rendu traite toutes les longueurs comme 0 ; les feuilles se chevauchent à la racineAjouter :length à chaque arête dans la chaîne Newick
Ligne root: non détectéeSi la ligne root: a un espace dans le nom (ex. My root:), l'arbre par indentation n'est pas déclenchéUtiliser un label racine d'un seul mot ou root:
Newick avec noms de nœuds internes : (A,B)ancestor:0.5Analysé correctement — ancestor est le label du nœud internePris en charge ; les noms internes apparaissent sur les nœuds internes

10. Grammaire (EBNF)

document        = header (blank | comment | newick-line | scale-line
                    | outgroup-line | clade-line | style-line | cut-line | indent-line)*

header          = "phylo" ( WS quoted-string )? ( WS "[" props "]" )? NEWLINE
quoted-string   = '"' any-char-but-quote* '"'

newick-line     = "newick:" WS quoted-newick NEWLINE
scale-line      = "scale" ( WS quoted-string )? NEWLINE
outgroup-line   = "outgroup:" WS id NEWLINE
cut-line        = "cut" WS number NEWLINE       // dendrogram mode: flat-cluster threshold height
clade-line      = "clade" WS id WS "=" WS "(" id ("," id)* ")"
                    ( WS "[" clade-props "]" )? NEWLINE
style-line      = "style" WS "[" props "]" NEWLINE

// Indent tree — triggered by a line ending in ":" with no spaces
indent-tree     = root-line indent-node*
root-line       = id ":" NEWLINE
indent-node     = INDENT ( id ":" length | ":" length | id ) ( WS "[" number "]" )? NEWLINE

props           = prop ("," prop)*
prop            = "layout:" layout-value
                | "mode:" mode-value
                | "unrooted"
                | "branch-width:" number
                | "openAngle:" number
                | "mrsd:" quoted-string

clade-props     = clade-prop ("," clade-prop)*
clade-prop      = "color:" quoted-string
                | "label:" quoted-string
                | "highlight:" ( "branch" | "background" | "both" )

layout-value    = "rectangular" | "slanted" | "circular" | "unrooted"
mode-value      = "phylogram" | "cladogram" | "chronogram" | "dendrogram"

// Newick grammar (embedded, parsed separately)
newick          = subtree ";"?
subtree         = leaf | internal
internal        = "(" subtree ("," subtree)* ")" name? nhx? length?
leaf            = name nhx? length?
name            = unquoted-name | "'" single-quoted "'")
length          = ":" number
nhx             = "[" number "]"                     // plain bootstrap
                | "[&&NHX:" nhx-pair (":" nhx-pair)* "]"
nhx-pair        = key "=" value

id              = [a-zA-Z] [a-zA-Z0-9_-]*
number          = /[+-]?[0-9]+(\.[0-9]+)?([eE][+-]?[0-9]+)?/
comment         = INDENT "#" any NEWLINE

Source faisant autorité : src/diagrams/phylo/parser.ts. En cas de divergence avec le parseur, c'est le parseur qui fait foi — merci d'ouvrir un ticket.


11. Conformité aux standards

Les arbres phylogénétiques Schematex suivent la spécification du format Newick (telle que documentée dans le package PHYLIP) pour la sérialisation de base de l'arbre, et la convention NHX (New Hampshire Extended) pour les valeurs de support bootstrap. Le champ B= dans les crochets NHX est le seul champ NHX rendu visuellement aujourd'hui ; tous les autres champs sont analysés et stockés mais non affichés.

Ce qui est implémenté aujourd'hui :

  • ✅ Topologie Newick, longueurs de branches, noms entre guillemets, polytomies
  • ✅ Valeurs bootstrap — simples [95] et NHX [&&NHX:B=95]
  • ✅ Mises en page rectangulaire, oblique, circulaire et non enracinée
  • ✅ Modes phylogramme, cladogramme et chronogramme
  • ✅ Mise en évidence de clades (couleur de branche, ombrage d'arrière-plan, les deux)
  • ✅ Barre d'échelle
  • ✅ Alternative DSL par indentation
  • ⏳ Documents multi-arbres (forêt) — voir §12
  • ⏳ Axe temporel calibré pour les chronogrammes (échelle géologique)
  • ⏳ Icônes ou images par feuille
  • ⏳ Champs NHX au-delà de B= (espèce, taxonomie, événements de duplication)

Références :

  • Felsenstein, J. (1986). The Newick tree format. PHYLIP documentation.
  • Zmasek, C.M. & Eddy, S.R. (2001). ATV: Display and manipulation of annotated phylogenetic trees. Bioinformatics, 17(4), 383–384. (Spécification NHX)
  • Felsenstein, J. (2004). Inferring Phylogenies. Sinauer Associates.

12. Exemples associés

phylo·§ Newick/NHX
Phylogenetic Tree: Bacterial Diversity Phylogenetic tree with 10 taxa, phylogram mode, rectangular layout Bacterial Diversity Ecoli Salmonella Vibrio Bacillus Staph Listeria Myco_tb Myco_leprae Strepto Lactobacillus 98 85 92 100 78 0.2 substitutions/site
Bacterial diversity (ten-taxon tree)
Ten-taxon bacterial phylogenetic tree from a Newick/NHX string with bootstrap support values, three colored clade arcs, and a branch-length scale bar.
research & analysis

13. Feuille de route

Planifié — pas encore analysable. Ne pas utiliser dans le DSL généré aujourd'hui ; le parseur rejettera ou ignorera ces éléments.

  • Documents multi-arbres — un fichier phylo avec plus d'un bloc newick: (ex. : arbres de gènes vs arbre des espèces).
  • Axe temporel géologique pour les chronogrammes — un axe X étiqueté par époques (Cénozoïque / Mésozoïque, etc.) plutôt qu'une échelle numérique simple.
  • Métadonnées par feuille — attacher des traits ou des marqueurs colorés à des feuilles individuelles sans déclarer un clade complet (ex. : tip Ecoli [color: "#F00", shape: star]).
  • Champs NHX au-delà du bootstrap — rendu des espèces (S=), de la duplication (D=) et des événements de transfert (Tr=) sous forme de symboles sur les branches.
  • Tanglegram — deux arbres affichés côte à côte avec des lignes reliant les feuilles correspondantes.

Suivre dans les tickets GitHub si vous avez besoin de l'un de ces éléments plus tôt.

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.