{ "metadata": { "name": "", "signature": "sha256:ccfdc1481403195bcd204c4224e37eb824c9ca4138e60cc6b9c613aab0fbc68e" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "##Processing returned VCF's\n", "\n", "Now we've got output vcf's from Snpeff and VEP. What we need to do is import them into a dataframe. Unfortunately this is not completely straightfoward since they encode their output into the Info column.\n", "\n", "###Snpeff's formatting looks like:\n", " ##INFO=\n", "\n", "An actual line might look like:\n", "\n", " EFF=DOWNSTREAM(MODIFIER||28|||CFTR|processed_transcript|CODING|ENST00000610149||1),EXON(MODIFIER|||||CFTR|processed_transcript|CODING|ENST00000429014|2|1),EXON(MODIFIER|||||CFTR|processed_transcript|CODING|ENST00000608965|3|1),INTRON(MODIFIER|||c.3207+2163A>G|1150|CTTNBP2|protein_coding|CODING|ENST00000446636|20|1|WARNING_TRANSCRIPT_NO_START_CODON),INTRON(MODIFIER|||c.4746+2163A>G|1663|CTTNBP2|protein_coding|CODING|ENST00000160373|22|1),INTRON(MODIFIER|||n.*2660+2163A>G||CTTNBP2|nonsense_mediated_decay|CODING|ENST00000441556|22|1),INTRON(MODIFIER|||n.*463+2163A>G||CTTNBP2|nonsense_mediated_decay|CODING|ENST00000445366|5|1),NON_SYNONYMOUS_CODING(MODERATE|MISSENSE|cTc/cCc|p.Leu155Pro/c.464T>C|155|CFTR|protein_coding|CODING|ENST00000600166|4|1|WARNING_TRANSCRIPT_NO_START_CODON)\n", "\n", "###VEP's formatting looks like:\n", " ##INFO=\n", "\n", "An actual line might look like:\n", "\n", "\n", " CSQ=C|83992|XM_005250635.1|Transcript|intron_variant||||||||||||||-1||CTTNBP2|||||protein_coding|XM_005250635.1:c.2649+2163A>G|||||,C|ENSESTG00000008055|ENSESTT00000020365|Transcript|downstream_gene_variant|||||||||||||2163|-1|||||||protein_coding||||||,C|83992|NM_033427.2|Transcript|intron_variant||||||||||||||-1||CTTNBP2|||||protein_coding|NM_033427.2:c.4746+2163A>G|||||,C|83992|XM_005250634.1|Transcript|intron_variant||||||||||||||-1||CTTNBP2|||||protein_coding|XM_005250634.1:c.4692+2163A>G|||||,C|CCDS5774.1|CCDS5774.1|Transcript|intron_variant||||||||||||||-1|||||||protein_coding|CCDS5774.1:c.4746+2163A>G|||||,C||ENSR00000683158|RegulatoryFeature|regulatory_region_variant|||||||||||||||||||||||||||\n", " \n", "###Annovar's formatting looks like:\n", " Chr\tStart\tEnd\tRef\tAlt\tFunc.ensgene\tGene.ensgene\tExonicFunc.ensgene\tAAChange.ensgene\tphastConsElements46way\tesp6500si_all\t1000g2012apr_all\tsnp138\tSIFT_score\tSIFT_score_converted\tSIFT_pred\tPolyphen2_HDIV_score\tPolyphen2_HDIV_pred\tPolyphen2_HVAR_score\tPolyphen2_HVAR_pred\tLRT_score\tLRT_score_converted\tLRT_pred\tMutationTaster_score\tMutationTaster_score_converted\tMutationTaster_pred\tMutationAssessor_score\tMutationAssessor_score_converted\tMutationAssessor_pred\tFATHMM_score\tFATHMM_score_converted\tFATHMM_pred\tRadialSVM_score\tRadialSVM_score_converted\tRadialSVM_pred\tLR_score\tLR_pred\tGERP++_RS\tphyloP\t29way_logOdds\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\tOtherinfo\n", " \n", "An actual line might look like:\n", "\n", " 7\t117171151\t117171151\t-\tTA\texonic\tENSG00000001626\tframeshift insertion\tENSG00000001626:ENST00000003084:exon4:c.472_473insTA:p.S158fs,ENSG00000001626:ENST00000426809:exon4:c.472_473insTA:p.S158fs,ENSG00000001626:ENST00000454343:exon4:c.472_473insTA:p.S158fs\tScore=645;Name=lod=560\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thet\t7\t117171151\t.\tA\tATA\t.\t.\t.\tGT\t0/1\n", " \n", "\n", "###Utimate objective\n", "It helps to keep in mind what we are trying to accomplish with this bit of data processing. We want to be able to compare the classification of every Transcript-Variant pair between tools. There are two things we'll need to do to our data to accomplish this goal. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import HTML\n", "import pandas as pd\n", "import numpy as np\n", "import os" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "# snp_eff_ensembl_df = pd.read_table(\"./cftr_snpeff_ensembl.vcf\", skiprows=7, header=0, usecols=range(10))\n", "snp_eff_ensembl_df = pd.read_table(\"./snpeff_test.vcf\", skiprows=7, header=0, usecols=range(10))\n", "snp_eff_ensembl_df.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
#CHROMPOSIDREFALTQUALFILTERINFOFORMATSAMPLE
0 7 117105737 . C A . . EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1
1 7 117105737 . C G . . EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1
2 7 117105737 . C T . . EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1
3 7 117105737 . C CA . . EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1
4 7 117105737 . C CG . . EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1
\n", "

5 rows \u00d7 10 columns

\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ " #CHROM POS ID REF ALT QUAL FILTER \\\n", "0 7 117105737 . C A . . \n", "1 7 117105737 . C G . . \n", "2 7 117105737 . C T . . \n", "3 7 117105737 . C CA . . \n", "4 7 117105737 . C CG . . \n", "\n", " INFO FORMAT SAMPLE \n", "0 EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1 \n", "1 EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1 \n", "2 EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1 \n", "3 EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1 \n", "4 EFF=INTERGENIC(MODIFIER||||||||||1),UPSTREAM(M... GT 0/1 \n", "\n", "[5 rows x 10 columns]" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Break classifications onto separate lines\n", "Since multiple transcripts are represented on every line of our imported VCF, we'll need to break these apart.\n", "\n", "First, we are just going to split on `,` and `|` and then trim off the remaining garbage. Next, we'll just set the column headers to what we find in the INFO header of the VCF. Finally, we'll make the index of the individual classifications correspond to our imported VCF table." ] }, { "cell_type": "code", "collapsed": false, "input": [ "info_df = snp_eff_ensembl_df[\"INFO\"].str.replace(\"EFF=\", \"\").str.split(',').apply(pd.Series, 1).stack()\n", "var_class_df = info_df.apply(lambda x: pd.Series(x.split('(')))\n", "detail_df = var_class_df[1].str.rstrip(\")\").apply(lambda x: pd.Series(x.split('|')))\n", "detail_df.columns = ['Effect_Impact', 'Functional_Class', 'Codon_Change', 'Amino_Acid_Change', \n", " 'Amino_Acid_length', 'Gene_Name', 'Transcript_BioType', 'Gene_Coding', \n", " 'Transcript_ID', 'Exon_Rank', 'Genotype_Number', 'WARNINGS']\n", "del var_class_df[1]\n", "var_class_df.columns = ['Effect']\n", "var_class_df = var_class_df.join(detail_df)\n", "var_class_df.index = var_class_df.index.droplevel(-1)\n", "var_class_df.head()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
EffectEffect_ImpactFunctional_ClassCodon_ChangeAmino_Acid_ChangeAmino_Acid_lengthGene_NameTranscript_BioTypeGene_CodingTranscript_IDExon_RankGenotype_NumberWARNINGS
0 INTERGENIC MODIFIER 1 NaN
0 UPSTREAM MODIFIER 101 CFTR processed_transcript CODING ENST00000546407 1 NaN
1 INTERGENIC MODIFIER 1 NaN
1 UPSTREAM MODIFIER 101 CFTR processed_transcript CODING ENST00000546407 1 NaN
2 INTERGENIC MODIFIER 1 NaN
\n", "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 49, "text": [ " Effect Effect_Impact Functional_Class Codon_Change Amino_Acid_Change \\\n", "0 INTERGENIC MODIFIER \n", "0 UPSTREAM MODIFIER 101 \n", "1 INTERGENIC MODIFIER \n", "1 UPSTREAM MODIFIER 101 \n", "2 INTERGENIC MODIFIER \n", "\n", " Amino_Acid_length Gene_Name Transcript_BioType Gene_Coding \\\n", "0 \n", "0 CFTR processed_transcript CODING \n", "1 \n", "1 CFTR processed_transcript CODING \n", "2 \n", "\n", " Transcript_ID Exon_Rank Genotype_Number WARNINGS \n", "0 1 NaN \n", "0 ENST00000546407 1 NaN \n", "1 1 NaN \n", "1 ENST00000546407 1 NaN \n", "2 1 NaN " ] } ], "prompt_number": 49 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Join the classifications back to the orginal table\n", "This is just like an inner join on our index. The effect will be to have duplicate variants and unique classifications per row." ] }, { "cell_type": "code", "collapsed": false, "input": [ "combo_df = snp_eff_ensembl_df.join(var_class_df)\n", "combo_df.replace(to_replace='', value=np.nan, inplace=True) \n", "HTML(combo_df[combo_df[\"Effect\"] == \"XON\"].head().to_html())" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", "
Int64Index([], dtype=int64)Empty DataFrame
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 50, "text": [ "" ] } ], "prompt_number": 50 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Tweak the index\n", "If what we did above seemed odd, here we will remove some of the confusion.\n", "\n", "First, we'll get rid of rows not associated with a transcript. Why? It would be very hard to programically compare variants not associated with a transcript, so let's just drop the rows where Transcript_ID is null\n", "\n", "Next, we'll reindex the table on two fields. First the genomic position and then the Transript_ID. These fields will correspond to the fields upon which we'll join the output from the other tools." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# combo_df_drop_nulls = combo_df[combo_df[\"Transcript_ID\"].isnull() == False]\n", "# combo_df_drop_nulls = combo_df_drop_nulls.set_index(keys=['POS', 'Transcript_ID']) \n", "# HTML(combo_df_drop_nulls.head().to_html())" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 51 }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Get all the data\n", "Now we'll import the data from VEP and annovar in a similar manner and store all this in an HDF5 data store and then we can do our analysis and export in anoter notebook. Note the use of context managers. If you don't close a hdf5 store you corrupt it." ] }, { "cell_type": "code", "collapsed": false, "input": [ "store_file=\"classified_variant_store.h5\"\n", "try:\n", " os.remove(store_file)\n", "except OSError:\n", " pass\n", "store = pd.HDFStore(store_file)\n", "store.close()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "def build_snpeff_hdf():\n", " with pd.get_store(\"./classified_variant_store.h5\") as store:\n", " for snpeff_file in [\"cftr_snpeff_ensembl.vcf\", \"cftr_snpeff_refseq.vcf\"]:\n", " snpeff_df = pd.read_table(snpeff_file, skiprows=7, header=0, usecols=range(10))\n", " var_class_df = snpeff_df[\"INFO\"].str.replace(\"EFF=\", \"\").str.split(',').apply(pd.Series, 1).stack()\n", " var_class_df = var_class_df.apply(lambda x: pd.Series(x.split('(')))\n", " detail_df = var_class_df[1].str.rstrip(\")\").apply(lambda x: pd.Series(x.split('|')))\n", " num_col = len(detail_df.columns)\n", " detail_df.columns = ['Effect_Impact', 'Functional_Class', 'Codon_Change', 'Amino_Acid_Change', \n", " 'Amino_Acid_length', 'Gene_Name', 'Transcript_BioType', 'Gene_Coding', \n", " 'Transcript_ID', 'Exon_Rank', 'Genotype_Number', \"Warnings\", \"Errors\"][:num_col]\n", " del var_class_df[1]\n", " var_class_df.columns = ['Effect']\n", " var_class_df = var_class_df.join(detail_df)\n", " var_class_df.index = var_class_df.index.droplevel(-1)\n", " var_class_df.head()\n", " snpeff_df = snpeff_df.join(var_class_df)\n", " # combo_df.replace(to_replace='', value=np.nan, inplace=True)\n", " # combo_df_drop_nulls = combo_df[combo_df[\"Transcript_ID\"].isnull() == False]\n", " # combo_df_drop_nulls = combo_df_drop_nulls.set_index(keys=['POS', 'Transcript_ID'])\n", " snpeff_df.dropna(axis=1, how='all')\n", " store[snpeff_file.rstrip(\".vcf\")] = snpeff_df\n", "\n", "build_snpeff_hdf()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/Users/andrewjesaitis/.virtualenvs/ipython/lib/python2.7/site-packages/pandas/io/pytables.py:2446: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block1_values] [items->['ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO', 'FORMAT', 'SAMPLE', 'Effect', 'Effect_Impact', 'Functional_Class', 'Codon_Change', 'Amino_Acid_Change', 'Amino_Acid_length', 'Gene_Name', 'Transcript_BioType', 'Gene_Coding', 'Transcript_ID', 'Exon_Rank', 'Genotype_Number', 'Warnings']]\n", "\n", " warnings.warn(ws, PerformanceWarning)\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "def build_vep_hdf():\n", " with pd.get_store(\"./classified_variant_store.h5\") as store:\n", " for vep_file in [ \"cftr_vep_refseq.vcf\", \"cftr_vep_ensembl.vcf\"]:\n", " vep_df = pd.read_table(vep_file, skiprows=5, header=0, usecols=range(10))\n", " info_df = vep_df[\"INFO\"].str.lstrip(\"CSQ=\").str.split(',').apply(pd.Series, 1).stack()\n", " detail_df = info_df.apply(lambda x: pd.Series(x.split('|')))\n", " headers = \"Allele|Gene|Feature|Feature_type|Consequence|cDNA_position|CDS_position|Protein_position|Amino_acids|Codons|Existing_variation|AA_MAF|EA_MAF|MOTIF_NAME|MOTIF_POS|HIGH_INF_POS|MOTIF_SCORE_CHANGE|DISTANCE|STRAND|CLIN_SIG|SYMBOL|SYMBOL_SOURCE|SIFT|PolyPhen|GMAF|BIOTYPE|HGVSc|HGVSp|AFR_MAF|AMR_MAF|ASN_MAF|EUR_MAF\"\n", " headers_list = headers.split(\"|\")\n", " detail_df.columns = headers_list\n", " consq_series = detail_df[\"Consequence\"].str.split('&').apply(pd.Series, 1).stack()\n", " consq_series.index = consq_series.index.droplevel(-1)\n", " consq_series.name = \"Consequence\"\n", " del detail_df[\"Consequence\"]\n", " detail_df = detail_df.join(consq_series)\n", " # Note that it is key to drop index level in the reverse order that they are built up\n", " detail_df.index = detail_df.index.droplevel(-1)\n", " vep_df = vep_df.join(detail_df)\n", " # vep_ensembl_df.replace(to_replace='', value=np.nan, inplace=True)\n", " vep_df = vep_df.dropna(axis=1, how='all')\n", " vep_df = vep_df.drop_duplicates()\n", " store[vep_file.rstrip(\".vcf\")] = vep_df\n", "\n", "build_vep_hdf()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "def combine_effects(row, suffix):\n", " if row[\"Func\" + suffix] == \"exonic\":\n", " return row[\"ExonicFunc\" + suffix]\n", " else:\n", " return row[\"Func\" + suffix]\n", " \n", "def combine_hgvs(row, suffix):\n", " if row[\"Func\" + suffix] == \"splicing\":\n", " return row[\"hgvs\"]\n", " else:\n", " return row[\"AAChange\" + suffix]\n", "\n", "def build_annovar_hdf():\n", " with pd.get_store(\"./classified_variant_store.h5\") as store:\n", " for annovar_file in [\"cftr_annovar_ensembl.tsv\", \"cftr_annovar_refseq.tsv\"]:\n", " annovar_df = pd.read_table(annovar_file)\n", " if annovar_file == \"cftr_annovar_ensembl.tsv\":\n", " suffix = \".ensgene\"\n", " else:\n", " suffix = \".refgene\"\n", " func = annovar_df[\"Func\" + suffix].str.split(\";\").apply(pd.Series, 1).stack()\n", " func.index = func.index.droplevel(-1)\n", " func.name = \"Func\" + suffix\n", " del annovar_df[\"Func\" + suffix]\n", " annovar_df = annovar_df.join(func)\n", " annovar_df.loc[annovar_df[\"Func\" + suffix] == 'intergenic', [\"Gene\" + suffix]] = np.nan\n", " gene_series = annovar_df[\"Gene\" + suffix].str.extract(r'(\\w+)\\(*')\n", " print gene_series.head()\n", " gene_series.name = \"Gene\"\n", " annovar_df = annovar_df.join(gene_series)\n", " annovar_df[\"combined_effect\"] = annovar_df.apply(combine_effects, axis=1, args=(suffix,))\n", " annovar_df.drop_duplicates(inplace=True)\n", " splice_hgvs_series = annovar_df[\"Gene\" + suffix].str.findall(r'\\w+\\((.+)\\)').apply(pd.Series).stack()\n", " splice_hgvs_series.index = splice_hgvs_series.index.droplevel(-1)\n", " splice_hgvs_series.name = \"hgvs\"\n", " annovar_df = annovar_df.join(splice_hgvs_series)\n", " annovar_df[\"hgvs\"] = annovar_df.apply(combine_hgvs, axis=1, args=(suffix,))\n", " del annovar_df[\"Gene\" + suffix]\n", " #We need to keep our original labels to join on in the next step\n", " annovar_df = annovar_df.rename(columns={'Otherinfo.2':'POS', \"Otherinfo.4\": \"REF\", \"Otherinfo.5\": \"ALT\"})\n", " annovar_df = annovar_df.dropna(axis=1, how='all')\n", " store[annovar_file.rstrip(\".tsv\")] = annovar_df \n", "build_annovar_hdf()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "0 NaN\n", "1 NaN\n", "2 NaN\n", "3 NaN\n", "4 NaN\n", "Name: Gene.ensgene, dtype: object\n", "0 NaN\n", "1 NaN\n", "2 NaN\n", "3 NaN\n", "4 NaN\n", "Name: Gene.refgene, dtype: object" ] }, { "output_type": "stream", "stream": "stderr", "text": [ "/Users/andrewjesaitis/.virtualenvs/ipython/lib/python2.7/site-packages/pandas/io/pytables.py:2446: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block2_values] [items->['Ref', 'Alt', 'ExonicFunc.ensgene', 'AAChange.ensgene', 'phastConsElements46way', 'snp138', 'SIFT_score', 'SIFT_score_converted', 'SIFT_pred', 'Polyphen2_HDIV_score', 'Polyphen2_HDIV_pred', 'Polyphen2_HVAR_score', 'Polyphen2_HVAR_pred', 'LRT_score', 'LRT_score_converted', 'LRT_pred', 'MutationTaster_pred', 'MutationAssessor_score', 'MutationAssessor_score_converted', 'MutationAssessor_pred', 'FATHMM_score', 'FATHMM_score_converted', 'FATHMM_pred', 'RadialSVM_score', 'RadialSVM_score_converted', 'RadialSVM_pred', 'LR_score', 'LR_pred', 'Otherinfo', 'Otherinfo.3', 'REF', 'ALT', 'Otherinfo.6', 'Otherinfo.7', 'Otherinfo.8', 'Otherinfo.9', 'Otherinfo.10', 'Func.ensgene', 'Gene', 'combined_effect', 'hgvs']]\n", "\n", " warnings.warn(ws, PerformanceWarning)\n", "/Users/andrewjesaitis/.virtualenvs/ipython/lib/python2.7/site-packages/pandas/io/pytables.py:2446: PerformanceWarning: \n", "your performance may suffer as PyTables will pickle object types that it cannot\n", "map directly to c-types [inferred_type->mixed,key->block2_values] [items->['Ref', 'Alt', 'ExonicFunc.refgene', 'AAChange.refgene', 'phastConsElements46way', 'snp138', 'SIFT_score', 'SIFT_score_converted', 'SIFT_pred', 'Polyphen2_HDIV_score', 'Polyphen2_HDIV_pred', 'Polyphen2_HVAR_score', 'Polyphen2_HVAR_pred', 'LRT_score', 'LRT_score_converted', 'LRT_pred', 'MutationTaster_pred', 'MutationAssessor_score', 'MutationAssessor_score_converted', 'MutationAssessor_pred', 'FATHMM_score', 'FATHMM_score_converted', 'FATHMM_pred', 'RadialSVM_score', 'RadialSVM_score_converted', 'RadialSVM_pred', 'LR_score', 'LR_pred', 'Otherinfo', 'Otherinfo.3', 'REF', 'ALT', 'Otherinfo.6', 'Otherinfo.7', 'Otherinfo.8', 'Otherinfo.9', 'Otherinfo.10', 'Func.refgene', 'Gene', 'combined_effect', 'hgvs']]\n", "\n", " warnings.warn(ws, PerformanceWarning)\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }