tsdate 
tsdate is a scalable method for estimating the age of ancestral nodes in a
tree sequence. The method uses a coalescent prior and updates node times on the basis of the number of mutations along each edge of the tree sequence (i.e. using the "molecular clock").
The method is frequently combined with the tsinfer algorithm, which efficiently infers tree sequence topologies from large genetic datasets.
Please refer to the documentation (stable • latest) for information on installing and using the software.
Installation
python -m pip install tsdate
If using the variational_gamma algorithm (the default from version 0.2 onwards), please cite the preprint:
Nathaniel S. Pope, Sam Tallman, Ben Jeffery, Duncan Robertson, Yan Wong, Savita Karthikeyan, Peter L. Ralph, and Jerome Kelleher (2026) Tracing the evolutionary histories of ultra-rare variants using variational dating of large ancestral recombination graphs. bioRxiv: 2026.01.07.698223; doi: https://doi.org/10.64898/2026.01.07.698223
The algorithms for the original inside_outside and maximization methods (the default prior to version 0.2) are described in this Science paper (citation below, preprint here, evaluations in another repository).
The citation to use for the original tsdate algorithms is:
Anthony Wilder Wohns, Yan Wong, Ben Jeffery, Ali Akbari, Swapan Mallick, Ron Pinhasi, Nick Patterson, David Reich, Jerome Kelleher, and Gil McVean (2022) A unified genealogy of modern and ancient genomes. Science 375: eabi8264; doi: https://doi.org/10.1126/science.abi8264
Release files for tsdate 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tsdate-0.2.7.tar.gz | 385.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tsdate-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 485.0 kB
Release files / tsdate-0.2.7.tar.gz
| Download URL | tsdate-0.2.7.tar.gz |
|---|---|
| Size | 385.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9cc0c09db3d6bc65bd53f3fe2736b2a6614cc7cce0fc83237e5fdf2fec527257
|
|
BLAKE2b-256 checksum How to use checksums |
a8c9efb3c119adda693064c5076a52d3c336de30a0fc67fd1bfab86ef5a26dd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.
Transparency logRelease files / tsdate-0.2.7-py3-none-any.whl
| Download URL | tsdate-0.2.7-py3-none-any.whl |
|---|---|
| Size | 99.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
62898fa50edaeab8ef9a17f8ba3ff2df8b689265ed630d3a9090ea7bbbecd0b0
|
|
BLAKE2b-256 checksum How to use checksums |
2a661e23d4f2622a984969d40ad30c11380ecfbf820ba4dceb31f415fea1737d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 4, 2026.
Transparency log