Created
February 20, 2015 21:53
-
-
Save dwinter/898449e772684a69227e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:628b6b31f9a3de22acdfdbaea51e613031eafdacc80f0813c300ae512db86e59" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"%pylab inline\n", | |
"import vcf\n", | |
"print \"PyVCF version = \" + vcf.VERSION" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Populating the interactive namespace from numpy and matplotlib\n", | |
"Loading MoreUtils\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"PyVCF version = 0.6.7\n" | |
] | |
} | |
], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#Filtering apparent SNPS from _P. vivax_ project\n", | |
"##The Plan\n", | |
"\n", | |
"It is likely that some, or even many of the putative SNPs called by `gatk` are the result of sequencing artifacts. It's not possible to use the 'gatk best paractive' for filteting, which requires a set of validated variant sites, wo we will instead try and build our own list of filtering rules by comparing properties of our putative variants to similar properties in a null samples of sites" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Before this notebook\n", | |
"###Genotyping\n", | |
"\n", | |
"I did the genotyping on herschel, working directory is `~/malaria/var_calling` which contains a README. \n", | |
"\n", | |
"\n", | |
"The main commain for the callign was this. where `gatk` is a small shell script passing arugments to the main\n", | |
"gatk executable from `version 3.1-1-g07a4bf8` and it's associated resources\n", | |
"directory. \n", | |
"\n", | |
"SNPs and indels were called with:\n", | |
"\n", | |
"```sh\n", | |
"./gatk -R ../ref/SalI_SAM241v1_combined_maked.fasta \\\n", | |
" -T UnifiedGenotyper \\\n", | |
" -I ../malaria-recal.bam -o haploid_calls.vcf \\\n", | |
" --genotype_likelihoods_model BOTH \\\n", | |
" --sample_ploidy 1 > genotyping.log \n", | |
"```\n", | |
"\n", | |
"then split into individual files :\n", | |
"\n", | |
"```sh\n", | |
"./gatk -T SelectVariants \\ \n", | |
" -R ../ref/SalI_SAM241v1_combined.masked.fasta \\\n", | |
" -V vars/haploid_calls.vcf \\\n", | |
" -selectType SNP \\\n", | |
" -o vars/raw_snps.vcf\n", | |
"\n", | |
"./gatk -T SelectVariants \\ \n", | |
" -R ../ref/SalI_SAM241v1_combined.masked.fasta \\\n", | |
" -V vars/haploid_calls.vcf \\\n", | |
" -selectType INDEL \\ \n", | |
" -o vars/raw_indels.vcf\n", | |
"```\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Generatinga null sample of sites\n", | |
"\n", | |
"On herschel, the script `scripts/null_sites.py` creates a bed file with a random sample of sites taking the BAM from which genotypes were called as input. \n", | |
"\n", | |
"The bed file with 10,000 \"non-SNPs\" was used as teh value for the interval argument to `UnifiedGenotyper` as above\n", | |
"\n", | |
"### All the files\n", | |
"\n", | |
"```\n", | |
"vars/\n", | |
" --null.vcf\n", | |
" --raw_snps.vcf\n", | |
" --raw_indels.vcf\n", | |
" --random_intervals.bed\n", | |
"\n", | |
"```\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"!head vars/random_intervals.bed" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"1\t431008\t431009\r\n", | |
"4\t389734\t389735\r\n", | |
"8\t429404\t429405\r\n", | |
"4\t854370\t854371\r\n", | |
"14\t911648\t911649\r\n", | |
"1\t109150\t109151\r\n", | |
"9\t1671779\t1671780\r\n", | |
"7\t227462\t227463\r\n", | |
"12\t2804131\t2804132\r\n", | |
"6\t143572\t143573\r\n" | |
] | |
} | |
], | |
"prompt_number": 65 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Read in variant and null vcfs\n", | |
"`pyVCF` gives us a nice generator to work through the `.vcf` files, but I'm going to re-use in the information in tehm many times so let's load them into memory as a list" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"indels = list(vcf.Reader(open(\"vars/raw_indels.vcf\")))\n", | |
"snps = list(vcf.Reader(open(\"vars/raw_snps.vcf\")))\n", | |
"null = list(vcf.Reader(open(\"vars/null.vcf\")))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"r = indels[0]\n", | |
"r" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
"<vcf.model._Record at 0x7f516c079150>" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"r.INFO" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 5, | |
"text": [ | |
"{'AC': [3],\n", | |
" 'AF': [0.429],\n", | |
" 'AN': 7,\n", | |
" 'BaseQRankSum': 0.525,\n", | |
" 'DP': 188,\n", | |
" 'FS': 15.089,\n", | |
" 'MLEAC': [3],\n", | |
" 'MLEAF': [0.429],\n", | |
" 'MQ': 36.63,\n", | |
" 'MQ0': 0,\n", | |
" 'MQRankSum': -5.698,\n", | |
" 'QD': 31.66,\n", | |
" 'RPA': [2, 1],\n", | |
" 'RU': 'T',\n", | |
" 'ReadPosRankSum': -0.165,\n", | |
" 'STR': True}" | |
] | |
} | |
], | |
"prompt_number": 5 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 11, | |
"text": [ | |
"524" | |
] | |
} | |
], | |
"prompt_number": 11 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Compare SNPs and indels to null\n", | |
"\n", | |
"###Strand bias?\n", | |
"(Some of the measures, like this one, are only recorded when there is a putative variant so the null comparison doesn't really work)\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"###Mapping quality\n", | |
"\n", | |
"Spurious variants arising from mis-mapped read will mean a lower over-all mapping quality for our variant set. \n", | |
"\n", | |
"Keep in mind \n", | |
" * This is the mean mapping quality for all samples(not just the variant)\n", | |
" * Varian sites will have a slightly lower mapping qual, as they have at least one mismatch!" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"hist([r.INFO[\"MQ\"] for r in snps], bins=30, normed=True, histtype=\"step\")\n", | |
"hist([r.INFO.get(\"MQ\", 0) for r in indels], bins=30, normed=True, histtype=\"step\")\n", | |
"hist([r.INFO.get(\"MQ\", 0) for r in null], bins=30, normed=True, histtype=\"step\")\n", | |
"show()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7f51429c3910>" | |
] | |
} | |
], | |
"prompt_number": 12 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"...what proportion of snps or indels have mapping quali < 30?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print mean(np.array([r.INFO[\"MQ\"] for r in snps]) < 30)\n", | |
"print mean(np.array([r.INFO.get(\"MQ\", 0) for r in indels]) < 30)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"0.261235547925\n", | |
"0.0938463694982\n" | |
] | |
} | |
], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Mapping qual difference between variant and reference reads\n", | |
"\n", | |
"`MQRankSum` is a z-score coming from a rank-sum (i.e. non paramateric) test for the differnce in mapping quality between reference-containing and variant-reads\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"BQRS_snp = np.array([r.INFO.get(\"MQRankSum\",nan) for r in snps])\n", | |
"BQRS_indel = np.array([r.INFO.get(\"MQRankSum\",nan) for r in indels])\n", | |
"hist(BQRS_snp[~np.isnan(BQRS_snp)], bins=40, normed=True, histtype=\"step\")\n", | |
"hist(BQRS_indel[~np.isnan(BQRS_indel)], bins=20,normed=True, histtype=\"step\")\n", | |
"show()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nAAAASUVORK5CYII=\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7f5141139390>" | |
] | |
} | |
], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"###Read position\n", | |
"This is wether mutant sites are more likely to be on the end of of read, an thus less believable" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"rsz_snp = np.array([r.INFO.get(\"ReadPosRankSum\",nan) for r in snps])\n", | |
"rsz_indel = np.array([r.INFO.get(\"ReadPosRankSum\",nan) for r in indels])\n", | |
"\n", | |
"figure()\n", | |
"hist(rsz_snp[~np.isnan(rsz_snp)], bins=20)\n", | |
"hist(rsz_indel[~np.isnan(rsz_indel)], bins=20)\n", | |
"show()\n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa95f47110>" | |
] | |
} | |
], | |
"prompt_number": 9 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print sum(rsz_indel < -5)\n", | |
"print sum(rsz_snp < -5)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"43\n", | |
"164\n" | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stderr", | |
"text": [ | |
"-c:1: RuntimeWarning: invalid value encountered in less\n", | |
"-c:2: RuntimeWarning: invalid value encountered in less\n" | |
] | |
} | |
], | |
"prompt_number": 10 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Depth\n", | |
"\n", | |
"Overall the total depth looks pretty similar beteen variants and the null samples..." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"hist([r.INFO[\"DP\"] for r in snps], bins=30, normed=True, histtype=\"step\")\n", | |
"hist([r.INFO.get(\"DP\", 0) for r in null], bins=30, normed=True, histtype=\"step\")\n", | |
"hist([r.INFO.get(\"DP\", 0) for r in indels], bins=30, normed=True, histtype=\"step\")\n", | |
"show()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nRbUAAAAASUVORK5CYII=\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa95f67a10>" | |
] | |
} | |
], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"... but SNPs are enriched for very high coverage regions (i.e. paralogs that are piled up in the reference genome). Taking the total coverage data (i.e. 20 million lines!) I found the $0.9, 0.95, 0.99$ and $0.995$ quantiles of total coverage" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"snp_depth = np.array([r.INFO[\"DP\"] for r in snps]) \n", | |
"null_depth = np.array([r.INFO.get(\"DP\", 0) for r in null])\n", | |
"indel_depth = np.array([r.INFO[\"DP\"] for r in indels]) \n", | |
"\n", | |
"dq = [160, 165, 180, 600] #.9 .95, .99, .9995 depth quantiles for whole dataset\n", | |
"figure()\n", | |
"x = list(range(150,600))\n", | |
"plot(x, [mean(snp_depth > d) for d in x])\n", | |
"plot(x, [mean(null_depth > d) for d in x])\n", | |
"plot(x, [mean(indel_depth > d) for d in x])\n", | |
"show()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nlPMJHRwAAAAASUVORK5CYII=\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa95d86c10>" | |
] | |
} | |
], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Positon in genome\n", | |
"\n", | |
"The ends of _P. vivax_ chromosomes are dominated by telomereic repeats and very hard to map. How many of these would-be variants are are close to the end of a chromsome?\n", | |
"\n", | |
"Here we use a regular expression to capture chromosome lengths from the output of " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import re\n", | |
"pat = re.compile(r'''@SQ\\tSN:(?P<chrom>[^\\t]+), *.LN:(?P<length>-?\\d+)''', re.VERBOSE)\n", | |
"\n", | |
"genome = !samtools view -H /home/david/analysis/malaria/malaria-mapped.bam | grep '^@SQ'\n", | |
"genome[-1] = genome[-1].replace(\"gi|379988089|dbj|AB649419.1|\", \"apicoplast\")\n", | |
"\n", | |
"chrom_size = dict(pat.match(g).groups() for g in genome)\n", | |
"chrom_size" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 69, | |
"text": [ | |
"{'1': '830022',\n", | |
" '10': '1419739',\n", | |
" '11': '2067354',\n", | |
" '12': '3004884',\n", | |
" '13': '2031768',\n", | |
" '14': '3120417',\n", | |
" '2': '755035',\n", | |
" '3': '1011127',\n", | |
" '4': '876622',\n", | |
" '5': '1370936',\n", | |
" '6': '1033388',\n", | |
" '7': '1497819',\n", | |
" '8': '1678596',\n", | |
" '9': '1923364',\n", | |
" 'apicoplast': '29093'}" | |
] | |
} | |
], | |
"prompt_number": 69 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 72 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def dist_to_end(chrom, pos, sizes):\n", | |
" res = min(pos, int(sizes[chrom])- pos)\n", | |
" if res < 0:\n", | |
" msg = \"Chromosome positon outise defined length (chrom={0}, pos={1}, len={2})\"\n", | |
" raise ValueError(msg.format(chrom, pos, res))\n", | |
" return(res)\n", | |
"\n", | |
"print dist_to_end('2', 753030, chrom_size)\n", | |
"\n", | |
"try:\n", | |
" dist_to_end('2', 759030, chrom_size)\n", | |
"except ValueError:\n", | |
" print \"caught error \"" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"2005\n", | |
"caught error \n" | |
] | |
} | |
], | |
"prompt_number": 19 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Absolute distance from either end\n", | |
"Note, some chromsomes are longer than otehrs, so would always be skewed to shorter. Using the null-set shows us SNPS are greatly overrepsent in the closes to the edge bin" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"hist([dist_to_end(r.CHROM, r.POS, chrom_size) for r in snps], bins=40, normed=True, alpha=0.6)\n", | |
"hist([dist_to_end(r.CHROM, r.POS, chrom_size) for r in indels], bins=40, normed=True, alpha=0.6)\n", | |
"hist([dist_to_end(r.CHROM, r.POS, chrom_size) for r in null], bins=40, normed=True, alpha=0.6)\n", | |
"vlines(40000,0,.00001)\n", | |
"show()\n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nufPOO0VElKvT4/HI9OnT+yxXrc7W1lZJTEyUtrY28fl8cuedd0p5ebkydbpcrl6/oEayrkAgIJMn\nTw6GzaWzc79c56X++Mc/yve+970RrzNUjUuXLpWPPvqoVyipdi7vvfdeefvtt/uc15GuU8tlffku\n3IO9Q+n48eM4cuQIUlNTNR8SvvRh4EsfOP4qDwm3traG3VY4jz/+OH7+858jKuqv/+lVq9PlcuGb\n3/wmHnzwQdxyyy34wQ9+gLNnzypX58SJE/HDH/4Q119/PaZNm4YJEyYgPT1duTovGsm62traMGHC\nhODfu0u3pWX79u3IzMxUrs6SkhIYjUbceOONvZarVCMAOJ1OvPfee5g/fz7S0tJQXV2tZJ2XuqxD\nabgeyr2os7MT99xzD55//nlcc801fWoZ7nq+7PXXX8eUKVNw8803h33gWYU6e3p6cPjwYTz88MM4\nfPgwYmJiYLPZeq2jQp2ffvopfvWrX+H48eNobGxEZ2cnXn2196txVKgzlOGs6+vu57nnnsNVV12F\n++67b5ArCq2/dZ47dw6bN28Ovt4MQL9eIDAYvuq57OnpQXt7OyorK/Hzn/8c2dnZQ1RZbwP5u3VZ\nh5LBYEB9fX3wc319fa9EH0w+nw/33HMPHnjgASxZsgTAhX+NNjdfeNq6qakJU6ZMCVlXQ0MDjEYj\nDAYDGhoa+iy/2OfkyZMALvxFO336NCZNmvSVjvGDDz5AaWkppk+fjhUrVuCdd97BAw88oFydRqMR\nRqMR8+bNAwAsXboUhw8fRlxcnFJ1VldX42//9m8xadIkREdH4+6778bBgweVq/OikfrvbDAYMHHi\nRHg8HgQCgeC2DAZD2FpffvlllJWV4fe//31wmSp1fvrppzh+/DisViumT5+OhoYG3HrrrWhpaVGm\nxouMRiPuvvtuAMC8efMQFRWFL774Qrk6e4l4gW8U68/Dv4MhEAjIAw88II899liv5cPxkHBra6tM\nnz5d2tvbpa2tLfjnSCoqKoL3lFSs8/bbb5ePP/5YRESefvppWb9+vXJ1fvjhhzJ79mw5d+6cBAIB\nycnJkS1btihT55fvL4x0Xffee6/s2bNHRC7cd7h40/vLde7fv1+Sk5Pl1KlTvY5nJOvUuu8VaqKD\nKudy27Zt8tRTT4mIyMcffyzx8fFK1Knlsg4lkfAP8A6m999/X3Q6nVitVrnpppvkpptukv379w/b\nQ8Lbt28Xs9ksZrNZXn755X7VXFFREZx9p2KdH374odx2221y4403yj/+4z+Kx+NRss7CwkJJTk6W\nOXPmSE5Ojni9XiXqXL58uUydOlX0er0YjUbZvn37iNf12WefSUpKipjNZsnOzhav19unzqKiIjGb\nzXL99dcH/790ccbXSNWZnZ0tU6dOlauuuip4Li81ffr0YCipcC4vrdPr9cr9998vc+bMkVtuuUX+\n9Kc/jXidkfDhWSIiUsZlfU+JiIhGF4YSEREpg6FERETKYCgREZEyGEpERKQMhhIRESmDoURERMpg\nKBERkTL+P5IfZ92brNPxAAAAAElFTkSuQmCC\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa9d889750>" | |
] | |
} | |
], | |
"prompt_number": 20 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"xlim(0,100000)\n", | |
"hist([dist_to_end(r.CHROM, r.POS, chrom_size) for r in snps], bins=400, normed=True)\n", | |
"hist([dist_to_end(r.CHROM, r.POS, chrom_size) for r in null], bins=400, normed=True)\n", | |
"show()\n", | |
"\n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "iVBORw0KGgoAAAANSUhEUgAAAaIAAAEACAYAAADx33KKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtQVPf9N/D3GvZpnodI/KllSXZJNuwurihuTJU1vfxK\nS8BAE7TVKKSNJLEZ4yVa00HsZNqaZ35ymU6TXhJL0iEGzRTxaWeEVNwSk9J0JrKOQDsd1olLssTl\nOom4CXGU5fJ5/kBXCLgXAntW9v2aOTPs2e/nnO/5Cvv2XFclIgIiIiKFzFG6A0REFN0YREREpCgG\nERERKYpBREREimIQERGRohhERESkqKCCyGazwWw2w2QyoaysbNI2O3fuhMlkgsViQUtLS8Davr4+\nZGZmIjk5GVlZWfB4PL73SkpKYDKZYDabUV9f75v/3HPP4a677sLcuXPHrfuFF17AkiVLYLFY8MAD\nD+D8+fPBbT0RESlPAhgaGhKDwSAul0u8Xq9YLBZxOBzj2hw/flyys7NFRKSxsVGsVmvA2sLCQikr\nKxMRkdLSUikqKhIRkdbWVrFYLOL1esXlconBYJCRkREREbHb7dLd3S233XbbuPX//e9/l8uXL4uI\nyB/+8AfZuHFjoM0iIqIIEXCP6PTp0zAajdDr9VCr1cjLy0NNTc24NrW1tSgoKAAAWK1WeDwe9PT0\n+K0dW1NQUIBjx44BAGpqapCfnw+1Wg29Xg+j0Qi73Q4ASEtLQ0JCwoQ+pqen49Zbb/Wtv6OjY6q5\nTEREYRYwiDo7O5GYmOh7rdPp0NnZGVSbrq6uG9b29vZCo9EAADQaDXp7ewEAXV1d0Ol0ftfnT0VF\nBXJycoJuT0REyooJ1EClUgW1IAniSUEiMunyVCqV3/UE24c33ngDzc3NePHFF4NqT0REygsYRFqt\nFm632/fa7XaP22OZrE1HRwd0Oh0GBwcnzNdqtQBG94J6enqQkJCA7u5uxMfH33BZ12r8OXnyJIqL\ni/Huu+9CrVZPeN9oNOKDDz4IuBwiIrrOYDCgra1tZlcS6CTS4OCgJCUlicvlkoGBgYAXK5w6dcp3\nsYK/2sLCQiktLRURkZKSkgkXKwwMDMiHH34oSUlJvosVrvnixQrNzc1iMBikra3thtsRxKZGjV/+\n8pdKdyFicCyu41hcx7G4LhyfnQH3iGJiYvDSSy9h9erVGB4exubNm7F48WK88sorAIAtW7YgJycH\ndXV1MBqNiI2NxcGDB/3WAsDevXuxYcMGVFRUQK/X4+jRowCAlJQUbNiwASkpKYiJicGBAwd8h+b2\n7NmDqqoqXL58GYmJiXjqqafwi1/8Anv27MGlS5ewfv16AMDdd9/tu/iBiIgim+pq4s16KpUqqPNY\n0WDfvn3Yt2+f0t2ICByL6zgW13EsrgvHZyefrBCF0tPTle5CxOBYXMexuI5jEV7cIyIiohviHhER\nEc16DCIiIlIUg4iIiBTFICIiIkUxiIiISFEMIiIiUhSDiIiIFMUgIiIiRTGIiIhIUQwiIiJSFIOI\niIgUxSAiIiJFMYiIiEhRDCIiIlIUg4iIiBTFICIiIkUxiIiISFEMIiIiUhSDiIiIFMUgIiIiRTGI\niIhIUTFKdyCczOZVQbedMwf44x9/jW984xsz2CMiIoqqIHr//d8E3fbWW/8H77//PoOIiGiGRVUQ\nAcHvEd1yS/wM9oOIiK7hOSIiIlIUg4iIiBQVMIhsNhvMZjNMJhPKysombbNz506YTCZYLBa0tLQE\nrO3r60NmZiaSk5ORlZUFj8fje6+kpAQmkwlmsxn19fW++c899xzuuusuzJ07d9y6BwYGsHHjRphM\nJqxatQofffRR8FtPRESK8xtEw8PD2LFjB2w2GxwOB6qqqnD27Nlxberq6tDW1gan04lXX30VW7du\nDVhbWlqKzMxMnDt3DhkZGSgtLQUAOBwOVFdXw+FwwGazYdu2bRARAMCaNWtw+vTpCX2sqKjAggUL\n4HQ6sXv3bhQVFX35USEiorDxG0SnT5+G0WiEXq+HWq1GXl4eampqxrWpra1FQUEBAMBqtcLj8aCn\np8dv7diagoICHDt2DABQU1OD/Px8qNVq6PV6GI1G2O12AEBaWhoSEhIm9HHsstatW4e33377y4wH\nERGFmd8g6uzsRGJiou+1TqdDZ2dnUG26urpuWNvb2wuNRgMA0Gg06O3tBQB0dXVBp9P5XZ+/PsbE\nxOD2229HX1+f3xoiIoocfoNIpVIFtZBrh88CtZlseSqVyu96gu0DERHdnPzeR6TVauF2u32v3W73\nuD2Wydp0dHRAp9NhcHBwwnytVgtgdC+op6cHCQkJ6O7uRnx8/A2Xda3GXx/Pnz+PO++8E0NDQ/j0\n008xf/78G7TeN+bn9KsTERFd09DQgIaGhvCuVPwYHByUpKQkcblcMjAwIBaLRRwOx7g2x48fl+zs\nbBEROXXqlFit1oC1hYWFUlpaKiIiJSUlUlRUJCIira2tYrFYZGBgQD788ENJSkqSkZGRceu77bbb\nxr1++eWX5emnnxYRkaqqKtm4ceOk2wJAAAl6io19QioqKvwNDxHRrBcgJqZnHYEa1NXVSXJyshgM\nBikuLhYRkfLycikvL/e12b59uxgMBlm2bJk0NTX5rRURuXDhgmRkZIjJZJLMzEy5ePGi7739+/eL\nwWCQRYsWic1m880vLCwUnU4nt9xyi+h0Onn++edFROTKlSvyyCOPiNFoFKvVKi6Xa/INZRAREYUs\nHEGkurqiWW/0XFPwmxob+yR+97tv4sknn5y5ThERRTiVShXUdQBfBp+sQEREimIQERGRohhERESk\nKAYREREpikFERESKYhAREZGiGERERKQoBhERESmKQURERIpiEBERkaIYREREpCgGERERKYpBRERE\nimIQERGRohhERESkKH4f0Q3Exj6J4eH/hytXPg9pPXPn/hc++6wvxN4REUWmcHwfUcyMLv0mNxpC\nof0D9PerZqYzRESzFA/NERGRohhERESkKAYREREpikFERESKYhAREZGiGERERKQoBhERESmKQURE\nRIpiEBERkaIYREREpCgGERERKYpBREREigoYRDabDWazGSaTCWVlZZO22blzJ0wmEywWC1paWgLW\n9vX1ITMzE8nJycjKyoLH4/G9V1JSApPJBLPZjPr6et/8pqYmpKamwmQyYdeuXb75bW1t+Na3voXl\ny5fDYrHgxIkToY0AEREpS/wYGhoSg8EgLpdLvF6vWCwWcTgc49ocP35csrOzRUSksbFRrFZrwNrC\nwkIpKysTEZHS0lIpKioSEZHW1laxWCzi9XrF5XKJwWCQkZERERFZuXKl2O12ERHJzs6WEydOiIhI\nQUGBlJeXi4iIw+EQvV4/6bYAEECCnmJjnwi5ZnTyO6RERDeVcHym+d0jOn36NIxGI/R6PdRqNfLy\n8lBTUzOuTW1tLQoKCgAAVqsVHo8HPT09fmvH1hQUFODYsWMAgJqaGuTn50OtVkOv18NoNMJut6O7\nuxv9/f1IS0sDAGzatMlXc8cdd+DTTz8FAHg8Hmi12unIZyIiChO/QdTZ2YnExETfa51Oh87OzqDa\ndHV13bC2t7cXGo0GAKDRaNDb2wsA6Orqgk6nm3RZY+drtVrfsn72s5+hsrISiYmJ+N73voff//73\noY3AtIuBSqUKaYqLm69wn4mIlOP3i/FGv9U0MAni2/tEZNLlXfswnqpnn30WP/7xj7F79240Njbi\nRz/6EVpbW2/Qet+Yn9OvTtNtCPwyPSK6WTU0NKChoSGs6/QbRFqtFm632/fa7XaP2zOZrE1HRwd0\nOh0GBwcnzL922Eyj0aCnpwcJCQno7u5GfHy832VptVp0dHRMmA8A7733Hp5//nkAwKpVq3DlyhV8\n8sknWLhw4SRbtM/f5hIRRb309HSkp6f7Xl/7fJ1Jfg/NrVixAk6nE+3t7fB6vaiurkZubu64Nrm5\nuTh06BAAoLGxEfPmzYNGo/Fbm5ubi8rKSgBAZWUl1q5d65t/5MgReL1euFwuOJ1OpKWlISEhAXFx\ncbDb7RARHD58GGvWrAEAmM1mnDx5EgBw9uxZXLly5QYhREREESnQ1Qx1dXWSnJwsBoNBiouLRUSk\nvLzcd6WaiMj27dvFYDDIsmXLpKmpyW+tiMiFCxckIyNDTCaTZGZmysWLF33v7d+/XwwGgyxatEhs\nNptv/pkzZ2Tp0qViMBjkmWee8c1va2uTb3/722KxWOTee++Vt956a9LtQBivmuOVdkQ0W4Tj80l1\ndUWz3uh5qOA3NTb2SVy6dDCkmqtrmlJNlPwzENFNRqWa+c8nPlmBiIgUxSAiIiJFMYiIiEhRDCIi\nIlIUg4iIiBTFICIiIkUxiIiISFEMIiIiUhSDiIiIFMUgIiIiRTGIiIhIUQyim1Rc3Hx+AR8RzQp+\nv4+IIld//0XwC/iIaDbgHhERESmKQURERIpiEBERkaIYREREpCgGERERKYpBREREimIQERGRohhE\nRESkKAYREREpikFERESKYhAREZGiGERERKQoBhERESmKQURERIpiEBERkaICBpHNZoPZbIbJZEJZ\nWdmkbXbu3AmTyQSLxYKWlpaAtX19fcjMzERycjKysrLg8Xh875WUlMBkMsFsNqO+vt43v6mpCamp\nqTCZTNi1a9e49R89ehRLlizB0qVL8cMf/jD4rSciIuWJH0NDQ2IwGMTlconX6xWLxSIOh2Ncm+PH\nj0t2draIiDQ2NorVag1YW1hYKGVlZSIiUlpaKkVFRSIi0traKhaLRbxer7hcLjEYDDIyMiIiIitX\nrhS73S4iItnZ2XLixAkRETl37pwsX75cPB6PiIh8/PHHk24LAAEk6Ck29omQa0anqdTEXK0LdQq9\nb0REoQjH54bfPaLTp0/DaDRCr9dDrVYjLy8PNTU149rU1taioKAAAGC1WuHxeNDT0+O3dmxNQUEB\njh07BgCoqalBfn4+1Go19Ho9jEYj7HY7uru70d/fj7S0NADApk2bfDV//OMfsWPHDtx+++0AgIUL\nF04tkRU1hNBziIhodvAbRJ2dnUhMTPS91ul06OzsDKpNV1fXDWt7e3uh0WgAABqNBr29vQCArq4u\n6HS6SZc1dr5Wq/Uty+l04v3338c3v/lN3H///fjb3/4W2ggQEZGiYvy9qVKpglrI6N5b4DaTLU+l\nUgW9nskMDg6ira0N//jHP+B2u/Hf//3f+M9//uPbQxpv35if069ORER0TUNDAxoaGsK6Tr9BpNVq\n4Xa7fa/dbve4PZPJ2nR0dECn02FwcHDCfK1WC2B0L6inpwcJCQno7u5GfHy832VptVp0dHRMmA8A\niYmJsFqtuOWWW6DX65GcnIy2tjZ87Wtfm2SL9gUYDiKi6Jaeno709HTf6+eff37G1+n30NyKFSvg\ndDrR3t4Or9eL6upq5ObmjmuTm5uLQ4cOAQAaGxsxb948aDQav7W5ubmorKwEAFRWVmLt2rW++UeO\nHIHX64XL5YLT6URaWhoSEhIQFxcHu90OEcHhw4exZs0aAMDatWt96f3JJ5/g3LlzSEpKmr4RmlVi\nfHugwU5xcfOV7jQRzXaBrmaoq6uT5ORkMRgMUlxcLCIi5eXlUl5e7muzfft2MRgMsmzZMmlqavJb\nKyJy4cIFycjIEJPJJJmZmXLx4kXfe/v37xeDwSCLFi0Sm83mm3/mzBlZunSpGAwGeeaZZ8b18dln\nn5WUlBRJTU2V6urqSbcDEX3VXGTXEFH0CsdngOrqima90fNQwW9qbOyTuHTpYEg1V9c062qi5FeE\niCahUs38ZwCfrEBERIpiEBERkaIYREREpCgGERERKYpBRBEhLm5+yJeWq1T/i5ejE80Cfm9oJQqX\n/v6LCMdVgP39U3+KBxHNDO4RERGRohhEFACfxkBEM4uH5iiAa19RETwe/iKiUDCIaAbEfKknqhNR\ndGEQ0QwIfS9q9MIDIopGPEdERESKYhAREZGiGERERKQoBhERESmKQURERIpiEBERkaIYREREpCgG\nERERKYpBREREimIQERGRohhERESkKAYREREpikFERESKYhAREZGiGERERKQoBhERESmKQURERIoK\n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\n7evoapoAAAAASUVORK5CYII=\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa95d57e50>" | |
] | |
} | |
], | |
"prompt_number": 21 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"###Sites closer to ends have lower mapping quality\n", | |
"(ligher blue = more common in these plots)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"figure()\n", | |
"hexbin([dist_to_end(r.CHROM, r.POS, chrom_size) for r in snps], [r.INFO[\"MQ\"] for r in snps], \n", | |
" cmap=cm.Blues_r, gridsize=50)\n", | |
"colorbar()\n", | |
"show()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nfj3t2bOHPv7xj9Ptt99ORES33XYbfeITnyAioqeffpouvvhiajQaND09TWvWrCEpJRERve51r6PH\nH3+ciIje/OY300MPPURERJ///Ofpgx/8IBER7dixg975zncSEdELL7xA5513Hr344ov04osv0nnn\nnUd/93d/R9dffz1deeWVRETzko9TTz2V7rzzTiIiajabdOTIkXnJxznnnEO/8zu/QzMzM0REtG3b\nNvrqV786lLx8+9vfpsnJSbrgggvsvfnQhz40dAxWrVpF3/ve92jTpk30jne8g+6//356+OGH6eab\nb6YvfOEL9IlPfGJodfPBBx+kJ598kk4//XS6//77iYjoAx/4AH3qU5+iK664glavXk0vvPDCUPJy\n5MgRIiKLicnLF77wBRpZbH1vhH/wgx/QFVdcYf/evn07bd++vS/X/tM//VN65JFH6Pzzz6fnn3+e\niFRDff755xMR0ac//Wm67bbb7PlXXHEF/fCHP6QDBw7Qhg0b7P777ruPbr75ZnvOj370IyJSjdor\nX/lKIiL6x3/8R/rABz5gfd71rnfRpk2b6NFHH6W3vvWtRERDz8eRI0fotNNOo/vuu8/DZT7wuPHG\nG2nVqlV0+PBhajab9Na3vpUefvjhoeXl+uuvp02bNhER0c0330xnn3320DG4+eab6XOf+xxt2rSJ\nXvnKV1JRFERE9MMf/pCuuOIK+qd/+id617veNZR83HffffTss89SnudePiYmJuipp57yGuFh5EVK\nyWIystj6TkcMSvD83HPPYdeuXbjssstw6NAhTExMAAAmJiZw6NAhAMCBAwc8SYlJO9w/OTlp8+Tm\nt1arYfny5XjhhRcin927d2Pr1q3IHA3lsPMxPT2N5cuX44477sBrX/tavP/978fx48fnBY+1a9fi\n937v9/DqV78aZ599NlasWIGtW7cOLS+rVq3yrvXiiy8OHYOpqSk8//zzKIoCK1assHXDXOvLX/4y\n3vKWtwwlH/v378eRI0eQ57nNx9NPP41Wq4XXvOY1cG0YeTl8+DCLychi63sjPAjB87Fjx3D11Vfj\ns5/9LE477bQovUGLrL/97W/jlFNOweTkZPJDhGHko9Vq4cCBA3jDG96AJ598Eqeccgpuu+22oecD\nUHz4v/zLv+C5557DgQMHcOzYMXzta1+bl7yENsx0U+n86le/wtjYGK6//vp5yceJEydw11134cwz\nz7T7UnV30HkZWXvreyPcb8Fzs9nE1VdfjRtuuAFve9vbAKiezvPPPw8AOHjwoK1oYdr79u3D1NQU\nJicnsW/fvmi/8fnP//xPAKqRO3r0KM444wzvWj/4wQ/w9NNP4/bbb8d1112HRx99FDfccMPQ8zE1\nNYVTTjkFb3jDGwAA11xzDZ588kmcddZZQ80HAPz0pz/FhRdeiDPOOAO1Wg1vf/vb8cMf/nBoeTl4\n8KD12bt3L1auXDl0DPbu3YuJiQnkeY4jR45A6iD7X/ziF9FoNPAP//AP9txB52NychIrVqxAURSQ\nUuIXv/gFfvnLX+K5557Dueeei3379uF3f/d3cejQoaHk5RWveIWHyb59+zA5OYmRMdZvfqPZbNJ5\n551H09PTNDs729PEnJSSbrjhBvrIRz7i7f/4xz9uOa3t27dHkx+zs7P07LPP0nnnnWcnHLZs2UI/\n+tGPSEoZTTgYTuu+++7zJhzOPfdcevHFF+nw4cN2+7vf/a7lhOcjH+Pj4/TjH/+YiIj++q//mj7+\n8Y/PSz7OPvts2rBhA504cYKklPTud7+b7rrrrqHlZWpqii644AJ7bz70oQ/NS5146qmn7MTcjh07\n6KGHHqKVK1fSZz7zGa/ODqNuTk9P0+mnn047duwgIrIThETETswNMi9EZDEJ8zIy3/reCBMRPfjg\ng7R+/Xpas2YNffrTn57zdb7//e+TEIIuvvhiuuSSS+iSSy6hhx56iF544QW6/PLLad26dbR161Z7\n04mIPvWpT9GaNWvo/PPPp507d9r9//7v/06bNm2iNWvW0Ic+9CG7f2Zmht7xjnfQ2rVr6bLLLqPp\n6Wl77Mtf/jKtXbuW1q5dS1/96leJiOi73/2uVUfMRz7+9m//li699FJ6zWteQ3/2Z39GR44cmTc8\nbr/9dtq4cSNt2rSJ3v3ud1Oj0RhKXq699lpavnw5AaBarUbvfe975wWDyy67jFatWkX1ep1WrVpF\n5557LtXrdVq2bJmts0ZRMOh7ce2119KqVatobGyMxsbG6Mwzz6Rt27ZRo9EgIqJzzz3XNsKDzoux\nZ599lrZs2UJr16718jIy30Yfa4xsZCMb2Tza0IO6j2xkIxvZyEobNcIjG9nIRjaPNmqERzaykY1s\nHm3UCI9sZCMb2TzaqBEe2chGNrJ5tFEjPLKRjWxk82ijRnhkIxvZyObRRo3wyEY2spHNo/3/TjvR\nOL5UHlMAAAAASUVORK5CYII=\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x7ffa95e2e7d0>" | |
] | |
} | |
], | |
"prompt_number": 22 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##So, let's build a filter\n", | |
"\n", | |
"\n", | |
"###filtered snps\n", | |
"We are going to use a combination of GATK's 'best practive', which is designed really for human genotyping projects, and what we've learned from this excercise. So, to count for us a SNP must:\n", | |
"\n", | |
"\n", | |
"* Be at east 50kb from a choromsome end or be in the apicoplast (which is much shorter)\n", | |
"* Have an average MQ > 35\n", | |
"* Have a fisher test for strand bias > 0.001 (Phred 30)\n", | |
"* Hav MQRS rank sum z-score > -5\n", | |
"* Hav ReadPosition rank sum z-score > -5\n", | |
"* Have a total depth < 165" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def is_keeper_snp(rec, size_dict):\n", | |
" \"\"\" \"\"\"\n", | |
" if (dist_to_end(rec.CHROM, rec.POS, chrom_size) > 50000) or (rec.CHROM == \"apicoplast\"):\n", | |
" if rec.INFO[\"MQ\"] > 35:\n", | |
" if rec.INFO[\"FS\"] < 30:\n", | |
" if rec.INFO.get(\"MQRankSum\",0) > -5:\n", | |
" if rec.INFO[\"DP\"] < 165:\n", | |
" return rec.INFO.get(\"ReadPositionRankSum\",0) > -5\n", | |
" return False" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 23 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"filtered_snps = [r for r in snps if is_keeper_snp(r, chrom_size)]\n", | |
"len(filtered_snps), len(filtered_snps)/float(len(snps))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 24, | |
"text": [ | |
"(38579, 0.43012275205422945)" | |
] | |
} | |
], | |
"prompt_number": 24 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 72 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"###indels\n", | |
"Again, we will mix of GATK's best practice with what we have learned. \n", | |
"\n", | |
"* Be at east 40kb from a choromsome end or be in the apicoplast\n", | |
"* Have an average MQ > 40\n", | |
"* Have a fisher test for strand bias > 0.001 (Phred 30)\n", | |
"* Hav MQRS rank sum z-score > -5\n", | |
"* Hav ReadPosition rank sum z-score > -5\n", | |
"* Have a quality/depth > 2" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def is_keeper_indel(rec, size_dict):\n", | |
" \"\"\" \"\"\"\n", | |
" if (dist_to_end(rec.CHROM, rec.POS, chrom_size) > 40000) or (rec.CHROM == \"apicoplast\"):\n", | |
" if rec.INFO[\"MQ\"] > 35:\n", | |
" if rec.INFO[\"FS\"] < 30:\n", | |
" if rec.INFO.get(\"MQRankSum\",0) > -5:\n", | |
" if rec.INFO[\"QD\"] > 2:\n", | |
" return rec.INFO.get(\"ReadPositionRankSum\",0) > -5\n", | |
" return False" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 26 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"filtered_indels = [r for r in indels if is_keeper_indel(r, chrom_size)]\n", | |
"len(filtered_indels), len(filtered_indels)/float(len(indels))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 27, | |
"text": [ | |
"(8696, 0.609475749929913)" | |
] | |
} | |
], | |
"prompt_number": 27 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"##Write them out and use them in the downstream" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"snp_writer = vcf.Writer(open(\"vars/filtered_snps.vcf\", \"w\"), vcf.Reader(open(\"vars/raw_snps.vcf\")))\n", | |
"for var in filtered_snps:\n", | |
" snp_writer.write_record(var)\n", | |
"snp_writer.close()\n", | |
"\n", | |
"! grep -v -e ^'#' vars/filtered_snps.vcf | wc -l" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"38579\r\n" | |
] | |
} | |
], | |
"prompt_number": 28 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"polymorphic = [r for r in filtered_snps if len(unique([s.gt_nums for s in r.samples if s.called])) > 1]\n", | |
"\n", | |
"poly_writer = vcf.Writer(open(\"vars/polymorphic_snps.vcf\", \"w\"), vcf.Reader(open(\"vars/raw_snps.vcf\")))\n", | |
"for var in polymorphic:\n", | |
" poly_writer.write_record(var)\n", | |
"poly_writer.close()\n", | |
"\n", | |
"! grep -v -e ^'#' vars/polymorphic_snps.vcf | wc -l" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"34724\r\n" | |
] | |
} | |
], | |
"prompt_number": 29 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"indel_writer = vcf.Writer(open(\"vars/filtered_indels.vcf\", \"w\"), vcf.Reader(open(\"vars/raw_indels.vcf\")))\n", | |
"for var in filtered_indels:\n", | |
" indel_writer.write_record(var)\n", | |
"indel_writer.close()\n", | |
"\n", | |
"! grep -v -e ^'#' vars/filtered_indels.vcf | wc -l" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"8696\r\n" | |
] | |
} | |
], | |
"prompt_number": 30 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 81 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 89 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 80 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 89 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 89 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 89 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment