@deckyard/mitoleaf
Reads the mitoLEAF human mitochondrial phylogeny, the maintained successor to PhyloTree (whose updates stopped in 2016), and turns a haplogroup into the haplotype that defines it.
This deck is part of Deckyard, community decks for Jennifer.
import "@deckyard/mitoleaf/" as mitoleaf;
import "@deckyard/forensicgenetics/lineage.j" as lineage;
def t as mitoleaf.Tree init mitoleaf.parse(fs.readString("mitoLEAF_phm.xml"));
lineage.mtDesignations(mitoleaf.haplotype($t, "L0a1"));Haplotypes are lineage.MtHaplotype values from @deckyard/forensicgenetics, and motif gains are parsed by lineage.parseDifference, so rCRS nomenclature has one implementation and a phylogeny haplotype compares against observed data with the same lineage.mtMatches and lineage.mtDistance. The dependency runs one way: lineage knows nothing about mitoLEAF.
The deck bundles no phylogeny, is not a haplogroup classifier and applies none of EMPOP's phylogenetic alignment rules; see Limitations.
Citing mitoLEAF
The phylogeny is mitoLEAF's work:
Huber N, Hurmer N, Dür A, Parson W. mitoLEAF: mitochondrial DNA Lineage, Evolution, Annotation Framework. NAR Genomics and Bioinformatics 7(2),
mitoLEAF data is MPL-2.0 licensed; none is redistributed in this deck.