{ "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.3.5" }, "name": "", "signature": "sha256:86ea46d63774f17f2a9f6040d8d7cc5fa199b7c003df95a7cd2b4e9a73072bd7" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[![Py4Life](https://raw.githubusercontent.com/Py4Life/TAU2015/gh-pages/img/Py4Life-logo-small.png)](http://py4life.github.io/TAU2015/)\n", "\n", "## Exam - 4.8.2015\n", "\n", "### Tel-Aviv University / 0411-3122 / Spring 2015" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## General instructions\n", "* Exam duration: two hours (9:00-11:00)\n", "* Allowed material: \n", " * full access to the internet.\n", " * Personal laptops are allowed.\n", " * Email, phones, SMS, and messaging are prohibited.\n", " \n", "* Answer all three questions, in the dedicated boxes within the notebook.\n", "* The expected outputs are included. Try to replicate them with your code.\n", "* Make sure you follow the instructions and generate the outputs exactly as described.\n", "* __Exam submission__: Submit your exam __through Moodle__, in the dedicated place.\n", "* You can change your submission as many times as you wish, within the exam time limit.\n", "* Before making your final submission, __make sure all your solutions are there!__\n", "\n", "\n", "Good luck!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1) GC content\n", "\n", "In molecular biology and genetics, [GC-content](http://en.wikipedia.org/wiki/GC-content) is the percentage of bases on a DNA molecule that are either G or C (from a possibility of four different ones, also including A and T).\n", "\n", "In this question we want to calculate the GC content of a DNA sequence in a way that will allow us to see changes in GC content along the sequence. \n", "\n", "For this we will write a function that goes over a sequence and at each position `k` in the sequence it calculates the GC content of a small overlapping subseqeunce starting at position `k`. We call this subsequence a _window_ and so we are calculating the GC content using a sliding window.\n", "\n", "**a)** Write a function `calc_GC_content`. The arguments are `seq`, a string of the characters `AGCT` representing a DNA sequence; and `win_size`, an int specifiying the number of bases in the sliding window. The function will return a `list` of `float`s (each between 0 and 1). In this `list`, the `float` in index `k` will represent the GC-content of a subsequence of `seq` of length `win_size` starting at `k`." ] }, { "cell_type": "code", "collapsed": true, "input": [ "def calc_GC_content(seq, win_size=10):\n", " pass" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "dna_seq = 'ATGGTGCATCTGACTCCTGAGGAGAAGTCTGCCGTTACTGCCCTGTGGGGCAAGGTG'\n", "gc_values = calc_GC_content( dna_seq )\n", "assert gc_values[:10] == [0.5, 0.5, 0.6, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**b)** Now open the file `lec4_files/camelus.fasta`, read it as a text file, and save the last line which has the __camelus cytochrome b_ sequence into a variable called `dna_seq`. Then calculate the GC content by calling `calc_GC_content` with `dna_seq` and a windows size of 100." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "\n", "assert gc_values[:10] == [0.37, 0.38, 0.39, 0.38, 0.39, 0.38, 0.39, 0.39, 0.39, 0.39]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 38 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**c)** Next, plot the GC-content of the _camelus cytochrome b_ sequence. Don't forget axis labels!" ] }, { "cell_type": "code", "collapsed": true, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nnmrluV7ToQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2) Percent of coding regions\n", "In this question we will examine the ratio of coding and non-coding regions in different nucleotide sequences.\n", "\n", "__a)__ The strings in `mitochondrial_acc` represent GenBank accessions of complete mitochondrial genomes. Use the list to fetch each record from GB, like we did in [lecture 6](http://nbviewer.ipython.org/github/Py4Life/TAU2015/blob/master/lecture6.ipynb), and store them in a list, as `SeqRecord` objects." ] }, { "cell_type": "code", "collapsed": true, "input": [ "from Bio import SeqIO\n", "from Bio import Entrez\n", "import csv\n", "Entrez.email = 'A.N.Other@example.com'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "mitochondrial_acc = ['AJ489607','U03843','Y12025','AP008824','AB080276','AB079613']\n", "mitochondrial_records = []\n", "\n", "\n", "assert len(mitochondrial_records) == 6" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__b)__ Write a function that receives a `SeqRecord` object and returns the fraction of coding DNA in this record. Coding regions are the features of the record with type `gene`. Note that there could be many separate coding regions within a record. The function should return a `float`, representing the number of nucleotides belonging to coding regions. For example, if the whole sequence is 10,000 bp long, and there are 3 coding regions, each of 1,000 bp, than the function should return `0.3`." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def coding_fraction(gb_record):\n", " pass\n", "\n", "assert 0.899 < coding_fraction(mitochondrial_records[0]) < 0.9" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "__c)__ Use the records from section _a_ and the function from section _b_ to compare the fraction of coding DNA between the mitochondrial sequences of different organisms.\n", "\n", "Write the results to a CSV file (`Q2b.csv`). The file should have two columns: `organism` and `fraction_coding`, and each row should represent the result for one organism (one record). \n", "You can use the provided code to plot the results and check your answer." ] }, { "cell_type": "code", "collapsed": false, "input": [ "with open('Q2b.csv', 'w', newline='') as fo:\n", " pass" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "df = pd.read_csv(\"Q2b.csv\")\n", "df.plot(x='organism',y='fraction_coding',kind=\"bar\", legend=False)\n", "plt.xlabel('organism')\n", "plt.ylabel('Coding fraction')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 3) Body Temperature\n", "\n", "In this analysis we will compare the body temperature of animals to check if indeed there is such a thing as [warm-blooded](http://en.wikipedia.org/wiki/Warm-blooded) and cold-blooded animals.\n", "\n", "For this analysis we will load the [AnAge](http://genomics.senescence.info/download.html#anage) dataset that we used in [lecture 7](http://nbviewer.ipython.org/github/Py4Life/TAU2015/blob/master/lecture7.ipynb).\n", "\n", "First, import the neccesary libraries:" ] }, { "cell_type": "code", "collapsed": true, "input": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import scipy.stats\n", "import scipy.constants\n", "import pandas as pd\n", "import seaborn as sns\n", "import urllib\n", "import zipfile" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**a)** Get the zip file containing the data, extract it and read the data to a `DataFrame`. We are interested in the `Temperature (K)` column." ] }, { "cell_type": "code", "collapsed": false, "input": [ " " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "('anage_dataset.zip', )" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "assert data.shape == (4212, 31)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**b)** The temperatures are in Kelvin degrees and we like Celsius degrees, so use `scipy.constants.K2C` to transform the temperature to Celsius and save the result in **a new column**:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "assert data.shape == (4212, 32)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**c)** Plot a histogram of the temperature (in Celsius). Don't forget to use meaningful `bins`." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nYII=\n", "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**d)** Clean the data frame from rows with missing data in the temperature column You can find the rows that have missing data using `np.isfinite` which returns `False` for rows with infinite or NaN (missing) data." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "assert data.shape == (494, 32)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**e)** Count how many species we have in the data frame for each animal Class. Remove from the data classes with less than 10 species (you can do this manually by specifiyng the class names or automatically using the count you calculated)." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 49, "text": [ "Mammalia 457\n", "Amphibia 18\n", "Reptilia 16\n", "Aves 3\n", "dtype: int64" ] } ], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "assert data.shape == (491, 32)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 50 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**f)** Plot a separate histogram of the temperature for each animal Class. Use a [faceted figure](http://stanford.edu/~mwaskom/software/seaborn/examples/faceted_histogram.html). Don't forget axis labels, proper bins, and a reasonable figure size." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nimdNvre87EWSZpMtgX8rr5m+EbgyM6+NiHdHxLsByps6/TQi7qF45u97m0tXkqob2Mh0Zh7e5aUD\nBhVTkprQo96NvP5fRs2fCpw60KQkqUHlGTq7jbH83FHz768tKUmaYj7bVJIkSZKkimymJUmSJEmq\nyGZakiRJkqSKbKYlSZIkSarIZlqSJEmSpIpspiVJkiRJqshmWpIkSZKkimymJUmSJEmqyGZakiRJ\nkqSKbKYlSZIkSarIZlqSJEmSpIpspiVJkiRJqshmWpIkSZKkimymJUmSJEmqyGZakiRJkqSKbKYl\nSZIkSarIZlqSJEmSpIpspiVJkiRJqshmWpIkSZKkimymJUmSJEmqyGZakiRJkqSKbKYlSZIkSarI\nZlqSJEmSpIpspiVJkiRJqshmWpIkSZKkimymJUmSJEmqyGZakiRJkqSKbKYlSZIkSapog6YTkKSZ\nLiIuBA4G1mTmTuWyfwLmA48BPwGOzszflK+dCBwDPAF8IDO/2UjikiRJmjBHpiVp8i4CDhy17JvA\njpm5M5DAiQARsQPwZmCHcptzIsJaLEmSNMP4BU6SJikzbwB+PWrZNZn5ZDl7IzC3nD4EuCQz12Xm\nSuAeYM+6cpUkSdLU8DRvSRq8Y4BLyumtgO93vLYK2Lr2jCT1bf6ipe2xln/1zENbdeciSZo+HJmW\npAGKiP8OPJaZX+ix2phf1CVJkjR9OTItSQMSEUcBBwGv61h8HzCvY35uuWxc7Xa7sabb2MMXf1hj\njxV/weJlfa03iNh1abVajrJLUkU205I0ABFxIHA8sF9mPtrx0hXAFyLiTIrTu7cDftDPPpv6sttu\nt9vGHq74wxq7W/xup3lPdZ5NH/tUioh5wMXACynOvjkvM88etc7+wDLgp+WiyzPzY3XmKUmTYTMt\nSZMUEZcA+wGbR8S9wMkUd+/eCLgmIgC+l5nvzcwVEXEZsAJ4HHhvZnqat6TZZh3wocy8NSI2BW6O\niGsy865R612fmQsbyE+SJs1mWpImKTMPH2PxhT3WPxU4dXAZSVKzMvMB4IFy+qGIuIviBoyjm+lZ\nMRIvaTjZTEuSJGlgImJbYFeKxwR2agP7RMRtFPeO+HBmrqg5PUmaMO/mLUmSpIEoT/H+EnBcZj40\n6uVbgHmZuTPwSWBp3flJ0mQ4Mi1JkqQpFxEbApcDn8vMZzTKmfm7jumrI+KciHhBZj7YbZ/eZd7Y\n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\nAa7DhlrSLFOeun31qGXndkx/Gvh03XlJ0lRxZFqSalCe6rgrcCMwJzNXly+tBuY0lZckSZImxmZa\nkgYsIjYFLgeOy8zfdb6WmW36u+utJEmSphFP85akAYqIDSka6c9m5shjX1ZHxBaZ+UBEbAms6Wdf\nE7nL5FQx9vDFn62xFyxeNqhdT8rIMTf1vs+kG/5I0nRhMy1JAxIRLeACYEVmntXx0hXAkcBp5b99\nPVt1GO+sOayxm44/m2NP5Z1yp1Kr1Wo1/ZmTJFVjMy1Jg/NK4Ajg9ohYXi47Efg4cFlEHEv5aKxm\n0pMkSdJE2UxL0oBk5nfpfm+KA+rMRZIkSVPLG5BJkiRJklSRzbQkSZIkSRXZTEuSJEmSVJHNtCRJ\nkiRJFdlMS5IkSZJUkc20JEmSJEkV2UxLkiRJklSRz5kex/xFS9tjLf/qmYe26s5lpuj2nvVrweJl\nT+3D91mSVNVk/zskSVI/HJmWJEmSJKkim2lJkiRJkiqymZYkSZIkqSKbaUmSJEmSKrKZliRJkiSp\nIptpSZIkSZIqspmWJEmSJKkim2lJkiRJkiqymZYkSZIkqSKbaUmSJEmSKtqg6QQkSZImYv6ipe2m\nc5AkDS9HpiVJkiRJqshmWpIkSZKkimymJUmSJEmqyGZakiRJkqSKbKYlSZIkSarIu3lLkqRpzbt2\nS5KmI5tpSZKkhs1ftLS9YPGyMX84+OqZh7aayEmS1JuneUuSJEmSVJHNtCRJkiRJFTVymndEHAic\nBawPnJ+ZpzWRhyQ1yVooaTbrp8ZFxNnAG4FHgKMyc3m9WUrSxNU+Mh0R6wOfAg4EdgAOj4jt685D\nkppkLZQ0m/VT4yLiIOClmbkd8C7gM7UnKkmT0MRp3nsC92TmysxcB3wROKSBPCSpSdZCSbNZPzVu\nIbAEIDNvBDaLiDn1pilJE9dEM701cG/H/KpymSQNE2uhpNmsnxo31jpzB5yXJE2ZJpppnxUpSdZC\nSbNbvzVu9GO/rI2SZowmbkB2HzCvY34exS+RY2q1Wo09W7HJ2HXHr/oMy9n8zMth/cwNa+wGWQuN\nPW3jT7fYs/m/ObNYPzVu9Dpzy2Vjmm6fy2GJPxK7rv8f1hGn3xj9vu9TmfN0qHfT4fM2UzTRTN8E\nbBcR2wL3A28GDm8gD0lqkrVQ0mzWT427Ang/8MWI2BtYm5mra81Skiah9tO8M/NxisL5DWAFcGlm\n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\n", "text": [ "" ] } ], "prompt_number": 51 }, { "cell_type": "markdown", "metadata": {}, "source": [ "**g)** Perform a [t-test](http://iaingallagher.tumblr.com/post/50980987285/t-tests-in-python) to verify that the temperature of mammals is, on average, larger then the temperature of Amphibians. Print the P-value of the t-test." ] }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "print(\"P-value:\", p)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "P-value: 1.86679756815e-16\n" ] } ], "prompt_number": 52 } ], "metadata": {} } ] }