{ "metadata": { "name": "", "signature": "sha256:0cdba6bf725e74dd358ef7f3697c613e671e89b12dbe491cf8db58d4fe79d259" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Annotation via Blast" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#variables to set\n", "\n", "fa=\"../data/fa/Ahyacinthus_v1.fasta\"\n", "\n", "db=\"/Applications/BLAST/ncbi-blast-2.2.29\\+/db/uniprot_sprot_r2013_12\"\n", "\n", "sqls=\"/Users/sr320/sqlshare-pythonclient/tools/\"\n", "\n", "usr=\"sr320@washington.edu\"\n", "\n", "sp=\"Ahyacinthus\"\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "!head -2 {fa}" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ">contig27\r\n", "CAAAATTCCAGCACTCCGTTTTGCATGGTAAACTTGTCTTAGTAGGACACTGTGGAAGATGTACAGCGCAAGACATCACAGTTGCAAGCGCCGACGAACAGCTGTTAAACTCTCCTCTCATATTCTCGAACAAACCAAATATTTCTTCCTCTCTGTTGTTGCTAACCTTTGAATATATGAAGCTGGCATTAGCACAGGACTCAAAGTTTCCGCCGAGCAGTTT\r\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "!fgrep -c \">\" {fa}\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "33496\r\n" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Blast" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!/Applications/BLAST/ncbi-blast-2.2.29\\+/bin/blastx \\\n", "-query {fa} \\\n", "-db {db} \\\n", "-max_target_seqs 1 \\\n", "-max_hsps 1 \\\n", "-outfmt 6 \\\n", "-evalue 1E-05 \\\n", "-num_threads 3 \\\n", "-out ../analyses/{sp}_sprot.tab" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 123 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n", "Selenocysteine (U) at position 265 replaced by X\r\n", "Selenocysteine (U) at position 134 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 124 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 160 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 131 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 666 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n", "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 18 replaced by X\r\n", "Selenocysteine (U) at position 13 replaced by X\r\n", "Selenocysteine (U) at position 17 replaced by X\r\n", "Selenocysteine (U) at position 17 replaced by X\r\n", "Selenocysteine (U) at position 15 replaced by X\r\n", "Selenocysteine (U) at position 17 replaced by X\r\n", "Selenocysteine (U) at position 15 replaced by X\r\n", "Selenocysteine (U) at position 15 replaced by X\r\n", "Selenocysteine (U) at position 25 replaced by X\r\n", "Selenocysteine (U) at position 16 replaced by X\r\n", "Selenocysteine (U) at position 13 replaced by X\r\n", "Selenocysteine (U) at position 16 replaced by X\r\n", "Selenocysteine (U) at position 16 replaced by X\r\n", "Selenocysteine (U) at position 19 replaced by X\r\n", "Selenocysteine (U) at position 16 replaced by X\r\n", "Selenocysteine (U) at position 7 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 16 replaced by X\r\n", "Selenocysteine (U) at position 21 replaced by X\r\n", "Selenocysteine (U) at position 24 replaced by X\r\n", "Selenocysteine (U) at position 60 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 123 replaced by X\r\n", "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n", "Selenocysteine (U) at position 265 replaced by X\r\n", "Selenocysteine (U) at position 134 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 124 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 160 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 131 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 25 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 60 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 666 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n", "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 65 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 53 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 54 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 84 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 60 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n", "Selenocysteine (U) at position 63 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 84 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 84 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 666 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n", "Selenocysteine (U) at position 667 replaced by X\r\n", "Selenocysteine (U) at position 665 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 666 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n", "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 47 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 85 replaced by X\r\n", "Selenocysteine (U) at position 74 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 123 replaced by X\r\n", "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n", "Selenocysteine (U) at position 265 replaced by X\r\n", "Selenocysteine (U) at position 134 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 124 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 160 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 131 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 131 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 47 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 47 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 92 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 93 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 44 replaced by X\r\n", "Selenocysteine (U) at position 44 replaced by X\r\n", "Selenocysteine (U) at position 38 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 52 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 52 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 46 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 43 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 64 replaced by X\r\n", "Selenocysteine (U) at position 28 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 47 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n", "Selenocysteine (U) at position 667 replaced by X\r\n", "Selenocysteine (U) at position 665 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 93 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n", "Selenocysteine (U) at position 95 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 52 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 49 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 52 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 46 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 40 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 129 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 64 replaced by X\r\n", "Selenocysteine (U) at position 28 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 666 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n", "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 106 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 494 replaced by X\r\n", "Selenocysteine (U) at position 648 replaced by X\r\n", "Selenocysteine (U) at position 612 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 498 replaced by X\r\n", "Selenocysteine (U) at position 510 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 523 replaced by X\r\n", "Selenocysteine (U) at position 525 replaced by X\r\n", "Selenocysteine (U) at position 642 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 13 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 106 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 123 replaced by X\r\n", "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n", "Selenocysteine (U) at position 265 replaced by X\r\n", "Selenocysteine (U) at position 134 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 124 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 160 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 131 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 123 replaced by X\r\n", "Selenocysteine (U) at position 121 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 126 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n", "Selenocysteine (U) at position 265 replaced by X\r\n", "Selenocysteine (U) at position 134 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 124 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 128 replaced by X\r\n", "Selenocysteine (U) at position 261 replaced by X\r\n", "Selenocysteine (U) at position 160 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 266 replaced by X\r\n", "Selenocysteine (U) at position 130 replaced by X\r\n", "Selenocysteine (U) at position 263 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 122 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 133 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 144 replaced by X\r\n", "Selenocysteine (U) at position 131 replaced by X\r\n", "Selenocysteine (U) at position 132 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 387 replaced by X\r\n", "Selenocysteine (U) at position 387 replaced by X\r\n", "Selenocysteine (U) at position 388 replaced by X\r\n", "Selenocysteine (U) at position 387 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 642 replaced by X\r\n", "Selenocysteine (U) at position 651 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 387 replaced by X\r\n", "Selenocysteine (U) at position 387 replaced by X\r\n", "Selenocysteine (U) at position 388 replaced by X\r\n", "Selenocysteine (U) at position 387 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 637 replaced by X\r\n", "Selenocysteine (U) at position 690 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 47 replaced by X\r\n", "Selenocysteine (U) at position 43 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 129 replaced by X\r\n", "Selenocysteine (U) at position 129 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n", "Selenocysteine (U) at position 73 replaced by X\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "Selenocysteine (U) at position 73 replaced by X\r\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "!ls ../analyses/A*" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "../analyses/Ahyacinthus_sprot.tab ../analyses/Ahyacinthus_v1_CG.tab\r\n", "../analyses/Ahyacinthus_v1.tab ../analyses/Ahyacinthus_v1_CpG.tab\r\n", "../analyses/Ahyacinthus_v1_C-G.tab ../analyses/Ahyacinthus_v1_G.tab\r\n", "../analyses/Ahyacinthus_v1_C.tab ../analyses/Ahyacinthus_v1_len.tab\r\n" ] } ], "prompt_number": 10 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Number of matched sequences " ] }, { "cell_type": "code", "collapsed": false, "input": [ "!wc -l ../analyses/{sp}_sprot.tab" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " 11607 ../analyses/Ahyacinthus_sprot.tab\r\n" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "!tr '|' \"\\t\" <../analyses/{sp}_sprot.tab> ../analyses/{sp}_sprot_sql.tab\n", "!head -1 ../analyses/{sp}_sprot.tab\n", "!echo SQLShare ready version has Pipes converted to Tabs ....\n", "!head -1 ../analyses/{sp}_sprot_sql.tab " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "contig211\tsp|Q96JB1|DYH8_HUMAN\t77.53\t89\t20\t0\t1\t267\t2533\t2621\t4e-44\t 158\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "SQLShare ready version has Pipes converted to Tabs ....\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "contig211\tsp\tQ96JB1\tDYH8_HUMAN\t77.53\t89\t20\t0\t1\t267\t2533\t2621\t4e-44\t 158\r\n" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "!python {sqls}singleupload.py \\\n", "-d _blast_sprot \\\n", "../analyses/{sp}_sprot_sql.tab " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "processing chunk line 0 to 11607 (0.00473690032959 s elapsed)\r\n", "pushing ../analyses/Ahyacinthus_sprot_sql.tab...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "parsing 1D98A2E5...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "finished _blast_sprot\r\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "!python {sqls}fetchdata.py \\\n", "-s \"SELECT Column1 as ContigID, term, GOSlim_bin, aspect, ProteinName \\\n", "FROM [{usr}].[_blast_sprot]md \\\n", "left join \\\n", "[samwhite@washington.edu].[UniprotProtNamesReviewed_yes20130610]sp \\\n", "on md.Column3=sp.SPID \\\n", "left join \\\n", "[sr320@washington.edu].[SPID and GO Numbers]go \\\n", "on md.Column3=go.SPID \\\n", "left join \\\n", "[sr320@washington.edu].[GO_to_GOslim]slim on go.GOID=slim.GO_id \\\n", "where aspect like 'P'\" \\\n", "-f tsv \\\n", "-o ../analyses/{sp}_sprot_GOdescriptions.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "!head ../analyses/{sp}_sprot_GOdescriptions.tab" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "ContigID\tterm\tGOSlim_bin\taspect\tProteinName\r", "\r\n", "contig135011_153678_153601\ttemperature compensation of the circadian clock\tother biological processes\tP\tProtein eyes shut (Protein spacemaker)\r", "\r\n", "contig135011_153678_153601\trhabdomere development\tdevelopmental processes\tP\tProtein eyes shut (Protein spacemaker)\r", "\r\n", "contig135011_153678_153601\trhabdomere development\tcell organization and biogenesis\tP\tProtein eyes shut (Protein spacemaker)\r", "\r\n", "contig135011_153678_153601\tcell morphogenesis\tcell organization and biogenesis\tP\tProtein eyes shut (Protein spacemaker)\r", "\r\n", "contig69684\tprotein ubiquitination\tprotein metabolism\tP\t\"WD repeat, SAM and U-box domain-containing protein 1\"\r", "\r\n", "contig113621\tubiquitin-dependent protein catabolic process\tprotein metabolism\tP\tUbiquitin-like modifier-activating enzyme 6 (Ubiquitin-activating enzyme 6) (Monocyte protein 4) (MOP-4) (Ubiquitin-activating enzyme E1-like protein 2) (E1-L2)\r", "\r\n", "contig97647\tubiquitin-dependent protein catabolic process\tprotein metabolism\tP\tUbiquitin-like modifier-activating enzyme 6 (Ubiquitin-activating enzyme 6) (Monocyte protein 4) (MOP-4) (Ubiquitin-activating enzyme E1-like protein 2) (E1-L2)\r", "\r\n", "contig97647\tprotein ubiquitination\tprotein metabolism\tP\tUbiquitin-like modifier-activating enzyme 6 (Ubiquitin-activating enzyme 6) (Monocyte protein 4) (MOP-4) (Ubiquitin-activating enzyme E1-like protein 2) (E1-L2)\r", "\r\n", "contig97647\tprotein modification process\tprotein metabolism\tP\tUbiquitin-like modifier-activating enzyme 6 (Ubiquitin-activating enzyme 6) (Monocyte protein 4) (MOP-4) (Ubiquitin-activating enzyme E1-like protein 2) (E1-L2)\r", "\r\n" ] } ], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "!grep -c \"stress response\" ../analyses/{sp}_sprot_GOdescriptions.tab " ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "2356\r\n" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "!grep \"stress response\" ../analyses/{sp}_sprot_GOdescriptions.tab \\\n", "> ../analyses/{sp}_sprot_GOdescriptions-stress.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "!cut -f2 ../analyses/{sp}_sprot_GOdescriptions-stress.tab | sort | uniq -c\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " 12 \"DNA damage response, signal transduction by p53 class mediator resulting in cell cycle arrest\"\r\n", " 9 \"DNA damage response, signal transduction by p53 class mediator resulting in induction of apoptosis\"\r\n", " 5 \"DNA damage response, signal transduction by p53 class mediator resulting in transcription of p21 class mediator\"\r\n", " 6 \"DNA damage response, signal transduction by p53 class mediator\"\r\n", " 8 \"DNA damage response, signal transduction resulting in induction of apoptosis\"\r\n", " 6 \"DNA damage response, signal transduction\"\r\n", " 1 \"base-excision repair, AP site formation\"\r\n", " 4 \"base-excision repair, gap-filling\"\r\n", " 3 \"blood coagulation, intrinsic pathway\"\r\n", " 4 \"complement activation, alternative pathway\"\r\n", " 10 \"complement activation, classical pathway\"\r\n", " 2 \"complement activation, lectin pathway\"\r\n", " 1 \"defense response to fungus, incompatible interaction\"\r\n", " 5 \"negative regulation of DNA damage response, signal transduction by p53 class mediator\"\r\n", " 2 \"nucleotide-excision repair, DNA damage recognition\"\r\n", " 4 \"nucleotide-excision repair, DNA damage removal\"\r\n", " 2 \"nucleotide-excision repair, DNA duplex unwinding\"\r\n", " 4 \"nucleotide-excision repair, DNA gap filling\"\r\n", " 3 \"nucleotide-excision repair, DNA incision\"\r\n", " 2 \"nucleotide-excision repair, DNA incision, 5'-to lesion\"\r\n", " 1 \"nucleotide-excision repair, preincision complex assembly\"\r\n", " 4 \"positive regulation of DNA damage response, signal transduction by p53 class mediator\"\r\n", " 2 \"regulation of complement activation, lectin pathway\"\r\n", " 1 \"sterol depletion response, sterol regulatory element binding protein nuclear translocation\"\r\n", " 2 \"wound healing, spreading of epidermal cells\"\r\n", " 9 DNA damage checkpoint\r\n", " 4 DNA damage induced protein phosphorylation\r\n", " 1 DNA dealkylation\r\n", " 1 DNA double-strand break processing\r\n", " 4 DNA ligation during DNA repair\r\n", " 1 DNA recombinase assembly\r\n", " 223 DNA repair\r\n", " 2 DNA strand renaturation\r\n", " 8 DNA synthesis during DNA repair\r\n", " 4 ER overload response\r\n", " 1 ER-nuclear sterol response pathway\r\n", " 3 G1 DNA damage checkpoint\r\n", " 11 G2/M transition DNA damage checkpoint\r\n", " 23 JNK cascade\r\n", " 1 JUN phosphorylation\r\n", " 13 MyD88-dependent toll-like receptor signaling pathway\r\n", " 9 MyD88-independent toll-like receptor signaling pathway\r\n", " 4 activation of JNKK activity\r\n", " 18 activation of JUN kinase activity\r\n", " 5 activation of innate immune response\r\n", " 15 activation of signaling protein activity involved in unfolded protein response\r\n", " 3 acute inflammatory response\r\n", " 17 acute-phase response\r\n", " 2 age-dependent response to oxidative stress\r\n", " 1 age-dependent response to reactive oxygen species\r\n", " 3 aggregation involved in sorocarp development\r\n", " 1 angiogenesis involved in wound healing\r\n", " 1 antibacterial humoral response\r\n", " 1 antibacterial peptide secretion\r\n", " 12 autophagic vacuole formation\r\n", " 2 autophagic vacuole fusion\r\n", " 2 axon extension involved in regeneration\r\n", " 3 axon regeneration\r\n", " 2 axon regeneration in the peripheral nervous system\r\n", " 19 base-excision repair\r\n", " 8 behavioral fear response\r\n", " 3 behavioral response to pain\r\n", " 110 blood coagulation\r\n", " 4 bypass DNA synthesis\r\n", " 1 callose deposition in cell wall during defense response\r\n", " 1 cell surface pattern recognition receptor signaling pathway\r\n", " 4 cellular defense response\r\n", " 1 cellular response to amino acid starvation\r\n", " 4 cellular response to glucose starvation\r\n", " 18 cellular response to heat\r\n", " 6 cellular response to hydrogen peroxide\r\n", " 18 cellular response to oxidative stress\r\n", " 3 cellular response to reactive oxygen species\r\n", " 14 cellular response to starvation\r\n", " 2 cellular response to stress\r\n", " 1 cellular response to unfolded protein\r\n", " 2 cellular response to water deprivation\r\n", " 3 chronic inflammatory response\r\n", " 1 collateral sprouting of injured axon\r\n", " 9 complement activation\r\n", " 1 culmination during sorocarp development\r\n", " 15 defense response\r\n", " 6 defense response to Gram-negative bacterium\r\n", " 9 defense response to Gram-positive bacterium\r\n", " 24 defense response to bacterium\r\n", " 6 defense response to fungus\r\n", " 8 defense response to protozoan\r\n", " 14 defense response to virus\r\n", " 29 double-strand break repair\r\n", " 17 double-strand break repair via homologous recombination\r\n", " 3 double-strand break repair via nonhomologous end joining\r\n", " 33 endoplasmic reticulum unfolded protein response\r\n", " 1 error-free postreplication DNA repair\r\n", " 3 fear response\r\n", " 6 fibrinolysis\r\n", " 3 fin regeneration\r\n", " 30 hydrogen peroxide catabolic process\r\n", " 2 hyperosmotic response\r\n", " 1 hypotonic response\r\n", " 1 induction by symbiont of defense-related host nitric oxide production\r\n", " 5 induction of bacterial agglutination\r\n", " 52 inflammatory response\r\n", " 2 inflammatory response to antigenic stimulus\r\n", " 105 innate immune response\r\n", " 1 innate immune response in mucosa\r\n", " 2 intra-S DNA damage checkpoint\r\n", " 1 leukocyte chemotaxis during inflammatory response\r\n", " 3 leukocyte migration during inflammatory response\r\n", " 3 leukotriene production during acute inflammatory response\r\n", " 7 macroautophagy\r\n", " 2 meiotic mismatch repair\r\n", " 1 melanization defense response\r\n", " 3 melanotic encapsulation of foreign target\r\n", " 10 mismatch repair\r\n", " 8 mitotic cell cycle G2/M transition DNA damage checkpoint\r\n", " 4 multicellular organismal response to stress\r\n", " 1 natural killer cell degranulation\r\n", " 6 natural killer cell mediated cytotoxicity\r\n", " 5 negative regulation of JNK cascade\r\n", " 4 negative regulation of JUN kinase activity\r\n", " 1 negative regulation of axon extension involved in regeneration\r\n", " 1 negative regulation of blood coagulation\r\n", " 1 negative regulation of defense response\r\n", " 1 negative regulation of defense response to virus\r\n", " 4 negative regulation of fibrinolysis\r\n", " 7 negative regulation of inflammatory response\r\n", " 2 negative regulation of inflammatory response to antigenic stimulus\r\n", " 2 negative regulation of innate immune response\r\n", " 9 negative regulation of macroautophagy\r\n", " 1 negative regulation of platelet activation\r\n", " 1 negative regulation of respiratory burst during acute inflammatory response\r\n", " 2 negative regulation of stress-activated MAPK cascade\r\n", " 1 negative regulation of toll-like receptor 2 signaling pathway\r\n", " 2 negative regulation of transcription from RNA polymerase II promoter in response to UV-induced DNA damage\r\n", " 4 negative regulation of translation in response to stress\r\n", " 2 negative regulation of translational initiation in response to stress\r\n", " 1 non-photoreactive DNA repair\r\n", " 1 nucleotide-binding oligomerization domain containing 2 signaling pathway\r\n", " 4 nucleotide-binding oligomerization domain containing signaling pathway\r\n", " 24 nucleotide-excision repair\r\n", " 2 pathogen-associated molecular pattern dependent induction by symbiont of host innate immunity\r\n", " 7 pattern recognition receptor signaling pathway\r\n", " 16 plasma membrane repair\r\n", " 52 platelet activation\r\n", " 1 platelet aggregation\r\n", " 10 positive regulation of DNA repair\r\n", " 19 positive regulation of JNK cascade\r\n", " 19 positive regulation of JUN kinase activity\r\n", " 1 positive regulation of acute inflammatory response\r\n", " 2 positive regulation of axon regeneration\r\n", " 1 positive regulation of biosynthetic process of antibacterial peptides active against Gram-positive bacteria\r\n", " 4 positive regulation of blood coagulation\r\n", " 1 positive regulation of chronic inflammatory response to non-antigenic stimulus\r\n", " 5 positive regulation of defense response to virus by host\r\n", " 2 positive regulation of epithelial cell proliferation involved in wound healing\r\n", " 1 positive regulation of fibrinolysis\r\n", " 6 positive regulation of inflammatory response\r\n", " 4 positive regulation of innate immune response\r\n", " 1 positive regulation of macroautophagy\r\n", " 1 positive regulation of natural killer cell mediated cytotoxicity\r\n", " 1 positive regulation of respiratory burst during acute inflammatory response\r\n", " 1 positive regulation of sterol regulatory element binding protein target gene transcription involved in sterol depletion response\r\n", " 3 positive regulation of stress-activated MAPK cascade\r\n", " 1 positive regulation of toll-like receptor 4 signaling pathway\r\n", " 1 positive regulation of toll-like receptor signaling pathway\r\n", " 5 postreplication repair\r\n", " 6 pyrimidine dimer repair\r\n", " 1 pyrimidine dimer repair by nucleotide-excision repair\r\n", " 4 regulation of DNA repair\r\n", " 10 regulation of JNK cascade\r\n", " 1 regulation of JUN kinase activity\r\n", " 1 regulation of aggregation involved in sorocarp development\r\n", " 1 regulation of axon regeneration\r\n", " 4 regulation of blood coagulation\r\n", " 2 regulation of cellular defense response\r\n", " 5 regulation of defense response to virus\r\n", " 3 regulation of defense response to virus by virus\r\n", " 1 regulation of double-strand break repair via homologous recombination\r\n", " 1 regulation of eIF2 alpha phosphorylation by heme\r\n", " 9 regulation of inflammatory response\r\n", " 5 regulation of innate immune response\r\n", " 1 regulation of response to interferon-gamma\r\n", " 1 regulation of response to osmotic stress\r\n", " 1 regulation of response to stress\r\n", " 2 regulation of stress-activated MAPK cascade\r\n", " 6 regulation of transcription from RNA polymerase II promoter in response to oxidative stress\r\n", " 2 regulation of transcription in response to stress\r\n", " 1 regulation of translation in response to stress\r\n", " 5 regulation of translational initiation in response to stress\r\n", " 2 replication fork processing\r\n", " 1 respiratory burst during defense response\r\n", " 234 response to DNA damage stimulus\r\n", " 7 response to axon injury\r\n", " 16 response to cold\r\n", " 15 response to endoplasmic reticulum stress\r\n", " 3 response to fluid shear stress\r\n", " 22 response to heat\r\n", " 2 response to herbicide\r\n", " 23 response to hydrogen peroxide\r\n", " 5 response to hydroperoxide\r\n", " 4 response to hyperoxia\r\n", " 59 response to hypoxia\r\n", " 2 response to interferon-gamma\r\n", " 2 response to laminar fluid shear stress\r\n", " 3 response to nitrosative stress\r\n", " 8 response to osmotic stress\r\n", " 96 response to oxidative stress\r\n", " 3 response to oxygen radical\r\n", " 17 response to pain\r\n", " 4 response to reactive oxygen species\r\n", " 5 response to salt stress\r\n", " 13 response to starvation\r\n", " 1 response to sterol depletion\r\n", " 89 response to stress\r\n", " 5 response to superoxide\r\n", " 3 response to type I interferon\r\n", " 35 response to unfolded protein\r\n", " 3 response to water deprivation\r\n", " 25 response to wounding\r\n", " 1 satellite cell maintenance involved in skeletal muscle regeneration\r\n", " 2 sensory epithelium regeneration\r\n", " 4 single strand break repair\r\n", " 1 skeletal muscle regeneration\r\n", " 3 sorocarp development\r\n", " 3 sorocarp morphogenesis\r\n", " 1 sorocarp stalk development\r\n", " 13 stress-activated MAPK cascade\r\n", " 1 stress-activated protein kinase signaling pathway\r\n", " 1 systemic acquired resistance\r\n", " 15 tissue regeneration\r\n", " 10 toll-like receptor 1 signaling pathway\r\n", " 11 toll-like receptor 2 signaling pathway\r\n", " 10 toll-like receptor 3 signaling pathway\r\n", " 11 toll-like receptor 4 signaling pathway\r\n", " 1 toll-like receptor 5 signaling pathway\r\n", " 1 toll-like receptor 7 signaling pathway\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " 17 toll-like receptor signaling pathway\r\n", " 16 transcription-coupled nucleotide-excision repair\r\n", " 1 virus induced gene silencing\r\n", " 33 wound healing\r\n" ] } ], "prompt_number": 21 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Plot GoSlim terms\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "pylab inline\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "#FIXME - below I added '[Haliotis_kam]' " ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "from pandas import *\n", "\n", "gs = read_table('../analyses/Ahyacinthus_sprot_GOdescriptions.tab')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "gs" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
\n",
        "<class 'pandas.core.frame.DataFrame'>\n",
        "Int64Index: 55343 entries, 0 to 55342\n",
        "Data columns (total 5 columns):\n",
        "ContigID       55343  non-null values\n",
        "term           55343  non-null values\n",
        "GOSlim_bin     55343  non-null values\n",
        "aspect         55343  non-null values\n",
        "ProteinName    55296  non-null values\n",
        "dtypes: object(5)\n",
        "
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "\n", "Int64Index: 55343 entries, 0 to 55342\n", "Data columns (total 5 columns):\n", "ContigID 55343 non-null values\n", "term 55343 non-null values\n", "GOSlim_bin 55343 non-null values\n", "aspect 55343 non-null values\n", "ProteinName 55296 non-null values\n", "dtypes: object(5)" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "gs.groupby('GOSlim_bin').ContigID.count().plot(kind='barh', color=list('y'))\n", "savefig('../analyses/Ahyacinthus_GOSlim.png', bbox_inches='tight')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "\n", "Just Getting GOSlim directly\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!python {sqls}fetchdata.py \\\n", "-s \"SELECT Distinct \\\n", "Column1 as ContigID, GOSlim_bin \\\n", "FROM [{usr}].[_blast_sprot]md \\\n", "left join \\\n", "[sr320@washington.edu].[SPID and GO Numbers]go \\\n", "on md.Column3=go.SPID \\\n", "left join \\\n", "[sr320@washington.edu].[GO_to_GOslim]slim on go.GOID=slim.GO_id \\\n", "where aspect like 'P'\" \\\n", "-f tsv \\\n", "-o ../analyses/{sp}_GOslim.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "!head ../analyses/{sp}_GOslim.tab" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "ContigID\tGOSlim_bin\r", "\r\n", "contig70128\tother biological processes\r", "\r\n", "contig82454\tDNA metabolism\r", "\r\n", "contig174510\tprotein metabolism\r", "\r\n", "contig209629\tother biological processes\r", "\r\n", "contig10816_153279\tsignal transduction\r", "\r\n", "contig109222\ttransport\r", "\r\n", "contig79068\tsignal transduction\r", "\r\n", "contig119835\tstress response\r", "\r\n", "contig110229\ttransport\r", "\r\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "from pandas import *\n", "\n", "slim = read_table('../analyses/Ahyacinthus_GOslim.tab')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "slim.groupby('GOSlim_bin').ContigID.count().plot(kind='barh', color=list('y'))\n", "savefig('../analyses/Ahyacinthus_GOSlim-distinct.png', bbox_inches='tight')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nuLq6pn755ZcXmnsNk5OTPW7evOmcmJjotXXr1nVSqZROpVLrlfcJDm4+V+PJZriN27jdebYbT+zs\nzNsuLi7/tR0aGgrq0iHneDg5OaXHx8dPqKqq0qmsrNSNj4+f4OTklK6np1fRXA8AgUKhKMzMzO6/\nfPnS+M6dO/YAALW1tZqFhYUW6sjW0rH19fXLieEBopHRo0eP1xUVFXoxMTF+xDEUCgXl3LlzUwAa\nencMDQ1LDAwMypycnNJPnz49HaBhGMnY2Pilnp5ehfL5FQoFRaFQUPT09Cq++OKLPy5evOgD0NDr\nQMzfUPbkyZP+RNYzZ85Mc3JySm+8j62tbc6NGzdGvn79ukd9fT31559//srFxUVgb29/5+bNm84y\nmYwG0DAHBQBgzJgxV5TnxxBDX48fPx44cODAx0FBQft9fHwuSiQSxvPnz3tra2tXT58+/fTKlSt3\niUQidnOvoUKhoDx58qS/i4uLICwsLLi0tLRbZWWl7ke+Va2GjOPMmEl1ZMyFmVRDxkw4x6OdYrPZ\nooCAAD6Xy80GAJg7d24kk8nMAwBwdHTMpNPp0vHjx18aP378paZ6BDQ1NWtjY2MnLV26NKK0tLRb\nXV1dl+XLl++xsLAofN+5lY/X+NgUCkXR0rEDAgL4CxYsOPzZZ5+9vXXr1vC5c+dGWllZ5ZuYmLyw\ns7PLUj6OtrZ2tbW1dW5dXV2X48ePzwZomDg6e/bs40wmM09XV7fyxIkT/sT+RBbl2ydPnpw5f/78\nIxs3bvyeyEWj0WTKmc3MzO4fOHBg8ezZs49bWloWLFy48FDj59a7d+/nYWFhwTweL02hUFA8PT2T\niMuUf/zxx3m+vr5xcrlc4/PPP//3lStXxmzYsGHzN998s5fBYEjkcrnGoEGDfktISPCOjo6efPLk\nyZmampq1vXv3fr5u3bqt2dnZ3FWrVu0kepAOHz68oLnXcOjQoQ9mzpx5srS0tJtCoaAsW7Zsn4GB\nATlWBUIIIQQAWKsFtUAmk9G8vLwSm7o6pr2iUCgKsi0ghhBqWzxeQ/FI1Dys1YJaDZaRRwghpE7Y\n44E6FWxIIYQaw1ot74c9Hgj9AwqFglRfaWlpbZ4BM3WsXJjpwzKRpdHRWWCPB+pU/r70t61jIIRQ\nu4I9HgghhBBqlzrk5bQItYRCUUujHSGE2hyZ5qeoqtM1PEpLS7udOXNmGrEehUAgcAkPD1+RmJjo\npY7jh4SEhOjr65cTy4oTnj171mfZsmX7lBcCa+yfZiFqzagrc0dFtstpxeL/XUGxrWEm1ZExF2ZS\nTUfIxOOVf7own0inG2opLi42Onjw4CJ1Ha9xYbXmrpro06fPs5YaHerwMY0OgH92pQexxDz6eGT7\nwweAmT4EGXNhJtVgprahUsPj/v37ZnPnzo10c3O7yuPx0ng8XtqoUaOuf+pw/9Tu3bu/pdPpUjqd\nLt23b98yAIDg4OCwoqIiUzabLVq9evUOCoWiqKio0PPz84sxNze/N2PGjFPE45srve7i4iJYvnz5\nHltb2xzlpb8JeXl5zOHDh98aOnTog6NHj34N0LAYF51OlwI0LIceGBgYxWAwJNbW1rkCgcCl8TGa\nK3H/8uVLYzc3t6tWVlb5c+fOjaTRaDJiKXLl5dG3b9++hsFgSFgslnjt2rXbAAAiIyPncrncbBaL\nJZ40aVJsU0ukKyNWUrW1tc0xMzO7T1SI5fP5Ad7e3gmurq6pbm5uV4uLi42aylpRUaFHPE8mk5lH\nFLBLSUlxHz58+C0OhyOcPHlyNLGseXBwcBhR0n716tU7AABiYmL86HS6lMViiUeOHHkDoKGxt2rV\nqp1cLjebyWTm/fjjj/MAAJ4/f97b2dn5JpvNFtHpdGlGRsYIFX5MEEIItSKV/lv18/OLWbhw4aGv\nv/76KFFwi+zrIQiFQg6fzw/Izs7myuVyDTs7u6yRI0fe2L59+5qCggJLoj6IQCBwEYlE7MLCQove\nvXs/J4YruFxudnOl1ykUiqK2tlYzJyfHtvF5FQoFRSKRMLKysuwqKir02Gy2yNPTM0l5nwMHDiym\nUqn1EomEcf/+fTN3d/eUBw8eDFXep7kS96GhoZtGjx59bc2aNduvXLky5tixY3OIxxDvyS+//DIu\nISHBOzs7m6utrV1dXFxsBAAwceLE83Pnzo0EANiwYcPmY8eOzVmyZMkPzb2GFApF8eTJk/45OTm2\njx49Gszj8dIePXo0GKChvopUKqUbGhqWBAUF7W8q6+bNmzcYGRkVSyQSBgBASUmJ4atXr3pu3bp1\nXWpqqquOjk7V9u3b1+zevfvbxYsXH4iPj5/w66+/DgMAIGrWbN68eUNKSop77969nxP3HTt2bI6h\noWFJdnY29927d11HjBiR4e7unhIXF+c7duzYy2vXrt2mUCgo7aFOC0DH6O5tDWTMBEDOXJhJNZip\nbajU8NDU1Kwl5kS0FxkZGSN8fX3jdHR0qgAAfH1949LT0528vb0TGu/L5XKzibLqLBZLLJPJaN26\ndSttqXw9URK+MQqFopgwYUJ8165d33Xt2vUdj8dLy8rKsiNqxQA0DIksXbo0AqChFsqAAQN+b9zw\naK7EfWZmpmN8fPwEgIZia0ZGRsWNM1y7dm307Nmzj2tra1cDABD7SKVS+vr167eUlpZ2q6io0Bs7\nduzl972OkydPjgYAGDx48KNBgwb99uuvvw6jUCgKNze3q0SZ++aypqamuhLF7AAADA0NS5KSkjwL\nCwsthg8ffgsAoKamRmv48OG3unXrVqqtrV09Z86cY56enklEY83R0THT39//xOTJk6N9fX3jABp6\nTKRSKT02NnYSQEMj5dGjR4NtbW1zZs+efby2tlaT6IF53/NDCCHUulRqeHh5eSUeOHBgsa+vb5xy\nGfnu3bu/+XTR/pmmSrU310uj/JyoVGo9MW+hpfL1REl4VWhoaMgb39f4euimsjV3zfT7rqVu/NwJ\nAQEB/ISEBG86nS49ceKEf1NDPO9D5Gz8/D8kq5ub29UzZ85Ma3x/dnY2NzU11TU2NnbSDz/8sCQ1\nNdX10KFDC7Ozs7nJyckeHA5HKBQKOQAAP/zwwxI3N7erjY+Rnp7ulJSU5BkQEMD/9ttvd8+cOfNk\n433CwgBMTBpu6+kBDB78n/8wiGqVrb1NaKvzt4dtFotceZS3CWTJQ8ZtMr5/xH1kyfOxP08EorIt\nsfLpP9kWCATA5/MBAIBGo4E6qbSAGI1GkzX1wfj48eOBak2jRiKRiB0QEMC/c+eOvVwu17C3t79z\n6tSpGV988cUfHA5HSJRqb3wlSVBQ0H5bW9ucqVOnnrWwsCg8efLkTHt7+zu1tbWaDx8+HGJhYVHI\n4/HSwsPDV1hbW+c2Pm9ISEjIxYsXfe7cuWNfUVGhZ21tnZuVlWVXXV2tTRRc27Nnz/KCggLLo0eP\nfv3gwYOh7u7uKQ8fPhySmZnpSGRZtmzZPmNj45fr16/fIhAIXFasWBEuFAo5S5Ys+aF///5PVq9e\nvSMlJcV97Nixl1+9etWze/fub/T19cvLy8v1r1y5Mub777/feO3atdE6OjpVxcXFRkZGRsXGxsYv\nCwsLLQwNDUvGjx9/qV+/fk+PHz8+u7mrWgICAvgvX740TkpK8vztt98Gubi4CIqKikzPnDkzTSgU\ncvbv3x8EANBc1u++++5f1dXV2nv27FkO0DDUUldX14XD4QivX78+ytTUtKiyslL32bNnffr06fOs\nsrJSt1evXn+VlpZ2MzU1LXr16lXPoqIiU1NT0yKAhp6pyMjIudnZ2dxLly6Nj4mJ8evSpUvdgwcP\nhn7xxRd/vHr1qmffvn3/pFKp9QcOHFhcVFRkunv37m+VnxMWiUMIdSStVeBOnQuIqdTjQXxItyds\nNlsUEBDA53K52QAAc+fOjSS63h0dHTPpdLp0/Pjxl8aPH3+pqUZVS+XrWzovhUJRMBgMCY/HS3v1\n6lXPjRs3fm9iYvJCJpPRiPMsWrTo4MKFCw8xGAxJly5d6k6cOOGvqalZq1yyvrkS95s2bQqdOnXq\n2ZMnT850cHC4bWJi8kJfX7+cODdAwxCMWCxm2djY3NXS0qrx8PBI3rJly/rNmzdvsLOzyzI2Nn5p\nZ2eXVVFRoUc8rqnXgEKhKPr37/+Ey+Vml5WVGRw5cmS+lpZWTeP9m8u6fv36LYsXLz5Ap9OlVCq1\nPiQkJGTChAnxfD4/YOrUqWffvXvXFQBg69at6/T19ct9fHwuVldXaysUCgrRWFm9evWOhw8fDlEo\nFJTRo0dfYzKZeQwGQyKTyWjW1ta5CoWC0qtXr78uXLjwpUAgcNm5c+cqTU3NWn19/fKffvpp1of+\n3LQFMo7pYibVkTEXZlINZmobLfZ4pKamurq6uqaeP39+YlMfTMSYO2o9NTU1WlQqtZ5Kpdbfvn3b\nYfHixQdyc3OtP8W5AgMDo7y8vBI70vtMxh4PMv6hwUyqI2MuzKSajpCpw/V43Lx509nV1TU1MTHR\nCxse5PDkyZP+kydPjpbL5RpaWlo1kZGRc9s6E/pnyPaHDwAzfQgy5sJMqsFMbQOLxKFOhYw9Hggh\n9LHaY4+HSg2PV69e9QwNDd2UkZExgkKhKJycnNI3btz4fY8ePV6rIwRCrYXs688ghNCHaK1aLa1e\nnfarr776uVevXn/FxcX5xsbGTjI2Nn7Z3DoWCJGdQqEg1VdaWlqbZ8BMHSsXZuo8mdpbgTgAFXs8\nrKys8vPz862U76PT6VJiaWyE2ou/1zhp6xgIIdSutPrltO7u7ilnz56dSvRyxMTE+Lm7u6eoIwBC\nrY1CUcvvDkIqaY9lyxH6lFrs8dDT06sgxsQrKyt1iRU45XK5hq6ubmV5ebl+K+VESC3IOLm0I1zS\n1xrImAng/blaa/KfMoFA8P+rUZIFZlINGTMBtOIcj4qKCr3y8nL98vJyfblcrlFXV9elrq6ui1wu\n11BudBQUFFiqI0xrCQkJCQkPD19B9mP+U3l5ecxffvll3Pv2EwgELl5eXomtkQkhhFDnptLk0vdR\nLiXfHnyKKxvIeLWESCRiX7p0afynPIdCoaCoqxXcWZHxv3jMpDoy5iLjf8yYSTVkzKRuaml4tAdb\nt25dZ2Zmdt/JySn9/v37ZsT9RUVFpuPGjfvFxsbmrrOz88379++blZaWdqPRaDJin8rKSt3+/fs/\nqa+vpza1f+NzicVilr29/R0mk5nn6+sbV1JSYggA4OLiIvjmm2/2stlsEZ1Ol+bk5NgCNPSW+Pv7\nn3B2dr5Jo9FkcXFxvitXrtzFYDAk48aN+4UoWicUCjkuLi4CGxubu2PHjr384sULE+K4wcHBYXZ2\ndllmZmb3MzIyRtTW1mpu3Ljx+3Pnzk1hs9mi6OjoyTk5ObbDhw+/ZW1tnevo6JjZuCJuY3w+P8DH\nx+cij8dLGzp06IPvv/9+I0DDEvpmZmb3/f39T9DpdOnTp0/7rVq1aiedTpcyGAxJdHT0ZOIY27dv\nX8NgMCQsFkv83Xff/au51xygYe4QnU6Xslgs8ciRI28ANPSm2dnZZbHZbBGTycwrKioyBQA4derU\nDOL+BQsWHJbL5Rr19fXUgIAAPpFj796933zUDwtCCKFPplM0PIRCIefcuXNT8vLymJcuXRqfk5Nj\nS/RQzJs378f9+/cH3b1712bnzp2rFi1adLBbt26lLBZLTFRvTUpK8hw7duxlKpVa39T+xHmIY86a\nNeunnTt3rsrLy2PS6XRpaGjoJuL7VVVVOiKRiH3w4MFFs2fPPk489vHjxwPT0tJ4CQkJ3jNmzDjl\n5uZ2VSKRMHR0dKqSk5M9amtrNYOCgvafP39+4t27d20CAwOj1q1bt5U4bn19PTUrK8tu796934SG\nhm7S1NSs3bx584avvvrqZ5FIxJ48eXL0sGHDfk1PT3fKzc21Dg0N3bR27dpt73vtcnJybOPi4nwl\nEgkjJibGj6gO++jRo8GLFy8+kJ+fb5WTk2Obl5fHlEgkjGvXro1etWrVzhcvXpj88ssv4xISEryz\ns7O5YrGYtWbNmu3NveYAAJs3b96QkpLiLhaLWUTRviNHjsxftmzZPpFIxBYKhZy+ffv+ee/ePfPo\n6OjJt27dGi4SidhUKrX+9OnT0/Py8pjPnj3rI5VK6RKJhBEYGBillh+gT6xxhUkywEyqI2Muosoo\nmWAm1ZAxk7qpdFVLe5eenu7k6+sbp62tXa2trV3t7e2dANDQk3Hr1q3hfn5+McS+NTU1WgAAU6ZM\nOXfu3LkpLi4ugp9//vmrJUuW/FBRUaHX3P6EsrIyg9LS0m5OTk7pAAD+/v4nlPefOnXqWQAAJyen\ndGJfCoWiGDdu3C9UKrXeysoqXy6Xa4wZM+YKQMNlyzKZjPbgwYOhBQUFlqNHj74GAFBfX0/t06fP\nM+K4xPL11tbWuURRv8bDICUlJYazZs366dGjR4MpFIqitrZW832vnbu7e4qRkVExcY6MjIwREyZM\niB8wYMDvRAG+zMxMx2nTpp2hUCiKXr16/TVy5MgbOTk5tjdu3Bg5e/bs49ra2tUAAIaGhiUVFRV6\nt2/fdmjqNXR0dMz09/c/MXny5Gji+Tg4ONzeunXruj/++OMLX1/fuMGDBz9KTU11FQqFHBsbm7sA\nAFVVVTqff/75v728vBJ/++23QUuXLo3w8PBIbu7Kq7AwABOThtt6egCDB7dtGexHj9q+DDeWef/4\nbVXeP4I6y5a3tN3a52uv2+K/3yCy5BEIBCAWi0mRRyAQAJ/PBwAAGo0G6qSWhkfXrl3fqeM4n8rf\nazf8/wcwcVsul2sYGRkVi0QiduPHeHl5Ja5du3ZbcXGxUW5urvWoUaOul5eX6ze3f3PeN/+B6CXR\n0tKqAQDQ0NCQa2pq1hLf19DQkNfV1XVRKBQUS0vLglu3bg1v6jjEe0ClUuuJoZnGNmzYsNnV1TX1\nwoULX/7+++8DXFxcBKpkU34uxJVNurq6lao8z8b3y+VyDUNDw5KmXsNDhw4tzM7O5iYnJ3twOByh\nUCjkTJ069ay9vf2dpKQkz/Hjx186cuTIfICGBt22bdvWNj6GRCJhXL58eezhw4cXREdHTz527Nic\nxvsEBzf/nBuP17fGtvJ9bXH+9rLd1FwKMuT7kPev8fh9Z9puau5CW+f75ptvWvx+W2y39Jq19vul\nvB0aGgrqovJQS15eHvPixYs+58+fn3j+/PmJcXFxvsT37ty5Y6+2RJ+As7Pzzfj4+AnV1dXa5eXl\n+klJSZ4AAPr6+uUDBw58HBsbOwmg4UMyLy+PCdBwKbGtrW3O0qVLI7y8vBIpFIrCwMCgrPH+EomE\nQZxHoVBQDAwMyoyMjIozMjJGAACcPHlyJvEBr1AoKOfOnZsCAJCRkTHC0NCwxMDAoEyVyZlmZmb3\nX758aUy81rW1tZqFhYUWLT3GwMCgTPnqo7KyMgOilyQqKirwfedUKBSUq1evuhUXFxtVVVXpXLx4\n0cfR0TGzcV4nJ6f0c+fOTZHL5RovX740vnnzprOdnV2Wm5vb1aioqMCqqiodAIDi4mKjll7DoqIi\nUy6Xmx0aGrrJ2Nj45R9//PHF48ePB9JoNFlQUNB+Hx+fi1KplO7q6poaGxs76eXLl8YAAG/evOn+\n5MmT/q9fv+5RV1fXxdfXN27z5s0bPlXVXoQQQh9PpYZHYGBg1Jw5c47FxcX5JiUleSYlJXkSY/Dt\nAZvNFk2ZMuUck8nMGz9+/CViiAAA4PTp09OPHTs2h8Viia2srPKVn9eUKVPOnTlzZpry8vCN909I\nSPAmvkf0EJw4ccJ/1apVO5lMZp5EImFs3Ljxe+L72tra1dbW1rmLFi06SPw3TqFQFMq9C417GigU\nikJTU7M2NjZ20po1a7azWCwxm80W3b5926Gp50s8nsfjpRUWFloQk0tXr16947vvvvuXtbV1bn19\nPbWlcxL3cbnc7IkTJ55nMpl5kyZNirW2ts5tvP+XX355gcFgSJhMZp6rq2vqzp07V/Xq1euvMWPG\nXPH29k6wsbG5y2azRcTlxs29hqtXr97BYDAkdDpd6ujomElMVKXT6VI2my0qKCiwnDVr1k/m5ub3\ntmzZst7d3T2FyWTmubu7p7x48cLkzz//7Mvj8dLYbLZo5syZJ8PCwlro2yAPMs4RwEyqI2MuMs4T\nwEyqIWMmdVNpyXQLC4vCgoICSzJeMtqe8Hi8tPDw8BXEhzfZ8fn8AKFQyNm/f39QW2dRF1xATDWY\nSXW4gJhqMJNqyJgJoA2KxNna2ua8r1sfdTyNe2LQp0HGD1PMpDoy5iLjBxdmUg0ZM6mbSj0eAoHA\nxdvbO8HExOQFMYmRQqEolOc3INQeYEMKtTas1YI6AnX2eKjU8DA1NS3as2fPcisrq3ziqgYAAOVF\nthBqD8hYnZaMXauYSXVkzIWZVIOZVNfq1Wl79er1F7H2BUIIIYTQx1Kpx2PRokUHS0pKDL28vBKJ\n9SYoFIqCWOQJofaCjD0eCCFEdq3e4/H27dvPtLS0alJSUtyV78eGB2qPKJSOWdMO5xIghNoDlXo8\nEOooOvLltOq8bJOM48xkzARAzlyYSTWYSXWt1uOxffv2NWvWrNkeFBS0v4kQioiIiKXqCIEQQgih\nzqHFHo/ExEQvLy+vRD6fH/A/D6RQFP7+/ic+ZTjU8YWEhITo6+uXr1ixIvxDHnfjxo2RWlpaNQ4O\nDrcBAAICAvheXl6JEydOPN/S48jY46EubbFQFUKoc2i1Hg8vL69EgIY/6uo4GUKNfey6GmlpaTx9\nff1youGB63MghFD70OLKpV5eXonNfeHltehjbd26dZ2Zmdl9Jyen9Pv375sBNBSIGzdu3C82NjZ3\nnZ2dbxL3JyYmetnb29+xtrbOdXNzu/rXX3/1kslktCNHjszfs2fPcmtr61yiIN/NmzedHR0dM01N\nTYvOnz8/sS2f44fAWh+qIWMmAHLmwkyqwUxto8Uej5a6v/E/TPQxhEIh59y5c1Py8vKYtbW1mtbW\n1rkcDkc4f/78I4cPH14wePDgR1lZWXaLFi06mJqa6urk5JROVOQ9evTo1zt27Fi9a9eulQsWLDis\nr69f/u233+4mvvfixQuTzMxMx3v37pl7e3snNDfsEhYGYGLScFtPD2Dw4P9M7iQaAa25/eiR+o5H\n/NEiJqd97DZBXcfryNtisZhUeZSRJQ9Zt8V//wKRJQ+Zfp4EAgHw+XwAAKDRaKBOH3RVS01NjVZB\nQYFl3759/+zVq9dfak2COoW9e/d+U1JSYhgSEhIC0NC47d69+xuiF4TYj/hZk0ql9BUrVoS/ePHC\npKamRmvQoEG/Xbp0aXxoaOgmPT29CqJxHBgYGOXu7p4yderUswAABgYGZWVlZQaNz49zPBBC6MO1\nWpG4+fPnH8nPz7cCACgtLe3GZDLzZs2a9ROLxRKfOXNmmjoCoM7l7wW8/uuHVy6XaxgaGpaIRCI2\n8VVQUGAJABAUFLR/6dKlERKJhHHkyJH5VVVVOs0dm1jcDgDU9guCEEJIvVpseKSnpztZWVnlAwBE\nRUUFmpmZ3ZdKpfTc3FzrHTt2rG6diKgjcXZ2vhkfHz+hurpau7y8XD8xMdHrs88+eztw4MDHsbGx\nkwAaGg1EAcKysjKDPn36PAMAUL66Sl9fv7y8vFy/TZ6EmuEcD9WQMRMAOXNhJtVgprbRYsODqEQL\nAJCSkuLu4+NzEQDAxMTkxacOhjomNpstmjJlyjkmk5k3fvz4S1wuN5tCoShOnz49/dixY3NYLJbY\nysoqPyEhwRug4XJbPz+/GBsbm7vGxsYviblFXl5eiRcuXPhSeXKp8rwjnIOEEELk1OIcDxcXF8GK\nFUKdkAEAACAASURBVCvC+/bt++eoUaOu37t3z7x3797Pa2trNel0uvTXX38d1opZEfrHcI4HQgh9\nuFZbx+PIkSPzly5dGvHixQuTvXv3ftO7d+/nAADXr18f5eHhkayOAAi1Nh6vrRN8GoaGHWLkCSHU\nwWGtFtSpkLE6rYCEtRkwk+rImAszqQYzqa7VrmoBALh06dJ4Z2fnmz169Hjdo0eP1yNHjryRnJzs\noY6TI4QQQqhzabHHIzIycu6RI0fm79ixYzWHwxECNCwAFRwcHDZnzpxj8+fPP9JqSRFSAzL2eCCE\nENmps8ejxYaHubn5vYyMjBE9evR4rXz/69evezg6Ombi5FLU3rTG1S6GhvpQXFz2qU+DEEKtptUm\nlwIANG50EPfh5Ypti8/nBwiFQs7+/fuDPrbCq7qOKRQKOT/99NOsffv2Lfsn529MOcOmTZtCnZ2d\nb7q6uqb+0+N+6qtaeLzyD9qfjGO6mEl1ZMyFmVSDmdpGiw0PAwODMrFYzGKxWP+1xFFeXh5TX1//\nw/66IrX6FGtWfOwxORyOkBiKUyflDKGhoZvUfXyEEEKtr8XJpeHh4St8fHwuhoSEhCQmJnolJCR4\nb9q0KdTb2zshPDx8RWuF7Cx++umnWUwmM4/FYolnzZr1EwDAy5cvjSdNmhTL5XKzuVxu9q1bt4YD\nqL4kuLqPGRMT40en06UsFkvs4uIiAAAQCAQuXl5eicSx3dzcrlpZWeXPnTs3kkajyd68edNdJpPR\nzM3N782bN+9HKyur/DFjxlyprq7WBmiYS8TlcrNZLJZ40qRJsU0tix4QEMAnKs7SaDRZSEhICIfD\nETIYDAlRyba5c6vyOrUlMv53g5lUR8ZcmEk1mKlttNjwGDFiREZWVpZdfX09lc/nB5w4ccJfoVBQ\nsrKy7JycnNJbK2RnUFBQYLl169Z1aWlpPLFYzIqIiFgKALBs2bJ9y5cv35Odnc2NjY2d9PXXXx9t\ny2Nu3rx5Q0pKirtYLGYRq4sqCw0N3TR69Ohr+fn5VpMmTYp98uRJf+J7jx49GrxkyZIf8vPzrQwN\nDUuIhsTEiRPPZ2dnc8ViMcvc3PzesWPH5jQ+LoVCURA9IBQKRWFsbPxSKBRyFi5ceGjXrl0r33du\nhBBC5NBiwyM+Pn5CbGzspM2bN284f/78xKdPn/Y7efLkzOHDh9+KiYnxa62QncH169dHTZ48Obp7\n9+5vAAAMDQ1LAACuXbs2esmSJT+w2WyRj4/PxfLycv3Kykrdtjqmo6Njpr+//4mjR49+XVdX9z9D\ndZmZmY5fffXVzwAAY8aMuWJkZFRMfG/gwIGPGQyGBKBheEYmk9EAAKRSKd3JySmdwWBITp8+Pb2w\nsNDifTl8fX3jAACsra1zieO0dG4yI2NtBsykOjLmwkyqwUxto8U5Hjt27Fj9888/f0Vs19TUaN29\ne9emsrJSNyAggO/n5xfz6SN2Dk1VbQVoGP7IysqyU668SuzfeN8//vjjC09PzyQKhaJYsGDBYXUc\ns7FDhw4tzM7O5iYnJ3twOByhUCjkNHX8ph6rXPuHSqXWE0MtAQEB/ISEBG86nS49ceKEv0AgcHlf\nJuJYVCq1XrkBpMpwUVgYgIlJw209PYDBgwFYrIZtomDbP90mEH9EiO7TprbFYnGL32+L7Q/J39m3\n8f1rv9viv39hyZKHTD9PAoEA+Hw+AADQaDRQK4VC0ewXh8O5q7y9aNGiA8RtLpeb1dJj8evDvgoK\nCiyGDh16//Xr190VCgW8efPGSKFQwLRp007v3LlzJbGfSCRiKRQKiIqKCliyZMl+hUIBmzZtCtm1\na9eK1jjmo0ePTInbtra22Xl5eYy0tDQXT0/PRIVCAYsXL/5h+/btqxUKBVy5csWdQqHIX79+3f3x\n48c0KysrKfHYnTt3rgwJCdmkUCigZ8+eL//66y/jmpoazdGjR18NDAw83jhDQEBA1Pnz530VCgXQ\naLTHxHPKycmxcXFxSWvp3Mr5AUCRlvZpvxp+rRBCqOP4+++aWj7vWhxqKS4uNlLePnDgwGLi9suX\nL43V2wTq3CwsLArXrVu3deTIkTdYLJaYuIw1IiJi6d27d22YTGaepaVlwY8//jgP4H/nPDTVM/Ap\njrl69eodDAZDQqfTpY6OjpkMBkOivO+mTZtCU1JS3Ol0ujQ2NnaSiYnJC+IKqMZXzRDbmzdv3mBn\nZ5c1YsSIDHNz83tN7dMcVc+NEEKIHFpcQGzatGlnXFxcBPPmzftR+f7Dhw8vuHHjxsizZ89O/eQJ\nUbtSU1OjRaVS66lUav3t27cdFi9efCA3N9eaLOdujeq0H1olVkDC6/Yxk+rImAszqQYzqa7VFhDb\ns2fP8gkTJsSfOXNmmrW1dS4AQG5urnV1dbV2fHz8BHUEQB3LkydP+k+ePDlaLpdraGlp1URGRs7t\nDOdGCCGkmvdWp1UoFJTr16+PKigosKRQKApLS8uCUaNGXW+lfAipFRl7PBBCiOxarVYLQh0N1mpB\nCKEPp86GR4uTSxHqiNQ1M7u5rw9tdDS+BJIMMJPqyJgLM6kGM7UNbHgghBBCqNXgUAvqVLCqMmpv\ncOgOkUGrXdWCUEf0qSeXIqROPB4uRYM6FlINtfD5/ICgoKD9AAAhISEhZKmAu2nTptDU1FTXD33c\nxYsXfe7du2f+T4+jbgKlarLKlF//xhwdHTM/fbKP4+HhkVxWVmbQ1jk+VuNl1skAM6mOjLnIOE8A\nM6mGjJnUjVQ9Ho1XtvzY49TX11OpVGq9elI1VD39mMdduHDhSy8vr0RiNc6PPU5raek1z8zMdGzN\nLB8iOTnZo60zIIQQUs0n7/H46aefZjGZzDwWiyWeNWvWTwANy61PmjQplsvlZnO53Oxbt24NB1Ct\nwJdMJqONGjXqOpPJzBs9evS1p0+f9gNoKDS2YMGCw/b29nfWrFmzvaioyNTe3v4Og8GQrF+/fgux\ndHZFRYXe6NGjr3E4HCGDwZAQpd1lMhnN3Nz83rx58360srLKHzNmzBXlImbnz5+fKBQKOWw2W8Rm\ns0V0Ol2qoaEhBwCIjIycy+Vys1kslnjSpEmxVVVVOrdu3RqemJjotWrVqp3W1ta5v/322yDiOAAA\nqamprtbW1rkMBkMyZ86cYzU1NVoAADQaTRYSEhJC5Lt//75ZU6+Bs7PzTQ6HI+RwOMLbt287ADT0\nZLi4uAj8/PxizM3N782YMeMU8ZjLly+PNTc3v8fhcIQXLlz4srnX9+nTp/14PF7a0KFDH3z//fcb\nifv19PQqiPdo1apVO+l0upTBYEiio6MnAwDI5XKNRYsWHTQ3N7/n7u6e4uHhkUw8V6FQyHFxcRHY\n2NjcHTt27OUXL16YAAC4uLgIgoODw+zs7LLMzMzuZ2RkjABoaDiuWrVqJ5fLzWYymXnEku7Pnz/v\n7ezsfJN4/YnGEI1Gk71586Z7ZWWlroeHRzKLxRLT6XQpkY3siAJzZIKZVEfGXGRc+RIzqYaMmdTt\nkzY8CgoKLLdu3bouLS2NJxaLWREREUsBAJYtW7Zv+fLle7Kzs7mxsbGTvv6/9u48rIlr7wP4L4lB\nVFDQy2LdQFAUyUYwgBYBEdQCLmxqFVmqXqyidV/QCtcNt1ZxqdUqKO4srqgFhShVIRASFlEUBVdQ\nCiiLIJDM+wfvvG+aC21UJKP+Ps+T52GSyZnvHKI5nHNmzowZv6laZnBw8M6AgIDI7OxsztSpU4/O\nmzcvgnzt+fPnX926dct269ati8lj5OTksPv06fOE3KdTp051p0+fnigWi/nJyckjyfVLAAAKCwtN\n586duysvL89CR0fnFfnFSa4HwufzxRKJhCeRSHhjx469tGTJki0AAJ6ennEikUgglUq5gwcPvnPg\nwIHvhg0bdnPcuHHntm7dujgrK8uyf//+D8ly6uvrNQMCAiJPnTrlk5OTw25qaurwyy+/zCaPpaen\nVyYWi/mzZ8/+ZevWrYuV68DAwOBFUlKSs1gs5p84cWKyYh1IpVLujh075ufn55s/fPiw/82bN4fV\n19drzpo1a9+FCxfcxGIxv7S01LCl3g2CIGgikUgQHx/vkZOTw46JifEmbzlO7h8fH++RnZ3NycnJ\nYV+5cmXUkiVLtpSWlhrGx8d7PHr0qN+dO3cGR0dH+966dcuWRqMRjY2NzODg4J1xcXGemZmZVgEB\nAZEhISHryTJlMhkjPT3devv27T+QPUIHDhz4TkdH55VIJBKIRCLB/v37ZxYXFxsdP358ypgxYy5L\nJBJednY2h8PhZCtmu3z58phevXo9k0ql3NzcXNaYMWMuq/q5Qggh1D4+6lBLcnLySB8fn1Pdu3ev\nAADQ0dF5BQBw5cqVUYpzH6qrq7Vra2u7qFJmWlqaDXm79mnTph1ZunTpZoDmLx9vb+8Y8ksoLS3N\nhuzNmDJlyvHFixdvBWj+y3zFihUbU1NT7eh0uvz58+dfvXz5Uh8AwNjYuIjNZucAAPD5fHFxcbER\neVzF3piTJ09OysrKskxKSnIGAMjNzWWtWrVq3evXr7vV1NRoKX7hKffiEARBKygoMDM2Ni4yNTUt\nBADw8/M7tHv37jnz58/fAQDg4eERDwBgaWmZFR8f76FcBw0NDRpz587dlZ2dzWEwGLL79+8PIF8T\nCASir7766jkAAJfLlRYVFRl37tz5jbGxcZGJickDst7IXgRlLi4uibq6upVkjtTUVDvydvkAAH/8\n8cfX33777TEajUbo6+u/tLe3v5aRkTH0xo0bw318fE4BNDeMHB0dUwAACgoKzG7fvj1k1KhRVwCa\nezPIfMrnStZ3YmKiS25uLis2NtYLAKCqqqprYWGh6dChQzMCAwMPNjY2MidMmHCGbHiQ2Gx2zuLF\ni7cuX7483M3N7cLXX3/9R0vnGB4OYGjY/LOWFoCp6bsve9+W24WFAF5e6jt+S9vkc1TJo5iFKnnI\n7fb4/ZFUXdacfI4Ky7wrZ6FKHgCA7du3A5fLpUweoVAIUqkUfvjhB7XnEQqFEBUVBQAARkZG0JY+\nasODRqMRLQ2fEARBS09Pt9bQ0GhQ3l+VclsbkuncufObf3rv0aNHp/7555//ysrKsmQwGDJjY+Mi\nckilY8eOb8n9GAyGrK6urpPy+/Py8izCwsLWpKam2pF5/f39o86dOzeOxWLlHjp0yE8oFDr83Tkp\nP0cQBE3xOTIHg8GQNTU1/dfv6Oeff17Qs2fPkujoaF+ZTMbQ1NSsV36v4vtbOl5LddPSfuRwkuI+\nrb2/teeHDBlymxxOU9baue7atWuus7NzkvL+qampdhcuXHDz9/ePWrhw4U++vr7R5GsDBgy4L5FI\neAkJCa6rVq1a5+TkdHX16tVrlctYvrylJM2Uu82/1G3lL0B158HtZsrd8K1tK3+hvOv7v5RtxUYH\nFfJQadvBweEv22FhYdBWPupQy8iRI5NjYmK8KyoqugMAVFZW6gI0/1VNDrsANA8PAPz1i6u1L7Fh\nw4bdPHHixGSA5kbEiBEjrre0n42NTRr5FzO5P0DzX8/6+vovGQyGLCUlxfHRo0f9VDkXGo1GvHr1\nSmfKlCnHo6OjfXv06FFOvlZTU6NlaGhY2tjYyDxy5Mg08gtcW1u7WvlqCxqNRpiZmRUUFxcbPXjw\nwAQAIDo62tfe3v6aKjnIczA0NCwFaJ5DI5PJGH+Xe9CgQXeLi4uNHj582B8AoLVVhQmCoCUlJTlX\nVlbq1tXVdTp79ux45atZ7OzsUk+ePDlJLpfTy8rK9K5fvz7C2to6ffjw4Tfi4uI8CYKgvXjxwoBs\nfJmZmRWUlZXppaWl2QAANDY2MvPz883/7vxGjx79+549e74nGyL37t0b+ObNm86PHz/uq6enVzZj\nxozfvvvuuwMSiYSn+L6SkpKempqa9VOnTj26ePHire21Ku6HouIcAcykOirmUv5CoQLMpBoqZmpr\nH7XHw9zcPD8kJGS9vb39NQaDIbO0tMw6ePBgYERExLw5c+bs5nA42U1NTR3s7e2v7dmz53tyDgTA\n/8+rUC5z586dwQEBAZFbtmxZoq+v/zIyMjKAfE1x/+3bt/8wbdq0Ixs2bFg5evTo37t16/YaAGDq\n1KlH3d3dz7PZ7BwrK6tM8ooT5fe3tH3u3Llxjx8/7kvOSaHRaERWVpbl2rVrV1tbW6fr6emVWVtb\np9fU1GgBAEyePPnEzJkz9+/cuTM4JibGmyynY8eObyMjIwO8vb1jmpqaOggEAlFQUNBe5WO2Vgff\nf//9Hk9Pz7jDhw9PHzNmzGVy4mdLmcnj7du3b5arq2tC586d39jZ2aW2NLRFo9EIgUAg8vT0jHv6\n9GlvX1/faHKYhSx34sSJp2/dumXL4XCyaTQaQf4ePD09465evepkbm6e36dPnyeWlpZZ3bp1e81k\nMhtjY2O95s2bF/H69etuTU1NHRYsWPCzubl5fkvHBwCYMWPGb8XFxUaWlpZZBEHQ9PX1X54+fXqi\nUCh02LJlyxImk9mora1dffjw4emK78vNzWUtWbJkC51Ol2toaDSQ82YQQghRx2d759K6urpOnTp1\nqgNo7vE4efLkpL+7mgN9uNra2i5dunSpLS8v72FtbZ1+8+bNYfr6+i/VnUtRe6xO+66kUur91YyZ\nVPexc73PasdCoZByfzljJtVQMRMA3rlUJWKxmD937txdBEHQdHV1Kw8ePBio7kyfOzc3twuvXr3S\naWho0Pjxxx//Q7VGB0IIIfX7bHs8EGoJrtWCPjW4VguiAuzxQOgDYGMbIYTUh1JrtSD0JaLi2gyY\nSXVUzIWZVIOZ1AMbHgghhBBqNzjHA31RcI7Hh8H5Bgh9mXCOB0IfgGqX035KHB2r1R0BIfSJ++KH\nWqKiovyDg4N3AgCEhoaGbtu2bdHHOI7iyrTt4WOdi2J9/frrr/+Ojo72BQC4e/fuIC6XK+Xz+WLy\nDqkf4tChQ34lJSU9ye2ZM2fuV1zf53OivB4HFVAxE1XHvqmYCzOpBjOpxxff46F8p9CPeZz27Ob/\nkGM1NTV16NChQ9M/lfvvf//7V/LnM2fOTPD29o4hV55VhVwupyuvBUOKioryt7CwyOvZs2cJAMD+\n/ftnqn4GCCGEqOqz7PE4fPjwdA6Hk83lcqXTp08/DABQVlam5+XlFSsQCEQCgUBELlqmypjVixcv\nDCZOnHiay+VKuVyu9NatW7Zr1qwJ27Fjx3xyn5CQkPXk+jObNm1axmazc7hcrnTlypUbyH3IY4nF\nYr6Dg4PQysoqc8yYMZdLS0sNlY95/vx5dxsbmzRLS8ssZ2fnJHIF3dDQ0NDAwMCDjo6OKSYmJg92\n7twZTL5n/fr1IWZmZgV2dnapBQUFZi2di7+/f1RQUNDeoUOHZpiZmRUkJCS4AjR/0Y8bN+6ck5PT\nVWdn56TKykpdcgVYW1vbW7m5uSzlsshelUuXLo3dsWPH/F9++WW2k5PTVQCAI0eOTLO2tk7n8XiS\noKCgvXK5nA4AoKWlVbN48eKtZD2uXbt2tUAgELFYrFyyIRMbG+uVmZlpNXXq1KOWlpZZ9fX1mg4O\nDkKxWMwHaF5rhs1m57BYrNzly5eHk3m0tLRqVq1atY7L5UptbW1vkXVGdVS8GycVM1Hxbo4A1MyF\nmVSDmdTjs2t43L59e8j69etDUlJSHKVSKZdsDMyfP3/HggULfhaJRILY2Fgvcr0VVcybNy/C0dEx\nRSqVcrOysiyHDBlyOzAw8CC5VohcLqefPHlykq+vb/SlS5fGnjt3bpxIJBJIpVLu0qVLN5Pl0Gg0\norGxkRkcHLwzLi7OMzMz0yogICCypV4COzu71LS0NJusrCzLSZMmndy8efNS8rV79+4NTExMdBGJ\nRIKwsLA1MpmMIRaL+SdPnpyUnZ3NuXjx4jcZGRlDW1sZ9/Hjx30zMjKGJiQkuAYFBe19+/ZtRwAA\niUTCi4uL80xJSXH88ccf/8Pn88XZ2dmcDRs2rCQbcIoNNbIXZ+zYsZeCgoL2Lly48KerV6863blz\nZ/CpU6d8bt68OUwikfDodLr86NGjUwEA3rx509nGxiZNKpVyhw8ffmPu3Lm7RCKRIDc3l1VXV9fp\nwoULbl5eXrFWVlaZx44d+zYrK8tSU1OznjzW8+fPv1q+fHk4+fvNyMgYevbs2fFk2ba2trekUil3\nxIgR17GXBCGEqOezG2pJTk4e6ePjc6p79+4VAAA6OjqvAACuXLkySnGOQHV1tXZLC6W1JCUlxfHI\nkSPTAADodLq8a9euVV27dq3q0aNHuVQq5ZaWlhpaWlpm6erqVl65cmVUYGDgQXKpevL4AM1f2gUF\nBWa3b98eMmrUqCsAADKZjPHVV189Vz7mkydP+vj4+JwqLS01bGho0Ojfv/9DgOYve1dX1wQmk9nY\no0ePcn19/ZelpaWGqampdh4eHvGampr1mpqa9ePGjTvXWm+Oj4/PKQAAU1PTwv79+z+8e/fuIBqN\nRjg7OyeReW/cuDE8Pj7eAwDA0dExpby8vEd1dbW2clktrSh89epVJ7FYzLeyssoEaF43h1xNl8Fg\nyDw9PeMUf19btmxZ8ubNm84VFRXdLSws8tzc3C4ol01uZ2RkDHVwcBCSqwNPnTr16PXr10eMHz/+\nrIaGRoOrq2sCAACfzxcnJSU5t3T+4eEAhv/bx6SlBWBq2vpy8O2xXVgI4OWlvuO3tE0+p/w6wF/X\nklBefv1jbiuOfavj+K1tS6VS+OGHHyiTh6RYZ+rOQ9Xf3/bt24HL5VImD5U+T0KhEKKiogAAwMjI\nCNrSZ9fwoNFoREtfuARB0NLT0601NDQalPdXpdyWypwxY8ZvkZGRAS9evDAIDAw8+HfHVzRkyJDb\n5FBPa4KDg3cuXrx4q5ub24Vr167Zh4aGhpKvKZ4Dg8GQNTU1dVA+7rtc9kTWQZcuXWoVn1cu413m\njfj5+R3asGHDSuXnyd4LAID6+nrNOXPm7BaLxfxevXo9CwsLW1NfX6/5d8dTfo4gCBr5HJPJbCSf\np9Pp8qamphY/38uXt55beYjhS91uqcFBUuwKVu4Wxm1qbCt/oag7D1W3FRsdVMhDpW0HB4e/bIeF\nhUFb+eyGWkaOHJkcExPjXVFR0R0AoLKyUhcAwMXFJZEcdgEAkEqlXICW/2JX5uTkdJVcYl0mkzGq\nqqq6AjQvEX/58uUxmZmZVqNHj/4dAMDZ2TkpMjIyoK6urpPi8QGavzTNzMwKysrK9NLS0mwAABob\nG5n5+fnmysesqqrqSvaEREVF+f9dRhqNRowYMeL6mTNnJtTX12tWV1drX7hwwa2lL26CIGgxMTHe\nBEHQHjx4YPLw4cP+gwYNuqtcrp2dXSo5PCIUCh309PTKtLS0apTLaulnJyenq7GxsV5lZWV6AAAV\nFRXdHz9+3Fc5C9nI6NGjR3lNTY1WTEyMN/matrZ2NVnPiucpEAhE165dsy8vL+8hk8kYJ06cmGxv\nb39NuexPCRXnU1Axk/J/klRBxVyYSTWYST0+ux4Pc3Pz/JCQkPX29vbXGAyGzNLSMuvgwYOBERER\n8+bMmbObw+FkNzU1dbC3t7+2Z8+e7xWvNmntypMdO3bMnzVr1r4DBw58x2AwZHv37g2ytrZOZzKZ\njSNHjkzW1dWtJN83evTo36VSKdfKyiqT7Ppft27dKrIsJpPZGBsb6zVv3ryI169fd2tqauqwYMGC\nn83NzfMVjxkaGhrq7e0do6urWzly5MjkR48e9fu7jDweTzJp0qSTHA4nW19f/6VAIBC1VD80Go3o\n27fvY4FAIKqqqur666+//ltDQ6NBuVxyEiuHw8nu0qVL7aFDh/yUj9/az4MHD76zbt26VS4uLoly\nuZzOZDIb9+zZ833fvn0fKx5DR0fn1cyZM/dbWFjkGRoallpbW6eTr5GTYDt37vxGsXfI0NCwNDw8\nfLmjo2MKQRA0Nze3C+7u7ufJDIrniTcLQwgh6sE7l34AuVxO5/P54tjYWC8TE5MH6s6jioCAgEh3\nd/fzHh4e8erOog40Go2g2g3EpFLq9TC0lsnRUX2L7AkV5pZQCRVzYSbVYCbVteWdSz+7oZb2kp+f\nbz5gwID7o0aNuvKpNDoQQgghdcMeD/RFweGXD4NrtSD0ZcK1WhD6ANjYRggh9cGhFoTUTPH+BlSB\nmVRHxVyYSTWYST2w4YEQQgihdoNzPNAX5VOd44FzKxBC6oRzPBD6AFS7nFYVjo7V6o6AEEJtAoda\n0P+JioryDw4O3gnw/yvPvm9ZRkZGxRUVFd2Li4uNWCxW7odmE4vF/Pnz5+/40HKoSHF9FKqg4jgz\nFTMBUDMXZlINZlIP7PFA/0f5zp9tVVZb4PP5Yj6fL27LMhFCCLU/7PH4zB0+fHg6h8PJ5nK5UnJp\n+7KyMj0vL69YgUAgEggEIvKW5KqM350/f97dxsYmzdLSMsvZ2Tnp5cuX+gAA5eXlPVxcXBItLCzy\nZs6cuV+xLJlMxpg1a9Y+CwuLvNGjR/9OrtHy4MEDk7Fjx16ysrLKHDFixPWCggIzAICYmBhvFouV\ny+VypQ4ODkKA5vViyFujV1RUdJ8wYcIZDoeTbWtreys3N5cF8P+3eXd0dEwxMTF5sHPnzuA2rcyP\nhGp3LQWg5noRVMwEQM1cmEk1mEk9sOHxGbt9+/aQ9evXh6SkpDhKpVIuuUje/PnzdyxYsOBnkUgk\niI2N9ZoxY8ZvqpZpZ2eXmpaWZpOVlWU5adKkk5s3b14KABAWFrZmxIgR1/Py8iwmTpx4WnFRuPv3\n7w+YO3furry8PAsdHZ1XcXFxngAAs2bN2rdz587gzMxMqy1btiz5/vvv9wAArF27dnViYqKLVCrl\nnjt3bpxyhjVr1oTx+XxxdnY2Z8OGDSvJBhUAwL179wYmJia6iEQiQVhY2BqZTMZ4/xpECCHU1nCo\n5TOWnJw80sfH51T37t0rAJoXZQMAuHLlyqg7d+4MJverrq7Wrq2t7aJKmU+ePOnj4+NzqrS0ysll\nEgAAGCJJREFU1LChoUGjf//+DwEAUlNT7U6fPj0RAOCbb765qKurW0m+x9jYuIjNZucANA+ZFBcX\nG9XW1na5efPmMG9v7xhyv4aGBg0AgOHDh9/w8/M75OPjc6qlNWVu3LgxPD4+3gMAwNHRMaW8vLxH\ndXW1No1GI1xdXROYTGZjjx49yvX19V++ePHCgFzllxQeDmBo2PyzlhaAqWnry8G3x3ZhIYCX19/v\nT1Je7vxjbZPPtdfxVNlWzqbuPOS2VCqFH374gTJ5SPj7++ft7du3A5fLpUweKn2ehEIhREVFAQCA\nkZERtCW8nPYztmvXrrmlpaWGiqvjAgDo6emVPXv2rJeGhkaD4vOHDh3yy8zMtNq5c2dwWFjYGi0t\nrZpFixZtU9zHwcFBuHjx4q1ubm4Xrl27Zh8aGhqakpLiyOPxJPHx8R7GxsZFAM1L3d+/f39AVVVV\nV3d39/PkcMi2bdsW1dbWdlmwYMHPZmZmBc+fP/+qpewikUiQkJDgevjw4elisZifk5PD3rZt26Lz\n58+7W1paZsXFxXmSx+rbt+/j27dvD/npp58WKmZmsVi5CQkJrn379n1MlvupLhLX3ouzCSm4UBUV\nMwFQMxdmUg1mUh0uEodUMnLkyOSYmBjvioqK7gAAlZWVugAALi4uieSwCwCAVCrlAvx1jkdrH7Cq\nqqquZA9CVFSUP/n8iBEjrh87duxbAIBLly6NJY/VEoIgaNra2tXGxsZFsbGxXuRzOTk5bIDmuR8C\ngUAUFha2Rk9Pr+zp06e9Fd9vZ2eXevTo0akAzXM/9PT0yrS1tavb6h9Fe8M5HqqhYiYAaubCTKrB\nTOqBDY/PmLm5eX5ISMh6e3v7a1wuV0r2BERERMzLzMy04nA42UOGDLm9b9++WQDNvQHk1SiKPysK\nDQ0N9fb2jrGyssrU09MrI/dZs2ZN2PXr10dYWFjknT59emK/fv0eke9RLofcPnr06NQDBw58x+Vy\npRYWFnnkfI6lS5duZrPZOSwWK3f48OE32Gx2jmKe0NDQULFYzOdwONkrV67ccOjQIb+/y4wQQog6\ncKgFfVFwqEU1VOzupWImAGrmwkyqwUyqw6EWhBBCCH2SsMcDfVE+1aEYXKsFIaROuFYLQh8AG9sI\nIaQ+ONSCkJop3t+AKjCT6qiYCzOpBjOpB/Z4oC8OjfZJXnWL1ACHuBBqezjHA31RqHhVC6Ku9r6a\nCCGqwqtaEEIIIfRJwoYHhTEYDBmPx5Ow2ewcDw+P+JqaGi0AgOLiYiM6nS7ftWvXXHLfuXPn7iJv\npAUA0NTU1EFPT69sxYoVGz9Wvg0bNqxUZT8tLa2adynX398/ilxIbubMmfsV15X5HCmvx0IFmEl1\nVByTx0yqwUzqgQ0PCuvcufMbiUTCy8nJYXft2rXq119//Tf5mr6+/suIiIh5jY2NTID/vkw0KSnJ\nmc/ni8kv8I9h48aNK1TZ710vYVW8A+n+/ftnDh48+M775EMIIUQ92PD4RNja2t568OCBCbmtp6dX\n5uTkdFWxl0PRiRMnJs+ePfuX/v37P7x165ZtS/s4ODgIFy5c+NPQoUMzBg8efCcjI2PoxIkTTw8c\nOPDe6tWr15L7HTlyZJq1tXU6j8eTBAUF7ZXL5fTly5eH19XVdeLxeBJfX99oAIAJEyacsbKyyrSw\nsMjbv3//TMVjLVy48CcLC4u8UaNGXfnzzz//BdC8RoyNjU0ah8PJ9vDwiH/16pVOSxmzsrIs5XI5\n3d/fP4rFYuWy2eycHTt2zH+Xc6AyKq7VgplUR8W7TGIm1WAm9cCGxydAJpMxEhMTXSwsLPIUn1+6\ndOnmrVu3LpbL5X/5PdbX12smJyePHDt27CUfH59Tx48fn9JSuTQajejYsePbjIyMobNnz/5l/Pjx\nZ/fu3RuUl5dnERUV5V9ZWal7586dwadOnfK5efPmMIlEwqPT6fKjR49ODQ8PX96pU6c6iUTCi46O\n9gUAiIyMDMjMzLTKyMgYGhERMY9cKK62trbL0KFDM/Ly8izs7e2vhYWFrQEAmD59+uEtW7Ysyc7O\n5rBYrFzyeeWMAAASiYT3/Pnzr3Jzc1k5OTnsgICASFXPQbnM8HCAqKjmR2zsX7vwpVLcxm34C8Wu\nb6FQiNu4/UVsC4VC8Pf3B39/fwgNDYW2hFe1UFiHDh2aWCxW7rNnz3oZGRkVp6Wl2dDpdHlxcbER\nudS8n5/fIWdn56T09HRrKyurTD8/v0OxsbFeZ8+eHR8dHe1bUVHRncvlSh89etRPecjD0dExZcOG\nDSttbW1vJScnjwwPD1+emJjoAgBgb29/LSIiYl5qaqrdxo0bV+jr678EAKirq+v07bffHvvxxx//\no62tXV1dXa1NlhcaGhp65syZCQDN81ASExNdBAKBqEOHDk0NDQ0adDpdXlRUZOzh4RF/7do1exaL\nlfvo0aN+AAAPHz7s7+3tHSMWi/kBAQGR7u7u5z08POIdHR1Ttm3btqh///4PraysMr/55puLrq6u\nCS4uLok0Go1Q5Rw4HE42mZGKV7WoslZLe8NMzVS5qkVIwbU1MJNqMJPq8KqWLwTZo/Do0aN+mpqa\n9WfPnh2vvM/KlSs3bNq0aZniB+L48eNTkpKSnI2NjYv4fL64oqKi+9WrV51aOkbHjh3fAgDQ6XQ5\n+TO53dTU1AEAwM/P75BEIuFJJBLe3bt3B/3444//US5HKBQ6XL161SktLc1GKpVyeTyepL6+XlN5\nP4IgaC3N+finD7SOjs6r7OxsjoODg3Dv3r1BM2bM+E2Vc5DJZIy/KxchhFD7wobHJ6BTp051ERER\n80JCQtYrf0GbmZkVmJub558/f96dRqMRVVVVXf/444+vnzx50qeoqMi4qKjIeNeuXXNbG275OzQa\njXBycroaGxvrVVZWpgcAUFFR0f3x48d9AQCYTGYj2TipqqrqqqurW6mpqVl/9+7dQWlpaTZkOXK5\nnB4TE+MNAHDs2LFv7ezsUrt27Vqlq6tb+ccff3wNABAdHe3r4OAgbCkHQRC08vLyHjKZjOHh4RG/\ndu3a1RKJhPeu50NVVOtZAMBM74KKf51iJtVgJvXAO5dSmGLPAJfLlZqamhaeOnXKx8bGJk3xtZCQ\nkPWWlpZZAABnzpyZ4OTkdJXJZDaSr48bN+7csmXLNjU2NjIVn1c+Vks9EYMHD76zbt26VS4uLoly\nuZzOZDIb9+zZ833fvn0fz5o1ax+bzc7h8/niAwcOfLd3794gc3PzfDMzswJbW9tbZBldunSpFYlE\ngnXr1q0yMDB4cfLkyUkAAIcOHfILCgra++bNm84mJiYPIiMjA1rL9uzZs14BAQGR5HyW8PDw5aqe\nA0IIIerAOR7oi4JzPFSDmZrhHI+2g5lUQ8VMALg6LUIfxNFR3QnQp0JHR/ufd0IIvRPs8UBfFBqN\nRuBnHiGE3g1e1YIQQgihTxI2PBBSM8Ub+FAFZlIdFXNhJtVgJvXAOR7oi0OjtUlvoVrp6GhDZWWV\numMghNA7wzke6ItCxata3ocqV1sghFBbwTkeCCGEEPokYcODohgMhozH40ksLCzyuFyu9KefflpI\ntjaFQqEDnU6XX7hwwY3c383N7cK1a9fsye0///zzX0wms/HXX3/998fI9/r1626//PLL7H/ar7i4\n2IjFYuW+S9nkirQAAK6urglVVVVd3zfnp0B5UTIqoOI4MxUzAVAzF2ZSDWZSD2x4UFTnzp3fSCQS\nXl5enkVSUpLzpUuXxiqu3tq7d++n69evDyG3le/aGRMT4z1mzJjL73OrdFVUVlbq7tmz5/uPUbbi\neSQkJLh27doVJzMghNBnAhsenwA9Pb2yffv2zdq1a9dc8jkOh5Oto6Pz6sqVK6Naes+JEycmr1u3\nbtXLly/1nz171qulfYyMjIpXrly5gcfjSaysrDKzsrIsXVxcEk1NTQsVe0q2bNmyRCAQiDgcTnbo\n/66PvHz58vAHDx6Y8Hg8ybJlyzbV1tZ2GTVq1BU+ny9ms9k5586dG0e+v6mpqcO0adOOmJub53t7\ne8fU1dV1AgC4evWqk6WlZRabzc757rvvDjQ0NGi0lLGioqJ7bW1tF1dX1wQulytlsVi55Novqp4D\nlVHtDqEA1FwvgoqZAKiZCzOpBjOpBzY8PhHGxsZFMpmMQS7WBtC8Mu26detWKe/75MmTPi9fvtTn\ncDjZXl5eseTaKMpoNBrRr1+/RxKJhDdixIjr/v7+UadPn56YlpZms2bNmjAAgMTERJfCwkJTkUgk\nkEgkPLFYzE9NTbXbtGnTMhMTkwcSiYS3adOmZZqamvWnT5+eKBaL+cnJySMXLVq0jTxOQUGB2Zw5\nc3bn5+ebd+3atWrPnj3f19fXawYEBESeOnXKJycnh93U1NShpaEbsvfj8uXLY3r16vVMKpVyc3Nz\nWaNHj/5d1XNQFh4OEBXV/IiN/etQh1T6aW0LhcK/dM3iNm7jNm63xbZQKAR/f3/w9/eH//17s83g\nVS0Upa2tXV1dXf2X+zXr6upW3rt3b+Dt27eHbNu2bdH58+fdHRwchOvXrw8JDw9fvmTJki0jRoy4\nvnXr1sWvX7/utnbt2tW5ubmswMDAgxkZGUOVj2FsbFx08+bNYT179iyJjIwMSEtLsyF7Cfr16/co\nJyeHvXbt2tVxcXGeOjo6rwAAamtru6xYsWKjo6Njiru7+/nc3FwWAEBjYyNzwYIFP6emptrR6XT5\nvXv3BhYVFRm/efOms729/bVHjx71AwBISUlxjIiImBcWFrYmODh4JzkvJTk5eeTu3bvnxMXFeTo6\nOqZs27ZtkaWlZZaxsXGRWCzml5eX93BxcUmcNGnSSTc3twtff/31H6qcQ25uLktxqIaKV7W8zxok\nH/uqFqGQeutFUDETADVzYSbVYCbV4VotX6CHDx/2ZzAYMj09vTLF50NCQtavXbt2teKqs8ePH5/y\n4sULgyNHjkwDACgpKelZWFhoampqWqhcbseOHd8CANDpdLmGhkYD+TydTpeTS96vWLFi46xZs/Yp\nvq+4uNhIcfvo0aNT//zzz39lZWVZMhgMmbGxcVF9fb0mwF/nbBAEQWtpBdl/+kAPGDDgvkQi4SUk\nJLiuWrVqnZOT09XVq1evVfUcEEIIUQMOtXwCysrK9IKCgvYGBwfvVH7N2dk56dWrVzo5OTlsAIB7\n9+4NrK2t7fL06dPeRUVFxkVFRcbLly8P/6dJpi198dNoNGL06NG/Hzx4MLC2trYLAMCzZ896lZWV\n6Sn3yFRVVXXV19d/yWAwZCkpKY5kDwcAwOPHj/umpaXZAAAcO3bsWzs7u1QzM7OC4uJiowcPHpgA\nAERHR/s6ODgIW8tXUlLSU1NTs37q1KlHFy9evFUikfBUOYdPAc7xUA0VMwFQMxdmUg1mUg/8a5Ci\n6urqOvF4PEljYyOzQ4cOTdOnTz+8cOHCnwD++wqWkJCQ9RMmTDgD0Dyp1MPDI16xLE9Pz7jJkyef\nIHsISIplKJdJ/uzs7Jx0586dwba2trcAALS0tGqOHj061djYuGj48OE3WCxW7jfffHNx6dKlm93d\n3c+z2ewcKyurzMGDB98hyzIzMyvYvXv3nMDAwINDhgy5PXv27F86duz4NjIyMsDb2zumqampg0Ag\nEAUFBe1VrgcyR25uLmvJkiVb6HS6nMlkNu7duzeopX1bOgeEEELUgXM80BcF53iohorjzFTMBEDN\nXJhJNZhJdTjHA6EP4Oio7gQfTkdH+593+gBSqZRy//lRMRMANXNhJtVgJvXAOR7oi0MQBKUea9as\neef3fOwF4l69evVRy38fVMwEQM1cmEk1mEk9sOGBEEIIoXaDDQ+E1Ky4uFjdEf4LZlIdFXNhJtVg\nJvXAyaXoi4JXuiCE0Ptpq8ml2PBACCGEULvBoRaEEEIItRtseCCEEEKo3WDDA30RLl++PGbQoEF3\nBwwYcH/Tpk3L2vPYRkZGxWw2O4fH40kEAoEIAKCioqK7s7Nz0sCBA++5uLgkvnr1Sofcf+PGjSsG\nDBhwf9CgQXcTExNd2iJDYGDgQQMDgxcsFiuXfO59MojFYj6LxcodMGDA/fnz5+/4GLlCQ0NDe/fu\n/ZTH40l4PJ7k0qVLY9sz15MnT/o4OjqmDBky5LaFhUVeRETEPAD11ldrmdRZV/X19ZrW1tbpXC5X\nam5unr9ixYqNAOqtp9YyqfszBQAgk8kYPB5P4u7ufh6AGv/+lDO1Wz2p+x4G+MDHx340NTUxTExM\nCouKiowaGhqYHA5Hmp+fP7i9jm9kZFRUXl7eXfG5JUuWbN60adNSgiAgPDx82bJly8IJgoDbt2+b\nczgcaUNDA7OoqMjIxMSkUCaT0T80w/Xr1+2ysrJ4FhYWue+TQS6X0wiCgKFDh4rS09MFBEHA2LFj\nL166dGlMW+cKDQ1ds23btoXK+7ZXrpKSEkOJRMIlCAKqq6u1Bg4cWJCfnz9YnfXVWiZ111VtbW1n\ngiCgsbGxg7W1dVpqaurX6v5ctZRJ3fVEEARs27Zt4bfffnvU3d39HFX+/Slnaq96wh4P9NkTiUQC\nU1PTQiMjo2Imk9k4efLkE2fPnh3fnhkIpdng586dG+fn53cIAMDPz+/QmTNnJgAAnD17dvyUKVOO\nM5nMRiMjo2JTU9NCkUgk+NDj29nZperq6la+b4b09HTrkpKSntXV1dpkr8306dMPk+9py1wALc+e\nb69choaGpVwuVwrQvDbR4MGD7zx79qyXOuurtUwA6q2rzp07vwEAaGho0JDJZAxdXd1KdX+uWsoE\noN56evr0ae+LFy9+M2PGjN/IHOqup5YyEQRBa496woYH+uw9e/asV58+fZ6Q2717935K/qfdHmg0\nGjFq1KgrVlZWmfv3758JAPDixQsDAwODFwAABgYGL168eGEAAPD8+fOvevfu/bQ9sr5rBuXne/Xq\n9exjZdu5c2cwh8PJ/u677w6QXdDqyFVcXGwkkUh41tbW6VSpLzKTjY1NGoB660oul9O5XK7UwMDg\nBTkUpO56aikTgHrracGCBT9v2bJlCZ1Ol5PPqbueWspEo9GI9qgnbHigz566791x48aN4RKJhHfp\n0qWxu3fvnpOammqn+LryqrrK2iP/P2VoT7Nnz/6lqKjIWCqVcnv27FmyaNGiberIUVNTo+Xp6Rm3\nY8eO+dra2tWKr6mrvmpqarS8vLxid+zYMV9LS6tG3XVFp9PlUqmU+/Tp097Xr18fkZKS8peVkNRR\nT8qZhEKhgzrr6cKFC276+voveTyepKXeBID2r6fWMrVXPWHDA332evXq9ezJkyd9yO0nT570UWyl\nf2w9e/YsAQDQ09Mrmzhx4mmRSCQwMDB4UVpaaggAUFJS0lNfX/9lS1mfPn3au1evXs8+Rq53ydC7\nd++nvXr1evb06dPeHzubvr7+S/I/4hkzZvxGDjW1Z67Gxkamp6dnnK+vb/SECRPOAKi/vshM06ZN\nO0JmokJdAQB069bttaura4JYLOaru56UM2VmZlqps55u3rw57Ny5c+OMjY2LpkyZcjw5OXmkr69v\ntDrrqaVM06dPP9xu9fQhE1PwgY9P4dHY2Nihf//+D4qKiozevn2r0Z6TS2traztXVVVpEwQBNTU1\nXYYNG3bj999/d1myZMnm8PDwZQRBwMaNG5crTyx7+/atxsOHD4379+//gJzE9aGPoqIiI+XJpe+a\nQSAQpKelpVnL5XJaW0xuaynX8+fPe5I///TTTwumTJlyrD1zyeVymq+v7+EffvjhZ8Xn1VlfrWVS\nZ12VlZX9q7KyUocgCHjz5k0nOzu761euXHFSZz21lqmkpMRQnZ8p8iEUCu3d3NzOq/vz1Fqm9vo8\nffB/ZvjAx6fwuHjx4tiBAwcWmJiYFG7YsGFFex334cOHxhwOR8rhcKRDhgzJI49dXl7e3cnJ6cqA\nAQPuOTs7J5L/WRIEAevXr19pYmJSaGZmdvfy5cuj2yLH5MmTj/fs2fM5k8ls6N2795ODBw8GvE+G\nzMxMvoWFRa6JiUlhcHBwRFvnOnDgQKCvr+9hFouVw2azs8ePH3+mtLTUoD1zpaamfk2j0eQcDkfK\n5XIlXC5XcunSpTHqrK+WMl28eHGsOusqJyeHxePxsjgcjpTFYuVs3rx5yft+tj92JnV/psiHUCi0\nJ68gocK/P4IgICUlxYHMNG3atOj2qCe8ZTpCCCGE2g3O8UAIIYRQu8GGB0IIIYTaDTY8EEIIIdRu\nsOGBEEIIoXaDDQ+EEEIItRtseCCEEEKo3fwPtgVFR4sBYJMAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }