Skip to main content
Fig. 4 | Genome Biology

Fig. 4

From: Scalable, ultra-fast, and low-memory construction of compacted de Bruijn graphs with Cuttlefish 2

Fig. 4

The state-transition diagram for an automaton \(M_{v} = (\mathscr {Q}, \Sigma ', \delta, q_{0}, \mathscr {Q}')\). Each node in the diagram represents a collection of states \(q \in \mathscr {Q}\), and q0 is the initial state of Mv. A node may represent multiple states collectively. For example, the node at the center of the figure with the symbols x and y at its flat and cusped ends respectively represents 16 states (all the ones from the state-class unique-front unique-back). Thus each node \(\mathscr {Q}_{k}\) represents a disjoint subset of \(\mathscr {Q}\). The pictorial shape of \(\mathscr {Q}_{k}\) is similar to that of a de Bruijn graph vertex (see Fig. 3), and denotes the incidence characteristics of the vertices having their automata in states in \(\mathscr {Q}_{k}\): for a vertex v with its automaton in state \(q_{k} \in \mathscr {Q}_{k}\), a unique symbol at side s of \(\mathscr {Q}_{k}\) means that v has a distinct edge at side s, ellipsis means multiple unique edges, and absence of any symbol means no edge has been observed incident to that side. A directed edge \((\mathscr {Q}_{i}, \mathscr {Q}_{j})\) labeled with (s,c) denotes transitions from a state \(q_{i} \in \mathscr {Q}_{i}\) to a state \(q_{j} \in \mathscr {Q}_{j}\), and (s,c) symbolizes the corresponding input fed to an automaton at state qi for that transition to happen. That is, δ(qi,(s,c))=qj. Thus these edges pictorially encode the transition function δ. For the automaton Mv of a vertex v, an input (s,c) means that an edge e is being added to its side s∈{f,b}; along with s and v, the character c∈Σ succinctly encodes e. f and b are shorthands for front and back, respectively. Self-transition is possible for each state \(q \in \mathscr {Q}'\), and are not shown here for brevity

Back to article page