Search code examples
23andme-api

Getting different results from API and 23andme's Raw Data


When I go into 23andme's "Your Raw Data" section on the webpage, I can look up the results for a certain SNP. I used rs6565703. The data returned was:

Genes Marker (SNP) Genomic Position Variants Your Genotype DOC2B rs6565703 12344 A or C A / C

I understand that in order to get "Your Genotype" you must figure this out by what dosages are returned for each variant. However when I use the same user account, as seen above, the JSON file seems to be returning homozygous A(AA) as seen below.

Just trying to figure out, why these are different?

      {
        'accession_id' => 'NC_000017.10',
        'is_no_call' => bless( do{\(my $o = 0)}, 'JSON::XS::Boolean' ),
        'end' => 12344,
        'alternate_ids' => [],
        'variants' => [
                        {
                          'dosage' => '2',
                          'accession_id' => 'NC_000017.10',
                          'is_no_call' => $VAR1->[0]{'is_no_call'},
                          'end' => 12344,
                          'allele' => 'A',
                          'platform_labels' => [
                                                 'ILMN_CUSTOMv4',
                                                 'ILMN_OMNIEXv3_CUSTOMv3'
                                               ],
                          'is_assayed' => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' ),
                          'start' => 12343
                        },
                        {
                          'dosage' => '0',
                          'accession_id' => 'NC_000017.10',
                          'is_no_call' => $VAR1->[0]{'is_no_call'},
                          'end' => 12344,
                          'allele' => 'C',
                          'platform_labels' => [
                                                 'ILMN_CUSTOMv4',
                                                 'ILMN_OMNIEXv3_CUSTOMv3'
                                               ],
                          'is_assayed' => $VAR1->[0]{'variants'}[0]{'is_assayed'},
                          'start' => 12343
                        }
                      ],
        'id' => 'rs6565703',
        'is_genotyped' => $VAR1->[0]{'variants'}[0]{'is_assayed'},
        'is_assayed' => $VAR1->[0]{'variants'}[0]{'is_assayed'},
        'gene_names' => [
                          'DOC2B'
                        ],
        'start' => 12343
      }

Solution

  • So i was able to figure this out with some help from 23andme's support team. Turns out the issue was that an account can have multiple profiles. I was using the parent account ID instead of the child profile ID's which is why i was receiving differing results. You can use this endpoint to see if you have multiple profiles within the account.

    https://api.23andme.com/3/account/?include=profiles