.. meta::
:description: odgi: optimized dynamic genome/graph implementation
:keywords: variation graph, pangenome graph
=================================
Welcome to the odgi documentation!
=================================
In standard genomic approaches sequences are related to a single linear reference genome introducing reference bias.
`Pangenome graphs `__ encoded in the variation graph data model describe the all versus all alignment of many sequences.
Representing large pangenome graphs with minimal memory overhead requires a careful
encoding of the graph entities. It is possible to build succinct, static data structures to
store queryable graphs, as in `xg `__, but dynamic data structures are more tricky
to implement.
The optimized dynamic genome/graph implementation ``odgi`` follows the dynamic
`GBWT `__ in developing
a byte-packed version of the graph, edges, and paths through it. The node's id is stored as a ``uint64_t`` and its
sequence is stored as a plain ``std::string``. Bit-compressed dynamic byte arrays, with a local alphabet encoder,
represent the local neighbourhood
of the node:
1) The node's edges, and
2) the paths crossing the node.
To ensure minimal memory occupation, only the deltas of the neighbouring steps of a path are hold.
``odgi`` provides a set of tools ranging from graph building, manipulation, layouting, over graph statistics to graph
visualization and gene annotation lift overs.
.. toctree::
:maxdepth: 1
:hidden:
Welcome
rst/installation
rst/quick_start
rst/tutorials
rst/commands
rst/binding
------
Index
------
* :ref:`genindex`
* :ref:`search`