From 14546372d26f512414ccf1ccc3ee2570a4434f92 Mon Sep 17 00:00:00 2001 From: "J.F.J. Laros" <jlaros@obscured.morspoort.fixedpoint.nl> Date: Wed, 7 Aug 2013 17:36:51 +0200 Subject: [PATCH] Updated the slides on object oriented programming. --- classes.ipynb | 104 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 95 insertions(+), 9 deletions(-) diff --git a/classes.ipynb b/classes.ipynb index 51c008a..5ea4e0d 100644 --- a/classes.ipynb +++ b/classes.ipynb @@ -42,7 +42,7 @@ "\n", "You can use nbconvert to convert the slides to HTML and serve them:\n", "\n", - " ipython nbconvert --to slides --post serve matplotlib.ipynb\n", + " ipython nbconvert --to slides --post serve classes.ipynb\n", "\n", "This will open the slides in a new browser window." ] @@ -73,7 +73,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "Imagine we are collecting a number of attributes of some persons:\n", "\n", @@ -378,7 +382,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ " class Person(object):\n", " ...\n", @@ -436,7 +444,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ " class Person(object):\n", " ...\n", @@ -556,7 +568,11 @@ }, { "cell_type": "markdown", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ " class Person(object):\n", " ...\n", @@ -607,7 +623,11 @@ " self.eye_colour, self.hair_colour, self.weight, self.length)" ], "language": "python", - "metadata": {}, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "outputs": [], "prompt_number": 127 }, @@ -633,9 +653,75 @@ "prompt_number": 86 }, { - "cell_type": "markdown", - "metadata": {}, - "source": [] + "cell_type": "code", + "collapsed": false, + "input": [ + "class Read(object):\n", + " def __init__(self):\n", + " self.read = \"\"\n", + " self.qual = []\n", + " \n", + " def __str__(self):\n", + " return self.read\n", + " \n", + " def add(self, base):\n", + " self.read += base[0]\n", + " self.qual.append(base[1])\n", + " \n", + " def quality(self):\n", + " return sum(self.qual) / len(self.read)\n", + " \n", + " def trim(self, score):\n", + " for position in range(len(self.read) - 1, -1, -1):\n", + " if self.qual[position] >= score:\n", + " return self.read[:position]" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from sequencer import Sequencer\n", + "\n", + "spots = 2\n", + "run = Sequencer(spots, readlength=60)\n", + "\n", + "reads = [Read() for _ in range(spots)]\n", + "for tile in run:\n", + " for read_id, base in enumerate(tile):\n", + " reads[read_id].add(base)\n", + "\n", + "for i in reads:\n", + " print i, i.quality()\n", + " print i.trim(39)" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "GGTGTGATTCCCGTTCGGTGGGCCGCCTTGGGTCATTGCTCGGTTGAGGAGGGAAGACCT 30\n", + "GGTGTGATTCCCGTTCGGTGGGCCGCCTTGGGTCAT\n", + "GGCTTTAGAATGTCTCCTGCATCTGATGCTATTAAAAGCTATGTTTTTCACATAGTACGG 29\n", + "GGCTTTAGAATGTCTCCTGCATCTGATGCTATTAAAAGCTATGTTTTTCACATAGT\n" + ] + } + ], + "prompt_number": 8 } ], "metadata": {} -- GitLab