This is somehow how Legacy familytree store the DNA results…
They have a “DNA” button that open a “DNA-Form”, something similar to the form gramplets, where you can add all your DNA results as data-pairs, but you need to type it in manually (from the CSV or other types of tabular formats you get from the test provider…
Legacy has a predefined list of tests that you can select (something like Types in Gramps?), the you get a list with the definitions, and types in the values…
If you have a Y12 and a Y65 and a Y100-something, you need to type inn all the values, and you register it on the test date, in addition it has a dedicated field for the haplogroup (but this is fixed, and if you change it you change it for all the test, its not a list of triplets with a field name, value and date (as it should be)…
I’m not a developer, so I dont know how much job it wil be to add a form for DNA, but I know that since Gramps use Python, it will have a advantage from many other software, because of the number of Pyton libraries for both analyzing and calculation and visualize DNA that’s already made for Python.
Nearly every DNA or Humanities research lab in the Worrld use Python or R for analyzes… and in addition you have great visualizations libraries like the NetworkX (but it is under BSD, dont know if that is compatible with Gramps license).
I’m sure it would be easy to find multiple libraries both for analyzing, calculating and visualising that are compatible with the Gramps licensing regime, and that can be used by the Gramps UI libraries (But that would be up to the developers to decide)
I think It would be best if it could be a seperate module, like the name editor, where you could add multiple test result with the name and type and date of the tests taken, this module could of course store its data as either or both personal attribute pairs/triples (if next version of Gramps will provide attributes with dates) and as an test event for the person, since an event would give some additional fields for information, and a DNA test is actually a Event in a persons life (something that person has done one or multiple times in her/his life)…
I would prefere that the data was added as pair/triplets/quadruplets (four-tuples), instead of in a value separated list or a list of pairs in one attribute field… I think it would be easier for the human eye to read and understand, but of course in reports and other visualization of the DNA data, it has to be merged to something understandable i.e. a list with the metadata of the test as a description…
Many of the libraries and research software i.e. cytoscape and other more specific medical research software read either csv ((Node, Edge) or Network Lists)), the Gramps CSV export actually only need a little rescaping to be imported to Cytoascape and be useful, it should be possible to add fields so that it could be used for DNA purpose, usually a graph visualiization tool like Gephi, Palladio, Cytoscape or any other, use a two list approach, one list (csv file) for nodes and one list (another csv) for edges (relations for those not in the graph world), and in addition to the basic, the list can hold additional values like dates, periods, tags, weights, directions and other attributes that can be used in calculations of different graph networks or for analyzing the data it self…
This is some of the Python libraries I have found for DNA, I have not tested any of them, just collected them for later “use”, if they can be used in Gramps, I do not know…
Andrews, J. (2019). A minimal desktop app for easy and convenient gene annotation.: J-andrews7/Genotify [JavaScript]. Hentet fra https://github.com/j-andrews7/Genotify (Original work published 2017)
Frampton, M. (2018). seqfam: A package primarily designed for analysing next generation sequencing DNA data from families with pedigree information in order to identify rare variants that are potentially causal of a d… [Python]. Hentet fra https://github.com/mframpton/seqfam (Original work published 2017)
Johns, L. R. (2019). Lorarjohns/DNA_pandas_selenium [Jupyter Notebook]. Hentet fra https://github.com/lorarjohns/DNA_pandas_selenium (Original work published 2019)
Riha, A. (u.å.). lineage: Tools for genetic genealogy and the analysis of consumer DNA test results (Versjon 3.0.1) [Python, OS Independent]. Hentet fra https://github.com/apriha/lineage
Treece, J. (2019). Jeftreece/dnamatch-tools [Python]. Hentet fra https://github.com/jeftreece/dnamatch-tools (Original work published 2019)