Skip to content

Instantly share code, notes, and snippets.

@jamesmcm
Created July 7, 2014 13:28
Show Gist options
  • Save jamesmcm/4a57b206171ed505c5a3 to your computer and use it in GitHub Desktop.
Save jamesmcm/4a57b206171ed505c5a3 to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:8f9e8b1dbcf53f6b2ac76f34bdff851edd2215c9bc8fcd57bf9d69bf7ba5bf33"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Write linear model to generate gene expression data from SNPs\n",
"%pylab inline\n",
"\n",
"import numpy as np\n",
"import GPy\n",
"import pylab as pb\n",
"#Columns are samples\n",
"X = np.genfromtxt('ALLsnpspanama.csv', delimiter=',')[1:,1:]\n",
"#Y = WX + N , W is sparse\n",
"print X.shape\n",
"#Use one SNP, MKT1\n",
"\n",
"\n",
"#parse SNPs\n",
"#(8000,13000)\n",
"ng=50\n",
"W=np.zeros((ng,13314))\n",
"W[:,[1000]]=5\n",
"W[:,[9000]]=4\n",
"W[:,[7000]]=3\n",
"W[:,[13000]]=2\n",
"W[:,[5]]=1\n",
"\n",
"Y=np.dot(W,X) + np.random.normal(size=(ng,182))\n",
"\n",
"print W[0, 1000]\n",
"print W[0, 999]\n",
"print np.dot(W,X).shape\n",
"print np.random.normal(size=(1,182)).shape\n",
"pb.matshow(Y)\n",
"pb.colorbar()\n",
"print Y.shape\n",
"pb.matshow(X[1000,:].reshape((1,182)))\n",
"pb.colorbar()\n",
"pb.matshow(X[453,:].reshape((1,182)))\n",
"pb.colorbar()\n",
"#fe=open(\"ALLexprpanama.csv\",\"r\")\n",
"\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n",
"(13314, 182)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"5.0"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"0.0\n",
"(50, 182)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"(1, 182)\n",
"(50, 182)"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"WARNING: pylab import has clobbered these variables: ['step']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"<matplotlib.colorbar.Colorbar instance at 0x45b0488>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x54a3c90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4456bd0>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAyYAAACICAYAAAASyf8xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFo9JREFUeJzt3X1sW9X9x/HPLXZL+vDrM6GxvbnFJnbVNhiSFtR1FMRI\nWwmvHRNKN41SsmJ1y4+hTWKMTRplCAhiE1vDpoDKQ7eRBmmsLlPionRLgaLWUFrgt3aQIgKOgYjQ\nhj6ENsTk90eLHdvXDyFJ3YX3SzpS7/XX59wmvkm++t5zjtHf398vAAAAACigMYW+AAAAAAAgMQEA\nAABQcCQmAAAAAAqOxAQAAABAwZGYAAAAACg4EhMAAAAABUdiAgAAAGBQbr75ZhUXF2v+/PkZY269\n9Va53W6VlZVp3759OfskMQEAAAAwKGvXrlUoFMr4elNTkw4dOqS2tjY98sgjWr9+fc4+SUwAAAAA\nDMqSJUs0derUjK9v27ZNa9askSQtWrRI3d3d6uzszNoniQkAAACAYRWNRuVwOOLHdrtdHR0dWd9D\nYgIAAABg2PX39ycdG4aRNZ7EBAAAAIAkqcgwZJi0SZMmDaofm82mSCQSP+7o6JDNZsv6HsuXumIA\nAAAAo85JSfeYnP/V8eOD6sfv96uurk5VVVXavXu3pkyZouLi4qzvITEBAAAAEPc/ecSsXr1aO3fu\nVFdXlxwOhzZs2KDPPvtMkhQIBLRixQo1NTXJ5XJpwoQJevzxx3P2afSnPvwFAAAA4CvJMAw9anJ+\nndLnjAw3KiYAAAAA4ooKNC6JCQAAAIC4fB7lGgmsygUAAAAgrsikmQmFQvJ4PHK73aqtrU17/ciR\nI1q1apXKysq0aNEi/fvf/846LokJAAAAgLh8EpNYLKaamhqFQiEdOHBADQ0NOnjwYFLMvffeq0sv\nvVSvvfaaNm/erJ/85CdZxyUxAQAAABCXT2ISDoflcrnkdDpltVpVVVWlYDCYFHPw4EFdddVVkqTS\n0lK1t7fro48+yjguiQkAAACAuEkmLVU0GpXD4Ygf2+12RaPRpJiysjI988wzkk4nMu+++646Ojoy\njktiAgAAACBuvElLZRhGzn7uuOMOdXd3y+fzqa6uTj6fT+edd17GeFblAgAAABBXZJFe/FzaNXDb\nkpQtTGw2myKRSPw4EonIbrcnxUyaNEmPPfZY/Hj27NmaM2dOxnHZYBEAAACApNOVkN7J6efHfpK8\nwWJfX59KS0u1Y8cOlZSUaOHChWpoaJDX643HfPLJJyoqKtLYsWP16KOPateuXXriiScyjk3FBAAA\nAECcdVzuGIvForq6OlVWVioWi6m6ulper1f19fWSpEAgoAMHDuimm26SYRiaN2+eNm3alLVPKiYA\nAAAAJJ2umPR/zeT8e8kVk5FAxQQAAABAQh4Vk5FAYgIAAAAgYUJhhiUxAQAAAJBwfmGGZR8TAAAA\nAAnjTJqJUCgkj8cjt9ut2tratNe7urq0bNkyXXLJJZo3b17WFbkkJr8DAAAAOMMwDPWvMDnflDz5\nPRaLqbS0VC0tLbLZbKqoqEhbLviuu+7SqVOndN9996mrq0ulpaXq7OyUxWL+0BYVEwAAAAAJ55u0\nFOFwWC6XS06nU1arVVVVVQoGg0kxs2bN0tGjRyVJR48e1fTp0zMmJRJzTAAAAAAMlMeqXNFoVA6H\nI35st9u1Z8+epJh169bp6quvVklJiY4dO6ann346a59UTAAAAAAkTDBpKQzDyNnNvffeq0suuUTv\nv/++9u/frx//+Mc6duxYxngqJgAAAAASzpdaO6TWaOYQm82mSCQSP45EIrLb7UkxL730kn75y19K\nki666CLNnj1bb775psrLy037JDEBAAAAkDBOWnrR6faFDS8nh5SXl6utrU3t7e0qKSlRY2OjGhoa\nkmI8Ho9aWlq0ePFidXZ26s0339ScOXMyDktiAgAAACAhjzkmFotFdXV1qqysVCwWU3V1tbxer+rr\n6yVJgUBAd955p9auXauysjJ9/vnneuCBBzRt2rSMfbJcMAAAAABJZ5YLvtfk/J3JywWPBComAAAA\nABLyqJiMBBITAAAAAAkFSkxYLhgAAABAQh7LBUtSKBSSx+OR2+1WbW1t2usPPvigfD6ffD6f5s+f\nL4vFou7u7ozDMscEAAAAgKQzc0waTM6vTp5jEovFVFpaqpaWFtlsNlVUVKihoUFer9e033/84x96\n6KGH1NLSknFsKiYAAAAAEsaZtBThcFgul0tOp1NWq1VVVVUKBoMZu3zqqae0evXqrMOSmAAAAABI\nON+kpYhGo3I4HPFju92uaNR8R8aenh5t375d119/fdZhmfwOAAAAICHDnJKBDMPIu7tnn31W3/jG\nNzRlypSscSQmAAAAABLGSa17pdZXM4fYbDZFIpH4cSQSkd1uN43dsmVLzse4JCa/AwAAADjDMAz1\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x4460b90>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Do GPy ML based regression\n",
"#Start with no SNPs, add SNPs by greedy forward selection - add best SNP at each step, is there a maxima?\n",
"#Y ~ N(0, s^2 XX^T + e^2 I )\n",
"\n",
"X=X.transpose()\n",
"Y=Y.transpose()\n",
"print X.shape\n",
"#Y=Y.reshape((182,1))\n",
"print Y.shape\n",
"chosenSNPS=[]\n",
"X2=np.zeros((182,0))\n",
"print X2.shape\n",
"print X2.dtype\n",
"k = GPy.kern.linear(input_dim=0)\n",
"m = GPy.models.GPRegression(X2,Y,k)\n",
"m.optimize(messages=False)\n",
"#m['.*variance']=1\n",
"#m['linear_variance']=10000\n",
"bestll=m.log_likelihood()\n",
"print m\n",
"print bestll\n",
"#provides initial parameters for 0 SNPS\n",
"oldparams=m['.*variance']\n",
"for step in range(100):\n",
" hasbeenadded=False\n",
" #bestll=np.inf\n",
" bestSNP=np.nan\n",
" X2=np.hstack([X2, np.zeros((182, 1))])\n",
" tempbestll=bestll\n",
" for SNP in np.array(list(set(range(X.shape[1])).difference(set(chosenSNPS)))):\n",
" X2[:,-1]=X[:,SNP]\n",
" m.X=X2\n",
" m.kern.X=X2\n",
" m.input_dim=step+1\n",
" m.kern.input_dim=step+1\n",
" #m['.*variance']=1\n",
" #m['linear_variance']=10000\n",
" #m.optimize(messages=False)\n",
" #print m\n",
" m.update_likelihood_approximation()\n",
" #print m.log_likelihood()\n",
" if m.log_likelihood() > tempbestll:\n",
" hasbeenadded=True\n",
" tempbestll=m.log_likelihood()\n",
" bestSNP=SNP\n",
" #print SNP\n",
" if hasbeenadded==False:\n",
" print \"converged: \" + str(len(chosenSNPS)) + \"SNPs\" \n",
" X2=X2[:,:-1]\n",
" break\n",
" X2[:,-1]=X[:,bestSNP]\n",
"\n",
" #print \"X2\" + str(X2.shape)\n",
" k = GPy.kern.linear(input_dim=step+1)\n",
" tempm = GPy.models.GPRegression(X2,Y,k)\n",
" tempm.optimize(messages=False)\n",
" print tempm.log_likelihood()\n",
" if tempm.log_likelihood()>bestll:\n",
" bestll=tempm.log_likelihood()\n",
" m=tempm\n",
" oldparams=m['.*variance']\n",
" chosenSNPS.append(bestSNP)\n",
" else:\n",
" print \"converged: \" + str(len(chosenSNPS)) + \"SNPs\" \n",
" X2=X2[:,:-1]\n",
" break\n",
" #print X2.shape\n",
" \n",
"pb.matshow(X2[:,:].transpose())\n",
"pb.colorbar()\n",
"pb.show()\n",
"\n",
"#m.plot()\n",
"#print m\n",
"\n",
"#print m.predict(np.array([1]))\n",
"#print m.predict(np.array([2]))\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(182, 13314)\n",
"(182, 50)\n",
"(182, 0)\n",
"float64\n",
"\n",
"Log-likelihood: -3.204e+04\n",
"\n",
" Name | Value | Constraints | Ties | prior \n",
"------------------------------------------------------------------\n",
" linear_variance | 1.0000 | (+ve) | | \n",
" noise_variance | 66.9786 | (+ve) | | \n"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-32042.2361747\n",
"-26785.1594263"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-23648.756253"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-21001.299449"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-18513.0858872"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-15453.0123087"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-14631.1852232"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13993.1987934"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13964.8796738"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13948.6350845"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13936.4794245"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13926.1135083"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13918.6647884"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13909.8027906"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13904.9042644"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13900.909891"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13896.7603592"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13893.4356149"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-13891.9986395"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"converged: 18SNPs"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4467dd0>"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print chosenSNPS\n",
"print m\n",
"pb.matshow(X[:,chosenSNPS].transpose())\n",
"pb.colorbar()\n",
"pb.show()\n",
"pb.matshow(X[:,1000].reshape(1,182))\n",
"pb.colorbar()\n",
"pb.show()\n",
"#print m.plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[987, 9008, 7000, 998, 12992, 0, 8996, 999, 8998, 1000, 7001, 1001, 9000, 1002, 9001, 7002, 12993, 7003]\n",
"\n",
"Log-likelihood: -1.398e+04\n",
"\n",
" Name | Value | Constraints | Ties | prior \n",
"-----------------------------------------------------------------\n",
" linear_variance | 2.1460 | (+ve) | | \n",
" noise_variance | 1.0260 | (+ve) | | \n",
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x54c1090>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4467790>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"## Compute the biased estimator of HSIC.\n",
"# @param x The data.\n",
"# @param y The labels.\n",
"# @param kernelx The kernel on the data, default to linear kernel.\n",
"# @param kernely The kernel on the labels, default to linear kernel.\n",
"#\n",
"\n",
"def BiasedHSIC(x, y, kernelx, kernely):\n",
" #nx = kernelx.input_dim\n",
" #ny = kernely.input_dim\n",
" #print x.shape\n",
" nx=float(x.shape[0])\n",
" ny=float(y.shape[0])\n",
" \n",
" assert nx == ny, \\\n",
" \"Argument 1 and 2 have different number of data points\"\n",
"\n",
" kMat=kernelx.K(x)\n",
" #if len(nx) > 1:\n",
" # kMat = kernelx.Dot(x, x)\n",
" #else:\n",
" # kMat = numpy.outerproduct(x, x)\n",
"\n",
" #print kMat\n",
" hlhMat = ComputeHLH(y, kernely)\n",
" #print hlhMat\n",
" return numpy.sum(numpy.sum(kMat * hlhMat)) / ((nx-1)*(nx-1))\n",
" \n",
"## Compute HLH give the labels.\n",
"# @param y The labels.\n",
"# @param kernely The kernel on the labels, default to linear kernel.\n",
"#\n",
"def ComputeHLH(y, kernely):\n",
" #ny = kernely.input_dim\n",
" ny=float(y.shape[0])\n",
" #if len(ny) > 1:\n",
" # lMat = kernely.Dot(y, y)\n",
" #else:\n",
" # lMat = numpy.outerproduct(y, y)\n",
" #print y.shape\n",
" lMat=kernely.K(y)\n",
" #print lMat\n",
" sL = numpy.sum(lMat, axis=1)\n",
" ssL = numpy.sum(sL)\n",
" # hlhMat\n",
" return lMat - numpy.add.outer(sL, sL)/ny + ssL/(ny*ny)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def calcHSIC(x,y,kernx,kerny):\n",
" kernx=kernelx2.K(x)\n",
" kerny=kernely2.K(y)\n",
" m=x.shape[0]\n",
" H=np.eye(m)-(m**(-1))\n",
" print H.shape\n",
" HSIC=((m-1)**(-2))*np.trace(np.dot(kernx,np.dot(H, np.dot(kerny, H))))\n",
" return HSIC"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 42
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"#Do GPy ML based regression\n",
"#Start with no SNPs, add SNPs by greedy forward selection - add best SNP at each step, is there a maxima?\n",
"#Y ~ N(0, s^2 XX^T + e^2 I )\n",
"\n",
"#X=X.transpose()\n",
"#Y=Y.transpose()\n",
"#print X.shape\n",
"#print Y.shape\n",
"chosenSNPS2=[]\n",
"X2=np.zeros((182,0))\n",
"#print X2.shape\n",
"#print X2.dtype\n",
"\n",
"Y=Y.transpose()\n",
"#X=X.transpose()\n",
"print X2.shape\n",
"print Y.shape\n",
"k2 = GPy.kern.linear(input_dim=0)\n",
"m2 = GPy.models.GPRegression(X2,Y,k2)\n",
"m2.optimize(messages=False)\n",
"#m['.*variance']=1\n",
"#m['linear_variance']=10000\n",
"bestll=m2.log_likelihood()\n",
"X=X.transpose()\n",
"oldHSIC=0\n",
"#print m\n",
"#print bestll\n",
"#provides initial parameters for 0 SNPS\n",
"oldparams=m['.*variance']\n",
"kernelx2 = GPy.kern.linear(input_dim=ng)\n",
"kernely2 = GPy.kern.linear(input_dim=X.shape[1])\n",
"\n",
"#print X.shape\n",
"for step in range(500):\n",
" hasbeenadded=False\n",
" #bestll=np.inf\n",
" bestSNP=np.nan\n",
" X2=np.hstack([X2, np.zeros((182, 1))])\n",
" tempbestHSIC=oldHSIC\n",
"\n",
" for SNP in np.array(list(set(range(X.shape[1])).difference(set(chosenSNPS2)))):\n",
" X2[:,-1]=X[:,SNP]\n",
" m2.X=X2\n",
" m2.kern.X=X2\n",
" m2.input_dim=step+1\n",
" m2.kern.input_dim=step+1\n",
"\n",
" m2.update_likelihood_approximation()\n",
" \n",
" m2._Xoffset = np.zeros((1, m2.input_dim))\n",
" m2._Xscale = np.ones((1, m2.input_dim))\n",
"\n",
" residuals=m2.predict(X2)[0]\n",
"\n",
" newHSIC=BiasedHSIC(residuals, X, kernelx2, kernely2)\n",
" if newHSIC > tempbestHSIC:\n",
" hasbeenadded=True\n",
" #oldHSIC=newHSIC\n",
" tempbestHSIC=newHSIC\n",
" bestSNP=SNP\n",
" if hasbeenadded==False:\n",
" print \"converged: \" + str(len(chosenSNPS2)) + \"SNPs\" \n",
" X2=X2[:,:-1]\n",
" break\n",
" X2[:,-1]=X[:,bestSNP]\n",
"\n",
" #print \"X2\" + str(X2.shape)\n",
"\n",
" k2 = GPy.kern.linear(input_dim=step+1)\n",
"\n",
" tempm2 = GPy.models.GPRegression(X2,Y,k2)\n",
" tempm2.optimize(messages=False)\n",
" residuals=tempm2.predict(X2)[0]\n",
"\n",
" newHSIC=BiasedHSIC(residuals, X, kernelx2, kernely2)\n",
" if newHSIC > oldHSIC:\n",
" #hasbeenadded=True\n",
" oldHSIC=newHSIC\n",
" m2=tempm2\n",
" print newHSIC\n",
" print m2.log_likelihood()\n",
" oldparams=m2['.*variance']\n",
" chosenSNPS2.append(bestSNP)\n",
" else:\n",
" print \"converged: \" + str(len(chosenSNPS2)) + \"SNPs\" \n",
" X2=X2[:,:-1]\n",
" break\n",
" #print X2.shape\n",
" \n",
"pb.matshow(X2[:,:].transpose())\n",
"pb.colorbar()\n",
"pb.show()\n",
"\n",
"#m.plot()\n",
"#print m\n",
"\n",
"#print m.predict(np.array([1]))\n",
"#print m.predict(np.array([2]))\n",
"\n"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"(182, 0)\n",
"(182, 50)\n",
"73807.1574834"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-27291.6014423\n",
"80755.0494742"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-26583.7043046\n",
"83778.2742419"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25367.7363702\n",
"84891.9952452"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25273.4976681\n",
"85944.0488984"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25159.0613895\n",
"86452.8193305"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25188.5910357\n",
"86804.256415"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25179.4227757\n",
"86989.462443"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25205.6881412\n",
"87058.1943556"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25243.3532219\n",
"87139.9944165"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25236.11962\n",
"87261.1705543"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25235.909733\n",
"87272.4179448"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25255.5765661\n",
"87314.9566523"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25283.1588366\n",
"87317.2709493"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25281.2454194\n",
"87332.380687"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"-25290.5269917\n",
"converged: 15SNPs"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x55b6b50>"
]
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"print chosenSNPS2\n",
"print m2\n",
"pb.matshow(X[:,chosenSNPS2].transpose())\n",
"pb.colorbar()\n",
"pb.show()\n",
"pb.matshow(X[:,1000].reshape(1,182))\n",
"pb.colorbar()\n",
"pb.show()\n",
"#print m.plot()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"[979, 1023, 10865, 10935, 998, 10926, 1020, 10907, 10951, 999, 1021, 990, 966, 1000, 991]\n",
"\n",
"Log-likelihood: -2.460e+04\n",
"\n",
" Name | Value | Constraints | Ties | prior \n",
"------------------------------------------------------------------\n",
" linear_variance | 2.7051 | (+ve) | | \n",
" noise_variance | 13.6821 | (+ve) | | \n",
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAywAAACICAYAAAAF62/4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9wVNX9//HX4gb5Wfkdye72s2gCCRViNAFtS0ULhDDT\nCNVq0BYGgs1QUrXKIG0/U4ufFojaGRminegIQpUQBy1BG1YNbVIKlaj8kBoKEVm7WTHfIgJixMC6\n3z8oWzbZ378Tno+ZM+y9e+45Z3fv3c2be34Y3G63WwAAAACQgnoluwEAAAAA4A8BCwAAAICURcAC\nAAAAIGURsAAAAABIWQQsAAAAAFIWAQsAAACAlEXAAgAAACAm5s+fr/T0dI0bN85vnnvvvVdZWVnK\nzc3Vnj17gpZJwAIAAAAgJubNmyebzeb3+bq6Or3//vtqaWnR008/rYULFwYtk4AFAAAAQExMmjRJ\ngwcP9vv8li1bNHfuXEnSxIkTdeLECbW1tQUsk4AFAAAAQEI4nU5ZLBbPttlsVmtra8BjCFgAAAAA\nJIzb7fbaNhgMAfMTsAAAAAAIqK/BIIOPNHDgwLDKMZlMcjgcnu3W1laZTKaAxxgjajEAAACAS8YZ\nSb/xsf9/T58Oq5zi4mJVVlaqpKREb775pgYNGqT09PSAxxCwAAAAAAjqayHkmT17thobG3Xs2DFZ\nLBYtW7ZMZ8+elSSVlZVpxowZqqurU2Zmpvr376+1a9cGLdPg7tyJDAAAAAAuYjAY9IyP/feo65iU\nWOMOCwAAAICg+iapXgIWAAAAAEGF0iUsHpglDAAAAEBQfX0kX2w2m7Kzs5WVlaWKioouz3/66aea\nNWuWcnNzNXHiRL333nsB6yVgAQAAABBUKAGLy+VSeXm5bDabmpubVV1drQMHDnjlWb58ua677jrt\n27dP69ev13333RewXgIWAAAAAEGFErA0NTUpMzNTVqtVaWlpKikpUW1trVeeAwcO6Oabb5YkjRkz\nRna7Xf/+97/91kvAAgAAACCogT5SZ06nUxaLxbNtNpvldDq98uTm5urll1+WdD7A+fDDD9Xa2uq3\nXgIWAAAAAEH185E6MxgMQctZunSpTpw4oby8PFVWViovL0+XXXaZ3/zMEgYAAAAgqL5G6W9fSTsu\nXnal0xIsJpNJDofDs+1wOGQ2m73yDBw4UGvWrPFsjxo1SldddZXfelk4EgAAAEBABoNBHVd03d/7\npPfCkefOndOYMWO0bds2ZWRkaMKECaqurlZOTo4nz8mTJ9W3b1/17t1bzzzzjHbs2KHnnnvOb91x\n7RIWbEozoKezWq0aP3688vLyNGHCBEnS8ePHNXXqVI0ePVrTpk3TiRMnktxKID7mz5+v9PR0jRs3\nzrMv0Pm/YsUKZWVlKTs7W6+//noymgzEja/r4de//rXMZrPy8vKUl5enrVu3ep7jekAqSru8a+rM\naDSqsrJShYWFGjt2rO68807l5OSoqqpKVVVVkqTm5maNGzdO2dnZeu2117Rq1aqA9cbtDovL5dKY\nMWNUX18vk8mkgoKCLtEV0NONGjVK77zzjoYMGeLZt2TJEg0bNkxLlixRRUWFPv30U61cuTKJrQTi\nY/v27RowYIDmzJmj/fv3S/J//jc3N+uuu+7SW2+9JafTqSlTpujQoUPq1YuhlugZfF0Py5Yt08CB\nA/XAAw945eV6QCoyGAxyf93H/n9532GJh7id+aFMaQZcCjpfxFu2bNHcuXMlSXPnztXmzZuT0Swg\n7iZNmqTBgwd77fN3/tfW1mr27NlKS0uT1WpVZmammpqaEt5mIF58XQ+S7z/0uB6Qsi73kRIgbgFL\nKFOaAT2dwWDQlClTlJ+fr2eeeUaS1NbWpvT0dElSenq62traktlEIKH8nf8fffSR16BMfjNwqVi9\nerVyc3NVWlrq6SLJ9YCU1d9HSoC4BSyhTGkG9HQ7duzQnj17tHXrVj355JPavn271/MGg4FrBZes\nYOc/1wZ6uoULF+rIkSPau3evRo4cqQcffNBvXq4HpIQ+PlICxC1gCWVKM6CnGzlypCRp+PDhmjVr\nlpqampSenq6PP/5YknT06FGNGDEimU0EEsrf+d/5N6O1tVUmkykpbQQSZcSIEZ7AfcGCBZ5uX1wP\nSFkhdgkLNvHWsWPHNH36dF177bW65pprAs4QJsUxYMnPz1dLS4vsdrs6OjpUU1Oj4uLieFUHpJz2\n9nZ99tlnkqTPP/9cr7/+usaNG6fi4mKtW7dOkrRu3TrNnDkzmc0EEsrf+V9cXKyNGzeqo6NDR44c\nUUtLi2dmPaCnOnr0qOfxH//4R88MYlwPSFkhdAlzuVwqLy+XzWZTc3OzqqurdeDAAa88FxaL3Lt3\nrxoaGvTggw/q3LlzfquN28KRF09p5nK5VFpaygxhuKS0tbVp1qxZks7PSX733Xdr2rRpys/P1x13\n3KFnn31WVqtVL774YpJbCsTH7Nmz1djYqGPHjsliseiRRx7R0qVLfZ7/Y8eO1R133KGxY8fKaDTq\nqaeeogsMepTO18OyZcvU0NCgvXv3ymAwaNSoUZ4pX7kekLJC6AJ28cRbkjwTb10cB4wcOVLvvvuu\nJOnUqVMaOnSojEb/YQkLRwIAAAAIyGAwyD3bx/5q79nuNm3apNdee80z2dDzzz+vXbt2afXq1Z48\nX331lW655RYdOnRIn332mV588UUVFRX5rZsJvQEAAAAEF0KXsFDuBi5fvlzXXnutPvroI+3du1eL\nFi3ydKP3JW5dwgAAAAD0IH2khlapIcAs26FMvLVz50798pe/lCRdffXVGjVqlA4ePKj8/HyfZUZ8\nhyXY6H8AAAAAPcjl0uSrpV9/57+ps1Am3srOzlZ9fb2k82N+Dx48qKuuuspvtRHdYbkw+r++vl4m\nk0kFBQUqLi5mUD0AAADQU4Wwsr2/ibcuTCpRVlamX/ziF5o3b55yc3P11Vdf6dFHH9WQIUP8lhnR\noPu///3vWrZsmWw2myRp5cqVkqSlS5eGWxQAAACAFGcwGORe7mP/L7wH3cdDRHdYnE6nLBaLZ9ts\nNmvXrl1eeawGgz6Mrm0AAABAD/Q/crvtyW5E+EK4wxIPEQUsoYz+/1DSw5IaJE2WtEwPez3/sJZ5\nbXd+vrPO+QMJt65gZYfbtmhfy8XHR1t2sPzhtq2zaN7rcD+HeIvleeMvb4POXw/RivV7F831Ge31\nE+/ygpUf6HoLt+54f9eEW1886w6Xv/obFP1vRKy/JxP9OcXynIz1a4t1/eGUHUyiX1sw4fwm+Ncg\naXLC/y4Jdny8yvJVXiL/DglWVnwl92+eiCUpYIlo0H0oo/+l85ed/T//nn8EAAAAXGrsOv8X8YXU\nTYUwrbEUfHKuxx9/XHl5ecrLy9O4ceNkNBp14sQJv9VGdIfl4tH/GRkZqqmpUXV1dZd8jf+5x/Kh\nj/9TjuX/gAUrK9znk/0//YFE+78m4epO702iRfPexPp/RaOtL5YS+z9UwaXSORvvzxWhSbX3LdXa\nkyzhXh/hfm8m+vczVepOtFT7vUqd3wDrf9IFjclpRrRCWOk+lMm5Fi9erMWLF0uSXn31VT3xxBMa\nNGiQ3zIjusNiNBr18MMPa+zYsRowYICOHj2qN954w09uayRVAD2SNdkNAFKMNdkNAFKKNdkNAAK7\n3EfqpKmpSZmZmbJarUpLS1NJSYlqa2v9FrlhwwbNnj07YLURr8Mybdo07dy5Ux0dHTp8+LCefPJJ\nHThwwEdOa6RVAD2ONdkNAFKMNdkNAFKKNdkNAALr4yN14mtyLqfT90qT7e3teu2113TbbbcFrDbi\ngOXKK6/UtddeK0kaMGCAcnJy9NFHH0VaHAAAAIBUFsIYllAm57rglVde0be//e2A3cGkCMewdGa3\n27Vnzx5NnDjRa38440yinRUinmLd9zSWM1ZE28c31rpTv9xoxzbFc/abaEXbFzyWwp0hJtbnUCLH\nGsW67bG8fhPdLzzasYXh1B/rWYYSPWNaoPqifW3JnHUvWP5YnyOJ/t6N5W93sHMw1t/hsaw/mbMf\nRpI/0PHJnp2tW7hcanhHatjtP0uok3NJ0saNG4N2B5NiELCcPn1at99+u1atWqUBAwZEWxwAAACA\nVNRHmvyt8+mCZc96Zwl1cq6TJ0/qr3/9qzZs2BC02qgClrNnz+q2227TD3/4Q82cObPL8w1eW3bR\nNxMAAACXHrt6xBIffqYxvpjRaFRlZaUKCwvlcrlUWlqqnJwcVVVVSZLKysokSZs3b1ZhYaH69u0b\nvMxI2+t2u1VaWqqxY8fq/vvv95ln8kWPGwlWAAAAcEmyqkdMaxziwpFFRUUqKiry2nchULlg7ty5\nmjt3bkjlRRyw7NixQ88//7zGjx+vvLw8SdKKFSs0ffr0SIv0kswxKvEuP5avLdnrpCTztSX7tcdS\nsvtqx/K9TLXrKZZjVqJtS7TiOV4gWvHupx5Lye6HHsuxSMkWz/bEemxEvH9TonkvGG8aukT+1nfn\n9yluQliHJR4iDli+/e1v6+zZs8rPz5fZbNYrr7wSy3YBAAAASCFfhtAlLB4intZYklatWqWxY8eG\nNX0ZAAAAgO7ny8t7d0m+2Gw2ZWdnKysrSxUVFT7zNDQ0KC8vT9dcc40mT54csN6IA5bW1lbV1dVp\nwYIFcrvdkRYDAAAAoBvouKx3l9SZy+VSeXm5bDabmpubVV1d3WVx+RMnTmjRokV65ZVX9I9//EOb\nNm0KWG/EXcJ+9rOf6bHHHtOpU6ciLcJLLNdK6Cza+cYTue5KZ6m01kEo5cfyvYv32iHh9l8O57XE\neyxEsPJTabxPrMfnxLrfeizrjvd3RzTHx3vcUzJ197UPArU/1r8B4X5XhCuV16uK9ns23PIDlRXv\ntenivc5SOHXHcp2UUOoP9/hwyor38d3Blz5H3Z/22mpqalJmZqasVqskqaSkRLW1tcrJyfHk2bBh\ng2677TbP+izDhg0LWG9Ed1heffVVjRgxQnl5edxdAQAAAC4BX6hvl9SZ0+mUxWLxbJvNZjmdTq88\nLS0tOn78uG6++Wbl5+frD3/4Q8B6I7rDsnPnTm3ZskV1dXU6c+aMTp06pTlz5mj9+vVe+Rq8tuxi\nHRYAAABceuzqCeuw+L7D4i2Use1nz57V7t27tW3bNrW3t+vGG2/UDTfcoKysLJ/5IwpYli9fruXL\nl0uSGhsb9fjjj3cJViTWYQEAAAB6yjosHeqttxs+19sN7X7zmEwmORwOz7bD4fB0/brAYrFo2LBh\n6tu3r/r27avvfOc72rdvX2wDls5iMUtYrPutx+pYKfb9L8Ppa5rstid7vYJA4j1nfjRjWhI5f38o\n5SVzjZpYvxexPqcTOaYsXLGsL9bjqlJp3Ei4ry3V+pkHak+ixyFGK5pzsrOevLZWtONDwy0vXIkc\n+xdtW8Idp9zZxcfHep2vVPuuiYV29dPYyf00dvJ/9z297JhXnvz8fLW0tMhutysjI0M1NTWqrq72\nynPrrbeqvLxcLpdLX375pXbt2qUHHnjAb70RBywnTpzQggUL9N5778lgMOjNN9/UDTfcEGlxAAAA\nAFJYh3xPY3wxo9GoyspKFRYWyuVyqbS0VDk5OaqqqpJ0fsX77OxsTZ8+XePHj1evXr10zz33aOzY\nsf7LjLTB9913n2bMmKFNmzbp3Llz+vzzzyMtCgAAAECKC2UMiyQVFRWpqKjIa19ZWZnX9uLFi7V4\n8eKQyosoYDl58qS2b9+udevWnS/EaNQVV1wRSVEAAAAAuoFQ7rDEQ0QBy5EjRzR8+HDNmzdP+/bt\n0/XXX69Vq1apX79+XvkS1b863n0Eu9M6LPF+L1KpX/ulvA5LMMlchyXV+tyHU15PW4flYvEe45Vo\ngT63eI8lSuRr72nrsMTyc0ul9aY6S+TaIb7KS+V1WIIdH25bYvnaYz3OtydqV7/gmeIgonVYzp07\np927d+snP/mJdu/erf79+2vlypWxbhsAAACAFPGlendJvthsNmVnZysrK0sVFRVdnm9oaNAVV1yh\nvLw85eXl6Te/+U3AeiO6w2I2m2U2m1VQUCBJuv322/0ELA0XPbaKdVgAAABw6bGrJ6zD0hHCGBaX\ny6Xy8nLV19fLZDKpoKBAxcXFXivdS9JNN92kLVu2hFRvRAHLlVdeKYvFokOHDmn06NGqr6/XN77x\nDR85J0dSPAAAANCDWNUT1mFp97GyfWdNTU3KzMyU1WqVJJWUlKi2trZLwOJ2u0OuN+JZwlavXq27\n775bHR0duvrqq7V27douecIZZ5LsdSsCSfRYiUB5w60r2vKCHc86LL4l+3yO93sTSLR1xXqcSDTf\nPeGeA6k8dqKnrcMS6Pcl1cfrhPPepdqYsGDCud6SOT403qL9HmMdltDbEsuxULEeL9MTx7iEcofF\n6XTKYrF4ts1ms3bt2uWVx2AwaOfOncrNzZXJZNLjjz8en2mN6+rq1N7erl69eqlPnz7q06dPpEUB\nAAAASHH+xqxcLJQF5a+77jo5HA7169dPW7du1cyZM3Xo0CG/+SMadG+32/XMM89o9+7d2r9/v1wu\nlzZu3BhJUQAAAAC6gS/UT/9s+H967ddveVJnJpNJDofDs+1wOGQ2m73yDBw40DO7cFFRkc6ePavj\nx4/7rTeiOyxf+9rXlJaWpvb2dl122WVqb2+XyWSKpCiPZN42S6XbyKmO9yo0qdxVQUrube1Yd3OM\n9vhouvbFu1tUtN2woul+0xO7MlyQ7Cmbe/J7G0vRdgWK9fPBxLKbcLhS/TcnHKn0WqLtOt4Tfane\nunLyaF05ebRn39+W/dUrT35+vlpaWmS325WRkaGamhpVV1d75Wlra9OIESNkMBjU1NQkt9utIUOG\n+K03ooBlyJAhevDBB/X1r39dffv2VWFhoaZMmRJJUQAAAAC6gVDGsBiNRlVWVqqwsFAul0ulpaXK\nyclRVVWVpPMr3m/atEm///3vZTQa1a9fv6A9tSIKWA4fPqwnnnhCdrtdV1xxhX7wgx/ohRde0N13\n3x1JcQAAAABSXChjWKTz3byKioq89pWVlXkeL1q0SIsWLQq53ogClrffflvf/OY3NXToUEnS97//\nfe3cubNLwNLgtWUX67AAAADg0mNXT1iH5YskrXQfUcCSnZ2t//u//9MXX3yhPn36qL6+XhMmTOiS\nb/JFjxvDDFbC6QcY7+kDo52SOZo+jtGOLUj0lJiJnOo00dNNJ/K1xPpzi3ff7UCSPTV3IqfnTPSY\nlnDyx3va02RK9PUTa4Hqi/VvQKynhO0sntO/dxbrqbqDlR9MIpcoiLdo/gaL9hyL9bTksfx7Mrrj\nreoJ67CEeocl1iKaJSw3N1dz5sxRfn6+xo8fL0n68Y9/HNOGAQAAAEgdHbq8S/LFZrMpOztbWVlZ\nqqio8FveW2+9JaPRqJdffjlgvQHvsMyfP19/+tOfNGLECO3fv1+SdPz4cd1555368MMPZbVa9eKL\nL2rQoEHBXh8AAACAbqw9hC5hLpdL5eXlqq+vl8lkUkFBgYqLi7usdO9yufTQQw9p+vTpQVe9D3iH\nZd68ebLZbF77Vq5cqalTp+rQoUP67ne/q5UrVwZtOAAAAIDurUO9u6TOmpqalJmZKavVqrS0NJWU\nlKi2trZLvtWrV+v222/X8OHDg9Yb8A7LpEmTZLfbvfZt2bJFjY3n+93NnTtXkydP9hu0xHPthkT2\nSexOEr0OBNBZql1vnLM9UzzH53SWamOTurNAn1usx6Sk0rWf6HFRqSze70Uqfe490ZchTGvsdDpl\nsVg822azWbt27eqSp7a2Vn/+85/11ltvyWAwBCwz7EH3bW1tSk9PlySlp6erra0t3CIAAAAAdDO+\n7qh0Fiz4kKT7779fK1eulMFgkNvtDtolLKJZwi5uUCiNAgAAANC9taufPm94W+0Nb/vNYzKZ5HA4\nPNsOh0Nms9krzzvvvKOSkhJJ0rFjx7R161alpaWpuLjYZ5lhByzp6en6+OOPdeWVV+ro0aMaMWJE\ngNwNFz22inVYAAAAcOmxqyesw9Kh3kqb/E1dMfmbnn3Hlj3tlSc/P18tLS2y2+3KyMhQTU2Nqqur\nvfJ88MEHnsfz5s3T9773Pb/BihRBwFJcXKx169bpoYce0rp16zRz5ky/eR++aI7pZV6rsoQvmj6J\n3amfazCJXgeiO703SA2p1le7O1/viI9UO0dTrT3JEu36G+Een8j3/VL6TFPtOzd12mNVz1iHJfgY\nFqPRqMrKShUWFsrlcqm0tFQ5OTmqqqqS5L3ifagCBiyzZ89WY2Ojjh07JovFokceeURLly7VHXfc\noWeffdYzrTEAAACAnu2Lr/qGlK+oqEhFRUVe+/wFKmvXrg1aXsBpjaurqzV9+nQNHjxYgwYN0rx5\n8zRkyBDl5eXpsssuU1tbm+bPn6+TJ0+G1HgAAAAA3dOXZy7vkhIh6Er3vtZimTZtmt577z3t27dP\no0eP1ooVK+LWQAAAAADJ13Gmd5eUCEHHsPhai2Xq1KmexxMnTtRLL70U84aF0+eQ/r+Jw3sbG9H2\noY22r/alLJn91GP9OYTz3Zc6/biB5Ah2DfC3xKWB78LodJwOvtK9JNlsNt1///1yuVxasGCBHnro\nIa/na2tr9atf/Uq9evVSr1699Nhjj+mWW27xW15U0xpL0po1azR79uxoiwEAAACQys4EDx1cLpfK\ny8tVX18vk8mkgoICFRcXKycnx5NnypQpuvXWWyVJ+/fv16xZs/T+++/7LTNol7BAfvvb36p37966\n6667oikGAAAAQKo74yN10tTUpMzMTFmtVqWlpamkpES1tbVeefr37+95fPr0aQ0bNixgtRHfYXnu\nuedUV1enbdu2+c3T4LVlF+uwAAAA4NJjV09Yh0VfBM/idDplsVg822azWbt27eqSb/Pmzfr5z3+u\no0eP6vXXXw9YZkQBi81m02OPPabGxkb16dPHb77JFz1uDDNYCadPYbT9TLtTf8Zk97FNdv09RbTn\nXLjHd6dzPN7ieQ4HKzvWn0M4be9pn3k0ryfcz5zvudhJ5nnI71dihPt7FGup+3tnVU9Yh0WfB89i\nMBhCKmrmzJmaOXOmtm/frh/96Ec6ePCg37wBA5b58+drw4YNcrlcMhgMslgsWrZsmVasWKFjx45p\n+PDhuuaaazRp0iQ99dRTITUOAAAAQDd0RtK7DdL+Br9ZTCaTHA6HZ9vhcMhsNvvNP2nSJJ07d06f\nfPKJhg4d6jNPwIBl3rx5+ulPf6o5c+Zo//79nv1Tp07VPffco4MHD6qxsVFDhgwJVAwAAACA7u6M\npNGTz6cLNnjfxcrPz1dLS4vsdrsyMjJUU1Oj6upqrzyHDx/WVVddJYPBoN27d0uS32BFChKw+JrS\nWJIeeOABPfroo57R/QAAAAB6uNPBsxiNRlVWVqqwsFAul0ulpaXKyclRVVWVpPMr3r/00ktav369\n0tLSNGDAAG3cuDFwmeG2s7a2VmazWePHjw8pv12pP9Q+dfo3Bkef2+7NrtS/HoBEsiuya+Li78Jo\n1yUKd/0cvocjF83nFmup+bna1d1/JZK93k2w8pN93nV7PmYF86WoqEhFRUVe+8rKyjyPlyxZoiVL\nloRcbVgBS3t7u5YvX6433njDs8/tdgc8xq7ufukBsWMX1wNwMbu4JoD/sosrAiktxIAl1sIKWA4f\nPiy73a7c3FxJUmtrq66//no1NTVpxIgRXfI36Pyl1yCJixAAAACXJrsulWmN4yGshSPHjRuntrY2\nHTlyREeOHJHZbNbu3bt9BivS+WmNrbowvbE1mnYCAAAA3ZRV5/8ivpC6qc99JB9sNpuys7OVlZWl\nioqKLs+/8MILys3N1fjx4/Wtb31L7777buB63QGUlJS4R44c6e7du7fbbDa716xZ4/X8qFGj3J98\n8onPY2+66Sa3JBKJRCKRSCQSiXRRuummmwL9CZ6SJLm12N01yTucOHfunPvqq692HzlyxN3R0eHO\nzc11Nzc3e+XZuXOn+8SJE2632+3eunWre+LEiQHrDtglrPMUZJ198MEHfp9raGgIeCwAAACAbuTL\n4FmampqUmZkpq9UqSSopKVFtba1ycnI8eW688UbP44kTJ6q1tTVgmWF1CQMAAABwiTrtI3XidDpl\nsVg822azWU6n02+Rzz77rGbMmBGw2rCnNQYAAABwCQphljCDwRBycX/5y1+0Zs0a7dixI2A+AhYA\nAAAAwZ2R9O8G6ViD3ywmk0kOh8Oz7XA4ZDabu+R79913dc8998hms2nw4MEBqzX8ZxANAAAAAPhk\nMBikIh9hw1aD17qM586d05gxY7Rt2zZlZGRowoQJqq6u9hrD8q9//Uu33HKLnn/+ed1www1B6+YO\nCwAAAIDgfIxZ6cxoNKqyslKFhYVyuVwqLS1VTk6OqqqqJJ1f8f6RRx7Rp59+qoULF0qS0tLS1NTU\n5LdM7rAAAAAACMhgMEj5PsKGt73vsMQDd1gAAAAABBfCtMbxQMACAAAAILgQuoTFAwELAAAAgOBC\nmNY4Hlg4EgAAAEBwZ3wkH2w2m7Kzs5WVlaWKioouz//zn//UjTfeqD59+uh3v/td0Gq5wwIAAAAg\nuM+CZ3G5XCovL1d9fb1MJpMKCgpUXFzsNa3x0KFDtXr1am3evDmkarnDAgAAACC4cz5SJ01NTcrM\nzJTValVaWppKSkpUW1vrlWf48OHKz89XWlpaSNUSsAAAAACICafTKYvF4tk2m81yOp1RlUmXMAAA\nAAAhOBs0h8FgiHmtBCwAAAAAQvCZpL9J2uE3h8lkksPh8Gw7HA6ZzeaoaiVgAQAAABCCdknX/Sdd\n8KhXjvz8fLW0tMhutysjI0M1NTWqrq72WZrb7Q6pVgIWAAAAACH4ImgOo9GoyspKFRYWyuVyqbS0\nVDk5OaqqqpIklZWV6eOPP1ZBQYFOnTqlXr16adWqVWpubtaAAQN8lmlwhxraAAAAALgknR+b8o6P\nZ64P+U5JpLjDAgAAACAEwe+wxAMBCwAAAIAQJCdgYR0WAAAAACH4wkfqymazKTs7W1lZWaqoqPCZ\n595771V2jeb0AAABmUlEQVRWVpZyc3O1Z8+egLUSsAAAAAAIwSkfyZvL5VJ5eblsNpuam5tVXV2t\nAwcOeOWpq6vT+++/r5aWFj399NNauHBhwFoJWAAAAACEIPgdlqamJmVmZspqtSotLU0lJSWqra31\nyrNlyxbNnTtXkjRx4kSdOHFCbW1tfmslYAEAAAAQguABi9PplMVi8WybzWY5nc6geVpbW/3WyqB7\nAAAAACHo2gWss/PTHwfXeSrkQMcRsAAAAAAIwf922dN5sUeTySSHw+HZdjgcMpvNAfO0trbKZDL5\nrZUuYQAAAAACcrvdPtNnn33mlS8/P18tLS2y2+3q6OhQTU2NiouLvfIUFxdr/fr1kqQ333xTgwYN\nUnp6ut+6ucMCAAAAICaMRqMqKytVWFgol8ul0tJS5eTkqKqqSpJUVlamGTNmqK6uTpmZmerfv7/W\nrl0bsEyDu3MHMgAAAABIEXQJAwAAAJCyCFgAAAAApCwCFgAAAAApi4AFAAAAQMoiYAEAAACQsghY\nAAAAAKQsAhYAAAAAKYuABQAAAEDK+v8vUm7RaI8mdgAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x4492610>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x45c5590>"
]
}
],
"prompt_number": 15
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment