Skip to content

Instantly share code, notes, and snippets.

@martijnvermaat
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save martijnvermaat/3b6658722de5bcf0610c to your computer and use it in GitHub Desktop.
Save martijnvermaat/3b6658722de5bcf0610c to your computer and use it in GitHub Desktop.
Profiling k-mer pairwise comparison
.ipynb_checkpoints
*.pdf
*.fa
[abcde].k1
[abcde].k2
[abcde].k3
[abcde].k4
[abcde].k5
[abcde].k6
[abcde].k7
[abcde].k8
[abcde].k9
[abcde].k10
[abcde].k11
[abcde].k12
[abcde].k13
[abcde].k14
[abcde].k15

Profiling k-mer pairwise comparison

We profile k-mer pairwise comparision for k=[1,12] using the kMer analysis toolkit and programming library for k-mer profiles.

See the IPython notebook for more information.

0.542464971542 26120
0.663958072662 42492
0.972708940506 91608
2.24748587608 288264
7.51165699959 1074688
27.2333760262 4220276
108.990545034 16803304
0.541092157364 26120
0.547954082489 26120
0.578961849213 26120
0.578741788864 26144
0.586236000061 26196
0.567816019058 26360
0.570757865906 27144
0.593155145645 30204
5.48644304276 26120
5.7480931282 42528
6.13077187538 91608
7.46066999435 288280
13.2450871468 1074684
34.4764480591 4220288
116.609779835 16803324
5.44484806061 26128
5.53405499458 26124
5.82787203789 26128
5.84015107155 26152
5.82632112503 26292
5.79324197769 26752
5.74274420738 27332
5.71768307686 30264
54.6297440529 26116
57.8999540806 43588
58.0587861538 91868
60.5846529007 288448
72.2292790413 1074680
93.4170598984 4220460
174.824126005 16803412
54.5379779339 26120
54.4764060974 26120
57.6308250427 26124
58.1498789787 26144
57.4757890701 26264
57.5336329937 26756
57.6689498425 28424
58.0697989464 32832
0.00376987457275 27948
0.248427867889 121492
1.09074687958 397148
4.51135492325 1499740
17.9062130451 5669460
61.405629158 20096264
199.224109173 63755916
0.00374603271484 27944
0.00378704071045 27944
0.0042028427124 28036
0.00458002090454 28204
0.00510907173157 28544
0.00836801528931 29532
0.0185878276825 34008
0.0714981555939 52820
0.00386595726013 27948
0.253719091415 122176
1.1847550869 397036
4.87614607811 1499924
19.3254239559 5670424
68.5020990372 20095424
216.661634207 63754052
0.00380110740662 27936
0.00382900238037 27936
0.00426483154297 28044
0.00455498695374 28208
0.00516986846924 28472
0.00827503204346 29584
0.0180509090424 33936
0.0715341567993 52776
0.00382304191589 27940
1946.50338984 13000560
5011.18195319 42178040
0.00398802757263 27940
0.00459003448486 27940
0.00705599784851 27952
0.0167629718781 28212
0.0539407730103 28568
0.0038058757782 27944
11.3999941349 121544
44.8743479252 392128
209.745757103 1367460
775.451279879 4249036
2038.04450011 13000368
4487.34653401 39471116
0.00396203994751 27940
0.00455594062805 27944
0.00734496116638 28048
0.0167670249939 28208
0.0530319213867 28560
0.208234071732 29528
0.775527000427 34012
3.10026812553 52828
#!/usr/bin/env python
import resource
import sys
import timeit
from k_mer import klib
def index(filename, k):
with open(filename) as f:
profile = klib.Profile.from_fasta(f, k)
def profile_index(filename, k):
repeats = timeit.repeat('index({0}, {1})'.format(repr(filename), k),
setup='from __main__ import index',
repeat=3, number=1)
usage_time = min(repeats)
usage_memory = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
return usage_time, usage_memory
if __name__ == '__main__':
if len(sys.argv) != 3:
sys.stdout.write('Usage: %s SAMPLE K\n' % sys.argv[0])
sys.exit(1)
usage_time, usage_memory = profile_index(sys.argv[1], int(sys.argv[2]))
print usage_time, usage_memory
#!/bin/bash
for fasta in a.fa b.fa c.fa; do
# Copy it to local storage
local_fasta=$(mktemp)
cp $fasta $local_fasta
# Read it once, so we have no cache effects
./profile_count.py $local_fasta 4 > /dev/null
for k in {1..15}; do
./profile_count.py $local_fasta $k > ${fasta%.fa}.count.k${k}
done
rm $local_fasta
done
#!/usr/bin/env python
import resource
import sys
import timeit
from k_mer import ProfileFileType, kdistlib, klib
def distance(filename_a, filename_b, **diff_args):
with ProfileFileType()(filename_a) as f_a, ProfileFileType()(filename_b) as f_b:
profile_a = klib.Profile.from_file(f_a)
profile_b = klib.Profile.from_file(f_b)
if profile_a.length != profile_b.length:
raise ValueError('trying to compare profiles for different k')
dist = kdistlib.ProfileDistance(**diff_args)
dist.distance(profile_a, profile_b)
def profile_distance(filename_a, filename_b, **diff_args):
repeats = timeit.repeat('distance({0}, {1}, **{2})'.format(repr(filename_a),
repr(filename_b),
repr(diff_args)),
setup='from __main__ import distance',
repeat=3, number=1)
usage_time = min(repeats)
usage_memory = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
return usage_time, usage_memory
if __name__ == '__main__':
if len(sys.argv) != 4:
sys.stdout.write('Usage: %s PROFILE_LEFT PROFILE_RIGHT MODE\n' % sys.argv[0])
sys.exit(1)
if sys.argv[3] not in ('default', 'scale', 'smooth', 'scale.smooth'):
sys.stdout.write('Not a valid mode: %s\n' % sys.argv[3])
sys.exit(1)
if sys.argv[3] == 'default':
usage_time, usage_memory = profile_distance(sys.argv[1], sys.argv[2])
elif sys.argv[3] == 'scale':
usage_time, usage_memory = profile_distance(sys.argv[1], sys.argv[2], do_scale=True)
elif sys.argv[3] == 'smooth':
usage_time, usage_memory = profile_distance(sys.argv[1], sys.argv[2], do_smooth=True, threshold=10)
elif sys.argv[3] == 'scale.smooth':
usage_time, usage_memory = profile_distance(sys.argv[1], sys.argv[2], do_scale=True, do_smooth=True, threshold=10)
print usage_time, usage_memory
#!/bin/bash
# Copy fasta files to local storage to speed things up
local_fasta_d=$(mktemp)
local_fasta_e=$(mktemp)
cp d.fa $local_fasta_d
cp e.fa $local_fasta_e
for k in {1..15}; do
# Create profiles
kMer count -k $k d.k${k} $local_fasta_d
kMer count -k $k e.k${k} $local_fasta_e
# Copy profiles to local storage
local_d=$(mktemp)
local_e=$(mktemp)
cp d.k${k} $local_d
cp e.k${k} $local_e
# Read them once, so we have no cache effects
kMer info $local_d > /dev/null
kMer info $local_e > /dev/null
./profile_distance.py $local_d $local_e default > distance.default.k${k}
./profile_distance.py $local_d $local_e scale > distance.scale.k${k}
./profile_distance.py $local_d $local_e smooth > distance.smooth.k${k}
./profile_distance.py $local_d $local_e scale.smooth > distance.scale.smooth.k${k}
rm $local_d $local_e
done
rm $local_fasta_d $local_fasta_e
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:6b7dbc6918b6e72f96d3747c6d1b9265d8346ef2941c7e0719a5b9fe5a5d14ca"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"Profiling k-mer counting and distance calculation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We profile k-mer counting and calculation of distance between counts for $k = [1, 15]$ using the [kMer](http://www.lgtc.nl/kMer) analysis toolkit and programming library for k-mer profiles.\n",
"\n",
"All datasets are 90bp reads from Illumina full-genome sequencing of human DNA. The hardware used for profiling has 24 gigabytes of memory and 24 cores (Intel Xeon E7540 at 2GHz), although only one core is used by kMer.\n",
"\n",
"Reported timings are always best of 3. Reported memory usage is influenced by many things such as Python garbage collection and is therefore not exact."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from __future__ import division\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import pandas as pd\n",
"\n",
"K_VALUES = range(1, 16)\n",
"\n",
"%matplotlib inline"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Profile k-mer counting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We first profile the process of k-mer counting on three datasets of different size."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%bash\n",
"# Note that all results are stored on disk, so you may not have to run this.\n",
"#./profile_count.sh"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"samples = {'a': '10,000 reads',\n",
" 'b': '100,000 reads',\n",
" 'c': '1,000,000 reads'}"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"usage_time = pd.DataFrame({label: [float(next(open('%s.count.k%i' % (sample, k))).split()[0])\n",
" for k in K_VALUES]\n",
" for sample, label in samples.items()},\n",
" index=K_VALUES)\n",
"usage_time"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1,000,000 reads</th>\n",
" <th>10,000 reads</th>\n",
" <th>100,000 reads</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 54.629744</td>\n",
" <td> 0.542465</td>\n",
" <td> 5.486443</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 54.537978</td>\n",
" <td> 0.541092</td>\n",
" <td> 5.444848</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 54.476406</td>\n",
" <td> 0.547954</td>\n",
" <td> 5.534055</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 57.630825</td>\n",
" <td> 0.578962</td>\n",
" <td> 5.827872</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 58.149879</td>\n",
" <td> 0.578742</td>\n",
" <td> 5.840151</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> 57.475789</td>\n",
" <td> 0.586236</td>\n",
" <td> 5.826321</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 57.533633</td>\n",
" <td> 0.567816</td>\n",
" <td> 5.793242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 57.668950</td>\n",
" <td> 0.570758</td>\n",
" <td> 5.742744</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 58.069799</td>\n",
" <td> 0.593155</td>\n",
" <td> 5.717683</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> 57.899954</td>\n",
" <td> 0.663958</td>\n",
" <td> 5.748093</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> 58.058786</td>\n",
" <td> 0.972709</td>\n",
" <td> 6.130772</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> 60.584653</td>\n",
" <td> 2.247486</td>\n",
" <td> 7.460670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> 72.229279</td>\n",
" <td> 7.511657</td>\n",
" <td> 13.245087</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td> 93.417060</td>\n",
" <td> 27.233376</td>\n",
" <td> 34.476448</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td> 174.824126</td>\n",
" <td> 108.990545</td>\n",
" <td> 116.609780</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
" 1,000,000 reads 10,000 reads 100,000 reads\n",
"1 54.629744 0.542465 5.486443\n",
"2 54.537978 0.541092 5.444848\n",
"3 54.476406 0.547954 5.534055\n",
"4 57.630825 0.578962 5.827872\n",
"5 58.149879 0.578742 5.840151\n",
"6 57.475789 0.586236 5.826321\n",
"7 57.533633 0.567816 5.793242\n",
"8 57.668950 0.570758 5.742744\n",
"9 58.069799 0.593155 5.717683\n",
"10 57.899954 0.663958 5.748093\n",
"11 58.058786 0.972709 6.130772\n",
"12 60.584653 2.247486 7.460670\n",
"13 72.229279 7.511657 13.245087\n",
"14 93.417060 27.233376 34.476448\n",
"15 174.824126 108.990545 116.609780"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"usage_mem = pd.DataFrame({label: [int(next(open('%s.count.k%i' % (sample, k))).split()[1]) / 1024\n",
" for k in K_VALUES]\n",
" for sample, label in samples.items()},\n",
" index=K_VALUES)\n",
"usage_mem"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1,000,000 reads</th>\n",
" <th>10,000 reads</th>\n",
" <th>100,000 reads</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 25.503906</td>\n",
" <td> 25.507812</td>\n",
" <td> 25.507812</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 25.507812</td>\n",
" <td> 25.507812</td>\n",
" <td> 25.515625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 25.507812</td>\n",
" <td> 25.507812</td>\n",
" <td> 25.511719</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 25.511719</td>\n",
" <td> 25.507812</td>\n",
" <td> 25.515625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 25.531250</td>\n",
" <td> 25.531250</td>\n",
" <td> 25.539062</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> 25.648438</td>\n",
" <td> 25.582031</td>\n",
" <td> 25.675781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 26.128906</td>\n",
" <td> 25.742188</td>\n",
" <td> 26.125000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 27.757812</td>\n",
" <td> 26.507812</td>\n",
" <td> 26.691406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 32.062500</td>\n",
" <td> 29.496094</td>\n",
" <td> 29.554688</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> 42.566406</td>\n",
" <td> 41.496094</td>\n",
" <td> 41.531250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> 89.714844</td>\n",
" <td> 89.460938</td>\n",
" <td> 89.460938</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> 281.687500</td>\n",
" <td> 281.507812</td>\n",
" <td> 281.523438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> 1049.492188</td>\n",
" <td> 1049.500000</td>\n",
" <td> 1049.496094</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td> 4121.542969</td>\n",
" <td> 4121.363281</td>\n",
" <td> 4121.375000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td> 16409.582031</td>\n",
" <td> 16409.476562</td>\n",
" <td> 16409.496094</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
" 1,000,000 reads 10,000 reads 100,000 reads\n",
"1 25.503906 25.507812 25.507812\n",
"2 25.507812 25.507812 25.515625\n",
"3 25.507812 25.507812 25.511719\n",
"4 25.511719 25.507812 25.515625\n",
"5 25.531250 25.531250 25.539062\n",
"6 25.648438 25.582031 25.675781\n",
"7 26.128906 25.742188 26.125000\n",
"8 27.757812 26.507812 26.691406\n",
"9 32.062500 29.496094 29.554688\n",
"10 42.566406 41.496094 41.531250\n",
"11 89.714844 89.460938 89.460938\n",
"12 281.687500 281.507812 281.523438\n",
"13 1049.492188 1049.500000 1049.496094\n",
"14 4121.542969 4121.363281 4121.375000\n",
"15 16409.582031 16409.476562 16409.496094"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we have our profiling data, we can plot it."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, (ax_time, ax_mem) = plt.subplots(2, sharex=True, figsize=(8, 8))\n",
"\n",
"usage_time.plot(logy=True, xticks=K_VALUES, marker='o', legend=False, ax=ax_time)\n",
"usage_mem.plot(logy=True, xticks=K_VALUES, marker='o', legend=False, ax=ax_mem)\n",
"\n",
"x_padding = 0.25\n",
"ax_mem.set_xlim(min(K_VALUES) - x_padding, max(K_VALUES) + x_padding)\n",
"ax_mem.set_xlabel('$k$')\n",
"ax_time.set_ylabel('Time (seconds)')\n",
"ax_mem.set_ylabel('Memory (megabytes)')\n",
"\n",
"ax_mem.legend(loc='upper center', frameon=True)\n",
"fig.suptitle('k-mer counting for $k = [%d, %d]$' % (min(K_VALUES), max(K_VALUES)),\n",
" fontsize=14)\n",
"fig.tight_layout(rect=(0, 0, 1, 0.95))\n",
"\n",
"fig.savefig('profile-count.pdf')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x57fdc50>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Profile distance calculation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We first profile the calculation of distance between two datasets of comparable size (k-mer counts for 100,000,000 and 120,000,000 reads)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%bash\n",
"# Note that all results are stored on disk, so you may not have to run this.\n",
"#./profile_distance.sh"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"modes = {'default': 'Default',\n",
" 'scale': 'With scaling',\n",
" 'smooth': 'With dynamic smoothing (threshold 10)',\n",
" 'scale.smooth': 'With scaling and dynamic smoothing (threshold 10)'}"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"usage_time = pd.DataFrame({label: [float(next(open('distance.%s.k%i' % (mode, k))).split()[0])\n",
" for k in K_VALUES]\n",
" for mode, label in modes.items()},\n",
" index=K_VALUES)\n",
"usage_time"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Default</th>\n",
" <th>With dynamic smoothing (threshold 10)</th>\n",
" <th>With scaling</th>\n",
" <th>With scaling and dynamic smoothing (threshold 10)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 0.003770</td>\n",
" <td> 0.003806</td>\n",
" <td> 0.003866</td>\n",
" <td> 0.003823</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 0.003746</td>\n",
" <td> 0.003962</td>\n",
" <td> 0.003801</td>\n",
" <td> 0.003988</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 0.003787</td>\n",
" <td> 0.004556</td>\n",
" <td> 0.003829</td>\n",
" <td> 0.004590</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 0.004203</td>\n",
" <td> 0.007345</td>\n",
" <td> 0.004265</td>\n",
" <td> 0.007056</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 0.004580</td>\n",
" <td> 0.016767</td>\n",
" <td> 0.004555</td>\n",
" <td> 0.016763</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> 0.005109</td>\n",
" <td> 0.053032</td>\n",
" <td> 0.005170</td>\n",
" <td> 0.053941</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 0.008368</td>\n",
" <td> 0.208234</td>\n",
" <td> 0.008275</td>\n",
" <td> 0.206033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 0.018588</td>\n",
" <td> 0.775527</td>\n",
" <td> 0.018051</td>\n",
" <td> 0.806213</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 0.071498</td>\n",
" <td> 3.100268</td>\n",
" <td> 0.071534</td>\n",
" <td> 3.214244</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> 0.248428</td>\n",
" <td> 11.399994</td>\n",
" <td> 0.253719</td>\n",
" <td> 11.709302</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> 1.090747</td>\n",
" <td> 44.874348</td>\n",
" <td> 1.184755</td>\n",
" <td> 46.876382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> 4.511355</td>\n",
" <td> 209.745757</td>\n",
" <td> 4.876146</td>\n",
" <td> 191.472047</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> 17.906213</td>\n",
" <td> 775.451280</td>\n",
" <td> 19.325424</td>\n",
" <td> 694.941876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td> 61.405629</td>\n",
" <td> 2038.044500</td>\n",
" <td> 68.502099</td>\n",
" <td> 1946.503390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td> 199.224109</td>\n",
" <td> 4487.346534</td>\n",
" <td> 216.661634</td>\n",
" <td> 5011.181953</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
" Default With dynamic smoothing (threshold 10) With scaling \\\n",
"1 0.003770 0.003806 0.003866 \n",
"2 0.003746 0.003962 0.003801 \n",
"3 0.003787 0.004556 0.003829 \n",
"4 0.004203 0.007345 0.004265 \n",
"5 0.004580 0.016767 0.004555 \n",
"6 0.005109 0.053032 0.005170 \n",
"7 0.008368 0.208234 0.008275 \n",
"8 0.018588 0.775527 0.018051 \n",
"9 0.071498 3.100268 0.071534 \n",
"10 0.248428 11.399994 0.253719 \n",
"11 1.090747 44.874348 1.184755 \n",
"12 4.511355 209.745757 4.876146 \n",
"13 17.906213 775.451280 19.325424 \n",
"14 61.405629 2038.044500 68.502099 \n",
"15 199.224109 4487.346534 216.661634 \n",
"\n",
" With scaling and dynamic smoothing (threshold 10) \n",
"1 0.003823 \n",
"2 0.003988 \n",
"3 0.004590 \n",
"4 0.007056 \n",
"5 0.016763 \n",
"6 0.053941 \n",
"7 0.206033 \n",
"8 0.806213 \n",
"9 3.214244 \n",
"10 11.709302 \n",
"11 46.876382 \n",
"12 191.472047 \n",
"13 694.941876 \n",
"14 1946.503390 \n",
"15 5011.181953 "
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"usage_mem = pd.DataFrame({label: [int(next(open('distance.%s.k%i' % (mode, k))).split()[1]) / 1024\n",
" for k in K_VALUES]\n",
" for mode, label in modes.items()},\n",
" index=K_VALUES)\n",
"usage_mem"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Default</th>\n",
" <th>With dynamic smoothing (threshold 10)</th>\n",
" <th>With scaling</th>\n",
" <th>With scaling and dynamic smoothing (threshold 10)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1 </th>\n",
" <td> 27.292969</td>\n",
" <td> 27.289062</td>\n",
" <td> 27.292969</td>\n",
" <td> 27.285156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2 </th>\n",
" <td> 27.289062</td>\n",
" <td> 27.285156</td>\n",
" <td> 27.281250</td>\n",
" <td> 27.285156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3 </th>\n",
" <td> 27.289062</td>\n",
" <td> 27.289062</td>\n",
" <td> 27.281250</td>\n",
" <td> 27.285156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4 </th>\n",
" <td> 27.378906</td>\n",
" <td> 27.390625</td>\n",
" <td> 27.386719</td>\n",
" <td> 27.296875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5 </th>\n",
" <td> 27.542969</td>\n",
" <td> 27.546875</td>\n",
" <td> 27.546875</td>\n",
" <td> 27.550781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6 </th>\n",
" <td> 27.875000</td>\n",
" <td> 27.890625</td>\n",
" <td> 27.804688</td>\n",
" <td> 27.898438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7 </th>\n",
" <td> 28.839844</td>\n",
" <td> 28.835938</td>\n",
" <td> 28.890625</td>\n",
" <td> 28.890625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8 </th>\n",
" <td> 33.210938</td>\n",
" <td> 33.214844</td>\n",
" <td> 33.140625</td>\n",
" <td> 33.144531</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9 </th>\n",
" <td> 51.582031</td>\n",
" <td> 51.589844</td>\n",
" <td> 51.539062</td>\n",
" <td> 51.546875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td> 118.644531</td>\n",
" <td> 118.695312</td>\n",
" <td> 119.312500</td>\n",
" <td> 119.273438</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td> 387.839844</td>\n",
" <td> 382.937500</td>\n",
" <td> 387.730469</td>\n",
" <td> 382.976562</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td> 1464.589844</td>\n",
" <td> 1335.410156</td>\n",
" <td> 1464.769531</td>\n",
" <td> 1335.050781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td> 5536.582031</td>\n",
" <td> 4149.449219</td>\n",
" <td> 5537.523438</td>\n",
" <td> 4150.046875</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td> 19625.257812</td>\n",
" <td> 12695.671875</td>\n",
" <td> 19624.437500</td>\n",
" <td> 12695.859375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td> 62261.636719</td>\n",
" <td> 38546.011719</td>\n",
" <td> 62259.816406</td>\n",
" <td> 41189.492188</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
" Default With dynamic smoothing (threshold 10) With scaling \\\n",
"1 27.292969 27.289062 27.292969 \n",
"2 27.289062 27.285156 27.281250 \n",
"3 27.289062 27.289062 27.281250 \n",
"4 27.378906 27.390625 27.386719 \n",
"5 27.542969 27.546875 27.546875 \n",
"6 27.875000 27.890625 27.804688 \n",
"7 28.839844 28.835938 28.890625 \n",
"8 33.210938 33.214844 33.140625 \n",
"9 51.582031 51.589844 51.539062 \n",
"10 118.644531 118.695312 119.312500 \n",
"11 387.839844 382.937500 387.730469 \n",
"12 1464.589844 1335.410156 1464.769531 \n",
"13 5536.582031 4149.449219 5537.523438 \n",
"14 19625.257812 12695.671875 19624.437500 \n",
"15 62261.636719 38546.011719 62259.816406 \n",
"\n",
" With scaling and dynamic smoothing (threshold 10) \n",
"1 27.285156 \n",
"2 27.285156 \n",
"3 27.285156 \n",
"4 27.296875 \n",
"5 27.550781 \n",
"6 27.898438 \n",
"7 28.890625 \n",
"8 33.144531 \n",
"9 51.546875 \n",
"10 119.273438 \n",
"11 382.976562 \n",
"12 1335.050781 \n",
"13 4150.046875 \n",
"14 12695.859375 \n",
"15 41189.492188 "
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we have our profiling data, we can plot it."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, (ax_time, ax_mem) = plt.subplots(2, sharex=True, figsize=(8, 8))\n",
"\n",
"usage_time.plot(logy=True, xticks=K_VALUES, marker='o', legend=False, ax=ax_time)\n",
"usage_mem.plot(logy=True, xticks=K_VALUES, marker='o', legend=False, ax=ax_mem)\n",
"\n",
"x_padding = 0.25\n",
"ax_mem.set_xlim(min(K_VALUES) - x_padding, max(K_VALUES) + x_padding)\n",
"ax_mem.set_xlabel('$k$')\n",
"ax_time.set_ylabel('Time (seconds)')\n",
"ax_mem.set_ylabel('Memory (megabytes)')\n",
"\n",
"ax_mem.legend(loc='upper center', frameon=True)\n",
"fig.suptitle('Distance calculation for $k = [%d, %d]$' % (min(K_VALUES), max(K_VALUES)),\n",
" fontsize=14)\n",
"fig.tight_layout(rect=(0, 0, 1, 0.95))\n",
"\n",
"fig.savefig('profile-distance.pdf')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n8GPMnj2TZ5+dSsuWrVi79lfmz3+NsWP/DwCXy8X8+a/xr399RIMGDcqdmjrdddddz7ZtW8qeFxQU\n4Ov75w3pfH19SU4+AUBAQACnTuVQWFh+mSvdgV834/j4Pfw0B5m9hnDVyHuqXNaluVixeg3Zewzo\nio5mcGB0mQF3kTPuySE1FfuyqtFCx2q1TgTuA/JLJg0DLKqq9i0pgOYCw1RVvb1k+aVS5Iiz6Xtt\ni7O2vpx56grAL8DCjbd3JDwqoIq1zu5KGL08ICCA/fv3sW3bVnx9/bDb/xxHq3Q8r4iISHbv3smJ\nE4lER8eWjZfVsWMnzhxaJiHhOG3bum8n37lzF/bscQ8oOnjwjfz44/9ITj7B0KG3ABAYGER4eETZ\nPhwOOxEREVW+XqvVfTz9/f2JiWlelt9ut5ctk5iYQLt27VEUBZPJVPYBXGro0Fv4+OMPeeqpJ/D3\n92PUqDEoikLz5i0wGo34+/vTuHETTCYT/v7ubefk5ODn50dYWFjZ63r33QUEB4fQqVMXwD0GWvv2\nHTl69CjAeb8PzjwGdruNhIRj9OrVB4BmzWIICqo4eKKmucp+DufzvmvWLBqAnJxsMjMzmTJlEuA+\nBduzZ29GjHi4yuNiMpkwmUxlLQWZmRm0bNkKgLi4LuWKyezsbPz9/WjQwH3qpPT4nIufnx+FhYVl\nzwsKCvD3//PfbUhICLm5uVLolNi+8nu8/rMckw75Nw6nz+0VW81KnSrI45PPfoc0X1xeNq65qQUY\nYM3KwyhQL1pyStV0H51DwG382T7WH/gvgKqqm4Dupy+squoIhLgINw3vhF+Apey5X4CFEWP6XnCR\nU6q+j16+evW3+PsHMHXqDIYP/xs2W3GFZUo/RJs0acbRo0ew2YrRdZ39+/dWaNGJiWnOrl07AHc/\nklJ//evN/PzzD+zcub3sWJ7ZfUPX9XO83nP3GWnWLAZVPYCu6zidTp58chxOp7Ns/u+//0qnTl14\n4423ueaa61i27MNzbjsoKIiCggIyMzMA2L59K82aRRMTE1v2Wp1OJ3v27KRZs2YoinLe74PKurDE\nxrYoO3YnTiSRk5NTYRmLxbvs53I+77vSn1NgYBARERHMnj2P+fPf5b77HqRbtx7VOi5hYeEcPnwI\ngB07ttG0aXTZvODgYPLzC8jOzgJg3749Vb720/n5+WM2mzhxIgld19m8eSOdO/9ZJOXl5RMUFHxe\n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\nIlKw/j8P9lXf4sNBXAAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x61c6bd0>"
]
}
],
"prompt_number": 11
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment