LCF
LCF notation (Lederberg-Coxeter-Frucht notation) is a compact textual encoding for cubic graphs that contain a Hamiltonian cycle. It was devised by Joshua Lederberg and later extended by H. S. M. Coxeter and Robert Frucht, whose initials give the notation its name. It targets a narrow but important class of structures: 3-regular (every vertex has exactly three incident edges) graphs in which a cycle visits every vertex exactly once.
The data model exploits that Hamiltonian cycle. The cycle already supplies two of the three edges at each vertex, so LCF only needs to record the third edge per vertex. Vertices are laid out in cyclic order and each entry states how many positions along the cycle that vertex's third neighbor lies, positive for clockwise and negative for counter-clockwise. Offsets are read modulo N (the vertex count); entries congruent to 0, 1, or N-1 are disallowed because they would create loops or duplicate the cycle edges, so only simple graphs are expressible. A notation is written as a bracketed sequence such as [5, -9, 7, -7, 9, -5], and a superscript exponent denotes repetition of the block, e.g. that sequence raised to the fourth power yields the 24-vertex Nauru graph. An extended "anti-palindromic" form by Coxeter, Frucht, and Powers compresses a block whose second half mirrors the first with flipped signs, written with a semicolon and dash.
Because it stores only one integer per vertex, LCF is extremely space-efficient and has long been used to publish and catalog symmetric cubic graphs concisely. A useful property is that bipartiteness can be checked directly: the graph is bipartite exactly when all offsets are odd. It also makes generation trivial in software; the notation is a first-class graph generator in tool:networkx (its LCF_graph produces the dodecahedral, Desargues, Heawood, and Pappus graphs) and is likewise supported in tool:igraph, SageMath, and Maple.
Its limitations follow from its specialization. LCF cannot represent non-cubic graphs, graphs lacking a Hamiltonian cycle (such as the Petersen graph), or graphs with loops or parallel edges, and it carries no attributes, weights, or labels. The encoding is also non-unique: a single graph admits many LCF strings depending on the chosen Hamiltonian cycle and starting vertex. For interchange it is usually expanded into a general graph model and re-emitted in a richer format such as format:graphml, format:gml, format:dot, or an edge-list form like format:adjlist.
Alternative Names: LCF
| Feature | LCF notation for phylogenetic trees |
|---|---|
| Multiple Graphs per Document | |
| Nodes | |
| Undirected Edges | |
| Directed Edges | |
| Hyperedges | |
| Mixed-directionality Edges | |
| Parallel Edges | |
| Self-loops | |
| Edges on Edges | |
| Nested Graphs in Nodes | |
| Nested Graphs in Edges | |
| Nested Graphs in Graphs | |
| Node Labels | |
| Edge Labels | |
| Attributes on Nodes | |
| Attributes on Edges | |
| Attributes on Graphs | |
| Typed Edges | |
Frequently Asked Questions
What is a LCF notation for phylogenetic trees file?
A LCF notation for phylogenetic trees file stores a graph — its nodes, edges and attributes — in the LCF notation for phylogenetic trees format (also: LCF). See the feature table above for what it supports.
How do I open a LCF notation for phylogenetic trees file?
Open it in a graph tool that supports LCF notation for phylogenetic trees, or convert it to a format your tool reads. With GraphInOut you can convert LCF notation for phylogenetic trees to GraphML, DOT, Connected JSON and more, right in your browser.
How do I convert a LCF notation for phylogenetic trees file to another format?
Use the Convert from LCF notation for phylogenetic trees link above: upload or paste your LCF notation for phylogenetic trees file (input preset to LCF notation for phylogenetic trees), choose a target format and download the result — free, no install.