Skip to content

Instantly share code, notes, and snippets.

@kljensen
Created October 18, 2013 19:36
Show Gist options
  • Select an option

  • Save kljensen/7046910 to your computer and use it in GitHub Desktop.

Select an option

Save kljensen/7046910 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from pandas.io.parsers import ExcelFile\n",
"from scipy.cluster import hierarchy\n",
"import pylab\n",
"import numpy\n",
"from sklearn.decomposition import PCA\n",
"from prettyplotlib import plt\n",
"import prettyplotlib as ppl\n",
"plt.rcParams['figure.figsize'] = 10, 8\n",
"\n",
"def read_data(filename):\n",
" \"\"\" Read in a file and log2 transform it\n",
" \"\"\"\n",
" xls = ExcelFile(filename)\n",
" data = xls.parse('lps_norm_1cell')\n",
" del data['cell_count']\n",
" data = (data + 1).apply(numpy.log2)\n",
" return data\n",
"\n",
"\n",
"def make_linkage(D, method='weighted', metric='correlation'):\n",
" \"\"\" Make a linkage array\n",
" \"\"\"\n",
" l = hierarchy.linkage(D, method=method, metric=metric)\n",
"\n",
" # Due to large values in the data array, we get some floating\n",
" # point weirdness: very small negative values that should be\n",
" # zero.\n",
" return numpy.nan_to_num(l).clip(0)\n",
"\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"\n",
"# Grab the data\n",
"data = read_data(\"data/kathryn/output.xlsx\")\n",
"\n",
"# Make a blank figure\n",
"fig = pylab.figure()\n",
"\n",
"# Make the dendrogram on the left\n",
"#\n",
"ax1 = fig.add_axes([0.09, 0.1, 0.2, 0.6], frame_on=False)\n",
"# well_linkage = make_linkage(data)\n",
"well_linkage = make_linkage(data)\n",
"well_dendrogram = hierarchy.dendrogram(well_linkage, orientation='right')\n",
"ax1.set_xticks([])\n",
"ax1.set_yticks([])\n",
"\n",
"# Compute and plot second dendrogram.\n",
"#\n",
"ax2 = fig.add_axes([0.3, 0.71, 0.6, 0.2], frame_on=False)\n",
"signal_linkage = make_linkage(data.T)\n",
"signal_dendrogram = hierarchy.dendrogram(signal_linkage)\n",
"ax2.set_xticks([])\n",
"ax2.set_yticks([])\n",
"# import IPython; IPython.embed()\n",
"# ax2.set_xticklabels([data.columns[i] for i in signal_dendrogram['leaves']])\n",
"\n",
"# Plot distance matrix.\n",
"#\n",
"axmatrix = fig.add_axes([0.3, 0.1, 0.6, 0.6])\n",
"idx1 = well_dendrogram['leaves']\n",
"idx2 = signal_dendrogram['leaves']\n",
"im = axmatrix.matshow(\n",
" data.as_matrix()[idx1, :][:, idx2],\n",
" aspect='auto',\n",
" origin='lower'\n",
")\n",
"axmatrix.set_xticks([])\n",
"axmatrix.set_yticks([])\n",
"\n",
"# # Plot colorbar\n",
"# #\n",
"axcolor = fig.add_axes([0.91, 0.1, 0.02, 0.6])\n",
"pylab.colorbar(im, cax=axcolor)\n",
"\n",
"fig.show()\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/Users/kljensen/.virtualenvs/hackyale/lib/python2.7/site-packages/pandas/io/parsers.py:1980: FutureWarning: ExcelFile can now be imported from: pandas.io.excel\n",
" warn(\"ExcelFile can now be imported from: pandas.io.excel\", FutureWarning)\n",
"/Users/kljensen/.virtualenvs/hackyale/lib/python2.7/site-packages/matplotlib/figure.py:371: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure\n",
" \"matplotlib is currently using a non-GUI backend, \"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nVVVVtueee9rVV19tm222mVMbBL2EcJmJK8QlnHU3k6dI+snaQsT5qkhcGrZJdVcHeanu+vADue/J\nwQ5S3ee2udbgJ2vlvuvUQrHJLeWe/fsg1I/x7hCoG+DiMzbcXaqbF/wp4pGknPzdDKBpamqy++67\nzx577DHbbLPNbPLkyfboo4/aCSe43C9F0MucUsKbi7SGPDOzSeKB4DMjeMHt6kA7V7XNWm1ddHLg\nsFFOpIaTcOZMuc2t1ELxIuSjp8pde996l4bw5oIA50dwYmUu/WNTbZ7euu3bt69VV1fbmjVrrKqq\nytauXWv9+7vvPSLoZUwc78vGuexclDlxD6Bnv9r8GKnua3ZsxCMpwOV1CpW4dLvwWr3JkTcVNxQA\nKIavPXrbbrutfec737H6+nqrqamxUaNG2SGHHOLcDkEPsu4CXVdXqST5ehXbNe4B9OxFGx73EHrm\nEPRGHSoWjhTLcnrft587XivkVCkAD9RTt8sXLrePFi3f8OMvN2389fW9996zu+++255++mnbaqut\n7MILL7T58+fbmDH6gSczgh4cuOwjrErwQY4/XCa+szU92nEUou6ni5V6WNNM36g+TCt78kJ95np7\nW95zkZmZDZbbBIBSbT9ye9t+5BebOwfcuPFdjK+99podcMABVltba2ZmRx55pL300ksEPcQv19ho\nmyd4Rm+fr74d9xCy4V69dIV4fqHuVa3uyDscXl6Rr9w7WG8TALrha+l2t912s5/+9Ke2du1a23zz\nze25556zoUOHOrdD0INEfdIs19hoa1pbk31YQ5w1MpdntirR1g6l4hu26lUoKxxexqjjsxyAMvJ1\nvcpee+1lxx13nI0dO9aqqqps7733tnHjxjm3w6dASJTDFu17+HxcExOpK8W6OyIdRfpp50XMzKz3\nbX677u3ymWuI374BoFwmTZpkkyZNKqkNgh68aA95Ha93SWrgW9sn7hFkhMM3rPMXa3VjLtPqGhxm\nW8ewUg+gjHxdr+JLckaCxOl8yla5oy+O611c1Xw97hF49KO8Xvt9h1qFwwMIa9TCl7Uy8XDuevu5\nFANAaXgCDRsk/f65jsuwQUNDwRDX/rF0DIJJndFb8myMnf9JvFR1d/EyYt/hzYX+KIftpBaKs639\nXa7IecOhFgBKpF6vUi4EvRh1DlJplPSw2pU4c15+8PekupdC7cTIw8EfSxlOaVbopUvVQvEz0utL\n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\nSUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x108374350>"
]
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment