DNAMatrix is a Python package for performing genealogical relationship probability analysis and clustering on autosomal DNA matches.
It is built on a pairwise match matrix (i.e., an n-by-n spreadsheet or dataframe, with row and column indices both in the name of the DNA match, and the centimorgan value of DNA matches in intersecting cells) and a corresponding simplified family-tree structure. Using the matrix and tree, it can:
- Calculate the relationship between two tree nodes.
- Compare the DNA match between the two nodes to relationship probability tables, and report on whether the match value matches the relationship.
- Suggest likely common ancestors for match nodes with indeterminate ancestry based on triangulation with known nodes.
- Perform group matching analysis on groups of nodes.
- Model genealogical hypothetical scenarios and analyze their probability based on DNA matches.
I built this package for my genealogical work on my Bowdoin family, and I have shared some of my results here. The package is still in an early stage of development as a shared project, but I welcome your feedback and contributions.
My anonymized Bowdoin match matrix is in the Bowdoin subdirectory.
If you found this project through my Bowdoin work, please let me
know!
This project is licensed under the Mozilla Public License 2.0. See the LICENSE file for details.
If you have an issue, you could either open an "issue" here at GitHub, or you're welcome to contact me directly.
- scipy – For agglomerative clustering and dendrogram.
- tomlkit – only needed for Python versions below 3.11.