Skip to content

Instantly share code, notes, and snippets.

@danking
Created August 2, 2018 17:44
Show Gist options
  • Save danking/0441d780395fc657fb72da8ce78d50ea to your computer and use it in GitHub Desktop.
Save danking/0441d780395fc657fb72da8ce78d50ea to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from hail import *\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.patches as mpatches\n",
"from collections import Counter\n",
"from math import log, isnan\n",
"import seaborn\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"hc = HailContext()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## A Hail Pipeline"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dataset contains 2535 samples\n",
"Dataset contains 838153 variants\n"
]
}
],
"source": [
"vds = (hc.read('gs://danking/ALL.1KG.800K-1204-partitions.vds')\n",
" .split_multi()\n",
" .annotate_samples_table('gs://danking/1kg-silly.sample_annotations',\n",
" root='sa.pheno',\n",
" sample_expr='Sample',\n",
" config=TextTableConfig(impute=True)))\n",
"\n",
"n_samples = vds.num_samples\n",
"n_variants = vds.count_variants()\n",
"print('Dataset contains %d samples' % n_samples)\n",
"print('Dataset contains %d variants' % n_variants)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"populations = set([u'GWD', u'TSI', u'BEB', u'PEL', u'LWK', u'MSL', u'GBR', u'IBS', u'ASW', u'FIN', u'KHV', u'CEU', u'CLM', u'CHB', u'YRI', u'STU', u'CHS', u'ESN', u'ACB', u'GIH', u'PJL', u'MXL', u'ITU', u'CDX', u'JPT', u'PUR'])\n",
"super populations = set([u'SAS', u'EAS', u'AMR', u'AFR', u'EUR'])\n",
"case count = 1300\n",
"control count = 1235\n",
"total samples = 2535\n"
]
}
],
"source": [
"expressions = [\n",
" 'samples.map(s => sa.pheno.Population).collect().toSet()',\n",
" 'samples.map(s => sa.pheno.SuperPopulation).collect().toSet()',\n",
" 'samples.filter(s => sa.pheno.PurpleHair).count()',\n",
" 'samples.filter(s => !sa.pheno.PurpleHair).count()' ]\n",
"[populations, super_populations, case_count, control_count] = vds.query_samples(expressions)\n",
"\n",
"print('populations = %s' % populations)\n",
"print('super populations = %s' % super_populations)\n",
"print('case count = %s' % case_count)\n",
"print('control count = %s' % control_count)\n",
"print('total samples = %s' % vds.num_samples)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{u'nVariants': 51437L, u'nSamples': 1477, u'nGenotypes': 75972449L}\n"
]
}
],
"source": [
"vds_gAB_vCR = (vds\n",
" .filter_genotypes('''let ab = g.ad[1] / g.ad.sum() in\n",
" ((g.isHomRef() && ab <= 0.1) ||\n",
" (g.isHet() && ab >= 0.25 && ab <= 0.75) ||\n",
" (g.isHomVar() && ab >= 0.9))''')\n",
" .filter_variants_expr('gs.fraction(g => g.isCalled()) > 0.95')\n",
" .annotate_samples_expr(['sa.qc.callRate = gs.fraction(g => g.isCalled())',\n",
" 'sa.qc.gqMean = gs.map(g => g.gq).stats().mean']))\n",
"\n",
"vds_QCed = (vds_gAB_vCR\n",
" .annotate_samples_vds(vds_gAB_vCR, code = 'sa.qc = vds.qc')\n",
" .filter_samples_expr('sa.qc.callRate >= 0.97 && sa.qc.gqMean >= 20')\n",
" .variant_qc()\n",
" .annotate_variants_expr(['''va.hweByPop.hwe{pop} =\n",
"if (v.isAutosomal())\n",
" gs.filter(g => sa.pheno.SuperPopulation == \"{pop}\").hardyWeinberg()\n",
"else\n",
" gs.filter(g => sa.pheno.SuperPopulation == \"{pop}\" && sa.pheno.isFemale).hardyWeinberg()'''.format(pop = p) for p in populations])\n",
" .filter_variants_expr(\" && \".join(['va.hweByPop.hwe%s.pHWE > 1e-6' % pop for pop in populations]) + '&& va.qc.gqMean >= 20')\n",
" .impute_sex(maf_threshold=0.05)\n",
" .annotate_samples_expr('sa.sexcheck = sa.pheno.isFemale == sa.imputesex.isFemale')\n",
" .filter_samples_expr('sa.sexcheck || isMissing(sa.sexcheck)'))\n",
"\n",
"vds_ld_pruned = (vds_QCed.filter_variants_expr('va.qc.AF > 0.05 && va.qc.AF < 0.95')\n",
" .ld_prune()\n",
" .repartition(128)\n",
" .persist())\n",
"\n",
"print(vds_ld_pruned.count())\n",
"\n",
"vds_pca = (vds_ld_pruned.pca(scores='sa.pca'))\n",
"\n",
"vds_gwas = (vds_QCed\n",
" .filter_variants_expr('va.qc.AF > 0.05 && va.qc.AF < 0.95')\n",
" .annotate_samples_vds(vds_pca, code='sa.pca = vds.pca')\n",
" .linreg('sa.pheno.CaffeineConsumption',\n",
" covariates=['sa.pca.PC1', 'sa.pca.PC2', 'sa.pca.PC3', 'sa.pheno.isFemale']))\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/anaconda2/lib/python2.7/site-packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family [u'sans-serif'] not found. Falling back to DejaVu Sans\n",
" (prop.get_family(), self.defaultFamily[fontext]))\n"
]
},
{
"data": {
"image/png": "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\nSBKFEEKIhP4/pPzirWz2xbMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb5ba605210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pca_table = vds_pca.samples_keytable().to_pandas()\n",
"colors = {'AFR': 'black', 'AMR': 'red', 'EAS': 'green', 'EUR': 'blue', 'SAS': 'cyan'}\n",
"plt.scatter(pca_table[\"sa.pca.PC1\"], pca_table[\"sa.pca.PC2\"], c = pca_table[\"sa.pheno.SuperPopulation\"].map(colors), alpha = .5)\n",
"plt.xlabel(\"PC1\")\n",
"plt.ylabel(\"PC2\")\n",
"legend_entries = [mpatches.Patch(color= c, label=pheno) for pheno, c in colors.items()]\n",
"plt.legend(handles=legend_entries, loc=2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def qqplot(pvals, xMax, yMax):\n",
" spvals = sorted(filter(lambda x: not(x == None), pvals))\n",
" exp = [-log(float(i) / len(spvals), 10) for i in np.arange(1, len(spvals) + 1, 1)]\n",
" obs = [-log(p, 10) for p in spvals]\n",
" plt.clf()\n",
" plt.scatter(exp, obs)\n",
" plt.plot(np.arange(0, max(xMax, yMax)), c=\"red\")\n",
" plt.xlabel(\"Expected p-value (-log10 scale)\")\n",
" plt.ylabel(\"Observed p-value (-log10 scale)\")\n",
" plt.xlim(0, xMax)\n",
" plt.ylim(0, yMax)\n",
" plt.show()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fb5bab75c90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"qqplot(vds_gwas.query_variants('variants.map(v => va.linreg.pval).collect()'), 5, 6)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Hail",
"language": "python",
"name": "hail"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.13"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment