{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Old way" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import prettyplotlib as ppl\n", "from prettyplotlib import brewer2mpl\n", "import matplotlib.pyplot as plt\n", "from prettyplotlib.utils import remove_chartjunk\n", "\n", "set2 = brewer2mpl.get_map('Set2', 'qualitative', 7).mpl_colors\n", "\n", "fig, axes = plt.subplots(nrows=4, figsize=(6,8))\n", "\n", "# from sRGB\n", "colors = {'A':tuple(np.array([62, 169, 226])/255.0),\n", " 'C':tuple(np.array([239, 99, 76])/255.0),\n", " 'G':tuple(np.array([7, 198, 172])/255.0),\n", " 'T':tuple(np.array([247, 171, 17])/255.0)}\n", "\n", "entire_strand = {'C':427419, 'G':413241, 'A':491488, 'T':491363}\n", "reverse_half = {'C': 219518, 'G':201634, 'A':243963, 'T':246641}\n", "forward_half = {'C': 207901, 'G':211607, 'A':247525, 'T':244722}\n", "\n", "strands = {'Entire strand':entire_strand, \n", " 'Reverse half-strand':reverse_half, \n", " 'Forward half-strand':forward_half}\n", "\n", "xticks = np.arange(4)\n", "nucleotides = ['C', 'G', 'A', 'T']\n", "\n", "annotate_yrange_factor = 0.03\n", "\n", "for i, strand_pair in enumerate(strands.iteritems()):\n", " title, strand = strand_pair\n", " ax = axes[i]\n", " ax.bar(left=xticks-0.4, \n", " height=[strand[nucleotide] for nucleotide in nucleotides], \n", " linewidth=0, color=[colors[nucleotide] for nucleotide in nucleotides])\n", " ax.set_xlim(xticks[0]-0.5, xticks[-1]+0.5)\n", " ax.grid(axis='y', color='white', linestyle='-', linewidth=0.5)\n", " remove_chartjunk(ax, ['top', 'left', 'right']) #, remove_ticklabels='y')\n", " ax.set_xticks(xticks)\n", " ax.set_xticklabels(nucleotides, fontsize=14)\n", " ax.set_title(title)\n", " \n", " if i == 0:\n", " # If this is the first plot, then save these ylims\n", " ylim = ax.get_ylim()\n", " \n", " # Add an extra 10% for padding\n", " ylim = [ylim[0], ylim[1]*1.1]\n", "# else:\n", " ax.set_ylim(ylim)\n", " \n", "# ylim = ax.get_ylim()\n", " yrange = ylim[1] - ylim[0]\n", " offset = yrange*annotate_yrange_factor\n", " \n", " # add the actual numbers\n", " for j, nucleotide in enumerate(nucleotides):\n", " height = strand[nucleotide]\n", " ax.annotate(r'%d' % height, (j, height+ offset),\n", " verticalalignment='bottom',\n", " horizontalalignment='center', fontsize=12)#, color='white')\n", " \n", "prev_xlim = ax.get_xlim()\n", "\n", "ax = axes[-1]\n", "ax.hlines(y=0, xmin=prev_xlim[0], xmax=prev_xlim[-1], colors='grey')\n", "deltas = [forward_half[nucleotide] - reverse_half[nucleotide] for nucleotide in nucleotides]\n", "\n", "ax.bar(left=xticks-0.4, \n", " height=deltas, \n", " linewidth=0, color=[colors[nucleotide] for nucleotide in nucleotides])\n", "ax.set_xlim(xticks[0]-0.5, xticks[-1]+0.5)\n", "ax.grid(axis='y', color='white', linestyle='-', linewidth=0.5)\n", "remove_chartjunk(ax, ['top', 'left', 'right', 'bottom']) #, remove_ticklabels='y')\n", "\n", "ylim = ax.get_ylim()\n", "max_abs_ylim = max(map(abs, ylim))\n", "ylim = (-max_abs_ylim, max_abs_ylim)\n", "ax.set_ylim(ylim)\n", "yrange = ylim[1] - ylim[0]\n", "offset_value = yrange*annotate_yrange_factor\n", "\n", "print offset_value\n", "\n", "for j, delta in enumerate(deltas):\n", "# height = strand[nucleotide]\n", " if delta >= 0:\n", " offset = offset_value\n", " verticalalignment = 'bottom'\n", " else:\n", " offset = -offset_value\n", " verticalalignment = 'top'\n", " ax.annotate(r'%d' % delta, (j, delta + offset),\n", " verticalalignment=verticalalignment,\n", " horizontalalignment='center', fontsize=12)#, color='white')\n", "\n", "ax.set_xticks(xticks)\n", "ax.set_xticklabels(nucleotides, fontsize=14)\n", "ax.set_title('Difference in nucleotide counts: (Forward - Reverse)')\n", "\n", "# Increase space between subplots\n", "fig.subplots_adjust(hspace=0.75)\n", "\n", "fig.savefig('bar_nucleotide_counts.png')\n", "fig.savefig('bar_nucleotide_counts.pdf')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "900.0\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nJqPS0lJasGABvfPOO1RRUUEVFRV07NgxIiKqrKykl156iZYuXUqPHj2i69evk62tLe3fv7/W8YSE\nhJCxsTH9+eefVFFRQePGjaPAwEChfNOmTZSfn0+VlZX05ZdfkpmZGZWXlxMR0ccff0zjx48X9hWJ\nRHTt2rVa3+f777+nkSNHUmlpKcnlcjpz5gwVFRUREZGnpydFRUUp7C8Sicjb25sKCgqorKxMpb60\nb9+e9u3bR3K5nP773/9Snz59iIiovLycrK2t6ZtvvqGKigqKi4sjLS0tWrRoUT1/adbScHBgzcrG\nxoZ0dXVJLBaTSCQiPz8/qqysJCKiiIgICg4OVtjf5/+xd+dxUVX//8Bfg6CgDAz7vgqIICgJuOUu\nmyVqJIKKiKaJlVsfP2rfzKVSrGwxo1JRET+Ka2ouiKloUUG55EIqKshOCMgiO/P+/cGPG+OAojAi\n+H4+Hj4ezjn33DnnMnPfc8+99329vCgyMpKIiKZMmUKrVq0iIqKbN2+SWCwWdpbdunWT2bH++uuv\nZGVlRUR1waFz587CjpCI6IMPPqCxY8fSrVu3ZN7v999/J3Nzc5my1atXU0hISKPjmTZtGs2cOVN4\nfezYMbK3t29y/FpaWnT58mUierLgsGXLFho4cKDQtqFhw4bR5s2bZcpEIhGdOXOmyX401hcPDw+h\n7tq1a6SmpkZERGfPniVjY2OZtgMHDuTg0MHwtBJrUyKRCIcOHUJxcTHi4uJw+vRp/PnnnwCAu3fv\nYu/evdDS0hL+xcfHIycnBwAwadIk7Nq1CwCwc+dOjB8/HqqqqsjLy0NZWRn69u0rtPPx8cG9e/eE\n99XT00Pnzp2F14sWLYKNjQ08PT3RvXt3rF27VuhDVlaWTB/WrFmDf/75p8kxGRgYCP9XU1NDaWmp\n8Pqzzz6Dg4MDJBIJtLS0UFRUJNOvpqirq0MsFkNDQwMZGRkICgqCl5cXAgICYGJigsWLF8ucS2js\nvIOZmZnM68f1peE4unbtioqKCkilUmRlZcHExERmXRYWFnzOoYNRbusOMFZvyJAheOedd7B48WKc\nOXMG5ubmCAoKwsaNGxtdftSoUcjLy8Nff/2F6OhofPnllwAAXV1dqKmpISkpCUZGRo22fXjnqa6u\njs8++wyfffYZrl27hhEjRsDNzQ3m5uawsrLCzZs3Wzy+n3/+GZ9++ilOnz4NR0dHAIC2tnazdqoN\n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\nv79MCp/bt29j3759MDY2lml77949+Pj4IDQ0FAUFBbh9+zY8PT2F+s2bN2PLli04duwYSktLcfTo\nUejq6sqs45dffsGdO3fkbgXQ0dHBwoULsWTJEgWMuhmIMdauPHjwgFasWEF3794lIqIjR46QWCym\n1NRUYZlbt26Rk5MTmZiY0KlTp4Ty27dvU0FBARERFRQU0IgRI2jx4sVERJSfn0/a2tq0b98+kkql\ntGPHDtLS0qLCwkKh/csvv0zvvvsuFRcXU01NDV26dEmou379OpWUlBARUWZmJjk6OtK3336ruA2h\nQM7OznTgwAHhtbe3Nx07dowsLS1ltufSpUtp6tSpja6jtraWTE1N6fTp002+T3V1Nbm4uNDly5dJ\nJBLR7du35ZbZtGkTDRs2rAWjeTrNOnKoqKhAv3790KdPHzg4OGDp0qUAOPEeY22ha9euWL58OczN\nzQEAr7zyCqysrHDhwgVhmbfffhtr166FioqKTFtra2toaWkBAKRSKZSUlGBkZASg7qjB0NAQfn5+\nEIlEmDx5MvT09HDgwAEAQGxsLDIyMvDJJ59ALBajU6dO6N27t7DuHj16QF1dHQBARDLrbk9yc3Nx\n8+ZNODo6AgD27t0LVVVV+Pj4yC2bkJAALS0tDBo0CAYGBvD19RXuy8rIyEBmZiauXLkCc3NzWFtb\nY8WKFTI3En/xxRcYOnQonJycns3gnkRzo8iDBw+IqC7S9evXj37++WdatGgRrV27loiIwsLChF8g\n165do969e1NVVRWlpKRQ9+7dSSqVEhGRm5sbJSQkEBGRj48PHT9+nIiIvvnmGwoNDSUioujoaJo4\ncSIR1f2asba2psLCQiosLBT+r0iVlZU0ffp0srCwILFYTH369BH6WVVVRX5+fmRpaUkikYji4uJk\n2hYWFtLUqVNJX1+f9PX1acWKFTL1FhYWpKamRurq6qSurk5eXl5CXXZ2No0ZM4aMjY1JJBIJvwzr\nFRUV0eTJk0lXV5d0dXVp8uTJVFxcrKCtwNqLnJwcUlVVpRs3bhAR0Z49e2jcuHFERHK/dImI/ve/\n/5GGhgaJRCIKDAwUyn/88UdycHCQWdbGxoYWLlxIREQrV64kLy8vmjJlCuno6JCbmxudPXtWZvk1\na9aQuro6iUQiWrp0aauPVdGqqqpo5MiRNHv2bCIiKi4uJltbW+G7+PD2tLW1JYlEQn/++SdVVFTQ\n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\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "import prettyplotlib as ppl\n", "import matplotlib.pyplot as plt\n", "\n", "fig, axes = plt.subplots(nrows=4, figsize=(6,8))\n", "\n", "# This is the order we want to plot them, too\n", "nucleotides = ['C', 'G', 'A', 'T']\n", "\n", "colors = {nucleotide: ppl.colors.set2[i] for i, nucleotide in enumerate(nucleotides)}\n", "\n", "entire_strand = {'C':427419, 'G':413241, 'A':491488, 'T':491363}\n", "reverse_half = {'C': 219518, 'G':201634, 'A':243963, 'T':246641}\n", "forward_half = {'C': 207901, 'G':211607, 'A':247525, 'T':244722}\n", "skew = {nucleotide: forward_half[nucleotide] - reverse_half[nucleotide] for nucleotide in nucleotides}\n", "\n", "strands = {'Entire strand':entire_strand, \n", " 'Reverse half-strand':reverse_half, \n", " 'Forward half-strand':forward_half,\n", " 'Forward - Reverse':skew}\n", "\n", "# The order that we want to plot the strand data in:\n", "strand_names_ordered = ['Entire strand', 'Forward half-strand', 'Reverse half-strand', 'Forward - Reverse']\n", "\n", "left = range(len(nucleotides))\n", "for ax, strand_name in zip(axes, strand_names_ordered):\n", " strand_data = strands[strand_name]\n", " ppl.bar(ax, left=left, \n", " height=[strand_data[nucleotide] for nucleotide in nucleotides], \n", " annotate=True, \n", " xticklabels=nucleotides, \n", " grid='y', \n", " color=[colors[nucleotide] for nucleotide in nucleotides])\n", " ax.set_title(strand_name)\n", " \n", "# Tell matplotlib to smartly lay out our figure\n", "fig.tight_layout()\n", "fig.savefig('bar_nucleotide_counts.png')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "import prettyplotlib as ppl\n", "import matplotlib.pyplot as plt\n", "\n", "fig, axes = plt.subplots(nrows=4, figsize=(6,8))\n", "\n", "# This is the order we want to plot them, too\n", "nucleotides = ['C', 'G', 'A', 'T']\n", "\n", "colors = {nucleotide: ppl.colors.set2[i] for i, nucleotide in enumerate(nucleotides)}\n", "\n", "entire_strand = {'C':427419, 'G':413241, 'A':491488, 'T':491363}\n", "reverse_half = {'C': 219518, 'G':201634, 'A':243963, 'T':246641}\n", "forward_half = {'C': 207901, 'G':211607, 'A':247525, 'T':244722}\n", "skew = {nucleotide: forward_half[nucleotide] - reverse_half[nucleotide] for nucleotide in nucleotides}\n", "\n", "strands = {'Entire strand':entire_strand, \n", " 'Reverse half-strand':reverse_half, \n", " 'Forward half-strand':forward_half,\n", " 'Forward - Reverse':skew}\n", "\n", "# The order that we want to plot the strand data in:\n", "strand_names_ordered = ['Entire strand', 'Forward half-strand', 'Reverse half-strand', 'Forward - Reverse']\n", "\n", "left = range(len(nucleotides))\n", "for ax, strand_name in zip(axes, strand_names_ordered):\n", " strand_data = strands[strand_name]\n", " ax.bar(ax, left=left, \n", " height=[strand_data[nucleotide] for nucleotide in nucleotides], \n", " annotate=True, \n", " xticklabels=nucleotides, \n", " grid='y', \n", " color=[colors[nucleotide] for nucleotide in nucleotides])\n", " ax.set_title(strand_name)\n", " \n", "# Tell matplotlib to smartly lay out our figure\n", "fig.tight_layout()\n", "fig.savefig('bar_nucleotide_counts.png')" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }