{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy\n", "from pylab import *" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data files\n", "\n", "These data files were generated like so (with either `--dna` or `--protein`)\n", "\n", "```\n", "for k in 15 18 21 30;\n", "do\n", "../sourmash search ecoliMG1655.fa.sig *.sig -k $k --dna \\\n", " --csv ecoli.k$k.dna.csv --threshold=0.001;\n", "done\n", "```\n", "\n", "and the files are available if you like. The .sig files were generated from genomes found by similarity search with E. coli mg1655 with DNA search at a k-mer size of 21." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ecoli.k15.dna.csv ecoli.k18.dna.csv ecoli.k21.dna.csv ecoli.k30.dna.csv\r\n", "ecoli.k15.prot.csv ecoli.k18.prot.csv ecoli.k21.prot.csv ecoli.k30.prot.csv\r\n" ] } ], "source": [ "ls *.csv" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fieldnames = ['similarity_qa', 'similarity_aq', 'name', 'filename']" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import csv" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "r = csv.DictReader(open('ecoli.k21.prot.csv', 'r'))\n", "protk21 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k30.prot.csv', 'r'))\n", "protk30 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k15.prot.csv', 'r'))\n", "protk15 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k18.prot.csv', 'r'))\n", "protk18 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "r = csv.DictReader(open('ecoli.k21.dna.csv', 'r'))\n", "dnak21 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k30.dna.csv', 'r'))\n", "dnak30 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k15.dna.csv', 'r'))\n", "dnak15 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])\n", "\n", "r = csv.DictReader(open('ecoli.k18.dna.csv', 'r'))\n", "dnak18 = dict([ (d['name'], float(d['similarity_aq'])) for d in r ])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = []\n", "for name in protk21:\n", " r = []\n", " r.append(protk21[name])\n", " r.append(dnak21[name])\n", " r.append(protk30.get(name, 0))\n", " r.append(dnak30.get(name, 0))\n", " r.append(protk15.get(name, 0))\n", " r.append(dnak15.get(name, 0))\n", " r.append(protk18.get(name, 0))\n", " r.append(dnak18.get(name, 0))\n", " x.append(r)\n", "x = numpy.array(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comparing DNA similarity to protein similarity\n", "\n", "On the graph below, each point is the protein similarity between the given genome and E. coli MG1655 (x), _or_ the DNA similarity between that genome and E. coli (y).\n", "\n", "Conclusion: protein matching is always more similar than DNA matching, for the same k-mer size." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nO1Ovf+cuQgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(x[:,4], x[:,5], 'g.', label='k15')\n", "plot(x[:,6], x[:,7], 'o', label='k18')\n", "plot(x[:,0], x[:,1], 'r*', label='k21')\n", "plot(x[:,2], x[:,3], 'b*', label='k30')\n", "\n", "axis(xmin=0, ymin=0)\n", "xlabel('protein')\n", "ylabel('dna')\n", "title('protein similarity vs DNA similarity for different k-mer sizes')\n", "legend(loc='upper left')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Protein at k=21 vs protein at other k-mer sizes\n", "\n", "As expected, k18 and k15 have less stringency. k=21 and k=30 seem to more or less match\n", "(the red dots form a straight line).\n", "\n", "I was a little surprised that all the lines are straight, but I got over it." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(x[:,0], x[:,4], 'g.', label='y = k15')\n", "plot(x[:,0], x[:,6], 'bo', label='y = k18')\n", "plot(x[:,0], x[:,2], 'r*', label='y = k30')\n", "\n", "\n", "axis(xmin=0, ymin=0)\n", "ylabel('similarity at other k')\n", "xlabel('similarity at k21')\n", "legend(loc='upper left')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Results from random genome\n", "\n", "Random genome (5e6 bases) against E. coli, in protein space. This gives us background similarities where we shouldn't trust matches.\n", "\n", "```\n", "% ../sourmash search --protein -k 21 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.022 ecoliMG1655.fa.sig\n", "\n", "% ../sourmash search --protein -k 18 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.202 ecoliMG1655.fa.sig\n", "\n", "\n", "% ../sourmash search --protein -k 15 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.698 ecoliMG1655.fa.sig\n", "```\n", "\n", "## Results from random genome, omitting stop codons\n", "\n", "Below, I omit any k-mers that have a stop codon in them.\n", "\n", "```\n", "../sourmash search --protein -k 21 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.022 ecoliMG1655.fa.sig\n", " \n", "../sourmash search --protein -k 18 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.224 ecoliMG1655.fa.sig\n", " \n", "../sourmash search --protein -k 15 random5e6.fa.sig ecoliMG1655.fa.sig --threshold=0.001\n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.742 ecoliMG1655.fa.sig\n", "```\n", "\n", "## E. coli protein sequences against E. coli genome\n", "\n", "Here the genome sequence is translated in all six reading frames, and the FAA sequence is taken directly:\n", "\n", "```\n", "./sourmash compute --input-is-protein -k 18,21 GCF_000005845.2_ASM584v2_protein.faa.gz --name mg1655-faa -o mg1655-faa.sig --protein -f\n", "```\n", "\n", "```\n", "./sourmash search mg1655-faa.sig --protein -k 21 prot-many/ecoliMG1655.fa.sig \n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.164 prot-many/ecoliMG1655.fa.sig\n", " \n", "./sourmash search mg1655-faa.sig --protein -k 18 prot-many/ecoliMG1655.fa.sig \n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.148 prot-many/ecoliMG1655.fa.sig\n", "```\n", "\n", "## E. coli protein sequences against E. coli genome, omitting stop codons\n", "\n", "Below, I omit any k-mers that have a stop codon in them. This gives better (stronger) matches.\n", "\n", "```\n", "./sourmash search mg1655-faa.sig --protein -k 18 prot-many/ecoliMG1655.fa.sig \n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.198 prot-many/ecoliMG1655.fa.sig\n", " \n", "% ./sourmash search mg1655-faa.sig --protein -k 21 prot-many/ecoliMG1655.fa.sig \n", "# running sourmash subcommand: search\n", "loading db of signatures from 1 files\n", "loaded 1 signatures total.\n", "1 matches; showing 3:\n", " ../ecoliMG1655.fa 0.210 prot-many/ecoliMG1655.fa.sig\n", "```" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }