{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Automating a Workflow: Beyond Blast - to GO Slim" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The concept is that you can take a fasta file in a working directory and end up with GO slim information all within a single notebook that is automated. Currently this work by writing (and overwriting) as scracth file to SQLShare. Assumptions are that you are working in a directory with fasta file named `query.fa`. And blast algorithms are in PATH. \n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#allows plots to be shown inline\n", "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "#Setting Working Directory\n", "wd=\"/Volumes/web/whale/fish546/pipeline_test_dir4\"\n", "#Setting directory of Blast Databases\n", "dbd=\"/Volumes/Bay3/Software/ncbi-blast-2.2.29\\+/db/\"\n", "#Database name\n", "dbn=\"uniprot_sprot_r2013_12\"\n", "#Blast algorithim\n", "ba=\"blastx\"\n", "#Location of SQLShare python tools: you can empty (\"\") if tools are in PATH\n", "spd=\"/Users/sr320/sqlshare-pythonclient/tools/\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "cd {wd}" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/Volumes/web/whale/fish546/pipeline_test_dir4\n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "!{ba} -query query.fa -db {dbd}{dbn} -out {dbn}_{ba}_out.tab -evalue 1E-50 -num_threads 4 -max_hsps_per_subject 1 -max_target_seqs 1 -outfmt 6" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "!head -1 {dbn}_{ba}_out.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "#Translate pipes to tab so SPID is in separate column for Joining\n", "!tr '|' \"\\t\" <{dbn}_{ba}_out.tab> {dbn}_{ba}_out2.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "!head -1 {dbn}_{ba}_out2.tab" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "#Uploads formatted blast table to SQLshare; currently has generic name and meant to be temporary: Warning will overwrite.\n", "!python {spd}singleupload.py -d scratchblast_out {dbn}_{ba}_out2.tab" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "processing chunk line 0 to 1415 (0.00155401229858 s elapsed)\r\n", "pushing uniprot_sprot_r2013_12_blastx_out2.tab...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "parsing 4F375922...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "finished scratchblast_out\r\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "!python {spd}fetchdata.py -s \"SELECT * FROM [sr320@washington.edu].[scratchblast_out]blast Left Join [sr320@washington.edu].[uniprot-reviewed_wGO_010714]unp ON blast.Column3 = unp.Entry Left Join [sr320@washington.edu].[SPID and GO Numbers]go ON unp.Entry = go.SPID Left Join [sr320@washington.edu].[GO_to_GOslim]slim ON slim.GO_id = go.GOID\" -f tsv -o {dbn}_join2goslim.txt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "!head -2 {dbn}_join2goslim.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Column1\tColumn2\tColumn3\tColumn4\tColumn5\tColumn6\tColumn7\tColumn8\tColumn9\tColumn10\tColumn11\tColumn12\tColumn13\tColumn14\tEntry\tEntry name\tGene ontology IDs\tInteracts with\tCross-reference (GO)\tGene ontology (GO)\tStatus\tInterPro\tPathway\tProtein names\tGene names\tOrganism\tLength\tSPID\tGOID\tGO_id\tterm\tGOSlim_bin\taspect\r", "\r\n", "ConsensusfromContig4183\tsp\tA0JMD0\tCLU_DANRE\t89.32\t206\t22\t0\t23\t640\t958\t1163\t4E-112\t356\tA0JMD0\tCLU_DANRE\tGO:0005737; GO:0048312\t\t\tcytoplasm; intracellular distribution of mitochondria\treviewed\tIPR027523; IPR025697; IPR028275; IPR023231; IPR011990;\t\tClustered mitochondria protein homolog\tcluh zgc:152873\tDanio rerio (Zebrafish) (Brachydanio rerio)\t1400\tA0JMD0\tGO:0005488\tGO:0005488\tbinding\tother molecular function\tF\r", "\r\n" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "!python {spd}singleupload.py -d scratchjoin_slim {dbn}_join2goslim.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "processing chunk line 0 to 17730 (0.107241153717 s elapsed)\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "pushing uniprot_sprot_r2013_12_join2goslim.txt...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "parsing 9474190F...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "finished scratchjoin_slim\r\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "#Sets GO aspect \n", "!python {spd}fetchdata.py -s \"SELECT Distinct Column1 as query, Column3 as SPID, GOSlim_bin FROM [sr320@washington.edu].[scratchjoin_slim] Where aspect = 'P'\" -f tsv -o justslim.txt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "!head justslim.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "query\tSPID\tGOSlim_bin\r", "\r\n", "ConsensusfromContig10\tQ9PVZ4\tcell organization and biogenesis\r", "\r\n", "ConsensusfromContig10\tQ9PVZ4\tdevelopmental processes\r", "\r\n", "ConsensusfromContig10\tQ9PVZ4\tother metabolic processes\r", "\r\n", "ConsensusfromContig10\tQ9PVZ4\tprotein metabolism\r", "\r\n", "ConsensusfromContig10\tQ9PVZ4\tsignal transduction\r", "\r\n", "ConsensusfromContig1003\tQ92922\tcell organization and biogenesis\r", "\r\n", "ConsensusfromContig1003\tQ92922\tdevelopmental processes\r", "\r\n", "ConsensusfromContig1003\tQ92922\tRNA metabolism\r", "\r\n", "ConsensusfromContig1003\tQ92922\tsignal transduction\r", "\r\n" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "#from pandas import *\n", "\n", "jslim = read_table(\"justslim.txt\", # name of the data file\n", " #sep=\",\", # what character separates each column?\n", " na_values=[\"\", \" \"]) # what values should be considered \"blank\" values?" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "jslim.groupby('GOSlim_bin').query.count().plot(kind='bar')\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "!say \"hash tag winning\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 33 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Below is optional" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#could also upload again to get a simple table\n", "#could be done in pandas\n", "\n", "#!python {spd}singleupload.py -d scratchpie justslim.txt" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "processing chunk line 0 to 2538 (0.00250601768494 s elapsed)\r\n", "pushing justslim.txt...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "parsing 87B0B7A8...\r\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "finished scratchpie\r\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "#fetching data grouped by GObin\n", "\n", "#!python {spd}fetchdata.py -s \"SELECT GOSlim_bin, COUNT(GOSlim_bin) as termcount from [sr320@washington.edu].[scratchpie] Group by GOSlim_bin\" -f tsv -o justpie.txt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }