Phylogenetischer Baum

Über phylogenetische Bäume

Ein phylogenetischer Baum (auch Phylogramm oder Kladogramm genannt) zeigt die erschlossene Evolutionsgeschichte einer Gruppe von Arten, Genen oder Sequenzen. Interne Knoten stellen hypothetische gemeinsame Vorfahren dar; Blätter stellen beobachtete Taxa dar; Astlängen kodieren evolutionäre Distanz oder Divergenzzeit. Evolutionsbiologen, molekulare Ökologen und klinische Mikrobiologen verwenden phylogenetische Bäume, um die Geschichte des Lebens zu rekonstruieren, Pathogenausbrüche zu verfolgen und zu verstehen, wie Genfamilien sich entwickelt haben.

Schematex akzeptiert Bäume im Newick-Format — dem universellen Austauschstandard, der von PAUP*, IQ-TREE, RAxML, BEAST und praktisch jedem Phylogenetik-Programm verwendet wird — erweitert mit NHX-Annotationen für Bootstrap-Werte und Kladus-Metadaten. Eine einrückungsbasierte DSL wird ebenfalls für handgeschriebene Bäume unterstützt. Diese Seite dokumentiert, was der Parser heute akzeptiert.

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·4.6 ms·9.5 KB SVG

1. Ihr erster phylogenetischer Baum

Der kleinste sinnvolle Baum: vier Taxa, zwei Kladen.

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.5 ms·4.3 KB SVG

Drei Regeln decken 80 % der Anwendungsfälle ab:

  1. Mit phylo beginnen, optional gefolgt von einem zitierten Titel und Klammer-Eigenschaften.
  2. Die Baumtopologie im newick:-Format bereitstellen — die Standard-Newick-Zeichenkette, zitiert, auf einer Zeile. Das abschließende ; ist optional.
  3. Optional Kladus-Hervorhebungsgruppen und eine Skala-Beschriftung unter der Newick-Zeile definieren.

Kommentare müssen mit # in einer eigenen Zeile beginnen. Inline-Trailing-Kommentare werden nicht unterstützt.


2. Eingabeformate

2.1 Newick-Format

Newick ist die primäre Eingabe. Die vollständige Grammatik ist:

(A,B,(C,D));                         # nur Topologie
(A:0.1,B:0.2,(C:0.3,D:0.4):0.5);    # mit Astlängen
((A:0.1,B:0.2):0.05[&&NHX:B=98],(C,D):0.08);  # NHX Bootstrap
('Homo sapiens':0.1,'Mus musculus':0.2);        # zitierte Namen mit Leerzeichen

Astlängen folgen dem Knotennamen nach einem Doppelpunkt. Support-Werte interner Knoten können als einfache Klammern [95] oder als NHX [&&NHX:B=95] erscheinen.

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.5 ms·4.6 KB SVG

Vom Parser akzeptierte Newick-Regeln:

MerkmalSyntaxHinweise
BlattnameA, Homo_sapiensKeine Leerzeichen — _ oder Anführungszeichen verwenden
Zitierter Blattname'Homo sapiens'Einfache Anführungszeichen; '' ist ein wörtliches Anführungszeichen darin
Astlänge:0.035 nach dem NamenFloat; optional
Interner Knotenname(A,B)ancestorNach der schließenden )
Bootstrap (einfach)(A,B)[95]Ganzzahl oder Float in Klammern
Bootstrap (NHX)(A,B)[&&NHX:B=95]B=-Feld; andere NHX-Felder werden gespeichert, aber nicht gerendert
Semikolon; am EndeOptional — Parser entfernt es
Polytomie(A,B,C)Mehr als 2 Kinder

2.2 Einzugs-DSL

Für handgeschriebene oder kleine Bäume bietet Schematex eine einrückungsbasierte Alternative, die leichter zu lesen und bearbeiten ist als rohes Newick:

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.7 ms·3.1 KB SVG

Regeln der Einzugs-DSL:

SyntaxBedeutung
Name: LängeBlattknoten mit Astlänge
: LängeUnbenannter interner Knoten mit Astlänge
NameBlattknoten, ohne Astlänge (Kladogramm)
Name [N]Knoten mit Support-Wert N
Tieferer EinzugKind des Knotens darüber mit geringerem Einzug
#-ZeileKommentar, ignoriert

Die erste Zeile, die mit : endet und keine Leerzeichen hat, löst den Einzugsbaum-Modus aus (z. B. root:). Der Name vor dem Doppelpunkt wird zur Wurzelbeschriftung; alle eingerückten Zeilen darunter werden zu seinen Kindern.


3. Layout

Das Layout wird in den Header-Klammern gesetzt: phylo "Titel" [layout: rectangular].

LayoutWertBeschreibung
RechteckigrectangularStandard. L-förmige Äste; Wurzel links, Blätter rechts
GeneigtslantedDiagonale Linien von Eltern zu Kindern; kompakter
KreisförmigcircularWurzel im Zentrum, Blätter um den Umfang
Ohne WurzelunrootedGleichwinkeliger Radial; betont Distanz, nicht Abstammung

[unrooted] als nacktes Flag ist äquivalent zu [layout: unrooted].

Kreisförmig — Wurzel im Zentrum, Blätter fächern nach außen. Am visuell beeindruckendsten für Bäume mit vielen Taxa und Kladus-Hervorhebungen.

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

Rechteckig — L-förmige Äste; Wurzel links, Blätter rechts. Die klassische Phylogramm-Form für veröffentlichte Abbildungen.

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.9 ms·8.4 KB SVG

Geneigt — diagonale Linien von Eltern zu Kindern; kompakter als rechteckig, gleiche Links-nach-Rechts-Leserichtung.

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.5 ms·5.5 KB SVG

Ohne Wurzel — gleichwinkeliges radiales Layout; betont die Wurzel weniger, betont die paarweise Distanz zwischen allen Taxa.

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.6 ms·5.7 KB SVG

4. Modus

Mit [mode: …] im Header (oder in einer style [mode: …]-Zeile) gesetzt.

ModusWertBedeutung der Astlänge
PhylogrammphylogramStandard. Proportional zur evolutionären Distanz (Substitutionen/Stelle)
KladogrammcladogramIgnoriert — Blätter ausgerichtet; nur Topologie zählt
ChronogrammchronogramProportional zur Divergenzzeit; alle Blätter richten sich an "Gegenwart" aus
DendrogrammdendrogramAstlänge ist Zusammenführungshöhe — der Abstand, bei dem zwei Cluster zusammengeführt werden

Chronogramm erfordert Astlängen in Zeiteinheiten plus [mrsd: "YYYY"] (jüngstes Probenahmerdatum) im Header, damit der Renderer Blätter an der Gegenwart ausrichten kann.

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

Dendrogramm — die Standardausgabe hierarchischer agglomerativer Clusterung, keine Evolution. Jeder interne Knoten wird an seiner Zusammenführungshöhe (der kophenethischen Distanz, bei der seine beiden Kind-Cluster fusionieren) platziert, alle Blätter richten sich auf einer gemeinsamen Basislinie aus, und die Äste sind rechteckige Ellenbogen-Verbinder. Eine Höhenachse wird gezeichnet, damit Sie den Abstand ablesen können, bei dem zwei beliebige Blätter zuerst einen Cluster teilen. Verwenden Sie diesen Modus, wenn derselbe Newick-/Einzugsbaum ein Clustering-Ergebnis beschreibt — Genexpressions-Cluster, Probenähnlichkeit, Umfrageantwortgruppen — und keine Phylogenie.

Fügen Sie eine cut <Wert>-Zeile hinzu, um den Baum bei einer gewählten Höhe zu schneiden: Jeder Teilbaum, dessen Zusammenführungshöhe unter dem Schwellenwert liegt, wird zu einem flachen Cluster, jeder mit einer eigenen Farbe, und eine gestrichelte Schwellenwertlinie wird quer durch den Baum bei dieser Höhe gezeichnet. Dies ist das Dendrogramm-Äquivalent von fcluster in scipy — ein kontinuierlicher Baum in eine diskrete Menge von Gruppen umgewandelt.

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·1.9 ms·5.6 KB SVG

cut weglassen, um das bloße Dendrogramm ohne Flat-Cluster-Färbung zu zeigen:

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. Kladus-Hervorhebung

Eine clade-Zeile markiert eine monophyletische Gruppe mit einer Farbe, einer optionalen Beschriftung und einem optionalen Hervorhebungsmodus.

clade ID = (member1, member2, ...) [color: "#hex", label: "text", highlight: mode]
EigenschaftWerteEffekt
color:Hex-Zeichenkette z. B. "#1E88E5"Ast- und/oder Hintergrundfarbe
label:zitierte ZeichenketteKladus-Beschriftung am rechten Rand angezeigt
highlight:branch, background, bothbranch färbt Linien; background schattiert den Bereich; both macht beides

Mitglieder sind Blatt-(Blatt-)IDs aus der Newick-Zeichenkette. Der Renderer berechnet den MRCA der aufgelisteten Blätter und hebt den gesamten Teilbaum hervor, der dort verwurzelt ist.

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. Skalierungsbalken und Außengruppe

Skalierungsbalken: scale "Beschriftung" — fügt einen Balken am unteren Rand hinzu. Die Beschriftung beschreibt die Einheit (z. B. "substitutions/site", "Mya"). Im Kladogramm-Modus weglassen, wo Astlängen keine Bedeutung haben.

Außengruppe: outgroup: taxonId — zeichnet die Außengruppe zur Dokumentation auf; der Renderer kann es verwenden, um das Außengruppen-Taxon visuell zu markieren.

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

7. Header-Eigenschaften-Referenz

Alle Optionen kommen innerhalb von […] in der phylo-Header-Zeile oder in einer style […]-Zeile irgendwo im Körper.

EigenschaftWerteStandardEffekt
layout:rectangular, slanted, circular, unrootedrectangularBaum-Layout
mode:phylogram, cladogram, chronogram, dendrogramphylogramAstlängen-Semantik
unrooted(Flag)Äquivalent zu layout: unrooted
branch-width:Zahl1.5Strichbreite der Äste
openAngle:Zahl (Grad)0Fächerlücke für kreisförmiges Layout (0 = volles 360°)
mrsd:zitierte JahrzeichenketteJüngstes Probenahmerdatum für Chronogramme

8. Bezeichnungen & Kommentare

  • Titel: phylo "Tree of Life" — nur in der ersten Zeile.
  • Skalierungsbeschriftung: scale "substitutions/site" — einmal pro Dokument.
  • Kladus-Beschriftung: [label: "Primates"] innerhalb einer clade-Zeile.
  • Kommentare: # am Anfang einer Zeile (nach führendem Leerzeichen). Inline-Trailing-Kommentare werden nicht unterstützt.

9. Häufige Fehler

Sie schriebenParser sagtBehebung
newick: (A,B,C); (ohne Anführungszeichen)PhyloParseError: Phylo document must start with 'phylo'Newick-Zeichenkette in Anführungszeichen setzen: newick: "(A,B,C);"
Blattname mit Leerzeichen: Homo sapiens:0.1Als Homo geparst — Leerzeichen beendet einen nicht zitierten NamenUnterstrich (Homo_sapiens) oder einfache Anführungszeichen ('Homo sapiens') verwenden
Blatt-ID in clade stimmt nicht mit Newick-Namen übereinKladus hat stillschweigend 0 Mitglieder; keine HervorhebungNamen genau so kopieren, wie sie in der Newick-Zeichenkette erscheinen
clade X = (A, B) ohne newick: oder EinzugsbaumPhyloParseError: No tree definition foundEine newick:-Zeile oder einen Einzugsbaum-Block hinzufügen
mode: chronogram ohne AstlängenRenderer behandelt alle Längen als 0; Blätter überlappen an der Wurzel:Länge zu jeder Kante in der Newick-Zeichenkette hinzufügen
root:-Zeile nicht erkanntWenn die root:-Zeile ein Leerzeichen im Namen hat (z. B. My root:), wird der Einzugsbaum nicht ausgelöstEinwortiges Wurzel-Label oder root: verwenden
Newick mit internen Knotennamen: (A,B)ancestor:0.5Wird korrekt geparst — ancestor ist das Label des internen KnotensUnterstützt; interne Namen erscheinen auf internen Knoten

