diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..12123b5bfb31a7743dda5d70a36d01156d73e269 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "reveal.js"] + path = reveal.js + url = https://github.com/hakimel/reveal.js.git diff --git a/welcome.ipynb b/01 - Welcome.ipynb similarity index 72% rename from welcome.ipynb rename to 01 - Welcome.ipynb index 7e4657f0946fc9db7b7c4a55efd46e99d6660b45..0adb27f6d88837561f1a724dd4c4f64383c44298 100644 --- a/welcome.ipynb +++ b/01 - Welcome.ipynb @@ -1,6 +1,8 @@ { "metadata": { - "name": "" + "celltoolbar": "Slideshow", + "name": "", + "signature": "sha256:6c570ac428c0fbfa0115d6c05d52e3c05410cd3de42ae35e7ee7feb0f435a641" }, "nbformat": 3, "nbformat_minor": 0, @@ -20,31 +22,15 @@ "\n", "<br>\n", "\n", - "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Zuotian Tatum](mailto:z.tatum@lumc.nl), [Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl)\n", + "[Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", "\n", - "[Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "[Michiel van Galen](mailto:m.van_galen@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", "\n", - "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "About this notebook\n", - "===\n", - "\n", - "This notebook is the source for a set of slides. If you want to edit them, be sure to choose *Slideshow* in the *Cell Toolbar* menu.\n", + "[Wai Yi Leung](mailto:w.y.leung@lumc.nl), [Sequencing Analysis Support Core, Leiden University Medical Center](http://sasc.lumc.nl)\n", "\n", - "You can use nbconvert to convert the slides to HTML and serve them:\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", "\n", - " ipython nbconvert --to slides --post serve welcome.ipynb\n", - "\n", - "This will open the slides in a new browser window." + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" ] }, { @@ -62,7 +48,7 @@ "* Programming as a tool to do your research.\n", "* Slightly focussed on bioinformatics.\n", "\n", - "**Note:** It's a pilot." + "**Note:** It <s>is</s> was a pilot." ] }, { @@ -76,16 +62,16 @@ "Teachers\n", "===\n", "\n", - "* Wibowo Arindrarto<br>\n", - " [w.arindrarto@lumc.nl](mailto:w.arindrarto@lumc.nl)\n", - "\n", - "\n", "* Jeroen Laros<br>\n", " [j.f.j.laros@lumc.nl](mailto:j.f.j.laros@lumc.nl)\n", "\n", "\n", - "* Zuotian Tatum<br>\n", - " [z.tatum@lumc.nl](mailto:z.tatum@lumc.nl)\n", + "* Michiel van Galen<br>\n", + " [m.van_galen@lumc.nl](mailto:m.van_galen@lumc.nl)\n", + "\n", + "\n", + "* Wai Yi Leung<br>\n", + " [w.y.leung@lumc.nl](mailto:w.y.leung@lumc.nl)\n", "\n", "\n", "* Martijn Vermaat<br>\n", @@ -129,34 +115,34 @@ "</tr>\n", "<tr><td>11-12</td>\n", "<td>Introduction to Python (3)</td>\n", - "<td>Zuotian</td>\n", + "<td>Michiel</td>\n", "</tr>\n", "<tr><td rowspan=\"3\">Tuesday</td>\n", "<td>09-10</td>\n", - "<td>Version control with Git</td>\n", - "<td>Zuotian</td>\n", + "<td>More Python (1)</td>\n", + "<td>Michiel</td>\n", "</tr>\n", "<tr><td>10-11</td>\n", - "<td>More Python (1)</td>\n", - "<td>Bowo</td>\n", + "<td>More Python (2)</td>\n", + "<td>Wai Yi</td>\n", "</tr>\n", "<tr><td>11-12</td>\n", - "<td>More Python (2)</td>\n", + "<td>Working with NumPy arrays</td>\n", "<td>Martijn</td>\n", "</tr>\n", "<tr><td rowspan=\"3\">Wednesday</td>\n", "<td>09-10</td>\n", - "<td>Working with NumPy arrays (1)</td>\n", - "<td>Zuotian</td>\n", + "<td>IPython Notebook</td>\n", + "<td>Michiel</td>\n", "</tr>\n", "<tr><td>10-11</td>\n", - "<td>Working with NumPy arrays (2)</td>\n", - "<td>Martijn</td>\n", - "</tr>\n", - "<tr><td>11-12</td>\n", "<td>Plotting with matplotlib</td>\n", "<td>Jeroen</td>\n", "</tr>\n", + "<tr><td>11-12</td>\n", + "<td>Python for data analysis</td>\n", + "<td>Wai Yi</td>\n", + "</tr>\n", "<tr><td rowspan=\"3\">Friday</td>\n", "<td>09-10</td>\n", "<td>Object-oriented programming</td>\n", @@ -164,7 +150,7 @@ "</tr>\n", "<tr><td>10-11</td>\n", "<td>Biopython (1)</td>\n", - "<td>Bowo</td>\n", + "<td>Wai Yi</td>\n", "</tr>\n", "<tr><td>11-12</td>\n", "<td>Biopython (2)</td>\n", @@ -173,7 +159,7 @@ "</tbody>\n", "</table>\n", "\n", - "All slides are linked as one-page documents from the course website: [humgenprojects.lumc.nl/trac/programming-course](https://humgenprojects.lumc.nl/trac/programming-course/)" + "All slides are linked as one-page documents from the course website: [humgenprojects.lumc.nl/trac/humgenprojects/wiki/ProgrammingCourse](https://humgenprojects.lumc.nl/trac/humgenprojects/wiki/ProgrammingCourse)" ] }, { @@ -190,10 +176,10 @@ "* Linux or Mac OSX\n", "* Git\n", "* Python 2.7\n", - "* IPython 1.0\n", + "* IPython 2.1\n", "* NumPy, matplotlib, Biopython\n", "\n", - "Instructions on the course website: [humgenprojects.lumc.nl/trac/programming-course](https://humgenprojects.lumc.nl/trac/programming-course/)" + "Instructions on the course website: [humgenprojects.lumc.nl/trac/humgenprojects/wiki/ProgrammingCourse](https://humgenprojects.lumc.nl/trac/humgenprojects/wiki/ProgrammingCourse)" ] }, { @@ -241,32 +227,16 @@ } }, "source": [ - "GitLab accounts\n", + "Getting help\n", "===\n", "\n", - "* Login with your LUMC username and password.\n", - "* Make some noise if you don't have an account\n", - "* We'll use this later.\n", + "* Ask a teacher or assistant.\n", + "* If it's private, mail one of the teachers.\n", + "* Use our etherpad:\n", "\n", "<br>\n", "\n", - "<center style=\"font-size: 300%\">[https://git.lumc.nl](https://git.lumc.nl/)</center>" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Getting help\n", - "===\n", - "\n", - "* Ask a teacher or assistant.\n", - "* Post your question on the GitLab wall: [https://git.lumc.nl/humgen/programming-course/wall](https://git.lumc.nl/humgen/programming-course/wall)\n", - "* If it's private, mail one of the teachers." + "<center style=\"font-size: 300%\">[tinyurl.com/leidencourse](http://tinyurl.com/leidencourse)</center>" ] }, { @@ -289,7 +259,7 @@ { "html": [ "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", - ".reveal {\n", + "html {\n", " overflow-y: hidden;\n", "}\n", "\n", @@ -302,13 +272,22 @@ " color: black ! important;\n", " font-weight: normal ! important;\n", "}\n", + "span.title {\n", + " color: black ! important;\n", + "}\n", + "span.tag {\n", + " color: black ! important;\n", + "}\n", + "span.attribute {\n", + " color: black ! important;\n", + "}\n", "</style>" ], "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ - "<IPython.core.display.HTML at 0x32f7210>" + "<IPython.core.display.HTML at 0x33caa50>" ] } ], diff --git a/02 - Introduction to Python (1).ipynb b/02 - Introduction to Python (1).ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2e37bf916ba9bcb9889b30ac88fc076785c6e3e4 --- /dev/null +++ b/02 - Introduction to Python (1).ipynb @@ -0,0 +1,934 @@ +{ + "metadata": { + "celltoolbar": "Slideshow", + "name": "", + "signature": "sha256:06632e3aab84ba95070db9bd6588d5a6fa8e7440ebe85cac2ce1a3c91911db47" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "<span style=\"font-size: 200%\">Introduction to Python (1)</span>\n", + "===\n", + "\n", + "<br>\n", + "\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "[Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "Based on: [Python Scientific Lecture Notes](http://scipy-lectures.github.io/)\n", + "\n", + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "About Python\n", + "===\n", + "\n", + "History\n", + "---\n", + "\n", + "* Created early 90's by Guide van Rossem at CWI.\n", + "* General purpose, high-level programming language.\n", + "* Design is driven by code readability." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "About Python\n", + "===\n", + "\n", + "Features\n", + "---\n", + "\n", + "* Interpreted, no separate compilation step needed.\n", + "* Imperative and object-oriented programming (and some functional programming).\n", + "* Dynamic type system.\n", + "* Automatic memory management.\n", + "\n", + "We'll come back to most of this." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "About Python\n", + "===\n", + "\n", + "Why Python?\n", + "---\n", + "\n", + "* Readable and low barrier to entry.\n", + "* Rich scientific libraries.\n", + "* Many other libraries available.\n", + "* Widely used with a large community." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "About Python\n", + "===\n", + "\n", + "Python 2 versus Python 3\n", + "---\n", + "\n", + "* Python 3 is backwards incompatible.\n", + "* Some libraries don't support it yet.\n", + "* Python 2.7 is the last Python 2.\n", + "* Some Python 3 features are backported in Python 2.7.\n", + "* Default Python on most distributions is Python 2.7.\n", + "\n", + "We use Python 2.7 for the time being." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Running Python code\n", + "===\n", + "\n", + "Two main ways of writing and executing Python code.\n", + "\n", + "Interactively\n", + "---\n", + "\n", + "* Statement by statement directly in the interpreter.\n", + "\n", + "Non-interactively\n", + "---\n", + "\n", + "* By editing in a file and running the code afterwards." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "We'll start with the first option." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Running Python code\n", + "===\n", + "\n", + "The standard Python interpreter\n", + "---\n", + "\n", + "Start it by typing `python` on the command line:\n", + "\n", + " $ python\n", + " Python 2.7.3 (default, Jan 2 2013, 13:56:14) \n", + " [GCC 4.7.2] on linux2\n", + " Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n", + " >>>\n", + "\n", + "* It shows an interpreter prompt.\n", + "* You can give it Python code to interpret." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Running Python code\n", + "===\n", + "\n", + "The IPython interpreter\n", + "---\n", + "\n", + "* Similar to the standard Python interpreter, but with\n", + "* syntax highlighting,\n", + "* tab completion,\n", + "* cross-session history, etcetera...\n", + "\n", + "Start it by typing `ipython` on the command line:\n", + "\n", + " $ ipython\n", + " Python 2.7.3 (default, Jan 2 2013, 13:56:14) \n", + " Type \"copyright\", \"credits\" or \"license\" for more information.\n", + "\n", + " IPython 0.13.1 -- An enhanced Interactive Python.\n", + " ? -> Introduction and overview of IPython's features.\n", + " %quickref -> Quick reference.\n", + " help -> Python's own help system.\n", + " object? -> Details about 'object', use 'object??' for extra details.\n", + "\n", + " In [1]:" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "source": [ + "From now on, play along in your own IPython interpreter." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "Integers\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "17" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 1, + "text": [ + "17" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "(17 + 4) * 2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 2, + "text": [ + "42" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "Floating point numbers\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "3.2 * 18 - 2.1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 3, + "text": [ + "55.5" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "36. / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 4, + "text": [ + "7.2" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Scientific notation:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "1.3e20 + 2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 5, + "text": [ + "1.3e+20" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "1.3 * 10**20" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "1.3e+20" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "The division operator\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "35 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 7, + "text": [ + "7" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "36 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 8, + "text": [ + "7" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Division is a bit weird: if you give it integer arguments, the result will also be an integer." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "The division operator\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "35 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 9, + "text": [ + "7" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "36 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 10, + "text": [ + "7" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solution 1\n", + "---\n", + "\n", + "Give floating point arguments instead of integer arguments." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "36. / 5." + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 11, + "text": [ + "7.2" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "The division operator\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "35 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "text": [ + "7" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "36 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 13, + "text": [ + "7" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solution 2\n", + "---\n", + "\n", + "From Python 3 onwards, division behaves differently. You can actually get that behaviour in Python 2.7:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from __future__ import division\n", + "36 / 5" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 14, + "text": [ + "7.2" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python as a calculator\n", + "===\n", + "\n", + "Variables\n", + "---\n", + "\n", + "* We can use names to reference values (variables).\n", + "* No need to declare them first or define the type." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a = 1.3e20" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 15 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 16, + "text": [ + "1.3e+20" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "b = a + 1.2e19\n", + "b * 2" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 17, + "text": [ + "2.84e+20" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Python's type system (1/2)\n", + "===\n", + "\n", + "Every value has a type, view it using `type`:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "type(27)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 18, + "text": [ + "int" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "type(3.0 * 2.7)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 19, + "text": [ + "float" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "type(a)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 20, + "text": [ + "float" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another example of a builtin datatype is `str`, we'll see more later:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "type('I am a homo sapiens')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 21, + "text": [ + "str" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Python's type system (2/2)\n", + "===\n", + "\n", + "Some operations are defined on more than one type, possibly with different meanings." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'beer' * 5 + 'whiskey'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 22, + "text": [ + "'beerbeerbeerbeerbeerwhiskey'" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Dynamic typing means that variables can be assigned values of different types during runtime." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a = 'spezi'\n", + "type(a)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 23, + "text": [ + "str" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Python is strongly typed, meaning that operations on values with incompatible types are forbidden." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'beer' + 34" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "cannot concatenate 'str' and 'int' objects", + "output_type": "pyerr", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-24-ec918fbfdf41>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;34m'beer'\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m34\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m: cannot concatenate 'str' and 'int' objects" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from IPython.display import HTML\n", + "def css_styling():\n", + " styles = open('styles/custom.css', 'r').read()\n", + " return HTML('<style>' + styles + '</style>')\n", + "css_styling()" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "html": [ + "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", + "html {\n", + " overflow-y: hidden;\n", + "}\n", + "\n", + "/* Workaround some highlight.js bugs in language autodetection. */\n", + "code.objectivec *,\n", + "code.perl *,\n", + "code.cs *,\n", + "code.javascript *,\n", + "code.http * {\n", + " color: black ! important;\n", + " font-weight: normal ! important;\n", + "}\n", + "span.title {\n", + " color: black ! important;\n", + "}\n", + "span.tag {\n", + " color: black ! important;\n", + "}\n", + "span.attribute {\n", + " color: black ! important;\n", + "}\n", + "</style>" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 25, + "text": [ + "<IPython.core.display.HTML at 0x7f39d4043c90>" + ] + } + ], + "prompt_number": 25 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/02 - Introduction to Python (2).ipynb b/02 - Introduction to Python (2).ipynb new file mode 100644 index 0000000000000000000000000000000000000000..ff39ed75c0ddd9fee4d78864eb313a5965a61f31 --- /dev/null +++ b/02 - Introduction to Python (2).ipynb @@ -0,0 +1,1883 @@ +{ + "metadata": { + "celltoolbar": "Slideshow", + "name": "", + "signature": "sha256:57d29de0d77287096e49247676a76ea06e3730e1e5f819ecfc6b4b3f6d85e4e9" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "<span style=\"font-size: 200%\">Introduction to Python (2)</span>\n", + "===\n", + "\n", + "<br>\n", + "\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "[Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "Based on: [Python Scientific Lecture Notes](http://scipy-lectures.github.io/)\n", + "\n", + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Lists\n", + "---\n", + "\n", + "Mutable sequences of values." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "l = [2, 5, 2, 3, 7]\n", + "type(l)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 1, + "text": [ + "list" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lists can be heterogeneous, but we typically don't use that." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a = 'spezi'\n", + "[3, 'abc', 1.3e20, [a, a, 2]]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 2, + "text": [ + "[3, 'abc', 1.3e+20, ['spezi', 'spezi', 2]]" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Tuples\n", + "---\n", + "\n", + "Immutable sequences of values." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "t = 'white', 77, 1.5\n", + "type(t)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 3, + "text": [ + "tuple" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "color, width, scale = t\n", + "width" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 4, + "text": [ + "77" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Strings (1/2)\n", + "---\n", + "\n", + "Immutable sequences of characters." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'a string can be written in single quotes'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 5, + "text": [ + "'a string can be written in single quotes'" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Strings can also be written with double quotes, or over multiple lines with triple-quotes." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"this makes it easier to use the ' character\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "\"this makes it easier to use the ' character\"" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "\"\"\"This is a multiline string.\n", + "\n", + "You see? I continued after a blank line.\"\"\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 7, + "text": [ + "'This is a multiline string.\\n\\nYou see? I continued after a blank line.'" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Strings (2/2)\n", + "---\n", + "\n", + "A common operation is formatting strings using argument substitutions." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'{} times {} equals {:.2f}'.format('pi', 2, 6.283185307179586)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 8, + "text": [ + "'pi times 2 equals 6.28'" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Accessing arguments by position or name is more readable." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'{1} times {0} equals {2:.2f}'.format('pi', 2, 6.283185307179586)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 9, + "text": [ + "'2 times pi equals 6.28'" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'{number} times {amount} equals {result:.2f}'.format(number='pi', amount=2,\n", + " result=6.283185307179586)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 10, + "text": [ + "'pi times 2 equals 6.28'" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Common operations (1/2)\n", + "---\n", + "\n", + "All sequence types support concatenation, membership/substring tests, indexing, and slicing." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "[1, 2, 3] + [4, 5, 6]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 11, + "text": [ + "[1, 2, 3, 4, 5, 6]" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'bier' in 'we drinken bier vanaf half 5'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "text": [ + "True" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'abcdefghijkl'[5]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 13, + "text": [ + "'f'" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Slicing\n", + "---\n", + "\n", + "Slice `s` from `i` to `j` with `s[i:j]`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'abcdefghijkl'[4:8]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 14, + "text": [ + "'efgh'" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'abcdefghijkl'[:3]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 15, + "text": [ + "'abc'" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also define the step `k` with `s[i:j:k]`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'abcdefghijkl'[7:3:-1]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 16, + "text": [ + "'hgfe'" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Common operations (2/2)\n", + "---\n", + "\n", + "Contrary to strings and tuples, lists are mutable. We can also get their length, smallest/largest item, and number/position of certain items." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "len('attacgataggcatccgt')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 17, + "text": [ + "18" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "max([17, 86, 34, 51])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 18, + "text": [ + "86" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "('atg', 22, True, 'atg').count('atg')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 19, + "text": [ + "2" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sequence types\n", + "===\n", + "\n", + "Additional operations with lists\n", + "---\n", + "\n", + "We can replace, add, remove, reverse and sort items in-place." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "l = [1, 2, 3, 4]\n", + "l[3] = 7\n", + "l.append(1)\n", + "l[1:3] = [3, 2]\n", + "l.sort()\n", + "l.reverse()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 20 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "l" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 21, + "text": [ + "[7, 3, 2, 1, 1]" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Dictionaries\n", + "===\n", + "\n", + "Dictionaries map *hashable* values to arbitrary objects\n", + "---\n", + "\n", + "* All built-in immutable objects are hashable.\n", + "* No built-in mutable objects are hashable." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d = {'a': 27, 'b': 18, 'c': 12}\n", + "type(d)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 22, + "text": [ + "dict" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d['e'] = 17\n", + "'e' in d" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 23, + "text": [ + "True" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d.update({'a': 18, 'f': 2})\n", + "d" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 24, + "text": [ + "{'a': 18, 'b': 18, 'c': 12, 'e': 17, 'f': 2}" + ] + } + ], + "prompt_number": 24 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Dictionaries\n", + "===\n", + "\n", + "Accessing dictionary content\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d['b']" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 25, + "text": [ + "18" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d.keys()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 26, + "text": [ + "['a', 'c', 'b', 'e', 'f']" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d.values()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 27, + "text": [ + "[18, 12, 18, 17, 2]" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "d.items()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 28, + "text": [ + "[('a', 18), ('c', 12), ('b', 18), ('e', 17), ('f', 2)]" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Sets\n", + "===\n", + "\n", + "Mutable unordered collections of hashable values without duplication\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "x = {12, 28, 21, 17}\n", + "type(x)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 29, + "text": [ + "set" + ] + } + ], + "prompt_number": 29 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "x.add(12)\n", + "x" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 30, + "text": [ + "{12, 17, 21, 28}" + ] + } + ], + "prompt_number": 30 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "x.discard(21)\n", + "x" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 31, + "text": [ + "{12, 17, 28}" + ] + } + ], + "prompt_number": 31 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Sets\n", + "===\n", + "\n", + "Operations with sets\n", + "---\n", + "\n", + "We can test for membership and apply many common set operations such as union and intersect." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "17 in {12, 28, 21, 17}" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 32, + "text": [ + "True" + ] + } + ], + "prompt_number": 32 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "{12, 28, 21, 17} | {12, 18, 11}" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 33, + "text": [ + "{11, 12, 17, 18, 21, 28}" + ] + } + ], + "prompt_number": 33 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "{12, 28, 21, 17} & {12, 18, 11}" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 34, + "text": [ + "{12}" + ] + } + ], + "prompt_number": 34 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Booleans\n", + "===\n", + "\n", + "Boolean values and operations\n", + "---\n", + "\n", + "The two boolean values are written `False` and `True`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "True or False" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 35, + "text": [ + "True" + ] + } + ], + "prompt_number": 35 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "True and False" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 36, + "text": [ + "False" + ] + } + ], + "prompt_number": 36 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "not False" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 37, + "text": [ + "True" + ] + } + ], + "prompt_number": 37 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Booleans\n", + "===\n", + "\n", + "Comparisons\n", + "---\n", + "\n", + "Comparisons can be done on all objects and return a boolean value." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "22 * 3 > 66" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 38, + "text": [ + "False" + ] + } + ], + "prompt_number": 38 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We have two equivalence relations: value equality (`==`) and object identity (`is`)." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a, b = [1, 2, 3], [1, 2, 3]\n", + "a == b" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 39, + "text": [ + "True" + ] + } + ], + "prompt_number": 39 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "a is b" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 40, + "text": [ + "False" + ] + } + ], + "prompt_number": 40 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Booleans\n", + "===\n", + "\n", + "`if` statements\n", + "---\n", + "\n", + "(The `print` statement writes a string representation of the given value.)" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "if 26 <= 17:\n", + " print 'Fact: 26 is less than or equal to 17'\n", + "elif (26 + 8 > 14) == True:\n", + " print 'Did we need the ` == True` part here?'\n", + "else:\n", + " print 'Nothing seems true'" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Did we need the ` == True` part here?\n" + ] + } + ], + "prompt_number": 41 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Booleans\n", + "===\n", + "\n", + "`while` statements\n", + "---\n", + "\n", + "Our first looping control structure just repeats until the given expression evaluates to `False`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "i = 0\n", + "while i < 5:\n", + " print i\n", + " i += 1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n" + ] + } + ], + "prompt_number": 42 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Notes about syntax\n", + "===\n", + "\n", + "Indentation\n", + "---\n", + "\n", + "Python uses indentation to delimit blocks\n", + "\n", + "* Instead of `begin ... end` or `{ ... }` in other languages.\n", + "* Always increase indentation by *4 spaces*, never use tabs.\n", + "* In any case, be consistent." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "if False:\n", + " if False:\n", + " print 'Why am I here?'\n", + " else:\n", + " while True:\n", + " print 'When will it stop?'\n", + " print \"And we're back to the first indentation level\"" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 43 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some editors can be configured to behave just like that." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Notes about syntax\n", + "===\n", + "\n", + "Comments\n", + "---\n", + "\n", + "Comments are prepended by `#` and completely ignored." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "# Add 42 to this list.\n", + "l.append(42)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 44 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`pass` statements\n", + "---\n", + "\n", + "If you ever need a statement syntactically but don't want to do anything, use `pass`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "while False:\n", + " # This is never executed anyway.\n", + " pass" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 45 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Useful built-ins\n", + "===\n", + "\n", + "Getting help\n", + "---\n", + "\n", + "You can get help on almost any object with `help`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "help(range)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Help on built-in function range in module __builtin__:\n", + "\n", + "range(...)\n", + " range([start,] stop[, step]) -> list of integers\n", + " \n", + " Return a list containing an arithmetic progression of integers.\n", + " range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.\n", + " When step is given, it specifies the increment (or decrement).\n", + " For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!\n", + " These are exactly the valid indices for a list of 4 elements.\n", + "\n" + ] + } + ], + "prompt_number": 46 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In IPython you can do it faster by typing:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "range?" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 47 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Useful built-ins\n", + "===\n", + "\n", + "We'll shortly use the following built-in functions." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "range(5, 16)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 48, + "text": [ + "[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]" + ] + } + ], + "prompt_number": 48 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "zip(['red', 'white', 'blue'], range(3))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 49, + "text": [ + "[('red', 0), ('white', 1), ('blue', 2)]" + ] + } + ], + "prompt_number": 49 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "list('abcdefghijk')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 50, + "text": [ + "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']" + ] + } + ], + "prompt_number": 50 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Iteration\n", + "===\n", + "\n", + "Iterating over a sequence\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "colors = ['red', 'white', 'blue', 'orange']\n", + "cities = ['leiden', 'utrecht', 'warmond', 'san francisco']" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 51 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `for` statement can iterate over sequence items." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for color in colors:\n", + " print color" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "red\n", + "white\n", + "blue\n", + "orange\n" + ] + } + ], + "prompt_number": 52 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for character in 'blue':\n", + " print character" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "b\n", + "l\n", + "u\n", + "e\n" + ] + } + ], + "prompt_number": 53 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Iteration\n", + "===\n", + "\n", + "Python anti-patterns\n", + "---\n", + "\n", + "These are common for programmers coming from other languages." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "i = 0\n", + "while i < len(colors):\n", + " print colors[i]\n", + " i += 1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "red\n", + "white\n", + "blue\n", + "orange\n" + ] + } + ], + "prompt_number": 54 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for i in range(len(colors)):\n", + " print colors[i]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "red\n", + "white\n", + "blue\n", + "orange\n" + ] + } + ], + "prompt_number": 55 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We call them *unpythonic*." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Iteration\n", + "===\n", + "\n", + "Using values *and* indices\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for i, color in enumerate(colors):\n", + " print i, '->', color" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0 -> red\n", + "1 -> white\n", + "2 -> blue\n", + "3 -> orange\n" + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taking two sequences together\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for city, color in zip(cities, colors):\n", + " print city, '->', color" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "leiden -> red\n", + "utrecht -> white\n", + "warmond -> blue\n", + "san francisco -> orange\n" + ] + } + ], + "prompt_number": 57 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Iteration\n", + "===\n", + "\n", + "Other iterables\n", + "---\n", + "\n", + "Iterating over a dictionary yields keys." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for key in {'a': 33, 'b': 17, 'c': 18}:\n", + " print key" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a\n", + "c\n", + "b\n" + ] + } + ], + "prompt_number": 58 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Iterating over a file yields lines." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for line in open('data/short_file.txt'):\n", + " print line" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "this short file has two lines\n", + "\n", + "it is used in the example code\n", + "\n" + ] + } + ], + "prompt_number": 59 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are many more useful iterables in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Iterate over a list\n", + "===\n", + "\n", + "First we are going to make a list and fill it with a simple sequence. Then we are going to use this list to print something.\n", + "\n", + "* Make a list containing the numbers 0, 1, ... 9.\n", + "* Print the last 10 lines of the song ''99 bottles of beer'' using this list." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Analyse a repeat structure\n", + "===\n", + "\n", + "We are going to make a repeating DNA sequence and extract some subsequences from it.\n", + "\n", + "* Make a short tandem repeat that consists of three \"ACGT\" units and five \"TTATT\" units.\n", + "* Print all suffixes of the repeat structure.\n", + "\n", + "**Note:** A suffix is an ending. For example, the word \"spam\" has five suffixes: \"spam\", \"pam\", \"am\", \"m\" and \"\".\n", + "\n", + "* Print all substrings of length 3.\n", + "* Print all unique substrings of length 3.\n", + "\n", + "**Hint:** All elements in a set are unique." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Boolean comparison\n", + "===\n", + "\n", + "Try to guess the outcome of the following statements:\n", + "\n", + " 2 * 3 > 4\n", + " 2 * (3 > 4)\n", + " 2 * (4 > 3)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Combining lists\n", + "===\n", + "\n", + "Calculate all coordinates of the line x=y with x < 100.\n", + "\n", + "**Note:** This is the sequence (0, 0), (1, 1), ... (99, 99)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Dictionaries\n", + "===\n", + "We are going to store the output of a function ($f(x) = x^2$) together with its input in a dictionary.\n", + "\n", + "* Make a dictionary containing all squares smaller than 100.\n", + "* Print the content of this dictionary in english, e.g., \"4 is the square of 2\"." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from IPython.display import HTML\n", + "def css_styling():\n", + " styles = open('styles/custom.css', 'r').read()\n", + " return HTML('<style>' + styles + '</style>')\n", + "css_styling()" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "html": [ + "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", + "html {\n", + " overflow-y: hidden;\n", + "}\n", + "\n", + "/* Workaround some highlight.js bugs in language autodetection. */\n", + "code.objectivec *,\n", + "code.perl *,\n", + "code.cs *,\n", + "code.javascript *,\n", + "code.http * {\n", + " color: black ! important;\n", + " font-weight: normal ! important;\n", + "}\n", + "span.title {\n", + " color: black ! important;\n", + "}\n", + "span.tag {\n", + " color: black ! important;\n", + "}\n", + "span.attribute {\n", + " color: black ! important;\n", + "}\n", + "</style>" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 60, + "text": [ + "<IPython.core.display.HTML at 0x24f0cd0>" + ] + } + ], + "prompt_number": 60 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/02 - Introduction to Python (3).ipynb b/02 - Introduction to Python (3).ipynb new file mode 100644 index 0000000000000000000000000000000000000000..9360d5c169dd44b0294b85c6f20168b871e12730 --- /dev/null +++ b/02 - Introduction to Python (3).ipynb @@ -0,0 +1,892 @@ +{ + "metadata": { + "celltoolbar": "Slideshow", + "name": "", + "signature": "sha256:74676c0cad25c0954fa4f8352dda1c9010bd747de1752b4ccc667d9132427fdd" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "<span style=\"font-size: 200%\">Introduction to Python (3)</span>\n", + "===\n", + "\n", + "<br>\n", + "\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "[Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "Based on: [Python Scientific Lecture Notes](http://scipy-lectures.github.io/)\n", + "\n", + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Functions\n", + "===\n", + "\n", + "Defining a function\n", + "---\n", + "\n", + "A function definition includes its name, arguments and body." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def add_two(number):\n", + " return number + 2" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "for i in range(5):\n", + " print add_two(i)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "2\n", + "3\n", + "4\n", + "5\n", + "6\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Functions\n", + "===\n", + "\n", + "Keyword arguments\n", + "---\n", + "\n", + "Besides regular arguments, functions can have keyword arguments." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def add_some_other_number(number, other_number=12):\n", + " return number + other_number" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "add_some_other_number(2, 6)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 4, + "text": [ + "8" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "add_some_other_number(3, other_number=4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 5, + "text": [ + "7" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "add_some_other_number(5)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "17" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Functions\n", + "===\n", + "\n", + "Docstrings\n", + "---\n", + "\n", + "Like many other definitions, functions can have docstrings.\n", + "\n", + "* Docstrings are regular string values which you start the definition body with.\n", + "* You can access an object's docstring using `help`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def factorial(n):\n", + " \"\"\"Compute factorial of n in the obious way.\"\"\"\n", + " if n == 0:\n", + " return 1\n", + " else:\n", + " return factorial(n - 1) * n" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "help(factorial)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Help on function factorial in module __main__:\n", + "\n", + "factorial(n)\n", + " Compute factorial of n in the obious way.\n", + "\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Functions\n", + "===\n", + "\n", + "Functions are values\n", + "---\n", + "\n", + "We can pass functions around just like other values, and call them." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "functions = [add_two, add_some_other_number]\n", + "for function in functions:\n", + " print function(7)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "9\n", + "19\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simple anonymous functions can be created with `lambda`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "functions.append(lambda x: x * 7)\n", + "for function in functions:\n", + " print function(4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "6\n", + "16\n", + "28\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Functions\n", + "===\n", + "\n", + "Higher-order functions\n", + "---\n", + "\n", + "A function that takes a function as argument is a higher-order function." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "help(map)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Help on built-in function map in module __builtin__:\n", + "\n", + "map(...)\n", + " map(function, sequence[, sequence, ...]) -> list\n", + " \n", + " Return a list of the results of applying the function to the items of\n", + " the argument sequence(s). If more than one sequence is given, the\n", + " function is called with an argument list consisting of the corresponding\n", + " item of each sequence, substituting None for missing values when not all\n", + " sequences have the same length. If the function is None, return a list of\n", + " the items of the sequence (or a list of tuples if more than one sequence).\n", + "\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "map(add_two, [1, 2, 3, 4])" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "text": [ + "[3, 4, 5, 6]" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: k-mer counting (1/2)\n", + "===\n", + "\n", + "Remember the previous exercise of finding (unique) substrings of length 3.\n", + "\n", + "* Make a function from your implementation.\n", + "* Have `k` as an argument to the function.\n", + "* Test the function on several input strings.\n", + "\n", + "**Note:** Editing multi-line statements in the console can be frustrating. You can try the QT console (`ipython qtconsole`) or edit your function in an editor with `%edit`:\n", + "\n", + " def my_function(arg):\n", + " print arg * 4\n", + " %edit my_function" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "$\\S$ Exercise: k-mer counting (2/2)\n", + "===\n", + "\n", + "Modify your function to use a dictionary with substring counts.\n", + "\n", + "* Use the substrings as dictionary keys.\n", + "* Use the counts as dictionary values.\n", + "* Have the function return the dictionary.\n", + "* Add a docstring to the function.\n", + "* Use the function to print k-mer counts for some strings." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Comprehensions\n", + "===\n", + "\n", + "List comprehensions\n", + "---\n", + "\n", + "Similar to mathematical set notation (e.g., $\\{ x ~|~ x \\in \\mathbf R \\land x > 0\\}$), we can create lists." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "[(x, x * x) for x in range(10) if x % 2]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 13, + "text": [ + "[(1, 1), (3, 9), (5, 25), (7, 49), (9, 81)]" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can do the same thing using `map` and `filter`, but list comprehensions are often more readable." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "map(lambda x: (x, x * x), filter(lambda x: x %2, range(10)))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 14, + "text": [ + "[(1, 1), (3, 9), (5, 25), (7, 49), (9, 81)]" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Comprehensions\n", + "===\n", + "\n", + "Set and dictionary comprehensions\n", + "---\n", + "\n", + "Similar notation can be used for (non-empty) sets." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "{c for c in 'LUMC-standard' if 'a' <= c <= 'z'}" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 15, + "text": [ + "{'a', 'd', 'n', 'r', 's', 't'}" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And dictionaries." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "colors = ['red', 'white', 'blue', 'orange']\n", + "{c: len(c) for c in colors}" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 16, + "text": [ + "{'blue': 4, 'orange': 6, 'red': 3, 'white': 5}" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Everything is an object\n", + "===\n", + "\n", + "* Objects have properties and methods. \n", + "* Explore them using `dir(o)`, or by typing `o.<tab>` in the IPython interpreter." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "dir('abc')[-5:]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 17, + "text": [ + "['swapcase', 'title', 'translate', 'upper', 'zfill']" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "help('abc'.upper)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Help on built-in function upper:\n", + "\n", + "upper(...)\n", + " S.upper() -> string\n", + " \n", + " Return a copy of the string S converted to uppercase.\n", + "\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'abc'.upper()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 19, + "text": [ + "'ABC'" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Code in files\n", + "===\n", + "\n", + "Running code from a file\n", + "---" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "cat examples/fsquare.py" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "d = {}\r\n", + "for i in range(10):\r\n", + " d[i] = i ** 2\r\n", + "\r\n", + "for i in d:\r\n", + " print \"{0} is the square of {1}.\".format(d[i], i)\r\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%%sh\n", + "python examples/fsquare.py" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0 is the square of 0.\n", + "1 is the square of 1.\n", + "4 is the square of 2.\n", + "9 is the square of 3.\n", + "16 is the square of 4.\n", + "25 is the square of 5.\n", + "36 is the square of 6.\n", + "49 is the square of 7.\n", + "64 is the square of 8.\n", + "81 is the square of 9.\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Code in files\n", + "===\n", + "\n", + "Working with files in IPython\n", + "---\n", + "\n", + "The `%run` magic runs the code from a file directly in IPython:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%run examples/fsquare.py" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "0 is the square of 0.\n", + "1 is the square of 1.\n", + "4 is the square of 2.\n", + "9 is the square of 3.\n", + "16 is the square of 4.\n", + "25 is the square of 5.\n", + "36 is the square of 6.\n", + "49 is the square of 7.\n", + "64 is the square of 8.\n", + "81 is the square of 9.\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "You can edit and run a file with `%edit`." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%edit examples/fsquare.py" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 23 + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "subslide" + } + }, + "source": [ + "Code in files\n", + "===\n", + "\n", + "Saving your IPython session history to a file\n", + "---\n", + "\n", + "Give the `%save` magic a name and a range of input lines and it will save them to a `.py` file with that name:\n", + "\n", + " In [4]: %save my_session 1-3\n", + " The following commands were written to file `my_session.py`:\n", + " a = 4\n", + " a += 3\n", + " b = a" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "$\\S$ Exercise: Running code from a file\n", + "===\n", + "\n", + "* Save your k-mer counting code to a file `kmer_counting.py`.\n", + "* Include some code using it on an example string and printing the results.\n", + "* Run the code from the command line." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Further reading\n", + "===\n", + "\n", + "* [The Python Tutorial](http://docs.python.org/2/tutorial/index.html)\n", + " <br>\n", + " From the official Python documentation.\n", + "\n", + "\n", + "* [Learn Python The Hard Way](http://learnpythonthehardway.org/book/)\n", + " <br>\n", + " Book on learning Python by exercises, online available for free.\n", + "\n", + "\n", + "* [The Hitchhiker's Guide to Python](http://docs.python-guide.org/en/latest/)\n", + " <br>\n", + " This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.\n", + "\n", + "\n", + "* [A Primer on Scientific Programming with Python](http://codingcat.com/knjige/python/A%20Primer%20on%20Scientific%20Programming%20with%20Python.pdf)\n", + " <br>\n", + " Complete PDF version of the book. The aim of this book is to teach computer programming using examples from mathematics and the natural sciences.\n", + "\n", + "\n", + "* [Python Module of the Week](http://pymotw.com/)\n", + " <br>\n", + " Series of articles providing a tour of the Python standard library through short examples." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from IPython.display import HTML\n", + "def css_styling():\n", + " styles = open('styles/custom.css', 'r').read()\n", + " return HTML('<style>' + styles + '</style>')\n", + "css_styling()" + ], + "language": "python", + "metadata": { + "slideshow": { + "slide_type": "skip" + } + }, + "outputs": [ + { + "html": [ + "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", + "html {\n", + " overflow-y: hidden;\n", + "}\n", + "\n", + "/* Workaround some highlight.js bugs in language autodetection. */\n", + "code.objectivec *,\n", + "code.perl *,\n", + "code.cs *,\n", + "code.javascript *,\n", + "code.http * {\n", + " color: black ! important;\n", + " font-weight: normal ! important;\n", + "}\n", + "span.title {\n", + " color: black ! important;\n", + "}\n", + "span.tag {\n", + " color: black ! important;\n", + "}\n", + "span.attribute {\n", + " color: black ! important;\n", + "}\n", + "</style>" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 24, + "text": [ + "<IPython.core.display.HTML at 0x1965a50>" + ] + } + ], + "prompt_number": 24 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/03 - More Python goodness (1).ipynb b/03 - More Python goodness (1).ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b5f1303c0433cecab87762440284253b4124e561 --- /dev/null +++ b/03 - More Python goodness (1).ipynb @@ -0,0 +1,910 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:70bfb8ad86899454fd23b5db2e3184de272ec729cf9cdc477127a1e7d7f0f60b" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# More Python Goodness (1)\n", + "***\n", + "\n", + "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Sequencing Analysis Support Core, Leiden University Medical Center](http://sasc.lumc.nl)\n", + "\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "\n", + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Table of contents\n", + "\n", + "1. [Working with scripts](#scripts)\n", + "2. [The standard library](#stdlib)\n", + "3. [String methods](#stringmethods)\n", + "4. [Comments and docstrings](#docstrings)\n", + "5. [Detour: PEP8 and other PEPs](#peps)\n", + "6. [Errors and exceptions](#exceptions)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"scripts\"></a>\n", + "## Working with scripts\n", + "\n", + "Interpreters are great for *prototyping*, but not really suitable if you want to **share** or **release** code. To do so, we write our Python commands in scripts (and later, modules).\n", + "\n", + "A **script** is a simple text file containing Python instructions to execute." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Executing scripts\n", + "\n", + "There are two common ways to execute a script:\n", + "\n", + "1. As an argument of the Python interpreter command.\n", + "2. As a standalone executable (with the appropriate shebang line & file mode).\n", + "\n", + "IPython gives you a third option:\n", + "\n", + "<ol start=\"3\">\n", + " <li>As an argument of the `%run` magic.\n", + "</ol>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Writing your script\n", + "\n", + "Let's start with a simple GC calculator. Open your text editor, and write the following Python statements (remember your indentations):\n", + "\n", + " def calc_gc_percent(seq):\n", + " at_count, gc_count = 0, 0\n", + " for char in seq:\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + " \n", + " return gc_count * 100.0 / (gc_count + at_count) \n", + "\n", + " print \"The sequence 'CAGG' has a %GC of {:.2f}\".format(\n", + " calc_gc_percent(\"CAGG\"))\n", + "\n", + "Save the file as `seq_toolbox.py` (you can use any other name if you like) and go to your shell." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Running the script\n", + "\n", + "Let's try the first method: using your script as an argument:\n", + "\n", + " $ python seq_toolbox.py\n", + "\n", + "Is the output as you expect?\n", + "\n", + "For the second method, we need to do two more things:\n", + "\n", + "1. Open the script in your editor and add the following line to the very top:\n", + "\n", + " #!/usr/bin/env python\n", + "\n", + "2. Save the file, go back to the shell, and allow the file to be executed:\n", + "\n", + " $ chmod +x seq_toolbox.py\n", + "\n", + "You can now execute the file directly:\n", + "\n", + " $ ./seq_toolbox.py\n", + "\n", + "Is the output the same as the previous method?\n", + "\n", + "Finally, try out the third method. Open an IPython interpreter session and do:\n", + "\n", + " %run seq_toolbox.py" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"stdlib\"></a>\n", + "## The standard library\n", + "\n", + "Our script is nice and dandy, but we don't want to edit the source file everytime we calculate a sequence's GC.\n", + "\n", + "The **standard library** is a collection of Python modules (or functions, for now) that comes packaged with a default Python installation. They're not part of the language per se, more like a *batteries included* thing." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Our first standard library module: `sys`\n", + "\n", + "We'll start by using the simple `sys` module to make our script more flexible.\n", + "\n", + "Standard library (and other modules, as we'll see later) can be used via the `import` statement, for example:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import sys" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Like other objects so far, we can peek into the documentation of these modules using `help`, or the IPython `?` shortcut. For example:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sys?" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The `sys.argv` list\n", + "\n", + "The `sys` module provides a way to capture command line arguments with its `argv` object. This is a list of arguments supplied when invoking the current Python session. Not really useful for an interpreter session, but very handy for scripts." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sys.argv" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 3, + "text": [ + "['-c',\n", + " '-f',\n", + " '/home/martijn/.ipython/profile_default/security/kernel-9535cbe5-e69a-4c48-91f2-80a022c362b9.json',\n", + " \"--IPKernelApp.parent_appname='ipython-notebook'\",\n", + " '--profile-dir',\n", + " '/home/martijn/.ipython/profile_default',\n", + " '--parent=1']" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sys.argv[:3]" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 4, + "text": [ + "['-c',\n", + " '-f',\n", + " '/home/martijn/.ipython/profile_default/security/kernel-9535cbe5-e69a-4c48-91f2-80a022c362b9.json']" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script with `sys.argv`\n", + "\n", + "To use `sys.argv` in our script, open a text editor and edit the script by adding an import statement, capturing the `sys.argv` value, and editing our last `print` line:\n", + "\n", + " #!/usr/bin/env python\n", + " import sys\n", + "\n", + " def calc_gc_percent(seq):\n", + " at_count, gc_count = 0, 0\n", + " for char in seq:\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + "\n", + " return gc_count * 100.0 / (gc_count + at_count) \n", + "\n", + " input_seq = sys.argv[1]\n", + " print \"The sequence '{}' has a %GC of {:.2f}\".format(\n", + " input_seq, calc_gc_percent(input_seq))\n", + "\n", + "To test it, you can run the following command in your shell:\n", + "\n", + " $ python seq_toolbox.py CAGG\n", + "\n", + "Try it with `./seq_toolbox.py` instead. What happens?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"stringmethods\"></a>\n", + "## String methods\n", + "\n", + "Try running the script with `'cagg'` as the input sequence. What happens?\n", + "\n", + "As we saw earlier, many objects, like those of type `list`, `dict`, or `str`, have useful methods defined on them. One way to squash this potential bug is by using Python's string method `upper`. Let's first check out some commonly used string functions.\n" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str = 'Hello again, ipython!'" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.upper()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 6, + "text": [ + "'HELLO AGAIN, IPYTHON!'" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.lower()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 7, + "text": [ + "'hello again, ipython!'" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.title()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 8, + "text": [ + "'Hello Again, Ipython!'" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.startswith('H')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 9, + "text": [ + "True" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.startswith('h')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 10, + "text": [ + "False" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.split(',')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 11, + "text": [ + "['Hello again', ' ipython!']" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.replace('ipython', 'lumc')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "text": [ + "'Hello again, lumc!'" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "my_str.count('n')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 13, + "text": [ + "2" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script with `upper()`\n", + "\n", + "Let's use `upper()` to fortify our function. It should now look something like this:\n", + "\n", + " def calc_gc_percent(seq):\n", + " at_count, gc_count = 0, 0\n", + " for char in seq.upper():\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + "\n", + " return gc_count * 100.0 / (gc_count + at_count) \n", + "\n", + "And run it (in whichever way you prefer). Do you get the expected output?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"docstrings\"></a>\n", + "## Comments and docstrings\n", + "\n", + "There's a golden rule in programming: write code for humans (this includes you in 6 months). Python provides two ways to accomplish this: comments and docstrings.\n", + "\n", + "### Comments\n", + "\n", + "Any lines prepended with `#` are **comments**, making them ignored by the interpreter. Comments can be freeform text; anything that helps in understanding the code\n", + "\n", + "### Docstrings\n", + "\n", + "**Docstrings** are Python's way of attaching proper documentation to objects. Officially, the first string literal that occurs in a module, function, class, or method definition is used as that object's docstring.\n", + "\n", + "In practice, *triple-quoted strings* are used, to handle newlines easier.\n", + "\n", + "Remember how we used the `help` function (or IPython's `?` shortcut) to get information about an object, function, or module? This actually prints that object's docstring." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script with comments and docstrings\n", + "\n", + "Open your script again in a text editor, and add the following comments and docstrings: \n", + "\n", + " #!/usr/bin/env python\n", + " import sys\n", + "\n", + " def calc_gc_percent(seq):\n", + " \"\"\"\n", + " Calculates the GC percentage of the given sequence.\n", + "\n", + " Arguments:\n", + " - seq - the input sequence (string).\n", + "\n", + " Returns:\n", + " - GC percentage (float).\n", + "\n", + " The returned value is always <= 100.0\n", + " \"\"\"\n", + " at_count, gc_count = 0, 0\n", + " # Change input to all caps to allow for non-capital\n", + " # input sequence.\n", + " for char in seq.upper():\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + "\n", + " return gc_count * 100.0 / (gc_count + at_count) \n", + "\n", + " input_seq = sys.argv[1]\n", + " print \"The sequence '{}' has a %GC of {:.2f}\".format(\n", + " input_seq, calc_gc_percent(input_seq))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"peps\"></a>\n", + "## Detour: PEP8 and other PEPs\n", + "\n", + "Since comments and docstrings are basically free-form text, whether it's useful or not depends heavily on the developer. To mitigate this, the Python community has come up with practical conventions. They are documented in a document called **PEP8**.\n", + "\n", + "Complementary to PEP8, there is **PEP257** which is for docstrings specifically. It's not a must to follow these conventions, but *very* encouraged to do so.\n", + "\n", + "Python Enhancement Proposals, or **PEP**s, are how Python grows. There are hundreds of them now, all have to be approved by our BDFL.\n", + "\n", + "> [PEP8: Style Guide for Python Code](http://www.python.org/dev/peps/pep-0008/)\n", + "\n", + "> [PEP257: Docstring Conventions](http://www.python.org/dev/peps/pep-0257/)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "<a id=\"exceptions\"></a>\n", + "## Errors and exceptions\n", + "\n", + "Try running the script with `ACTG123` as the argument. What happens? Is this acceptable behavior?\n", + "\n", + "Sometimes we want to put safeguards to handle invalid inputs. In this case we only accept `ACTG`, all other characters are invalid.\n", + "\n", + "Python provides a way to break out of the normal execution flow, by raising what's called as an **exception**. We can raise exceptions ourselves as well, by using the `raise` statement." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The `ValueError` built-in exception\n", + "\n", + "One of the most often used exceptions is the builtin exception `ValueError`. It is used on occasions where inappropriate argument values are used, for example when trying to convert the string `A` to an integer:" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "int('A')" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "invalid literal for int() with base 10: 'A'", + "output_type": "pyerr", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-14-0da6d315d7ad>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'A'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;31mValueError\u001b[0m: invalid literal for int() with base 10: 'A'" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`ValueError` is the appropriate exception to raise when your function is called with argument values it cannot handle." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script by handling invalid inputs\n", + "\n", + "Open your script, and edit the `if` clause to add our exception:\n", + "\n", + " def calc_gc_percent(seq):\n", + " \"\"\"\n", + " Calculates the GC percentage of the given sequence.\n", + "\n", + " Arguments:\n", + " - seq - the input sequence (string).\n", + "\n", + " Returns:\n", + " - GC percentage (float).\n", + "\n", + " The returned value is always <= 100.0\n", + " \"\"\"\n", + " at_count, gc_count = 0, 0\n", + " # Change input to all caps to allow for non-capital\n", + " # input sequence.\n", + " for char in seq.upper():\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + " else:\n", + " raise ValueError(\n", + " \"Unexpeced character found: {}. Only \"\n", + " \"ACTGs are allowed.\".format(char))\n", + " \n", + " return gc_count * 100.0 / (gc_count + at_count)\n", + "\n", + "Try running the script again with `ACTG123` as the argument. What happens now?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Handling corner cases\n", + "\n", + "Try running the script with `''` (two quote signs) as the argument. What happens? Why? Is this a valid input?\n", + "\n", + "We don't always want to let exceptions stop program flow, sometimes we want to provide alternative flow. The `try ... except` block allows you to do this.\n", + "\n", + "The syntax is:\n", + "\n", + " try:\n", + " # Statements that may raise exceptions.\n", + " # [...]\n", + " except {exception type}:\n", + " # What to do when the exceptionis raised.\n", + " # [...]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script by handling corner cases\n", + "\n", + "Let's change our script by adding a `try ... except` block:\n", + "\n", + " def calc_gc_percent(seq):\n", + " \"\"\"\n", + " Calculates the GC percentage of the given sequence.\n", + "\n", + " Arguments:\n", + " - seq - the input sequence (string).\n", + "\n", + " Returns:\n", + " - GC percentage (float).\n", + "\n", + " The returned value is always <= 100.0\n", + " \"\"\"\n", + " at_count, gc_count = 0, 0\n", + " # Change input to all caps to allow for non-capital\n", + " # input sequence.\n", + " for char in seq.upper():\n", + " if char in ('A', 'T'):\n", + " at_count += 1\n", + " elif char in ('G', 'C'):\n", + " gc_count += 1\n", + " else:\n", + " raise ValueError(\n", + " \"Unexpeced character found: {}. Only \"\n", + " \"ACTGs are allowed.\".format(char))\n", + "\n", + " # Corner case handling: empty input sequence.\n", + " try:\n", + " return gc_count * 100.0 / (gc_count + at_count)\n", + " except ZeroDivisionError:\n", + " return 0.0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Detour: Exception handling best practices\n", + "\n", + "#### Aim for a minimal `try` block\n", + "\n", + "We want to be able to pinpoint the statements that may raise the exceptions so we can tailor our handling.\n", + "\n", + "Example of code that violates this principle:\n", + "\n", + " try:\n", + " my_function()\n", + " my_other_function()\n", + " except ValueError:\n", + " my_fallback_function()\n", + "\n", + "A better way would be:\n", + "\n", + " try:\n", + " my_function()\n", + " except ValueError:\n", + " my_fallback_function()\n", + " my_other_function()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Be specific when handling exceptions\n", + "\n", + "The following code is syntactically valid, but *never* use it in your real scripts / programs:\n", + "\n", + " try:\n", + " my_function()\n", + " except:\n", + " my_fallback_function()\n", + "\n", + "*Always* use the full exception name when handling exceptions, to make for a much cleaner code:\n", + "\n", + " try:\n", + " my_function()\n", + " except ValueError:\n", + " my_fallback_function()\n", + " except TypeError:\n", + " my_other_fallback_function()\n", + " except IndexError:\n", + " my_final_function()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Look Before You Leap (LBYL) vs Easier to Ask for Apology (EAFP)\n", + " \n", + "We could have written our last exception block like so:\n", + "\n", + " if gc_count + at_count == 0:\n", + " return 0.0\n", + " return gc_count * 100.0 / (gc_count + at_count)\n", + "\n", + "Both approaches are correct and have their own plus and minuses in general. However in this case, I would argue that EAFP is better since it makes the code more readable." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Improving our script by handling more corner cases\n", + "\n", + "Now try running your script without any arguments at all. What happens?\n", + "\n", + "Armed with what you now know, how would you handle this situation?" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from IPython.core.display import HTML\n", + "def custom_style():\n", + " style = open('styles/notebook.css', 'r').read()\n", + " return HTML('<style>' + style + '</style>')\n", + "def custom_script():\n", + " script = open('styles/notebook.js', 'r').read()\n", + " return HTML('<script>' + script + '</script>')" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 15 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "custom_style()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "html": [ + "<style>/*\n", + " https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers\n", + "*/\n", + "@font-face {\n", + " font-family: \"Computer Modern\";\n", + " src: url('http://mirrors.ctan.org/fonts/cm-unicode/fonts/otf/cmunss.otf');\n", + "}\n", + "div.cell{\n", + " width:800px;\n", + " margin-left:16% !important;\n", + " margin-right:auto;\n", + "}\n", + "h1 {\n", + " font-family: Helvetica, serif;\n", + "}\n", + "h4{\n", + " margin-top:12px;\n", + " margin-bottom: 3px;\n", + " }\n", + "div.text_cell_render{\n", + " font-family: Computer Modern, \"Helvetica Neue\", Arial, Helvetica, Geneva, sans-serif;\n", + " line-height: 145%;\n", + " font-size: 130%;\n", + " width:800px;\n", + " margin-left:auto;\n", + " margin-right:auto;\n", + "}\n", + ".CodeMirror{\n", + " font-family: \"Source Code Pro\", source-code-pro,Consolas, monospace;\n", + "}\n", + ".prompt{\n", + " display: None;\n", + "}\n", + ".text_cell_render .exercise {\n", + " font-weight: 300;\n", + " /*font-size: 22pt;*/\n", + " color: #4057A1;\n", + " font-style: italic;\n", + " /*margin-bottom: .5em;\n", + " margin-top: 0.5em;\n", + " display: block;*/\n", + "}\n", + ".text_cell_render .example {\n", + " font-weight: 300;\n", + " color: #40A157;\n", + " font-style: italic;\n", + "}\n", + "\n", + ".warning{\n", + " color: rgb( 240, 20, 20 )\n", + "}\n", + "</style>" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 16, + "text": [ + "<IPython.core.display.HTML at 0x2ceccd0>" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "custom_script()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "html": [ + "<script>// https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers\n", + "MathJax.Hub.Config({\n", + " TeX: {\n", + " extensions: [\"AMSmath.js\"]\n", + " },\n", + " tex2jax: {\n", + " inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n", + " displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n", + " },\n", + " displayAlign: 'center', // Change this to 'center' to center equations.\n", + " \"HTML-CSS\": {\n", + " styles: {'.MathJax_Display': {\"margin\": 4}}\n", + " }\n", + " });\n", + "</script>" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 17, + "text": [ + "<IPython.core.display.HTML at 0x2cecdd0>" + ] + } + ], + "prompt_number": 17 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/more-python.ipynb b/03 - More Python goodness (2).ipynb similarity index 65% rename from more-python.ipynb rename to 03 - More Python goodness (2).ipynb index d804db7cc645bc0b40376cda100cdf5423b72819..26928b254adde1a9565bde8bc2fe54262514cb01 100644 --- a/more-python.ipynb +++ b/03 - More Python goodness (2).ipynb @@ -1,6 +1,7 @@ { "metadata": { - "name": "" + "name": "", + "signature": "sha256:449f59d356a6f72e179ef39e58da7265eae4ecb8253da3c52cc6b41277fe2909" }, "nbformat": 3, "nbformat_minor": 0, @@ -11,772 +12,27 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# More Python Goodness\n", + "# More Python Goodness (2)\n", "***\n", "\n", - "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Zuotian Tatum](mailto:z.tatum@lumc.nl), [Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl)\n", + "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Sequencing Analysis Support Core, Leiden University Medical Center](http://sasc.lumc.nl)\n", "\n", - "[Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", + "[Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl), [Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", "\n", - "[Sequencing Analysis Support Core, Leiden University Medical Center](http://sasc.lumc.nl)\n", - "\n", - "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Table of contents\n", - "\n", - "1. [Working with scripts](#scripts)\n", - "2. [The standard library](#stdlib)\n", - "3. [String methods](#stringmethods)\n", - "4. [Comments and docstrings](#docstrings)\n", - "5. [Detour: PEP8 and other PEPs](#peps)\n", - "6. [Errors and exceptions](#exceptions)\n", - "7. [Working with modules](#modules)\n", - "8. [Examples from the standard library](#stdlib-examples)\n", - "9. [Reading and writing files](#io)\n", - "10. [Assignment: Finding the most common 7-mer in a FASTA file](#assignment)\n", - "11. [Further reading](#further)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"scripts\"></a>\n", - "## Working with scripts\n", - "\n", - "Interpreters are great for *prototyping*, but not really suitable if you want to **share** or **release** code. To do so, we write our Python commands in scripts (and later, modules).\n", - "\n", - "A **script** is a simple text file containing Python instructions to execute." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Executing scripts\n", - "\n", - "There are two common ways to execute a script:\n", - "\n", - "1. As an argument of the Python interpreter command.\n", - "2. As a standalone executable (with the appropriate shebang line & file mode).\n", - "\n", - "IPython gives you a third option:\n", - "\n", - "<ol start=\"3\">\n", - " <li>As an argument of the `%run` magic.\n", - "</ol>" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Writing your script\n", - "\n", - "Let's start with a simple GC calculator. Open your text editor, and write the following Python statements (remember your indentations):\n", - "\n", - " def calc_gc_percent(seq):\n", - " at_count, gc_count = 0, 0\n", - " for char in seq:\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - " \n", - " return gc_count * 100.0 / (gc_count + at_count) \n", - "\n", - " print \"The sequence 'CAGG' has a %GC of {:.2f}\".format(\n", - " calc_gc_percent(\"CAGG\"))\n", - "\n", - "Save the file as `seq_toolbox.py` (you can use any other name if you like) and go to your shell." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Running the script\n", - "\n", - "Let's try the first method: using your script as an argument:\n", - "\n", - " $ python seq_toolbox.py\n", - "\n", - "Is the output as you expect?\n", - "\n", - "For the second method, we need to do two more things:\n", - "\n", - "1. Open the script in your editor and add the following line to the very top:\n", - "\n", - " #!/usr/bin/env python\n", - "\n", - "2. Save the file, go back to the shell, and allow the file to be executed:\n", - "\n", - " $ chmod +x seq_toolbox.py\n", - "\n", - "You can now execute the file directly:\n", - "\n", - " $ ./seq_toolbox.py\n", - "\n", - "Is the output the same as the previous method?\n", - "\n", - "Finally, try out the third method. Open an IPython interpreter session and do:\n", - "\n", - " %run seq_toolbox.py" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"stdlib\"></a>\n", - "## The standard library\n", - "\n", - "Our script is nice and dandy, but we don't want to edit the source file everytime we calculate a sequence's GC.\n", - "\n", - "The **standard library** is a collection of Python modules (or functions, for now) that comes packaged with a default Python installation. They're not part of the language per se, more like a *batteries included* thing." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Our first standard library module: `sys`\n", - "\n", - "We'll start by using the simple `sys` module to make our script more flexible.\n", - "\n", - "Standard library (and other modules, as we'll see later) can be used via the `import` statement, for example:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import sys" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Like other objects so far, we can peek into the documentation of these modules using `help`, or the IPython `?` shortcut. For example:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sys?" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The `sys.argv` list\n", - "\n", - "The `sys` module provides a way to capture command line arguments with its `argv` object. This is a list of arguments supplied when invoking the current Python session. Not really useful for an interpreter session, but very handy for scripts." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sys.argv" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "['-c',\n", - " '-f',\n", - " '/home/martijn/.config/ipython/profile_default/security/kernel-b281163d-aa97-4ffa-aa16-c5232a9d8a89.json',\n", - " \"--IPKernelApp.parent_appname='ipython-notebook'\",\n", - " '--parent=1']" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "sys.argv[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 10, - "text": [ - "['-c',\n", - " '-f',\n", - " '/home/martijn/.config/ipython/profile_default/security/kernel-b281163d-aa97-4ffa-aa16-c5232a9d8a89.json']" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Improving our script with `sys.argv`\n", - "\n", - "To use `sys.argv` in our script, open a text editor and edit the script by adding an import statement, capturing the `sys.argv` value, and editing our last `print` line:\n", - "\n", - " #!/usr/bin/env python\n", - " import sys\n", - "\n", - " def calc_gc_percent(seq):\n", - " at_count, gc_count = 0, 0\n", - " for char in seq:\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - "\n", - " return gc_count * 100.0 / (gc_count + at_count) \n", - "\n", - " input_seq = sys.argv[1]\n", - " print \"The sequence '{}' has a %GC of {:.2f}\".format(\n", - " input_seq, calc_gc_percent(input_seq))\n", - "\n", - "To test it, you can run the following command in your shell:\n", - "\n", - " $ python seq_toolbox.py CAGG\n", - "\n", - "Try it with `./seq_toolbox.py` instead. What happens?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"stringmethods\"></a>\n", - "## String methods\n", - "\n", - "Try running the script with `'cagg'` as the input sequence. What happens?\n", - "\n", - "As we saw earlier, many objects, like those of type `list`, `dict`, or `str`, have useful methods defined on them. One way to squash this potential bug is by using Python's string method `upper`. Let's first check out some commonly used string functions.\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str = 'Hello again, ipython!'" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.upper()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "'HELLO AGAIN, IPYTHON!'" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.lower()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 14, - "text": [ - "'hello again, ipython!'" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.title()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 15, - "text": [ - "'Hello Again, Ipython!'" - ] - } - ], - "prompt_number": 15 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.startswith('H')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 16, - "text": [ - "True" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.startswith('h')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 17, - "text": [ - "False" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.split(',')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 18, - "text": [ - "['Hello again', ' ipython!']" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.replace('ipython', 'lumc')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 19, - "text": [ - "'Hello again, lumc!'" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "my_str.count('n')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 20, - "text": [ - "2" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Improving our script with `upper()`\n", - "\n", - "Let's use `upper()` to fortify our function. It should now look something like this:\n", - "\n", - " def calc_gc_percent(seq):\n", - " at_count, gc_count = 0, 0\n", - " for char in seq.upper():\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - "\n", - " return gc_count * 100.0 / (gc_count + at_count) \n", - "\n", - "And run it (in whichever way you prefer). Do you get the expected output?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"docstrings\"></a>\n", - "## Comments and docstrings\n", - "\n", - "There's a golden rule in programming: write code for humans (this includes you in 6 months). Python provides two ways to accomplish this: comments and docstrings.\n", - "\n", - "### Comments\n", - "\n", - "Any lines prepended with `#` are **comments**, making them ignored by the interpreter. Comments can be freeform text; anything that helps in understanding the code\n", - "\n", - "### Docstrings\n", - "\n", - "**Docstrings** are Python's way of attaching proper documentation to objects. Officially, the first string literal that occurs in a module, function, class, or method definition is used as that object's docstring.\n", - "\n", - "In practice, *triple-quoted strings* are used, to handle newlines easier.\n", - "\n", - "Remember how we used the `help` function (or IPython's `?` shortcut) to get information about an object, function, or module? This actually prints that object's docstring." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Improving our script with comments and docstrings\n", - "\n", - "Open your script again in a text editor, and add the following comments and docstrings: \n", - "\n", - " #!/usr/bin/env python\n", - " import sys\n", - "\n", - " def calc_gc_percent(seq):\n", - " \"\"\"\n", - " Calculates the GC percentage of the given sequence.\n", - "\n", - " Arguments:\n", - " - seq - the input sequence (string).\n", - "\n", - " Returns:\n", - " - GC percentage (float).\n", - "\n", - " The returned value is always <= 100.0\n", - " \"\"\"\n", - " at_count, gc_count = 0, 0\n", - " # Change input to all caps to allow for non-capital\n", - " # input sequence.\n", - " for char in seq.upper():\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - "\n", - " return gc_count * 100.0 / (gc_count + at_count) \n", - "\n", - " input_seq = sys.argv[1]\n", - " print \"The sequence '{}' has a %GC of {:.2f}\".format(\n", - " input_seq, calc_gc_percent(input_seq))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"peps\"></a>\n", - "## Detour: PEP8 and other PEPs\n", - "\n", - "Since comments and docstrings are basically free-form text, whether it's useful or not depends heavily on the developer. To mitigate this, the Python community has come up with practical conventions. They are documented in a document called **PEP8**.\n", - "\n", - "Complementary to PEP8, there is **PEP257** which is for docstrings specifically. It's not a must to follow these conventions, but *very* encouraged to do so.\n", - "\n", - "Python Enhancement Proposals, or **PEP**s, are how Python grows. There are hundreds of them now, all have to be approved by our BDFL.\n", - "\n", - "> [PEP8: Style Guide for Python Code](http://www.python.org/dev/peps/pep-0008/)\n", - "\n", - "> [PEP257: Docstring Conventions](http://www.python.org/dev/peps/pep-0257/)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<a id=\"exceptions\"></a>\n", - "## Errors and exceptions\n", - "\n", - "Try running the script with `ACTG123` as the argument. What happens? Is this acceptable behavior?\n", - "\n", - "Sometimes we want to put safeguards to handle invalid inputs. In this case we only accept `ACTG`, all other characters are invalid.\n", - "\n", - "Python provides a way to break out of the normal execution flow, by raising what's called as an **exception**. We can raise exceptions ourselves as well, by using the `raise` statement." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The `ValueError` built-in exception\n", - "\n", - "One of the most often used exceptions is the builtin exception `ValueError`. It is used on occasions where inappropriate argument values are used, for example when trying to convert the string `A` to an integer:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "int('A')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "invalid literal for int() with base 10: 'A'", - "output_type": "pyerr", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-21-0da6d315d7ad>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'A'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mValueError\u001b[0m: invalid literal for int() with base 10: 'A'" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`ValueError` is the appropriate exception to raise when your function is called with argument values it cannot handle." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Improving our script by handling invalid inputs\n", - "\n", - "Open your script, and edit the `if` clause to add our exception:\n", - "\n", - " def calc_gc_percent(seq):\n", - " \"\"\"\n", - " Calculates the GC percentage of the given sequence.\n", - "\n", - " Arguments:\n", - " - seq - the input sequence (string).\n", - "\n", - " Returns:\n", - " - GC percentage (float).\n", - "\n", - " The returned value is always <= 100.0\n", - " \"\"\"\n", - " at_count, gc_count = 0, 0\n", - " # Change input to all caps to allow for non-capital\n", - " # input sequence.\n", - " for char in seq.upper():\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - " else:\n", - " raise ValueError(\n", - " \"Unexpeced character found: {}. Only \"\n", - " \"ACTGs are allowed.\".format(char))\n", - " \n", - " return gc_count * 100.0 / (gc_count + at_count)\n", - "\n", - "Try running the script again with `ACTG123` as the argument. What happens now?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Handling corner cases\n", - "\n", - "Try running the script with `''` (two quote signs) as the argument. What happens? Why? Is this a valid input?\n", - "\n", - "We don't always want to let exceptions stop program flow, sometimes we want to provide alternative flow. The `try ... except` block allows you to do this.\n", - "\n", - "The syntax is:\n", - "\n", - " try:\n", - " # Statements that may raise exceptions.\n", - " # [...]\n", - " except {exception type}:\n", - " # What to do when the exceptionis raised.\n", - " # [...]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Improving our script by handling corner cases\n", - "\n", - "Let's change our script by adding a `try ... except` block:\n", - "\n", - " def calc_gc_percent(seq):\n", - " \"\"\"\n", - " Calculates the GC percentage of the given sequence.\n", - "\n", - " Arguments:\n", - " - seq - the input sequence (string).\n", - "\n", - " Returns:\n", - " - GC percentage (float).\n", - "\n", - " The returned value is always <= 100.0\n", - " \"\"\"\n", - " at_count, gc_count = 0, 0\n", - " # Change input to all caps to allow for non-capital\n", - " # input sequence.\n", - " for char in seq.upper():\n", - " if char in ('A', 'T'):\n", - " at_count += 1\n", - " elif char in ('G', 'C'):\n", - " gc_count += 1\n", - " else:\n", - " raise ValueError(\n", - " \"Unexpeced character found: {}. Only \"\n", - " \"ACTGs are allowed.\".format(char))\n", - "\n", - " # Corner case handling: empty input sequence.\n", - " try:\n", - " return gc_count * 100.0 / (gc_count + at_count)\n", - " except ZeroDivisionError:\n", - " return 0.0" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Detour: Exception handling best practices\n", - "\n", - "#### Aim for a minimal `try` block\n", - "\n", - "We want to be able to pinpoint the statements that may raise the exceptions so we can tailor our handling.\n", - "\n", - "Example of code that violates this principle:\n", - "\n", - " try:\n", - " my_function()\n", - " my_other_function()\n", - " except ValueError:\n", - " my_fallback_function()\n", - "\n", - "A better way would be:\n", - "\n", - " try:\n", - " my_function()\n", - " except ValueError:\n", - " my_fallback_function()\n", - " my_other_function()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Be specific when handling exceptions\n", - "\n", - "The following code is syntactically valid, but *never* use it in your real scripts / programs:\n", - "\n", - " try:\n", - " my_function()\n", - " except:\n", - " my_fallback_function()\n", - "\n", - "*Always* use the full exception name when handling exceptions, to make for a much cleaner code:\n", - "\n", - " try:\n", - " my_function()\n", - " except ValueError:\n", - " my_fallback_function()\n", - " except TypeError:\n", - " my_other_fallback_function()\n", - " except IndexError:\n", - " my_final_function()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Look Before You Leap (LBYL) vs Easier to Ask for Apology (EAFP)\n", - " \n", - "We could have written our last exception block like so:\n", - "\n", - " if gc_count + at_count == 0:\n", - " return 0.0\n", - " return gc_count * 100.0 / (gc_count + at_count)\n", - "\n", - "Both approaches are correct and have their own plus and minuses in general. However in this case, I would argue that EAFP is better since it makes the code more readable." + "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "### Improving our script by handling more corner cases\n", - "\n", - "Now try running your script without any arguments at all. What happens?\n", + "## Table of contents\n", "\n", - "Armed with what you now know, how would you handle this situation?" + "7. [Working with modules](#modules)\n", + "8. [Examples from the standard library](#stdlib-examples)\n", + "9. [Reading and writing files](#io)\n", + "10. [Assignment: Finding the most common 7-mer in a FASTA file](#assignment)\n", + "11. [Further reading](#further)" ] }, { @@ -887,7 +143,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 5 + "prompt_number": 1 }, { "cell_type": "code", @@ -901,13 +157,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 6, + "prompt_number": 2, "text": [ "<function seq_toolbox.calc_gc_percent>" ] } ], - "prompt_number": 6 + "prompt_number": 2 }, { "cell_type": "markdown", @@ -925,7 +181,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 8 + "prompt_number": 3 }, { "cell_type": "code", @@ -939,13 +195,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 23, + "prompt_number": 4, "text": [ "50.0" ] } ], - "prompt_number": 23 + "prompt_number": 4 }, { "cell_type": "markdown", @@ -963,7 +219,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 27 + "prompt_number": 5 }, { "cell_type": "code", @@ -977,13 +233,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 28, + "prompt_number": 6, "text": [ "25.0" ] } ], - "prompt_number": 28 + "prompt_number": 6 }, { "cell_type": "markdown", @@ -1001,7 +257,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 29 + "prompt_number": 7 }, { "cell_type": "code", @@ -1015,13 +271,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 30, + "prompt_number": 8, "text": [ "25.0" ] } ], - "prompt_number": 30 + "prompt_number": 8 }, { "cell_type": "markdown", @@ -1070,7 +326,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 32 + "prompt_number": 9 }, { "cell_type": "code", @@ -1084,13 +340,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 33, + "prompt_number": 10, "text": [ "'/home/martijn/projects/programming-course'" ] } ], - "prompt_number": 33 + "prompt_number": 10 }, { "cell_type": "code", @@ -1104,13 +360,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 34, + "prompt_number": 11, "text": [ - "'/home/martijn/.virtualenvs/programming-course/bin:/home/martijn/projects/muscle/muscle3.8.31/src:/home/martijn/projects/bedtools/bin:/home/martijn/projects/bamtools/bamtools/bin:/home/martijn/projects/gvnl/concordance/tabix:/home/martijn/projects/gvnl/concordance/vcftools/bin:/home/martijn/projects/gvnl/concordance/vcftools/cpp:/home/martijn/projects/samtools-trunk:/home/martijn/projects/samtools-trunk/bcftools:/home/martijn/coq-8.3-rc1/bin:/home/martijn/projects/kiek/trunk:/home/martijn/bin:/home/martijn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games'" + "'/home/martijn/.virtualenvs/programming-course/bin:/home/martijn/projects/vcftools_0.1.11/bin:/home/martijn/projects/vcftools_0.1.11/cpp:/home/martijn/projects/muscle/muscle3.8.31/src:/home/martijn/projects/bedtools/bin:/home/martijn/projects/bamtools/bamtools/bin:/home/martijn/projects/gvnl/concordance/tabix:/home/martijn/projects/samtools-trunk:/home/martijn/projects/samtools-trunk/bcftools:/home/martijn/.venvburrito/bin:/home/martijn/coq-8.3-rc1/bin:/home/martijn/projects/kiek/trunk:/home/martijn/bin:/home/martijn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games'" ] } ], - "prompt_number": 34 + "prompt_number": 11 }, { "cell_type": "code", @@ -1121,7 +377,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 35 + "prompt_number": 12 }, { "cell_type": "code", @@ -1135,13 +391,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 36, + "prompt_number": 13, "text": [ "('input', '.fastq')" ] } ], - "prompt_number": 36 + "prompt_number": 13 }, { "cell_type": "code", @@ -1156,13 +412,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 37, + "prompt_number": 14, "text": [ "'/home/martijn/projects/programming-course/input.fastq'" ] } ], - "prompt_number": 37 + "prompt_number": 14 }, { "cell_type": "code", @@ -1176,13 +432,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 19, + "prompt_number": 15, "text": [ "False" ] } ], - "prompt_number": 19 + "prompt_number": 15 }, { "cell_type": "code", @@ -1196,13 +452,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 20, + "prompt_number": 16, "text": [ "True" ] } ], - "prompt_number": 20 + "prompt_number": 16 }, { "cell_type": "code", @@ -1216,13 +472,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 21, + "prompt_number": 17, "text": [ "False" ] } ], - "prompt_number": 21 + "prompt_number": 17 }, { "cell_type": "markdown", @@ -1244,7 +500,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 38 + "prompt_number": 18 }, { "cell_type": "code", @@ -1258,29 +514,33 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 23, + "prompt_number": 19, "text": [ "['',\n", - " '/home/bow/devel/repos/watch/ipython',\n", - " '/home/bow/devel/modules/python',\n", - " '/home/bow/devel/repos/work/mnm',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python27.zip',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7/plat-linux2',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7/lib-tk',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7/lib-old',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7/lib-dynload',\n", - " '/usr/lib64/python2.7',\n", + " '/home/martijn/.venvburrito/lib/python/distribute-0.6.49-py2.7.egg',\n", + " '/home/martijn/.venvburrito/lib/python/pip-1.4.1-py2.7.egg',\n", + " '/home/martijn/.venvburrito/lib/python2.7/site-packages',\n", + " '/home/martijn/.venvburrito/lib/python',\n", + " '/usr/local/samba/lib/python2.6/site-packages',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/plat-linux2',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/lib-tk',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/lib-old',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/lib-dynload',\n", " '/usr/lib/python2.7',\n", " '/usr/lib/python2.7/plat-linux2',\n", - " '/usr/lib64/python2.7/lib-tk',\n", " '/usr/lib/python2.7/lib-tk',\n", - " '/home/bow/devel/sandbox/.virtualenvs/ipython/lib/python2.7/site-packages',\n", - " '/home/bow/devel/repos/watch/ipython/IPython/extensions']" + " '/home/martijn/.virtualenvs/programming-course/local/lib/python2.7/site-packages',\n", + " '/home/martijn/.virtualenvs/programming-course/local/lib/python2.7/site-packages/gtk-2.0',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/site-packages',\n", + " '/home/martijn/.virtualenvs/programming-course/lib/python2.7/site-packages/gtk-2.0',\n", + " '/usr/local/samba/lib/python2.6/site-packages',\n", + " '/usr/local/samba/lib/python2.6/site-packages',\n", + " '/home/martijn/.virtualenvs/programming-course/local/lib/python2.7/site-packages/IPython/extensions']" ] } ], - "prompt_number": 23 + "prompt_number": 19 }, { "cell_type": "code", @@ -1294,13 +554,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 39, + "prompt_number": 20, "text": [ "'/home/martijn/.virtualenvs/programming-course/bin/python'" ] } ], - "prompt_number": 39 + "prompt_number": 20 }, { "cell_type": "code", @@ -1314,13 +574,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 40, + "prompt_number": 21, "text": [ "sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)" ] } ], - "prompt_number": 40 + "prompt_number": 21 }, { "cell_type": "code", @@ -1334,13 +594,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 41, + "prompt_number": 22, "text": [ "2" ] } ], - "prompt_number": 41 + "prompt_number": 22 }, { "cell_type": "markdown", @@ -1362,7 +622,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 42 + "prompt_number": 23 }, { "cell_type": "code", @@ -1376,13 +636,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 28, + "prompt_number": 24, "text": [ "2.302585092994046" ] } ], - "prompt_number": 28 + "prompt_number": 24 }, { "cell_type": "code", @@ -1396,13 +656,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 29, + "prompt_number": 25, "text": [ "2.0" ] } ], - "prompt_number": 29 + "prompt_number": 25 }, { "cell_type": "code", @@ -1416,13 +676,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 30, + "prompt_number": 26, "text": [ "81.0" ] } ], - "prompt_number": 30 + "prompt_number": 26 }, { "cell_type": "code", @@ -1436,13 +696,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 31, + "prompt_number": 27, "text": [ "1.4142135623730951" ] } ], - "prompt_number": 31 + "prompt_number": 27 }, { "cell_type": "code", @@ -1456,13 +716,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 32, + "prompt_number": 28, "text": [ "3.141592653589793" ] } ], - "prompt_number": 32 + "prompt_number": 28 }, { "cell_type": "markdown", @@ -1484,7 +744,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 43 + "prompt_number": 29 }, { "cell_type": "code", @@ -1498,13 +758,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 34, + "prompt_number": 30, "text": [ - "0.596574287305641" + "0.05941901356497081" ] } ], - "prompt_number": 34 + "prompt_number": 30 }, { "cell_type": "code", @@ -1518,13 +778,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 35, + "prompt_number": 31, "text": [ - "7" + "13" ] } ], - "prompt_number": 35 + "prompt_number": 31 }, { "cell_type": "code", @@ -1539,13 +799,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 36, + "prompt_number": 32, "text": [ "'grape'" ] } ], - "prompt_number": 36 + "prompt_number": 32 }, { "cell_type": "code", @@ -1560,13 +820,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 37, + "prompt_number": 33, "text": [ - "['grape', 'orange', 'kiwi']" + "['orange', 'apple', 'banana']" ] } ], - "prompt_number": 37 + "prompt_number": 33 }, { "cell_type": "markdown", @@ -1588,7 +848,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 44 + "prompt_number": 34 }, { "cell_type": "code", @@ -1599,7 +859,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 39 + "prompt_number": 35 }, { "cell_type": "code", @@ -1610,7 +870,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 40 + "prompt_number": 36 }, { "cell_type": "code", @@ -1624,13 +884,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 41, + "prompt_number": 37, "text": [ "'CAGTCA'" ] } ], - "prompt_number": 41 + "prompt_number": 37 }, { "cell_type": "code", @@ -1641,7 +901,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 42 + "prompt_number": 38 }, { "cell_type": "code", @@ -1660,7 +920,7 @@ ] } ], - "prompt_number": 43 + "prompt_number": 39 }, { "cell_type": "markdown", @@ -1735,7 +995,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 4 + "prompt_number": 40 }, { "cell_type": "markdown", @@ -1755,7 +1015,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 44 + "prompt_number": 41 }, { "cell_type": "markdown", @@ -1776,13 +1036,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 45, + "prompt_number": 42, "text": [ "'this short file has two lines\\nit is used in the example code\\n'" ] } ], - "prompt_number": 45 + "prompt_number": 42 }, { "cell_type": "markdown", @@ -1803,13 +1063,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 46, + "prompt_number": 43, "text": [ "''" ] } ], - "prompt_number": 46 + "prompt_number": 43 }, { "cell_type": "markdown", @@ -1827,7 +1087,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 47 + "prompt_number": 44 }, { "cell_type": "code", @@ -1841,13 +1101,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 48, + "prompt_number": 45, "text": [ "'this short file has two lines\\nit is used in the example code\\n'" ] } ], - "prompt_number": 48 + "prompt_number": 45 }, { "cell_type": "markdown", @@ -1865,7 +1125,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 52 + "prompt_number": 46 }, { "cell_type": "code", @@ -1879,13 +1139,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 53, + "prompt_number": 47, "text": [ "'this short file has two lines\\n'" ] } ], - "prompt_number": 53 + "prompt_number": 47 }, { "cell_type": "code", @@ -1899,13 +1159,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 54, + "prompt_number": 48, "text": [ "'it is used in the example code\\n'" ] } ], - "prompt_number": 54 + "prompt_number": 48 }, { "cell_type": "code", @@ -1919,13 +1179,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 55, + "prompt_number": 49, "text": [ "''" ] } ], - "prompt_number": 55 + "prompt_number": 49 }, { "cell_type": "markdown", @@ -1943,7 +1203,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 56 + "prompt_number": 50 }, { "cell_type": "code", @@ -1966,7 +1226,7 @@ ] } ], - "prompt_number": 57 + "prompt_number": 51 }, { "cell_type": "markdown", @@ -1987,13 +1247,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 58, + "prompt_number": 52, "text": [ "''" ] } ], - "prompt_number": 58 + "prompt_number": 52 }, { "cell_type": "markdown", @@ -2014,13 +1274,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 59, + "prompt_number": 53, "text": [ "61" ] } ], - "prompt_number": 59 + "prompt_number": 53 }, { "cell_type": "markdown", @@ -2038,7 +1298,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 60 + "prompt_number": 54 }, { "cell_type": "code", @@ -2055,12 +1315,12 @@ "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-61-4e86183cf03e>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m<ipython-input-55-4e86183cf03e>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mValueError\u001b[0m: I/O operation on closed file" ] } ], - "prompt_number": 61 + "prompt_number": 55 }, { "cell_type": "markdown", @@ -2080,7 +1340,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 62 + "prompt_number": 58 }, { "cell_type": "markdown", @@ -2104,12 +1364,12 @@ "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mIOError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-63-73497a15302b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfw\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m<ipython-input-59-73497a15302b>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mfw\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;31mIOError\u001b[0m: File not open for reading" ] } ], - "prompt_number": 63 + "prompt_number": 59 }, { "cell_type": "markdown", @@ -2127,7 +1387,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 64 + "prompt_number": 60 }, { "cell_type": "code", @@ -2138,7 +1398,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 65 + "prompt_number": 61 }, { "cell_type": "code", @@ -2149,7 +1409,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 66 + "prompt_number": 62 }, { "cell_type": "markdown", @@ -2167,7 +1427,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 67 + "prompt_number": 63 }, { "cell_type": "code", @@ -2191,7 +1451,7 @@ ] } ], - "prompt_number": 68 + "prompt_number": 64 }, { "cell_type": "markdown", @@ -2209,7 +1469,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 71 + "prompt_number": 65 }, { "cell_type": "markdown", @@ -2243,12 +1503,12 @@ "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-16-f293b9e3578f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'data/short_file.txt'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mprint\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[1;34m'We closed our filehandle'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m<ipython-input-66-f293b9e3578f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'data/short_file.txt'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[1;32mprint\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[1;34m'We closed our filehandle'\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: invalid literal for int() with base 10: 'this short file has two lines\\n'" ] } ], - "prompt_number": 16 + "prompt_number": 66 }, { "cell_type": "markdown", @@ -2274,25 +1534,25 @@ "language": "python", "metadata": {}, "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "We closed our file handle\n" + ] + }, { "ename": "ValueError", "evalue": "invalid literal for int() with base 10: 'this short file has two lines\\n'", "output_type": "pyerr", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-17-71128226da53>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'data/short_file.txt'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mprint\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[1;32mfinally\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m<ipython-input-67-71128226da53>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'data/short_file.txt'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[1;32mprint\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mline\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[1;32mfinally\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: invalid literal for int() with base 10: 'this short file has two lines\\n'" ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "We closed our file handle\n" - ] } ], - "prompt_number": 17 + "prompt_number": 67 }, { "cell_type": "markdown", @@ -2329,7 +1589,7 @@ ] } ], - "prompt_number": 18 + "prompt_number": 68 }, { "cell_type": "markdown", @@ -2504,7 +1764,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 4 + "prompt_number": 71 }, { "cell_type": "code", @@ -2550,14 +1810,19 @@ ".prompt{\n", " display: None;\n", "}\n", - ".text_cell_render h5 {\n", + ".text_cell_render .exercise {\n", " font-weight: 300;\n", - " font-size: 22pt;\n", + " /*font-size: 22pt;*/\n", " color: #4057A1;\n", " font-style: italic;\n", - " margin-bottom: .5em;\n", + " /*margin-bottom: .5em;\n", " margin-top: 0.5em;\n", - " display: block;\n", + " display: block;*/\n", + "}\n", + ".text_cell_render .example {\n", + " font-weight: 300;\n", + " color: #40A157;\n", + " font-style: italic;\n", "}\n", "\n", ".warning{\n", @@ -2567,13 +1832,13 @@ ], "metadata": {}, "output_type": "pyout", - "prompt_number": 5, + "prompt_number": 72, "text": [ - "<IPython.core.display.HTML at 0x2cdcbd0>" + "<IPython.core.display.HTML at 0x1caac50>" ] } ], - "prompt_number": 5 + "prompt_number": 72 }, { "cell_type": "code", @@ -2604,13 +1869,13 @@ ], "metadata": {}, "output_type": "pyout", - "prompt_number": 6, + "prompt_number": 73, "text": [ - "<IPython.core.display.HTML at 0x2cd73d0>" + "<IPython.core.display.HTML at 0x1d3d950>" ] } ], - "prompt_number": 6 + "prompt_number": 73 } ], "metadata": {} diff --git a/INSTALL.md b/INSTALL.md index 42aa887c51283b74ba9b966d7c2b8ce739ca6052..e984346d5d9a7fd0d9ea71ed7f4dfa37117ba3cd 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,117 +1,97 @@ -Software installation -===================== - -The following guide gets you a virtual environment with all the necessary -packages installed. - - -Linux ------ - -We assume Ubuntu (12.10 Quantal Quetzal or later) or Debian Linux (7.0 Wheezy -or later), but if you manage to install everything on a different flavour -that's also fine. - -You can [download Ubuntu here](http://www.ubuntu.com/) and either install it -directly on your machine, or run it inside -[VirtualBox](https://www.virtualbox.org/). - -Python version >= 2.7.3 and < 3.0 is required. This is installed by default on -Ubuntu and Debian Linux. Note that we use Python 2, *not* Python 3. - -We need some system packages to be installed. For the following command, you -need sudo rights: - - sudo apt-get install -y \ - curl python-qt4 libfreetype6-dev libpng12-dev python-cairo \ - python-gtk2 python-gtk2-dev git gfortran - -From here on, everything is local for the current user. - -Install [virtualenv](http://www.virtualenv.org/) and -[virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) using -[Virtualenv Burrito](https://github.com/brainsik/virtualenv-burrito): - - curl -sL https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | $SHELL - source ~/.venvburrito/startup.sh - -Automatically -[link PyGTK/Pycairo/PyQt system packages](https://gist.github.com/martijnvermaat/6111396/) -into our virtual environments: - - curl -sL https://gist.github.com/martijnvermaat/6111396/raw/postmkvirtualenv > ~/.virtualenvs/postmkvirtualenv - -Create a virtual environment (named `programming-course`, but you could choose -any name here): - - mkvirtualenv programming-course - -Install IPython: - - pip install ipython - -Install some of the other package we'll use: - - pip install pyzmq tornado jinja2 pygments sphinx markdown nose - pip install numpy - pip install matplotlib - pip install biopython - pip install pandas==0.14.0 - pip install openpyxl==2.0.4 - -Define a default matplotlib backend: - - mkdir -p ~/.config/matplotlib - echo "backend : GTKCairo" >> ~/.config/matplotlib/matplotlibrc - - -Mac OSX Mountain Lion ---------------------- - -Install -[Xcode from the App Store](https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 -Xcode from the App Store). Start Xcode and install the device support -(Preferences -> Downloads). - -Install Xcode command line tools: - - ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" - brew doctor - xcodebuild -license # accept license - -Add user `bin`, and local Python to your `$PATH`: - - echo 'export PATH="~/bin:/usr/local/share/python:/usr/local/bin:$PATH"' > .bash_profile - . .bash_profile - -We need some system packages: - - brew install python --with-brewed-openssl - brew install gfortran - -Install [virtualenv](http://www.virtualenv.org/) and -[virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) using -[Virtualenv Burrito](https://github.com/brainsik/virtualenv-burrito): - - curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | $SHELL - source .venvburrito/startup.sh - -Create a virtual environment (named `programming-course`, but you could choose -any name here): - - mkvirtualenv programming-course - -Install IPython (version 1.0): - - pip install -e git+https://github.com/ipython/ipython#egg=ipython - # or after its 1.0 release: pip install ipython - -Install some of the other package we'll use: - - pip install pyzmq tornado jinja2 pygments sphinx markdown nose - pip install numpy - pip install matplotlib - pip install biopython - pip install pandas==0.14.0 - pip install openpyxl==2.0.4 - +Software installation +===================== + +The following guide gets you a virtual environment with all the necessary +packages installed. + + +Linux +----- + +We assume Ubuntu (12.04 Precise Pangolin or later) or Debian Linux (7.0 Wheezy +or later), but if you manage to install everything on a different flavour +that's also fine. + +You can [download Ubuntu here](http://www.ubuntu.com/) and either install it +directly on your machine, or run it inside +[VirtualBox](https://www.virtualbox.org/). + +Python version >= 2.7.3 and < 3.0 is required. This is installed by default on +Ubuntu and Debian Linux. Note that we use Python 2, *not* Python 3. + +We need some system packages to be installed. For the following command, you +need sudo rights: + + sudo apt-get install -y \ + curl python-qt4 libfreetype6-dev libpng12-dev python-cairo \ + python-gtk2 python-gtk2-dev git gfortran + +From here on, everything is local for the current user. + +Install [virtualenv](http://www.virtualenv.org/) and +[virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) using +[Virtualenv Burrito](https://github.com/brainsik/virtualenv-burrito): + + curl -sL https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | $SHELL + source ~/.venvburrito/startup.sh + +Automatically +[link PyGTK/Pycairo/PyQt system packages](https://gist.github.com/martijnvermaat/6111396/) +into our virtual environments: + + curl -sL https://gist.github.com/martijnvermaat/6111396/raw/postmkvirtualenv > ~/.virtualenvs/postmkvirtualenv + +Create a virtual environment (named `programming-course`, but you could choose +any name here): + + mkvirtualenv programming-course + +Install Python packages: + + pip install -r requirements.txt + +Define a default matplotlib backend: + + mkdir -p ~/.config/matplotlib + echo "backend : GTKCairo" >> ~/.config/matplotlib/matplotlibrc + + +Mac OSX Mountain Lion +--------------------- + +Install +[Xcode from the App Store](https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12 +Xcode from the App Store). Start Xcode and install the device support +(Preferences -> Downloads). + +Install Xcode command line tools: + + ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" + brew doctor + xcodebuild -license # accept license + +Add user `bin`, and local Python to your `$PATH`: + + echo 'export PATH="~/bin:/usr/local/share/python:/usr/local/bin:$PATH"' > .bash_profile + . .bash_profile + +We need some system packages: + + brew install python --with-brewed-openssl + brew install gfortran + +Install [virtualenv](http://www.virtualenv.org/) and +[virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) using +[Virtualenv Burrito](https://github.com/brainsik/virtualenv-burrito): + + curl -sL https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | $SHELL + source .venvburrito/startup.sh + +Create a virtual environment (named `programming-course`, but you could choose +any name here): + + mkvirtualenv programming-course + +Install Python packages: + + pip install -r requirements.txt diff --git a/README.md b/README.md index 2efbfae42bdfe22e9e6e19690aaa1a1988bc982d..7777dd8cc41b5ca7dbb7f6d535c9474271b9906b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ Programming course ================== -This repository contains material for the first installment (August 2013) of -a programming course for scientists organised by the department of Human +This repository contains material for the second installment (July 2014) of a +programming course for scientists organised by the department of Human Genetics of the Leiden University Medical Center. The course is targeted at PhD students, Postdocs, or anyone willing to learn @@ -23,35 +23,55 @@ Software installation See the instructions in `INSTALL.md`. -Slides ------- +Materials +--------- -The top-level directory contains slides for the following lessons. +The top-level directory contains materials for the following lessons: -1. [Welcome](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/welcome.ipynb) -2. [Introduction to Python](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/python.ipynb) -3. [Version control with Git](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/git.ipynb) -4. [More Python Goodness](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/more-python.ipynb) -5. [Working with NumPy arrays](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/numpy.ipynb) -6. [Plotting with matplotlib](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/matplotlib.ipynb) -7. [Object-oriented programming](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/classes.ipynb) -8. [A sip of Biopython](http://nbviewer.ipython.org/urls/raw.github.com/LUMC/programming-course/master/biopython.ipynb) +1. Welcome (slides) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/welcome.ipynb) +2. Introduction to Python (slides) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/python.ipynb) +3. More Python Goodness (notebook) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/more-python.ipynb) +4. Working with NumPy arrays (slides) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/numpy.ipynb) +5. Plotting with matplotlib (slides) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/matplotlib.ipynb) +6. Object-oriented programming (slides) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/classes.ipynb) +7. A sip of Biopython (notebook) [view](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/biopython.ipynb) -Note: These links are to one-page renderings on [IPython Notebook Viewer](http://nbviewer.ipython.org/), see below how to get the real slideshows. +As indicated, some of the lessons are slideshows, whereas others are just +notebooks we scroll through during class. The links above are all one-page +static renderings on [IPython Notebook Viewer](http://nbviewer.ipython.org/). +We also have a +[repository with material for the assignments](https://git.lumc.nl/humgen/programming-course-assignments). -Editing the slides ------------------- -The slides are simple IPython notebooks, you can edit them by starting a -notebook server: +Notebooks +--------- + +We apply some custom styling to the notebooks (e.g., body width, font), which +is loaded in the last cell. This loads `styles/notebook.css` and +`styles/notebook.js`. + +A variant `styles/notebook.css.small` is provided that is more suitable for +use on low-resolution displays. To use it, manually change the reference to +this file in the bottom cell, and rerun it. + + +Slideshows +---------- + +The sources for the slideshows are also IPython notebooks and you can edit +them by starting a notebook server: ipython notebook Choose *Slideshow* in the *Cell Toolbar* menu. Some aditional information on editing slides in the Notebook can be found -here in [this presentation](http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html). +here in +[this presentation](http://www.slideviper.oquanta.info/tutorial/slideshow_tutorial_slides.html). + +We also apply some custom styling to the slideshows, which is loaded in the +last cell. Live rendering of the slides @@ -72,12 +92,17 @@ think it's usually not a good idea to rely on internet connectivity for your slides, so you can also place a copy of reveal.js on your local computer and specify the location like this: - --RevealHelpTransformer.url_prefix=reveal.js + --reveal-prefix reveal.js + +This would look for the reveal.js library in the `reveal.js` directory. A Git +submodule is already setup for this, so you can just do: -This would look for the reveal.js library in the reveal.js directory. You can -download reveal.js by cloning its GitHub repository: + git submodule init + git submodule update - git clone https://github.com/hakimel/reveal.js.git +(Unfortunately, there are other online dependencies such Font Awesome, so +without an internet connection, not everything will look ok, but it will +work.) Also, if you just want to compile the slides to HTML without serving them to your browser, leave out the `--post serve` argument. diff --git a/exercises.ipynb b/exercises.ipynb deleted file mode 100644 index 1a2e8070d7b0b2f8f35c7de99e62b4405ccf5b56..0000000000000000000000000000000000000000 --- a/exercises.ipynb +++ /dev/null @@ -1,666 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.display import HTML, Image\n", - "%pylab inline\n", - "import numpy as np\n", - "from mpl_toolkits.mplot3d import Axes3D\n", - "figsize(10, 4)" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Prime number sieve (1/2)\n", - "===\n", - "\n", - "Compute prime numbers in $[0, 99]$, with a sieve." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/numpy_prime_sieve.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "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\n", - "prompt_number": 4, - "text": [ - "<IPython.core.display.Image at 0x2ea3c90>" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Start with a boolean array `is_prime` of shape `(100,)`, filled with `True`.\n", - "2. Cross out 0 and 1 (i.e., set their index to `False`), which are not prime.\n", - "3. For each integer $i$ starting from 2, cross out its higher multiples.\n", - "4. Skim through the help for `np.nonzero`, and print the prime numbers." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: Prime number sieve (2/2)\n", - "===\n", - "\n", - "**Hint:** Use the following approach for step 3 on the previous slide:\n", - "\n", - " max_factor = int(np.sqrt(len(is_prime)))\n", - " for i in range(2, max_factor):\n", - " is_prime[ ... ] = False\n", - "\n", - "Follow-up:\n", - "\n", - "* Move your code into a file named `prime_sieve.py`.\n", - "* Run it to check it works.\n", - "* Use the optimization suggested in the sieve of Eratosthenes:\n", - " - Skip $i$ which are already known to not be primes.\n", - " - The first number to cross out is $i^2$ (if you didn't already)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: Prime number sieve (solution)\n", - "===\n", - "\n", - "* Use `ones` to initialize a boolean array with `True` values.\n", - "* Assign to all higher multiples of `i` by slicing with `[2*i::i]`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "is_prime = np.ones((100,), dtype=bool)\n", - "is_prime[:2] = False\n", - "\n", - "max_factor = int(np.sqrt(len(is_prime)))\n", - "for i in range(2, max_factor):\n", - " is_prime[2*i::i] = False\n", - "\n", - "np.nonzero(is_prime)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 10, - "text": [ - "(array([ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,\n", - " 61, 67, 71, 73, 79, 83, 89, 97]),)" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Area filling\n", - "===\n", - "\n", - "Starting from the following code, try to reproduce the graphic below:\n", - "\n", - " n = 256\n", - " x = linspace(-pi, pi, n)\n", - " y = sin(2 * x)\n", - "\n", - " plot(x, y + 1, color='blue', alpha=1.00)\n", - " plot(x, y - 1, color='blue', alpha=1.00)\n", - "\n", - "**Hint:** Use `fill_between`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/matplotlib_fill_between.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "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\nDIbW8f8ilBkgajOw0QAAAABJRU5ErkJggg==\n", - "prompt_number": 22, - "text": [ - "<IPython.core.display.Image at 0x7fa9502b4bd0>" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: Area filling (solution)\n", - "===" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# In this section, we want to continue working on the same figure.\n", - "%config InlineBackend.close_figures=False" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 53, - "text": [ - "<matplotlib.figure.Figure at 0x7fa952664fd0>" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "text": [ - "<matplotlib.figure.Figure at 0x7fa952664fd0>" - ] - } - ], - "prompt_number": 53 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n = 256\n", - "x = linspace(-pi, pi, n)\n", - "y = sin(2 * x)\n", - "\n", - "plot(x, y + 1, color='blue', alpha=1.00)\n", - "plot(x, y - 1, color='blue', alpha=1.00)" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 54, - "text": [ - "[<matplotlib.lines.Line2D at 0x3318b10>]" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nZDYl/gAAAABJRU5ErkJggg==\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa952664fd0>" - ] - } - ], - "prompt_number": 54 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "fill_between(x, y + 1, 1, color='blue', alpha=.3)\n", - "fill_between(x, y - 1, -1, y > 0, color='blue', alpha=.3)\n", - "fill_between(x, y - 1, -1, y < 0, color='red', alpha=.3)\n", - "\n", - "xticks([]); yticks([])\n", - "xlim(-pi, pi); ylim(-2.5, 2.5);" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 55, - "text": [ - "(-2.5, 2.5)" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAADtCAYAAAC78q85AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd0VGX7NeA96Y0USAi9g/QuhJpAaNI7CALSwQKo9Cbd\ngtIURRFEBRVEEREIAqFJMSAI0gNI7ySkkJ6c74/7zYfv+4M0ZuY5c2Zfa2WJRpMbmdyzz1NNmqZp\nICIiIjIwB9UFEBEREVkaAw8REREZHgMPERERGR4DDxERERkeAw8REREZHgMPERERGZ5TVp8MCQnB\nnj17rFULERERUZ4FBwdj9+7dT/ycKatzeEwmE3hMDxEREdmCrHILp7SIiIjI8Bh4iIiIyPAYeIiI\niMjwGHiIiIjI8Bh4iIiIyPAYeIiIiMjwGHiIiIjI8Bh4iIiIyPAYeIiIiMjwGHiIiIjI8Bh4iIiI\nyPAYeIiIiMjwGHiIiIjI8Bh4iIiIyPAYeIiIiMjwGHiIiIjI8Bh4iIiIyPAYeIiIiMjwGHiIiIjI\n8JxUF6BHmgZcvAhcugTcuAHcuiUf8fHyeZMJcHQE3NyAQoWAYsWAkiWBMmWA4sXl80RE/0vTpKdE\nRkp/uXIFePgQSE4GUlOBtDTAwQHw95ePwECgcGGgenWgSBHV1RPZNpOmadpTP2kyIYtPG8bFi8DW\nrUBEBHDihPy9yQTkzw/4+AD58gHe3hJwAGlamiYNKiZGGlZMDBAdLf/dc88BtWsDDRoAoaFAiRJq\nf39EpMaFC8CuXcD+/cCff0rQcXSU3pI/P+DnB3h4yD9zcpK/ZmQAjx4BcXHykBUXB9y+Lf2nbFmg\nalWgUSOgQwd54CKix7LKLXYZeFJTgd9+A376CQgPB+7elZBSsiRQvrz8umDBvH3tO3eA06eB8+fl\n6e3SJXkya9UK6NkTaNqUI0BERpWeDuzYAaxbB2zbJg9DpUvL6G/FikCVKhJyckvTgJs3JTBdvChB\n6uJFeZhq3hzo3Fl6DHsL2TsGnv84eBD49FPgl19k1KZaNSAoSIaLHR0t8z1TU4GjR4FDh2T0KCMD\n6NIFeP11+b5EZPt+/x34+GMJOW5uQM2aMgpTrZpMUVlCSgpw7Bhw+PDj3tK1KzBiBFCjhmW+J5He\n2XXgiYsDPvoIWLVKRnIaNADatJEnLmvTNBn5CQsD/vgDKFcOGDoUGDgQcHe3fj1ElHfx8cBnnwHL\n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\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa952664fd0>" - ] - } - ], - "prompt_number": 55 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%config InlineBackend.close_figures=True" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 59 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Scatter plots\n", - "===\n", - "\n", - "Starting from the following code, try to reproduce the graphic below:\n", - "\n", - " n = 1024\n", - " x = random.normal(0, 1, n)\n", - " y = random.normal(0, 1, n)\n", - " scatter(x, y)\n", - "\n", - "**Hint:** Colors can be given by the angle of `(x, y)` which is `arctan2(y, x)`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/matplotlib_scatter.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "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\nYVjvnZMsy2x89FN09W7B5/OR3XqKUmctRoNEarSZ3TXPMVy5huiI8Jl+ZFkmp7CEnCvinERRRNXE\nKxzbCjrD1c53g9GIO3TZ1PIFVQzXkeiappGdX0R2ftFVv+n1euKTUhfshFUD41gM4ozNnJIYTk39\neVi1esF4todZUGwb8fjPEBPvoKokgD68BINe4uwFD/k5EBMVDhqUZI7R1HCU5Su2zNpe+erPcvDQ\njykrtOMTV3NuIIGJegfr77sPk9mELCkg6KcGrYFeFgiFQpc1x0CQF575Nqr/dWQ5jEn/aiLDOkh2\naOzbE8W99/8F4eH2a5hQSck69u+robJSZWwsiM+3HLM5fKbdyclxTtcfxOuboGhJFQkJKVfhQJZl\niotWUFy0gpoTe+jq2EtcgkhT2xhLcj92FU0ajRa8fQKgodeJjIwEsVqj77g9/hunYV2PgBPi4tj+\n+S++LxV9YU7p2b9TNWhvbWbizDlGJx0szU2jxxkgLnXusr4AyYnxaMBEw/6pe+bUqXzMzCgTXZ2d\nMwzreuayJSwCf0I59e3VWHQCbf4wlm7fdNU78Y50jpqWEGprRBKhT0pjVX7xvAXE+5HG4XHZnD31\nDhUFUwX99tYMsGzt529KcGmaxtb7P0lT42liC6uoG2kkNuTDPxhOeul6zMrOK7QxicCY57q4z8kt\nIsz+DS4O9pJZlknlJhsud4DhoT5SLKnYYzdTU/MCWWl6+gf99IwsY0vl5QORfXuepzT7RfJyjIyN\nDbNrz3cpLvwkOUviWF7u5flXfsiOj/35NZq11Wqjau2fc/58I2azjaqqPKY9G6Oj4xyr/S6l5X5M\nRpkTNceYnPwqubm5s65DRfkGzp1NoP1sF2FhyeQW5l/luwyzRSErKzlZcxxJVvCMp7CmcsVHDOtO\n0bxudmNNf/fWyzsZ6zhP/l2bKC0rm3eVy50/+Q/W08VYShzd5+r4h8Yuqj71FfIysufnuwO0qFSG\nW+tJirWDpnJsUOOxoqI5GaUgCOh0Oiq2fpyRgSo8LhcrHamYrzDXBEFAr9ez8oEnGRvqRwmFyIxP\nQq//YCoIZGblIAlf4oVDLyIIULbmk6TNkXI1HyhYUkLBkhLgXtxuF7KsR1UVDrxxkHSHF71RpuZM\ngJJ1K+bEvdVq5eihalobnmfMaSU7ZQxHvMBrNQbWbvlDfN4cmi+cIT4xnfVlWVfgHyZG61ldaEQU\n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\n", - "prompt_number": 56, - "text": [ - "<IPython.core.display.Image at 0x33007d0>" - ] - } - ], - "prompt_number": 56 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: Scatter plots (solution)\n", - "===\n", - "\n", - "The trick to mimic the graphic is to set `xlim` and `ylim`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "n = 1024\n", - "x = random.normal(0, 1, n)\n", - "y = random.normal(0, 1, n)\n", - "\n", - "scatter(x, y, s=75, c=arctan2(y, x), alpha=.5)\n", - "\n", - "xticks([]); yticks([])\n", - "xlim(-1.5, 1.5); ylim(-1.5, 1.5);" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nAElFTkSuQmCC\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa9522b8090>" - ] - } - ], - "prompt_number": 66 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Subplots\n", - "===\n", - "\n", - "Starting from the following code, try to reproduce the graphic below:\n", - "\n", - " subplot(2, 2, 1)\n", - " subplot(2, 2, 3)\n", - " subplot(2, 2, 4)\n", - "\n", - "**Hint:** You can use several subplots with different partitionings." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/matplotlib_subplots.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI\nWXMAAA9hAAAPYQGoP6dpAAAAB3RJTUUH3QgCDiMMRYwwWwAABCVJREFUeNrt3DFOMm0UgNE7OCTQ\nEBPdALHUQjsbKxMLCxN34A7s3IC2LsPGPWhrZaGVLkLBiAYzOO/f/R0YYZgP4jktZor7eh+GKSZL\nKaUAWAINIwAEC0CwgL8qH/dBSimKoogsy0wJqE2z2fx9sHq9Xpyensbq6qpoAXM3HA6j2+3G2dlZ\nrKys/C5YZVnG/v5+nJycmCQwd4PBIK6vryfeIE18hjUajaIsS5MEarnD+qk3HroDS0OwAMECECxA\nsAAEC0CwAMECECwAwQIEC0CwAAQLECwAwQIQLECwAAQLQLAAwQIQLADBAgQLQLAABAsQLADBAhAs\nQLAABAsQLCMABAtAsADBAhAsAMECBAtAsAAECxAsAMECECxAsAAEC0CwAMECECwAwQIEC0CwAAQL\nECwAwQIQLECwAAQLQLAAwQIQLECwAAQLQLAAwQIQLADBAgQLQLAABAsQLADBAhAsQLAABAtAsADB\nAhAsAMECBAtAsAAECxAsAMECECxAsAAEC0CwAMECECxAsAAEC0CwAMECECyAuQcrz/NoNDQNmL9W\nq/Vjb/KxJWs04ubmJu7v7yPLMtME5mo4HEa3242U0ti/ydKYT1NKURSFWAG1ajabvw8WwKLxgAoQ\nLADBAgQLQLAABAsQLADBAhAsQLAABAtAsADBAhAsAMECBIt/x2vLzJYJr0j++vqK29vbGAwG3jpa\n0VJsbGzEzs7OVPPMsiweHh7i+fnZe/YrOo+yLOPo6Cja7fZU17Aj9e/I2GC9v7/H4+NjHB4eOowK\n9Pv9uLu7i+3t7anneXV1FcfHx9HpdNwVzKjVasXFxUUcHBxMHSw7Uv+O5JMusL6+HltbWw6jAi8v\nL/H09DTTNUajUWxubkan0zHQCqytrc18t2pH6t2Rxk+3aL7JF+s5ifNYrDOxI/Weh4chwNIQLECw\nAAQLECwAwQIQLECwAAQLQLAAwQIQLADBAgQLQLAABAsQLADBAhAsQLAABAtAsADBAhAsAMECBAtA\nsAAECxAsAMECBMsIAMECECxAsAAEC0CwAMECECwAwQIEC0CwAAQLECwAwQIQLECwAAQLQLAAwQIQ\nLADBAgQLQLAABAsQLADBAhAsQLAABAsQLADBAhAsQLAABAtAsADBAhAsAMECBAtAsAAECxAsAMEC\nECxAsAAEC0CwAMECECwAwQIEC0CwAAQLECwAwQIQLECwAAQLECwAwQIQLECwAJY3WFmWRaOhaVXI\nsmyhrkM1s7Qj9Z5HPu6DlFJ8fn5Gr9dzIBV4e3uLoihmusb393f0+/3/z4fptdvt+Pj4mGmOdqT+\nHcknHejr62ucn5+bZAVSSrG7uzvTNfb29uLy8jLyPBesir7NZ7nLsiP170iW/OcvzWH6OWi2f/6L\nRrCAZeGHNyBYAIIF/Fn/AdC9BSa8FfD9AAAAAElFTkSuQmCC\n", - "prompt_number": 67, - "text": [ - "<IPython.core.display.Image at 0x7fa952a99e10>" - ] - } - ], - "prompt_number": 67 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: Subplots (solution)\n", - "===" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "subplot(2, 1, 1)\n", - "xticks([]); yticks([])\n", - "\n", - "subplot(2, 3, 4)\n", - "xticks([]); yticks([])\n", - "\n", - "subplot(2, 3, 5)\n", - "xticks([]); yticks([])\n", - "\n", - "subplot(2, 3, 6)\n", - "xticks([]); yticks([]);" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAADtCAYAAAC78q85AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAABLVJREFUeJzt3DFqJDEQQFFpmXtpjj5zMm3kwLBWYHC79/MeVKSkghZ8\nEPTce+8BABD257cXAAD4aYIHAMgTPABAnuABAPIEDwCQJ3gAgLzH6fD5fI73+33VLgAA37bWGq/X\n659n8/Qfnjnn8JseAOB/cOoWT1oAQJ7gAQDyBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIHAMgTPABA\nnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAg\nT/AAAHmCBwDIEzwAQJ7gAQDyBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIHAMgTPABAnuABAPIEDwCQ\nJ3gAgDzBAwDkCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAHmCBwDI\nEzwAQJ7gAQDyBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDk\nCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDy\nBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/wAAB5\nggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDyBA8AkPc4Ha61\nxpzzql0AAL5trfXl2dx77wt3AQC4nCctACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDk\nCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAH37YK21xxjG3GLWWqfP\n9RLuhLnTuBPGfJ7TnZh77z2+MOcch2O41B2+xzvsAB/u8D3eYQf4cPoePWkBAHmCBwDIEzwAQJ7g\nAQDyBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/w\nAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDyBA8AkCd4\nAIA8wQMA5AkeACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/wAAB5ggcAyBM8\nAECe4AEA8gQPAJAneACAPMEDAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDyBA8AkCd4AIA8wQMA5Ake\nACBP8AAAeYIHAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQP\nAJAneACAPMEDAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDyBA8AkCd4AIA8wQMA5AkeACBP8AAAeYIH\nAMgTPABAnuABAPIEDwCQJ3gAgDzBAwDkCR4AIE/wAAB5ggcAyBM8AECe4AEA8gQPAJAneACAPMED\nAOQJHgAgT/AAAHmCBwDIEzwAQJ7gAQDyHqfDtdaYc161CxyttX57BXeCW3En4LPTnZh7733hLgAA\nl/OkBQDkCR4AIE/wAAB5ggcAyBM8AEDeX5gMXjJT/BvuAAAAAElFTkSuQmCC\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa952db7f10>" - ] - } - ], - "prompt_number": 70 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: DNA sequence visualisation (1/2)\n", - "===\n", - "\n", - "We consider a DNA sequence as a walk in three-dimensional space:\n", - "\n", - "* Each base (A, T, C, G) is assigned a direction in this space.\n", - "* Starting from the origin (0, 0, 0), each nucleotide in the sequence is a step." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "base_vectors = {'A': array([ 1, 1, 1]),\n", - " 'T': array([-1, -1, 1]),\n", - " 'C': array([-1, 1, -1]),\n", - " 'G': array([ 1, -1, -1])}\n", - "subplot(1, 1, 1, projection='3d')\n", - "for base in base_vectors:\n", - " x, y, z = array([zeros(3), base_vectors[base]]).T\n", - " plot(x, y, z, label=base)\n", - "legend();" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\n/geijnD/jdkRVwAAAABJRU5ErkJggg==\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa9502d2810>" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: DNA sequence visualisation (2/2)\n", - "===\n", - "\n", - "In this excercise, plot the walk of some DNA sequence in the three-dimensional space.\n", - "\n", - "**Hint 1:** You can use the following idiom to create an array of steps (vectors) from a DNA sequence string:\n", - "\n", - " vectors = zeros((len(dna), 3), dtype=int)\n", - " for i, nucleotide in enumerate(dna):\n", - " vectors[i] = base_vectors[nucleotide]\n", - "\n", - "**Hint 2:** Have a look at the `cumsum` function.\n", - "\n", - "* Does the walk actually start from (0, 0, 0)? If not, do you know how to fix it?\n", - "* Graphically indicate the start and end of the sequence.\n", - "* Try to find some interesting DNA sequences to visualise (e.g., containing some repeat sequences)." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: DNA sequence visualisation (solution)\n", - "===" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# This is hg19 chromosome 1 1000000:1002000\n", - "dna = 'GGGCACAGCCTCACCCAGGAAAGCAGCTGGGGGTCCACTGGGCTCAGGGAAGACCCCCTGCCAGGGAGACCCCAGGCGCCTGAATGGCCACGGGAAGGAAAACCTACCAGCCCCTCCGTGTGTCCTCCTGGCACATGGCGACCTCCATGACCCGACGAGGGTGCGGGGCCCGGGGCAGGGTGGCCAGGTGCGGGGGTGCGGGGCCCGGGGCAGCTGCCCTCGGTGGGAGGggtgtggtgtggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtgtggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtgtggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtgtggtctgcggggccctgggggggtgtggtggggtctgcggggccctgggggggtgtggtggggtctgCGGGGCCCTGGGGGGGGTGGGGTCTGCGGGGCCCTGGGGGTGTTGTGGTGGGGTCTGCGGGGCCCTGGGGGGGTGTGGTGGGGTCTGCGGTGCCCTCGGGGGGTGTGGTGGGGTCTGCGGGGCCCTGGGGGGGTGTGGTGGGGTCTGGGGGGCCCTAAGCTTAGATGCAGGTCTCTCCCTGGCAGCCCCTCAAGGCCACGAGGATCAGTGCTCGGAGCCTGGAGGGCTGTGTGCAGGAGTAGCAGGGCCACTGATGCCAGCGGGAAGGCCAGGCAGGGCTTCTGGGTGGAGTTCAAGGTGCATCCTGACCGCTGTCACCTTCAGACTCTGTCCCCTGGGGCTGGGGCAAGTGCCCGATGGGAGCGCAGGGTCTGGGACtgtagggtccagccctacggagcttagcaggtgttctccccgtgtgtggagatgagagattgtaataaataaagacacaagacaaagagataaagagaaaacagctgggccccggggaccactaccacaaagacacggagaccggtagtggccctgaacggctgggctcgctgatatttattgcatacaagacaagggggcaggataaggagggtcagtcttctaagtgattgacaaggtgaagcaagtcacgtgatcacaggacagcgggcccttccctcttaggtagctgaagcagagagagaaggcggcaggcatcagcgttttcttctatgaacttataagatcaaagactttaagactttcactatttcttctaccgctatctactacgaacttcaaagaggaaccaggagtacggaaggagcatgaaagtggacaaggaacgtgaccattgaagcaccacagggaggggttcaggcctccggatgactgcaggcaggcctgggtaacatccagcctcccacaagaagctggtggagcagagcgttccctgactcctccaaggaaaggagactccctttcccggtctgctcagtaacgggtgccttcccagacactggcgttaccgcttgaccaaggggccctcaagcggcccttatgcgggcatgacagaaggctcccctcttgccttctattcacttctcacaatgtcccttcagcacctgaccctatacctgccggttattcctaggttatattattaatgcaacagagtaatattaaaagctaatgattaataatgtttataataatgatggataattgttcatgatcatcgctgtatctaatttgtattatgactattcttattctattttctttattatactgaaacagtttgtgccttcagtctcttgcctcggcacctaggtactcttccgcccacaCGGGACGGGCTGGGGGTGGCCATCTCGGGCTCTGGGAAGGGGCCGGGGCTGTGAGCTGAAGGCTCCATCACCTCCAGATGCTGCAGCAGCAGGAATGCCGGTTCCTGTACCCTCGGAAGGAGGGGC'.upper()" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [], - "prompt_number": 19 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "vectors = zeros((len(dna), 3), dtype=int)\n", - "for i, nucleotide in enumerate(dna):\n", - " vectors[i] = base_vectors[nucleotide]\n", - "\n", - "coordinates = vectors.cumsum(axis=0)\n", - "\n", - "# Start from (0, 0, 0).\n", - "coordinates = np.concatenate((np.zeros((1, 3), dtype=int), coordinates))\n", - "\n", - "subplot(111, projection='3d')\n", - "x, y, z = coordinates.T\n", - "plot(x, y, z)\n", - "plot(x[[0, -1]], y[[0, -1]], z[[0, -1]], 'o');" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "display_data", - "png": "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\nyZMAAAAASUVORK5CYII=\n", - "text": [ - "<matplotlib.figure.Figure at 0x7fa95037e9d0>" - ] - } - ], - "prompt_number": 21 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.display import HTML\n", - "def css_styling():\n", - " styles = open('styles/custom.css', 'r').read()\n", - " return HTML('<style>' + styles + '</style>')\n", - "css_styling()" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "html": [ - "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", - ".reveal {\n", - " overflow-y: hidden;\n", - "}\n", - "\n", - "/* Workaround some highlight.js bugs in language autodetection. */\n", - "code.objectivec *,\n", - "code.perl *,\n", - "code.cs *,\n", - "code.javascript *,\n", - "code.http * {\n", - " color: black ! important;\n", - " font-weight: normal ! important;\n", - "}\n", - "</style>" - ], - "metadata": {}, - "output_type": "pyout", - "prompt_number": 3, - "text": [ - "<IPython.core.display.HTML at 0x2ea3f50>" - ] - } - ], - "prompt_number": 3 - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/git.ipynb b/git.ipynb deleted file mode 100644 index ed90496988efb5e0f70f9634ae021e5f8dc7175d..0000000000000000000000000000000000000000 --- a/git.ipynb +++ /dev/null @@ -1,1545 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "<span style=\"font-size: 200%\">Version control with Git</span>\n", - "===\n", - "\n", - "<br>\n", - "\n", - "[Zuotian Tatum](mailto:z.tatum@lumc.nl), [Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl)\n", - "\n", - "[Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", - "\n", - "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)\n", - "\n", - "Sources: [Git homepage](http://git-scm.com/), [GitHub Teaching](https://teach.github.com/), [Try Git](http://try.github.io/)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%html\n", - "<style type=\"text/css\">\n", - "/* Remove the vertical scrollbar added by nbconvert. */\n", - ".reveal {\n", - " overflow-y: hidden;\n", - "}\n", - "</style>" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "html": [ - "<style type=\"text/css\">\n", - "/* Remove the vertical scrollbar added by nbconvert. */\n", - ".reveal {\n", - " overflow-y: hidden;\n", - "}\n", - "</style>" - ], - "metadata": {}, - "output_type": "display_data", - "text": [ - "<IPython.core.display.HTML at 0x1f571d0>" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "What is a Version Control System (VCS)\n", - "===\n", - "\n", - "> *Revision control*, also known as version control and source control (and an aspect of software configuration management), is the management of changes to documents, computer programs, large web sites, and other collections of information. --- [Wikipedia](http://en.wikipedia.org/wiki/Revision_control)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Why VCS\n", - "===\n", - "\n", - "For a single user:\n", - "---\n", - "* revert files to a previous state\n", - "* revert the entire project back to a previous state\n", - "* review changes made over time\n", - "* backup\n", - "* ...\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "For multiple users:\n", - "---\n", - "* a reliable way to share files between people/computers\n", - "* allow multiple people working on the same project at the same time\n", - "* conflict resolution\n", - "* see who made what changes at when\n", - "* ..." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "VCS architecture\n", - "===\n", - "\n", - "Local VCS\n", - "---\n", - "\n", - "<img src=\"files/images/local_vcs.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "VCS architecture\n", - "===\n", - "\n", - "Centralized VCS\n", - "---\n", - "<img src=\"files/images/centralized_vcs.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "VCS architecture\n", - "===\n", - "\n", - "Distributed VCS\n", - "---\n", - "<img src=\"files/images/distributed_vcs.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git\n", - "===\n", - "\n", - "\n", - "A distributed version control system.\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "git" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n", - " [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n", - " [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n", - " [-c name=value] [--help]\n", - " <command> [<args>]\n", - "\n", - "The most commonly used git commands are:\n", - " add Add file contents to the index\n", - " bisect Find by binary search the change that introduced a bug\n", - " branch List, create, or delete branches\n", - " checkout Checkout a branch or paths to the working tree\n", - " clone Clone a repository into a new directory\n", - " commit Record changes to the repository\n", - " diff Show changes between commits, commit and working tree, etc\n", - " fetch Download objects and refs from another repository\n", - " grep Print lines matching a pattern\n", - " init Create an empty git repository or reinitialize an existing one\n", - " log Show commit logs\n", - " merge Join two or more development histories together\n", - " mv Move or rename a file, a directory, or a symlink\n", - " pull Fetch from and merge with another repository or a local branch\n", - " push Update remote refs along with associated objects\n", - " rebase Forward-port local commits to the updated upstream head\n", - " reset Reset current HEAD to the specified state\n", - " rm Remove files from the working tree and from the index\n", - " show Show various types of objects\n", - " status Show the working tree status\n", - " tag Create, list, delete or verify a tag object signed with GPG\n", - "\n", - "See 'git help <command>' for more information on a specific command.\n" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Configuration\n", - "---" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's add some information about you." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh \n", - "git config --global user.name \"Z. Tatum\"\n", - "git config --global user.email \"z.tatum@lumc.nl\"" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Initialize a Git repository\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "cd /tmp/myproject" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "/tmp/myproject\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git init" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Initialized empty Git repository in /tmp/myproject/.git/\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "ls -al" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "total 20\n", - "drwxr-xr-x 3 ztatum ztatum 4096 Aug 5 17:18 .\n", - "drwxrwxrwt 14 root root 12288 Aug 5 17:18 ..\n", - "drwxr-xr-x 7 ztatum ztatum 4096 Aug 5 17:18 .git\n" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Check repository status\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git status" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "#\n", - "# Initial commit\n", - "#\n", - "nothing to commit (create/copy files and use \"git add\" to track)\n" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Track changes\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "echo \"This is a simple test repository\" > README" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh \n", - "\n", - "git status" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "#\n", - "# Initial commit\n", - "#\n", - "# Untracked files:\n", - "# (use \"git add <file>...\" to include in what will be committed)\n", - "#\n", - "#\tREADME\n", - "nothing added to commit but untracked files present (use \"git add\" to track)\n" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Stage changes\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git add README\n", - "git status" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "#\n", - "# Initial commit\n", - "#\n", - "# Changes to be committed:\n", - "# (use \"git rm --cached <file>...\" to unstage)\n", - "#\n", - "#\tnew file: README\n", - "#\n" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git\n", - "===\n", - "\n", - "Commit changes\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git commit -m \"add README to repository\"" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[master (root-commit) 0e137b0] add README to repository\n", - " 1 file changed, 1 insertion(+)\n", - " create mode 100644 README\n" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Staging\n", - "---\n", - "\n", - "<img src=\"http://git-scm.com/images/about/index1@2x.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - bascis\n", - "===\n", - "\n", - "Staging (skipped)\n", - "---\n", - "<img src=\"http://git-scm.com/images/about/index2@2x.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git\n", - "===\n", - "\n", - "Commit multiple files\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh \n", - "\n", - "touch file1.txt file2.txt\n", - "git add *.txt\n", - "git status" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "# Changes to be committed:\n", - "# (use \"git reset HEAD <file>...\" to unstage)\n", - "#\n", - "#\tnew file: file1.txt\n", - "#\tnew file: file2.txt\n", - "#\n" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git commit -m \"add more files to repo\"" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[master 56fe8bf] add more files to repo\n", - " 0 files changed\n", - " create mode 100644 file1.txt\n", - " create mode 100644 file2.txt\n" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git\n", - "===\n", - "\n", - "History\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git log" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\u001b[33m5c68824\u001b[m -\u001b[31m (HEAD, master)\u001b[m add more files to repo \u001b[32m(4 seconds ago) \u001b[1;34m<Z. Tatum>\u001b[m\n", - "\u001b[33mbd4898f\u001b[m -\u001b[31m\u001b[m add README to repository \u001b[32m(12 seconds ago) \u001b[1;34m<Z. Tatum>\u001b[m" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git log --summary" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\u001b[33m5c68824\u001b[m -\u001b[31m (HEAD, master)\u001b[m add more files to repo \u001b[32m(6 seconds ago) \u001b[1;34m<Z. Tatum>\u001b[m\n", - " create mode 100644 file1.txt\n", - " create mode 100644 file2.txt\n", - "\n", - "\u001b[33mbd4898f\u001b[m -\u001b[31m\u001b[m add README to repository \u001b[32m(14 seconds ago) \u001b[1;34m<Z. Tatum>\u001b[m\n", - " create mode 100644 README\n" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "What have I changed?\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "echo \"This repo is getting interesting\" >> README\n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's ask git what are the changes in README." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git diff README" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "diff --git a/README b/README\n", - "index 323f517..bf576e7 100644\n", - "--- a/README\n", - "+++ b/README\n", - "@@ -1 +1,2 @@\n", - " This is a simple test repository\n", - "+This repo is getting interesting\n" - ] - } - ], - "prompt_number": 15 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "work, commit, work, commit, ...\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git add README\n", - "git commit -m \"Update README with interesting stuff.\"" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[master 33a1231] Update README with interesting stuff.\n", - " 1 file changed, 1 insertion(+)\n" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Rename files\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git mv file1.txt file_boring.txt\n", - "git status" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "# Changes to be committed:\n", - "# (use \"git reset HEAD <file>...\" to unstage)\n", - "#\n", - "#\trenamed: file1.txt -> file_boring.txt\n", - "#\n" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Rmoving files\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git rm file2.txt\n", - "git status" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "rm 'file2.txt'\n", - "# On branch master\n", - "# Changes to be committed:\n", - "# (use \"git reset HEAD <file>...\" to unstage)\n", - "#\n", - "#\tdeleted: file2.txt\n", - "#\trenamed: file1.txt -> file_boring.txt\n", - "#\n" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git commit -m \"renaming and removing files\"" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[master 1cf2126] renaming and removing files\n", - " 1 file changed, 0 insertions(+), 0 deletions(-)\n", - " delete mode 100644 file2.txt\n", - " rename file1.txt => file_boring.txt (100%)\n" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: git basics\n", - "===\n", - "\n", - "* add a new file *file_exciting.txt*\n", - "* commit it\n", - "* make some exciting changes to it\n", - "* commit it again\n", - "* remove it\n", - "* commit it one last time" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "revert changes\n", - "---\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "echo \"this is the wrong file\" >> wrong.txt\n", - "git add wrong.txt" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "Reset is the opposite of add. It removes a staged file from the staging area." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "git reset wrong.txt\n", - "git status" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "# Untracked files:\n", - "# (use \"git add <file>...\" to include in what will be committed)\n", - "#\n", - "#\twrong.txt\n", - "nothing added to commit but untracked files present (use \"git add\" to track)\n" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - basics\n", - "===\n", - "\n", - "Revert commit\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "echo \"this is the wrong file\" >> wrong.txt\n", - "git add wrong.txt\n", - "git commit -m \"this is a bad commit\"" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[master 1e85daa] this is a bad commit\n", - " 1 file changed, 6 insertions(+)\n", - " create mode 100644 wrong.txt\n" - ] - } - ], - "prompt_number": 22 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git reset HEAD^\n", - "git status" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "# On branch master\n", - "# Untracked files:\n", - "# (use \"git add <file>...\" to include in what will be committed)\n", - "#\n", - "#\twrong.txt\n", - "nothing added to commit but untracked files present (use \"git add\" to track)\n" - ] - } - ], - "prompt_number": 23 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git log " - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "\u001b[33m56fe8bf\u001b[m -\u001b[31m (HEAD, master)\u001b[m add more files to repo \u001b[32m(38 minutes ago) \u001b[1;34m<Z. Tatum>\u001b[m\n", - "\u001b[33m0e137b0\u001b[m -\u001b[31m\u001b[m add README to repository \u001b[32m(39 minutes ago) \u001b[1;34m<Z. Tatum>\u001b[m" - ] - } - ], - "prompt_number": 24 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git - Basics workflow\n", - "===\n", - "\n", - "<div style=\"text-align:center\"><img src=\"files/images/git-local.png\" width=\"500\"></div>" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git - Remote workflow\n", - "===\n", - "\n", - "<div style=\"text-align:center\"><img src=\"files/images/git-remote.png\" width=\"700\"></div>" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "**A remote repository**: a pointer to another copy of the repository that lives on a different location. This can be simply a different path on the filesystem or a server on the internet.\n", - "\n", - "A popular example of git remote server: [github.com](https://github.com)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "But for this course, we use GitLab at LUMC. **https://git.lumc.nl **\n", - "\n", - "\n", - "<img src='files/images/gitlab_screenshot.png'>" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "Create a repository on a remote server\n", - "---\n", - "\n", - "* create a new project\n", - "* **fork** an existing project" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "Create a new project\n", - "---\n", - "\n", - "<img src=\"files/images/gitlab_create_project.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "Create a new project\n", - "---\n", - "\n", - "<img src=\"files/images/gitlab_new_project.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "Create a new project\n", - "---\n", - "\n", - "Now let's add the remote repository." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git remote add origin git@git.lumc.nl:z.tatum/myproject.git" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "outputs": [], - "prompt_number": 26 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh \n", - "\n", - "git push -u origin master" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Branch master set up to track remote branch master from origin.\n" - ] - }, - { - "output_type": "stream", - "stream": "stderr", - "text": [ - "To git@git.lumc.nl:z.tatum/myproject.git\n", - " * [new branch] master -> master\n" - ] - } - ], - "prompt_number": 27 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git pull" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Already up-to-date.\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - remote repository\n", - "===\n", - "\n", - "Fork a project\n", - "---\n", - "\n", - "* Fork the course-assignments repository on gitlab\n", - "* Clone **your** course-assignments repository to your laptop\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git clone git@git.lumc.nl:z.tatum/course-assignments.git\n", - " \n", - "cd course-assignments" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "** For the rest of the class, you are going to use this repository to track and submit your assignements.**" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: git remote\n", - "===\n", - "\n", - "* copy the python files you created yesterday\n", - "* add them to your course-assignment repository\n", - "* push them to the remote server (you can check it on the gitlab website)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Git - branching\n", - "===\n", - "\n", - "What is a branch?\n", - "---\n", - "\n", - "<img src=\"files/images/git-branching.png\">" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - branching\n", - "===\n", - "\n", - "Why branching?\n", - "---\n", - "\n", - "* a playground to try out new ideas.\n", - "* a place stablize a feature.\n", - "* unconventional usages (documenation, git-annex, etc.)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - branching\n", - "===\n", - "\n", - "Master branch\n", - "---\n", - "\n", - "We are already working in a branch called **master**." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git branch -v" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "* master 56fe8bf add more files to repo\n" - ] - } - ], - "prompt_number": 25 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Git - branching\n", - "===\n", - "\n", - "Working with a branch\n", - "---\n" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git branch new_experiment" - ], - "language": "python", - "metadata": {}, - "outputs": [] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git checkout new_experiment" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "work, commit, work, commit, work..." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "\n", - "git checkout master\n", - "git merge new_experiment" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Futher reading\n", - "===\n", - "\n", - "* [Git Book](http://git-scm.com/book/en/)\n", - " <br>\n", - " from the official git web site.\n", - "\n", - "* [Github teach](https://teach.github.com/)\n", - " <br>\n", - " GitHub Official Teaching Materials\n", - "\n", - "* just search \"git tutorial\"\n", - " <br>\n", - " i.e. [top ten git tutorials for beginners](http://sixrevisions.com/resources/git-tutorials-beginners/)" - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/python.ipynb b/python.ipynb deleted file mode 100644 index 62f2eb376089e14291cff3ba8eee4570454fb32c..0000000000000000000000000000000000000000 --- a/python.ipynb +++ /dev/null @@ -1,3532 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "<span style=\"font-size: 200%\">Introduction to Python</span>\n", - "===\n", - "\n", - "<br>\n", - "\n", - "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Zuotian Tatum](mailto:z.tatum@lumc.nl), [Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl)\n", - "\n", - "[Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", - "\n", - "Based on: [Python Scientific Lecture Notes](http://scipy-lectures.github.io/)\n", - "\n", - "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "About this notebook\n", - "===\n", - "\n", - "This notebook is the source for a set of slides. If you want to edit them, be sure to choose *Slideshow* in the *Cell Toolbar* menu.\n", - "\n", - "You can use nbconvert to convert the slides to HTML and serve them:\n", - "\n", - " ipython nbconvert --to slides --post serve python.ipynb\n", - "\n", - "This will open the slides in a new browser window." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "About Python\n", - "===\n", - "\n", - "History\n", - "---\n", - "\n", - "* Created early 90's by Guide van Rossem at CWI.\n", - "* General purpose, high-level programming language.\n", - "* Design is driven by code readability." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "About Python\n", - "===\n", - "\n", - "Features\n", - "---\n", - "\n", - "* Interpreted, no separate compilation step needed.\n", - "* Imperative and object-oriented programming (and some functional programming).\n", - "* Dynamic type system.\n", - "* Automatic memory management.\n", - "\n", - "We'll come back to most of this." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "About Python\n", - "===\n", - "\n", - "Why Python?\n", - "---\n", - "\n", - "* Readable and low barrier to entry.\n", - "* Rich scientific libraries.\n", - "* Many other libraries available.\n", - "* Widely used with a large community." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "About Python\n", - "===\n", - "\n", - "Python 2 versus Python 3\n", - "---\n", - "\n", - "* Python 3 is backwards incompatible.\n", - "* Some libraries don't support it yet.\n", - "* Python 2.7 is the last Python 2.\n", - "* Some Python 3 features are backported in Python 2.7.\n", - "* Default Python on most distributions is Python 2.7.\n", - "\n", - "We use Python 2.7 for the time being." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Running Python code\n", - "===\n", - "\n", - "Two main ways of writing and executing Python code.\n", - "\n", - "Interactively\n", - "---\n", - "\n", - "* Statement by statement directly in the interpreter.\n", - "\n", - "Non-interactively\n", - "---\n", - "\n", - "* By editing in a file and running the code afterwards." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "We'll start with the first option." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Running Python code\n", - "===\n", - "\n", - "The standard Python interpreter\n", - "---\n", - "\n", - "Start it by typing `python` on the command line:\n", - "\n", - " $ python\n", - " Python 2.7.3 (default, Jan 2 2013, 13:56:14) \n", - " [GCC 4.7.2] on linux2\n", - " Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n", - " >>>\n", - "\n", - "* It shows an interpreter prompt.\n", - "* You can give it Python code to interpret." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Running Python code\n", - "===\n", - "\n", - "The IPython interpreter\n", - "---\n", - "\n", - "* Similar to the standard Python interpreter, but with\n", - "* syntax highlighting,\n", - "* tab completion,\n", - "* cross-session history, etcetera...\n", - "\n", - "Start it by typing `ipython` on the command line:\n", - "\n", - " $ ipython\n", - " Python 2.7.3 (default, Jan 2 2013, 13:56:14) \n", - " Type \"copyright\", \"credits\" or \"license\" for more information.\n", - "\n", - " IPython 0.13.1 -- An enhanced Interactive Python.\n", - " ? -> Introduction and overview of IPython's features.\n", - " %quickref -> Quick reference.\n", - " help -> Python's own help system.\n", - " object? -> Details about 'object', use 'object??' for extra details.\n", - "\n", - " In [1]:" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "source": [ - "From now on, play along in your own IPython interpreter." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "Integers\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "17" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 1, - "text": [ - "17" - ] - } - ], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "(17 + 4) * 2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 2, - "text": [ - "42" - ] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "Floating point numbers\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "3.2 * 18 - 2.1" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 3, - "text": [ - "55.5" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "36. / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 4, - "text": [ - "7.2" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Scientific notation:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "1.3e20 + 2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 5, - "text": [ - "1.3e+20" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "1.3 * 10**20" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 6, - "text": [ - "1.3e+20" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "The division operator\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "35 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 7, - "text": [ - "7" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "36 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 8, - "text": [ - "7" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Division is a bit weird: if you give it integer arguments, the result will also be an integer." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "The division operator\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "35 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "7" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "36 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 10, - "text": [ - "7" - ] - } - ], - "prompt_number": 10 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Solution 1\n", - "---\n", - "\n", - "Give floating point arguments instead of integer arguments." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "36. / 5." - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "7.2" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "The division operator\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "35 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - "7" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "36 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "7" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Solution 2\n", - "---\n", - "\n", - "From Python 3 onwards, division behaves differently. You can actually get that behaviour in Python 2.7:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from __future__ import division\n", - "36 / 5" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 14, - "text": [ - "7.2" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python as a calculator\n", - "===\n", - "\n", - "Variables\n", - "---\n", - "\n", - "* We can use names to reference values (variables).\n", - "* No need to declare them first or define the type." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = 1.3e20" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 15 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 16, - "text": [ - "1.3e+20" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "b = a + 1.2e19\n", - "b * 2" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 17, - "text": [ - "2.84e+20" - ] - } - ], - "prompt_number": 17 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Python's type system (1/2)\n", - "===\n", - "\n", - "Every value has a type, view it using `type`:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "type(27)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 18, - "text": [ - "int" - ] - } - ], - "prompt_number": 18 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "type(3.0 * 2.7)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 19, - "text": [ - "float" - ] - } - ], - "prompt_number": 19 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "type(a)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 20, - "text": [ - "float" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Another example of a builtin datatype is `str`, we'll see more later:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "type('I am a homo sapiens')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 11, - "text": [ - "str" - ] - } - ], - "prompt_number": 11 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Python's type system (2/2)\n", - "===\n", - "\n", - "Some operations are defined on more than one type, possibly with different meanings." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'beer' * 5 + 'whiskey'" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - "'beerbeerbeerbeerbeerwhiskey'" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Dynamic typing means that variables can be assigned values of different types during runtime." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a = 'spezi'\n", - "type(a)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 13, - "text": [ - "str" - ] - } - ], - "prompt_number": 13 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Python is strongly typed, meaning that operations on values with incompatible types are forbidden." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'beer' + 34" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "cannot concatenate 'str' and 'int' objects", - "output_type": "pyerr", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m<ipython-input-14-ec918fbfdf41>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;34m'beer'\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;36m34\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m: cannot concatenate 'str' and 'int' objects" - ] - } - ], - "prompt_number": 14 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Lists\n", - "---\n", - "\n", - "Mutable sequences of values." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "l = [2, 5, 2, 3, 7]\n", - "type(l)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 26, - "text": [ - "list" - ] - } - ], - "prompt_number": 26 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Lists can be heterogeneous, but we typically don't use that." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "[3, 'abc', 1.3e20, [a, a, 2]]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 27, - "text": [ - "[3, 'abc', 1.3e+20, ['abc', 'abc', 2]]" - ] - } - ], - "prompt_number": 27 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Tuples\n", - "---\n", - "\n", - "Immutable sequences of values." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "t = 'white', 77, 1.5\n", - "type(t)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 28, - "text": [ - "tuple" - ] - } - ], - "prompt_number": 28 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "color, width, scale = t\n", - "width" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 29, - "text": [ - "77" - ] - } - ], - "prompt_number": 29 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Strings (1/2)\n", - "---\n", - "\n", - "Immutable sequences of characters." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'a string can be written in single quotes'" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 108, - "text": [ - "'a string can be written in single quotes'" - ] - } - ], - "prompt_number": 108 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Strings can also be written with double quotes, or over multiple lines with triple-quotes." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "\"this makes it easier to use the ' character\"" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 31, - "text": [ - "\"this makes it easier to use the ' character\"" - ] - } - ], - "prompt_number": 31 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "\"\"\"This is a multiline string.\n", - "\n", - "You see? I continued after a blank line.\"\"\"" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 32, - "text": [ - "'This is a multiline string.\\n\\nYou see? I continued after a blank line.'" - ] - } - ], - "prompt_number": 32 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Strings (2/2)\n", - "---\n", - "\n", - "A common operation is formatting strings using argument substitutions." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'{} times {} equals {:.2f}'.format('pi', 2, 6.283185307179586)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 117, - "text": [ - "'pi times 2 equals 6.28'" - ] - } - ], - "prompt_number": 117 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Accessing arguments by position or name is more readable." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'{1} times {0} equals {2:.2f}'.format('pi', 2, 6.283185307179586)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 116, - "text": [ - "'2 times pi equals 6.28'" - ] - } - ], - "prompt_number": 116 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'{number} times {amount} equals {result:.2f}'.format(number='pi', amount=2,\n", - " result=6.283185307179586)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 118, - "text": [ - "'pi times 2 equals 6.28'" - ] - } - ], - "prompt_number": 118 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Common operations (1/2)\n", - "---\n", - "\n", - "All sequence types support concatenation, membership/substring tests, indexing, and slicing." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "[1, 2, 3] + [4, 5, 6]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 33, - "text": [ - "[1, 2, 3, 4, 5, 6]" - ] - } - ], - "prompt_number": 33 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'bier' in 'we drinken bier vanaf half 5'" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 34, - "text": [ - "True" - ] - } - ], - "prompt_number": 34 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'abcdefghijkl'[5]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 35, - "text": [ - "'f'" - ] - } - ], - "prompt_number": 35 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Slicing\n", - "---\n", - "\n", - "Slice `s` from `i` to `j` with `s[i:j]`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'abcdefghijkl'[4:8]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 36, - "text": [ - "'efgh'" - ] - } - ], - "prompt_number": 36 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'abcdefghijkl'[:3]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 37, - "text": [ - "'abc'" - ] - } - ], - "prompt_number": 37 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also define the step `k` with `s[i:j:k]`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'abcdefghijkl'[7:3:-1]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 38, - "text": [ - "'hgfe'" - ] - } - ], - "prompt_number": 38 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Common operations (2/2)\n", - "---\n", - "\n", - "Contrary to strings and tuples, lists are mutable. We can also get their length, smalles/largest item, and number/position of certain items." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "len('attacgataggcatccgt')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 15, - "text": [ - "18" - ] - } - ], - "prompt_number": 15 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "max([17, 86, 34, 51])" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 40, - "text": [ - "86" - ] - } - ], - "prompt_number": 40 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "('atg', 22, True, 'atg').count('atg')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 16, - "text": [ - "2" - ] - } - ], - "prompt_number": 16 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sequence types\n", - "===\n", - "\n", - "Additional operations with lists\n", - "---\n", - "\n", - "We can replace, add, remove, reverse and sort items in-place." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "l = [1, 2, 3, 4]\n", - "l[3] = 7\n", - "l.append(1)\n", - "l[1:3] = [3, 2]\n", - "l.sort()\n", - "l.reverse()" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 42 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "l" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 43, - "text": [ - "[7, 3, 2, 1, 1]" - ] - } - ], - "prompt_number": 43 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Dictionaries\n", - "===\n", - "\n", - "Dictionaries map *hashable* values to arbitrary objects\n", - "---\n", - "\n", - "* All built-in immutable objects are hashable.\n", - "* No built-in mutable objects are hashable." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d = {'a': 27, 'b': 18, 'c': 12}\n", - "type(d)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 44, - "text": [ - "dict" - ] - } - ], - "prompt_number": 44 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d['e'] = 17\n", - "'e' in d" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 45, - "text": [ - "True" - ] - } - ], - "prompt_number": 45 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d.update({'a': 18, 'f': 2})\n", - "d" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 46, - "text": [ - "{'a': 18, 'b': 18, 'c': 12, 'e': 17, 'f': 2}" - ] - } - ], - "prompt_number": 46 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Dictionaries\n", - "===\n", - "\n", - "Accessing dictionary content\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d['b']" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 47, - "text": [ - "18" - ] - } - ], - "prompt_number": 47 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d.keys()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 48, - "text": [ - "['a', 'c', 'b', 'e', 'f']" - ] - } - ], - "prompt_number": 48 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d.values()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 49, - "text": [ - "[18, 12, 18, 17, 2]" - ] - } - ], - "prompt_number": 49 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "d.items()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 50, - "text": [ - "[('a', 18), ('c', 12), ('b', 18), ('e', 17), ('f', 2)]" - ] - } - ], - "prompt_number": 50 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Sets\n", - "===\n", - "\n", - "Mutable unordered collections of hashable values without duplication\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x = {12, 28, 21, 17}\n", - "type(x)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 51, - "text": [ - "set" - ] - } - ], - "prompt_number": 51 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x.add(12)\n", - "x" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 52, - "text": [ - "{12, 17, 21, 28}" - ] - } - ], - "prompt_number": 52 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "x.discard(21)\n", - "x" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 53, - "text": [ - "{12, 17, 28}" - ] - } - ], - "prompt_number": 53 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Sets\n", - "===\n", - "\n", - "Operations with sets\n", - "---\n", - "\n", - "We can test for membership and apply many common set operations such as union and intersect." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "17 in {12, 28, 21, 17}" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 54, - "text": [ - "True" - ] - } - ], - "prompt_number": 54 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "{12, 28, 21, 17} | {12, 18, 11}" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 55, - "text": [ - "{11, 12, 17, 18, 21, 28}" - ] - } - ], - "prompt_number": 55 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "{12, 28, 21, 17} & {12, 18, 11}" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 56, - "text": [ - "{12}" - ] - } - ], - "prompt_number": 56 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Booleans\n", - "===\n", - "\n", - "Boolean values and operations\n", - "---\n", - "\n", - "The two boolean values are written `False` and `True`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "True or False" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 57, - "text": [ - "True" - ] - } - ], - "prompt_number": 57 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "True and False" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 58, - "text": [ - "False" - ] - } - ], - "prompt_number": 58 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "not False" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 59, - "text": [ - "True" - ] - } - ], - "prompt_number": 59 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Booleans\n", - "===\n", - "\n", - "Comparisons\n", - "---\n", - "\n", - "Comparisons can be done on all objects and return a boolean value." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "22 * 3 > 66" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 60, - "text": [ - "False" - ] - } - ], - "prompt_number": 60 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have two equivalence relations: value equality (`==`) and object identity (`is`)." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a, b = [1, 2, 3], [1, 2, 3]\n", - "a == b" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 61, - "text": [ - "True" - ] - } - ], - "prompt_number": 61 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "a is b" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 62, - "text": [ - "False" - ] - } - ], - "prompt_number": 62 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Booleans\n", - "===\n", - "\n", - "`if` statements\n", - "---\n", - "\n", - "(The `print` statement writes a string representation of the given value.)" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "if 26 <= 17:\n", - " print 'Fact: 26 is less than or equal to 17'\n", - "elif (26 + 8 > 14) == True:\n", - " print 'Did we need the ` == True` part here?'\n", - "else:\n", - " print 'Nothing seems true'" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Did we need the ` == True` part here?\n" - ] - } - ], - "prompt_number": 63 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Booleans\n", - "===\n", - "\n", - "`while` statements\n", - "---\n", - "\n", - "Our first looping control structure just repeats until the given expression evaluates to `False`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i = 0\n", - "while i < 5:\n", - " print i\n", - " i += 1" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0\n", - "1\n", - "2\n", - "3\n", - "4\n" - ] - } - ], - "prompt_number": 65 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Notes about syntax\n", - "===\n", - "\n", - "Indentation\n", - "---\n", - "\n", - "Python uses indentation to delimit blocks\n", - "\n", - "* Instead of `begin ... end` or `{ ... }` in other languages.\n", - "* Always increase indentation by *4 spaces*, never use tabs.\n", - "* In any case, be consistent." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "if False:\n", - " if False:\n", - " print 'Why am I here?'\n", - " else:\n", - " while True:\n", - " print 'When will it stop?'\n", - " print \"And we're back to the first indentation level\"" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 66 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Some editors can be configured to behave just like that." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Notes about syntax\n", - "===\n", - "\n", - "Comments\n", - "---\n", - "\n", - "Comments are prepended by `#` and completely ignored." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "# Add 42 to this list.\n", - "l.append(42)" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 67 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`pass` statements\n", - "---\n", - "\n", - "If you ever need a statement syntactically but don't want to do anything, use `pass`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "while False:\n", - " # This is never executed anyway.\n", - " pass" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 68 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Useful built-ins\n", - "===\n", - "\n", - "Getting help\n", - "---\n", - "\n", - "You can get help on almost any object with `help`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "help(range)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Help on built-in function range in module __builtin__:\n", - "\n", - "range(...)\n", - " range([start,] stop[, step]) -> list of integers\n", - " \n", - " Return a list containing an arithmetic progression of integers.\n", - " range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.\n", - " When step is given, it specifies the increment (or decrement).\n", - " For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!\n", - " These are exactly the valid indices for a list of 4 elements.\n", - "\n" - ] - } - ], - "prompt_number": 69 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In IPython you can do it faster by typing:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "range?" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 70 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Useful built-ins\n", - "===\n", - "\n", - "We'll shortly use the following built-in functions." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "range(5, 16)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 71, - "text": [ - "[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]" - ] - } - ], - "prompt_number": 71 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "zip(['red', 'white', 'blue'], range(3))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 72, - "text": [ - "[('red', 0), ('white', 1), ('blue', 2)]" - ] - } - ], - "prompt_number": 72 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "list('abcdefghijk')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 73, - "text": [ - "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']" - ] - } - ], - "prompt_number": 73 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Iteration\n", - "===\n", - "\n", - "Iterating over a sequence\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "colors = ['red', 'white', 'blue', 'orange']\n", - "cities = ['leiden', 'utrecht', 'warmond', 'san francisco']" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `for` statement can iterate over sequence items." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for color in colors:\n", - " print color" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "red\n", - "white\n", - "blue\n", - "orange\n" - ] - } - ], - "prompt_number": 75 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for character in 'blue':\n", - " print character" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "b\n", - "l\n", - "u\n", - "e\n" - ] - } - ], - "prompt_number": 76 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Iteration\n", - "===\n", - "\n", - "Python anti-patterns\n", - "---\n", - "\n", - "These are common for programmers coming from other languages." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "i = 0\n", - "while i < len(colors):\n", - " print colors[i]\n", - " i += 1" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "red\n", - "white\n", - "blue\n", - "orange\n" - ] - } - ], - "prompt_number": 77 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i in range(len(colors)):\n", - " print colors[i]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "red\n", - "white\n", - "blue\n", - "orange\n" - ] - } - ], - "prompt_number": 78 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We call them *unpythonic*." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Iteration\n", - "===\n", - "\n", - "Using values *and* indices\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i, color in enumerate(colors):\n", - " print i, '->', color" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0 -> red\n", - "1 -> white\n", - "2 -> blue\n", - "3 -> orange\n" - ] - } - ], - "prompt_number": 79 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Taking two sequences together\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for city, color in zip(cities, colors):\n", - " print city, '->', color" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "leiden -> red\n", - "utrecht -> white\n", - "warmond -> blue\n", - "san francisco -> orange\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Iteration\n", - "===\n", - "\n", - "Other iterables\n", - "---\n", - "\n", - "Iterating over a dictionary yields keys." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for key in {'a': 33, 'b': 17, 'c': 18}:\n", - " print key" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "a\n", - "c\n", - "b\n" - ] - } - ], - "prompt_number": 81 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Iterating over a file yields lines." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for line in open('data/short_file.txt'):\n", - " print line" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "this short file has two lines\n", - "\n", - "it is used in the example code\n", - "\n" - ] - } - ], - "prompt_number": 82 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There are many more useful iterables in Python." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Iterate over a list\n", - "===\n", - "\n", - "First we are going to make a list and fill it with a simple sequence. Then we are going to use this list to print something.\n", - "\n", - "* Make a list containing the number 0, 1, ... 9.\n", - "* Print the last 10 lines of the song ''99 bottles of beer'' using this list." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Analyse a repeat structure\n", - "===\n", - "\n", - "We are going to make a repeating DNA sequence and extract some subsequences from it.\n", - "\n", - "* Make a short tandem repeat that consists of three \"ACGT\" units and five \"TTATT\" units.\n", - "* Print all suffixes of the repeat structure.\n", - "\n", - "**Note:** A suffix is an ending. For example, the word \"spam\" has five suffixes: \"spam\", \"pam\", \"am\", \"m\" and \"\".\n", - "\n", - "* Print all substrings of length 3.\n", - "* Print all unique substrings of length 3.\n", - "\n", - "**Hint:** All elements in a set are unique." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Boolean comparison\n", - "===\n", - "\n", - "Try to guess the outcome of the following statements:\n", - "\n", - " 2 * 3 > 4\n", - " 2 * (3 > 4)\n", - " 2 * (4 > 3)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Combining lists\n", - "===\n", - "\n", - "Calculate all coordinates of the line x=y with x < 100.\n", - "\n", - "**Note:** This is the sequence (0, 0), (1, 1), ... (99, 99)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Dictionaries\n", - "===\n", - "We are going to store the output of a function ($f(x) = x^2$) together with its input in a dictionary.\n", - "\n", - "* Make a dictionary containing all squares smaller than 100.\n", - "* Print the content of this dictionary in english, e.g., \"4 is the square of 2\"." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Functions\n", - "===\n", - "\n", - "Defining a function\n", - "---\n", - "\n", - "A function definition includes its name, arguments and body." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def add_two(number):\n", - " return number + 2" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 83 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "for i in range(5):\n", - " print add_two(i)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "2\n", - "3\n", - "4\n", - "5\n", - "6\n" - ] - } - ], - "prompt_number": 84 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Functions\n", - "===\n", - "\n", - "Keyword arguments\n", - "---\n", - "\n", - "Besides regular arguments, functions can have keyword arguments." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def add_some_other_number(number, other_number=12):\n", - " return number + other_number" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 85 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "add_some_other_number(2, 6)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 86, - "text": [ - "8" - ] - } - ], - "prompt_number": 86 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "add_some_other_number(3, other_number=4)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 87, - "text": [ - "7" - ] - } - ], - "prompt_number": 87 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "add_some_other_number(5)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 88, - "text": [ - "17" - ] - } - ], - "prompt_number": 88 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Functions\n", - "===\n", - "\n", - "Docstrings\n", - "---\n", - "\n", - "Like many other definitions, functions can have docstrings.\n", - "\n", - "* Docstrings are regular string values which you start the definition body with.\n", - "* You can access an object's docstring using `help`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def factorial(n):\n", - " \"\"\"Compute factorial of n in the obious way.\"\"\"\n", - " if n == 0:\n", - " return 1\n", - " else:\n", - " return factorial(n - 1) * n" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 89 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "help(factorial)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Help on function factorial in module __main__:\n", - "\n", - "factorial(n)\n", - " Compute factorial of n in the obious way.\n", - "\n" - ] - } - ], - "prompt_number": 90 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Functions\n", - "===\n", - "\n", - "Functions are values\n", - "---\n", - "\n", - "We can pass functions around just like other values, and call them." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "functions = [add_two, add_some_other_number]\n", - "for function in functions:\n", - " print function(7)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "9\n", - "19\n" - ] - } - ], - "prompt_number": 91 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Simple anonymous functions can be created with `lambda`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "functions.append(lambda x: x * 7)\n", - "for function in functions:\n", - " print function(4)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "6\n", - "16\n", - "28\n" - ] - } - ], - "prompt_number": 92 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Functions\n", - "===\n", - "\n", - "Higher-order functions\n", - "---\n", - "\n", - "A function that takes a function as argument is a higher-order function." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "help(map)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Help on built-in function map in module __builtin__:\n", - "\n", - "map(...)\n", - " map(function, sequence[, sequence, ...]) -> list\n", - " \n", - " Return a list of the results of applying the function to the items of\n", - " the argument sequence(s). If more than one sequence is given, the\n", - " function is called with an argument list consisting of the corresponding\n", - " item of each sequence, substituting None for missing values when not all\n", - " sequences have the same length. If the function is None, return a list of\n", - " the items of the sequence (or a list of tuples if more than one sequence).\n", - "\n" - ] - } - ], - "prompt_number": 93 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "map(add_two, [1, 2, 3, 4])" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 94, - "text": [ - "[3, 4, 5, 6]" - ] - } - ], - "prompt_number": 94 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: k-mer counting (1/2)\n", - "===\n", - "\n", - "Remember the previous exercise of finding (unique) substrings of length 3.\n", - "\n", - "* Make a function from your implementation.\n", - "* Have `k` as an argument to the function.\n", - "* Test the function on several input strings.\n", - "\n", - "**Note:** Editing multi-line statements in the console can be frustrating. You can try the QT console (`ipython qtconsole`) or edit your function in an editor with `%edit`:\n", - "\n", - " def my_function(arg):\n", - " print arg * 4\n", - " %edit my_function" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "$\\S$ Exercise: k-mer counting (2/2)\n", - "===\n", - "\n", - "Modify your function to use a dictionary with substring counts.\n", - "\n", - "* Use the substrings as dictionary keys.\n", - "* Use the counts as dictionary values.\n", - "* Have the function return the dictionary.\n", - "* Add a docstring to the function.\n", - "* Use the function to print k-mer counts for some strings." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Comprehensions\n", - "===\n", - "\n", - "List comprehensions\n", - "---\n", - "\n", - "Similar to mathematical set notation (e.g., $\\{ x ~|~ x \\in \\mathbf R \\land x > 0\\}$), we can create lists." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "[(x, x * x) for x in range(10) if x % 2]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 95, - "text": [ - "[(1, 1), (3, 9), (5, 25), (7, 49), (9, 81)]" - ] - } - ], - "prompt_number": 95 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can do the same thing using `map` and `filter`, but list comprehensions are often more readable." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "map(lambda x: (x, x * x), filter(lambda x: x %2, range(10)))" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 96, - "text": [ - "[(1, 1), (3, 9), (5, 25), (7, 49), (9, 81)]" - ] - } - ], - "prompt_number": 96 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Comprehensions\n", - "===\n", - "\n", - "Set and dictionary comprehensions\n", - "---\n", - "\n", - "Similar notation can be used for (non-empty) sets." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "{c for c in 'LUMC-standard' if 'a' <= c <= 'z'}" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 97, - "text": [ - "{'a', 'd', 'n', 'r', 's', 't'}" - ] - } - ], - "prompt_number": 97 - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And dictionaries." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "{c: len(c) for c in colors}" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 98, - "text": [ - "{'blue': 4, 'orange': 6, 'red': 3, 'white': 5}" - ] - } - ], - "prompt_number": 98 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Everything is an object\n", - "===\n", - "\n", - "* Objects have properties and methods. \n", - "* Explore them using `dir(o)`, or by typing `o.<tab>` in the IPython interpreter." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "dir('abc')[-5:]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 99, - "text": [ - "['swapcase', 'title', 'translate', 'upper', 'zfill']" - ] - } - ], - "prompt_number": 99 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "help('abc'.upper)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Help on built-in function upper:\n", - "\n", - "upper(...)\n", - " S.upper() -> string\n", - " \n", - " Return a copy of the string S converted to uppercase.\n", - "\n" - ] - } - ], - "prompt_number": 100 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "'abc'.upper()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 101, - "text": [ - "'ABC'" - ] - } - ], - "prompt_number": 101 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Code in files\n", - "===\n", - "\n", - "Running code from a file\n", - "---" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "cat examples/fsquare.py" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "d = {}\r\n", - "for i in range(10):\r\n", - " d[i] = i ** 2\r\n", - "\r\n", - "for i in d:\r\n", - " print \"{0} is the square of {1}.\".format(d[i], i)\r\n" - ] - } - ], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%%sh\n", - "python examples/fsquare.py" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0 is the square of 0.\n", - "1 is the square of 1.\n", - "4 is the square of 2.\n", - "9 is the square of 3.\n", - "16 is the square of 4.\n", - "25 is the square of 5.\n", - "36 is the square of 6.\n", - "49 is the square of 7.\n", - "64 is the square of 8.\n", - "81 is the square of 9.\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Code in files\n", - "===\n", - "\n", - "Working with files in IPython\n", - "---\n", - "\n", - "The `%run` magic runs the code from a file directly in IPython:" - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%run examples/fsquare.py" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "0 is the square of 0.\n", - "1 is the square of 1.\n", - "4 is the square of 2.\n", - "9 is the square of 3.\n", - "16 is the square of 4.\n", - "25 is the square of 5.\n", - "36 is the square of 6.\n", - "49 is the square of 7.\n", - "64 is the square of 8.\n", - "81 is the square of 9.\n" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "-" - } - }, - "source": [ - "You can edit and run a file with `%edit`." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "%edit examples/fsquare.py" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "subslide" - } - }, - "source": [ - "Code in files\n", - "===\n", - "\n", - "Saving your IPython session history to a file\n", - "---\n", - "\n", - "Give the `%save` magic a name and a range of input lines and it will save them to a `.py` file with that name:\n", - "\n", - " In [4]: %save my_session 1-3\n", - " The following commands were written to file `my_session.py`:\n", - " a = 4\n", - " a += 3\n", - " b = a" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "$\\S$ Exercise: Running code from a file\n", - "===\n", - "\n", - "* Save your k-mer counting code to a file `kmer_counting.py`.\n", - "* Include some code using it on an example string and printing the results.\n", - "* Run the code from the command line." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Further reading\n", - "===\n", - "\n", - "* [The Python Tutorial](http://docs.python.org/2/tutorial/index.html)\n", - " <br>\n", - " From the official Python documentation.\n", - "\n", - "\n", - "* [Learn Python The Hard Way](http://learnpythonthehardway.org/book/)\n", - " <br>\n", - " Book on learning Python by exercises, online available for free.\n", - "\n", - "\n", - "* [The Hitchhiker's Guide to Python](http://docs.python-guide.org/en/latest/)\n", - " <br>\n", - " This opinionated guide exists to provide both novice and expert Python developers a best-practice handbook to the installation, configuration, and usage of Python on a daily basis.\n", - "\n", - "\n", - "* [A Primer on Scientific Programming with Python](http://codingcat.com/knjige/python/A%20Primer%20on%20Scientific%20Programming%20with%20Python.pdf)\n", - " <br>\n", - " Complete PDF version of the book. The aim of this book is to teach computer programming using examples from mathematics and the natural sciences.\n", - "\n", - "\n", - "* [Python Module of the Week](http://pymotw.com/)\n", - " <br>\n", - " Series of articles providing a tour of the Python standard library through short examples." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.display import HTML\n", - "def css_styling():\n", - " styles = open('styles/custom.css', 'r').read()\n", - " return HTML('<style>' + styles + '</style>')\n", - "css_styling()" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "html": [ - "<style>/* Remove the vertical scrollbar added by nbconvert. */\n", - ".reveal {\n", - " overflow-y: hidden;\n", - "}\n", - "\n", - "/* Workaround some highlight.js bugs in language autodetection. */\n", - "code.objectivec *,\n", - "code.perl *,\n", - "code.cs *,\n", - "code.javascript *,\n", - "code.http * {\n", - " color: black ! important;\n", - " font-weight: normal ! important;\n", - "}\n", - "</style>" - ], - "metadata": {}, - "output_type": "pyout", - "prompt_number": 1, - "text": [ - "<IPython.core.display.HTML at 0x2801310>" - ] - } - ], - "prompt_number": 1 - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 0c8f4785037c5df6239dfd80cf05bd097414c787..0b730c78b2db92d3d15926c0745e13cfc970f285 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,17 @@ -ipython==2.1.0 -pyzmq==14.3.1 -tornado==3.2.2 +Cython==0.20.2 Jinja2==2.7.3 +Markdown==2.4.1 Pygments==1.6 Sphinx==1.2.2 -Markdown==2.4.1 +biopython==1.64 +ipython==2.1.0 +matplotlib==1.3.1 nose==1.3.3 numpy==1.8.1 -matplotlib==1.3.1 -biopython==1.64 -pandas==0.14.0 openpyxl==1.8.6 -seaborn==0.3.1 +pandas==0.14.0 +pyzmq==14.3.1 +scikit-learn==0.14.1 scipy==0.14.0 +seaborn==0.3.1 +tornado==3.2.2 diff --git a/reveal.js b/reveal.js new file mode 160000 index 0000000000000000000000000000000000000000..131c00689a4c7a18e5c991fc8102347e4594b5d4 --- /dev/null +++ b/reveal.js @@ -0,0 +1 @@ +Subproject commit 131c00689a4c7a18e5c991fc8102347e4594b5d4 diff --git a/sequencer.ipynb b/sequencer.ipynb deleted file mode 100644 index 82f9b34252ab0110d34dcc701ff121b243ca2cd0..0000000000000000000000000000000000000000 --- a/sequencer.ipynb +++ /dev/null @@ -1,208 +0,0 @@ -{ - "metadata": { - "name": "" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "<span style=\"font-size: 200%\">Make \"fastq\" from a sequencing run</span>\n", - "===\n", - "\n", - "<br>\n", - "\n", - "[Wibowo Arindrarto](mailto:w.arindrarto@lumc.nl), [Jeroen Laros](mailto:j.f.j.laros@lumc.nl), [Zuotian Tatum](mailto:z.tatum@lumc.nl), [Martijn Vermaat](mailto:m.vermaat.hg@lumc.nl)\n", - "\n", - "[Department of Human Genetics, Leiden University Medical Center](http://humgen.nl)\n", - "\n", - "License: [Creative Commons Attribution 3.0 License (CC-by)](http://creativecommons.org/licenses/by/3.0)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "source": [ - "About this notebook\n", - "===\n", - "\n", - "This notebook is the source for a set of slides. If you want to edit them, be sure to choose *Slideshow* in the *Cell Toolbar* menu.\n", - "\n", - "You can use nbconvert to convert the slides to HTML and serve them:\n", - "\n", - " ipython nbconvert --to slides --post serve welcome.ipynb\n", - "\n", - "This will open the slides in a new browser window." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "from IPython.display import HTML, Image, IFrame\n", - "%pylab inline" - ], - "language": "python", - "metadata": { - "slideshow": { - "slide_type": "skip" - } - }, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], - "prompt_number": 3 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "A sequencer\n", - "===\n", - "\n", - "In this case an Illumina HiSeq 2500." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/hiseq.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "iVBORw0KGgoAAAANSUhEUgAAARsAAAEMCAIAAAB7nIVVAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dE\nAP8A/wD/oL2nkwAAAAlwSFlzAAAOwwAADsMBx2+oZAAAbstJREFUeNrt/VmvZEmWHop9y8z23j6f\nIaYcqzKrqqurq/p283bripIgiA+kCEKiLnDviwboB7Bf9X6hX0AI0ivf1C+EIAmCKAEimyAEUuBt\nXDXVrWo1yZqrsjIzMqYz+bQHM1t6WO4Wdvbgx/2En4jISF84ONhuvt22bTP7bC1bkxEz40AHOtCe\nSL3pBhzoQO8UHRB1oAPtkw6IOtCB9kkHRB3oQPukA6IOdKB90gFRBzrQPumAqAMdaJ90QNSBDrRP\nOiDqQAfaJx0QdaAD7ZMOiDrQgfZJB0Qd6ED7pAOiDnSgfdIBUQc60D7pgKgDHWifZN50Aw7UTl1x\na0T0ppt2oE104FEHOtA+6YCoAx1on3RA1IEOtE86IOpAB9onHRB1oAPtkw6IOtCB9kkHRB3oQPuk\ngz3q9dHl5eXR0REAZl4sFv1+XynFzNZaAEmShDuZObY7iW0qlBRFkWUZgMVikSRJkiTWWqXaF8eu\n8n2R9z5chxZ2Gc1q77UNtdrlap0j94ReCiVEpLVudiMze+/jr/ZIdMiAeUdU61jnnFKKiC4uLoqi\nmEwmP/vZz0ajkbV2Pp8vFgvnnNwZ5oH33nvvnPPeh1kyHA6TJPnkk08ePHggk0N+IrBsUlEUrW3r\nmtn7siDHrx9fxwis9U98c/iJ3M9rCl/JShFK4q/CzUSk1jQcDgeDQfiVvOYtEH4jHXjUnVA8A2TM\njDEA/uk//ae//vWvP/vss+Pj45/+9KcAnj9/PpvNZrOZtVbu11obY8qylKU0IEqqffHixSeffPJ3\n/s7f+eM//uOPP/44z/PLy8tPP/30D/7gD1pbIs9t0r54V0BI/MqIkIAIHswsyGkiIawaMYU75VtZ\nYuQrYe9ogC3cGTpfFrLxeHz//v3j4+P4xZ1zXf1za9qZRx28Y7aheJmUEufc48eP/9E/+kcvXrz4\n8ssvR6PR0dHRl19+WRRFURTOOa211jpMl+FwGE9ErHt4MBh475fL5RdffNHr9bIsGw6H//Af/sN/\n/I//cWtLZAI15bEuRO06jgEhMSrQQFR4F+GlrfeHTmsipwmV+LkxhR/GoJI7x+PxgwcPTk5OhsNh\naMzeEXXgUXdCzRlsjPmzP/uzxWKR5/nx8fH9+/cfPHhgrX327JnIeGmaGmNkKgAoyzKuIcy8p0+f\nylr7/PlzYwwRPX369Je//OVmJLy6eNO1koZVoMYx5KWa3EbeUV6TiGrzXrAkH+UrKSciEXFjsa2J\nIgA1BIbyPM+Xy2VZlsaYwWBARCKH733od0bUgUdtT3GfENG/+lf/6uTk5PPPP59MJvfv33/69GmS\nJL1eD4Bwqqqq5GalVL/fl+vasp2maZIkMiestaKiYObW/RKANE2x3o7HOO8ax13LEcEmnsRh6oev\ncF3MixlXTTiMO80519wjxX0b0FXrdoFWEEp7vd5isZjP5xcXF8PhcDgcbuiEV6EDj7oTau6j/vIv\n//KXv/ylUury8vL+/fsy3pPJ5PLyMl5usZbH8jxHtHKH+UpE5+fnSilrrfe+1+uJiCjIbJKwAqyX\neaENLe9atjdrFGJ4YKMurhU8gSPVKuFIhYDrkmHgRU1qfa70krX27OwsTdNer5ckSVVVe9f4HRC1\nZ2odWmFQWutf/epXvV7v3r170+k0y7LlcpnnubAmY4yMrkx6a23YVccSVL/fv7y81FoPh0ORIcuy\nXC6XXbq+GndC26Jeu7/rvVrLu3RusTKt1idxIa5jTKAV0IJIqnTOCcuqtfNGViM3WGuHw2FRFJeX\nl2mafvTRR3c0AXZGlHIKGt6BCUpjseDBgC6nfjm/HA6HBG/LIksM2FlrU60usnnrkHRKF3S0U3u0\nGwCe4ECWmBWDWCufEBvyUAxiANAEpQHgYvDVTvXvOvMG0/eISGtYh7wq00xZWz17/vhv/vo/GpNm\nWaYULq9eHB0deS7zcq61Fti0GnYChwnT7uLi4vj4uCzLPM+zLBPsiT6w1+tVVVVVVZqmUi6Vx3U2\nNRO18s3IQYPJNLHE1zUTtX1OfFuNLwlgqqqSbVjY6jjnrLWyZCilZOkRW9xsNnPOHR8fe+9ns1ma\npqLjcc4VRaGUyrKsLMvpdDocDq+urpIkGY/Hl5eXZVmmaXoXJqmdEWXZGdLKwDkQQMTn58t/9s/+\n2T//5//8aDIC2FZFahSx95VVGpba184uHUtu3eYRrZdTH/AEC6oArwCwIk58CfaGWAEgeFKWyIEY\nvd06UTQETdGia9+S0AfOOaXA8M5VSaIrX11cnv/iFz+7mk2tLU9OjtKkl5jMeS+bnFvTXWwDbk2v\nuC2RNUVWEFkIiqJYLpdSKCIu1qYFpZQgSr49Pz+vqkq0DovFQtiac05WHMFVa9fdxeZ/dx6lPYjA\nCuRAOuupJ0+f/4s/+7//2b/8F6cnRwRfLheJ0YkmV5XwzH6yU/3OLFrLO0eLDMgB1qsKAb1swAkz\nsSdmBllQRcoBrl99vFN7YktIoLDzbuvR5aLIiUhr4ywrowE1n8+ZSGs9HI96vYExKZMC1Kt4gTU3\nDG+QYji9IrSUUsI6rLV5nl9dXcVGuWCxtdamaTqZTIwxV1dXeZ5778VWLogCIHw7y7IkSWJBtLln\n2yPdAlHwriStQZ7hldLDUVaWU2NcYpjYV1QlyvfTFEY55xbuJHR0XE+n3N+xanvXzrsqVoBlRSCA\nlCfLUIDSxngo772HA5FXAHmA1cVgxxcGAE8+/LFiZnYdt09GX0F7RQAl+bJyXhNSY2BMokyaJBmg\nqsollay5r6S9rQlab4RioRTRtm3XJgXuFO+1tNbCiARCgiu5U+ZPmqaDwaCqKtl6iXSnlBLMCJCC\ngj40L1bz7L1DbqGZ8JUtEpVqpZx3WqHfS05Pj06Oh+NRMp/m+ezCasZw4KqyzHMzWDtTXRfZNbfr\njspFO4/qenntEsCCKuFRROwJDPjSOJBndnCeGAQWbJS/2ultY4sktpi+z595JmQZ2FXTGYjcaFj1\ne72i9N76Mq+Wi6I6sjJdXn1Ea1qQN0g1aO1K3ntjjDFGkCN4GI1Gk8lEeJRQgMdisRCkKaV6vZ5s\nisKmNGgyZE8lXnzx7vQGQeMV6DaI8nCKxBLPebHI84VWuLw8zzQZhfce3fu93/3+H/2n/8mj+/cI\nSKf/TejxGFFdXe99b9uGAACScsTKgipQxWQ9eSYAyrFmKA92cCDLVIEqUtwr+zvV38VLY8fWmJ71\n++zV5dXyr/+/P/2v//znT55gPrfsZybpmWTlFGNMmiSJL23pylcYu7rS7I1QkyndbpkQzhOsBVhv\nmcKb1hSGo9GoKApmns/nAhhjzGQyER0p1tKd4DBuWxDj76hDboEolZhMxBVFyhhY66vKDbKB1qZa\nFmCfmuThvYcfffABw31SLsPLxPYQ1yHFabTP+K5Jk1UEMiAvzwAYIIYhpOw1AAeWHRSpihQqdbnT\n23bJBtYuW+//j/0fZOng+bPpr3/5xFeAx3CojRkvC07TXpb10zQlYkZluXSvgKhWw84bob1somSu\nh//S58KvcN1xRCChte71emJ70Fp77/M8FxExtrkFY1T8rLdrHwVoo7X3qKoqyzKjdZYOFCVVxVXJ\ntuIszU6O73/y7e/+7vd/R2s6qh7HFkbIH4CO93F2N89O8ingQRaigWAFr8EpnIZPwGYFMeVBDLLo\nX9y+t+I2d+gqe+q7vd7wt5999e/+4pdgMIO9ISRVmScpe++rqirKZVUZTT7Nbil1bGmKeM30KjqJ\nEGQhwpjslMqyDLJAsEqJzDafzyeTiey7xLK3XC4RWaKD8hCRc+ONRoJXp90RxcY79mClUkAxoyy9\n0QPnTb83mRZ2Nl16Nv+t//Z//+zZ05PjB/rhnyyrZZ7nIvBIfyVJUpZl8A2tqiowbp2s/dlAjJe7\nF63atd6XuOgjK7HwXB3RmKAsfIL+csbaZdqlxKQZBAYs4GcjHzuPobE1outUVVWSJFprMYmE9nRp\n/++7GZT68IN7D+/92FpzNM4WS6uVSkzGnrz3pDg12iRUVpZ351HGGGmSdKYYZ6Rtxpg8z2UvIfaW\nW8g2t4tf2rzPjC22rWY3ea/a3ka03rVojjhAQyxXRCT+JeL/KuMSbg6qDrHOSSCZ6DnEw/CtiOYg\nInIEkbAY4IShtepZp0n3POzTZ9Pf/ObJV4+/+O0XT0//O//ji4uri4uLqqqCs6PWZMwwIEqsDfLx\n0+99a8XTQABYDLTU6QXzpfrlk/zx9PLS5oXiJx8++uij/rcYaaVYcT/hTHmtWSn2BCb4eZEwYz02\nK37pPcK2iBnewzlIq9I0ZSuSw6rzjUGSYD5v75wPq58S6XyplkWvLBPP2np2rJnYrzfGIA/clRx/\noDdLt+BRIEApOAYAz2AoUFJZzPIyS4eTbNgfndx/9NHRvQeJVqMJ7unJLOvLgqqUWk9i1pqUAjOc\nAzMrRVojLXB91Qgf2nnUl9n06fOfX16cFYvlcjrLdPnxx/ccFibJDGkD0mQ0EYE1e8ArtzJNEKAY\nYDgH7/30bGqMSdM0TRNjoBIgMczo91FVJHD2Hnnuq3lVMU86/OiI7gFwpBwPPQ0ApbQ2aVLkpRa+\nCwBMrOitkNQOtGe6lV8fgQhqrVkgImiVjQbOg7Rh4qui4CS7f/++MQZ5npE/nRCMubY2VxWUgkDK\nr/UKWkPkIJEcmF/Cq4M7n2Lx0VBPrHFJYvujjyZ6gisLkxivCVpZ4wyx0uwVPIDErzw7g4LEOmut\n/df/4v+aJEm/3x8Oh6PRqN/vi0L2s8vLIB4cHR2999576ekYDC7aNRzL5ISZob1XqSNDiuAtNJg8\nk2KygAcIUGBDPgHaNRwH+prSbbTnIAUAxCvRTMMYRUoVVWWcBTBdLJZVOVYapNjOjDGUJEAJ5ziK\nJCNSqxoUA4BSIAszlIcgXsKpU0rq4cH3TybT0XlV5uPhaIwxkCToEyVEfVaJhyEGYB0xsdfsYkHf\nK+9gPblfP/6ViN3CqbIsE0Q9f/58MBgURTGbzT744IO//bf/9ne+8x2lFNqV52BS3sOScmDLltlV\nviz8DFSB/MqkywqsiRPijloO9LWl3RFFFaAAgYMhQGnWiVqUM7Bi00uSZDAZp6OByjQRcn3PKQJg\nPXvlTbpyTnRreS7+D6yFyfVH2epsMMQZfLsH3U8WhVmMMSSoBYoUQ+bUkiIFS1DRAyp2K6mPSDbB\noj76n/3J/yqYEbFO9kBEZVlOJpOiKJ4+fdrr9R5++qnP0kVlu3a0BiAPShWnihPHXLEvWCWsClaZ\naPmJFXEKT/C7GccO9PbTLfZRFQggwQUzaWWYEuhEa62hUNqy8NXlbDrLZ0TkVBrMalmWSfaMqqrE\nPIcoE4BUnyqKZ7zY0Zk63XVOyx4ApY+Yx55LMnrIw2VeJUaB18hcO0yAvNeaGSxSpLguGa2gHz16\nyIAH/JqBKQKAvLDDzAD44IP3hcVUwLJyvV7W3j3i86hBxiFhYk/eUVL5qgI04FbdzhpMyh941LtG\nt5D67HpmiChGRKw1OVcpQ0VVMjMRkwaITJIkRS7aamPM2GQ95fN8Mb+8HA4GK0SBFCtxwmDmxfSJ\nwElrTcZoTg0SMeG1tiad3uPpFd0bwwAXVxj1kPbNdKayIaBBiskzMahkciBrk1Gr9lxqV0QmgjcA\nctbNc1G5kvdlVWmtT7PMlu37nwX1GK50ueXC+ZJRVAznCoBB660nE9goduBDfNq7RruPqDrGOqmN\nMUYDGSUDMlgsh2lmAJMkA9BI6UePHjFzZX2WJQBms0VRFJVyg/5oOBhXVSUO+ZPJCMDV1QzA5Gg0\nHo/Pz8+LohgMxqPRSJ5ltIFGWZVJkiyXSyLq9/qVrRKTuGOH4yGJ4uzR/ZXZ4nSMl6Evwp76gpKs\nuoJSMB5wKJeuKCjJ1PC4rNhS4qA9oJwzbJW3mj2y09KBFVQCJZYC57xSOlPEUACtQ7DkMT3FShlK\nkqykpNBaj5UteJH6suReD0lGpFlVXs2sLq256OrmVltkiESs2VLFMhN4eyi/hR2zKw6q1rBa84I3\nQ7hN7CJx/pZtMmGEUPbW13kV21EIhZIXFNPIW+LX19IX3vvRaJSmqYSpXFxcPHv2bBU9BiVJERaL\nhbW21+v1+32ZEGVZyqalqqrZbCbmVOvKxWIhgqI4oUgM2aA/EJ+LEP4tvzVry++2rmXZBOzhK7uY\nXl5ML64uC8dInuWOHKUMArP2rH1luFLw1hw554iQJIknX1UVs9Na/+hHPxKxcGU7Y7Weel8nQ9Mh\nO8je6TaZW2L3vBA7NJ1OicgYMxqN3n///U8//XQ8HgOwjrUWHy0vTiXGaAAXF5dHR0eDwQoep6cn\nKzsV+7IsiShLVxsVz16RYnDsYIJ1II0YgmszY8PaXECBlFJGj3uT/rh3r2SA015RwZFhJmJv2Bpn\nDVvNLskGK8fNRAEonWWCUsqQk7AREMDE4fndXOFtCL6IKQ4sf9NteXfolohCw4VnMBiI20ue58+f\nP//5z39ujLm4uLCO0zRlZsmIIBsSAO+99969e/e0vpemL50YiKBI9bKeOMQJWlZ+7qAQ8eq910pr\nrRWpeC5QlGO1a5aUYgwiMEiZfmb6srlRBk6UmFAGJmWQL+EZZaHFDdcTCBmxh2J2BBCYQfLNqnPW\nhoDWfkME9TeOqyacDrjaC72S1Be7WuV5Li4RvV7v+Pj4o48+mkwmy+XSeUhaudjVSCl1dXV1fHws\nWyzvwzyD8zbMNrlTvEsFrkYbRUpckwRXtfbULlrJM9jDKIAgjpeOlDGK1lG1CUBih1UOPVHHrQxk\npEjTdUdmeeL6eifB/I0zqwOc9k6vuo8KgZb9fl9yC8/n8+l0KnkeB4NBsmYs1q6iL8WvT0RE57go\nCvGazbIsSYxWK0Eu0NnZ2ZMnT4qiGI/Hn3zySZqktRtiil0qW2/oA95DMzQAtkYxFIGwKCuGdoBn\nEGziLbgCPJIBlAJ7OMfkCQqK4D12zPnBbXTnw7tx4JrXB1y9Ou2MqKYOShAVDKNhkyN++NPZwlpb\nVZX4R4uCRWt9cXERJ9QloizL+v3+x9/6ELSyuhpjiqJ49uzZL37xC+/9o0eP3nvvvTRpj5sP0zSO\ngm55YQfAgxychS9Rlo6ZTX/QHzooBgjQnMIbIAH7gjKtwYBlD/hMawJ7qtTKw5GJydOKSe2qOXrj\nPAoHOO2bbo+o8FHssHIEiwQXiCOcYGw0GmDNoIR1GGOUwsOHDyVuOUmM9ywph5IkESWExE2kSdrv\n9YfDYb/fT5Lk+PhYtB2ipXDOJeZa8MxWC78v4C0UAxYEGK1NAt2rrCoVxKVeMwwpzUoTrjSMGHaV\nIlIMaJCnLAFjte9iLXoJDv++fnSA075oZ0SFGMmQllFAIliS0AwJ3JAbnr84lwOOFosFgPF4LPmH\nnz17BsAYMxwOR6NBv58BKEvrfP1sH0nONh6Pq6pyzhltAGildaats4levUKIKguZqNpJPOe9hTJg\nDyjo4Vdn06+mltOh1z3HIEJCQAVbFcth5hxgcTRGfpV/8KA3SNDXAMhA8qt5gMFqLYq+zAIbIoIk\n75yYkiQQiIiEh8diaogwpyhtZS1fX8xSQqK/0OchEim4odRY0K4hd02kNVUsiLSvtaUtPLQZhBbu\n3yxT7Isk+1+appKETPTJd/GgV5L6ghpd9Aeh3Fq7XC7n87kM7XQ6BSCHTcxms+VyOZlMhCnJVFNK\n9fs9IqSpKatSa62Vts6WVSlAnUwms9lsNBrJvCnLst/rAzBrOO3SOwmUAiy0AqhgyhmfzdT/669+\nqccP9PDY+6RyDt4rz2BX6kLBKVeOMsqnz/7oR9/9zke9rCbgsQf8ij3RnZzzdaCvC70qorC2Cwln\nEIBlWTYejyWmkgFhSr1eCmCx6Gmtsyx5//335bfr5DUQHXrgTlKVLPDW2slkcnx8LECS1V3sVLXm\n3Sj7zVllBp4MFDyQA2clfnNpn/vBMD0dTSacgCsohjFINMYMZ1HOysvp8+dPzn7nO99WhPIlotbx\nKczAQXA60Cvo+mJZRVAkAdtFUSwWi+VyKdoFkNZaF0Xx1VcXEoqcJMl8TldXV71eTyKRxATMLCjS\nzjvrLBElJpE91WKxuLi4MMZ8+9vf7mUro3AXX+KNmW5KA4+VQzoDFVBpzFn/+vHzftUb5Rqmbx0U\nkCYq1aDpC4L3+VUxO1tcnClyCRB4VKwvA762u6gD7Y/244UkLkUhiWGSJBJcZK1NswSAUn1xMlpr\nJlZZdsVUxbwySRERwweHK+usUmo0Gn3wwQfOudFoFJ8vxswgNDXpm3nUyiTs4RWIoIG+xskozVTJ\n+cX0qS1FT85eeUfMSTlNE61dkapinNIk1YlE0Sto8NocpVb/CQdUfcNpDxZeEczklEtBS5Ikkk/j\n8vLSM83n816v9+jRo+Gwf3U1Y+Z+P/voow9CPVXlRO+nlCqrPEkS2UctFos0Te/duzcajXpZz3kn\nJt2Q1U02cTXf0M08qie6CecTpRyDCQb49MT8T//+f1apgfWmtKzk5AG2tizSbJQatZxdpFQlPv/k\n0cgAcFVCJFk9ASUhmOut+pse0gO9Ubo9ogKjEEPTaDTq9XqikxBP2cVi8fz584vL6WKxGI1Ggis5\nqeXevXuiBw9Vaa2TxBDBupe+zyt1FihN08VydTogM1dV1ct6K7VEw567mUdlbAFOOQcreOucG2TD\nTyf4+PjYK1iAGZrQAzQ0IXvByAiL5fEgQwL0FXxV9hPF3hFWmdI4ijk+6CW+4XTLMw5j/UScRFcU\nxMPh8IMPPrh///6HH34I0sEGBQDoPLfHezjn+71+WZVFWcg5f0aboiyePHlycnIC8fEjSER6YFld\njex4TA548BKs4CtdFEh5bBLrLND3UEzQYAMHdmCfqX4KsMZQwQDs/OXZ0/6jB7SKE1v3wxpUB0R9\nw+k2ur741GEAWms5sCg4GVVVdXl5eXJy0uv1PFxRFOcX53JySZIkksLh8vJSDCmSBjlYt6rK9Xq9\nyfHxYDDQRs9d+cvf/Or/81d/eXV19e2Pv/X3//7fT6BJ6cJWidYMVtHJX4gSKXa+gB2BADeRt7eJ\nI9YVUKhVrjTxJ0+ZMgJo5VnLKSwwm01PR72HD46BClytUtjAEJSGIZAXITByyb+j9KU1byY569oY\n45yTvKpyblLIVtf0OeqyU71Ke2qPCBR3Qs281urZvE1juu7vuhYjZ/DVlgSSdxEidUupL45ECgkb\nWkmciSaTyWg08hGJeWqlD1w7xQIoS8vM8L4sy0yrVKenp6ePHj366KOPjsYTDe3h4ZmdU+ZWIeW0\n2vtAAwpea6fw5IJ//fR5RYkjQ/AGbGANWwX3lU4MATY/6qlqdvn9bw/uDUYpmKhQxMQsBiha+U/c\nPPwHerfpNoiqrUbihRSvUvENWiUAnHfWlt5DKZOmJhyUEDR11q3OMjk56lXOeu/tms8En4BEG8tW\ng4zSJovTsexCIpYZB6Oth0uxBH75YvpXvzrLqVchZZ2k2mgmtszOuQemXOZUVSPly6tLM/lQ94El\nHfd7CWDAtNb40So9VN0pYUNoyYHePbrNPirIeyJi1c5QiG8DYK0vimI+ny+XS2aW09HTNP35z3+e\nZZnYbQeDgdFGNA0EiLeeZu/YM9g5x87PZrMsSZlZK7ltpe7bmWvrJSxDEygpGRamAB5f5r9+Ps21\nRm80Or53fIT+AKkCPH4zx7To2SX3eVme89STJ1CGkkAMAhmmyN7rBLE1T5wDor45dMsszXIRLLyx\nG15tz2CMMqY/HPa9XyW6lIRhf/iHf8i8unYOi0Up8qFW3hhjvXt+djZfLvr9flmWckzd0dFRplaS\nXmWr1CR0GyHYeeWhiKGcolX+I8Lz84ucPKf+au4vL4+HWUIMtjiz1ezyzBfTsbJ+cVEusNo5MSTP\nxHWqKyb2sks50NeIboko8XHE9YQbYVWO951lxZJ8QgxWwtAkvFfyjYjxSg4/H416BHjvz87OfvaT\nnzx+8mR8NFGJefbsmfg6OTkFGPC3naMOBKUdnAK0Yg8Y4NFx73vvnSx8P/eKsaBFzlfWlYUvq/c+\neFT1FtDFJCVK9X1TDZBoRuZhCC9bsXaZoIYj/IFHfaPo9n59mzOlhK/SVBFlznkiC7DWJst6aZoA\nJBiTw8DLsqwqWxS+lymlVKLNOgt5Ko5/RMTWWWt1ogASl3Pe/WwFj4RA3hdKcQrtuOpR8un94ei/\n+0On+qSgCBkhJaSAJpyV0ASUbpBQMT/77kfJSFJHe7fSchDJyR+OwHiZavawj/pm0itJfWhLHFWT\n+pyD1phM+pNJXz46x1Vl5YSSwWAwHKbeY7EoABijri4uB6Ph6enpD3/4w99x7t7pPcvuV7/61XA4\nJKJekjEYgCRIot11E4yUAPYOBE3QtkwS/f5YPxr3V77jEh/lkIAV3BQmM1CsDaGc9dKkwHIJRVAE\naCCBMoBytJIek7ZOOCDqm0O3iY8SZYDwB1HEYZ2fDYBzLighsD5IZjrNnz59ysyyI0qSpCgKiVOM\nD7oty7KX6NnV1LHXiRn2+1fTq+l8JnLgyclJWZW9JJXHwTOup60LWpOuIz0BaA9NsCWbfgJwqrSo\n04v1DQRoglaF4greJskxgMVyORkk6TABW2gHo8FOVBNrye+l7lGE2OVy2e/3Qya90CGyFgAImfdq\nOXDQvUKFXVn8K6w9VxBZe2onN4f73zjDpOigtBBecItzrprdcqPdr9nVb0W+vtYYXrHqSk5MMeAy\n89XV1Ww2G41PnUuISI7qkBk2GAzECVD8AMNLElGiWYLDpN4kSYb9gTjdDvuDlY4Rkg7iVspzDwA9\nSuEJYFuWuq+mlffJ6rCRlbFKZRopVHXmkGqU6OcO5by4P+krQynxypxLACwAvcrasv8ROtDXi26J\nqDiUQ+xRiFiE8KuiKKbT6V/+1f9PsrKcnJyEg4eZT0ej4To4CnF2MQMv8YtMIK0UUZIkQx7K0v4y\ncHhjCzctw351Exi+qFhnFfDlWfHvP39Smb7Xqdca3pEr2RbsbDX51ICVLYbGl5dP//D73/7oeFAA\nGayBV6s85pYAs4JThgN9g2kPuZAEQhJsC6CqqqqqAMjO5+GjD7EWdXq9niSfGA6z+GiokIScCGBl\nxLUccjapkpx4YqSiVR6/9uOkKKLOFrOH91AEkFfaZGYJfHFZ/M1vnpfZhHtHJhvotK/RAzt4N7sk\nm1e+yHt+WV5e3P/o09Nj9ADAMDiFIrh13KGA9YCobzTtLZN9sEpJej0R7QaDQRBsF4tca8qyzHv2\n/uUBNsKgEOTJ9XcKRGDPzFEQFDMrUa6FH1O9GTcgSokLLEApmcQRCuDsYn4xd9azVkkvG/UM6QRG\nwxAWOewync4u5uWCFmXpwFhhiEEeZm2Bkvf5OqVoPtBd0KsiKvY9ByBbIwCy3VRKXU2vJuMJg0lx\nkmgAq4jddcpYyJ4EYBBBCcKusSDvHaCUoq2TjWxEFKA0rIUCgx0oL6EIF8+fVWmFtDDZhTGpFk0g\no0pUlc8XF8+HqhonrlcWBlkKpIBhaMJh+3SgmG6f9zx8FHVfrHqSDZIgbTIeSRrjLEtkCV8sF977\nfr8vsU8EyMkaK1lvva8CESlSIKaVe7VePZheRvXRKlPe9p7UXrEiZUEEz9o4D0X4+NGDP/z+p6Ua\nOvQZBp7JWXIWzjq1HJykZdY76g3HKX08pF6JUQIlkqOkGIsi4g968m843T7vefgo7EgCOiQ6QyRA\nUdABcN4VRZGmqdLKeaeUGvQH1tlQieToW7MsBfbsPRMpidgFKSKPl3la2HtJGYO2dCmbtcNL63qJ\nYS2nWoMIowSffJw+eP9H1fqMNgMkDA1oj9Jh0kdVQXsgx70JUEEz4D2I1kH26/go2p8YfaCvJ+08\nARQreFgHVk5ppQyT94ZsSt4u8uOTB6UzF6VZ9B89I5onyacehpQxABGcN5ZNOgDDqLS0SGRO+gX5\nAlwCFXwKrclkRBowBC2pXiu7OsEJcshtuURiAE/cBxG8BzFsVS0W6Xi88skjY4ESsIAFHMDAQ2PA\nThEx2KPqERgYEDjhylaGtFFGAWVZECPNshl8D6nRwBIgYAYA8PCpssp6MMMnMMZrbYEl7OS5oRRq\n7nlJyjnnqpJHwz57xz4FJ4SESAMeZEE2xFDFTF4izdr731cJ+USxZgtGYkgDXOVc5XClgUtIEZxm\n8mw1k1+fwyCcnda70OjE8DVXlwMTbjoaWCzsHJIA+BSrzTDii5WJiRnMGpBUVwC8P5dD+F5m6mNW\nBM8eYCZe7U9X0WqgKFtbM/apGWfVZZIKhi/ZlchBSur66XtvBlHr9l0LWxDjEsFYa8uy7Hm/zOcF\nH4GwLEEMcJIB1iExWC6hUixKgNHLkDKo6iuTggtUBQYpmGzFpXNeJypVpceyQpapCvAOqTbOGpNk\nqUJVWZsY4VyGYJJMj0dQ3pZLQx7KKeiUoIF0rU7AKooEaLC3xCS0GnskScLOV2XJBo608lolYnkC\nAOucVprADC/nH4A1AGTwTsNoY1Ln2DsMBoNCuaIo1srAcOTAa6K1Ny9H6ZvW29eXYyn/dXTbhgqv\nIWpdD69fbX1BvrXck4o/BqQxeYCkXjnjbr9BmnFSUdylB/MtTrYGROBSiiOnUGttYhJrLXlOkmQ+\nn//2t2eml32xHBB7RazAVbH8zvcmv/iqcqTz0vYHaWJQTJe6nH786OTBeLhc+lFiPNSycqWD0kYR\nnk3x+VcvBuMTiVAE+XKZP3xw/OgUP/vN9Lkdjoep8j7xRbW4Gqf49P37VLl7aV95q2AVsUGcmHKV\nZYXp5VADcGtfEOe9FgW+ATnXV66s8kT30VMrTpfIabqe2SnyGooYla8SSmCg1cAz5Qv2jqz1VVUW\nRUGQeEqxC6/hxGp9PPAO5EmFv9XHdSFHX4U/bgKJausJX/+4G6JYLxFxiXDhybeWs5P+XzEzphWi\nHJtQ7sgHpKmvm/r0FXgU6GW3SgrcZBUulSbm7Pmzn332mWVefvyfKbCzZb6YEzvz/cl/c7n46vlZ\nkvWH4wk7++Lxb3vK/u3j4997AN8b60VhslRpkAenuLL4+ZeXf/Hjnz364COT9jxoOp0ul8v/JD0u\nBvjzX5w9LotPPnpvkKj8fHb++DfvH/cfvPfovZOJB5QnwK2O2PBr/qBOgZbdl1LEzGAoMp5XZ4ES\ntEFZ2GVFMGZYKTCx0eTB3hWaRKfiHLNXSUFQCglnee68S4aDkywdLpazJElGo8HV1RXIriXQkJPs\nzpWEjlaRbCHEk0Ag37Va37ho8yqF2lpCIYuY1QTpbqW/rZczMkSI8i95FMDKETPYs2ewJ0FUua+u\nqPlhvS1ZmmtnJDmwIqWUTpJEKQWs1uCyWJ49e3o5XxSj39Wa8tn04vzFsN+bAs9n8//wq98c3Xsw\nWJTeVWfPz4566rzyJWCAXi/TCgYwQAk4h+l0+vzsvIKZ3H/I0F8+Oc/z/OMlBjk+fzH7Mq/SwXiU\n6cXZ9MWzS+WryyU/GJMHoDS8BRTYrnUH68VA1uu4u0FMLNMN7BeLhSbV7/eBymhf+aJgVFoDOoHS\n2vrFctxLwNpXlslQoipg4dx91q7S4Kwq1Wy2ZOZe3zhXgSyoAqVrHqWi/6+dWG2BnS3pmhQXXWBj\nOSASILPk4wWLWxgxgYnWpXujVqnvLui2qqmoPSReSKystdooeCb2jx7cn9y/P10uePIg1Wqhkyuo\n8WjwfWB5+mB87+Leo/dNkhH8Is0yZX9PZY88yMFwbtJMgTwjIYwNPnl0kv/wu5Wn0/fueVYD7Yui\neP8UDyb4zocPjsv0ZJKkbO/dHz/KPj4dpkbR5QynQ4CVYaOgQBrsJQaj64VkP6RAcs5ivz/UKz1e\nlaWaoC5REVIPArwGpakBM5xTQJroHCiBSmuqMOih6J94p8vKDvoJkT+/uExTgOxLyzDwdlqx1E3z\nOA6BA8CcoU26g++Q+qIhUOyZ2QVfY4YDv9zf7fvVXsMmCrdHFMPDY5X2nJIkqZzVHmnWZ+YyX5wc\nTX7w7W+V3j8sEqPgikfsH6UGWYGPPk7+e8c/7I9QOhgNciMuMe4BOVCipAtbaEcKSJTpj5Lkdx4N\n3zv6riM9PEJlkX/6cVVhMkGP8Pf+0w/SEeBRlemoN0D1ICGMUyigKFACxBpY5bQQTXffijQCptVp\nnzKCEilcVuV8Pk+1ORqPbcWXl5d9fjx4+Ghhl08Wi6PJh4C+LF9MWH2YjZcvXqCo+pMjb5Kpm850\notTAVXj2HPNF3u+NTo7uK12SqtJ05d67BlXoxp1BxVDhb/3xWmHtT8MiVvGtwrlU8DsJ5fJR8Q37\nlhqivOgGX7KilbKPIl1ffKF5DsCJio+9B2tmhhKTiGb2ELmP3N0kE71r1/vdEbWy44hhSjPA0Eon\n0tYsTb27On/xfDG7SrVSSmHhveNE+2yUoCxf/Pb5eHJ0/96wKFFUjkiP+mDtYXMsSpR5OoFjC0fg\nytqCC9NPeqNhWthCV2lR2fv9pNI8e36p+/33FPrIKst5mQ9M31ZlURQ8HE4XC52kDOWV8QCrFQsC\nQEWONkQB0Jpm0/zzzz/XoPcePppNpz/5yU8+Prn61NBnV9NfXV0++h4cmce/+vUJ9KMf/uGTJ0/s\nbPHoQ7B3X11dTdP05OEHf/WX5f/7L/5rUHV2dkHQZ2fn2tjRJFssiutKsP2KXp2kuA1RiBDFK6Pf\n6uNNmgCqaSbqqj5a+V1eB9jLi5Wr/mr7JMfgePKAJwYzK2bJL6JWPG0/9BZLfWp99Bgzg40yACQb\nRDrI0jTVmj78+MPPf/ub04cPKvifz8/Y2YT80ah/7+R49N1RSZjxXPX6xYTnNp8RkswarhLYTGta\nGq2UBqxHorQyhhnWLhNN3pWZgi7zgcLJkSHOmZmLnIhooKByTr3V5JFnw8xkSeGxrFAySCNJYAFr\nkXKKDh6lCEqp8/Nztu7h/QfM/MUXX5ymarlczmazi4uL4WyW9EfW2kVZyHFYkgRKrBxKqaVd/uY3\nn//FX/zFyelIEgGkaTqejM4uzryHMb6WZ29zT4eMA1invAvO/pJEXqzqAMSwLkdU5Xl+dHS0WCyG\nw+FsNhv3seJIclADCCxZBYhEkU38EttEYBdPw5eNcY5e6tnFWYWZWa/6kFeK3/UFrVwygeiEKGY2\npFYWOMl4Cmb2Mq2MMZVznn2WJFVVVbYyxuRhsm3db60kjgerg/ySZD6fS9BQnCLlDSHKA+yhldFG\nbKbWlUVRaJ04587PXyymM1/Zy/PzJ199QVp/nj/lqlRse2fUf5olSeIZhcNgfLwonbVWEyt2yi61\nLzWhVz6QrBXSBUopYudc1e+l5Jy3lYIn9gSGt8ysk97KSArFzExKznrPi8qrxEEzKa8MKcOkmdRn\n5WUroiRrZJHnjx8/9pUlhrO2KIqvns75l79+PF+czefc+9yk2fmTZ9PC/tj+OH/8DEU1fPLUDYbP\nbTnTiR6PH4we/sEf/qgoZ19+9bOsl8zOc3exOJoMLq8WWkv4ill7U/kNS7D474ecU4HCrIozJUp+\nbABJkuiIer2eoRwv82GwqGDACuplQlyEQ4MYCDOsNQw5YCzMbLVc3bz+ExQZU7fAynWVE0hDKaW9\nSkxKBLAGLRYLb0tfVc455atemqbKVFUV5Rl4VaL1QWe8zpH61tijREIGrxTopHWSzpfL8f3RYDBY\nFvnV5fn/+f/4f5j+6eJqOZ8MJ95WsIX2FlyR58pz4VGxKiw7RqKVhlM2J18Z+K/8Q6UU2FlryTut\niNj5KtcA+dLbSrEl9goe3nnvvcpa06Qs80LcCx3IWutWaZiUUQnWxqgVolZThaqqMkoDcGWVJkmi\nTZ7nKebZhKaOFx4YjaE15ktYe2oyXiyohEqVTdIZKasNsh6+SFIy/UFSVvNenybjydX0rCytIihl\nFKXBCYBITiFtJ7WmmgulNikp4zxIGc/kPABVVk6blIGsNwCgjU7SntK61x+Qj4XMl28LIrCo2gKc\nCADTKgKt9t/EYdFrTgSAzCz68XoTdT1h1rWtlzoCM684oVcAERP8/fHYlaVnm+eL2dW0WC601q4q\nSafN0GZZUHYql6+EIwXH7rug22kmPKCcc6yVAyfKDIdDOVwjz3NbVvli/uXnv2WjxsdH6klpyClm\nZR27ip1XIEOmAowjhkq0UaSUdWy9gbpK2BhSrGzF5KHIE5icgrdwHg4EGKUUNJFmxQtrVko5b733\nYOdsaYtyMkx9VTjPGiAP7VYTqUh6WEv7/uVcgFKqXCxckg4GA9bI84U3iTHaeZxfMhvoJHWXOZig\nNDlalHlK0AmW1le2cNpAaxTLQWb6fTNfXBRlPpocp6qfF6l4VLDX3ou6WHLR8Iao7BDdLP4yYt22\n1oL0yju5qkJGqqurq8ePH4vsDSBJElG0WGuZxXsKsl8BVlxEKQOWnwvfW00+R4pr2rm1Y9RLQEXk\ns4tQGLe/NmVfzvLqATN7dnDWe8/eKjiwW8ym/Sz5znc++ejDDwYjXF6eW+t5nUi+5l4UPm5fjjXD\nb6aMfgsQtXYwdxK1och7f3p6mqbp7PLKOQdbzF/MLXi2mPJFYhSlsBpO+YrgSRnWqaWkcHAMY5wC\nc5GzLeCdH/SYDZFS3npvoaAVQaHf73ubelcpWWzWU5GQEhE765wzCv1EK2JfLgf93nJ6UeSLTFOW\naAUGeyJ64SddiMqzLNEmSRKXJDSAUbosy97oeD5fptkwSUfzRemcy7JMkbPVvJcmIK+KwjgamQEo\ncQ5phiSxOsmWS/fs+VeAHwwGzN5ZclZ5R97JjHQCqq4+lhnsvZdUHCL0V1Vl3eqoLgBZlmVZ5pwr\niuJP/uRPRqNRUUgCHBPSfFuRvnyQwUiujUlFscfMgArzL+dr0lrAQ6xxvoaoZBHP2kAihdbmNABf\nTZgZ3nm25D3Ba7YE7qVqNOz93b/zP/hf/i/+53/wh7/fH2Exn2mtZfsX+z3WYLN9+euhW+j6WFy/\nFSkGnLO+qhZ5eXFxoRmj4fD3//D3P/z4o+ly8eTi2RdfPX6uPSswOWYLToiYlGFlygqWyVNisiwx\nUH6gfKUVfscZySjG4suoIZIYr8/MDnt0XgUjGslPRkRHk/H7Dx9MJhOt8NXjLy5fPJtdXWhCYhSc\nc7Zk5r5r10wQUZoaLYkHNfWznlbq6uoqG2aeej3dz5JBz1tvnck0K58bZTINzZSksJTonvaJK71L\nF2U5U1rfuz9W2pelHQ6Hz5+dESWEBDDMes0Q/Ab7WBw1I4fciVyqdCLpOobD4WAwELHQWjudTs/P\nz2Ueh2iasizL3vClaMdBzA0OUHLNkR6/HsK5nikGja0UmEGDa+Xhv/fXPr70zMXqhFUvO0mvoBT5\n6ZPnz9j+6ZP/y+jk3qMPPn7w4B4XFkZR5V6RO71U9K9NZHEKl7fAU7aRucVkyWg0GgwGAIqiKJf5\n2dlZ4ctEGzjPKK2r2FeaKwNP4g9HideJYwPjoKBNYsBa6VRR//Iq9akmXfnKOqtYKaWg9HK5ZOu9\ndZXzK1MMKWYm71ZpmEi7TDtbSlD+fFld5X5eQimFCmVRygmLzl2hYx/FzIk23ntfWe+qRJuqKuZX\nlXLaudyyS3zC3i/nhU+8TWzuCqeYnTesUChvLTkgKyo7Pz8vjo9GxiRF4crCMpAmqTGJVomiVU4O\nz9az7e7mVV5Ruej1esYYay0lvSRJZGUR2GSDIYpiOBzKsZGi0dJai8JmnozXM1lHEBKmpABF1703\ncpOiLXeSHK7eDJFm+ijcFv8kPqw+/pbNuffe28pWhbc5bAlXKrbvf/Str774bXH27K//w8+/fH52\n8uBBxUp8KOPtUIyTncppfWhLOIlzv0B6BUQBRArMlbNekTFGgx49evRf/Vf/61SRYpycHF0tp4uq\nmJyePH7yeDSYwFbkCsOVZkuA86hYsUkLRxaktTYE+Er5yijSy/Ms7SulyrKsqopJkVJESqVZaVFZ\n5xheJVCaiBjKVAtjjGMUlTNJ2h+NncdsvuyPxrP5wlqbZH2iVbbNNE11ddmKKADOuSxJiahc5kbr\nftZzzs0U96inCqSVHpkBO7+0hU0q36NCFw5eK5VyklY6qZSq8JX61aNH7y/mRZYOnz598S//7P/5\ny198prWpKpckmdayO7qWgreVJNZA2HKs5z0/P5dMUmET1ev1Qmo3AV4454aIcj3ESuhSq//QgEoT\nyYehiLSAjYgAGmSDGipkggpWa1ABAPxuK4oklRpdJwCl+rUrqzxfLOZX+WxaLqdlseBq8eT5hcn6\nVW+4KKyD1tnA4Ur53U3g3cRrPb7wcDT2fm8GUawZ2jCzUZqZ4TyA3/3ud77/nU9DL7d6edQ+NjeO\nN3ZH60XX5r6rTtkxN90lm9otofjk39b2tD5InpLn+ZOvXszn88urF0lKSeqdz5N0nCS6qlyaDhJT\ndb1vmM2yoAo7qqrq3nFWlLlnb1TGpCvnZ3muVeJY9SYP5tZXBQaDe5wmZWGZmWgA0koZZRJtesr0\nyKRQaZoNPKWkU6gUxihKSSuC/mrwPXlimqZZlvV6PTmzvNfrSavCOctJkhijTuwLup69R85WFu25\niHtB6COCUTh/4X/20//ws//418XzL9LhFPNny4uvEnVVzZ+PT4+ffPXrf/n/+D/92f/tf//w3vHl\n1UUve7DasF0/iSuMe02D0qURkYUpTVPn3EcfffT7v//7u878LemW2cWCGNp1w5b17Prc2g83yMHB\nqojrIOxKjtlcBVb2k6pqfkvdwTaBGTKzyGkyBcUWLDxHkmMaY5bLZdf7xsYAsUvKtRhFVzIMe3hO\ntDJpusgLZm+UggERfGXhrU5MpgnwTJYA8sTWEzumyiswlWwTqISq1CsDbYior55CkFNolSe8SHya\nOq31ZLJqmVJea2sMjHFKLU2B9c4t2MFCwrmaNAjA+WR2dVHMn3J1wdW0WpwV0/N8ep6qYjLoLy6v\nygV/8N77huwwM48ePICaBDiFjZA8McZSK8OPSwaDgeSTLIri6OhIpoGMzk7z8EZ6pSBu2pj6vPlW\nzRl8422bf7uhkhvThcbDILO/tZ40TXfqkyx7mV1MKVUUhVg/5DrMrX6/PxqNLi4uNjQPkVFSpP8k\nSazLRfHOzOyd9yDFxK5YLpiZoYiU97aqnPVu0B8Vbo5VcKyES2mmhKGVzjwUyDAlpA1IiaHMm5/G\n7RecxFlKEcl4Sqmlq+Kbgw0tzNSGOKCIqMzni+kFV8uUXJ+WJnNXT57Qg4lbLj/6nW/95/+j/8m9\no9FifjUZjuYOWCcCimET0BXAFmv5m7rKqqryPBeRWA6krQ3WvuhVzzjciU21Snpx4QaeU9t9Nh9U\nq6d2XftJa/tbeVr8iPg6SBdN4bYsS3FiMMZISmpJjiu4lVEUTnV+fr65k2NEMbPWWnsFqKBNIUXO\n+7LIj8ZDKGM9E2mTaGKnHXoJky9lGjom9sRQHhpQVQ6APAyUZiZPsr9C4qYI81ICnyNjTjynV5b0\nwXEMM1q7cdRuC71UlnmSag04W8JWDE+u5HL56P5ofvmimF6gtOW8sGm/nNmZW8zZB41C/HRrbZAG\nYw4mtjs0pMEsy/I8T9NU7p/NZmVZBqPfHunWEYfXlI81XHXtkVpvjgtreqTmbTc2qevmWLva9aAu\n1tfecaaz64StSYoopdRisXj27JmIeWmaFkXR6/VkIRchpLUSuSGsu0VRrLwHvRODFkHrxBARW19W\nVV5ZkCqKwoGztF8566yd9npk85UBl8mDibSHIShrHViBFJhAUeyju2iVoOJD92KQ+OfJtSEPe6ZY\nex6+ApByqQ2IYS2KqvQO7MGosrTK8wenp//g7/0PHxyfKlBqsvnVkkdJa3viwZJFR+TAOL1xDKqi\nKOQk6PCruziEF68u9aGNsWzgReF/vJI1V74mhfzMaOMhzXpEUG6yHdECoyHixzva+Cldh811sUdZ\n9kRIc859/PHHv/3tb588eaKUStN0Op3meX7v3j1R0B0fH8/n823eNySZgnW0PlwcShljPNhab5Kk\nN8h6mSltlSYpUWatVYkxlcU6QhYAkV4p9xRh5TULgZOHAjDUR63tiefiNUSNjuLu2qCaEloUF1pr\nTQqABmkSNkG2dKk2f+/v/t3/8r/8L/r9/tXlZdrrz5d5AEfsbotoH0XrI9VrKIpHh4gkw3GSJCGx\npOha9k63OZsDjZmN67O52cXNNSM+0622xWx9bnx/LADUKomnYNy2cNGV/iYgqvYW4tfTRHKXvO6c\nOz09ffHihVhgf/CDH5ycnPzRH/1RURR5nv/bf/tvnz17RkTysQtO8WuK6iy4omkonRhr7WKxKPMl\nKZ1lmTb6f/e//d988NGH/X4/z3MmEu25UorcQpwklIBhpUOHUjL0kSaTFQA27UqaWNNwrZ2oQv/H\nP+xa/nt98n69L/LknWNPAD04fVBV1XA4vndy//Hjx8tF8eDBg6TfK3zB1yker+bkCdJg81cyJaqq\nWjl8Oue933CMy+1oZ0RJBubm5Ksh6sY370JalwtjQFGMqHB/s/taeSOAoiiaUESHbhCRuNgET2u5\nBHH89Kc/TZJEHO0ePnx4//79sizPzs7+3b/7d8vlUiy2UnmXckL2A7KsZlkW3nqcDdPUlLZ6/vz5\nxcWFVDUY9n74e7/7ez/84Wg0cr6qrF2Zj9ZJxVpIHBfWb7kuxHJ1zHF0I64lUorLAfS4XNe26q+X\n/1ueCG9zmcpKGVklvYekDxkOx3men08vCleOToa6Z/KrIu0ltREP/RxjmNf6T9mv1qYK1vuuIGyL\njLDr5N+GdkCUCB5BjRteMuxH8zx3zqVpaoyRNTXep7ZyofDauB4OVGPi4Smb60HHRI95mvRjs/4g\nZW1ZP67rSMKzkiS5urp6+PChKMoBzGYzOVOrKAoJamLmoiiUUrPZrKu3wxpfc5SezmZpmo7H46Io\nnHe9Xu/y/KzXfy/P89FoMJtemjTx3pV+1fnWebouqikQwLSKjgIJ6NYYcB1TIrQgRBIKZdXLFQ3X\nV6jWcnkXz8zsvF87OQLMfHZ5ISOVjLKS7fPpc2TX6ok1EHH/x+PbvD+MUZZlIh9WVSU9zx0C0avQ\nDYhqMpNw8ldseBa3F7G6hCA8vgOnqQPVyK89P6Iivn6D8BzRuAOSBokBkCMvx93L1+K127Vuh0rX\nIbmBV0sGzOaK1pFngqVVnsEenuEYzCQKCi8nr3rlmeUMFW/cPjlJTX65C7qZRwXoB7E+LPYhPWcw\nmMT6hqCE2WN3NFnH3XXN20me1n/BzfblYVqrrSYxgUGK4MGrQF2ScHzC6qgTTQQoJq/W6UClmozb\ns3nVROLw0aOPdcBUfOFXScjq5Q56xaKYPSwDDPZQTI5ZeVqtBwwwMdPexpeuu9LeHbQ2ISpeXUT2\n5bWObmX/dk7YUSwEouHltReqgecbiKXVi5Nf/63zeBIYyksUxiphi0xi9VKb93JqqpBERuLc6PrO\nR/sON47Q4WsmJZ8qEkQR1yAURcs3yhXDSSlYeTgAxApQihUze4BYzGd7mz+tQHqtiIplthgtYmMJ\nrjGyAwn6KOFX4TDCPTIoNHQJ30xQrSAk+VEI16ec+OASr2KKiIRPAcStc0etzUYvVQ66q1P5+kXA\nl4SJtCCnPQMmyK1/zyAHydDCYPbwIK8cWLNiduQN7W/+hEW/JkbtfYBulvpqZtmaaRxr9xNxtEmS\nJKit403kvujAqTyuHaiIl3xJMeCZwAbMzCCl2JNGhZZcSC+ZEq3/r/f7XV5X1yD1Mu85IoRcu2jP\new5arrP/SMwnrW8gxQCvTgljJu/Yew/dGfByCwp84g3kmWh9WLCRib05SRIx55dluVwux+Ox2NHK\nsgwHoe9r0jc1b99AODXJh9OrVtxKyR6K1kdwafaIgMS0RpTEHeIle5IF0lG7q1uDRa1X2FUW5Tpy\nqANRRMXqd2Cm1e5N8Zq1ejDTSvZz8N5Xe0JUkPo2OHnvhXazRwlI5AAOcVqrquri4uLi4iLPcwD9\nfp+iY0XE+fqOmv7NpGtS35o8BY0fAcSrBLoSUHgNUcRE0H6FKs9BI7HOJ1N1rNoNRK3uS7t4VMfZ\nHIB41hIxEZiJFGuCB+vVgRxeAQqeFPu7yYG5fpG70UXfoJkIgBYDWZIky+VyOByKNmIwGDx9+vTx\n48cSMTqfz7/88sv5fH5+fl5VlTiJElGWZeJ5XRRFlmVi8RR/tppRKDw6djnZ73ISGwPiwq6nxAJ3\nrO+KfxIvfjUbCK67O8W2NdxqpaTKDQapsj5hKkCwVaKVLwuucgIUWQIUiXnNe++Zrvk6RI9+WSWA\ntY4NCbZLEvQyNF6kRAau23/C/5qPiz8K/XDNjgQPLbHF9lq5e6mFf5XJIK4SYbm/i5OjhHb2mRCQ\nSBPFlaaqKufcYrEQP3lRTojefLlcLpdLyRsh9s3JZBLCVO7ifQ4UVqKDMbBGteXsjmhnREmQlvAo\ncUB8+PChIKSqKtEEDgYDydEj3r5itloul3me93o98bx+gz37zlONl77p5rwV9CrxeDvRbRAVAraV\nUqPRSCKoBVTi2Z1lmSgwZLslmnQJ+RIGJZuuA+2RmlPkoLmJKdae34UWOtDOiBLTkwh1Agxa5xWR\nFMFip5KwfjncOuRbHgwGkvJquVxuiC860K0pNtYduFNMNQtv2E3t/UG3mda8zqBQVZUYc5l5uVzS\nOoigqqqqqmLuJNYq2VCFxD0H2iM1nbMOBoaY4li+oBd5KxAlvsNyKoS4R6RpGjJgya6p3+9L2InY\nrCRjY/AMBHDQqt8RHSDURTGPwl0uNzsjKmTzEGc/2VAVRSG4cs5JPipJESzBVPIT4V2yMNyd7vJA\nB6lvM7WaT/ZImxAVB+0FEmzIDkqSkEggpJwWIzdLNFjIFYz1AEs0WKiz9aFd9p/YbaQWTfgaKB6A\nzb4gTXetbQYvOBzXen7DoARfZLEWio+lLHZ3se3e/L5Nu+Lm8vhdat/W7u9KH7Lrc8PqL5bVEDkR\ntNb76qiDFvsdoYO895bQAVHvJm3InfK1o6a3xNu8fOyepfktfplvMjWn3R7dlN/se234+BbSgUe9\na9TcqHzdqWYMeMtBtTce9W4M3teXmvqPd4NHhbfb8PGtogOPeqco1jTinVjmatunt99sfUDUgQ60\nT7q9c11tFQw2kJqw2wwE2rzGtKYBqBmg4vK7O/S7+bJd3j3xt7UU0HFw1F6IrwdiSXdJ2k3xCBPD\nS0hc1WWb6mpSV+bQW7Qz9FXNpiTeM82b99U/aLNHhQgjrE97kEi/vTsiHXjUO0JvuSz0zaEDot4R\nakXU64HZm7IXvZ12qkNIxTtCsRx1F8lJbvS62nzb3umt1f4deNQ7Qq16sNfGK/Am7EVvp53qwKPe\nEWpu9/dLm+frgVMFOvCod4Tidfquk5M0nxuuX5u96K21Ux0Q9e5Qc0q9JZPsG0U35+trqvb3QnHN\noQTd5w7tq/5dVUO75veLT3AL1pj4YIg4uektOIlE+EjGgXAkSoj5kXTZWKcD4S1OCu+iVrsiNtqp\nwkmeuK4pqZ1JKZFdHOXruzHerDkJxbgU27s4ysfSvH9fdrYb6RvKo2LD6zvgqoMI87eG0LtNr017\n8Y1DVMwZ3iVQta7ErcHObxxaXXak12NfuuvX/8YhSqiGqzfdnD2QRMWjTbxpnbtvqp1d2rnXqbW7\nU03GNxRRcYe+8TV7L1Q7prVVS/GWvGmXHelO7UuvTR/4jbNHNQWMt2SevSKFzG3BTTZc11QUm7db\nr4feIKe665X0m4ioLqn9a00BReE14+sYTm8PlrrWtTsamtezmfzGSX2tPOodwFWsnd98z4HulDad\nwysX8SDF4kRsRoiNMLg+X+N4p82TWAqDPQpta1goidMAhnbGdbZG4MQ31MxTYsbZrHSKy7vaKc0I\nCXR9ROFmSQ0PQDLCNzs59FuTJM4nZLqWX1lrJQlpURS8zqFtjAn90zw/aleqjVettc38il31dOXf\n67ruovi5oW9DBFTrc9Wa4gbvnWNvOjV0g1AbzyqsM6Hj+sSN+7dZW5dRL8yVDXDiyPS8zcihLXix\n1pKu5zYttpvLQ53h+BK5CLiSQrHAxilB90Jxn+80XWo379qqrwv3e1s0EzcKSHEsbe2GzT4QgeHc\nyBO6eFTrvog30ub24NV4VGiec07OJXHOhc6pBfYGRlRjtq+ycNaafWNVHPkcbM9qtmnANt34KuUb\nGtA6zZoL/WvlUV2t5LbYbwBlWW74eS1uvMmvwlN2lfpaQYJIEghwbcVSs5e3HNob2xmeK6xJXISC\nDCw/F+8hjjjb7SYxGkDa8v4uLLX2SVc9tZQBaKxT6Ebprcu36YfNzb5dP99INyOqdTmv9XIzFXj8\nFTqmb1x/6xi09k6znlg7HP+kVr6ln1vzuTuVh6fUKN5WdXVF3Jm3G85dF+Amg2rWs9NDtxmvfZVv\nbk/r/ZthvxfamUfVPjbX8hp4Nu9DmtR6f/OJzW9rP6kxsZiloA3htbO0W4chLu+6P2gm5Fg6Ie+9\nXATPBtlfifKg9vNXHNFayzesIBsYVK2qnSYfty2szQr3Ur5NG9A23HeBJaEd7FFNzhCvpiLA1F6A\n18l6Wmf/li/c2gXx/a2I3YzA1vvRPRu4e51rlgcMx9dNrtV15E+T4W8/Os3rzT/ZoPLqms0bKql1\nwobxffXyLfthp7VgL7SzZkLO4RUFrpDMDNlH1ZTFzJymaeuM7+JRTYd8NCZrTE2tN67vx7ZE1K7l\nXe0MFDpHIiy893IoeDii5k6jbncF1avUsyX23gZ6DS284fwoOWAXgLV2MBjI2e/9fj/Lss8+++zp\n06f37t37yU9+MhwOrbVyPrzMm6qqyrJMkqRmjwr/m9pqbpPWumBQm/E1toDIc7R2Z5zfL6453I/t\npkjX4dxyoKP02GKxkDeaTqeDweDzzz8HMBwOz8/Pl8slM8uhdVprWp8QKWdDSh/uNJDSb3LwMUen\n4N31HOqKH2vec7trmT+x9QnXl87alOiqR2ZyOKFTzoN+k6eGhjVVVty/+qu/+tf/+l//+Z//+XK5\nvLy8/O53v/v06VNjjEwLZl4sFkVRhONDa10Q9wt3aM9jqamVlbUiLQCySxnYmqmzBqFtZmHXjC/L\nUo5OlUDAJEmIaD6fTyaTxWKxWCyYudfrBeTI+avSMFllbqeZeBv4wx21oVbt2/CmG2hbqU+22s65\n999//8c//vE/+Sf/5PPPPx+NRqenp1rrxWJxdHQkGq0QXKm1Pjo6ClJZUHbVVhfZY8S65nDR/ElT\nY1arv8a+ms/t4oE1pN04csKImiShtWmaCjzkJGKt9ZMnT4hIjtbj9QGqHJ2vHJpxu4VzA4u4a6ot\nbfF1c6G8RXntnles565pK0QFOFlrz87OLi4uvvzyyyRJ7t27JwfvDofDJ0+eyPoqLFU2Wr1er4aQ\nWiC0QCJ8BUBOvA4lcsg8r08r9deJo21xjdfFEzT4X3Nj/xaAFBtbsVEDJjQej1vLrbUCNukxY4w0\nYDQa1dTTIcFyeERtUdiJWrkr371fbPO5XS2pXdyifANIbqzntdEOPErmyvPnz6fTKRGNx2Nr7ePH\nj7MsK4oisKZYi1XjM01rTBMhgpxYIRYmfawow3olDt5PNUSFxgQRvMmdYqTVEIWbJMAui/ZwOBSB\nUB5njBHdzGKxCLnI0zQV/6NwzndNNL3FPKiJwa/fwbzZ7PiNWjt2+/Ku653qeT20A48Sn5rBYPDs\n2bMXL15MJpPRaPThhx8652azmewH5B75lbV2Pp/3er34xcJIiyagJnrh+jodl4t0F2Mv5mk1nsMN\nafBGqS/UE4/KhvGQjVCTFotF2PJKM4R4rY/Jsqzf7yulyrIUT9m9zP5aGpPQ+NfDo2of98KRsAWD\negs51Q48KnhMF0VxfHycZdnZ2ZlIfb1er6oq4QNFUYiOWBbmLMtqWML1SDis/YJlQoT9SeBR8bwP\njqexHBj3V2BxsfDGa0dY7tZMxFr4+KJrRhZF0VqerEm4q7BQUTSFJSDPc2YuiqIoitA/aDDhnShe\nfTbLq3dBm6W+eARvV94lW25fz2ujnXV9WuvZbCZCYJ7nvV6PiAQGwdKite73++Ii8OWXX7Z2TU3I\nafKKWje1/iTu3NompAs5TQ2EkIhqTUR16fTSNG0tlx5I01QpVRSF8O08z8fjsTArWXQENlmW1UxS\nYRF5nZNgL3R3bX6DDOcWtBWiRJYTxnJ1dTUcDvM8t9ZOJpM8z/M8D1njZEIIwGTvLruIJtWUe01h\nr1YeaxTicKPQy9zYR7WWC9No6usDE4sLxVFopw6VekRI5rVOTyKX4tti5hw46o0uf4jyEMrHYK5Z\nLpciGshBUtKGDeDsYoO7Gp1v9JPcqZ4meJr1NC1OrdJKk8qylMgxkafKsrwLkfg2fn21hTz+2JyU\nWZahTbsd76NihNScd0J51/1h27YlSUweX/f0a7rzNgdvJ6pxVHRHEL4lxPvYcb0i93gVXvT2MK5N\nMby1Lo7X+/hjzWreFNhwXdi7saS1PGyoYgNO8+a4f7vKW6lLc73rmh0gGrZDXxcs3RpUXT18u3HZ\nPBma97e2Z6f790u7eco2JSuZ300sBdpGF1fjS63lNamvxmSafddVHsQkagtSbvKoV8TD27N2tjas\n6X7e1eDN5V2QaP58m/INYGj92AU8vIn+v4FH1TypYnErfIxvaFLMTwL84s1AHIQXC9O18qA95273\niNpYtpbH9bQuqDVE7dqhrRwb3RqON0uvzqDiqrqm+zbjUquhdt28v/ntjc99PbQbj6ohKoaB74hH\n6uqOWt/dWB7HC8Zq97gTa32KjUtaF9Uq33U8wv1xmPMt6rlr4o74qNvxqNrHnTgS2vCw/f1x4U73\n3xFthaia507cccJ2usIKuU2JVyvfUtfX9GlAY11strBZHhu4QmHtBQNQg6fF9sTX0w8FRO2qQXkN\ntF8GVbvedVxa+c/29dx4/2ujm7OLNctbWXPzNcJkDfM19icKPxRLaPC+ix3tauUx2G5UlXZRE7rB\n9bs2AK8Yml5r3ut3C9qyqftq2KtP3NsxlreN+W/KLoZoHx+kOwmkw9oPQGJ7gntrDW+tnuYc7WcQ\nsbJY39DaazEOw+K64RyhVpzEA9CUdvblE7Q9hRVHPNMDw99s56kJk2EIgiWK1z6Nu77Ojfe3rhev\nTs0KN7ekNnatwxdfN6fiHUFxB0VWcwmpvU+z8MZ32PBi2wgA2zd1m9vebdr8snthCG9/f3atrXuk\nG3hUrR1NhMRq6C4IdeGqhsMm6prgbHYKXT/LsIm0G5F5R4P3mqnr9eOOal7HH2+UALvm4uZV78YB\nfT3l2y/Hr0i3zNdXA1VQiwu1zvImoQN7Xb3TdY02MKMDLZsB9vWl5jSK364Gp3Bbq7qvq/7Wiw0D\nt/nnr7kcbUvGjYvILWhb33N0gEp2LHGg0YbZ34Wo1pFoxUxXJbXWckeCnuZt++3NN0jNxaX1hq4p\nteXc6pq4rc+tDXFzoF9zea3wjkb/BkRxmzU9zOYuzfgGUNXsVGiDSlf5jXBFA/xoA2rrqN9F575O\nqvVebQT5utQnF9szKDTmZfzQ5m2be/uNlHe1f+88aivNRBPZtVlegxa2wENXbc2BaUVa7bZWTG5+\no9brrzU1X78Jla6JtdNTNlSFtkWqucC9/vJdX/PWtJuur6vRzbdqXSy73nzDU1qf1TVyrbXd4quv\nI+26jrxiJ+yxqneMbpD64owOMUnwXJwUpWlfCjN+g50qlNSua6wPbdHscr/vOEcoeOLWlqiag2xw\na4jz+L1OilPKhKMGbpERya/z9YXQyVAtIkPNjV5RNeFwJ5w047viNsT116q9BRpbxZMN5RIsG/L1\nLRYLmcD7G8kV3Z5HtYpqXXJXKyurdc2GktuVv8qAfU2p9qY1Lfn2P9wgQbx6q14dTnvpojt67rb7\nqHDRugbUFqdW2vBV10qD6+jdqRxtKO3qx3cAcs2u6HrBrgm94eLG8i1XyWZtrWt08549lrfesEfa\nwR7V1e4NGr/anTUNe208WoGHDhjfWL4ZVPG3b6fH3a7UNUtq78jXQ2k2qPu2xNX2326G2fbovV15\ns6PeJKJa5y6vbbtxYqPNiEJj4OPCzcjclZqNb75UuHgHQNW6iDTfd0t71E4Tt7nAtTastaRrMqAN\nnK9S3rxH6M1YeDc0KMZVXO7bjgCsvWq4oTVHX9evti9vbX9zKtArnCz4tlFrD7fao7gjPqpZG7bA\n1TYoQhsOd33Qq5TX5kmck3iPtJuuo8kKuhhL682thZvxcOv1afOwvTMQah2a5lebr1t7Y8tZW6uw\ndc1q3n8jwFpXxlcpb+2ou5gGnYhqygBdj292YitUane23tA6qF1TZMvyDc3efMPXi7Z5i81g26na\n7Tvtxoe+zv7fsBzsizqlvjjaD9d3tLWg1Nge1QRJnP24uZbUeF2tPL7oyr8X31aLh9lQT62L+c1t\npZxzSZKE7KKSTnSn0CCsT/pCFKEcBqXL5NLcUNVu2HLZ6ur/+Ieb8xC2ZlXYsEzfjrcopeTwoZBB\nMWT83S/dvsbauzU3TrXe39xNrTW3LmYbevPVF9SvO23unO1Xjdv15Jb9vCt/eIM87RZ0S0RxG2EL\nXoQOLtRkJl01x93aXPliHNbQ+6a7+m6pdeWOu6IrPqq1qtrFluXN69Y1FG3j2HV/7Xqb+1vLa7l4\n745ugyhpWe2Umg34aX1P7iBshGvrx+b4NUcO3wBQxW9a0+x1xUdtrqR20Vre1c+bUbdhHDc8fcNo\nvsoqsF+6JY9qPQ8q7q/4zlo/ohtON37bdX/XwDTb825T61ISvsLW5uxdJyja+rl1ddtyHGvP6rru\nuh/dq+qGLtoL3V7qC1bd2O21tYPQNum3ye9XK28OSWvN3L1GvsPQqk212DzYFR+1TZ2tP2md3/FX\nG37YNY6bH9R1vSXgX+fo31LqCz3SFRnV2rmt9+x63WzDhjHeMFrvKoUOad048db6iZ1mbfN6M2fo\nGsfN92944o0cqfl2YbnZb/+/qmYifGxlJje+MzrWqg3l6FhyugDzDQFS82Vb+23XCbR9r96in7dk\nHVsO9PYPvdMpsVW+vtAOCYtKkkTMJhKKIwcl1X4YSrrsVLXeCeWt5wOgYV+q1dDkfq0nsjVrfuMe\nfbW0e10eq6Gk6/woydEXIqxwPXndBqTVQuCa3KPW4Fr55nTctZfitlipZj219TdOry+1hRK5bYNu\nrNZXVVXJeZwA5Fy8vQ/ozjwqvEOgkPA1vqGVZXcx9w0g6WLZXW3b8s53lTbzKHSzKe62z3bVv+W3\nXQLblqJH855bM5nXMxl2RlSs34sRhTYkbIAZ2paTDZW0VtjsqS4G+Bq68s1Sk0s0FRJdbuZdLrNd\n4tYGMWzDoNw4BzaUowOBrSJPVzley0x4pX0UtpjotZHu4lGt7L61Q5v3YOMS+A3BVWvvhbfuwsy+\n4qM28MZWOHU1dXN580SLnVrbbOpd0M6Iis+biNvdJZJ22aO64qm67kf3ClTrsm06+t2jriWpiZlt\nEspuCadmA1rvrK2MtyZ0zIrWNbT1ttcAqtvzqFqjY0t86zKzoTu4zR61+X60rY7NhjVH942rIu6U\nmnOLu4W6vcRH3dj/N2KDOzhS64h3jeyNDa5Ve3d0+31U0EygzU22+W6ti8SG/urq7taxvEUvv2PU\nXGjifPQ7MajN/dZavvl6A5e4kc/c+IiumtExhe6abqPr89cJ3aLdje+Mxpq0zf1dDdvc7NfQm28J\ntXKbbVR821S14RGtH1sHcfNXXTi8i57ZO21ClLVW7BvOuZDuzFo7mUwWi0W/35drieeRUJwwPCGN\nHjOXZZmmaZIkkiTNGMPM1tralqxLJGjt31phcxRrfXejsBev6K1d35W6sEa1sxhDPdJFckgU1mY6\nic+pqkqsfNbacCRX19mKIZY7Zi9a69akiBvy/t2Yl2/L8iaTaa6MW9qLWonXmQzjejY4+9ZOigk/\nka5eLpfe++Pj48ePH99Fsj5stvCGeCxmltkgMYiz2UxrfXp6aq2dzWZ5nt+7d2+xWISXjM8gzLIM\nUXiiMUZrXVVV6JqaiqLG7kJ75KwxdLPy2sWGGdn1vpsNMjVE3XiaaFBeh/aEi3gpEThJ3wYs3S45\n4wZuEN+z04kBW5a3fvuKWL1deWshES2Xy9FoNBgM8jxfLBZFUYQZuGs/b6YbzoqXeWOtlRYYYwaD\n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\n", - "prompt_number": 4, - "text": [ - "<IPython.core.display.Image at 0x2c5bb90>" - ] - } - ], - "prompt_number": 4 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "A flowcell\n", - "===\n", - "\n", - "This type of sequencer uses optics to read a DNA sequence." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/flowcell.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "iVBORw0KGgoAAAANSUhEUgAAARQAAAECCAMAAAAIIdjNAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAv1QTFRF\n/////f///P3/+f3/+fv99fv98/X67/H24+f119rk09bgz9Lb0dXe1dfi2t3l3eDm4ePn3+Hp4eXr\n5efr5efv5unv6evv7e7z7u/18fHz8fP38/X39fX59/f79/n7+fn7+/v98/n97/f96/X75u333eLx\nydDnsLbKpKzDoaWypqu3q7G7r7W/srfCtrrEuL3HvsLLwsbSwcXNur/KxsvVyc3XzNDYy9DarbK/\noKOusbO8rbC3v8PRxcnS4+bu5+rx6+319/v/6vP74eXxztPkyc3eq7G9qa674OPr6evx5vH70dfo\nytDhw8nTqay36u3z/f398ff97fX86ev22d/vw8fV5en1v8XS09nqzdHjrbC71dvqz9Xdx83Y9/3/\n2+Hv193tz9Xly9DeztLd3N/p7e/4nKK0l5+z7/L5mp+slpmnk5qt4ur23eHv09fl9ff72Nvo3+Px\n8/P4kJSgZWh2OjxICAoPU1Zi9ff53eXvkpajW19sIiUtDhAZKCo1R0tX3+z50trtwMnYjJCdFRkl\n1uf3xMrdvcPUmJynh4qazdTpwMbaLC86HB8qam1+4u/7zdjsv8jfrLTIpaq7fYKRusHXMDM9e36N\ntLzTjZasipCj19/xx87jkZep9/f5bXF/tLrLdXiFz9Xju8HRoKe7gYWRcHOBeHuIv8XV+fn9193r\nOkNbdHmK2+n34+rzz+L1nKfCcXaHyN3xu8Pb2t3pwNfvw9nxuNHtss3rrMnpr8roqsfpqMTmpMPm\nn8DkmLrhz9PhlbXe9fX329/tjbHd3+Pu0dXlg6radqPVcp7SbJrQaJbNc3yWYpHL5OfxhaTSYY3H\nWorHS4HBtsDaPHK6Rni91dvtM2u2SX3AWILALGizvMvmqbXUd4qxQGiqL06SPV2eLDtySFiHdpnL\nG1ytIixOKGKvJVik093vtMXkobDQh5e6t8nmZXWbIk6Vp73gmazTfpG2jZ/EXW6aWGmTxtLp2OHy\nbn6lvs3o9fX7vMbh5ef12+Hp5+3z9ff9YANK7gAAAAFiS0dELlTTEIcAAAAJcEhZcwAAAEgAAABI\n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\n", - "prompt_number": 5, - "text": [ - "<IPython.core.display.Image at 0x2c5bbd0>" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "A tile\n", - "===\n", - "\n", - "The sequencer essentially takes pictures." - ] - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "Image(filename='images/tile.png')" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "png": "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\nqu8dHxuvISLa7XYcx8ycJEkdLa8z6nVQfTAYxHE8OTlZFR5kec+F6tprp6amHIQBBheqMlHwW7/6\n66Pe8Od//u2N9KKllcb1N3zPtgsuPXjf/s//6+cSrYJ1J44fLkf9//X23xjvJG/7hV9iDzfeeOOz\nn/fsH/+Jn/jwhz+8stJ1la+rAGqgLq01IR0+fPgf/uEf3vnOd15+2eWNRuNFL3rRxz/+8d/93d+9\n8MILFak777zz8OHDF1xwwQ033KAVKaWe++xn//RP/qSrPBEqUREZg6ACz0yMNyPFbEF82tDbd7Q2\nbY5JcVnlgb3CjoQEQRGBCISAHBRwKuAE3KmKsfq/2vj9lrW0CAgoACAFwMDgdQTjU9ToFILsbEtL\nx4YljpZNSxpTx4wZJ4JTjSN1byABQGErIIjiWEQuu/KysiwPHj6UtJvJbOfHX/WWxrY0mun87p/8\nwcGbj7/4pS/fNLNp8eSx//E//sctt97OAM1mOsqKOI6NMZFa6zqcm5urORkAjh07VhTF8vKyiChC\npdTqykptyK2uBCIqioI8hcD9/qCqKmYerWTzx+btIE/1RUVW9ot+XpUeQqvVXF5eNsbURsGNN974\nile84u1vf/tNN90UNZIqy/70j/7o3e/+7S1bN6+srBDB4uJinaxChG63G0XRoUOHqqpK4mQwHBht\n4jjOi3ysM9Yf9N/ylrf0Q/8VL3317fd9pZnqGz/zsR974+vvufcYQLyyslJnYuvzsX///s997nPP\nfe5zL7rkkre97W3XX3/9D7/+9fPz84g4Go327t378pe//KXf8z17b70lz/Nt27bdfPPNP//zP9/v\nDxu6tbS09O7//Tvvf//7f/FX/8cLvut5r/7+V//xn/7RG97whre+9S2f+cxn9u9/YNeuXTMzm//7\nm38iTdMa2rm7vBxFUd18m8RJlmV33nnnz/3cz73whS98zWteIyJpmh45cuR7v/d7syyrn9e5tYrX\nKIqIaHl5+W1ve9t73vOenTt3AsDdd9/9ute9zlrrSW674/ZWp33bnXecPH5idnY2ieNf+7VfExHr\nbF0a2Gq1ELHf7xPROlBebYTXbVhLS0uNmJI4f8YLnrBl59b3vf+fjx2566KdVxgF4Jp/+zd/Fyf0\n2+/4w5u/dlPSxKIsP/axm378R143Wl2NlFYKB8ur7/jNX3/rW9+6srLyr5/810ipj/zth3/4B36Q\n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\nb/qmmauc/T/GCCCmCOC55577Z//sn/V6vR/7sR/b2Ni4cOHCY4899p73vOfo0aMf/OAHL6+tPfzw\nw7/7u7973333ee8BPPvss88+++yf+TN/xhgOITDzXXfd9dM//dNnz5174oknLly48NBDD33kIx+5\n4447irwwxvzIj/zIJz/5yT/9p//0rbfe+tJLL126dOm2225rfMic/fr3fN0v/uIvXrhw4bnnnnv4\nkY9/+CO/IRht7150eVpYyn7113/hsccfLoriO77tO55/9rlPfepT58+d+6mf+qnF+QXfNHkm/Z75\n9GMP/dzP/eTv/O77X3rpiXNnn/iKd9znadJaSN0jZnBLZ+H2XvuEcyscWw0RichsuBf4QzpD/zWC\nORsaribcpBydLua7rU6eGcW+D1OJUfWKIAyUPoex5zq89BeOugkhhBiTRkFSVV/F/fXxxumNacpq\naisvCi1UZTbci9XUI1zHc/tj76UBqIogZDaLsXXubFVOt59+Is53U0jNcDwdj9zGBpyZB4NSCoZn\nWoQKH4m2Cc8mndS+3XRffNHC6BD5E1uLnI4MFm6S0eT4seLChWeF1jTbffe7H/jhf/a3q73tf/N/\n/KRNttoe3X7nndJUuaLeHwYTiwzD4dBX1ZHjx6+SEcxaPpl1zjpjzPLy8ld/9Ve/973vBfD+97//\nT3/DNzjnfvInf/LFF19smuY//cf/+M3f8i1z8/Pf+q3f+sILL5RVPTc3Z6y96utOnjz5q7/6q7ec\nOvXYo4/+g3/wD5599tkf+qEf+qqv+qqPfPTDDz744JkzZ++6+475hcEv/OLPP/XUU7/x/l//5V/6\nD0888UTm7Nd+7df+8i//Mln7T3/oh/7dv/t33/CNX/8//vW//c3f8uX/v/deyPL+3Hy85dR8ipO/\n9QN/4zV33fn+97/vXe9618qR1a9+1zve8MbX/eZvfjBE/NiP/+9//+/94M/89P+9vDj3jne+9Su+\n8g133nnyya0nFk8WFClbXphfXvG1b4bl+LlR8UIxmUzk6nDCq+efr5iQ3/FyuUyDMXpbbS7bshOm\nF6fPlX49zTSgwSmBhYjC9c8afM76w4koyJGJgBBEI4VR2Hpx77mM7mzdUe/nZGwqs+El3jubm/Fq\nHpYVpcKDBHKAUwQJKH6+YuYfe5MWARswmkSRODVeL10OW5v7WWsBJFXNAAQFWxvDxFASdU4pU42C\n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\n", - "prompt_number": 6, - "text": [ - "<IPython.core.display.Image at 0x2c5bcd0>" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "The assignment\n", - "===\n", - "\n", - "You can find a new folder named **make_fastq** in the **course-assignments** repository on the gitlab server:\n", - "\n", - "https://git.lumc.nl/humgen/course-assignments/tree/master/make_fastq\n", - "\n", - "In this folder you will find a file named **sequencer.py**. This is a module that should not be altered. Please edit the file **make_fastq.py**\n", - "for this assignment.\n", - "\n", - "If you iterate over the Sequencer object, you will get a list of tiles.\n", - "\n", - "* Convert this list to a list of reads and quality scores.\n", - "* Calculate the average quality score of each read.\n", - "* Trim reads that end with low quality scores." - ] - } - ], - "metadata": {} - } - ] -} \ No newline at end of file diff --git a/sequencer_old.py b/sequencer_old.py deleted file mode 100644 index 39ceeb3482f232668b5c66b2073e44f32938734c..0000000000000000000000000000000000000000 --- a/sequencer_old.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env python - -import random - -class Sequence(object): - bases = ['A', 'C', 'G', 'T'] - - def __init__(self, spots, readlength=100): - self.cycle = 0 - self.readlength = readlength - self.spots = spots - - def __iter__(self): - return self - - def __len__(self): - return self.readlength - - def next(self): - self.cycle += 1 - if self.cycle > self.readlength: - raise StopIteration - - tile = [] - for _ in range(self.spots): - nucleotide = self.bases[random.randrange(4)] - quality = 40 - (self.cycle * random.randrange(40) / - self.readlength) - tile.append((nucleotide, quality)) - - return tile - -class Read(object): - def __init__(self): - self.read = [] - self.qual = [] - - def __str__(self): - return "".join(self.read) - - def append(self, base): - self.read.append(base[0]) - self.qual.append(base[1]) - - def quality(self): - return sum(self.qual) / len(self.read) - - def trim(self, score): - for position in range(len(self.read) - 1, -1, -1): - if self.qual[position] >= score: - self.read = self.read[:position + 1] - self.qual = self.qual[:position + 1] - break - -def with_class(): - spots = 2 - run = Sequence(spots) - - reads = [Read() for _ in range(spots)] - for tile in run: - for read_id, base in enumerate(tile): - reads[read_id].append(base) - - for i in reads: - print i, i.quality() - i.trim(39) - print i, i.quality() - -def quality(quals): - return sum(quals) / len(quals) - -def trim(read, quals, score): - for position in range(len(read) - 1, 0, -1): - if quals[position] >= score: - return read[:position + 1], quals[:position + 1] - -def without_class(): - spots = 2 - run = Sequence(spots) - - reads = ["" for _ in range(spots)] - quals = [[] for _ in range(spots)] - for tile in run: - for read_id, base in enumerate(tile): - reads[read_id] += base[0] - quals[read_id].append(base[1]) - - for read_id, read in enumerate(reads): - print read, quality(quals[read_id]) - read, quals[read_id] = trim(read, quals[read_id], 39) - print read, quality(quals[read_id]) - -if __name__ == "__main__": - #without_class() - with_class() diff --git a/styles/custom.css b/styles/custom.css index aee84fdd3fa6e4bb4c216b80f1ed5bdb98919942..2bfc5ba144979594e9c70763a667633d278f2254 100644 --- a/styles/custom.css +++ b/styles/custom.css @@ -1,5 +1,5 @@ /* Remove the vertical scrollbar added by nbconvert. */ -.reveal { +html { overflow-y: hidden; }