Software

Most of what I build at FamilyTreeDNA runs behind a product rather than shipping as a package. What follows is the part you can actually open: live tools, runnable tutorials, open repositories, and the documentation that specifies how the methods work.

FamilyTreeDNA tools

Production features I designed or co-designed. Several are public; the rest need a free FamilyTreeDNA account. Every Discover link below works with any valid haplogroup substituted into the URL.

Mitotree and the mitochondrial haplotree

The largest human phylogeny yet described: 53,588 haplogroups from 331,221 complete mitogenomes. I led the project and designed the search, QC, and dating framework behind it.
How it works.

Age estimates

A pocket watch resting on printed DNA sequence

The TMRCA method used across both haplotrees. It uses a relaxed clock, so each branch carries its own rate, and accounts for variable sequencing coverage instead of assuming it away. Calibrated and validated against documented genealogies.
How it works.

Globetrekker

Globetrekker map tracing a paternal lineage from Africa into Europe

Reconstructs the migration route of a paternal lineage across tens of thousands of years, drawn on a map of the world as it existed at the time, with sea level, ice sheets, and ocean currents rebuilt per date. Y-DNA only for now.
y-dna/A/globetrekker
How it works.

Ancestral paths and connections

Ancestral path
Every haplogroup between the root and yours. mtdna/U5a2b2a3/path
Compare
Where two haplogroups share a common ancestor, and when. mtdna/U5a2b2a3/compare
Notable connections
Historical figures on the same branch. mtdna/U5a2b2a3/notable
Ancient connections
Archaeological samples sharing your lineage. mtdna/U5a2b2a3/ancient
Match time tree
Your own matches placed on the dated tree. Requires a test and login; logged-out visitors see a demo. mtdna/U5a2b2a3/matches

Substitute any Y haplogroup and swap mtdna for y-dna to see the paternal equivalents.
For example: y-dna/A/classic

myOrigins 3.0 and the Chromosome Painter

Chromosome painting showing population ancestry along each chromosome

Estimates global ancestry proportions and per-chromosome local ancestry jointly rather than in sequence, which keeps the segments and the percentages consistent and allowed the reference panel to grow from 24 populations to 90. I invented the method and authored the white paper.
How it works.

Family Finder Matching 5.0

Family Finder matching and relationship estimation

Autosomal matching and relationship estimation that classifies whether a match pair is endogamous before predicting the relationship, which removes a systematic bias that inflates kinship estimates in founder populations. Co-authored.
How it works.

Archaic Origins

Neanderthal skull

Neanderthal, Denisovan, and ghost-archaic ancestry as calibrated percentages and per-chromosome segments. Built and validated; release planned on Discover.
How it works.

Open source

Mitotree

Mitotree repository

The Mitotree release: tree files, haplogroup definitions, and the material needed to assign haplogroups against it. Distributed through HaploGrep v3 plugins, so an external lab can use it without changing its existing workflow.
github.com/genebygene/mitotree

corridoR

corridoR R package

An R package that models genetic connectivity along migration corridors and forecasts how it shifts under climate change. It generalizes the method from the Heredity paper so it runs on any species and landscape: read genotypes from STRUCTURE, GENEPOP, VCF, GenAlEx, FSTAT or PLINK, compute pairwise FST and directional differentiation, widen least cost paths into weighted corridors, let each group of environmental features choose its own corridor bandwidth by cross-validation, fit Cubist models, and map the projected change with arrows for net migration direction. MIT licensed, under review at CRAN.
Documentation · tutorial · repository · the same analysis on real data
Maier P.A. corridoR: An R package for forecasting genetic range shifts along migration corridors. Methods in Ecology and Evolution, in review.

hybridclock

hybridclock R package

An R package that dates hybrid populations past the second generation. Tools like NewHybrids and HIest classify individuals as F1 or F2, but beyond that a single animal carries little information, because many different pedigrees land in the same place on the hybrid triangle. A whole population sample carries much more. hybridclock compares the sample against forward simulations that include drift, small breeding groups, sibling mating and separate breeding pools, so inbreeding is not mistaken for age, and estimates hybrid age, how long ago the rarer species entered, the number of backcrosses, and whether pure individuals are still arriving. Estimates come from Cubist models with split-conformal intervals. Works with diagnostic SNPs, non-fixed SNPs and microsatellites, with or without a genetic map. Validated on 23 published datasets: across 41 groups of known age, from F1 families to the 56th generation of an intercross line, every 90% interval contained the true age. MIT licensed, under review at CRAN.
Documentation · tutorial · repository
Maier P.A. hybridclock: Dating hybrid populations beyond F2, with or without a genetic map. Methods in Ecology and Evolution, in review.

Geo-genetic triangulation

Geo-genetic triangulation repository

Infers where a person’s autosomal ancestors lived by combining DNA segments they share identical by descent with several genetic matches and the birthplaces recorded in those matches’ family trees, keeping only locations that recur across the trees of the matches sharing each segment. Developed for the Beethoven genome study, where it placed his ancestry in the Rhine valley. Version 2 is a standalone package with tests, example data and bundled boundary and genetic-map layers, rebuilt on sf after rgdal and rgeos left CRAN, and about six times faster. PolyForm Noncommercial license; version 1 remains on Dryad under CC0.
repository · version 1 archive

fasta2genotype

fasta2genotype repository

Converts the per-sample haplotype FASTA written by Stacks into input for 14 population-genetic programs, including Structure, Genepop, Arlequin, migrate-n, TreeMix, BayeScan, GenAlEx and PHYLIP, with quality filters along the way. It treats each unique sequence at a locus as one allele, so short RAD loci behave like multi-allelic markers instead of being reduced to a single SNP. Written for my dissertation, where standard pipelines were discarding most of the signal. Version 2 is a rewrite with no dependencies beyond Python 3.9, correct sample sizes and allele counts, and a Structure file written in 3 seconds rather than 2 minutes. Installable from PyPI and Bioconda. MIT licensed.
repository · Bioconda

Everything else is at github.com/paulmaier.

Tutorials

Runnable walkthroughs in R, plus one interactive tool. Each opens on its own page.

Map of Yosemite National Park showing three Geminate Evolutionary Units for the Yosemite toadLandscape genomics: future-facing conservation unitsCandidate loci from RDA and bayenv2, Gradient Forests, maps of genetic offset under climate change, and Geminate Evolutionary Units for the Yosemite toad.

Accompanies Maier P.A., Vandergast A.G., Bohonak A.J. (2023). Using landscape genomics to delineate future adaptive potential for climate change in the Yosemite toad (Anaxyrus canorus). Evolutionary Applications 16(1), 74–97. DOI · PDF

Hillshade of Yosemite National Park overlaid with Yosemite toad migration corridorsLandscape genetics: migration corridors and climate forecastsLeast cost paths and corridors with gdistance, Cubist machine learning of FST and directional migration, and maps of projected range shifts for the Yosemite toad.

Accompanies Maier P.A., Vandergast A.G., Ostoja S.M., Aguilar A., Bohonak A.J. (2022). Landscape genetics of a sub-alpine toad. Heredity 129(5), 257–272. DOI · PDF

Bioclimatic variables mapped across the Yosemite toad rangePopulation genomics: outlier loci and future adaptationWritten for Biology 624, graduate population genetics at San Diego State. Extracting environmental data, finding outliers with PCAdapt and Bayenv2, then mapping current and future local adaptation with gradient forest and generalized dissimilarity modeling.Simulated migration paths across a three-dimensional landscapeAnalysis of population structure: microsatellites vs. ddRADseqWritten for Biology 624, graduate population genetics at San Diego State. Comparing the power of microsatellites and ddRADseq to resolve population structure, to see what each marker type can and cannot tell you.Three-dimensional interpolated surface of genetic diversityInterpolating genetic diversity in 3DTurning point estimates of diversity into a continuous surface across a landscape, and rendering it as a rotatable three-dimensional plot.Network of California herpetologists and their academic advisersPedigree of California herpetologistsAn interactive academic genealogy of 288 herpetologists and their advisers, colored by year, sized by number of connections, shaped by study taxon.

Documentation and data

  • myOrigins 3.0 white paper — full method description: phasing, segment classification, the conditional random field, phase correction, and how the 90-population reference panel was built.
  • Family Finder Matching 5.0 white paper — the matching algorithm, endogamy classification, and relationship estimation.
  • Anaxyrus hybrid panel — the diagnostic SNP panel and methods for identifying western toad and Yosemite toad hybrids.

Archived data and analysis scripts

Much of my production code is proprietary. Where that is the case I have linked the method description instead, which is detailed enough to reimplement. If you want to discuss any of it, or you are stuck reproducing something, get in touch.