Ino de Bruijn Venn diagram + correlation with nucmer's contig purity of erroneousness and chimerism.  almost 10 years ago

Commit id: 815812bc1b4ed5110e9e7e68a0b57b2aa0c122f5

deletions | additions      

       

{  "metadata": {  "name": "",  "signature": "sha256:8d708b361498ca526b2cc347792f5bc82259c5e9ac29d6c6bcd892029489c148" "sha256:ac4ba3af586adfdb5eb37c5dce1e528961cf67f411f8b752dbfa5c906e6496c7"  },  "nbformat": 3,  "nbformat_minor": 0, 

"collapsed": false,  "input": [  "import pandas as pd\n",  "import numpy as np" np\n",  "from matplotlib_venn import venn3, venn3_circles, venn2, venn2_circles\n",  "import matplotlib as mpl\n",  "import matplotlib.pyplot as plt"  ],  "language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 98 121  },  {  "cell_type": "code", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 137 2  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 138, 3,  "text": [  " parent_tax_id rank embl_code division_id \\\n",  "tax_id \n", 

]  }  ],  "prompt_number": 138 3  },  {  "cell_type": "markdown", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 139, 4,  "text": [  "array(['no rank', 'superkingdom', 'genus', 'species', 'order', 'family',\n",  " 'subspecies', 'subfamily', 'tribe', 'phylum', 'class', 'forma',\n", 

]  }  ],  "prompt_number": 139 4  },  {  "cell_type": "heading", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 140 5  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 141, 6,  "text": [  " index classified tax_id length \\\n",  "seq_id \n", 

]  }  ],  "prompt_number": 141 6  },  {  "cell_type": "heading",  "level": 3,  "metadata": {},  "source": [  "Determine what contigs have been classified"  ]  },  {  "cell_type": "markdown", 

]  }  ],  "prompt_number": 285 7  },  {  "cell_type": "markdown", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 282 8  },  {  "cell_type": "code", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 283, 9,  "text": [  "True 52308\n",  "dtype: int64"  ]  }  ],  "prompt_number": 283 9  },  {  "cell_type": "markdown", 

"cell_type": "code",  "collapsed": false,  "input": [  "kraken[(kraken.length "def get_rank(tax_id):\n",  " \"\"\"Get the rank of a given tax-id. Get the parent rank recursively if it has no rank.\"\"\"\n",  " if tax_id == 1:\n",  " rank = \"domain\"\n",  " elif tax_id == 0:\n",  " rank = \"non-existent\"\n",  " else:\n",  " node_entry = nodes.ix[tax_id]\n",  " rank = node_entry[\"rank\"]\n",  " if rank == \"no rank\":\n",  " parent_rank = nodes.ix[node_entry.parent_tax_id][\"rank\"]\n",  " if parent_rank == \"no rank\":\n",  " rank = get_rank(node_entry[\"parent_tax_id\"])\n",  " else:\n",  " rank = parent_rank\n",  " return rank\n",  "\n",  "classified_rank = kraken[(kraken.length  > 500) & ~(kraken.tax_id.isin(tids))].tax_id.apply(get_rank).value_counts()" ~(kraken.tax_id.isin(tids))].tax_id.apply(get_rank)\n",  "classified_rank.value_counts()"  ],  "language": "python",  "metadata": {}, 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 284, 22,  "text": [  "species 1912\n",  "genus 246\n", 

]  }  ],  "prompt_number": 284 22  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "The one contig that is classified at the family level consists completely of kmers from one family:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "kraken.ix[classified_rank[classified_rank == \"family\"].index[0],:]"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 30,  "text": [  "index 76562\n",  "classified True\n",  "tax_id 274493\n",  "length 585\n",  "lca [(274493, 555)]\n",  "Name: NODE_116355_length_555_cov_39.299099, dtype: object"  ]  }  ],  "prompt_number": 30  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "It is actually classified one rank below *family*, but since that has *no rank* the function `get_rank` returns the rank of the first taxonomy in the lineage that does have a rank:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "print nodes.ix[274493,[\"rank\"]]\n",  "nodes.ix[nodes.ix[274493,:][\"parent_tax_id\"],[\"rank\"]]"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "output_type": "stream",  "stream": "stdout",  "text": [  "rank no rank\n",  "Name: 274493, dtype: object\n"  ]  },  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 41,  "text": [  "rank family\n",  "Name: 191412, dtype: object"  ]  }  ],  "prompt_number": 41  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "The name of the taxonomy id can be retrieved from the taxonomy name file:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "tax_names = pd.read_csv(\"/media/milou/glob/src/kraken-install/databases/Mircea_07102013_selected_refs/taxonomy/names.dmp\", sep=\"|\", \n",  " skipinitialspace=True, index_col=False,\n",  " names=[\"tax_id\",\"name_txt\",\"uniq_name\",\"name_class\"],\n",  " converters={\"name_txt\":strip,\"uniq_name\":strip,\"name_class\":strip})\n",  "tax_names.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",  "
tax_idname_txtuniq_namename_class
0 1 all synonym
1 1 root scientific name
2 2 Bacteria Bacteria <prokaryote> scientific name
3 2 Monera Monera <Bacteria> in-part
4 2 Procaryotae Procaryotae <Bacteria> in-part
\n",
  "

5 rows \u00d7 4 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 35,  "text": [  " tax_id name_txt uniq_name name_class\n",  "0 1 all synonym\n",  "1 1 root scientific name\n",  "2 2 Bacteria Bacteria scientific name\n",  "3 2 Monera Monera in-part\n",  "4 2 Procaryotae Procaryotae in-part\n",  "\n",  "[5 rows x 4 columns]"  ]  }  ],  "prompt_number": 35  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "tax_names[tax_names.tax_id == 191412]"  ],  "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",  "
tax_idname_txtuniq_namename_class
320233 191412 \"Chlorobiacea\" (sic) Copeland 1956 authority
320234 191412 Chlorobiacea synonym
320235 191412 Chlorobiaceae scientific name
320236 191412 Chlorobiaceae Copeland 1956 authority
\n",
  "

4 rows \u00d7 4 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 45,  "text": [  " tax_id name_txt uniq_name name_class\n",  "320233 191412 \"Chlorobiacea\" (sic) Copeland 1956 authority\n",  "320234 191412 Chlorobiacea synonym\n",  "320235 191412 Chlorobiaceae scientific name\n",  "320236 191412 Chlorobiaceae Copeland 1956 authority\n",  "\n",  "[4 rows x 4 columns]"  ]  }  ],  "prompt_number": 45  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "tax_names[tax_names.tax_id == 274493]"  ],  "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",  "
tax_idname_txtuniq_namename_class
439829 274493 Chlorobium/Pelodictyon group scientific name
\n",
  "

1 rows \u00d7 4 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 44,  "text": [  " tax_id name_txt uniq_name name_class\n",  "439829 274493 Chlorobium/Pelodictyon group scientific name\n",  "\n",  "[1 rows x 4 columns]"  ]  }  ],  "prompt_number": 44  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "It's not that strange that the Chlorobium group is hard to solve for the assembler, since we have four species of Chlorobium in our reference metagenome:\n",  "\n",  "```\n",  "$ grep '^>Chlor' references.fa\n",  ">Chlorobiumlimicola_DSM_245\n",  ">Chlorobiumphaeobacteroides_DSM_266\n",  ">Chlorobiumphaeovibrioides_DSM_265\n",  ">Chlorobiumtepidum_TLS\n",  "```\n",  "\n",  "The *C. tepidum* is from the *Chlorobaculum* genus instead of the *Chlorobium* genus though."  ]  },  {  "cell_type": "heading", 

"output_type": "stream",  "stream": "stdout",  "text": [  "CPU times: user 11.9 s, sys: 60 284  ms, total: 12 12.2  s\n", "Wall time: 12.1 12.3  s\n" ]  }  ],  "prompt_number": 277 12  },  {  "cell_type": "markdown", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 286 13  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 287, 14,  "text": [  " 2 816 1091 1224 2157 2182 2276 \\\n",  "52598 unknown unknown unknown unknown unknown unknown unknown \n", 

]  }  ],  "prompt_number": 287 14  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "Create a couple of functions to find the LCA and get the rank of a taxonomy id:" LCA:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "def get_rank(tax_id):\n",  " \"\"\"Get the rank of a given tax-id. Get the parent rank recursively if it has no rank.\"\"\"\n",  " if tax_id == 1:\n",  " rank = \"domain\"\n",  " elif tax_id == 0:\n",  " rank = \"non-existent\"\n",  " else:\n",  " node_entry = nodes.ix[tax_id]\n",  " rank = node_entry[\"rank\"]\n",  " if rank == \"no rank\":\n",  " parent_rank = nodes.ix[node_entry.parent_tax_id][\"rank\"]\n",  " if parent_rank == \"no rank\":\n",  " rank = get_rank(node_entry[\"parent_tax_id\"])\n",  " else:\n",  " rank = parent_rank\n",  " return rank\n",  "\n",  "def get_full_lineage(nodes, tid):\n",  " \"\"\"Traverses all parent taxonomy ids to return a list from lowest taxonomy id to highest\"\"\"\n",  " ptid = nodes.ix[tid][\"parent_tax_id\"]\n", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 288 15  },  {  "cell_type": "markdown", 

"output_type": "stream",  "stream": "stdout",  "text": [  "CPU times: user 8.71 8.38  s, sys: 16 4  ms, total: 8.73 8.39  s\n", "Wall time: 8.73 8.43  s\n" ]  }  ],  "prompt_number": 290 16  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 291, 17,  "text": [  " 2 816 1091 1224 \\\n",  "52598 contained_superkingdom superkingdom superkingdom contained_phylum \n", 

]  }  ],  "prompt_number": 291 17  },  {  "cell_type": "markdown", 

]  }  ],  "prompt_number": 210 18  },  {  "cell_type": "markdown", 

"output_type": "stream",  "stream": "stdout",  "text": [  "CPU times: user 33.6 34.8  s, sys: 76 ms, total: 33.7 34.8  s\n", "Wall time: 33.8 34.9  s\n" ]  },  { 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 292, 19,  "text": [  " class contained_class \\\n",  "seq_id \n", 

]  }  ],  "prompt_number": 292 19  },  {  "cell_type": "markdown", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 294 266  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 295, 267,  "text": [  " species genus family order class \\\n",  "seq_id \n", 

]  }  ],  "prompt_number": 295 267  },  {  "cell_type": "markdown", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 246, 268,  "text": [  "0x4c6ddfd0>" 0x4545bed0>"  ]  },  { 

"output_type": "display_data",  "png": "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\n",  "text": [  "0x1321b990>" 0x2816df10>"  ]  }  ],  "prompt_number": 246 268  },  {  "cell_type": "markdown", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 296, 269,  "text": [  "0x42a36e10>" 0x2c098090>"  ]  },  { 

"output_type": "display_data",  "png": "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\n",  "text": [  "0x40a6a850>" 0x47e95bd0>"  ]  }  ],  "prompt_number": 296 269  },  {  "cell_type": "markdown", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 248 51  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 249, 52,  "text": [  " index contig_length \\\n",  "contig \n", 

]  }  ],  "prompt_number": 249 52  },  {  "cell_type": "markdown", 

"language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 251 53  },  {  "cell_type": "markdown", 

]  }  ],  "prompt_number": 252 54  },  {  "cell_type": "code", 

],  "metadata": {},  "output_type": "pyout",  "prompt_number": 255, 55,  "text": [  " max_aln_strain \\\n",  "seq_id \n", 

]  }  ],  "prompt_number": 255 55  },  {  "cell_type": "markdown", 

"collapsed": false,  "input": [  "pure = cpurity_lca.max_aln_purity == 1\n",  "impure = cpurity_lca.max_aln_purity < 1\n",  "cpurity_lca.plot(title=)" 1"  ],  "language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 298 57  },  {  "cell_type": "code", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 301, 58,  "text": [  "0x42800650>" 0x178b6610>"  ]  },  { 

"output_type": "display_data",  "png": "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\n",  "text": [  "0x427e3a90>" 0x178b6fd0>"  ]  }  ],  "prompt_number": 301 58  },  {  "cell_type": "markdown", 

{  "metadata": {},  "output_type": "pyout",  "prompt_number": 302, 59,  "text": [  "0x427e3490>" 0x178c1690>"  ]  },  { 

"output_type": "display_data",  "png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAF9CAYAAAAZcuPcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXmYJEW1vt9ZgGEbhgZkZxoHUUBlFFFAvLRcwQ0QRDbZ\nBnEXBX9wFdwY3C6gIly5LheEAVQUkFVRQZ0GBGQfQHZHBgQE2RlFBaR/f5xIKqumuroy6tTU6eJ7\nnyef7syq/CoqK/Nk5BcnIkAIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBC9CF/AP6j14UIzJ7Ar3pd\niBJzgC/1uhCLgVWBS4GngK/1uCxCiHHEIPA8MLHH5WjFycAXHXSGgf0ddLrF54GzSuu7A7cDTwKP\nAGcDa5RePwC4FvgndoyEE5EvBhGPSb0uQIkJvS7AGHiUb8RBo5tMB24rrV+OPTmukF57Gjim9Pr9\n2JPKSYurgC8WFMjHBwuArdP/s4EzgdOwR9qbgJcBhwEPAfcA25T2HQb+G7gKqymdC6yYXhsC/jzG\nZ52VPutJYF/sIv0+8ABwH3ZhjnYeTQQ+A/wxlfVaYK302hbANcATwNXA5g1l/iLwu7Tfr4CV0muX\npr9PpNc2A2YBl5X23xa4I73nf4FLqNVs10vrTwAPAz8epey/AD7WsO1GYMf0/yuAi4FHsVroLg3v\nLYLwbcA7S9snp8+dmdY3A64AHgfmAVul7V8B3gQcDywE/idtfx74EHBn2uf4kvYE4HPYb/gQcAow\nNb02BfgBVlN+HDvmL0mvDWA15PuBx4Bz0vYVgZ8Bf03bLwDWTK/NAfYBPpXKtzV2Lv21VJZ/A38p\nle8c4DzsmAnxouNu6oPrP7BgPQm7WBdggXwS8H7gT6V9h7GAuyGwDLXADM0DeeNnPQPskNanYBfj\nd4ClgVWwG8QHRyn3f1G70QC8CgsaA1gw2RML9rtjgaK4wQwDd2FBdwowF7sZgdX0Gq2VWdQC+crY\nTWfH9J5PpO/wvvT66dixAlgSu6E0Y2/sRlKwYSrzEsCy2HHbN33GTCw4b5DeW7ZWPo8F0IJ3Arek\n/9fEAuvb0vpb0npx05pbKnfB88D5WIBeGwucb02vvQ87boOpjD8FTk2vfSjtNwULsq8Blk+v/Rw7\nLitgN5o3pe0DwE5pn+WAM6gF+cbvWbAldpN8PpV/SRbly8haES9CGoNruWFve6xGVDzKL49dREVN\nbC7w1dL7NwD+ld4/xNiBfLj02qqYvzmltG0P4LejlPv2VL5G9gZ+37DtCiwwFmX+TOm1j2A1ZGju\nkc+iFsj3wR7xy9xLLSCeAnyPWs1yNJYH/oYFS7Aa8onp/92oPRkUfA/4Qvr/ZGqNnethTw7FMfsh\nVmsG+DS1QFvwy/QdwI5Do0f+PPU3n59gtWKA3wAfLr22PnYTmwTshx2XVzXorY7VnFdgbGZiN9yC\n8vdsZA3gIuC4Jq99CQVyV2StjE/+Wvr/H1gtbqS0DlaDKigH63uxWuXKbX7WfaX/p6d9/4LVTh8H\nvovVzJuxNjC/yfY1UjnK3EN9w9iDpf//Qf33acUaDWWmYf1T2E3saiwbaL9RdBZiNdU90vruWBAG\nOw5voHYMHgfei93oGvkjZq/sgD0RbQ/8qKSzS4POG4HVSvs388nLx+Zpasdmdew4FtyL1bBfgj2F\n/Qqzku4HjkqvrY0F5yebfM4y2A1qQXr9Eizgt+P/P4A9jezT5LXo7Rvjjsm9LoBYLKzT8P+zWPD/\nO3axFkxi0aBcDiR/xmrzK2E1w7H4M1YjvbVh+/3Auxu2TadW627FWA2AD1D/FDCBmi8P5h0XVtAb\ngV9jAapsRxWcDhyO1fYLiwcsQF6CefHtcDp2Q5iEHYvis+7FAuxo1lTVxs4HsCeWgnWA57Dv/Dxm\ng3wRO9YXYu0IF2IWygosGswPxmr1r8cqDzOB67Fj2k7ZlsBuNI1Eb8Qdd6hG3v9MAPbCLJVlsAv5\nTOxiuhMLUO/ALrrPAUu10PoL9rh8DGY9TARmMHqO+4nYY/R6qRyvxoLGhViA2AOrTOyGNR7+rKHc\nzXgYC0ozRnn9Qsw+eFfS/hj1NdxdqAX2J7DjMNpN6UIs6B1BfaPoz1L598KO2xLApuk7NCv7jzEf\n+8PUavVg3vn22A1hEvZbDFGzfR5q8T0LJpQ+73Tgk1gwXw6z1H6cvt8QdlwmYU8bz2KWyoPYDfTb\nwLT0XQqPfDnsaehJ7Hc7vMlnl3kvNStqOmZH/bT0evEdJ6f/lyJWJtS4RYF8/DHCojWaVusjWK1v\nDhaIl8QaAMEu0I9iAfc+zBP+c8O+jdr7JI1bsUfyM6kPlGWOwRrILkqfdQJ2IT8GbIfV+B4BDknr\nZf+18TsU609jAeLy9P43NLz+CBasj07/b4Bly/wrvf46zJ9fiGVQfAKzDprxDJYL/Z/U7BCw47Qt\nZrfcjx3X/6bWsNd43B7E2gA2xzztgvuwG85nsBrvvemYFAHyOOA96XseO0oZy591EvZbX4rV+p8G\nPp5eWw37rZ7Efrthao3ee2OB/Xbs5nFg2n4s1qj9SCr/Lxj9dwFrEL4COz7DwJXU/Hswq+VprG1g\nL+wm8dlRvpdw5CTsh725tG0AS7u6E7tAp5VeOwxrNb+d9h87RXdplvnwYmIiFmy3GuuNQoxXxqqR\nn0wtNargUCyQr4+1kh+atm+IPSJvmPb5dhv6YvHwYmtc2harYCxFLfulMUtGiL5hrEB7GdaSXmYH\nLIWL9LfoIPEuzKN7FntU/SPWSCJ6z4utcWlz7Px7GMvb3pGatSLEi5JB6q2VcmCfUFr/FtbBo+BE\nYOeulkwIIUTH1kezxrDG14UQQnSRnDzyh7AW8AexDghF55T7qaUegaV43d+484wZM0bmz2/WR0QI\nIUQLbqQ2Rk8dOTXy86l1pd4XG4Sp2L47loK1Lja+xtWNO8+fP5+RkZG2l8MPP7zS+7utE7FM+m7j\ns0z6buOzTL36bsDGowXlsWrkp2NpWytj+cVfAI7EcoP3xxo1d03vvTVtvxXrTfZRHKyVBQsWdCrh\nquOpFU3HUyuajqdWNB1PrWg6nlrRdDy1xgrke4yy/S2jbP8q9QM0CSGE6DK96B47e/bs2W2/edq0\naQwODnb8oV46nlrRdDy1oul4akXT8dSKpuOpFU2nqtYRRxwBNlzEIvSio8hI8nuEEEK0yYQJE2CU\nmB2+5+Xw8HAoHU+taDqeWtF0PLWi6XhqRdPx1Iqm46kVPpALIYRojawVIYQYB4xra0UIIURrwgfy\nfva1oul4akXT8dSKpuOpFU3HUyuajqdW+EAuhBCiNfLIhRBiHCCPXAgh+pjwgbyffa1oOp5a0XQ8\ntaLpeGpF0/HUiqbjqRU+kAshhGiNPHIhhBgHyCMXQog+Jnwg72dfK5qOp1Y0HU+taDqeWtF0PLWi\n6XhqhQ/kQgghWiOPXAghxgHyyIUQoo8JH8j72deKpuOpFU3HUyuajqdWNB1PrWg6nlrhA7kQQojW\nyCMXQohxgDxyIYToY8IH8n72taLpeGpF0/HUiqbjqRVNx1Mrmo6nVvhALoQQojXyyIUQYhwgj1wI\nIfqY8IG8n32taDqeWtF0PLWi6XhqRdPx1Iqm46kVPpALIYRojTxyIYQYB8gjF0KIPiZ8IO9nXyua\njqdWNB1PrWg6nlrRdDy1oul4aoUP5EIIIVojj1wIIcYB8siFEKKPCR/I+9nXiqbjqRVNx1Mrmo6n\nVjQdT61oOp5a4QO5EEKI1nTikR8G7AU8D9wM7AcsC/wEmA4sAHYFnmjYTx65EEJUpBse+SDwAeC1\nwKuAScDuwKHAxcD6wG/SuhBCiC6SG8ifAp4FlgEmp78PADsAp6T3nALs2GkB+9nXiqbjqRVNx1Mr\nmo6nVjQdT61oOp5auYH8MeAbwL1YAH8Cq4mvCjyU3vNQWhdCCNFFJmfuNwM4CLNYngTOxPzyMiNp\nWYRZs2YxODgIwLRp05g5cyZDQ0NA7Q5VrBfbRnu9V+vlsuXqDQ0NhSpPWaPXx7cb5Yl2vD3LE/F4\ne66Xy5arF+33L2s0e314eJg5c+YAvBAvRyO3sXM3YBvg/Wl9b2AzYGvgzcCDwOrAXOAVDfuqsVMI\nISrSjcbO27HAvXQSfgtwK3ABsG96z77AuZn6L9B4B+y1jqdWNB1PrWg6nlrRdDy1oul4akXT8dTK\ntVZuBE4FrsXSD68H/g9YHjgD2J9a+qEQQoguorFWhBBiHKCxVoQQoo8JH8j72deKpuOpFU3HUyua\njqdWNB1PrWg6nlrhA7kQQojWyCMXQohxgDxyIYToY8IH8n72taLpeGpF0/HUiqbjqRVNx1Mrmo6n\nVvhALoQQojXyyIUQYhwgj1wIIfqY8IG8n32taDqeWtF0PLWi6XhqRdPx1Iqm46kVPpALIYRojTxy\nIYQYB8gjF0KIPiZ8IO9nXyuajqdWNB1PrWg6nlrRdDy1oul4aoUP5EIIIVojj1wIIcYB8siFEKKP\nCR/I+9nXiqbjqRVNx1Mrmo6nVjQdT61oOp5a4QO5EEKI1sgjF0KIcYA8ciGE6GPCB/J+9rWi6Xhq\nRdPx1Iqm46kVTcdTK5qOp1b4QC6EEKI18siFEGIcII9cCCH6mPCBvJ99rWg6nlrRdDy1oul4akXT\n8dSKpuOpFT6QCyGEaI08ciGEGAfIIxdCiD4mfCDvZ18rmo6nVjQdT61oOp5a0XQ8taLpeGqFD+RC\nCCFaI49cCCHGAfLIhRCijwkfyPvZ14qm46kVTcdTK5qOp1Y0HU+taDqeWuEDuRBCiNZ04pFPA04E\nNgJGgP2Au4CfANOBBcCuwBMN+8kjF0KIinTLIz8OuBDYAHg1cDtwKHAxsD7wm7QuhBCii+QG8hWA\nNwEnpfXngCeBHYBT0rZTgB07Kh397WtF0/HUiqbjqRVNx1Mrmo6nVjQdT63cQL4u8DBwMnA9cAKw\nLLAq8FB6z0NpXQghRBfJ9chfB1wJbAFcAxwLLAQOAFYsve8xYKBhX3nkQghRkVYe+eRMzfvSck1a\nPws4DHgQWC39XR34a7OdZ82axeDgIADTpk1j5syZDA0NAbVHDa1rXetafzGvDw8PM2fOHIAX4mU3\nuBRr1ASYDRydlk+nbYcCRzbZb6QKc+fOrfT+but4akXT8dSKpuOpFU3HUyuajqdWNJ2qWlh2YFNy\na+QAHwd+CCwJzMfSDycBZwD7U0s/FEII0UU01ooQQowDNNaKEEL0MeEDeWH+R9Hx1Iqm46kVTcdT\nK5qOp1Y0HU+taDqeWuEDuRBCiNbIIxdCiHGAPHIhhOhjwgfyfva1oul4akXT8dSKpuOpFU3HUyua\njqdW+EAuhBCiNfLIhRBiHCCPXAgh+pjwgbyffa1oOp5a0XQ8taLpeGpF0/HUiqbjqRU+kAshhGiN\nPHIhhBgHyCMXQog+Jnwg72dfK5qOp1Y0HU+taDqeWtF0PLWi6XhqhQ/kQgghWiOPXAghxgHyyIUQ\noo8JH8j72deKpuOpFU3HUyuajqdWNB1PrWg6nlrhA7kQQojWyCMXQohxgDxyIYToY8IH8n72taLp\neGpF0/HUiqbjqRVNx1Mrmo6nVvhALoQQojXyyIUQYhwgj1wIIfqY8IG8n32taDqeWtF0qmpNnTrA\nhAkTKi9Tpw50pTyLSyuajqdWNB1PrfCBXIhesHDh48DIKMvcUV+z/YRYvMgjF6IJ5kfmnKcT0Pkt\nuoE8ciGE6GPCB/J+9rWi6XhqRdPx1fLRifjdoul4akXT8dQKH8iFEEK0Rh65EE2QRy6iIY9cCCH6\nmPCBvJ99rWg6nlrRdHy1fHQifrdoOp5a0XQ8tcIHciGEEK2RRy5EE+SRi2h00yOfBNwAXJDWB4CL\ngTuBi4BpHeoLIYQYg04D+YHArdSqLodigXx94DdpvSP62deKpuOpFU3HV8tHJ+J3i6bjqRVNx1Or\nk0C+FvAO4ERq1f0dgFPS/6cAO3agL4QQog068cjPBL4KTAUOAbYHHgdWLGk/VlovkEcuwiOPXESj\nGx75dsBfMX98tJtBMSScEEKILjI5c78tMBvlHcAUrFZ+GvAQsBrwILA6FuwXYdasWQwODgIwbdo0\nZs6cydDQEFDzjIr1Y489tuXr7a4X23L3L6/PmzePgw46qKPylMsSpTwQ73h7lafq8a5RrA+V1ucB\nB43yumkszt+/rBHleHuV58V8vQ0PDzNnzhyAF+JlN9mKWtbK0cCn0/+HAkc2ef9IFebOnVvp/d3W\n8dSKpuOpFU2nqhYwAiOjLHNbvNb++a3fbfFqRdOpqkULh8Mjj3wr4GCshj4AnAGsAywAdgWeaBLI\nHT5WiO4hj1xEo5VHrg5BQjRBgVxEY1wPmrWoZ9lbHU+taDqeWtF0fLV8dCJ+t2g6nlrRdDy1wgdy\nIYQQrZG1IkQTZK2IaIxra0UIIURrwgfyfva1oul4akXT8dVqX2fq1AEmTJhQeZk6daBaiYId74i/\nWzQdT63wgVyI8czChY9T6+TcuMwd9TXbT4j2kEcuRBO8PHJ57cILeeRCCNHHhA/k/exrRdPx1Iqm\n46sVTSfe8Y74u0XT8dQKH8iFEEK0Rh65EE2QRy6iIY9cCCH6mPCBvJ99rWg6nlrRdHy1ounEO94R\nf7doOp5a4QO5EEKI1sgjF6IJ8shFNOSRCyFEHxM+kPezrxVNx1Mrmo6vVjSdeMc74u8WTcdTK3wg\nF0II0Rp55EI0QR65iIY8ciGE6GPCB/J+9rWi6XhqRdPx1YqmE+94R/zdoul4aoUP5EIIIVojj1yI\nJsgjF9GQRy6EEH1M+EDez75WNB1PrWg6vlrRdOId74i/WzQdT63wgVwIIURr5JEL0QR55CIa8siF\nEKKPCR/I+9nXiqbjqRVNx1crmk684x3xd4um46kVPpALIYRojTxyIZogj1xEQx65EEL0MeEDeT/7\nWtF0PLWi6fhqRdOJd7wj/m7RdDy1wgdyIYQQrZFHLkQT5JGLaMgjF0KIPiY3kK8NzAVuAf4AfCJt\nHwAuBu4ELgKmdVrAfva1oul4akXT8dWKphPveEf83aLpeGrlBvJngU8CGwGbAR8DNgAOxQL5+sBv\n0roQQogu4uWRnwscn5atgIeA1bAqxysa3iuPXIRHHrmIRrc98kHgNcBVwKpYECf9XdVBXwghRAsm\nd7j/csBPgQOBhQ2vjTBKVWTWrFkMDg4CMG3aNGbOnMnQ0BBQ84yK9WOPPbbl6+2uF9ty9y+vz5s3\nj4MOOqij8pTLEqU8EO94e5Wn6vGuUawPldbnAQeN8rppFHq19ww1eX/5sxpfr2m1W95Ix9urPC/m\n6214eJg5c+YAvBAvu8ESwK+ondEAt2OWCsDqab2RkSrMnTu30vu7reOpFU3HUyuaTlUtYARGRlnm\ntniNruh4frfxpOOpFU2nqhYtPLpcj3wCcArwKNboWXB02nYU1tA5jUUbPFOZhIiLPHIRjVYeeW4g\n3xK4FLiJ2ll6GHA1cAawDrAA2BV4omFfBXIRHgVyEY1uNHb+Lu07E2vofA3wS+Ax4C1Y+uG2LBrE\nK7OoZ9lbHU+taDqeWtF0fLWi6cQ73hF/t2g6nlrq2SmEEOMcjbUiRBNkrYhoaKwVIYToY8IH8n72\ntaLpeGpF0/HViqYT73hH/N2i6XhqhQ/kQgghWiOPXIgmyCMX0ZBHLoQQfUz4QN7PvlY0HU+taDq+\nWtF04h3viL9bNB1PrfCBXAghRGvkkQvRBHnkIhryyIUQoo8JH8j72deKpuOpFU3HVyuaTrzjHfF3\ni6bjqRU+kAshhGiNPHIhmiCPXERDHrkQQvQx4QN5P/ta0XQ8taLp+GpF04l3vCP+btF0PLXCB3Ih\nhBCtkUcuRBPkkYtoyCMXQog+Jnwg72dfK5qOp1Y0HV+taDrxjnfE3y2ajqdW+EAuhBCiNfLIhWiC\nPHIRDXnkQgjRx4QP5P3sa0XT8dSKpuOrFU0n3vGO+LtF0/HUCh/IhRBCtEYeuRBNkEcuovGi8cin\nTh1gwoQJlZepUwd6XXQhhMgmfCCv4iEtXPg4Vvtptswd9TXbrztlGk86nlrRdHy1ounEO94Rf7do\nOp5a4QO5EEKI1oTwyKdOHahcKwZYfvkVeeqpx15Ylx8pvJBHLrzwjW/NY3aIQK6LRkRD56Twwvdc\nGreNncPBdOJ5bRE9u2g6vlrRdOId74i/WzSdpOaiMg4CuRBCiFbIWmmiI4TOSeGFrBUhhBBj0o1A\n/jbgduAu4NOdyw13LuGqE89rkx+5uLWi6cQ73hF/t2g6Sc1FxTuQTwKOx4L5hsAewAadSc7ruFC+\nOjBvno9WNB1PrWg6vlrRdOId74i/WzSdpOai4h3IXw/8EVgAPAv8GHhXZ5JPdFomZx144gkfrWg6\nnlrRdHy1ounEO94Rf7doOknNRcU7kK8J/Lm0fl/aJoQQokt4B/IuNLMvCKYDCxb4aEXT8dSKpuOr\n1RudVoPCHXHEES6DwvXz7xZNJ6m5qHinH24GzMY8coDDgOeBo0rvmQds7Py5QgjR79wIzFwcHzQZ\nmA8MAktiQbvDxk4hhBCLm7cDd2CNnof1uCxCCCGEEEIIIYQQXaQXY62IzlkPS+38J/Bm4FXAqeQl\npa4I7IO1a0xO20aAT3Rcyt4zBdiZRb/bFzO0PI+5B68CbnbQmYglKVzhoFVmErAs8FTm/isC6ySd\ngusztTZm0XPg7AydScCqJR2AeytqeJ6TLxBxrJWDgBWwm8z3gRuAt2bofA2YCiwB/AZ4BNg7s0zH\nABtl7lswCfh6hxoFPwWew4LL94C1gR9lal0ITAduAq4FrktLVV4KfBM4B7ggLef3UAfgPGAHrHPa\n39Ly90wtr2O+JbBc+n9v7NyanqHzHeAa4KPY9ZLL88C3O9i/zOnYNbcsdpO5DfhUhs6XsPPxf4Bv\nlJYcTsbiyLuB7dKyfYbOx4GHgF8DPy8tVfE8J0NzU/r7VuxifiUWzKtyY/q7E/ZDrlDSrsoHgMuB\nq4EPk3/h/B6fp6DieHwKO8HK26qSW8tp5CasFr81MJSWrXqoA/CHzP2a4XXMb8bOgY3T/h8DLsks\n0/rAkVim2OnAtpk6XwfeQ+fnZnHN7YkF3iXIe2q4E8t68+BWfK65+cBKDjqe52Roih/+f7C7KORd\nMLekv9/HMmmgdqLl8grswrkXq429ueL+38Vql3tjj1c7U/uOVbgKeC92UqyLnai5J8ghwAeB1YGB\n0lKVqzM/v1s6AP8HvNpJq/GYQ94xL87lw4H3p/87uZlOxoLwA1gN+A7svKrC37Ca+bPAwrTkWCK3\nYMH7TOwGDHmVp3MwC8ODU+j8aRps9vYlHHQ8z8kXmDz2WxY71wEXYY/Yh2KPas9n6FyAjcL4T+Aj\nwEvS/7lMwgL5BsDD2E3h/2E19N3a1JgCPIbVNstU9eveB3wI+ApwNxZYTquoUfBPzIb6LLXjPIId\n/yp8C+sM9ivgX6XtVYOUlw7Am4D9sGNUaI2QdyF5HfOFwGeAvVL5JpEXIDYGZmFWwcXp7/XAGtiT\n308raC039lva4ntYV8WbgEsxH/jJDJ2vYje8P1D/u+2QoXUycCXwIJ2dA3djwfznwDMlnWMq6nie\nky8QsbFzEnaS/glrSFoJG68l584+gJ1I/8Z8u+WxH7Qq38R8td8CJ1Jfa7wDeHmGphcDwFrk20Z3\nA5tibQidcCT2pPFH6m+8VZ9avHTAAkkzFmRoASyDNcDdnrk/2JPPe7Fz6LKk92as5liFS7Fz8Szg\n6YbX9sEaYttlImaHrIs1uq0DrEbnT0cTsOv5uYr73Ya1AfyB+spFjgU1H/hkgxZUPwdml8oB9t1G\ngCMq6kynedytWp7wTMQu5C+k9XWwURWrsi92Qu/T8H8O+2E3gmZMq6DzcqzhtbB9Xg18LqM8l2BP\nKgNYIL4au9nkcBGjf7cqzMfH1/TQmZr+Doyy5LADdtNekNZfQ34jbDS+izV4FjeoAazhuyoHYse+\n00SFazL2GY0rHbU8+DKwDT7X3AtErJF/F6tB/ydmZQxgweZ1FXWOp3b3nJL0rsf8xHbZJGk0ztVU\nrFd93L8U+C/sO76Gmrdd1cObh4258H4se+JwrG3hVRV1AM5Nnz+X+ke9qumH52LWw0MZZfDW+Tnw\nTizoNhvIbd0m28bieswSm4v9dmC/3Ssr6vytVKYlMVvlb9RuPmPRqvEw9xH9Buw7FX/BrMOqYyLd\nlD7/rZjl+HnMfnpNq52acAx2Lp5P5/bat7HK1gXUWyLt2pnHYTeoC5q8lmP3vA+zVzbDfvdLsSez\ncyvq1BHRI38DtZMKzFPO8RAPaFifBvykosY3aD2iY9XH/WWwRrOCEayBqSqTsEf0XanV6HNHnjyX\nRU+iHK0VsRrdNXTma3rovDP9Haz42a14lkVzxnPabsp+9ETse21WYf+c1LmxeIb6fO1VyPtuRcXw\nnVgAz22Afy32mzcelxx7bRns+zVm9LQbyAuLKjf9sZGT0rIa1rZ2CFZx6aidImIg9zqpGnma6jWx\nIYfPLfMwlodc8B7gLxk6X8QaA4uUyBnY1Ho5zMncr5HDnXUavchcVgRehj2VFVyaoXML5iNPTnqf\noPNONM9jN9HZWMN+Oyzo8DOb8S0sU+QlWEPje8iz/MqJCoeRn6gwlLHPaMzqcP+iT8VwhzoF38cS\nJh4CfodlGOWmDr9ARGtlL6ymuQnWAFScVGdU1Ck/Ck3Epp47g2rziG6NNXDuTPNgUjXbZAaWfrQF\n8Djmb+9Jbxs67m6yLSdrxZPVsAbYEexG9ddMnQ9gAXdt7GLZDPNMG7OG2mFZLLOnqNn9Cuu4UjUT\nqpwaOBE7z7cCNm9z/8uBN1Jv0RSM0L5F08gGmP0I1o5zW4bGJMzym09niQqH09zSzOn9uDaWyrxl\nWr8Us0ruq6izPnaT24hapSDnOjkHOya3pLJcgiV2dETEQA4+J9VQ6f/ngHuon72oHY7ATqo5NA/k\n+2WUCywoTMRS0XJYGtgfuzktnbaNYP5bVVYu/T8Fu3GuhPmbVejU+y3YFUuHLDIU/gNrVzizog7Y\no/2mWPDfwpezAAAcMElEQVSeibW5/DfWSaxXzKF2nJ7DbuInkH+z6oTGht8iHhTleyxTcz06ewI6\npFSGpbHUylvJO79/DfwQ+EFa3zMt21TUuRyLBcdg9tZ+2I2r6nVSsAE2b8NBSWetTB0gViCfinVC\nKE4uj5MqCgeX/m92Q6iai3oWdnPbE7vZ7JXWvcZHuR7zKXMpe7/tWgYFNwFvoRbYVsFu5jmNeNdi\njeTzUln+iQWEDStoeDd2ebIiVuMsW6RVGgQXUKv5roM9JRa691DdivR8AiqzFGbZ5PTwbdZom9OQ\nW1wT5aSCnOtke6yx801Yu93vscbOkyrq1BHJIz8dayS5Hp9Mg52xnORVqb8p5Dx6djqw1PLp/S/H\naojnpzJtR16u7npYzfldmP30I8xvy6HIzAELwK+jvo0ihxzvt2AC1pZQ8Cj5FY4/Y7/duVinmcep\nbmO1auzK8e5fggW8QerPpaq1zS9h/u+fyM+3H0x/T8Ae+S9M628n76nlQGpPQG+m9gTUKcuSP/fv\no1g684+w82h38vpM/BO7Lv6IJVI8QF4K4duwJ5Rjk4YLkWrk3szHAmWOLdPIlWm5GbtoCu+uaieO\ny4B3ULNUlscunjdV1Lkay62/DBs06UEsGybH1x5m0Uf9r2M501Xo1Pst+BpWWyouvN2wWnrO4Etl\nhrCb+C+ppaFVYTngH1hqLNhFPYXqAx5diV3I11Hf2aVKT0yw8UheSd53aaRZGmVOaqXHExDUp1hO\nxG5+X8QaZasymPYrMmCuwMbKqTpq4euxWDINu4lOBY7GatRV8WoDCs1O1HeymQbsmKFzuU9xAL+B\npe6g3jucQvWACVajG8AC5d1YDfbDHZeuM+Zg3aFPxmp4n8UuwKpMwG4K38Qsp0797BUxW+a12M0l\n1zK6ivoUseXJy1qZl/n5jXiOR3IRllAwiD35fhZrzM0p04rYk9hl2JPnha12GIXB0rIWPmOcRGFX\nzLY6FUvRXADs0qloxBp5M/+q6ABTheOwO9+55HUEKHMI5t9fQH0Hhaq+/WexGubZ2LHfEctt/2pG\nmTql8O0b7YHiaaOqbx8RD/uhoNk5mHNefhmrlecMgVpmU2xIVI/xSAaw4Fs8GV6Ktb100i41RPUn\noLF63VYpT7n23swCq9qetCk2Rs4g9ZZY1bYbzzagF4jkkRc0u7nkeLYrYI/CuR0ByngMLDUBuwP/\nErtgRrAgUyWH9OAm28ppWlWCb+Hbd0qrx90q7QjN0unKOjltG7thKZ8e9sPfsRp9kVf8Ouz8qspB\nWEB4hlpnsJzvdyrWBtQ4HklVJmO/4Z4Z+xY0C8BFyuFytB+AR2sfg+rXW/E7bYFZOz/BrpNdqA2R\nUYUfYhW6xjFbquLZBvQCEQP5dVhA+l/sC36MvIkOZjmW6WAsIHQ6sNSFmO+Y833AL/hCbRCglens\ne11HfecdaJ4DPBaFbfFlrBGonC62RmbZbsEe9TsdNgAsAJ9JrYFqddof9bKM10iDf8PyozvlOWwg\np6Wof9qsQqsADO0nKgxmfn4z5qS/H8FyyIub5nfISwx4GJ+xdX6J2VblNqBfOOiGYzngKKzh5Fqs\n1TunddhrgCrwG1jqFPIGAGvkVCxAFQxg3nQOd2EB6h10VjPwGmO5WeeR3JEdN8UC70V0PtsQmFf7\nSiz9LNe39RoU7hjs2tgc8/2LJYfTsCERPo9VWg7GhmjuFWdjGWweM5jdQf2EEAPktUtti/XK3IPO\n5hLwbgN6QTQqy9LZFEheA1SB38BSd2Cpg/dQ+245PpuXXwt2sbwFS3/bFOv9ejKWFVGF32G1upOx\nx9CccajB/OP/xdJRwdLFPoY9IlfFczjUZbHgtg7W2PwyrLLws4o6301l2ZrOBoUbpnktOMf/n53+\ndjpE607YNVKMSTMN88qrDgi1DdbhZjNq52NO8CXpzKbWxX6rtD6nos4Psd/7FuqtldxOgX3PFljK\nUtELc2Py5hQshuEse9C5GQOzmiz7ZuhMx4Ltx9Myk7z5Gm+k3pccwGci3q2xGuyTWLCrGjw9ph5b\nF6s1P5KW88h/5PYcDrUY3qF4wluWvBmnbmj4S6ZON1g+Lbk0+x6dZOlMw7Kx7sMyhPYj70lodSyx\n4F1YAkQOd+BT8d0Zewp+is5mYwrP1Vitp3yi5zRO/AKr/RY676H3XtSBWO3wi2m5mbzemPtgJ9aX\nME/5DvLHWl85les6zMN/N3axvI68MWA8ph7zwtN+KNo1Og3AV2GN94XOKuQPmrQdll//hdKSw6tS\nGe5Ny3VUzyGH5hZYbgVjJaxd4lrsxr47NjT1cEWdIuV0k9L/M6jePngyPlPGzce65/c9RU/HTi+Y\nGdg4C09jQeVy8mt262Pd4m/F8rbvJm+gm5up99qL2cZz2Air1R9A9Q4XZe7EAsDaTV6r0itzY8z3\nuwt7gioC5hpU63zxLawRr7x8GatNVWUYe9RvXHK4Ahv3ozgvZ5DXK3cvLDDdj6Wd3onlFlfle1hb\nyX3YGCB/wDzcHIqemAVD5OXIn4zdPGdglahvkje65jlYJeAzWG26TNVEgd9jDZ3XpeUZ7Df8E9Um\nvbg96dyJXbM3k9d249m/JTRnYaO73YANvnQI8OMMnaLR5rPUGnH2J89HvhzzkW/CrJDZWG24KjdT\nG+SK9L+HJdIJHg1KYFbMPtj4z41UeVo4AWvf+Dj2tHIJFgzOx7o194ptU1kexjIO7iHPjwarkR2Q\nltzaWXHelNP8codpaFZRyqk8eSUqdDo2S5mzqa9Jb4j1op1Bte84mJbpaSnWq3IclgrZaaNpHREb\nO1fBvuxbsPJdhF3Qj1bU+RFmDxSDHW2HnfzTsZvFURW0vAbM+X+Yv17uEDSH/GnaPHg5drMcpL6j\ng+fFVIWrsBt5Mc/jZCxAbYkd/yqBbxpWW/2PtD6MWVq5DbErYxOfTMBqejlpm+W2jaJRcSHVJxgp\nhmn4PRYMHsVq5eu12mkUzsVqq6elMu2J2RDeo0R+C7tBt8MWWHtJ+ZysMg9pwS0saokU26omCMyk\n1gfkMvJudnPwHUkViJlH/jA2OW2nrI0F2r+l9cMxD3gr7KStEsi9Bsw5BqvVbUleh6BucCaW2XEi\ntXFEcnLVt8SO8SD1F1/V8V+mYTW7IvNhOSz4PUf1sb9PwoL/LliA2ht7/M9NG9uK2m+3BGYBVOV6\nFh1p8MG0fID2rYML0r5fK+1zQkZ5wDKWjqDWWe4y8oaMHYstx34LYH0IXooF2n+XtucG8u9gT/UT\nMBvrVizDqsrN80Ds9ykqYT/AjnfVXP6DWbRS2sux/7vGDOwkfQQL6ueR90Vvp34S36WopTC1GzxP\nS38/hbXmr43dUc+m2vRckcntnNTIHdioeatiNddiqcr+WBvEnLTcjV1Ay2JBqwpelgFYMLgIqzm9\nD+vYkZNNdQL13uy22GQjm9Oe516My1G+JqZQbRLwquQMVtWMdq+72/BzC5bBnjjPScshadtEqmXo\neLVvXYH1Oi/YkLxkjvBchdWclkjLXtTPc9kun8dOnMMxT/u69P+yWE5oO9yKNdbdRG0G9pXSkjsb\nexSK7zIby9Nenc5mms/5jUZjDWrpYrm9OsFsh/LIkluSP6v67dS3J0ykNut8FZrNY1kEhHZS9Zql\nL3Ybr89qV+dMOvvdu4FX+9Y7sTag5TD76hby2u3qiGitLE2tJgz2CPNfGTpfwmpNb8QehT9ELbe8\n3XElvov1Dn0pi9Zcez0dWqc0dqs+pOH1drtVb5L+zsVqzGfT+cznxXgUkzHPdz3y5tn8MNabtqit\nPk5e/j+YrbYOtZTMddK2qvwFy0cvP+o/hFl37Yzh8Sg2tvq6LDrZRa8nuuiU4vssh1WirqbzAcG8\nLL+TscpKuX0rZzKIn2NOwcXY93w3+Z2dXiBiY+dRmD9a9OzbDfMCj07rvZgp6Lv0fpjYbrE0ViPf\nEgskv8NshHYHhBqm9UTJVTM7jsJ+81up90erzB7fOLhY8Uj8d/JHdrwU6/l6ddJ4Pdbh6CmqBZlV\nsMDyxrR+OeZPP0l7N4clsbaf04D3U38N5/ZaHYsbsN7RnTKL1umIQw3rjedVzne7A8tHv5768ymn\noXoTam0kl1HtSaXRntoayym/h7xe4nVEDOQL8BsBTYzNmVgw+gF2PrwX8/A6HiM5kzuxzKDcAZzA\n7KLGGZnAbgZXY3ZdVYZavOYZQNvN7HgJrSckqJIhMhZjBfLyk0ExYFp5PacmvTp2s3weu2E+mKEB\nVot+Q+a+4Dev6Szqb0yFRu4kNeHZldqQnl/AGig2Gf3tokNubXPbWKyMBY8bsNrPcdQPVtQuv6Cz\nbuJlLmvQWj5ty2E5asMpvxwLTt2Y8GBx+9HtMGuM14fSUuRIb48dn9PJy/1/P9aJ7JS03IM1gudw\nJGb55fbuXYA1uC/AbiqPpuX5tF2MQtGAsCX22L4dvg1pop4fUD8d22bUt1G0y6+xBuZ1saemz6Vt\nVTkbe+T8P+zGUPT0zMFrRiawm9My2NyRC7AnmXYbzauwOAP5BdSPCtm4XpVmGVA5WVF3Ul8JWInq\ng7gVDOPTu/cEbITQgrdj52hVtsT88bvorJd4HREbOwsfazvs4P2MvF6Uoj1eh/m0f8Ye8dbBgt3N\nVBuZcTXqf6cvkzde9/ksGkRyx2A/FbNSyg1UuY+wE7DhHvbH0g6PJs5gV7kUE0rvhP1+hb22B3lj\nuC+DpQ/PT+svpXlP37F4hFr/D9L/uWPmD2Xu18jmWBpswS+ong4LNoxCM8++IyIG8vuxO9022GPR\nFPy6kYtFeZuTzkVYAPhJWt8lbavKHKfyAHyFzmZkamRzLOOpeMwf7+flcPr7Derty/PJq0l/Eqvt\nFpbDIPDBDJ35WOroeWn9XVgK8MG031i9N/ZkWexTkDuV4QPYU2a5Len+ihpgiRzug/dFDOS7YsHl\na9iXXp289EPRHgucdD6I1TQKW2YiliXyQdqbyuxMLPg3y83NGbO9oBgsqVMOAg7D2mxuwWqeuQNw\nteK4Huh41aR/iQ0w9/K0fjt5jdbz01IE4PPS/1VmVyrK7zWr1h5YtlHRm/fStK0q5TTd8lzCHU3w\nHjFrRYw/JmC9XquMctjIGlitZ7DJayNYg1dkxsoS8crs6EaGyNuwp+DGmvSvKup4Tb4xFlUyclai\neZf4jn3pBtotU7Obf8djG0WskYvxSTEfaS7FXJgbsOij54exXP7IjDWOiJcf7e1rg19N+mTs6aeY\nkOQBbIA670De7pgtYDe+t1MbKG1D7OnPY2zxnDINO3+uEK54zUd6BfCfpfVPYYEmOu16716ZHV46\nYDXpz1MbdOtlWLJBbpm6PftRlXaOrnSJ76BMh1A/xPaV5PUQFaIr3IG1wv+JzgbeX5naGClfwcaO\nXrLlHjGoMiDUjNL6S9O2qnjpgN80dl6Tb4xF1QbrnbCAeTO1pw5vchvRl8KhM5msFeFFldlWWvEI\n5vP+Bhsb5z34NFZFwSuzw0sHLODuik2nBvmTns/Gnp7WwuYDeCNjdybqFo1d4qdiDagH4NAl3pFl\nsb4JHaFALrxYgNWi18O80lWolmXwN+oD9pJY56IikI+V9dJr2s0S8fKjvXRI+5VH9puRqXURln1R\nDPH8CfLzv1vRzrG+jvrzqVhvNh7Q4ioT1GdlTcSGWvhipx+urBXhxWzMg3w5FmDWxB7Z39hin0Ym\nYrW5TrJfvPHOEvHK7PDMENkW82s3xHodFjXpnPTKNamNNFgEzHZHrvQ+1pOxTmGdTFTjXabB0v/P\nYQ3UVWeHWgTVyIUXO2EDKxUNXvdTfcyU57FhPl811hsXI95ZIl6ZHZ4ZIl416dFGrmw3kHsf6+ew\nG91S5D+teJdpQWY5hFgsFI1aRaPPsuQ1dnplv3jjnW3SaWaHd4bImlhNfCtsjtP/aP32ptyJBc1O\n8czIOQ0bPbGYgP1g7Emml2VyRzVy4cWZwPewSRw+iE2HdmKGzmbYMLP3UGt066RnpxdevR+9/Ggv\nHei8Jl0wH2vb6GQIYvA71kWZ5mO2XZU2m26WSYjQbAt8PS3bZGoMjrL0mrdh3v0labmHvEydbdP+\nD2OZHfdQffINTx3wq0l7jVzpdazL5EyW3u0yuaHGTuFJMRnACGa15E4G0Cz7JcLYz1PwyRJZmZof\n/XvyMzu8dH6BpR8uzNy/YFaTbbmTJngd6y2wJ8Ni8vSNsWkfP9rDMgkRFq/JAGZjmQLF+NNrYsPs\n9hqv3o/g40d76niOAe+B57G+GmvwLLcl5Mxa71kmd+SRCy8+hWWtFAMUrYT1pvt+RR2P7Jdu4JUl\n4uVHe+lA52PAe49c6T1mS2M663MZGotrHBkhesoV1PusS6VtVfHKfvHGK0vEy4/20vFgjfR3cJSl\nKp4ZOWdhTy03YA2xhwA/7nGZ3FGNXHjhMRkA+GW/eOOVJeKV2eGh41WTLkauXNBBWcp4ZuR8BOt1\nuSb2dHcR8LEel8kdBXLhhcdkAGCD7m+LNbytj/mSFzuVsRNm4zOOyD+AedhYMkUgyBn7w0PnwPR3\n+4qfPRqbY976hthNZhI29ELV4RVm4zdmy8N01rOzG2VyR1krIiJe2S/eeGSJzGqyLSezw0vHk+uw\ngbfOwOaC3QfL8jg0Q8srI2cGcCx2kxnB7L5PkjexhFeZ3FEgF154zXzyfuALJb0hbFChqo2m3aCT\ncUQi41WTvg4bb+cmarbMPPLG//Y61lcBx1PzxXfDZvJ5Qw/L5I6sFeFFeV7VKcDO5GUHeGW/eNNp\nloiXH92NuU2Pp3lNuip/xxpgbwSOxp6kciqLnhk5S1ObRxZsrJScOYA9yyTEuOKajH28sl+86TRL\nxCuzwztDBGoZGeXsoHkZOtOxwLkC5ikfg3XsqopnRs5R2KTZg2n5NHAkMJCWXpTJHdXIhRfli2Ii\nVrPLGUPcK/vFm06zRLwyO7wzRMCvJr0jliHyDyyQgzWotjtWd4FXZg9YLXqERSfdKLa/tAdlckeB\nXHhRHgnuOaxLfU7PTq/sF2+8sk28/GgvHYC9sZvvAVhD4FqYNVaVWSwatPdrsm0svI41+I3T41km\ndxTIhRefxtKznsIaK18DPJ2hM9uxTJ502vuxwMuP9tKBzmvSe2ApfutSPxHD8tTaOqrgdawB9h1l\n31Mr6niWSYiwFI1vWwLD2DgUV2XozG2y/NahfFHw8qO9dKD5xMFVtKZj2UW/x8Z9GUrLJvS+sng8\ntfFjTsTSDs/qaYm6QK8Psugfipb87bCBhX4GfClDxyv7xQvvLBEvP9pDx6smfU9aNhvrjWPQjYyc\nAxrWpwE/6XGZ3FEeufDi51gX6G0wW+WfWI18Ywfta4BNHXRyWANrYBwc5fUFFfWmA3/FfO1PYp72\nt4E/9kBnOhbEj8SssSIeLMRuEFVvoDsnrVVLWlUmzvY+1s1YEvgD1mu4HRZHmYQIw7LYhfyytL46\n1tW+KgOlZWVsQP87PAoYhAPb3La4dDyZD2zQ4zI0ckFp+TnWCH9UT0skxIuAu0vLXdggR1v2tETG\n5tiTwd+xWc+fxxp2q9KpH+2tA3YDvgv7PgvTkvPdvMaN9zrWUPPrh7DxUdYKUCZ35JGLaHhlv3jT\naZaIlx/tnSEC5rFvB9yWuX/BtZj/fC7wTNo2gk1cUQXPjJxrsWycfyeN1wIPYcG4V2USou/xyn7x\nptMsEa/Mjm5kiHjVpOek5eSGpSqeGTnXY5Mkr4n52WcCP+xxmdxRjVxEwyv7xZtOs0S8Mju8dMp4\n1aRnOZXHK7OHtN/TWOe0bye9nAkhPMvkzsReF0CIBu7H5o7cDWucmkKM87Tc+/Fp8ns/evnRXjpg\nY6P8A2uc3i4tOWOUrw2cg40B/jDwU/I8aa9jXbA5sCd2PkHe+eRdJiH6Gq/sF2+8skS8MjsiZoj8\nGuuSv0RaZpE3KYhnRs5WWI/MT6f1GeRNLB0xS0gIURGvLBEvP9pLB/xq0s0sixwbwzMjZyy+1eb7\nFmeZKiOPXIjWeGeJePnRXjpgDZI/BHZN63umbdtU1HkUsyB+hPnHu1NtFp1uZOSMxViprb0oU2UU\nyIVozRXAX4BVgK+zaO/HqpT96DJVA7CXDth3K2eXzMF6i1ZlPyxNrxhq+Iq0rV28j7UHEcskhBCL\n8FusJj0Jq9zthQ3XWpVTgBVL6wPASR2Xrrs0s0yEEH2KV5aIlx/tpQOWm35BSes8YJ0MnWaecY6P\n7JmRMxbtBvLFWSYhRJfwyhLxyuzw0gG/mvSN1M8UNUDzUQPHYnFm5Mxq830Rs4SEEBXxyhLxyuzw\n0gG/mvQ+2ABnXwK+nP7fJ0PH41iXB8s6v8l6L8rUNdTYKUR7eGWJdJrZ4a1D2n8AeCytD2B+eVVO\nxbqyb40dm52wWeer4nGsv5H+7gSsBvwA+557YGOt9KJMXSNMF1MhgjMn/W2c3qtKVgaYH308tS72\nVwAfB+7tkQ5Yrfmz2IBQE7CJFL5C9enQvJiT/nZ6rMFuLJu0sW1xlkkIMc7x8qO9M0Q2wm4EB2AT\nOvcLt2G9OQteSuejPAohxileWSJefrSXTkQ8M3Lehj2lXJKWe4C39rhMQoge4ZUl4pXZ4aUTEc+M\nHLCB1zZOy1JByiSE6AFeWSJemR1eOhHxzMhZFvg8NiQy2GBs2/W4TO5EGB5UiPFAkSVS7v2YkyVy\nKvBubOLkB7GsipxGRS+diHgda7ChB54BtkjrD2ANub0skxCiR3j1fhRj43msi5l9yj04c2rS+v2F\n6APG4zgi4xXPY30FsDS1QD4DuLrHZRJC9Ih+zhKJhuex3hbLVnkY6zx1D/DmHpfJHfXsFKI9vHo/\nirHxPNYXYRMwFx2nPkGetx3691cgF6I9vgFcyaK9H4U/3sd6KeBxLN4VnZ0u7XGZXFEXfSHaZyNq\n44j8lrxxRER7eB3ro7CJvG8F/l3anjO5tH5/IYToAXeS3wlo3KA8ciFEPzMfWLLXheg28siFEP3M\nP7Dskt8A/0rbRrBGz75BgVwI0c+cz6ITSTQORSuEEEL0FmWtCCH6kTOxFMFmI0KOAK9evMXpLgrk\nQoh+ZA1sgKzBUV5fsNhKIoQQQgghxIuZzYFrgL8DzwLPA0/1tERCCCEqcR02mcQN2Ngo+wFH9rRE\nQgghKlGMR35TaVuYUQu9UB65EKKf+TvWRf9G4GhsNqW+S/JQF30hRD+zNxbnDgCexma+37mnJRJC\nCFGJA9vcJoQQIig3NNkmj1wIIcYBewDvBdbFJk0uWB54tCcl6iIK5EKIfuQK4C/AKsDXqTVwLsQa\nPoUQQgghhBCLg52Bu7DenAvTop6dQggxjpgPbNDrQgghhMjn8l4XYHHQdz2chBCixHHAasC5wDNp\n2whwds9K1AWUtSKE6GdWwObt3LZhe18FciGEEEIIIcKyNnAO8HBafoqNtyKEEGKc8GtsDPIl0jIL\nuLiXBRJCCFGNZr04+65np4axFUL0M49iQ9lOwpI79gIe6WmJhBBCVGI6NmhW4ZGfB6zT0xIJIYSo\nxCnAiqX1AeCkHpVFCCFEBs3GHu+78cjlkQsh+pkJWC28YADzy/sK9ewUQvQz3wCuBM7AgvouwFd6\nWqIuoLFWhBD9zkbA1tgYK78Fbu1tcYQQQgghhBBCCCGEEEIIIYQQQgghhOgH/j8r1O4qCHjPlwAA\nAABJRU5ErkJggg==\n",  "text": [  "0x54c35c50>" 0x178c1590>"  ]  }  ],  "prompt_number": 302 59  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "For the impure ones the pattern *contained_species*  is similar." higher compared to *contained_genus*. What would be interesting to see is whether we can differentiate between contigs that are impure because of rearrangements and those that are chimeric."  ]  },  {  "cell_type": "heading",  "level": 3,  "metadata": {},  "source": [  "Analyze kmer chimericity and kmer erroneousness"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "chimeric_kmers = cpurity_lca.ix[:,range(3,12)].sum(axis=1) > 0\n",  "error_kmers = cpurity_lca.unknown > 0"  ],  "language": "python",  "metadata": {},  "outputs":  [], "prompt_number": 280  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "print \"Numbers == # of contigs > 500\"\n",  "print \"Pure: {}\".format(pure.sum())\n",  "print \"Impure: {}\".format(impure.sum())\n",  "print \"Has one or more chimeric kmer: {}\".format(chimeric_kmers.sum())\n",  "print \"Has one or more erroneous kmer: {}\".format(error_kmers.sum())\n",  "print \"Chimeric or erroneous kmer: {}\".format((chimeric_kmers | error_kmers).sum())\n",  "print \"Chimeric and erroneous kmer: {}\".format((chimeric_kmers & error_kmers).sum())\n",  "print \"Pure and chimeric: {}\".format((pure & chimeric_kmers).sum())\n",  "print \"Pure and erroneous kmer: {}\".format((pure & error_kmers).sum())\n",  "print \"Impure and chimeric: {}\".format((impure & chimeric_kmers).sum())\n",  "print \"Impure and erroneous: {}\".format((impure & error_kmers).sum())\n",  "print \"Impure and erroneous and chimeric: {}\".format((impure & chimeric_kmers & error_kmers).sum())\n",  "print \"Impure but not erroneous nor chimeric: {}\".format((impure & ~chimeric_kmers & ~error_kmers).sum())"  ],  "language": "python",  "metadata": {},  "outputs": [] [  {  "output_type": "stream",  "stream": "stdout",  "text": [  "Numbers == # of contigs > 500\n",  "Pure: 46449\n",  "Impure: 5771\n",  "Has one or more chimeric kmer: 2862\n",  "Has one or more erroneous kmer: 2902\n",  "Chimeric or erroneous kmer: 5713\n",  "Chimeric and erroneous kmer: 51\n",  "Pure and chimeric: 0\n",  "Pure and erroneous kmer: 1\n",  "Impure and chimeric: 2859\n",  "Impure and erroneous: 2866\n",  "Impure and erroneous and chimeric: 51\n",  "Impure but not erroneous nor chimeric: 97\n"  ]  }  ],  "prompt_number": 281  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "Odd that a 100% pure contig has an erroneous kmer. Probably a rounding thing, since the contig is very long:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "cpurity_lca[pure & error_kmers]"  ],  "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",  "
max_aln_strainmax_aln_puritycontig_lengthspeciesgenusfamilyorderclassphylumsuperphylumsuperkingdomdomaincontained_speciescontained_genuscontained_familycontained_ordercontained_classcontained_phylumcontained_superkingdomcontained_domain
seq_id
NODE_243462_length_21780_cov_16.111202 Rhodopirellula_baltica_SH_1 1 21810 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
\n",
  "

1 rows \u00d7 21 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 282,  "text": [  " max_aln_strain \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 Rhodopirellula_baltica_SH_1 \n",  "\n",  " max_aln_purity contig_length \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 1 21810 \n",  "\n",  " species genus family order class \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 0 0 0 0 \n",  "\n",  " phylum superphylum superkingdom \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 0 0 \n",  "\n",  " domain contained_species \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 0 \n",  "\n",  " contained_genus contained_family \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 0 \n",  "\n",  " contained_order contained_class \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 0 \n",  "\n",  " contained_phylum \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 \n",  "\n",  " contained_superkingdom \\\n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 \n",  "\n",  " contained_domain \n",  "seq_id \n",  "NODE_243462_length_21780_cov_16.111202 0 ... \n",  "\n",  "[1 rows x 21 columns]"  ]  }  ],  "prompt_number": 282  },  {  "cell_type": "heading",  "level": 4,  "metadata": {},  "source": [  "Impure contigs venn diagram"  ]  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "Let's make a venn diagram of the impure contigs and the kmers that occur in them:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "# (100, 010, 110, 001, 101, 011, 111)\n",  "plt.figure(figsize=(5,5))\n",  "v3 = venn3(subsets=(\n",  " (impure & ~chimeric_kmers & ~error_kmers).sum(),\n",  " (impure & chimeric_kmers & ~error_kmers).sum(),\n",  " 0,\n",  " (impure & ~chimeric_kmers & error_kmers).sum(),\n",  " 0,\n",  " (impure & chimeric_kmers & error_kmers).sum(),\n",  " 0),\n",  " set_labels = (\"Correct\", \"Erroneous\", \"Chimeric\"), set_colors=('g','r','b'))\n",  "plt.title(\"Impure contigs\", fontweight='bold')"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 283,  "text": [  ""  ]  },  {  "metadata": {},  "output_type": "display_data",  "png": "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\n",  "text": [  ""  ]  }  ],  "prompt_number": 283  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "So it seems that contigs with erroneous and chimeric kmers are occuring in an approximately equal ratio. The number of contigs only consisting of correct kmer is rather small. How is this when looking at the number of kmers instead of the number of contigs?"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "print \"Number of kmers chimeric: {}\".format(cpurity_lca.ix[:,range(3,12)].sum(axis=1).sum())\n",  "print \"Number of kmers erroneous: {}\".format(cpurity_lca.unknown.sum())"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "output_type": "stream",  "stream": "stdout",  "text": [  "Number of kmers chimeric: 219020\n",  "Number of kmers erroneous: 89314\n"  ]  }  ],  "prompt_number": 284  },  {  "cell_type": "heading",  "level": 4,  "metadata": {},  "source": [  "Correlation chimeric kmers and contig puriy"  ]  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "There are way more chimeric kmers i.e. there are more chimeric kmers per chimeric contig than erroneous kmers per erroneous contig. Due to the way purity is defined there might not be a direct correlation between number of erroneous/chimeric kmers and the purity of the contig as determined with nucmer:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "plt.plot(cpurity_lca[impure & chimeric_kmers & ~error_kmers].ix[:,range(3,12)].sum(axis=1) / \n",  " (cpurity_lca[impure & chimeric_kmers & ~error_kmers].contig_length - 31 + 1),\n",  " cpurity_lca[impure & chimeric_kmers & ~error_kmers].max_aln_purity, '.', alpha=0.2)\n",  "plt.xlabel(\"Chimeric kmers (ratio)\")\n",  "plt.ylabel(\"Contig purity (ratio)\")"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 286,  "text": [  ""  ]  },  {  "metadata": {},  "output_type": "display_data",  "png": "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\nMcYYY0wh8v8BJlih5bFrM+IAAAAASUVORK5CYII=\n",  "text": [  ""  ]  }  ],  "prompt_number": 286  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "There is quite a clear correlation for the higher purity. But it is very odd that contigs with 40% kmer chimericity give more than 90% contig purity based on alignments. Something must be wrong here:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "kmer_chimericity = cpurity_lca.ix[:,range(3,12)].sum(axis=1) / (cpurity_lca.contig_length - 31 + 1)"  ],  "language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 295  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "cpurity_lca[kmer_chimericity > 0.4]"  ],  "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",  "
max_aln_strainmax_aln_puritycontig_lengthspeciesgenusfamilyorderclassphylumsuperphylumsuperkingdomdomaincontained_speciescontained_genuscontained_familycontained_ordercontained_classcontained_phylumcontained_superkingdomcontained_domain
seq_id
NODE_258586_length_476_cov_8.827731 Methanococcus_maripaludis_C5 0.9625 506 234 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0...
NODE_262781_length_501_cov_4.936128 Methanococcus_maripaludis_C5 0.9643 531 229 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0...
\n",
  "

2 rows \u00d7 21 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 296,  "text": [  " max_aln_strain \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 Methanococcus_maripaludis_C5 \n",  "NODE_262781_length_501_cov_4.936128 Methanococcus_maripaludis_C5 \n",  "\n",  " max_aln_purity contig_length species \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0.9625 506 234 \n",  "NODE_262781_length_501_cov_4.936128 0.9643 531 229 \n",  "\n",  " genus family order class phylum \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0 0 0 0 0 \n",  "NODE_262781_length_501_cov_4.936128 0 0 0 0 0 \n",  "\n",  " superphylum superkingdom domain \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0 0 0 \n",  "NODE_262781_length_501_cov_4.936128 0 0 0 \n",  "\n",  " contained_species contained_genus \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 7 0 \n",  "NODE_262781_length_501_cov_4.936128 22 0 \n",  "\n",  " contained_family contained_order \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0 0 \n",  "NODE_262781_length_501_cov_4.936128 0 0 \n",  "\n",  " contained_class contained_phylum \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0 0 \n",  "NODE_262781_length_501_cov_4.936128 0 0 \n",  "\n",  " contained_superkingdom contained_domain \\\n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 0 0 \n",  "NODE_262781_length_501_cov_4.936128 0 0 \n",  "\n",  " \n",  "seq_id \n",  "NODE_258586_length_476_cov_8.827731 ... \n",  "NODE_262781_length_501_cov_4.936128 ... \n",  "\n",  "[2 rows x 21 columns]"  ]  }  ],  "prompt_number": 296  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "kraken.ix[\"NODE_258586_length_476_cov_8.827731\",:].lca"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 303,  "text": [  "[(267377, 203), (39152, 4), (267377, 32), (39152, 3), (402880, 234)]"  ]  }  ],  "prompt_number": 303  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "tax_names[tax_names.tax_id == 267377]"  ],  "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",  "
tax_idname_txtuniq_namename_class
429126 267377 Methanococcus maripaludis LL synonym
429127 267377 Methanococcus maripaludis S2 scientific name
429128 267377 Methanococcus maripaludis str. S2 equivalent name
429129 267377 Methanococcus maripaludis strain S2 equivalent name
\n",
  "

4 rows \u00d7 4 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 306,  "text": [  " tax_id name_txt uniq_name name_class\n",  "429126 267377 Methanococcus maripaludis LL synonym\n",  "429127 267377 Methanococcus maripaludis S2 scientific name\n",  "429128 267377 Methanococcus maripaludis str. S2 equivalent name\n",  "429129 267377 Methanococcus maripaludis strain S2 equivalent name\n",  "\n",  "[4 rows x 4 columns]"  ]  }  ],  "prompt_number": 306  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "lca_rank_kmer_count.ix[\"NODE_258586_length_476_cov_8.827731\",:]"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 292,  "text": [  "class 0\n",  "contained_class 0\n",  "contained_domain 0\n",  "contained_family 0\n",  "contained_genus 0\n",  "contained_order 0\n",  "contained_phylum 0\n",  "contained_species 7\n",  "contained_subspecies 0\n",  "contained_superkingdom 0\n",  "domain 0\n",  "family 0\n",  "genus 0\n",  "order 0\n",  "phylum 0\n",  "species 234\n",  "superkingdom 0\n",  "superphylum 0\n",  "correct 235\n",  "unknown 0\n",  "Name: NODE_258586_length_476_cov_8.827731, dtype: int64"  ]  }  ],  "prompt_number": 292  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "It seems that it is correct. Blasted the contig on NCBI and found that the mismatches are distributed over the entire alignment which could result in a lot of different kmers. Apparently this contig is just very chimeric."  ]  },  {  "cell_type": "heading",  "level": 4,  "metadata": {},  "source": [  "Correlation erroneous kmers and contig purity"  ]  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "Probably a similar problem with erroneous kmers:"  ]  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "plt.plot(cpurity_lca[impure & ~chimeric_kmers & error_kmers].unknown / \n",  " (cpurity_lca[impure & ~chimeric_kmers & error_kmers].contig_length - 31 + 1),\n",  " cpurity_lca[impure & ~chimeric_kmers & error_kmers].max_aln_purity, '.', alpha=0.2)\n",  "plt.xlabel(\"Erroneous kmers (ratio)\")\n",  "plt.ylabel(\"Contig purity (ratio)\")"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 293,  "text": [  ""  ]  },  {  "metadata": {},  "output_type": "display_data",  "png": "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\n",  "text": [  ""  ]  }  ],  "prompt_number": 293  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "kmer_erroneousness = cpurity_lca.unknown / (cpurity_lca.contig_length - 31 + 1)"  ],  "language": "python",  "metadata": {},  "outputs": [],  "prompt_number": 297  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "cpurity_lca[kmer_erroneousness > 0.4]"  ],  "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",  "
max_aln_strainmax_aln_puritycontig_lengthspeciesgenusfamilyorderclassphylumsuperphylumsuperkingdomdomaincontained_speciescontained_genuscontained_familycontained_ordercontained_classcontained_phylumcontained_superkingdomcontained_domain
seq_id
NODE_201801_length_506_cov_54.616600 Treponema_denticola_ATCC_35405 0.977669 536 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
\n",
  "

1 rows \u00d7 21 columns

\n",
  "
"
  ],  "metadata": {},  "output_type": "pyout",  "prompt_number": 299,  "text": [  " max_aln_strain \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 Treponema_denticola_ATCC_35405 \n",  "\n",  " max_aln_purity contig_length species \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0.977669 536 0 \n",  "\n",  " genus family order class phylum \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 0 0 0 0 \n",  "\n",  " superphylum superkingdom domain \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 0 0 \n",  "\n",  " contained_species contained_genus \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 0 \n",  "\n",  " contained_family contained_order \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 0 \n",  "\n",  " contained_class contained_phylum \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 0 \n",  "\n",  " contained_superkingdom \\\n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 \n",  "\n",  " contained_domain \n",  "seq_id \n",  "NODE_201801_length_506_cov_54.616600 0 ... \n",  "\n",  "[1 rows x 21 columns]"  ]  }  ],  "prompt_number": 299  },  {  "cell_type": "code",  "collapsed": false,  "input": [  "lca_rank_kmer_count.ix[\"NODE_201801_length_506_cov_54.616600\",:]"  ],  "language": "python",  "metadata": {},  "outputs": [  {  "metadata": {},  "output_type": "pyout",  "prompt_number": 300,  "text": [  "class 0\n",  "contained_class 0\n",  "contained_domain 0\n",  "contained_family 0\n",  "contained_genus 0\n",  "contained_order 0\n",  "contained_phylum 0\n",  "contained_species 0\n",  "contained_subspecies 0\n",  "contained_superkingdom 0\n",  "domain 0\n",  "family 0\n",  "genus 0\n",  "order 0\n",  "phylum 0\n",  "species 0\n",  "superkingdom 0\n",  "superphylum 0\n",  "correct 295\n",  "unknown 211\n",  "Name: NODE_201801_length_506_cov_54.616600, dtype: int64"  ]  }  ],  "prompt_number": 300  },  {  "cell_type": "markdown",  "metadata": {},  "source": [  "As expected the correlation for chimeric kmers with contig purity is stronger, since there are more chimeric kmers incorporated per chimeric contig."  ]  }  ],  "metadata": {}