Details for Sano Genetics Owlstone study metabolizer status.ipynb

Published by madprime


Do you have 23andMe data in Open Humans?

I created this notebook so you can check your 23andMe data yourself, to see if you might be a candidate for Owlstone's study! They're looking for people with unusual genetic variants in certain metabolic pathways. Read the notebook to learn more.


Tags & Data Sources

metabolism 23andMe Upload


Please log in to comment.

Last updated 6 months, 2 weeks ago

Sano Genetics Owlstone study metabolizer status

This notebook checks your metabolizer status at a couple locations to see:

Might you be a candidate for the Owlstone study?

Owlstone is developing a breath-based test to study metabolism of food and medicine. To develop this test they need people known to have "high" and "low" metabolism for a certain biochemical pathway.

Data you need

This notebook was designed to work with data from 23andMe. If you have 23andMe data, you can add it to Open Humans using this tool:

What it does

If you've stored 23andMe data in Open Humans (see above!), the code below analyzes to see if you would qualify for this research study.

What it means

There are various metabolic pathways controlled by various genes. Owlstone is interested in one of these.

If your genotype predicts metabolism that's particularly high or low in this pathway, you can help advance their research and development of a breath test!

If you don't live near London, this notebook is more hypothetical (since you need to visit their lab). But you can still try it out! Even if you aren't a candidate (e.g. due to genetics or distance), you're free to share this with friends.

Folks who visit the lab and help with the research can earn compensation of £100 for their time, plus a £100 donation to Open Humans Foundation.

Hit "Run" to start!

Hit the "Run" button above over and over to run each step in the code below. Or use shift + enter to "Run".

Or select "Run All" from the "Cell" menu above to run everything at once.

In [ ]:
import os
import requests
import tempfile

print("Checking for 23andMe data in Open Humans...\n")

response = requests.get(
for entry in response.json()['results']:
    if entry['source'] == "direct-sharing-128" and 'vcf' not in entry['metadata']['tags']:
        file_url_23andme = entry['download_url']
if 'file_url_23andme' not in locals():
    print("Sorry, you first need to add 23andMe data to Open Humans!\n"
          "You can do that here:")
    print("Great, you have 23andMe data in Open Humans! We'll retrieve this...\n")

file_23andme = tempfile.NamedTemporaryFile()


Step 2: Find your data at four genetic locations.

Keep hitting "Run" to continue running the notebook. The code below will scan your data and get your genetic information at these locations.

In [ ]:
target_snps = {
    'rs12248560': 'TT', # T/T = CYP2C19*17 fast metaboliser
    'rs4244285': 'AA', # A/A = CYP2C19*2 poor metaboliser
    'rs1799853': 'TT', # T/T = CYP2C9*2 poor metaboliser
    'rs1057910': 'CC' # C/C = CYP2C9*3 poor metaboliser

snps = target_snps.copy()
for line in file_23andme:
    line = line.decode('utf-8').strip()
    if line.startswith('#'):
    line_data = line.split('\t')
    if line_data[0] in snps.keys():
        snps[line_data[0]] = line_data[3]

for snp in snps.keys():
    print('{}:\t{}'.format(snp, snps[snp] if snps[snp] else 'Unknown'))

matches = [snp for snp in snps.keys() if target_snps[snp] == snps[snp]]
if any([target_snps[snp] == snps[snp] for snp in snps.keys()]):
    print("\nIt looks like you're a candidate for the study! You match at: {}".format(', '.join(matches)))
    print("\nSorry – it looks like you don't have a genotype that would help this study. (Most people don't!)")

What next?

Did you qualify? Do you live near London? To join the study, go to:

Want to share this with friends? You can send them this notebook link: