Ancestry Introduction

We provide two types of ancestry, Global Ancestry and Mitochondrial Ancestry. Both types of ancestry summary can be generated using a single endpoint after the DNA file has finished processing. We can use the /start-ancestry-generation/ endpoint to trigger the both types of ancestry generation for a profile.

We provide two separate endpoints for each type of ancestry. We can query these endpoints using profile_id to get the ancestry for a given profile.

Global Ancestry

The /ancestry-summary/ endpoint can be used to view the global ancestry. It will contain an JSON object called ancestry_summary in the following format:

{
  "LEVEL_1_CODE": {
    "percentage": 1,
    "LEVEL_2_CODE": {
      "percentage": 1,
      "LEVEL_3_CODE": {
      	"percentage": 1
      }
    }
  }
}

An ancestry summary object can have multiple level 1, 2 and 3 regions. Below is an example ancestry summary:

{
    "EUR": {
        "NWE": {
            "BRI": {
                "percentage": 0.3835
            },
            "FRG": {
                "percentage": 0.5556
            },
            "percentage": 0.939
        },
        "SEU": {
            "SPP": {
                "percentage": 0.0383
            },
            "percentage": 0.0383
        },
        "EAE2": {
            "EAE": {
                "percentage": 0.0226
            },
            "percentage": 0.0226
        },
        "percentage": 1.0
    }
}

To get the details of the level codes, we can use the /population-codes/ endpoint which will list all the codes with their names and some additional detail.

Model Version

Global ancestry also includes a field called model_version. As we improve the accuracy of our data pielines, we release new versions. When querying the population-codes endpoint, we can use the model_version to get the population codes only for the model_version of the given ancestry summary.

Mitochondrial Ancestry

We can get Mitochondrial Ancestry using the endpoint /haplotype-summary/. It contains the ancestry in the field called result in the following format:

{
  "lineage": ["final_haplogroup", "haplogroup2", "haplogroup1", "L"],
  "quality": 0.9753,
  "haplogroup": "final_haplogroup"
}

Here haplogroup is the final hoplogroup of the user while lineage contains the complete path to the user's final haplogroup. Here is a sample mitochondrial ancestry summary:

{
  "lineage": [
    "HV0", "HV", "R0", "R", "N", "L3", "L3'4", "L3'4'6", "L2'3'4'6", "L2'3'4'5'6", "L1'2'3'4'5'6", "L"
  ],
  "quality": 0.9753,
  "haplogroup": "HV0"
}

To get more details about each haplogroup, we can use the /haplogroups/ endpoint. It has several more details about the haplogroup, like their location (latitude, longitude), description, origin, etc.