Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save zachcp/9039447 to your computer and use it in GitHub Desktop.
Save zachcp/9039447 to your computer and use it in GitHub Desktop.
Timing Global Sequence Alignment
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"The Limits of Global Pairwise Sequence Analysis"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import random\n",
"from Bio import pairwise2\n",
"\n",
"#Define a few funtions to make random DNA sequences and will do pairwise global of them\n",
"def make_sequence(size):\n",
" seqlist = (random.choice( ['A','C','T','G'])for i in range(size))\n",
" return ''.join(seqlist)\n",
"\n",
"def pairwise(size):\n",
" seq1 = make_sequence(size) \n",
" seq2 = make_sequence(size)\n",
" score = pairwise2.align.globalxx(seq1,seq2,one_alignment_only=1, score_only=1)\n",
" #print score"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit pairwise(10)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"10000 loops, best of 3: 125 \u00b5s per loop\n"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit pairwise(100)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"100 loops, best of 3: 3.07 ms per loop\n"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit pairwise(1000)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"1 loops, best of 3: 543 ms per loop\n"
]
}
],
"prompt_number": 4
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"This next one churns indefinitely and eats all my memory."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit pairwise(10000)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": "*"
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment