Skip to content

tskit-dev/tskit

Repository files navigation

tskit

License Contributors Commit activity Coverage OS

Succinct tree sequences are a highly efficient way of storing a set of related DNA sequences by encoding their ancestral history as a set of correlated trees along the genome. The tree sequence format is output by a number of software libraries and programs (such as msprime, SLiM, fwdpp, and tsinfer) that either simulate or infer the evolutionary history of genetic sequences. The evolutionary history of genetic sequences is often technically referred to as an Ancestral Recombination Graph (ARG); succinct tree sequences are fully compatible with this formulation, and tskit is a therefore a powerful platform for processing ARGs.

The tskit library provides the underlying functionality used to load, examine, and manipulate tree sequences, including efficient methods for calculating genetic statistics. It often forms part of an installation of other software packages such as those listed above. Please see the documentation for further details, which includes installation instructions. Also see the road map for planned improvements and additions to the library.

To get started with tskit, tutorials and other content are at http://tskit.dev. For help and support from the community you can use discussions here on github, or raise an issue for a specific bug or feature request.

We warmly welcome contributions from the community. Raise an issue if you have an idea you'd like to work on, or submit a PR for comments and help.

The base tskit library provides both a Python and C API. A Rust API is provided in the tskit-rust repository.

Python API

PyPI version Supported Python Versions Wheel Black Travis

Most users of tskit will use the python API as it provides a convenient, high-level API to access, analyse and create tree sequences. Full documentation is here.

C API

C99 CircleCI

The tskit C API provides comprehensive, low-level methods for manipulating and processing tree-sequences. Written to the C99 standard and fully thread-safe, it can be used with either C or C++. Full documentation is here.