The mission of the Mathematics Genealogy Project (MGP) is to compile information about all mathematicians, living and dead, to create family trees based on advisor-student relationships. The MGP database contains over 200,000 entries. A complete entry for a mathematician in the database lists the mathematician’s name, year and title of their dissertation, graduating institution, list of their PhD students, and their PhD advisor(s). Occasionally, some of this information is missing. You can find my record here. Since finishing my PhD in 2008, I’ve poked around the MGP and always thought it would be cool to get a poster made that displays my mathematical genealogy, but I just haven’t gotten around to it.

One of my former students, Andrew Lebovitz, recently posted a link on Facebook to a Nature article that summarizes a paper, titled The classical origin of modern mathematics, which completed a comprehensive analysis of the MGP database. One of the interesting findings was that the individuals in the database fall into 84 distinct family trees with two-thirds of the world’s mathematicians concentrated in just 24 of them.

After reading the Nature article, I was motivated to see if I could figure out whether I belonged to one of the 24 families. It wasn’t obvious to me how I would do this without manually clicking on my advisor (Richard M. Green), then my advisor’s advisor, etc. This was slightly more complicated than I expected because there were quite a few ancestors with 2 advisors, so I had to navigate down multiple paths. As I clicked around, I drew out my family tree in a notebook.

Here is what I discovered. My longest branch goes back to Nicolo Fontana Tartaglia (currently 14,428 descendants). My tree includes Isaac Newton, Galileo Galilei, and Marin Mersenne (who Mersenne primes were named after). Interestingly, no one on this path belongs to one of the 24 families mentioned in The classical origin of modern mathematics. Also, I was disappointed to find out that I wasn’t related to Leonhard Euler. However, I am a descendant of Henry Bracken, who is the head of one of the 24 families.

I posted some of this information on Facebook and asked if anyone knew how to automatically create a nice visualization of the directed graph corresponding to my family tree. Chris Drupieski replied and pointed out a program called Geneagrapher, which was built to do exactly what I was looking for. In particular, Geneagrapher gathers information for building math genealogy trees from the MGP, which is then stored in dot file format. This data can then be passed to Graphviz to generate a directed graph.

Here are the steps that I completed to get Geneagrapher up and running on my computer running MacOS 10.11. The Geneagrapher website suggests using easy_install via Terminal, but this didn’t immediately work for me. It often seems that doing anything with Python on my Mac requires a few extra steps. After doing a little searching around, I found a post on Stack Overflow that solved my issue. At the command line, I typed the following:

sudo chown -R <your_user>:wheel /Library/Python/2.7/site-packages/

Of course, you should replace <your_user> with your username. Note that using sudo requires you to enter your password. Next, I installed Geneagrapher using the following:


In order to use Geneagrapher, you need to input a record number from MGP. Mine is 125763. At the command line, I typed:

ggrapher -f -a 125763

You can replace ernst with whatever you’d like the output file to be called. The next step is to pass the dot file to Graphviz. If you don’t already have Graphviz installed, you can do so using Homebrew (which is also easy to install):

brew install graphviz

Following the Geneagrapher instructions, I typed the following to generate my family tree:

dot -Tpng > ernst.png

Maybe it is worth mentioning that unless you specify otherwise, the dot and png files will be stored in your home directory. Below is my mathematical family tree created using Geneagrapher. As you can see, it took a while for my ancestors to leave the University of Cambridge.

Update: The code was written in Python 2.7 and Python is not backward compatible. You may need to create a new virtual environment to use Python 2.7. Thanks to Harihar Khanal for suggesting the fix. Open a terminal and do the following steps.

conda create -n python27 python=2.7
conda activate python27
pip install geneagrapher
brew install graphviz

Dana C. Ernst

Mathematics & Teaching

  Northern Arizona University
  Flagstaff, AZ
  Google Scholar
  Impact Story

Current Courses

  MAT 226: Discrete Math
  MAT 690: CGT

About This Site

  This website was created using GitHub Pages and Jekyll together with Twitter Bootstrap.

  Unless stated otherwise, content on this site is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.

  The views expressed on this site are my own and are not necessarily shared by my employer Northern Arizona University.

  The source code is on GitHub.

Land Acknowledgement

  Flagstaff and NAU sit at the base of the San Francisco Peaks, on homelands sacred to Native Americans throughout the region. The Peaks, which includes Humphreys Peak (12,633 feet), the highest point in Arizona, have religious significance to several Native American tribes. In particular, the Peaks form the Diné (Navajo) sacred mountain of the west, called Dook'o'oosłííd, which means "the summit that never melts". The Hopi name for the Peaks is Nuva'tukya'ovi, which translates to "place-of-snow-on-the-very-top". The land in the area surrounding Flagstaff is the ancestral homeland of the Hopi, Ndee/Nnēē (Western Apache), Yavapai, A:shiwi (Zuni Pueblo), and Diné (Navajo). We honor their past, present, and future generations, who have lived here for millennia and will forever call this place home.