10. Grammatik (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       // Dendrogramm-Modus: Flat-Cluster-Schwellenwerthöhe
clade-line      = "clade" WS id WS "=" WS "(" id ("," id)* ")"
                    ( WS "[" clade-props "]" )? NEWLINE
style-line      = "style" WS "[" props "]" NEWLINE

// Einzugsbaum — ausgelöst durch eine Zeile, die mit ":" endet und keine Leerzeichen hat
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-Grammatik (eingebettet, separat geparst)
newick          = subtree ";"?
subtree         = leaf | internal
internal        = "(" subtree ("," subtree)* ")" name? nhx? length?
leaf            = name nhx? length?
name            = unquoted-name | "'" single-quoted "'")
length          = ":" number
nhx             = "[" number "]"                     // einfacher 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

Maßgebliche Quelle: src/diagrams/phylo/parser.ts. Falls dies vom Parser abweicht, gewinnt der Parser — bitte öffnen Sie ein Issue.


11. Normkonformität

Schematex-phylogenetische Bäume folgen der Newick-Format-Spezifikation (wie im PHYLIP-Paket dokumentiert) für die Kern-Baum-Serialisierung und der NHX (New Hampshire Extended)-Konvention für Bootstrap-Support-Werte. Das B=-Feld in NHX-Klammern ist heute das einzige NHX-Feld, das visuell gerendert wird; alle anderen Felder werden geparst und gespeichert, aber nicht angezeigt.

Was heute implementiert ist:

  • ✅ Newick-Topologie, Astlängen, zitierte Namen, Polytomien
  • ✅ Bootstrap-Werte — einfaches [95] und NHX [&&NHX:B=95]
  • ✅ Rechteckige, geneigte, kreisförmige und wurzellose Layouts
  • ✅ Phylogramm-, Kladogramm- und Chronogramm-Modi
  • ✅ Kladus-Hervorhebung (Astfarbe, Hintergrundschattierung, beides)
  • ✅ Skalierungsbalken
  • ✅ Einzugs-DSL-Alternative
  • ⏳ Mehrbaumdokumente (Wald) — siehe §12
  • ⏳ Zeitkalibrierte Achse für Chronogramme (geologische Skala)
  • ⏳ Icons oder Bilder pro Blatt
  • ⏳ NHX-Felder jenseits von B= (Spezies, Taxonomie, Duplikationsereignisse)

Referenzen:

  • 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. (NHX-Spezifikation)
  • Felsenstein, J. (2004). Inferring Phylogenies. Sinauer Associates.

12. Verwandte Beispiele

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. Roadmap

Geplant — noch nicht parsebar. Verwenden Sie diese heute nicht in generiertem DSL; der Parser wird sie ablehnen oder ignorieren.

  • Mehrbaumdokumente — eine phylo-Datei mit mehr als einem newick:-Block (z. B. Genbäume vs. Artbaum).
  • Geologische Zeitachse für Chronogramme — eine epochenbeschriftete X-Achse (Känozoikum / Mesozoikum usw.) anstelle einer einfachen numerischen Skala.
  • Metadaten pro Blatt — Merkmale oder farbige Markierungen an einzelnen Blättern anhängen, ohne einen vollständigen Kladus zu deklarieren (z. B. tip Ecoli [color: "#F00", shape: star]).
  • NHX-Felder jenseits von Bootstrap — Rendern von Spezies (S=), Duplikation (D=) und Transferereignissen (Tr=) als Astsymbole.
  • Tangelgramm — zwei Bäume nebeneinander dargestellt mit verbindenden Linien, die entsprechende Blätter verknüpfen.

Verfolgen Sie die GitHub-Issues, wenn Sie eines davon früher benötigen.

Found this useful?

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