{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Errors in serial dilution: How can dispensing technology impact assay data?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### [Sonya M. Hanson and John D. Chodera](http://www.choderalab.org/) Computational Biology Program, Memorial Sloan Kettering Cancer Center, New York NY 10065" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a 2013 paper by Ekins et al, [Dispensing Processes Impact Apparent Biological Activity as Determined by Computational and Statistical Analyses. PLoS ONE 8(5): e62325, 2013](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0062325), a surprisingly large discrepancy in IC50 assay results is noted between the assay performed using a **Tecan Genesis** liquid handling workstation compared with a **LabCyte Echo** acoustic dispensing unit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> *It would appear that tip-based dispensing is producing erroneous data based on our and other analyses which we see here reflected in the models and initial lack of correlations with molecular properties.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This discrepancy was so large and so surprising that it was quickly picked up and discussed at length by numerous industry blogs, most notably [In the Pipeline by Derek Lowe](http://blogs.sciencemag.org/pipeline/archives/2013/05/03/drug_assay_numbers_all_over_the_place), which called the report a \"truly disturbing paper\". Speculation abounded as to the precise cause: including sticky compounds, plastic leaching out of pipette tips, colloidal aggregation, mis-calibrated pipettes, and sloppy experiments. But could a simple physical process rooted in the intrinsic variability in the assay explain this difference?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In a biochemical or cell-based assay to determine the potency of a compound of interest, solutions of the compound at several concentrations are prepared and the assay readout at a number of these concentrations can be fit to yield the $K_i$, $IC_{50}$, or $EC_{50}$ (depending on the assay configuration)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With a traditional manual assay or liquid handling workstation (such as the **Tecan Genesis**), the most straightforward approach to preparing a number of these compound concentrations is to prepare a **serial dilution series** starting from an original compound stock solution (often 10 mM stock in DMSO). In a serial dilution, a volume $V_0$ of one solution is transferred into the next well and diluted with another volume $V_1$ of diluent, allowing a series of solutions spanning orders of magnitude in compound concentration to be prepared in a serial manner." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/dilution-simple.png \"dilution-simple.png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **LabCyte Echo**, on the other hand, uses a direct dispensing technology to transfer a programmed volume (from 2.5 nL to microliters) directly into the assay wells, allowing a dilution series over several orders of magnitude in concentration to be created directly without the need for serial dilution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/direct-simple.png \"direct-simple.png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the Ekins et al paper explores the impact assay discrepancies has on QSAR models parameterized to the data, here we focus on the origin of the differences in assay results, and show how a simple model that captures **the errors introduced at each step** of the assay can lead us to identify a possible culprit behind the large discrepancy between the two assay configurations. Understanding the origin of this discrepancy---which ends up being a source of bias in one of the assay configurations---can allow us to anticipate assay issues ahead of time, take steps to mitigate them, or even to correct for them after the fact." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, we introduce a simple kind of assay modeling in **this IPython notebook** that computational and experimental chemists alike can employ, as a tool that can easily be used to model and understand sources of uncertainty and biases inherent in any experimental assay. This kind of modeling could be used, for example, during assay development to ensure that the assay configuration will meet the dynamic range and accuracy needed for the assay, or it could be used after the fact by assay data consumers to understand the expected uncertainty and bias in the experimental dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###First to set up the general python working environment and define our key dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First import a few general packages to be able to deal with numbers (*numpy* and more specificially *numpy.random*) and to allow us to set specific errors between fixed volume values (*scipy.interpolate*)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "from numpy.random import normal\n", "from scipy.interpolate import interp1d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next import a few packages to allow us to plot (*matplotlib.pyplot*), make nice-looking plots (*seaborn*), and view this plots inside our ipython notebooks (*%pylab inline*)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "sns.set(style='white')\n", "sns.set_context('talk')\n", "\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The dataset we are using to illustrate how to model and interpret errors comes from the paper mentioned above ( [Dispensing Processes Impact Apparent Biological Activity as Determined by Computational and Statistical Analyses. PLoS ONE 8(5): e62325, 2013](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0062325)), all of which was originally described in two patents from Astrazeneca ([WO2009010794A1](https://www.google.com/patents/WO2009010794A1)and [US7718653](http://www.google.com/patents/US7718653)). The table in this paper is shown below:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"Drawing\"" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# data from Fig 1 of Ekins et al.\n", "echo_IC50s = np.array([0.064, 0.486, 0.003, 0.002, 0.007, 0.003, 0.004, 0.052, 0.01362, 0.207, 0.158, 0.01164, 0.00633, 0.00358]) * 1e-6 # M\n", "genesis_IC50s = np.array([0.817, 3.03, 0.146, 0.553, 0.973, 0.778, 0.445, 0.17, 0.112, 14.4, 0.25, 0.049, 0.087, 0.152]) * 1e-6 # M\n", "\n", "echo_pIC50s = np.log10(echo_IC50s)\n", "genesis_pIC50s = np.log10(genesis_IC50s)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now if we plot this data to see how the $IC_{50}$ values obtained with the two different technologies compare to each other, with a line representing if they were identical, we see there are significant discrepencies." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/hansons/anaconda/lib/python2.7/site-packages/matplotlib/collections.py:590: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison\n", " if self._edgecolors == str('face'):\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot this data to show the relationship of pIC50's measured by different technologies\n", "plt.subplot(111, aspect='equal');\n", "plt.plot([-9, -4], [-9, -4], 'k-');\n", "plt.scatter(echo_pIC50s, genesis_pIC50s,color='k',marker='x',s=40, linewidth=2);\n", "plt.xlabel('pIC50 (acoustic)');\n", "plt.ylabel('pIC50 (tips)');\n", "plt.legend(['ideal', 'actual'], loc='lower right');\n", "plt.title('Relationship of pIC50s measured by different technologies');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###1. Calculating $IC_{50}$ for EphB4 system from assay data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This data is for $IC_{50}$s of ligands with the enzyme EphB4. From the [EphB4 DataSheet](http://www.proqinase.com/kinase-database/pdfs/2843.pdf), we know the Km for ATP by EphB4 is 1.71 uM . Note that we're assuming that EphB4 obeys Michaelis-Menten kinetics here, and that V0/Vmax is what is measured." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "Km = 1.71e-6 # Km of ATP for EphB4 (M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's assume true Ki for an arbitrary compound is 10 nM, a substrate concentration of 4 µM ATP, and that we're using 0.25 ng of ~42.4 kDa enzyme, which gives us 6 µM. We will dispense 2 µL of diluted compound into an assay plate well into which 10 µL of enzyme mix has been dispense." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "true_Ki = 10e-9 # arbitrary compound Ki (M)\n", "\n", "substrate_concentration = 4e-6 # ATP concentration (M)\n", "\n", "enzyme_concentration = 6e-6 # EphB4 assay concentration (M)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's suppose the 10 µL of assay mix in each well was dispensed completely accurately, and contains exact concentrations of enzyme and substrate. We presume inhibition is measured by an exact read of the reaction V0/Vmax. The IC50 would be the interpolated point at which V0/Vmax drops to 0.5, as determined from a fit of the competitive inhibition equations to the observed V0/Vmax for the dilution series, using the ideal dilution series concentrations in the fit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can calculate enzyme activities (V0/Vmax) directly from the values above using the following equation (derived using the assumptions of Michaelis-Menten kinetics for a competitive inhibitor):" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\frac{V_{0}}{V_{max}} = \\frac{[S]}{K_{m}(1+\\frac{[I]}{K_{i}})+[S]}$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#define the function 'competitive_inhibition' using this equation\n", "def competitive_inhibition(substrate_concentration, inhibitor_concentration, enzyme_concentration, Ki, Km):\n", " V0_over_Vmax = substrate_concentration / (Km*(1 + inhibitor_concentration/Ki) + substrate_concentration)\n", " return V0_over_Vmax" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have already defined everything in this equation except our inhibitor concentration *[I]*, which is exactly the focus of the later parts of this notebook. Here we will define an ideal dilution series to create our inhibitor concentrations:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/dilution.png \"dilution.png\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions):\n", " # Initialize concentrations and volumes with zero vectors with Cinitial and Vinitial as first value\n", " concentrations = np.zeros([ndilutions], np.float64)\n", " volumes = np.zeros([ndilutions], np.float64)\n", " concentrations[0] = Cinitial\n", " volumes[0] = Vinitial\n", " \n", " # and Vbuffer as initial volume for all but first.\n", " for n in range(1,ndilutions):\n", " volumes[n] = Vbuffer\n", " \n", " # Create dilution series.\n", " for n in range(1,ndilutions):\n", " concentrations[n] = concentrations[n-1] * Vtransfer / (Vtransfer + Vbuffer)\n", " volumes[n] += Vtransfer\n", " volumes[n-1] -= Vtransfer\n", " \n", " # Remove Vtransfer from last.\n", " volumes[ndilutions-1] -= Vtransfer\n", " \n", " return [volumes, concentrations]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's use this dilution series to create an 8-point dilution series with an initial concentration of 10 mM, an initial volume of 100 µL and Vtransfer and Vbuffer = 50 µL." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "Cinitial = 600e-6 # initial dilution concentration (M) = 600 uM, to match maximum assay concentration of Echo assay\n", "\n", "ndilutions = 8 # number of dilutions, including initial dilution\n", "\n", "Vinitial = 100e-6 # working volume (L)\n", "\n", "Vtransfer = 50e-6 # volume transferred from previous dilution (L)\n", "\n", "Vbuffer = 50e-6 # volume of diluent (buffer) added (L)\n", "\n", "[assay_volumes, assay_compound_concentrations] = dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Now we have an 8-point dilution series from 600.000000 uM to 4.687500 uM.\n" ] } ], "source": [ "print \"Now we have an %s-point dilution series from %f uM to %f uM.\" % (ndilutions, assay_compound_concentrations.max()/1e-6, assay_compound_concentrations.min()/1e-6)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, (ax1,ax2) = plt.subplots(2,1,sharex=True)\n", "\n", "ax1.scatter(range(ndilutions), assay_compound_concentrations/1e-6, lw=4)\n", "\n", "ax1.set_title(\"Normal plot\")\n", "ax1.set_ylabel('concentration (uM)')\n", "ax1.axis([- 0.5, ndilutions - 0.5, 0.0, Cinitial * 1.2/1e-6])\n", "\n", "ax2.semilogy(range(ndilutions), assay_compound_concentrations,'ko')\n", "\n", "ax2.set_title(\"Semilogy plot\")\n", "ax2.set_ylabel('concentration (M)')\n", "ax2.axis([- 0.5, ndilutions - 0.5, 0.0, Cinitial * 1.2])\n", "\n", "plt.xlabel('dilution number')\n", "f.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can use these ideal assay_compound_concentrations to calculate what our activity would be for each inhibitor concentration:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#initialize the activity values with a zero vector\n", "activity = np.zeros([ndilutions], np.float64)\n", "\n", "#calclulate activity with our competitive inhibition model and our ideal assay_compound_concentrations\n", "for i in range(ndilutions):\n", " activity[i] = competitive_inhibition(substrate_concentration, assay_compound_concentrations[i], enzyme_concentration, true_Ki, Km)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.semilogx(assay_compound_concentrations, activity, 'ro');\n", "plt.xlabel('ideal $[I]$ (M)');\n", "plt.ylabel('$V_{0}/V_{max}$');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course this is data without error bars, and is not how a real experiment would work. If we assumed both the Genesis (tip-based) and Echo (direct dispensing) methods gave us exactly the right answer for the activity, then these activity values would give us the $pIC_{50}$ values on the 'ideal' line in the first graph." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###2. Adding the inaccuracy and imprecision of the Tecan Genesis liquid-handling robot." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "In reality, every experimental operation---such as a volume transfer---will be imperfect, leading to imperfect assay results. We can model this---and its often surprising impact on the assay results---by making a simple model for the random and systematic variation with each operation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Liquid-handling robots can't transfer the specified volume exactly. Each transfer operation has some (a) inaccuracy (modeled as a constant bias factor for all dispensing operations) and (b) imprecision (random error associated with each volume transfer). It is important to consider these factors separately, as often liquid handlers are calibrated for precision, rather than accuracy, which means bias can creep in. We'll ignore other contributions to error, such as compound stickiness, insolubility, etc., though in future iterations including them may be useful." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![https://en.wikipedia.org/wiki/Accuracy_and_precision](img/accuracy_precision_simple.png \"https://en.wikipedia.org/wiki/Accuracy_and_precision\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose we generate this dilution series using a Tecan Genesis robot used in the assay.\n", "\n", "Published manufacturer specifications for the imprecision of the Tecan Genesis are available online:\n", "\n", "[imprecision data for Tecan Genesis](http://www.frankshospitalworkshop.com/equipment/documents/automated_analyzer/user_manuals/Tecan%20Genesis%20RMP%20-%20User%20manual.pdf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/GenesisImprecision.png \"GenesisImprecision.png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Tecan does not generally publish inaccuracy specifications, however, since a well-calibrated instrument can essentially eliminate inaccuracy with custom corrections applied to different volume ranges. In order to illustrate the role inaccuracy can play, we will instead employ inaccuracy data published for a similar class of liquid handling instrument---the Beckman NX/FX span-8:\n", "\n", "[inaccuracy/imprecision data for Biomek NX/FX](https://www.beckmancoulter.com/wsrportal/bibliography?docname=BR-10150B.pdf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we define a pipetting error function for the Tecan Genesis:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def tecan_genesis_pipetting_model(volume):\n", " # Imprecision from Tecan Genesis manual.\n", " # Inaccuracy estimated from Beckman Biomek NX/FX span-8.\n", " \n", " imprecision_function = interp1d(\n", " [1.5e-6,100e-6], # volume range (L)\n", " [0.03, 0.005]) # published relative imprecision for corresponding volumes Tecan Genesis\n", " inaccuracy_function = interp1d(\n", " [0.5e-6, 1e-6, 100e-6], # volume range (L)\n", " [0.05, 0.03, 0.03]) # published relative inaccuracies for corresponding volumesfor Beckman NX/FX span-8\n", " \n", " return [inaccuracy_function(volume), imprecision_function(volume)] " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just for reference, this is what the ideal pipetting model looks like in comparison:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def ideal_pipetting_model(volume):\n", "\n", " imprecision_function = interp1d(\n", " [1.5e-6, 100e-6], # volume range (L)\n", " [0.0, 0.0]) # relative imprecision for corresponding volumes\n", " inaccuracy_function = interp1d(\n", " [0.5e-6, 1e-6, 100e-6], # volume range (L)\n", " [0.0, 0.0, 0.0]) # relative inaccuracies for corresponding volumes\n", " \n", " return [inaccuracy_function(volume), imprecision_function(volume)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now consider a single *realization* of the automated pipetting process to generate a dilution series, utilizing the robot pipetting imprecision and inaccuracy model we defined above." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The main difference between our ideal *dilution_series* function here are that we are adding the inaccuracy in the form of the *transfer_bias*, which is a normal distribution around our inaccuracy value, to the *Vbuffer* and *Vtransfer* values. We are also then distributing this value according to a normal distribution around our imprecision value for both the *Vbuffer* and *Vtransfer* values." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, pipetting_model, Cstock=10e-3): \n", "\n", " # Use pipetting error function to determine inaccuracy and imprecision for transferred volumes.\n", " [transfer_inaccuracy, transfer_imprecision] = pipetting_model(Vtransfer) \n", " [buffer_inaccuracy, buffer_imprecision] = pipetting_model(Vbuffer) \n", "\n", " # Draw bias for this instrument recalibration.\n", " # We allow the relative bias to be of different scale between the different volumes pipetted,\n", " # but must be same direction.\n", " bias = normal() # draw random normal variate that will scale inaccuracy to determine relative bias\n", " \n", " # Initialize storage for actual concentrations and volumes.\n", " actual_concentrations = np.zeros([ndilutions], np.float64)\n", " actual_volumes = np.zeros([ndilutions], np.float64)\n", " \n", " # Fill initial well of with appropriate dilution of stock solution.\n", " Vinitial_transfer = (Cinitial / Cstock) * Vinitial # compute transferred volume of stock solution\n", " Vinitial_buffer = Vinitial - Vinitial_transfer # compute transferred buffer volume\n", " [initial_transfer_inaccuracy, initial_transfer_imprecision] = pipetting_model(Vinitial_transfer)\n", " [initial_buffer_inaccuracy, initial_buffer_imprecision] = pipetting_model(Vinitial_buffer) \n", " Vtransfer_actual = Vinitial_transfer * ((1+initial_transfer_inaccuracy*bias) + initial_transfer_imprecision*normal())\n", " Vbuffer_actual = Vinitial_buffer * ((1+initial_buffer_inaccuracy*bias) + initial_buffer_imprecision*normal()) \n", " actual_volumes[0] = Vtransfer_actual + Vbuffer_actual \n", " actual_concentrations[0] = Cstock * Vtransfer_actual / actual_volumes[0]\n", " \n", " # Create dilution series.\n", " for n in range(1,ndilutions):\n", " Vtransfer_actual = Vtransfer * ((1+transfer_inaccuracy*bias) + transfer_imprecision*normal())\n", " Vbuffer_actual = Vbuffer * ((1+buffer_inaccuracy*bias) + buffer_imprecision *normal())\n", " Vtot = Vtransfer_actual + Vbuffer_actual\n", " actual_concentrations[n] = actual_concentrations[n-1] * Vtransfer_actual / Vtot\n", " actual_volumes[n] += Vtot\n", " actual_volumes[n-1] -= Vtransfer_actual\n", " \n", " # Remove volume Vtransfer from last so that all wells have same intended volume.\n", " Vtransfer_actual = Vtransfer * ((1+transfer_inaccuracy*bias) + transfer_imprecision*normal())\n", " actual_volumes[ndilutions-1] -= Vtransfer_actual\n", " \n", " return [actual_volumes, actual_concentrations]" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "[actual_volumes, actual_concentrations] = \\\n", " ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can visualize the deviations in concentrations generated by this imprecision and inaccuracy for this single realization." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEVCAYAAAAhANiZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucXfO9//HXN6GRqLq1RCni4IPTC6r0gjJRB6eY9DLo\nFT3HGZfqRYVoJZKopNGqX5RO9Lj0+mOc0wQtRRN6OG1d+jsaFT5R1zYSP/cgCMk6f3zXZmdnz86a\nlb1n7cv7+XjMY2Z/19prfWbIvOf7XWt9vyFJEkRERPIYVnQBIiLSuhQiIiKSm0JERERyU4iIiEhu\nChEREcltnaILGCpmNgL4ALAYWFFwOSIirWI4sAVwp7u/WrmxY0KEGCC3Fl2EiEiL2ge4rbKxk0Jk\ncfp5H+DvRRYiItJCtiL+Ab642sZOCpHSENbf3f2RIgsREWkVZlb6suplAF1Yz6kvhOlLQlixJIQV\nfSFMK7oeEZEiKERy6A9hbi+cNhqGjYZhvXB6fwhzi65LRGSoKUQGqT+EuT3QVdneA10KEhHpNAqR\nQegLYVq1ACnpgS4NbYlIJ1GIDEI3jK/HPiIi7UIhIiIiuSlEBmEOzKjHPiIi7UIhMgi9STKhH+YN\ntL0f5vUmyYShrElEpEgKkUHqSZKx1YLkSpjbkyRji6hJROojhDAuhPB4+tFddD2tQCGSQ0+SjO2D\n6Utg5WJY+UM454gkOaDoukQkvxDCROCXxMkGtwBmp211ZWZbm9kLZjayyrb7zeyja3n8o83szrU5\nxmB00rQndZUOW00AOL7gWkRk7aRhMbnKpskhBJIkmVKvc7n7Y8AGA2xO0o+WoRARkY6WDltVC5CS\nySGE+UmSzKnH+cxsW+Ah4K3AocC3gc2AnwHrlu23CfB/gAOBZUCfu38n3bYpMBP4cPrevwLHu/vv\n61HjYGg4S0Q63UV12mewtgcuBY4DNgb+BmxXtv2nxEkPtwX2Az5nZken22YAK4GdgI2IU7RPb0CN\na6SeiIhIMb4A/Mbd5wGY2XTgpPTr0cBBwDvc/WXgUTP7LjFwLgfOIPZOVhJD5nlgyyGuH1CIiIic\nAMzOsE+9bQwsKr1w98TMHk1fbg0E4MGyqdiHAU+nX29JHOraGbgfeCbdf8hpOEtEOlp6rWNSjV0m\n1et6SIVHgW0q2t6Zfl4MvA5s5u4bu/vGxGDZJ91+BfBLd3+7u+8N/AcFhYh6IiLS8ZIkmRJCgNUv\nsE9MkmRqg047GxhvZocANxKHsrYGcPe/mdmtwAwzmwCMAvqJPZcvEu/uWgZgZjsT5+xbd7UzDAH1\nREREoHQb7zhiL+BxoLuBAZIADwI9wHeB54C9gPLnO44CNgceARYSA+TEdNtxwKlm9jRwAXAq8HYz\n25ghvk04JElL3ZKcW3pb3cPAGC2PKyKSzZp+d6onIiIiuSlEREQkN4WIiIjkphAREZHcFCIiIpKb\nQkRERHJTiIiISG4KERGRkhDGEcLj6YdWNsxAISIiAlBlZUMasLJhXma2lZkNL7qOSpo7S0SkxsqG\nhAB1XNkwDzPbnDhb72akc2blPM62pAtiuXvu45RTT0REOluGlQ2bYGhrJHESxkJm6q1FPZE2F0IY\nB1yYvjyhQVNai7SyrCsb1u3fjpkdCXwDGJM29bv78Wb2rvRc+wIvAN9z9+8Df0r3W2xm+wJfBZ50\n91PT430cuMDdx5jZMGIofoq47shzwNnufnG96i+nnkgbCyFM7IZfLoItFsEWh8Ps0ERjvCKdKB1S\n+hHQ6+6bAnsDnzGzLuAq4my9mwMfJU4VfwCwe/r20e5+N7Vn6v0scTbij7r724DTgfPNbFQjvh/1\nRNpUCGHimTC5fCB3DjARJocQStNei8jQr2y4CHi3uz9qZpsCmwLPEsNkT+Bj7v4KcVXD/YGngLdW\nOc5AQ1tziOuTPGlmWwGvAusBm9Txe3iDQqQNhRC6KwOkJG2bHEKYr6EtESBJ5hDCJAa+LjKJ+v5b\neR04zsyOBV4E/h9xQalXgRfd/YXSju5+P4CZVQuRgbyFuMbIWOAx4O60vSEjTxrOakOfhktrdTOm\npPsMVT0iTS/2zKstkTuxAXdmHUVcjOp97r6Dux8BvEIMkrea2dtKO5rZEWb2T1WOsYIYFiWbln09\nLf28hbvvRu2lf9eaeiJtaCZsWI99RDpKkkwhhPnEC9sJcAJJcnUDzrQB8Bqw3MxGAF8hXmBfAtwK\nTDOzrxOXyj0P+DyxlwLx3+0y4kqHn0sDZz2glzevkWyQ7r8iHS77btq+LjF86ko9kTa0ITxfj31E\nOk6SzCFJ3kmSbNmgAAH4MfAX4rK39xB/6f8I2Ak4kvig4yLgt8Bkd5/n7ouB64AHzGw/YBZxed1H\ngN8BV5QdfyKwPfA0cBPxGsm9wM6l77Ke34yWx21H8Z72NV0oHFfncV4RaUNaHrcTxXCoNQ5a7wuF\nItKhFCLtamgvFIpIh1KItLMYFuOAxcDjQDdJMrXYokSknejurHYXh600dCUiDaGeiIiI5KYQERGR\n3BQiIiKSm0JERERyU4iIiEhuChEREclNISIiIrkpREREJDeFiIiI5KYQERGR3BQiIiKSm0JERERy\nyzQBo5ltBHQBHwA2Iy6xuAS4C/ituy9rWIUiItK0aoaImW0PnA58hrjU4oL08zrE5RePBzYws58C\nM9z9gcaWKyIizWTAEDGzicBngcuBD7j7vQPst0u6341m9mN3P6sBdYqISBOq1RN5Dni3u79W6wDu\nvgD4pplNJfZMRESkQwwYIu4+czAHcvdXgO+vdUUiItIyag1n7Zv1IO7+X/UpR0REWkmt4axbgAQI\nGY6jW4VFRDpQrV/+1wPLgd8DpwDbASOBUVU+RNZKCGFcCOHx9KO76HpEJJsBQ8Td/xnYHLgI2BuY\nD9wE/BvwDnd/pfQxJJVK2wohTOyGXy6CLRbBFofD7BDCxKLrEpE1q/mciLsvBX4B/MLMRgIHAZ8E\nJpnZX4H/AP7T3R9seKXSlkIIE8+EyVPK2uYAE2FyCIEkSaYM9F4RKV6mJ9YB3P1lYDYw28zWAU4E\npgDTgOGNKU/aWQihuzJAStK2ySGE+UmSzBnSwkQks8whAmBmHwG6gcOBbYgX32fXvyzpBJ+GS2t1\nM6YA98OlxM6JiDShNU17MgI4gBgchwJvBW4AJgO/dvfnGl6htK2ZsGE99hGR4tR6TuQq4EDgNeBX\nxAvqN+hCutTLhvA8sHGGfUSkSdXqiXySGCALASNOxHiamcGqz44k7v7hhlUobWskHMsahkPTfUSk\nSdUKkdJw9ZoeOEzqV450lCSZQwiTiMOj1UxCF9VFmlqtubPOGsI6pFMlyRRCgNWDZCJJMrWAikRk\nEAZ82NDMrjez3bIeyMz2NLMb6lOWdJT4LMg4YDHwONCtABFpDWsazrrMzJYSb7G8Ebjf3V8HSJ8V\neR+wL3E9kZHAcY0tV9pWHLbS0JVIi6k1nPUHM9sD+ARwEjADIA2VYcDbiBfebwO+Q3xyfWXDKxYR\nkaaxpmlPXgf6gX4z2xDYjbjG+kriGuvz06lRRESkAw1m2pPniU+oi4iIAC28DoiZfcrMrim6DhGR\nTtaSIWJm7yI+QS8iIgVquRAxs2HAucAEsq26KCIiDdJyIQKcAVwOPFVwHSIiHS/ThXUzeztx7qwP\nAOtSh7mzzGxPYLa7b1nWthswC9gFeADodffbzWwa8EHgbuIqi2OB9YAdzOzL7n7BYM8vIiJrL+vd\nWZcTA+RnwAsV2wY1d5aZBeAY4DziGu6l9vWAa4GpwL8DXwCuMbPt3H1CleNsA/xAASIiUpysIdIF\ndLn7H+twzjOATwNnA6eVte8PrHD3Wenry8zsa8AhwFVVjhPQ5I8iIoXKek3kSaBe64hc4u67AndV\ntO8ELKho87R9Ne7+iLsfVqeaREQkh6w9kUnATDP7KnF9keXlG919edV3VeHuSwbYtD6wrKJtGTAq\n67FFRGRoZQ2R6cAmrN57gDikNLwOtbxEnMSx3ChWvwYjIiJNImuIHNnQKqL7iBM9ljPg50NwbhER\nySFTiLj7LaWvzWwzYs/jiTrP2jsPGGFmJxFv8/08cbJHrVEiItKkMl1YN7NgZqea2dPE2XsXAU+Z\n2bfX8vxv3F2VXlc5GDgKeBo4ETjM3V9ey3OIiEiDZB3O+hZwMvBN4PfEnsiHgbPM7AV3nz7YE6e9\nm80q2u4BPjLYY4mISDGyhshxwHHuPrus7X/MbDHwPeKFdxER6TBZnxPZCPhLlfZ7gS3qV46IiLSS\nrCHyJ6qvn/6vxPmsRDpCXwjTl4SwYkkIK/pCmFZ0PSJFyzqcdSpwi5ntD9xOnHJkL2BH4rQkIm2v\nP4S5vXEKIAB64fT+EPbsSZKxRdYlUqRMPRF3v5O4vvrvgDHA5sBvAHP3WxtXnkhz6A9hbk9ZgJT0\nQFd/CHOLqEmkGQxmjfWFwCkNrEWkKfWFMK23SoCU9EBXXwjTepNktdmmRdrdgCFiZn8ADnb359Kv\nS0rPdpTWFMm1nohIq+iG8Rn3UYhIx6nVE7kBeK3s64FoOnYRkQ41YIi4+1llL28Gfu/ur5XvY2Yj\ngH9uTGkizWEOzOiNK3uuaR+RjlNrOGsd4oX3QAyRbczsiYrddidOkFg5+65I2+hNkgn9IexZ7cI6\nQD/M0/UQ6VS17s76EnEhqtLcVY+mr8s//hu4pYH1iTSFniQZ2x8nCV3FlTBXt/hKJ6t1TeRi4H5i\nT2Qe8Eng2bLtCfAiML9h1Yk0kZ4kGdsXwrRuGJ8Ac2D68UnyzaLrEilSrWsiCfG5EMxsO+CxOk/9\nLtJy0mGrCQDHF1yLSDPI+pzIM8BpZvaPvHmdBGA9YFd3H9OI4kREpLllnTvrR8BX0697gBXAPxDX\n/1jbNUVERKRFZQ2RA4HPu/vngAXAee6+J3EFQvVCREQ6VNYQGUlcAx3i9O/vT7++CDim3kWJiEhr\nyBoifyWuZAgxTPZKv14PeFu9ixIRkdaQ9cL6ucCP0wcQrwTuNrME+CCgWXxFRDpU1qngfwwcANzn\n7g4cBowmPmyo4SwRkQ6VqSdiZv3AmWmA4O43ATc1sjAREWl+Wa+JjAVeb2QhIiLSerJeEzkPuNTM\nzgce4s35tIA3FqwSEZEOkzVEpqaf96myLQGG16ccERFpJVlDZAxvTnVSSYtSiYh0qKwhchnwCXd/\nrrzRzN5BXPVw93oXJiIiza/WolQfJz5gGID9gMlm9lLFbjsA2zSsOhERaWq1eiL3Aqfw5jDWHsDy\nsu2l9US+0JjSRESk2dVaT+RhYH8AM7scONndlw5RXSIi0gIyXRNx96PNbLiZbQusS8VFdt3iKyLS\nmbI+sX4wcCmweZXNusVXRKRDZb0763zgNmAK8ELjyhERkVaSNUS2Bg5294caWYyI1EdfCNO74VSA\nOTAjXRtepO6yzp11B28uRCUiTaw/hLm9cNpoGDYahvXC6f0hzC26LmlPWXsiVwGzzGwfYCGr3uqL\nu19c78JEZPD6Q5jbA12V7T3Q1R/C3J4kGVtEXdK+sobIN4ClwKEDbFeIiBSsL4RpvVUCpKQHuvpC\nmKahLamnrLf4btvgOkRkLXXD+Iz7KESkbrL2RDCzEcCngB2BmcB7iCsdPtGg2kREpMllurBuZmMA\nB6YDZwAbAScC95qZJl8UaQJzYEY99hEZjKx3Z80EbiROtvgK8QHDo4BriQtWiUjBepNkQj/MG2h7\nP8zT9RCpt6whsjfwPXdfWWpw99eBc4gTM4pIE+hJkrHVguRK0J1Z0hBZQ+RVYJMq7WOIM/mKSJPo\nSZKxfTB9CaxcDCt/COcckSQHFF2XtKesF9Z/Csw0s+OJky9uYmY7Az8AftGo4kQkn3TYagLA8QXX\nIu0ta0/kDOBm4FZgFPEJ9tnA1cDpjSlNRESaXdbnRF4DxpvZJOAf0vf91d01lCUi0sGyTgU/EjiX\nGBznp20LzOxGYLy7L695ABERaUtZh7MuIK5yeFdZ23jgY8B3612UiIi0hqwh0g183t1vKzW4+6+A\nY4AjG1GYiIg0v6whMozqqxcuB9arXzkiItJKsobItcAFZrZTqcHMdiA+yX5dIwoTEZHml/U5ka8B\nvwQWmNmytG0UcAPw5UYUJiIizS/rLb7PAPuZ2T8CuxCHsRa6+32NLE5ERJrbYKaCHw68BNxNfGod\nM9sRwN0XNqQ6ERFpalmfEzkYuBTYvMrmhOoX3UVEpM1l7YmcD9wGTAFeaFw5IiLSSrKGyNbAwe7+\nUCOLERGR1pL1Ft87gPc3shAREWk9WXsiVwGzzGwfYCHx7qw3uPvF9S5MRESaX9YQ+QawFDh0gO0K\nERGRDpT1OZFtG1yHiIi0oME8JzIMOIT4sOFwwIHr3P2VBtUmIiJNLutzIu8CfkVckMrT920PPG5m\n+7n7osaVKCIizWow64ksAbZ29/e7+/uAbYCHic+QiIhIB8oaImOBU9M5tABw96eAU4EDG1GYiLS/\nvhCmLwlhxZIQVvSFMK3oemTwsobIUuKsvZVGASvrV46IdIr+EOb2wmmjYdhoGNYLp/eHMLfoumRw\nsobIbOBCM3t3qcHM3gtcCFzdiMJEpH31hzC3B7oq23ugS0HSWrKGyBnAM8B8M3vJzEqz+T4KfLVR\nxYlI++kLYVq1ACnpgS4NbbWOrM+JLAU+ZmbvAXYGXgHuc/cHGlmciLSfbhifcZ8JQ1COrKWst/gG\n4BTgCXf/adp2g5ld7+66O0tEpENlHc6aBnwdeL6s7RrgG2Y2qe5ViUjbmgMz6rGPNIesIfJF4Eh3\nv6bU4O4XAl8A/rURhYlIe+pNkgn9MG+g7f0wrzdJNJTVIrKGyPrEC+uVlgAb168cEekEPUkytlqQ\nXAlze5JkbBE1ST5ZQ2QeMN3M3ggMM9uQuNLh7xpRmIi0t54kGdsH05fAysWw8odwzhFJckDRdcng\nZJ2A8WTgJmCRmZVWNxxDnPbksEYUJiLtLx22mgBwfMG1SD5Zb/F9LH248ADiLL7LiRMx3ujuemJd\nRKRDZZ4K3t1fBX6dfoiIiGS+JiIiIrIahYiIiOSmEBERkdwUIiIikptCREREclOIiIhIbgoRERHJ\nTSEiIiK5KURERCQ3hYiIiOSmEBERkdwUIiIikptCREREcss8i28zSdc0eTR9eZ67X1tkPSIinarl\nQsTMtgTucPcji65FRKTTtVyIAO8DtjezW4CHgBPd/eViSxIR6UyteE3kSeBsd98P+AtwSrHliIh0\nrsJ6Ima2JzDb3bcsa9sNmEVcgvcBoNfdbzezc4APAXcT12O+O33LdcDkIS1cRDpPCOOAC9NXJ5Ak\nc4osp5kMeYiYWQCOAc4jrtVeal8PuBaYCvw78AXgGjPbzt3PKNvvtPR93wc+ypuBIiJSfyFMZNU/\nVmcTwiSSZEpRJTWTIoazzgBOBs4GQln7/sAKd5/l7ivc/TLgCeCQivdfCHSZ2c3AfsD5jS9ZRDrS\n6gFSMjnd1vGKGM66xN2/bWb7VbTvBCyoaPO0/c0G9xeBQxtXnogIEEI3tYfLJxPC/E4f2hrynoi7\nLxlg0/rAsoq2ZcCoxlYkIrK6l+HSeuzT7prp7qyXgJEVbaOAFwqoRUQ63POwYT32aXfNFCL3AVbR\nZqw+xCUi0nAnw/P12KfdNVOIzANGmNlJZraumR0LbAbcUHBdItKBroJja105n5juM1T1NKuiQyQp\nfeHuy4GDgaOAp4ETgcP0NLqIFCFJkjlTYVK1IDkTmAqTkg6/qA4FPmzo7rcQexrlbfcAHymkIBGR\nCkmSTAkhMB8mX0T8q/cE4BqYmCTJ1ILLawqtOHeWiMiQSYNk/tXwRo4kSXJ10XU1C4WIiMgapMNW\nHT90VU3R10RERKSFKURERCQ3hYiIiOSmEBERkdwUIiIikptCREREclOIiIhIbgoRERHJTSEiIiK5\nKURERCQ3hYiIiOSmEBERkdwUIiIikptCREREclOIiIhIbgoRERHJTSEiIiK5KURERCQ3hYiIiOSm\nEBERkdwUIiIibaAvhOlLQlixJIQVfSFMG6rzKkRERFpcfwhze+G00TBsNAzrhdP7Q5g7FOdWiIiI\ntLD+EOb2QFdlew90DUWQKERERFpUXwjTqgVISQ90NXpoa51GHrzJDE8/b2VmhRYiIlIPV6yzzvi/\nr2GfvWC8mc1ai9NslX4eXm1jJ4XIFunnWwutQkSkTo7cbrssuw0DHq7D6bYAHqxs7KQQuRPYB1gM\nrCi4FhGRVjGcGCB3VtsYkiQZ2nJERKRt6MK6iIjkphAREZHcFCIiIpKbQkRERHJTiIiISG4KERER\nya2TnhOpKzPbDZgF7AI8APS6++3FVlWbme0JzHb3LYuupZKZ7Q18DzDgKWCGu19cbFWrM7MeYDLx\nKd5HgW+6+9XFVjUwM9scuAc4xt1/XXQ9lczsG8A5wKtlzQe5+38XVNJqzGwroI/4nNlS4v+bFxRb\n1arM7LPEGsutD1zs7r2NPLd6IjmY2XrAtcAlwIbATOAaM1u/0MIGYGbBzI4FbgTWLbqeSma2MXAN\n8H133wj4NDDNzMYWW9mqzGxH4FLiL+QNgK8AV5rZJsVWVtMlwCZAsz4QtitwurtvUPbRTAESgDnA\nvcSf4z8BZ5nZBwstrIK7/7z8ZwiMAx4HpjT63AqRfPYHVrj7LHdf4e6XAU8AhxRc10DOAE4GzgZC\nwbVUszVwrbtfAeDu/wPcDHy40KoquPtCYDN3/6OZrQOMJv5lurzYyqozs17gReBvRddSw27An4su\nooa9iE9rn57+W18AfAhYWGxZAzOztwKXAye4++ONPp9CJJ+dgAUVbZ62N6NL3H1X4K6iC6nG3f/s\n7l8svU57JvsAdxdXVXXuvszMxgCvAD8hDme9WHBZq0l7TV8Hji+6loGY2Sji8OVXzGyxmS0ws2OK\nrqvC7sReyLlpjQ580N2fKbiuWsYDf3b3a4biZAqRfNYHllW0LQNGFVDLGrn7kqJryMrMNiQOFd7l\n7tcWXc8AHgNGAAcA55nZ/gXXs4q0l/QT4CR3f7boemrYjDgh6kXAu4DjiD/PgwqtalWbEEceniTW\neDRwQXoNr+mkvZCTiNfthoQurOfzEjCyom0U8EIBtbSN9C/8XxFvVDii4HIG5O6lCTxvNrP/BLqJ\nw2/N4kzgbne/sayt6YYx3f0R4i/oktvM7KfEn+dvCilqda8Cz7j7d9LXf0j/mx8O3FZcWQPqBh5x\n9zuG6oTqieRzH7EbXs5YfYhLMjKz3YE/Ate7e7e7v7qm9ww1MzvEzG6qaB4BNNtf+z3AkWb2rJk9\nS7zmdIWZjS+4rlWY2fvNbEJF80jg5SLqGcD9wDpmVv67spn/+D4U6B/KEzbzD6OZzQNGmNlJxNt8\nP0/smt9QaFUtKr0N9TfAue5+btH11PAnYA8z+xzwC+Ag4GBgUqFVVXD3nctfm9nDwInufl1BJQ1k\nKXCmmS0EZhN7JUcA+xZa1apuIg5VTzKzKcQL7d3Eocxm9EHi8OCQUU8kB3dfTvzlcRTwNHAicJi7\nN9NfUANpxls9vwS8HZhoZi+UfUwturBy7v4E8S+9rxB7H2cBh6d3bckgufsDwKeAicRAuQD4ors3\nzQ0V7v4KsB+wJ/D/gZ8BXx7K4aKszGw4sCVxzaQho/VEREQkN/VEREQkN4WIiIjkphAREZHcFCIi\nIpKbQkRERHJTiIiISG4KERERyU0hIiIiuSlEpG2Z2efSKT8ws23NbGU6RTrp1wdmPM4YM/t42evM\n72126ffSVOu2SGtRiEineIy4iNRfc7z3UlZdIGs0zTVrr0hhNAGjdAR3X0mc+yiPQNlU6u6e9zgi\nbUchIm0jHarqI860eh9xbZLStm2Bh4CdKidMNLNHgGnuPit9XVq5cgxxcZ99gX3NbC937zKzlcBB\n7n6jmY0AvsWbMzn/AfiKu/8lPdYtxFmf9yDO/PoUMNHdLx/ge6i5f41at3X3x9LtZwPHEJeevQf4\nDPDltO154FR3v7LstPub2WXERZduBv7N3f+eHv+dwEzgQOIkiVcD4939JTPbD7gC+DlxEs1L3P2U\nat+XtC8NZ0lbMLO3ANcTZ1V+PzAD+BrZZi1OBtgvIa5N/wfiDLOfqLLPD4DPAv+SnncRcKOZbVC2\nzwRioO1CnPK8z8w2rVFPtf03WUOt5c4Bvk0Moo2BO4nrwO8B/Bq4OJ3xteRE4KvE8F2fOM09ZhbS\n879MnMX2E8CuxOG9ks2ArYiBNaRTkEtzUIhIu/gY8VrFl9z9fnfvJ/6CX6sV/dx9KfEX8Evu/lz5\nNjPbiLhc6snu/lt3v4/4F/nraXvJTe5+cbqS37eAtwDvqXHaavu/N2PJCfBzd7/O3RcQQ+BVdx+f\nTr0+E9iA+Iu/5Ex3v97d70nr3tvM3ktc32NH4Jj0Z3oHsTfz6bSHUjLd3R929wcz1ihtRCEi7WIX\n4OH0l37JXQ0+547AcOD2UoO7v0b8y798YaiFZdtLSyivO8Axk0HuX035zQMvE28qKH8NcUXGkj+W\nne8R4lopu6QfbwOeLa3xQlyYK2HVlT0fGkRt0mZ0TUTaRcLqvY7XBvHecln/XbwyQPs6xHApHXt5\nlX1q9ZBq7Z+l1srve2WNcwGsqHg9jPi9DQceJK7gWFnLYuIQFzTXcrYyxNQTkXYxH9iu4lrD7hnf\nuxzYsOz1dhXbB7oG8SDxF/aHSg3ptZk9AM947sFaU6157Fr6wsx2To9/X/qxFbDU3R9y94eIPaLz\niD0UEfVEpG3MBR4AfmJm44EdiMvYPp/hvXcCx5jZDcAoVl8z/UVgBzN7h7s/WWpM71C6CDjfzJYB\njxMvio8g3rEEFbcHZ7Cm/ddUax7nmtmTxGGsPuBad/d07fP7gP+b/kxDun25uy9J7wyTDqeeiLQF\nd19BXPce4A7iba4zKnYbqEfxTWIA3E6882hixb6zgC7ghirvPY142+sv0vO+A9g3XY+9dM7BrEG9\npv3XVGuW41W+ngb8CLiVeH3jaAB3T4DDibf2/g64iRjU42ocSzqM1lgXEZHc1BMREZHcFCIiIpKb\nQkRERHIkxFiKAAAAIklEQVRTiIiISG4KERERyU0hIiIiuSlEREQkN4WIiIjk9r/SGjVUMrQifQAA\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Set 'ideal_concentrations' and 'ideal_volumes' to the ideal assay_compound_concentrations and assay_volumes from before.\n", "ideal_concentrations = assay_compound_concentrations\n", "ideal_volumes = assay_volumes\n", "\n", "plt.semilogy(range(ndilutions), ideal_concentrations, 'ko', range(ndilutions), actual_concentrations, 'ro');\n", "plt.xlabel('dilution number');\n", "plt.ylabel('concentration (M)');\n", "plt.legend(['ideal','actual']);\n", "plt.axis([-0.5, ndilutions - 0.5, 0.0, Cinitial * 1.2]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note the trend that the magnitude of the concentration error increases with subsequent dilutions. To better see this effect, we plot the relative errors in concentration, volume, and total quantity of compound per well." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nZNkAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot([-0.5, ndilutions], [1, 1], 'k--');\n", "plt.plot(range(ndilutions), actual_concentrations / ideal_concentrations, 'ro', \\\n", " range(ndilutions), actual_volumes / ideal_volumes, 'go', \\\n", " range(ndilutions), (actual_volumes*actual_concentrations)/(ideal_volumes*ideal_concentrations), 'bo');\n", "plt.legend(['exact', 'concentration', 'volume', 'quantity'], loc='upper left');\n", "plt.axis([-0.5, ndilutions - 0.5, 0.5, 1.5]);\n", "plt.ylabel('relative quantity');\n", "plt.xlabel('dilution number');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since this was only a single *realization* of the pipetting process, it is difficult to draw conclusions about the *typical* errors in creating a dilution series with a liquid handler. We can do this by simulating *many* independent realizations of the same experiment, and then estimate the **coefficient of variation (CV)** from the variation among experiments." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, let's repeat the experiment 5000 times:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "nreplicates = 5000\n", "\n", "actual_volumes_n = np.zeros([nreplicates, ndilutions], np.float64)\n", "actual_concentrations_n = np.zeros([nreplicates, ndilutions], np.float64)\n", "\n", "for replicate in range(nreplicates):\n", " [actual_volumes_replicate, actual_concentrations_replicate] = \\\n", " ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " \n", " actual_volumes_n[replicate,:] = actual_volumes_replicate\n", " actual_concentrations_n[replicate,:] = actual_concentrations_replicate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's use this to compute the CV, using numpy.std, which calculates the standard deviation:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "volumes_cv = (actual_volumes_n / ideal_volumes).std(0)\n", "concentrations_cv = (actual_concentrations_n / ideal_concentrations).std(0)\n", "quantity_cv = ((actual_volumes_n * actual_concentrations_n) / (ideal_volumes * ideal_concentrations)).std(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting the CV as a function of dilution number reveals surprising trends." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(range(ndilutions), concentrations_cv*100, 'ro', \\\n", " range(ndilutions), volumes_cv*100, 'go', \\\n", " range(ndilutions), quantity_cv*100, 'bo')\n", "plt.xlabel('dilution number')\n", "plt.ylabel('CV (%)')\n", "plt.xlim([-0.5, ndilutions - 0.5])\n", "plt.legend(['concentration', 'volume', 'quantity'], loc='lower right');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While the error in volume is relatively constant with dilution number, the CV (imprecision) in both concentration and quantity of compound increases with dilution number: up to 6% in the final sample." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What about bias? Is there significant deviation from the expected average concentration due to this process?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the mean of all these values for this 5000 replicate test." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nREQkmf8H/7rsrx559ogAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute relative bias.\n", "volumes_bias = (actual_volumes_n / ideal_volumes).mean(0) - 1\n", "concentrations_bias = (actual_concentrations_n / ideal_concentrations).mean(0) - 1\n", "quantity_bias = ((actual_volumes_n * actual_concentrations_n) / (ideal_volumes * ideal_concentrations)).mean(0) - 1\n", "\n", "#Let's define DILUTIONS to make plotting easier.\n", "dilutions = np.arange(ndilutions)\n", "\n", "# Plot relative biases.\n", "plt.plot([0, ndilutions], [0, 0], 'k--', dilutions, concentrations_bias*100, 'ro', \\\n", " dilutions, volumes_bias*100, 'go', dilutions, quantity_bias*100, 'bo')\n", "plt.xlabel('dilution number')\n", "plt.ylabel('RB (%)')\n", "plt.legend(['none','concentration', 'volume', 'quantity'], loc='lower right')\n", "plt.axis([-0.5, ndilutions - 0.5, -100, 100]);" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "We see that the process is essentially free of bias, which is expected if the bias for each realization of the experiment is chosen randomly for this model. In reality, if multiple experiments are run with the same instrument without recalibration, the same bias in dispensing volumes would lead to biased assay results, but for the purposes of this simulation, we are sampling over many random recalibrations of the same instrument." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Now lets see how our estimation of enzyme activity is affected by including imprecision and inaccuracy, running many assay replicates." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we need to add one more step of pipetting that includes our pipetting imprecision and inaccuracy as we transfer a *compound_volume* (2 uL) of our dilution series into the enzyme assay solution of volume *mix_volume* (10 uL):" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.00000000e-04 5.00000000e-05 2.50000000e-05 1.25000000e-05\n", " 6.25000000e-06 3.12500000e-06 1.56250000e-06 7.81250000e-07]\n" ] }, { "data": { "image/png": "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\nzMwG0ESeE1kH2Jv0sOEkQMAvJD3SpdjMzKzPFX1O5HnAz0gbUin/3POBZRExQ9LfuheimZn1q4ns\nJ3InsIWkl0p6MbAlcAvpGRIzMxtBRZPIa4FD8xpaAEi6BzgU2LMbgZmZWf8rmkSWk6r2NpsKPNG5\ncMzMbJAUTSILgVMj4t/qDRHxIuBU4KfdCMzMzPpf0dVZRwA/Aq6NiIfztimkBPLxbgRmZmb9r+hz\nIsuB10fE9sALgUeAJZJu7GZwZmbW34ou8c2ATwF3STonb1sUERdI8uosM7MRVXRO5Hjgk8ADDW3n\nAZ+OiHkdj8rMzAZC0STyfuDdks6rN0g6FXgf8J/dCMzMzPpf0SSyPnDfGO13Aht1LhwzMxskRZPI\nxcAJEfFkwoiIZ5F2Ovx1NwIzM7P+V3SJ70eBi4C/RUR9d8OtSWVP9ulGYGZm1v+KLvG9PX+48HWk\nKr4rSYUYL5TkJ9bNzEZU4VLwkh4Ffp6/zMzMiieRfhERBwLvyt9uQeoNfbjCkMzMRlbRifW+Iek0\nSXsAbwDuAuZWHJKZ2cgauCTS4MPADyTdXXUgZmajauCGsxq8jdQbMTOzilSWRCJiZ2ChpM0a2nYE\nFpBWgN0IHCjpiog4DngF8AdJn4yIFwOS9PBY1zYzs97oeRLJiznuD8wnLRWut68HnA8cDXyDVFLl\nvIiYLumIpsu8DvhNbyI2M7NWqpgTOYL08OIxQNbQvgewStICSasknUWaON97jGtMB27reqRmZtZW\nFUnkDEk7AFc3tW8LLG5qU96+ZqN0sKRfdSk+MzMrqOdJRNKdLQ6tD6xoalvB2Hu7m5lZH+inJb4P\nkbbcbTQVeLCCWMzMrIB+SiJLgGhqC9Ye4jIzsz7RT8+JXAxMjohDSMt89wOmAYsqjcrMzFqquidS\nq38jaSUwE9gXuBc4GNjHz4KYmfWvynoiki4h9TQa264DXlVJQGZmNmFV90TMzGyAOYmYmVlpTiJm\nZlaak4iZmZXmJGJmZqU5iZiZWWlOImZmVpqTiJmZleYkYmZmpTmJmJlZaU4iZmZWmpOImZmV5iRi\nZmalOYmYmVlpTiJmZlaak4iZmZXmJGJmZqU5iZiZWWlOImZmVpqTiJmZleYkYmZmpTmJmJlZaU4i\nZmZWmpOImZmV5iRiZmalOYmYmVlpTiJmZlaak4iZmZXmJGJmZqU5iZiZWWlOImZmVpqTiJmZlbZu\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "compound_volume = 2.0e-6 # volume of compound dilution added to assay (L)\n", "mix_volume = 10.0e-6 # volume of enzyme assay mix added to assay (L)\n", "ideal_assay_concentrations = ideal_concentrations * ( compound_volume/(compound_volume + mix_volume) ) # ideal (L)\n", "\n", "# Plot the concentration range in the final assay\n", "plt.semilogy(range(ndilutions), ideal_assay_concentrations, 'ko');\n", "plt.xlabel('dilution number');\n", "plt.ylabel('concentration (M)');\n", "plt.legend(['ideal']);\n", "plt.axis([-0.5, ndilutions - 0.5, 1e-8, Cinitial * 1.2]);\n", "print ideal_assay_concentrations" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def robot_dispense(compound_volume, mix_volume, compound_concentrations, pipetting_model):\n", " [compound_inaccuracy, compound_imprecision] = pipetting_model(compound_volume)\n", " [mix_inaccuracy, mix_imprecision] = pipetting_model(mix_volume)\n", " \n", " from numpy.random import normal\n", " dispense_volume = np.zeros([ndilutions], np.float64)\n", " dispense_compound_concentration = np.zeros([ndilutions], np.float64)\n", " \n", " compound_bias = compound_inaccuracy * normal()\n", " mix_bias = mix_inaccuracy * normal()\n", "\n", " for i in range(ndilutions):\n", " compound_volume_dispensed = compound_volume * ((1+compound_bias) + compound_imprecision*normal())\n", " mix_volume_dispensed = mix_volume * ((1+mix_bias) + mix_imprecision*normal())\n", " dispense_volume[i] = compound_volume_dispensed + mix_volume_dispensed\n", " dispense_compound_concentration[i] = compound_concentrations[i] * compound_volume_dispensed / dispense_volume[i]\n", "\n", " return [dispense_volume, dispense_compound_concentration]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nmy8tMlA0jAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#initialize the activity values with a zero vector\n", "activity = np.zeros([nreplicates,ndilutions], np.float64)\n", "\n", "#calclulate activity with our competitive inhibition model and our new actual_concentrations for nreplicates\n", "for replicate in range(nreplicates):\n", " # create a dilution series\n", " [actual_volumes, actual_concentrations] = ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " # combine aliquot of compound dilution with assay mix\n", " [dispense_volumes, dispense_compound_concentrations] = robot_dispense(compound_volume, mix_volume, actual_concentrations, tecan_genesis_pipetting_model)\n", " # measure V_0/V_max for each dilution\n", " for i in range(ndilutions):\n", " activity[replicate,i] = competitive_inhibition(substrate_concentration, dispense_compound_concentrations[i], enzyme_concentration, true_Ki, Km)\n", "\n", "#plot a subset of V_0/V_max realizations\n", "plt.semilogx(ideal_assay_concentrations, activity[::10].transpose(), 'r-');\n", "plt.xlabel('ideal [I] (M)');\n", "plt.ylabel('$V_{0}/V_{max}$');\n", "plt.axis([10**(-6.2), 10**(-3.9), 0, 0.06]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's not hard to see that the activity will vary over a substantial range." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To determine the distribution of $IC_{50}$s consistent with the newly imposed experimental errors, we next use a nonlinear fit to each realization of the experiment to extract an $IC_{50}$ using this relationship to Ki for competitive inhibition, where we have already defined *[S]* and *Km* as constants:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$IC_{50} = K_{i}(1+\\frac{[S]}{K_{m}})$$" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#define the function 'competitive_inhibition_IC50' using this equation\n", "def competitive_inhibition_IC50(substrate_concentration, inhibitor_concentration, enzyme_concentration, IC50, Km):\n", " Ki = IC50/(1 + substrate_concentration/Km)\n", " return competitive_inhibition(substrate_concentration, inhibitor_concentration, enzyme_concentration, Ki, Km)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def fit_ic50(inhibitor_concentrations, activities, Ki_guess):\n", " \n", " def objective(inhibitor_concentrations, IC50):\n", " ndilutions = len(inhibitor_concentrations)\n", " activities = np.zeros([ndilutions], np.float64)\n", " for i in range(ndilutions):\n", " activities[i] = competitive_inhibition_IC50(substrate_concentration, inhibitor_concentrations[i], enzyme_concentration, IC50, Km)\n", " \n", " return activities - activities.min()\n", " \n", " # fit the IC50 using a good initial guess for curve_fit \n", " import scipy.optimize\n", " IC50_guess = Ki_guess*(1 + substrate_concentration/Km)\n", " [popt, pcov] = scipy.optimize.curve_fit(objective, inhibitor_concentrations, activities - activities.min(), p0=[IC50_guess], maxfev=1000)\n", " \n", " return popt[0]" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IC50s_tips = np.zeros([nreplicates], np.float64)\n", "for replicate in range(nreplicates):\n", " IC50s_tips[replicate] = fit_ic50(ideal_assay_concentrations, activity[replicate,:], true_Ki)\n", "pIC50s_tips = np.log10(IC50s_tips)\n", " \n", "nhist = 20\n", "plt.hist(pIC50s_tips, nhist);\n", "plt.xlabel('measured pIC50 (M)');\n", "plt.ylabel('P(pIC50)');\n", "plt.yticks([]);\n", "plt.xlim(-8, -7);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The imprecision and inaccuracy in the measured $pIC_{50}$s may not be uniform across the whole $K_i$ range, however. To see if there is variation as a function of true inhibitor $K_i$, we can characterize imprecision and inaccuracy as a function of $pK_i$." ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def robot_IC50s(true_Ki):\n", " nreplicates = 1000\n", " IC50s = np.zeros([nreplicates], np.float64)\n", " for replicate in range(nreplicates):\n", " [actual_volumes, actual_concentrations] = ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " [dispense_volumes, dispense_compound_concentrations] = robot_dispense(compound_volume, mix_volume, actual_concentrations, tecan_genesis_pipetting_model)\n", " activities = np.zeros([ndilutions], np.float64)\n", " for i in range(ndilutions):\n", " activities[i] = competitive_inhibition(substrate_concentration, dispense_compound_concentrations[i], enzyme_concentration, true_Ki, Km)\n", " IC50s[replicate] = fit_ic50(ideal_assay_concentrations, activities, true_Ki)\n", " return IC50s" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#define arbitrary pKi array\n", "pKis = np.array([-12, -11, -10, -9, -8, -7, -6, -5, -4, -3], np.float64);\n", "Kis = 10**pKis\n", "nKis = len(pKis)\n", "\n", "#initialize with zeros\n", "genesis_pIC50_bias = np.zeros([nKis], np.float64)\n", "genesis_pIC50_CV = np.zeros([nKis], np.float64)\n", "\n", "for (i, Ki) in enumerate(Kis):\n", " IC50s = robot_IC50s(Ki) \n", " pIC50s = np.log10(IC50s)\n", " pIC50_true = np.log10(Kis[i]*(1 + substrate_concentration/Km))\n", " genesis_pIC50_bias[i] = pIC50s.mean() - pIC50_true;\n", " genesis_pIC50_CV[i] = pIC50s.std() / abs(pIC50s.mean()) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can plot the bias in the measured $pIC_{50}$ values to examine the bias and CV." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot relative error in measured Ki values as a function of true Ki.\n", "plt.plot([pKis.min(), pKis.max()], [0, 0], 'k-', pKis, genesis_pIC50_bias, 'ro');\n", "plt.xlabel('pKi');\n", "plt.ylabel('bias in measured pIC50');\n", "plt.axis([pKis.min()-0.5, pKis.max()+0.5, -1.5,1.5]);" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nBbVFEC/TfI+iAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(pKis, genesis_pIC50_CV*100, 'ko');\n", "plt.xlabel('pKi');\n", "plt.ylabel('pIC50 CV (%)');\n", "plt.axis([pKis.min(), pKis.max(), 0, 10]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###3. Compare this to inaccuracy and imprecision for acoustic dispensing with the LabCyte Echo." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Preparation of a dilution series by direct dispensing with the LabCyte Echo is a different process. In the protocol described in [2], various quantities of 10 mM stock up to 120 uL were dispensed using the Echo, and then backfilled to 120 uL with DMSO.\n", "\n", "According to published [inaccuracy/imprecision specifications for LabCyte Echo](http://www.labcyte.com/sites/default/files/support_docs/Echo%205XX%20Specifications.pdf), the Echo has an inaccuracy of 10% and an imprecision of 8% over the entire dispense range of 2.5 nL to 10 uL. We consider a 8-point dilution series spanning 2.5 nL (the smallest quantity the Echo can dispense) to 120 nL (the largest quantity dispensed in the assay) from 10 mM stock solution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/Echo.png \"Echo.png\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unlike for tip-based dispensing, here we aren't creating a dilution series, we will be directly dispensing the assay amounts into the assay wells. We will apply the inaccuracy and imprecision in a similar way as before, to determine the normal distribution around which to define *dispense_volumes* and *backfill_volume*. The *backfill_volume* is the volume of DMSO added to the mix in addition to the compound stock (also in DMSO) so that the concentration of DMSO remains constant throughout the assay." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/direct_dispense.png \"direct_dispense.png\")" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# define echo_assay_dispense function that mimics the process of dispensing from the Echo into mix_volume\n", "def echo_assay_dispense(C0, mix_volume, backfill_volume, dispense_volumes):\n", " # Manufacturer specifications for LabCyte Echo relative inaccuracy and imprecision\n", " echo_inaccuracy = 0.10\n", " echo_imprecision = 0.08\n", "\n", " ndilutions = len(dispense_volumes)\n", " echo_volume = np.zeros([ndilutions], np.float64)\n", " echo_concentration = np.zeros([ndilutions], np.float64)\n", " echo_bias = echo_inaccuracy * normal()\n", " \n", " for i in range(ndilutions):\n", " # Compute intended dispensing volumes.\n", " compound_volume_intended = dispense_volumes[i]\n", " backfill_volume_intended = backfill_volume - compound_volume_intended\n", " \n", " compound_volume_dispensed = compound_volume_intended * ((1+echo_bias) + echo_imprecision*normal())\n", " backfill_volume_dispensed = backfill_volume_intended * ((1+echo_bias) + echo_imprecision*normal())\n", " \n", " # Dispense the assay mix with a Tecan Genesis\n", " [genesis_inaccuracy, genesis_imprecision] = tecan_genesis_pipetting_model(mix_volume)\n", " bias = normal()\n", " actual_mix_volume = mix_volume * ((1+genesis_inaccuracy*bias) + genesis_imprecision*normal())\n", "\n", " # Compute assay volume and concentration\n", " echo_volume[i] = actual_mix_volume + backfill_volume_dispensed + compound_volume_dispensed\n", " echo_concentration[i] = C0 * compound_volume_dispensed / echo_volume[i]\n", "\n", " return [echo_volume, echo_concentration]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's use this *echo_assay_dispense* function to create an 8-point dilution series with DMSO compound stock concentration as 10 mM, a final assay volume of 12 µL, and an 8-point titration of dispense volumes in multiples of 15 nL. To make sure our DMSO concentration does not vary as we vary our compound concentration, we'll always backfill up to 120 nL total DMSO." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 2.08333333e-06 4.16666667e-06 8.33333333e-06 1.66666667e-05\n", " 3.33333333e-05 5.00000000e-05 6.66666667e-05 1.00000000e-04]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "echo_C0 = 10e-3 # DMSO stock concentration (M)\n", "\n", "assay_volume = 12e-6 # final assay volume (L)\n", "\n", "echo_dispense_volumes = 2.5e-9 * np.array([1, 2, 4, 8, 16, 24, 32, 48]) # rougly logarithmic dispense volumes in multiples of 2.5 nL \n", "\n", "ndilutions_echo = len(echo_dispense_volumes)\n", "\n", "backfill_volume = 120e-9 # total Echo dispense volume including compound and DMSO backfilling (L)\n", "\n", "mix_volume = assay_volume - backfill_volume # assay mix volume to be added by liquid handler (L)\n", "\n", "#Check our concentrations are as expected\n", "echo_ideal_concentrations = (echo_C0*echo_dispense_volumes/assay_volume)\n", "plt.semilogy(range(ndilutions_echo), echo_ideal_concentrations, 'ko');\n", "plt.xlabel('dilution number');\n", "plt.ylabel('concentration (M)');\n", "plt.legend(['ideal']);\n", "plt.axis([-0.5, ndilutions_echo - 0.5, 1e-8, echo_C0 * 1.2]);\n", "print echo_ideal_concentrations" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [], "source": [ "[echo_volumes, echo_concentrations] = echo_assay_dispense(echo_C0, mix_volume, backfill_volume, echo_dispense_volumes)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Let's plot a single realization of an Echo dispense experiment:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot([0,ndilutions_echo], [1, 1], 'k--', range(ndilutions_echo), echo_volumes / assay_volume,'ro',\\\n", " range(ndilutions_echo), echo_concentrations / echo_ideal_concentrations, 'go');\n", "plt.legend(['exact', 'assay well volume rel err', 'concentration rel err'], loc='lower right')\n", "plt.axis([-0.5, ndilutions_echo - 0.5, 0.5, 1.5])\n", "plt.ylabel('relative quantity')\n", "plt.xlabel('dilution number');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We simulate many realizations of the same experiment to quantify imprecision and bias in the dilution series." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# initialize with zeros\n", "actual_volumes_n = np.zeros([nreplicates, ndilutions_echo], np.float64)\n", "actual_concentrations_n = np.zeros([nreplicates, ndilutions_echo], np.float64)\n", "\n", "# initialize volume array with assay_volume value\n", "volume_array = np.ones([ndilutions_echo]) * assay_volume\n", "\n", "for replicate in range(nreplicates):\n", " [actual_volumes_replicate, actual_concentrations_replicate] = echo_assay_dispense(echo_C0, mix_volume, backfill_volume, echo_dispense_volumes)\n", " actual_volumes_n[replicate,:] = actual_volumes_replicate\n", " actual_concentrations_n[replicate,:] = actual_concentrations_replicate\n", "volumes_cv = (actual_volumes_n / assay_volume).std(0)\n", "concentrations_cv = (actual_concentrations_n / echo_ideal_concentrations).std(0)\n", "quantity_cv = ((actual_volumes_n * actual_concentrations_n) / (assay_volume * echo_ideal_concentrations)).std(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now plot the CVs to examine the imprecision in the resulting compound concentrations." ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nlZmmAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# define dilutions to make plotting easier.\n", "dilutions = np.arange(ndilutions_echo)\n", "\n", "plt.plot(dilutions, concentrations_cv*100, 'rs', dilutions, volumes_cv*100, 'go', dilutions, quantity_cv*100, 'bo')\n", "plt.xlabel('dilution number')\n", "plt.ylabel('CV (%)')\n", "plt.xlim([-0.5,ndilutions_echo - 0.5])\n", "plt.legend(['concentration', 'volume', 'quantity'], loc='center right');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We again quantify the bias:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute relative bias.\n", "volumes_bias = (actual_volumes_n / assay_volume).mean(0) - 1\n", "concentrations_bias = (actual_concentrations_n / echo_ideal_concentrations).mean(0) - 1\n", "quantity_bias = ((actual_volumes_n * actual_concentrations_n) / (assay_volume * echo_ideal_concentrations)).mean(0) - 1\n", "\n", "# Plot relative biases.\n", "plt.plot([0, ndilutions_echo], [0, 0], 'k--', dilutions, concentrations_bias*100, 'rs', \\\n", " dilutions, volumes_bias*100, 'go', dilutions, quantity_bias*100, 'bo')\n", "plt.xlabel('dilution number')\n", "plt.ylabel('RB (%)')\n", "plt.legend(['none','concentration', 'volume', 'quantity'], loc='lower right')\n", "plt.axis([-0.5, ndilutions_echo - 0.5, -100, 100]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, bias over many random calibrations of the same instrument is expected to be zero." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets see how our estimation of enzyme activity is affected by including imprecision and inaccuracy, running many assay replicates." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#initialize the activity values with a zero vector\n", "activity = np.zeros([nreplicates,ndilutions_echo], np.float64)\n", "\n", "#calclulate activity with our competitive inhibition model and our new actual_concentrations for nreplicates\n", "for replicate in range(nreplicates):\n", " [actual_volumes, actual_concentrations] = echo_assay_dispense(echo_C0, mix_volume, backfill_volume, echo_dispense_volumes)\n", " for i in range(ndilutions_echo):\n", " activity[replicate,i] = competitive_inhibition(substrate_concentration, actual_concentrations[i], enzyme_concentration, true_Ki, Km)\n", "\n", "#plot\n", "plt.semilogx(echo_ideal_concentrations, activity[::10].transpose(), 'r-');\n", "plt.xlabel('ideal [I] (M)');\n", "plt.ylabel('$V_{0}/V_{max}$');\n", "plt.axis([10**(-6.2), 10**(-3.9), 0, 0.06]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's check our $pIC_{50}$ histogram using the same `fit_ic50` function from before." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEVCAYAAADjHF5YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGG1JREFUeJzt3XmcXGWd7/FPmYxgmAwSF7bcGRTkFxDHKDqueBV1NI64\nIILA6AgvrhsKNy4o7hcQkZcjiKLo1bkq4uC4IDOjUZRRFJVFVgH5iRDEsIQlDgkmEAh9/3hOY9Gp\nqu5OqqrT/Xzer1e/Ol3nqVO/Pqn+nlPPOed5WiMjI0iSZr6HTHUBkqThMPAlqRIGviRVwsCXpEoY\n+JJUidnDeJGI2Ax4KnAzsG4YrylJM8AsYFvgwsy8Z2NXNpTAp4T9z4b0WpI00+wBnLuxKxlW4N/c\nfN8DWDak15Sk6W4+5WD55vEaTsSwAn+0G2dZZl4/pNeUpGktIkb/2ZeucE/aSlIlDHxJqoSBL0mV\nMPAlqRIGviRVwsCXpEoY+JJUCQNfkiph4EtSJQx8SaqEgS9JlTDwJakSBr4kVcLAl6RKDGt4ZGla\naLVac4AF4zS7emRkZPUw6pH6ycCXHmzBwkWLL5o7b37HhatWLOPSJSfsDlw83LKkjWfgS2PMnTef\nLbfecarLkPrOPnxJqoSBL0mVMPAlqRIGviRVwsCXpEoY+JJUCQNfkiph4EtSJQx8SaqEgS9JlTDw\nJakSBr4kVcLAl6RKGPiSVAmHR5YmYd19awEWtFqtXs2cIEWbJANfmoQ1K29l4aLFpzlBiqYjA1/V\nGWcaw/GmN3SCFE1bBr5q1HUaw+VLL5qCcqThMPBVpW5H6XetWDYF1UjD4VU6klQJA1+SKmHgS1Il\nDHxJqoSBL0mVMPAlqRIGviRVwsCXpEoY+JJUCQNfkiph4EtSJQx8SaqEgS9JlTDwJakSBr4kVcLA\nl6RKGPiSVAkDX5Iq4RSHmnHGmaSccZZJM5aBr5mo6yTl4ETlqpeBrxmp2yTl4ETlqpd9+JJUCQNf\nkiph4EtSJQx8SaqEgS9JlTDwJakSBr4kVcLAl6RKGPiSVAkDX5IqYeBLUiUMfEmqhIEvSZUw8CWp\nEga+JFXCwJekShj4klQJA1+SKmHgS1IlDHxJqoSBL0mVMPAlqRIGviRVwsCXpErMnuoCpJlk3X1r\nARa0Wq1uTa4eGRlZPbyKpD8z8KU+WrPyVhYuWnza3Hnz11u2asUyLl1ywu7AxcOvTJpg4EfEw4E9\ngacCjwbWAbcAvwJ+lJkesUiNufPms+XWO051GdJ6egZ+ROwEvAc4ALgDuKr5PhvYCXgzMDciTgWO\nz8xrBluuJGlDdQ38iPggcCDwJeCpmXlll3a7Nu3OiogvZ+aHB1CnJGkj9TrC/29gt8y8t9cKMvMq\n4H0RcTTliF+StAnqGviZedJkVpSZdwMnbHRFkqSBGK8Pfy6l//4ZwHxgM2A1sAz4BXB6Zv5p0EVK\nkjZe1xuvIuJJwDXAu5qHLgJ+DFwK/AXwXuCaiHjioIuUJG28Xkf4pwDfzMy3dloYES3gU8BngWcO\noDZJUh/1GlrhCZRA7ygzR4CTgYX9LkqS1H+9Av9qYJ9xnr8/cG3/ypEkDUqvLp3Dge9GxF7AOcBN\nwN2UE7fbAXsATwReNugiJUkbr9dlmT+LiAXAIZQ++kXAHGAN5SqdHwD7ZuaNwyhUkrRxel6WmZk3\nAUcNqRZJ0gD1Glrh7cBnM3NN22P7AodSunR+A3wsM38+8ColSRut10nbjwNzR3+IiNcBpwKXU+6o\nXQ6cHREvH2iFkqS+mMx4+IuBd2fmiaMPRMTlwDHAmf0uTJLUX5OZ4vBRwI/GPPY9yjDJkqRN3HhH\n+HtFxIWUIRbOBp4OXNG2fE9g6YBqkyT1Ua8j/DOAd1JmtboLeDnwyWZANZpJTz4DfGzQRUqSNl6v\n6/BfBRARDwV2BnYFFlDCH8rO4tWZ+Z1BFylJ2njjnrTNzLWUbpwrxjx+4KCKkiT133jj4c8HjgSO\nbb+jNiJOBmYBH8rM5YMtUZLUD73Gw98BOA94EfCIMYuvBF4AnB8R2w+sOklS3/Q6aXs08Gvg8Zl5\nefuCzPwMZeC0PzTtJEmbuF6Bvyely+aeTgubqQ0/ALxwEIVJkvqrV+D/FXDbOM+/AZjXv3IkSYPS\nK/CTMnl5L0/DG68kaVroFfhfAI6LiI5DJ0TEzsDxlAHVJEmbuF6XZX4OeA5wRUScAVwA3AlsRTmy\nfxllLJ1/HnSRkqSN1+tO2xHggIjYDzgYeDcl7G8HLgQOyMxvD6VKSdJGm8idtl8Hvj6EWiRJAzSZ\n4ZElSdNYrykOb57gOkYyc7s+1SNJGpBeXTpHTnAdI/0oRJI0WL1O2n5piHVIkgZswnPaRsSjgAOB\n3YD7gMuAr2XmnQOqTZLURxM6aRsRT6dMc3gY8HBgG+A9QEbEroMrT5LULxM9wv8U5Y7awzPzfoCI\nmA2c3Hw9bzDlSZL6ZaKXZT4e+NRo2ANk5n3AJyh33UqSNnETDfwLgJd2ePxZwEX9K0eSNCgT7dL5\nL+AjEfEM4GfAOmB3ykncUyPig0CLck3+UQOpVJrm1t23FmBBq9Xq1ezqkZGR1cOpSLWZaODvCZwP\nPAp4ZdvjvwR2bL5alGvyDXypgzUrb2XhosWnzZ03v+PyVSuWcemSE3YHLh5uZarFhAI/M5874Dqk\nKsydN58tt95xqstQpXpNYn5kRGw+0RVFxBYR8d7+lCVJ6rdeR/gjwJURcRrwnczs+DEzIp5E6cvf\nFzil/yVK62u1WnOABV0Wd3tcqlqvoRWOi4jTgSOAcyLiHuBK4A7KJ4NHUu66nQ18GXhOZl4/8Iql\nYsHCRYsv6tQfvnypF45JnfTsw28C/C0RcQTwXOApwKMpV+lcCBwD/CQz7x5smdL6uvWH37Vi2RRU\nI236eg2PPJsyfMKrgHuAM4FjM3PtkGqTJPVRrxuvjqF055wH/IoyxeHJwyhKktR/vQJ/f+C1mfnm\nzHwrsDfwjxExazilSZL6qVfgb0vppx91DqULaJuBViRJGohegT+bMu49AJm5Drgb2GzQRUmS+s9J\nzCWpEuMNrfC6iFjZ/LvVtN8/Im5rb5SZnx9EcZKk/ukV+DcAh455bDlwSIe2Br4kbeJ63Wm7wxDr\nkCQNmH34klQJA1+SKmHgS1IlDHxJqoSBL0mVMPAlqRIGviRVwsCXpEoY+JJUCQNfkiph4EtSJQx8\nSaqEgS9JlTDwJakSBr4kVcLAl6RKGPiSVAkDX5IqYeBLUiUMfEmqhIEvSZUw8CWpEga+JFXCwJek\nShj4klSJ2VNdgKRi3X1rARa0Wq1uTa4eGRlZPbyKNNMY+NImYs3KW1m4aPFpc+fNX2/ZqhXLuHTJ\nCbsDFw+/Ms0UBr60CZk7bz5bbr3jVJehGco+fEmqhIEvSZUw8CWpEga+JFXCwJekShj4klQJA1+S\nKmHgS1IlDHxJqoSBL0mVcGgFbZJardYcYEGPJr2WSerAwNemasHCRYsv6jSQGMDypRcNuRxp+jPw\ntcnqNZDYXSuWDbkaafqzD1+SKmHgS1IlDHxJqoSBL0mVMPAlqRIGviRVwsCXpEoY+JJUCW+8kqaB\ndfetBVjQarV6Nbt6ZGRk9XAq0nRk4EvTwJqVt7Jw0eLTug01sWrFMi5dcsLuwMXDrUzTiYEvTRO9\nhpqQJsI+fEmqhIEvSZUw8CWpEga+JFXCwJekShj4klQJA1+SKmHgS1IlDHxJqoSBL0mVcGgFaQaY\nwOBqDqwmA1+aCXoNrubAahpl4EszhIOraTz24UtSJQx8SaqEgS9JlbAPX1Om1WrNARZ0WdztcUkb\nyMDXVFqwcNHiizpdWbJ86UVTUI40sxn4mlLdriy5a8WyKahGmtnsw5ekSniEL81wE7gLF7wTtwoG\nvjTD9boLF7wTtyYGvlQB78IV2IcvSdUw8CWpEnbpaGBardYuf/23L/r+Fg/f9t5Oy7fc5nH/Peya\ntD5P6tbDwNcgtebv8txt5m2/y0M7LVx12+8vGXZBWt94J3XvvG0pl5/16QNbrdbVXVbhzmCaMPAl\n9Type9eKZV13CBPYGcAG7hDGGXpjg9dbs2EF/qzm+/yIGNJLaqrNmzdv6xuv+MEfbr/+V2s7LV9z\n543337n8t6y7Z9V6y/604gbW3bu647Lxlk/VczfVuvrxO20+95Edl99958087ikvP22zuY/o+Nx7\nVt3BjVf98PCtttrq2o4NepgzZ86O2+/6wk92Wvc9q+7gtt+d89KIuHKy651mRveys3q2mqDWyMhI\nP9bTU0Q8G/jZwF9IkmamPTLz3I1dybCO8C8E9gBuBtYN6TUlabqbBWxLydCNNpQjfEnS1PM6fEmq\nhIEvSZUw8CWpEga+JFXCwJekShj4klSJgVyHHxGzgI8DrwE2B84H3pyZSzu03Qz4DPAK4F7gpMw8\ndhB1TYWIWAI8u+2hhwAPA56ZmeeNabsN8Lmm/X3AmcDbMvOeIZU7UJPZFk37DwFvbNr8F3BwZt45\njFoHbbLbou15XwEelpmvHnCJQzPJv5GHA58EXtS0+z5wWGbOiIH4JrktJp2dg7rx6p+AfwAWArdT\n/oO+ADy/Q9uPAP8D2AHYGjgrIq7JzG8MqLahysxF7T9HxJeAWV3+qI8H7ga2A+YA3wOOAI4ecJlD\nMZltERFvA/YBngL8ETiNsn3eOPhKB2+S74vRNq8GDgC+PdjqhmuS2+JEYAtgJ0oYngp8CnjtgMsc\niklui0ln56ACfyXlP2M25U6x+4Fugxz9I/CazFwFrIqITwOvB2ZE4LeLiFcAewK7dGmyknJX3Syg\nRe/tNq1NYFscCvzvzLypaX8IMG9I5Q3VBLYFEbEdcCzwRWbodoAJbYuHAEdl5l1N+y9QdgIzzgS2\n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\nF+/GYhW9xYIAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IC50s_echo = np.zeros([nreplicates], np.float64)\n", "for replicate in range(nreplicates):\n", " IC50s_echo[replicate] = fit_ic50(echo_ideal_concentrations, activity[replicate,:], true_Ki) \n", "pIC50s_echo = np.log10(IC50s_echo)\n", " \n", "nhist = 20\n", "plt.hist(pIC50s_echo, nhist);\n", "plt.xlabel('measured pIC50 (M)');\n", "plt.ylabel('P(pIC50)');\n", "plt.yticks([]);\n", "plt.xlim(-8, -7);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Similarly, the imprecision and inaccuracy in the measured pIC50s may not be uniform across the whole $K_i$ range, however, so we will characterize imprecision and inaccuracy as a function of $pK_i$." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def echo_IC50s(true_Ki):\n", " nreplicates = 1000\n", " IC50s = np.zeros([nreplicates], np.float64)\n", " for replicate in range(nreplicates):\n", " [assay_volumes, actual_concentrations] = echo_assay_dispense(echo_C0, mix_volume, backfill_volume, echo_dispense_volumes)\n", " activities = np.zeros([ndilutions_echo], np.float64)\n", " for i in range(ndilutions_echo):\n", " activities[i] = competitive_inhibition(substrate_concentration, actual_concentrations[i], enzyme_concentration, true_Ki, Km)\n", " IC50s[replicate] = fit_ic50(echo_ideal_concentrations, activities, true_Ki)\n", " return IC50s" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Initialize with zeros.\n", "echo_pIC50_bias = np.zeros([nKis], np.float64)\n", "echo_pIC50_CV = np.zeros([nKis], np.float64)\n", "\n", "for (i, Ki) in enumerate(Kis):\n", " IC50s = echo_IC50s(Ki) \n", " pIC50s = np.log10(IC50s)\n", " pIC50_true = np.log10(Kis[i]*(1 + substrate_concentration/Km))\n", " echo_pIC50_bias[i] = pIC50s.mean() - pIC50_true;\n", " echo_pIC50_CV[i] = pIC50s.std() / abs(pIC50s.mean()) " ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot relative error in measured Ki values as a function of true Ki.\n", "plt.plot([pKis.min(), pKis.max()], [0, 0], 'k-', pKis, echo_pIC50_bias, 'ro');\n", "plt.xlabel('pKi');\n", "plt.ylabel('bias in measured pIC50');\n", "plt.axis([pKis.min()-0.5, pKis.max()+0.5, -1.5,1.5]);" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot CV.\n", "plt.plot(pKis, echo_pIC50_CV*100, 'ko');\n", "plt.xlabel('pKi');\n", "plt.ylabel('measured pIC50 CV (%)');\n", "plt.axis([pKis.min(), pKis.max(), 0, 10]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Add to model: dilution by system liquid of the Tecan Genesis liquid-handling robot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Tecan Genesis supports the use of both disposable tips and fixed tips. When operating with fixed tips, syringes use a system liquid (generally water or buffer) to aspirate and dispense during liquid transfers. While an air gap remains between the liquid being transferred and the system liquid, the system liquid is used to flush the tips into waste after transfers in order to remove any liquid residue before the next transfer. Because a small quantity of system liquid residue remains coating the tip after washing, fixed tips can actually *dilute* the sample being transferred unless special protocols are used to prevent this. A good description of this phenomonen can be found in [Dilution effect in multichannel liquid-handling system equipped with fixed tips:Problems and solutions for bioanalytical sample preparation. J. Lab. Autom. 12(6): 2007](http://dx.doi.org/10.1016/j.jala.2007.07.002), including the diagram below:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/dilution_effect_diagram.png \"dilution_effect_diagram.png\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The magnitude of this dilution effect was noted in a 2006 paper by Dong et al at BMS, [The use of a dual dye photometric calibration method to identify possible sample dilution from an automated multichannel liquid-handling system. J. Lab. Autom. 11(2): 2006](http://dx.doi.org/10.1016/j.jala.2006.02.005), which quite surprisingly can have a large impact on dilution series preparation. The relevant table from this paper is below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](img/DilutionError_small.png \"DilutionError_small.png\")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Define a function to interpolate the dilution effect between the measured values of Dong et al. 2006\n", "# (extended to 1 uL volumes)\n", "volume = np.array([1, 20, 200]) * 1e-6 # volumes at which dilution effect was quantified (L)\n", "dilution_effect = np.array([-0.0630, -0.0630, -0.0496]) # relative inaccuracy due to dilution with system liquid at corresponding volumes\n", "\n", "dilution_function = interp1d(volume, dilution_effect) # interpolation function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We introduce a modified model of our dilution series that now incorporates this dilution effect." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the only difference between this function and our `ROBOT_dilution_series` function is that `actual_concentrations[n]` value now includes our `dilution_function` term." ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def DILUTE_ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, pipetting_model, Cstock=10e-3):\n", "\n", " # Use pipetting error function to determine inaccuracy and imprecision for transferred volumes.\n", " [transfer_inaccuracy, transfer_imprecision] = pipetting_model(Vtransfer) \n", " [buffer_inaccuracy, buffer_imprecision] = pipetting_model(Vbuffer) \n", "\n", " # Draw bias for this instrument recalibration.\n", " # We allow the relative bias to be of different scale between the different volumes pipetted,\n", " # but must be same direction.\n", " bias = normal() # draw random normal variate that will scale inaccuracy to determine relative bias\n", " \n", " # Initialize storage for actual concentrations and volumes.\n", " actual_concentrations = np.zeros([ndilutions], np.float64)\n", " actual_volumes = np.zeros([ndilutions], np.float64)\n", " \n", " # Fill initial well of with appropriate dilution of stock solution.\n", " Vinitial_transfer = (Cinitial / Cstock) * Vinitial # compute transferred volume of stock solution\n", " Vinitial_buffer = Vinitial - Vinitial_transfer # compute transferred buffer volume\n", " [initial_transfer_inaccuracy, initial_transfer_imprecision] = pipetting_model(Vinitial_transfer)\n", " [initial_buffer_inaccuracy, initial_buffer_imprecision] = pipetting_model(Vinitial_buffer) \n", " Vtransfer_actual = Vinitial_transfer * ((1+initial_transfer_inaccuracy*bias) + initial_transfer_imprecision*normal())\n", " Vbuffer_actual = Vinitial_buffer * ((1+initial_buffer_inaccuracy*bias) + initial_buffer_imprecision*normal()) \n", " actual_volumes[0] = Vtransfer_actual + Vbuffer_actual \n", " actual_concentrations[0] = (1+dilution_function(Vtransfer_actual)) * Cstock * Vtransfer_actual / actual_volumes[0]\n", " \n", " # Create dilution series.\n", " for n in range(1,ndilutions):\n", " Vtransfer_actual = Vtransfer * ((1+transfer_inaccuracy*bias) + transfer_imprecision*normal())\n", " Vbuffer_actual = Vbuffer * ((1+buffer_inaccuracy*bias) + buffer_imprecision *normal())\n", " Vtot = Vtransfer_actual + Vbuffer_actual\n", " actual_concentrations[n] = \\\n", " (1+dilution_function(Vtransfer)) * actual_concentrations[n-1] * Vtransfer_actual / Vtot\n", " actual_volumes[n] += Vtot\n", " actual_volumes[n-1] -= Vtransfer_actual\n", " \n", " # Remove volume Vtransfer from last so that all wells have same intended volume.\n", " Vtransfer_actual = Vtransfer * ((1+transfer_inaccuracy*bias) + transfer_imprecision*normal())\n", " actual_volumes[ndilutions-1] -= Vtransfer_actual\n", "\n", " return [actual_volumes, actual_concentrations]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Once again, we simulate many replicates of the same experiment, this time including the dilution effect." ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#initialize with zeros\n", "actual_volumes_n = np.zeros([nreplicates, ndilutions], np.float64)\n", "actual_concentrations_n = np.zeros([nreplicates, ndilutions], np.float64)\n", "\n", "for replicate in range(nreplicates):\n", " [actual_volumes_replicate, actual_concentrations_replicate] = DILUTE_ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " actual_volumes_n[replicate,:] = actual_volumes_replicate\n", " actual_concentrations_n[replicate,:] = actual_concentrations_replicate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can quantify the impact on imprecision by visualizing the CVs as a function of dilution number." ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "volumes_cv = (actual_volumes_n / ideal_volumes).std(0)\n", "concentrations_cv = (actual_concentrations_n / ideal_concentrations).std(0)\n", "quantity_cv = ((actual_volumes_n * actual_concentrations_n) / (ideal_volumes * ideal_concentrations)).std(0)\n", "\n", "# Plot CVs\n", "dilutions = np.arange(ndilutions)\n", "plt.plot(dilutions, concentrations_cv*100, 'ro', dilutions, volumes_cv*100, 'go', dilutions, quantity_cv*100, 'bo')\n", "plt.xlabel('dilution number')\n", "plt.ylabel('CV (%)')\n", "plt.xlim([-0.5, ndilutions -0.5])\n", "plt.legend(['concentration', 'volume', 'quantity'], loc='lower right');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also examine the bias." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Compute relative bias.\n", "volumes_bias = (actual_volumes_n / ideal_volumes).mean(0) - 1\n", "concentrations_bias = (actual_concentrations_n / ideal_concentrations).mean(0) - 1\n", "quantity_bias = ((actual_volumes_n * actual_concentrations_n) / (ideal_volumes * ideal_concentrations)).mean(0)- 1\n", "\n", "# Plot relative biases.\n", "plt.plot([0, ndilutions], [0, 0], 'k--', dilutions, concentrations_bias*100, 'rs',\\\n", " dilutions, volumes_bias*100, 'go', dilutions, quantity_bias*100, 'bo');\n", "plt.xlabel('dilution number');\n", "plt.ylabel('RB (%)');\n", "plt.legend(['none', 'concentration', 'volume', 'quantity'], loc='upper right');\n", "plt.axis([-0.5, ndilutions - 0.5, -100, 100]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now see that over many realizations with random calibrations, significant bias in both the concentration and quantity of compound accumulates with dilution number." ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def dilute_robot_dispense(compound_volume, mix_volume, compound_concentrations, pipetting_model):\n", " [compound_inaccuracy, compound_imprecision] = pipetting_model(compound_volume)\n", " [mix_inaccuracy, mix_imprecision] = pipetting_model(mix_volume)\n", " \n", " from numpy.random import normal\n", " dispense_volume = np.zeros([ndilutions], np.float64)\n", " dispense_compound_concentration = np.zeros([ndilutions], np.float64)\n", " \n", " compound_bias = compound_inaccuracy * normal()\n", " mix_bias = mix_inaccuracy * normal()\n", "\n", " for i in range(ndilutions):\n", " compound_volume_dispensed = compound_volume * ((1+compound_bias) + compound_imprecision*normal())\n", " mix_volume_dispensed = mix_volume * ((1+mix_bias) + mix_imprecision*normal())\n", " dispense_volume[i] = compound_volume_dispensed + mix_volume_dispensed\n", " d = dilution_function(compound_volume_dispensed)\n", " dispense_compound_concentration[i] = (1+d) * compound_concentrations[i] \\\n", " * compound_volume_dispensed / dispense_volume[i]\n", "\n", " return [dispense_volume, dispense_compound_concentration]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#initialize the activity values with a zero vector\n", "activity = np.zeros([nreplicates,ndilutions], np.float64)\n", "ideal_assay_concentrations = ideal_concentrations * ( compound_volume/(compound_volume + mix_volume) ) # ideal (L)\n", "\n", "#calclulate activity with our competitive inhibition model and our new actual_concentrations for nreplicates\n", "for replicate in range(nreplicates):\n", " [actual_volumes, actual_concentrations] = DILUTE_ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " [dispense_volumes, dispense_compound_concentrations] = dilute_robot_dispense(compound_volume, mix_volume, actual_concentrations, tecan_genesis_pipetting_model)\n", " for i in range(ndilutions):\n", " activity[replicate,i] = competitive_inhibition(substrate_concentration, dispense_compound_concentrations[i], enzyme_concentration, true_Ki, Km)\n", "\n", "#plot\n", "plt.semilogx(ideal_assay_concentrations, activity[::10].transpose(), 'r-');\n", "plt.xlabel('ideal [I] (M)');\n", "plt.ylabel('$V_{0}/V_{max}$');\n", "plt.axis([10**(-6.2), 10**(-3.9), 0, 0.06]);" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "IC50s_tips_dilute = np.zeros([nreplicates], np.float64)\n", "for replicate in range(nreplicates):\n", " IC50s_tips_dilute[replicate] = fit_ic50(ideal_assay_concentrations, activity[replicate,:], true_Ki)\n", "pIC50s_tips_dilute = np.log10(IC50s_tips_dilute)\n", " \n", "nhist = 20\n", "plt.hist(pIC50s_tips_dilute, nhist);\n", "plt.xlabel('measured pIC50 (M)');\n", "plt.ylabel('P(pIC50)');\n", "plt.yticks([]);\n", "plt.xlim(-8, -7);" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 5.44388770e-04 2.53719967e-04 1.19835059e-04 5.62280758e-05\n", " 2.65327592e-05 1.24845095e-05 5.84155092e-06 2.76197767e-06]\n" ] } ], "source": [ "def dilute_robot_IC50s(true_Ki):\n", " nreplicates = 1000\n", " IC50s = np.zeros([nreplicates], np.float64)\n", " for replicate in range(nreplicates):\n", " [actual_volumes, actual_concentrations] = DILUTE_ROBOT_dilution_series(Vinitial, Cinitial, Vtransfer, Vbuffer, ndilutions, tecan_genesis_pipetting_model)\n", " [dispense_volumes, dispense_compound_concentrations] = dilute_robot_dispense(compound_volume, mix_volume, actual_concentrations, tecan_genesis_pipetting_model)\n", " activities = np.zeros([ndilutions], np.float64)\n", " for i in range(ndilutions):\n", " activities[i] = competitive_inhibition(substrate_concentration, dispense_compound_concentrations[i], enzyme_concentration, true_Ki, Km)\n", " IC50s[replicate] = fit_ic50(ideal_assay_concentrations, activities, true_Ki)\n", " return IC50s\n", "\n", "print actual_concentrations" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 8.64553314e-05 4.32276657e-05 2.16138329e-05 1.08069164e-05\n", " 5.40345821e-06 2.70172911e-06 1.35086455e-06 6.75432277e-07]\n" ] } ], "source": [ "print ideal_concentrations * ( compound_volume/(compound_volume + mix_volume) )" ] }, { "cell_type": "code", "execution_count": 57, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 6.00000000e-04 3.00000000e-04 1.50000000e-04 7.50000000e-05\n", " 3.75000000e-05 1.87500000e-05 9.37500000e-06 4.68750000e-06]\n" ] } ], "source": [ "print ideal_concentrations" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#initialize with zeros\n", "dilute_genesis_pIC50_bias = np.zeros([nKis], np.float64)\n", "dilute_genesis_pIC50_CV = np.zeros([nKis], np.float64)\n", "\n", "for (i, Ki) in enumerate(Kis):\n", " IC50s = dilute_robot_IC50s(Ki) \n", " pIC50s = np.log10(IC50s)\n", " pIC50_true = np.log10(Kis[i]*(1 + substrate_concentration/Km))\n", " dilute_genesis_pIC50_bias[i] = pIC50s.mean() - pIC50_true;\n", " dilute_genesis_pIC50_CV[i] = pIC50s.std() / abs(pIC50s.mean()) " ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot relative error in measured Ki values as a function of true Ki.\n", "plt.plot([pKis.min(), pKis.max()], [0, 0], 'k-', pKis, dilute_genesis_pIC50_bias, 'ro');\n", "plt.xlabel('pKi');\n", "plt.ylabel('bias in measured pIC50');\n", "plt.axis([pKis.min()-0.5, pKis.max()+0.5, -1.5,1.5]);" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEbCAYAAADJWrOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGMVJREFUeJzt3XmUJGWd7vFv0Y0gqyzCpVkEj/BDWRQU8XIFRb2jjKMs\nw+bMHcUNhs0VFL3SCIMgKI6KM8MyrMriRQRBcFgUFUVZFGQRfyjCCDSL7I0NDXTn/ePNwuyiOiuq\nKjMjqvh+zqnTnZEVWc+pJZ6IeDPiHWq1WkiSNJYl6g4gSZoaLAxJUiUWhiSpEgtDklSJhSFJqsTC\nkCRVMnPQXzAiXg+cl5lrth+vBJwMbAs8BhyamScPOpckqbuBHWFExFBEfAC4FFiy46kTgceB1YCd\ngaMjYstB5ZIkVTPIU1KfBT4CHA4MAUTEcsD2wCGZ+XRmXgucCbx3gLkkSRUMsjBOyszXANd1LFsf\neCYz7+xYdhuw4QBzSZIqGFhhZOZ9oyxeFnhyxLJ5wDL9TyRJGo+BD3qPMA9YesSyZYAnqqwcEUsB\nWwD3Agt6G02SpqUZwBrAtZk5fzwr1l0YvwdeFBFrZ+Zd7WUB3FJx/S2AK/uSTJKmt62Bn41nhVoL\nIzPnRsT3gCMj4sPAxsB7gO0qvsS97X+3Bu7uQ0RJmm7Wouxo3zvWJ45UV2F03lP9w8BxlA3+E8AB\n7XdLVTF8GuruEQPnkqRRRMTwf8d9Gn/ghZGZP6ZcczH8+BFgt0HnkCSNj7cGkSRVYmFIkiqxMCRJ\nlVgYkqRKLAxJUiUWhiSpEgtDklSJhSFJqsTCkCRVYmFIkiqxMCRJlVgYkqRKLAxJUiUWhiSpEgtD\nklSJhSFJqsTCkCRVYmFIkiqxMCRJlVgYkqRKLAxJUiUWhiSpEgtDklSJhSFJqsTCkCRVYmFIkiqx\nMCRJlVgYkqRKLAxJUiUWhiSpEgtDklSJhSFJqsTCkCRVYmFIkiqxMCRJlcysOwBARLwLOBJYB5gD\nHJqZZ9WbSpLUqfYjjIhYBjgHmJ2ZKwAfAk6LiHXqTSZJ6lR7YQAtYC6wZEQMtR/PBxbUmkqStIja\nCyMznwTeB5wCPA38FNgvM++pNZgkaRG1F0ZErAucRTkV9WLgXcDXImLTOnNJkhbVhEHvHYDrM/PM\n9uOLI+L7wHuBA+qLJUnqVPsRBvAksPSIZQuAZ2rIIklajCYcYVwEHBURewCnAdtQjjq2rTOUJGlR\ntR9hZObdwN8BewOPAMcC783MX9caTJK0iCYcYZCZPwO2rDuHJGnxaj/CkCRNDRaGJKkSC0OSVImF\nIUmqxMKQJFViYUiSKrEwJEmVWBiSpEosDElSJRaGJKkSC0OSVImFIUmqxMKQJFViYUiSKrEwJEmV\nWBiSpEosDElSJRaGJKkSC0OSVImFIUmqZGaVT4qIVwLbAVsAqwELgXuB64CLM/MPfUsoSWqErkcY\nEbF1RFwO3ADsCDwOXANcDzwLvA/4bURcFhFv6ndYSVJ9FnuEEREnAxsCxwI7Z+aji/m8FYDdgGMi\n4ubM3KMfQSVJ9ep2Sur8zLxgrBfIzMeBE4ETI2LHniWTJDXKYk9JVSmLUdY5b3JxJElNVWnQu1NE\n7AS8sf3wF5l5Tm8jSZKaaFxvq42IY4CDgKeBFnBYRBzXj2CSpGZZbGFExCajLN4Z2DozD8rMTwJ/\nD+zer3CSpObodkrq5Ij4I/D5zLy1vexq4IyIuAyYAewC/KzPGSVJDdBt0HsL4GzgzIj4VkSsD+wB\nXAu8E/jfwGXAewaQU5JUs66D3pl5XkScT7nO4ruUK7sPy8yjBhFOktQcYw56Z2YrM88GXgNcAVwc\nESdExNp9TydJaoxug96vjYhrIuIvEXEL8LbMPB3YhHJa6ocR8W8RMWtQYSVJ9el2hHEacAGwOfAl\n4NsRMTMzn83ME4GNgd8CV/Y/piSpbt0KYxblTrQJnA8sByw//GRmPp2Z/wZsNNkQEbFWRHw/Ih6L\niLsiYv/JvqYkqbe6FcY3gCsi4ufA74CzMvORkZ+UmU9NJkBEDFEK6RZgZeDtwOcj4g2TeV1JUm8t\n9l1SmTk7Ir4DvBK4MzOv7lOGLYE1gIMys0W5Xfr/BB7s09eTJE1At9ubL5eZNwI3Vn2xiFg+M+eO\nM8PmlKOLL0XEP1Lm3PhCe4BdktQQ3U5JXRURH4uIZcZ6kYhYOSI+BfxyAhlWBrYF/gysTbk48NiI\neGO3lSRJg9Xtwr1tgCOA+yLix8CllCOBBylFsyrl2oxtKBv8M/nrXWzHYz7wcMfFgL+IiHOB7fG2\nI5LUGN3GMB4F9omILwB7Ufb8X025hxSUKVp/DVwE7JOZ90www++AmRGxRGYuHCuXJKkeY26Y20Uw\nG5gdETOAVYCFwEPtQerJugyYBxwSEYdRBsF3AN7Wg9eWJPXIuPbkM3MB8EAvA2TmUxHxZsrbeB8A\nHgP2z8xrevl1JEmT04hTP5l5O7Bd3TkkSYs3rhn3JEkvXBaGJKmSbhfufR84HfheZs4fXCRJUhN1\nO8J4AjgZeCAiTmoPTEuSXqC6TdG6O7A65RqMVYAfRMR/R8QREfGqQQWUJDXDWFO0/oUyr/fZEbEi\nsCOwO3BARNwEfJNyF9v7+55UklSrym+rzczHgFOBUyNiVeDdwL7A0cCL+pJOktQY474OIyI2Anah\nHG2sD5zX61CSpOapVBgRsSmlJHamlMRPgK8C35nA7cwlSVNQt7fVbkYpiOGSuInyrqmzMvPuwcST\nJDVFtyOMXwF3A2cB38rMmwYTSZLURN0K423AFT26I60kaYrrdh3Gj4DlIuLA9ruinhMRB0fEQVVm\n45MkTQ+LLYx2SVwFfA5Yd8TTSwKfAq6MiJX6lk6S1Bjdbg3yecrERutl5nWdT2TmbGAjYCnK5EqS\npGmuW2G8C/h0Zj482pOZeS/lKGP7fgSTJDVLt8JYFbhzjPVvBf5Hz9JIkhqrW2H8Edh0jPU3Ae7p\nXRxJUlN1K4wzgC9ExMqjPRkRqwBHAuf0I5gkqVm6XYfxFco827dGxMnANcBjwErAlsD7gduBI/od\nUpJUv27XYTxNuXjvK8BOwLnA5ZQjir+hHF1snZlPDCCnJKlmY82H8QxwFHBURLyYcnTxkFO2StIL\nz3jmw3gSeLKPWSRJDdZt0FuSpOdYGJKkSiwMSVIlY45hRMQGwFbAmpR7R82jXKx3VWbe3t94kqSm\n6Dbj3irAt4C3A38C7gPmU0pjDWDtiLgIeG9mPjKArJKkGnU7wjgOWBZYNzP/NPLJiHgZpVCOB3bt\nTzxJUlN0G8PYDthvtLIAyMz/BvYD3tGPYJKkZulWGA8Brxhj/Q2Bub2LI0lqqm6npI4ATouI1wM/\nAeYAT/HXMYxtgI8Cn+13SElS/RZbGJl5fETMAT5OOfXUOX/3k8DVwD9l5nn9jShJaoKx7iV1IXBh\nRCxBuY/UMpS31T6cma0B5JMkNcRixzAiYvOImAGQmQsz8yFgBvAR4PiI+ERErDCgnJKkmnUb9L4O\nWGX4QXss42ZgR+AlwJ7AbRHxql6FiYjVI+KBiHhnr15TktQb47k1yBeBMzJz08zcFXgVcAHw9R7m\nOQlYGfB0lyQ1zHgK45WUi/SAcpqKMrnSVr0IEhH/DDwB3NWL15Mk9dZYhbFKx/9vAl464vm1KNdr\nTEr7flWfAPae7GtJkvqjW2E8AtwSEY9ExC8p5fEf7Zn3iIgPA6cBZ0wmQETMBE6nXFXuPakkqaG6\nzem9CjAL+HvKPaOuBu4Enml/yuco83vPnmSGg4EbMvPSjmVDk3xNSVKPjXUdxn2Uu9T+aJTnXtaj\nDLsCa0TEbu3HKwBnR8S/ZObRPfoakqRJ6loY7eswdgIuyczHO5bvCTwOfHuyF/Bl5itHfM07gH0z\n8+LJvK4kqbe6Xbi3LHApcBawyYinX0sZd7goIpbuXzxJUlN0G/T+DOVdUBtl5s87n8jMvYDNgY2B\nT/cyUGau59GFJDVPt8LYHfh4ZuZoT2bmzcABwD/0I5gkqVm6FcYs4JYx1r8OWLt3cSRJTdWtMO4G\n1h9j/fWA+3sXR5LUVN0K41zgkIhYarQn24PdhwGON0jSC0C3t9UeCfwS+FVEHAtcAzxGmRdjS2D/\n9vqH9jukJKl+3a70fpxyY8ErgaOBXwF/AK6lHFlcBrwhMx8YQE5JUs3GutL7UWDviPgY8HLK0cWD\nwO2ZuWAA+SRJDdG1MIZl5nzg1j5nkSQ12GILIyLOokxkNNaNAFuZ6bUYkjTNdTvCmE/FwuhdHElS\nUy22MDJzjwHmkCQ1XKUxjGER8WrK/aMWAL/JTMc1JOkFolJhRMTqwHnAG4CHgRnAihFxGbBL563P\nJUnT01hzeg87AXgWeEVmrpqZKwEbAssD3+hXOElSc1QtjLdS5tz+4/CCzLwN2BfYvh/BJEnNUrUw\n5gCjTck6fCGfJGmaqzrofQRwXESsQ7lVyLPA64DDgZMiYpvhT8zMn/Y8pSSpdlUL4+T2v8eO8twh\n7Y9hVY9aJElTSNVbg1gCkvQCZxFIkiqxMCRJlVgYkqRKLAxJUiUWhiSpEgtDklSJhSFJqsTCkCRV\nYmFIkiqxMCRJlVgYkqRKLAxJUiUWhiSpEgtDklSJhSFJqsTCkCRVUnXGvb6KiDcCxwBBmSP86Mw8\nod5UkqROtR9hRMRKwAXAv2bmS4BdgCMj4q31JpMkdaq9MIB1gAsz82yAzLweuALYqtZUkqRF1H5K\nKjN/A7xv+HH7iGNr4LTaQkmSnqcJRxjPiYgVgQuB6zLzwrrzSJL+qjGFERHrAVdRBr13qjmOJGmE\n2k9JAUTE5sAPgG9m5gF155EkPV/tRxgRsTrwX8CXLQtJaq4mHGF8EFgVmB0RszuWfzUzD64pkyRp\nhNoLIzOPAI6oO4ckqbvaT0lJkqYGC0OSVImFIUmqxMKQJFViYUiSKrEwJEmVWBiSpEosDElSJRaG\nJKkSC0OSVImFIUmqxMKQJFViYUjSC8TQ0NCOd9xxx9UTXd/CkKQXgKGhodnAd1ut1moTfQ0LQ5Km\nuXZZHDrZ17EwJGkaGxoa2oEelAVYGJI03f17r17IwpCkPhgaGtpxaGhoTvtjh7rz9IKFIUk9NjzA\nDKzR/jivvawO+/TqhSwMSeqhLgPMh9ZRGq1W63zgkF68loUhST1SYYD50DpOT7VarcPoQWlYGJLU\nO1UGmHs2CD0e7dLYcWho6IGJvoaFIWnKm44DzP3QarXOX2+99bac6PoWhqQpbQoOMPdsEHrQLAxJ\n49KkvfkpOMB8SPtzpiQLQ1JlTdqbn4IDzLPbz01ZFobUYO7Nd9X4AWbgXmAOsEOr1fqXOrL0koWh\ngWvSRnBYQzO5Nz+FtVqt81ut1qxWq7Vmq9X6Xt15esHCmOaatiFs0kZwCmRyb767aT3A3ETTojDu\nueeev6k7A7hxrpinSRvBpmZyb76C6T7A3ETTojDmz59/fEP2CN04Lz5P4zaCTczU5t58RdN5gLmJ\npkVhtLmX+tc8TdwQNnEj2MRMjdTkvfnpOsDcRNOpMMC91GFuCKc29+bHaToOMDfRdCsMcC+1qZq4\nEWxiJvfm1ViNKIyI2CwiromIJyLi+oiY8L1OBDRwQ9jEjWATMw1zb15NVHthRMTSwIXAScCKwNeB\nCyJi2Qm+5At+L7WpG8ImbgSbmGmYe/NqmtoLA9gWWJCZx2fmgsw8Bbgf+NsJvJZ7qW1N3RA2cSPY\nxEzD3JtXk8ysOwCwIfDbEcuyvXw8Ztf1R95qtQ4bGhqC5w9+15YJnst1I2UMpQXs04SNTrtAG/X+\n+CZmkpqmCYWxLDBvxLJ5wDJVX2DppZfec+7cuSf2NNU4uXGWNN01oTD+Arx4xLJlgLkV1p0BMGvW\nrFsjYt0e5xq3DTbY4AZgq+HHTcgkSSOs1f53xnhXbEJh3ArsN2JZAGdUWHeN9r9X9jSRJE1/awC3\nj2eFJhTGj4ClImI/4Hjgn4DVgEsqrHstsDVlsHJB3xJK0vQxg1IW1453xaFWq9X7OOMUEZsAxwGb\nAL8H9s7Ma+pNJUnq1IjCkCQ1XxOuw5AkTQEWhiSpEgtDklSJhSFJqsTCkCRV0oTrMCYsIr4GPJ2Z\nB3Ys2x44HFgHuAv4XGYO/NYYo2VrL98R+Exmvr7uPBHxNuCrwLrAr4EPZubvB5hpJvB5YA9gaeA8\n4GOZ+ZdBZRhNRMwAvgzs3s51NeWt3nfUmOkHwBs7Fi1BuUPCVpn5y3pSPff7fCQwC7gF2Cszb6wr\nTzvTzcB6wML2ojszc5MaIy0iIj4AHJWZL605x1LAvwI7Ay8Cfgzsk5lzFrfOlDzCiIhVIuJUYH/K\nfZuGl28AnA7sn5krAh8HvhkR0YBsS0bEp4AzB5VljDyrA+cCnwZeAlxO2WAP0ieAfwDeQin45YCT\nB5xhNO8D3gm8BlgV+APwn3UGysztMnP54Q/gHOCMmstiM8q0BB/IzBUovz/n1JWnnenFlDtFrNXx\n/WpSWbwc+Aodf4s1Ophyk9cNgJcCDwHHdlthShYG5VYgT1M2eEMdy18GnJCZPwbIzMsod77dogHZ\n/h3YDjhmxPK68uwEXJ+ZF2Xms5SjslkRMcjv1U7AFzPztsycB3wW2CkiVhhghtE8TvnbmEm5KnYh\nz79BZm0iYgdKyf5zzVH2ovy9XdV+/BVg94gY5O/3SJsA92XmIzVmGFX7yPV0ykXKdX6Phs0G/jYz\nHwVWoMxH9OduKzTylFT7G7v8KE8tzMzHgbdk5n0RcUrnk+2CuKzjdV4ObAT8pu5swOzMvDci9gDe\n3oA8i9xWPjMXRsTt7eXjvmXARPJRNsZPdixrtZe9HLihVxnGmyszvxMR76Kc0lxAmSPjf/UzT4VM\nj7c/ZyZlw/zJQZy6G+Pntxnw/Yj4IbApcD2wb2b2de+5QqZnIuIq4BXtTB/NzN/1M9NYudo/v4OA\nm4AfAB/sd56KmZ6KiEMo5XEP8KZur9fUI4xtgYdH+bgBIDPvG+sFImIWcDFwSmbeVHe2zLy3hxkm\nnYdyR+AnRyybx/PvHNyvfL8BLgAOiIh1I2I54DDKH/3SPc4wnlw3RMQBwJbA+pTTdZcA364zU8fn\n7AbMy8xBnfrp9vNbGdgbOBBYE/gVZbbMcd8FtUeZbqDsdFxDGX9aB7gOuLg9s2e/dfudei3wj8An\nGezRRZXfqS9Sppn4LnBJe6dkVI08wsjMy5lEmbXPrV4IXJCZPZ0edbLZem0SeUYrh2WAJyYdqkO3\nfBGxJOUw+GftPEcDuwKP9jLDBHJdTzlVdnv78UeAuRGxUWbeUkemDu8HTuhXhpHG+D7dDJybmb9u\nPz6YMi4VPH9StIFkauv8/vzfiNgXeDXlzQt9s7hc7bK6DvhQZs4b4JBqpd+pzJwPEBEHUnYANmYx\nR/iN2fD1SkS8A7gC+HKvy2KauZXyhw08d+j6Cvr4hz6KNSk/p7UycwPK6YNngNsGmGE0T7HoUc7C\n9sez9cQpImJ5YBvg/9WZo0Oy6PdpCcrec23n5yNir4h4a8fjmcCSlJ9pXbagvGvrooh4hLIzu3JE\nPBwRa3VftX8i4uSI6BwHW5LyM1zsDlsjjzDGYZFfzIjYiDK4+/7MrPuPqgmDWp1G5jkPOKr9tsiL\ngM8Ad2VmX8cORvg/wJsj4t2U86zHAP+ZmQu7r9Z3ZwMHRsR/UW6dfyRwU2ZmvbF4HTCnyinZATkV\nOD0izqDskR4OZD+PwipYDdi/veP4EHAUcGtm9mwcc7wy80rKKR8AIuJNwHfqflst5YjrwPZbtv8M\nfA34aWbeubgVpvoRRotF3572EWAp4KSImNvx8aEGZBtreb8t8nUz835ge+AQ4EHKu252GnCmL1EG\nlv9EGQy8nnI+vG5fB06hvC/9Hsre4Q51Bmp7GWUAvhEy80LK5GenUTbOW1D/9+kIyqDyNcD9lGuM\ntq8z0CiGaMDbajPzeMrP7ufAnZSjxV26rePtzSVJlUz1IwxJ0oBYGJKkSiwMSVIlFoYkqRILQ5JU\niYUhSarEwpAkVTLVr/SWGikiFgLvyMxLO5ZtAvyEcuuaXSlzSSyVme+pJ6U0Ph5hSAPQvtX+JcAv\ngN0ycwFlUqs9aw0mjYNHGFKftW+1fznlxo47tSesIjPn1hpMGicLQ5qA9imnD1BmCZwF/BDYs32P\nrs7PWxm4lHIPqHcP30q6/dypeEpKU4inpKSJ+wJlQpytgJV4/pzoy1Mm8dqQchpq5DSvdd2IUpoQ\nC0OauCMy88LMvBHYA3hDRLy64/ljKZNUPUyZTXCkWueOkMbLwpAm7srh/2TmHynFsHHH848CbwU+\nCrw/Iv5usPGk3rIwpIkbOQPfDGBBx+MDMvPBzDyLMsvaie0xDWlKsjCkiXvd8H8iYgPK/OSdM7t1\nFsrelAlq/qNjmeMXmlIsDGniDo+It0TEZpTpSi/LzFtH+8TMnAMcAOwSEbu3Fzt+oSnFwpAm7iTg\nRMpUrn9gjOktM/MkyvUY34iINfBdUppinKJVmoD2dRhvzsyf1p1FGhSPMCRJlVgYkqRKPCUlSarE\nIwxJUiUWhiSpEgtDklSJhSFJqsTCkCRVYmFIkir5//KrEqSrsZJ5AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(pKis, dilute_genesis_pIC50_CV*100, 'ko');\n", "plt.xlabel('pKi');\n", "plt.ylabel('pIC50 CV (%)');\n", "plt.axis([pKis.min(), pKis.max(), 0, 10]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 5. Now compare Tecan Genesis and LabCyte Echo errors." ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(pKis, echo_pIC50_CV*100, 'go');\n", "plt.plot(pKis, genesis_pIC50_CV*100, 'bo');\n", "plt.plot(pKis, dilute_genesis_pIC50_CV*100, 'ko');\n", "plt.xlabel('pKi');\n", "plt.ylabel('pIC50 CV (%)');\n", "plt.legend(['echo','disposable dips','fixed tips with dilution effect'])\n", "plt.axis([pKis.min(), pKis.max(), 0, 10]);" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "echo_pIC50_err = (echo_pIC50_CV*np.abs(pKis))\n", "genesis_pIC50_err = (genesis_pIC50_CV*np.abs(pKis))\n", "dilute_genesis_pIC50_err = (dilute_genesis_pIC50_CV*np.abs(pKis))\n", "\n", "clf();\n", "subplot(111, aspect='equal');\n", "hold(True);\n", "plot([pKis.min(), pKis.max()], [pKis.min(), pKis.max()], 'k-');\n", "plot(pKis, pKis, 'ko');\n", "errorbar(pKis + echo_pIC50_bias, pKis + genesis_pIC50_bias, xerr=2*echo_pIC50_err, yerr=2*genesis_pIC50_err, fmt='bo');\n", "errorbar(pKis + echo_pIC50_bias, pKis + dilute_genesis_pIC50_bias, xerr=2*echo_pIC50_err, yerr=2*dilute_genesis_pIC50_err, fmt='ro');\n", "axis([pKis.min(), pKis.max(), pKis.min(), pKis.max()]);\n", "xlabel('acoustic pIC50');\n", "ylabel('tips pIC50');\n", "title('95% confidence intervals shown');\n", "plt.legend(['ideal', 'ideal', 'model', 'dilute model'], loc='lower right');" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "collapsed": true }, "outputs": [], "source": [ "figsize(10,10)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nhrEmSWox2KQaMtYkSe0MNqlmjDVJ0kxuw6Z6Ktu6TewhOjox1iRJs3GGTaoJY02S1InBJtWAsSZJ\n6sZgk0bMWJMkzcVgk0bIWJMk9cJgk0bEWJMk9cpgk0bAWJMkzYfBJg2ZsSZJmi+DTRoiY02StBAG\nmzQkxpokaaEMNmkIjDVJ0mIYbNKAGWuSpMUy2KQBMtYkSf1gsEkDYqxJkvrFYJMGwFiTJPWTwSb1\nmbEmSeo3g03qI2NNkjQIBpvUJ8aaJGlQDDapD4w1SdIgGWzSIhlrkqRBM9ikRTDWJEnDYLBJC2Ss\nSZKGxWCTFsBYkyQNk8EmzZOxJkkaNoNNmgdjTZI0Cgab1CNjTZI0Kgab1ANjTZI0SgabNAdjTZI0\nagab1IWxJkmqA4NN6sBYkyTVhcEmzcJYkyTVicEmzWCsSZLqxmCT2hhrkqQ6MtikirEmSaorg03C\nWJMk1ZvBpqlnrEmS6s5g01Qz1iRJ48Bg09Qy1iRJ48Jg01Qy1iRJ48Rg09Qx1iRJ48Zg01Qx1iRJ\n48hg09Qw1iRJ48pg01Qw1iRJ48xg08Qz1iRJ485g00Qz1iRJk8Bg08Qy1iRJk8Jg00Qy1iRJk8Rg\n08Qx1iRJk8Zg00Qx1iRJk8hg08Qw1iRJk8pg00Qw1iRJk8xg09gz1iRJk85g01gz1iRJ08Bg09gy\n1iRJ08Jg01gy1iRJ08Rg09gx1iRJ08Zg01gx1iRJ08hg09gw1iRJ08pg01gw1iRJ08xgU+0Za5Kk\naWewqdaMNUmSDDbVmLEmSVJhsKmWjDVJktYy2FQ7xpokSesy2FQrxpokSesz2FQbxpokSbNbOuoB\nAETEEuBI4DnAxsCZwIGZ+auRDkxDY6xJktRZXWbYXgQ8FXgIcHdgFfDpkY5IQ2OsSZLUXV2C7QbK\nWJYCS4A1wI0jHZGGwliTJGluQ1slWq323GyWu9Zk5pciYh/Km/XtwJXAo4c1No2GsSZJUm+GOcO2\nF3DdLB/nRcQhwCOB+wLLgG8Cxw1xbBoyY02SpN4NbYYtM0+lQyBGxLnA4Zl5cXX9VcAfI+KBmXn+\nsMao4TDWJEman7psw/Znyt6hLWuqj9tGMxwNirEmSdL81eKwHsAXgEMj4hvAVcD7gJ9nZo52WOon\nY02SpIWpS7B9hLJDwmnApsDpwL6jHJD6y1iTJGnhahFsmdkE3lN9aMIYa5IkLU5dtmHThDLWJEla\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Doing the pIC50 interpolation correctly using function:\n", "def compute_pIC50_from_pKi(pKis):\n", " Kis = 10**pKis\n", " return np.log10(Kis*(1 + substrate_concentration/Km))\n", "\n", "# Interpolate bias and CV for Echo and Genesis.\n", "echo_bias_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + echo_pIC50_bias, echo_pIC50_bias);\n", "echo_CV_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + echo_pIC50_CV, echo_pIC50_CV);\n", "genesis_bias_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + genesis_pIC50_bias, genesis_pIC50_bias);\n", "genesis_CV_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + genesis_pIC50_CV, genesis_pIC50_CV);\n", "dilute_genesis_bias_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + dilute_genesis_pIC50_bias, dilute_genesis_pIC50_bias);\n", "dilute_genesis_CV_interpolation = interp1d(compute_pIC50_from_pKi(pKis) + dilute_genesis_pIC50_CV, dilute_genesis_pIC50_CV);\n", "\n", "# Compute error bars for Echo and Genesis.\n", "echo_pIC50_err = (echo_CV_interpolation(echo_pIC50s)*np.abs(echo_pIC50s))\n", "genesis_pIC50_err = (genesis_CV_interpolation(genesis_pIC50s)*np.abs(genesis_pIC50s))\n", "dilute_genesis_pIC50_err = (dilute_genesis_CV_interpolation(genesis_pIC50s)*np.abs(genesis_pIC50s))\n", "\n", "# Plot with error bars.\n", "figure();\n", "subplot(111, aspect='equal');\n", "hold(True);\n", "plot([-9, -4], [-9, -4], 'k-');\n", "errorbar(echo_pIC50s, genesis_pIC50s, xerr=2*echo_pIC50_err, yerr=2*dilute_genesis_pIC50_err, fmt='ro', markersize=5, zorder=5);\n", "plot([-9, -6], [-9, -6], 'k-');\n", "xlabel('pIC50 (acoustic)');\n", "ylabel('pIC50 (tips)');\n", "legend(['ideal', 'original'], loc='lower right');\n", "title('95% confidence intervals shown');" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmwAAAJ1CAYAAABkTKx2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xuc5fd8+PHXVxK3CjIrISJLZPVtEBKX0lCaqiq6v1LX\nXa1rbZDQpYQq1qi6bNFFUpl1S7V249IG6xqJBqUiyAq63rohdokUuytoCMme3x/f7+yenZ0558zM\nuXzPOa/n4zGPnTnfc/nM7CTntZ/v5/v9Fo1GA0mSJNXXDQY9AEmSJLVmsEmSJNWcwSZJklRzBpsk\nSVLNGWySJEk1Z7BJkiTV3KGDHoA06iLicGA98GjghsB/AH+dmd9pus/jgc1zPPyPM/P8iLgh8Dbg\nT4GdwLMy8z+bHv//gL/KzAf37jvpXEQcCbwPuB/wTWAL8MzMPLrFY7YD/5KZU/0Z5eJExBXApsx8\nSYf3PxZ4F/CIzLy2h0PrZCznAJGZv9uj599L+bs53Yvnl8aZwSb13ruBU4CXAgk8Hfh8RJyQmT+p\n7nMCcBmwZtZjv1X9+TTgj4BVwJ8A5wK3A4iIApgCntXD72GhngbcH3g88F3gx8CH2jymUX3U3Z8C\nP2l7r/0eDPwB9fneej2Ounyf0kgx2KQeioi7Ub7BPzEzN1e3XQB8DXgx8ILqrncHLsnML83zVHcH\nPp2ZH4+I7wLPiohlmbkLeBzwg8z8Yi+/lwW6JXBlZp7XdNsPBjWYbsrMry3yoUVXB7J4dRmHpAUw\n2KTeunP15ydnbsjMRkR8kXLGbMbdgAtaPM8VwFMj4ijgD4GfA7sj4hBgHfDETgdU7a58I/AwynWs\nF1LuTr2y2r6Cchfu71H+P+ITlLtwZ7afAxwCfAN4LnBE9RynZuaVEXER8MDqvnuBpwLHVduPrm6/\nOfBmypj9JfCyOcZ5TDXOh1Y3fRhYm5m7OxlH0/M8FzgdOAb4NvDSzPxo0/YXAc8EblM91wsy8zMt\nfn5XAJsz828i4inA3wGnVj+zFcB/A8/JzM9X299ZPfSXEfGUzHx3RNwC+AfgUcBNqnE/JzN3VK/x\nCsq/569T/t1+DpgEPpyZa5vGck/gy8C9M/OrEXEy5Wzr71Dufk/gZZm5ZZ7v5U+AV1L+nu4BPgC8\nKDN/Nc/970z593ZfYC/wacrfjSua7nZ0RPw75e/3z4C3ZubfNT3HvL9fEfG8avy3zMy91f0vBW6S\nmXeuvr4B8CPgRcD1rX7+c30P0rDyoAOpt/63+vP2s24/bua2ao3b7YGTI2J7RPw6Ir4YEb/TdP9p\n4FrgKso3ptMzswH8BbAtMy/tZDARcShlGP4u8Jzq8UEZQ0TEcuBiynh5OmXI3Av4TETcrOmpVlLu\nml1T3e9kyriCctfsv1RjvR/wUQ72Xso39NOrcby4+WcUEb9FudbvrpS7V9dUr/HR6g27k3EQES8E\nXk+5PnAl8AXg36vQISJeDbwCOJsyHhP4REScNP9P8aBdt8uAtwCvq56jAby3iumPAK+q7vdA4GPV\n+D8C/DHwPMogOxr4j+r7nvE7wLHVc76Bck3go2aN5THA9irW7kAZflcCj6Scef05sKkK5ANU4fQB\nyuj6Y8pofmr18zhINe4PU0bSo4EnUUbkubPu+lLgfyj/Xv4NmIqIR1bP0e7365PAzarbiIhbUs4u\n3ykiblU9/0nABPDx6utWP39pZDjDJvXWxZRvXm+LiKcDO4AnU67vOqy6zwmUu6luB5xG+d/lGcD5\nETGZmT/MzKuryLgj8KPM/FlEHAb8LfDIiHggZZhcBzwvMy+eZzyPqF7vHpn5dYCI+AHwgYg4jnKm\nai/wR5n5i2r7l9i/9u5N1fPckHIR/c+q+9yNMrzIzG0R8UPg2pldvBGxbwARcXfKWbNHZObHq9v+\nB9jaNM4nA8uBO2Xmzuo+X6Vc0/cnVIHZahxVYLwIeEtmrqvu/+mIuAvwgGqm7PnAyzNzfbX9/Oog\ngZdzcBzN58aUC+3Pr153L2V43D0zL42ImYNLvpSZv46Ih1P+/d+v6edzEeXvxl82/YwPpZz5vLy6\nz27gjIi4T2ZeUt3n0ZTxC3AX4D8y88kzA4uI7wNfoYycmVnDmdi8d/Xze31mXgV8NiKuZf73haMo\nZ7BelpkXVM//I+BhEVFU/4AAOC8zX1Rt/wxlVP4e8EHKQJ3v9+tpmfnmaswPAi4BHgB8j3IX+8mU\nf+8PAb5Rzci1/PkDHf1DRhoGBpvUQ9Ub9KMpZ3hm3jw+Rblb6dnV19+knOH4XGb+Eva9gV9OGRQv\nrJ5rL7C96emfTvmmtp3yzfgFlLsIz4uI4+Y5IvFkYOdMrFXPu5XyjZiIeADwyZk302r7dyPiEsrI\neNP+m8tIqvwAaJ4dauX+lG/azbuJL6vW5s14EOXP5cpqVhDK3cKXUy7g//D+h847jqCciflI84tn\n5inV9/owymD5ZNNrAJxP9TNfgOZAnlmrN9/P40HAbuArTa/7f9VznML+n/F1wL4jiTNza0R8G/gz\n4JIqfO9EFWyZ+THKGbybUO7iDMoDHqi+zxkza9guppy1vTgiNlEeybupKbxm+1/KXcpvi4gHV/f/\n1Bz/OPhC05gbEbEDuEV1U6vfrwdQ/ndxfvUzej3lrORnKf8xc3/Kv/c/pNyN2mwhP39pKLlLVOqx\nzPxGZp5AuctveWY+FLgR5ZohMvPqzDx/Jtaq2/6P8o3vhLmeMyJuTLkbcR3lG90NM/McyvVSN6Pc\nFTmXCVof4XhL9u/GbfZjoHm32uw1TnvpfDH7EcDVM2uUmjS/7jLKWaHfAL9u+lhBuTutk3FMNI19\nLsuqPy+d9Rp/Bxxe/Yw79cumz2e+r/n+/7qsGtvs7+0POfB72zVHPL2XclYNypmrbZn5DSh3d0fE\nmZS/V1+inH29SXXfg/5uMvO71Wt+k3Lm6z+B71Qhe5BqLA+h3I36WMqjfq+KiBfPuus1s75usP9n\n0cnv1/mUM6A3oAy3z1Zju3/1d3J/Dg62hfz8paHkDJvUQ9Vsx6MpZxV2Nm26O+WRokTEicA9M/Od\nsx5+E8o1SHN5FuVRo/8TEfcCroZ9Mxo/A249z+OuBm41+8bqTfoSyjf728zeXj3fd+e4fTF2A7eM\niEMz87qm25c1ff5T4L+odm82KaoxduLq6s8Dvt9qfdpvmp7nj6oxNb8GlBHVCz+lnC18zKzbCw6O\nndneB7wsIu7KgbtDAV4C/Hl1+wWZeW1ETAKr53uyamH+wyPippSzvH8LnBsRt8rM38xx/53A0yLi\nLyn/oXA68OqI+I8Wu+GbdfL7dQFwOGWYnUQZa8spd28/hHLm8XMdvJY0UvwXiNRb11EeMPBnMzdU\n66weyP7F+CcCb6+OwJu5z1GUuy8PemOqFqY/n/LoPihnJ46IiKLaxXYE5VF0c/kv4NhqDDPPd0I1\nlt8GPg88tDoQYmb7cZSLwP+r6XmWcq6tz1DGyb41YtUC+Ds23efzlLNp387Mr2bmV4FtlDOK9+pw\nHEkZR4+YdfvbKNfqfYny72fZzGtUr/MQyiNNZ88ALtb1s77+PHBb4MdNr3kp5SxXyxMfZ+Y32X9U\n7CQHBtvvAv+ZmR9t2h3+kOrP5v/XNwAi4pkR8Z0qnK/JzH+nPKDlcA6cTaW6/z0j4kcRcVJm7s3M\nz7I/qG/XYtjNf0dtf7+qo4C/TBlouzPz29W2Q4C/oVynd1BMSqPOGTaphzLzNxHxLuAVEfFTypmd\nN1DGx8yM2vspj6z794h4aXXbOsoQ2zjH0/4V8JGmUynMrEV6OeWb2i84cE1Psw9TvuHPvNa1wN9T\nvtF/oVrw/RTKxfevpVzQ/Urg+5Rn65+x6HN5VQclvBc4u3rj3k25G7L5TfidwFrK9WX/UI3zBZQL\n5f+6k3FUP/v1wCurWcf/otyVdxfgqZn544g4G3hrRNya8hQav085y/TSeZ625WvO46fVn4+P8hx8\nWyh3Q34iIv6Ochf1MyiP7Dy7g+d7L+XfyWWZmU23XwK8ICKeQXmgy4Moj8LcS7mbfPb4LwL+kXJG\n7ezqPi+l/F3YNcfrXkZ5mo5zojztyM8p12H+lPKI3vkUTa/5j3T2+/VJyqNW/x3KJQJRnt7jfpSz\netLYqd0MW0Q8LSLmW3MiDaMXUq77eRNlgH0W+MOZWYJqvdqDKd/Ez6Z840rg92efDyvK83edzv5T\nRVAt4H4S5ekvngisbl4P16x6zYdQzmBsBN5OeRTho6rtOyiP6LsaeA9wFmUInNy0UHy+KxI0Zn3e\n6uunVM+/vhrHe6pxzIzzasrg+CFwDuVBG3uBB2fm/3Q6jsx8LeVav6dSxuo9gIc1HXSxljIingd8\njPJUGM+vHjef2a/Z7mdxAeWpM95OeQLl6yh3w14MnEl59OSxwMrcf7mxVld9OJcygN476/bXVtte\nQ/m93p3y7zIpz5t2wPNm5rco/96PBc4D3kF5pO6jmUM17odTHrX5Nso1bLcEHlLNis2n+TU7+f2C\nMtgalLtDZ3ymum32+rV2P39pJBSNRn1+ryPijsBXgV9n5lGDHo8kSVId1GaGrTrJ4bspZxi8dIok\nSVKlb2vYqiA7fI5Ne6vzKL2Ycg3JxynPLyVJkiT6e9DBKZTn15ntioh4LOXam3tTXo5FkiRJlb4F\nW3Upk4N2wVYnQvwy8JeZeU3zJWw6ERE3Au5DuTh59uHzkiRJdXII5fWDL5nnijRzqsNpPe5DeSHs\nj1axdihw0+q6eXfPzO938HhPoihJkobJ73HgkdAtDTzYMvNzNF3zLSIeBHwgM4/s8Cl+WP35e5Tn\n8pEkSaqFvXv3snPnzpdcf/31zwC40Y1udOExxxzzYPb3S0cGHmxzKFjYOXRmdoN+v+lEopIkSQNV\nFEUB/APlybEB3rd8+fKXANtZ4DKu2gVbZl4EeA42SZI0tJpibebqLO8DnnjooYe2upTbvGpzHjZJ\nkqRRMF+sNRqN6xb7nAabJElSl/Qi1sBgkyRJ6opexRoYbJIkSUvWy1gDg02SJGlJeh1rYLBJkiQt\nWj9iDQw2SZKkRelXrIHBJkmStGD9jDUw2CRJkhak37EGBpskSVLHBhFrYLBJkiR1ZFCxBgabJElS\nW4OMNTDYJEmSWhp0rIHBJkmSNK86xBoYbJIkSXOqS6yBwSZJknSQOsUaGGySJEkHqFusgcEmSZK0\nTx1jDQw2SZIkoL6xBgabJElSrWMNDDZJkjTm6h5rYLBJkqQxNgyxBgabJEkaU8MSa2CwSZKkMTRM\nsQYGmyRJGjPDFmtgsEmSpDEyjLEGBpskSRoTwxprYLBJkqQxMMyxBgabJEkaccMea2CwSZKkETYK\nsQYGmyRJGlGjEmtgsEmSpBE0SrEGBpskSRoxoxZrYLBJkqQRMoqxBgabJEkaEaMaa2CwSZKkETDK\nsQYGmyRJGnKjHmtgsEmSpCE2DrEGBpskSRpS4xJrYLBJkqQhNE6xBgabJEkaMuMWa2CwSZKkITKO\nsQYGmyRJGhLjGmtgsEmSpCEwzrEGBpskSaq5cY81MNgkSVKNGWslg02SJNWSsbafwSZJkmrHWDuQ\nwSZJkmrFWDuYwSZJkmrDWJubwSZJkmrBWJufwSZJkgbOWGvNYJMkSQNlrLVnsEmSpIEx1jpjsEmS\npIEw1jpnsEmSpL4z1hbGYJMkSX1lrC2cwSZJkvrGWFscg02SJPWFsbZ4BpskSeo5Y21pDDZJktRT\nxtrSGWySJKlnjLXuMNgkSVJPGGvdY7BJkqSuM9a6y2CTJEldZax1n8EmSZK6xljrDYNNkiR1hbHW\nOwabJElaMmOttww2SZK0JMZa7xlskiRp0Yy1/jDYJEnSohhr/WOwSZKkBTPW+stgkyRJC2Ks9Z/B\nJkmSOmasDYbBJkmSOmKsDY7BJkmS2jLWBstgkyRJLRlrg2ewSZKkeRlr9WCwSZKkORlr9WGwSZKk\ngxhr9WKwSZKkAxhr9WOwSZKkfYy1ejLYJEkSYKzVmcEmSZKMtZoz2CQNtaLg+KKgUX0cP+jxSMPI\nWKs/g02SpDFmrA0Hg03S0CoK1gBbmm7aUt0mqQPG2vA4dNADkKTFqMJseoJdrGIzAJtZNbmbZdNF\nAY0GGwc7QqnejLXhYrBJqqUO1qOtnWAXl3ISy9kJwBms50S2soeJtUXBhfM9sNHg8m6OVRo2xtrw\nMdgk1dX2dndYxeZ9sQawnJ2sZhNncfpkm8cXXRifNJSMteHkGjZJksaEsTa8nGGTVFcr2mzfsplV\nk2ewft8s2w6OZROrAbYBK3s8PmmoGGvDzWCTVEvt1pkVBRt2s2z6RLaymk0AbGI1e5gA2OA6NWk/\nY234GWyShlKjwcaigD1MrK3WrEE5s7bBI0Sl/Yy10WCwSRpaVbRdyP4DDFY6sybtZ6yNDoNN0lCr\nAs2jPqVZjLXRYrBJGmrFVHE8+2fYVjTWNZxh09gz1kaPp/WQJGmEGGujyWCTNLSKqeLga4mWt0lj\nyVgbXQabpKFUhdk0MNl08yQwbbRpHBlro801bJJqqVqb1sraVtuKqWL+a4m6zk0jxlgbfQabpLpq\ney3RFryWqMaGsTYeahNsEfEN4Dhgb3XTFZl5wgCHJElSrRlr46MWwRYRNwECOCoz9wx6PJJqoe21\nRDlw/VozryWqkWesjZdaBBtwAnCVsSZpRrt1ZsVUsYHyoIO5bHCdmkaZsTZ++hZsEXEIcPgcm/YC\nJwG/iYgvUP6r+lLgrzLzW/0an6Th0ljX2FhMFVAefHDgtUTXNbyWqEaWsTae+nlaj1OA3XN8bAUa\nwJeAJwDLgS8DH4uIG/dxfJKGTBVmzbs+VxprGmXG2vjq2wxbZl5A60Bs/p/s30bEacA9gIt7OjBJ\nkoaAsTbearGGLSJOBbZn5oXV14cChwG/GujAJNVetVbN03RopBlrqkWwAUcBz4mIPwZ2Aa8DtmXm\n1wY7LEmSBstYE9Qn2F4N3JxyHdvNgIuAPx3kgCRJGjRjTTNqEWyZeT3wwupDkqSxZ6ypmRd/lySp\nZow1zWawSZJUI8aa5mKwSZJUE8aa5mOwSZJUA8aaWjHYJEkaMGNN7RhskiQNkLGmThhskiQNiLGm\nThlskiQNgLGmhTDYJEnqM2NNC2WwSZLUR8aaFsNgkySpT4w1LZbBJklSHxhrWgqDTZKkHjPWtFQG\nmyRJPWSsqRsMNkmSesRYU7cYbJIk9YCxpm4y2CRJ6jJjTd1msEmS1EXGmnrBYJMkqUuMNfWKwSZJ\nUhcYa+olg02SpCUy1tRrBpskSUtgrKkfDDZJkhbJWFO/GGySJC2CsaZ+MtgkSVogY039ZrBJkrQA\nxpoGwWCTJKlDxpoGxWCTJKkDxpoGyWCTJKkNY02DZrBJktSCsaY6MNgkSZqHsaa6MNgkSZqDsaY6\nMdgkSZrFWFPdGGySJDUx1lRHBpskSRVjTXVlsEmShLGmejPYJEljz1hT3RlskqSxZqxpGBhskqSx\nZaxpWBhskqSxZKxpmBhskqSxY6xp2BhskqSxYqxpGBlskqSxYaxpWBlskqSxYKxpmBlskqSRZ6xp\n2BlskqSRZqxpFBhskqSRZaxpVBhskqSRZKxplBhsktRjRcHxRUGj+jh+0OMZB8aaRo3BJkk9VBSs\nAbY03bSluk09YqxpFB066AFI0qiqwmwaYIJdrGIzwORmVk0XxTIaDTYOdIAjyFjTqDLYJGkJ2uzi\nXAtlrF3KSSxnJwBnsJ578+XnF8VRF7Z67kaDy7s30tFnrGmUGWyStDTb291hFZv3xRrAcnbyON4X\nZ3F6u8cWSx3cuDDWNOpcwyZJGmrGmsaBM2yStDQrWmzbQrlmjTNYv2+WbQfH8j4el8Aj+jHAUWas\naVwYbJK0BK3WmRUFG4Dp3SzjRLaymk0AbGI1e5h4o2vUlsZY0zgx2CSpRxoNNhblKrS1e5iYPIvT\nAbYBGzxCdGmMNY0bg02SeqiKtgvZf3DCSmfWlsZY0zjyoANJ0tAw1jSunGGTpB6rZtQ8RccSGWsa\nZ86wSZJqz1jTuDPYJEm1ZqxJBpskqcaMNalksEmSaslYk/Yz2CRJtWOsSQcy2CRJtWKsSQcz2CRJ\ntWGsSXMz2CRJtWCsSfMz2CRJA2esSa0ZbJKkgTLWpPYMNknSwBhrUme8lqgk9VgxVRwPbK++XNFY\n17h8kOOpC2NN6pwzbJLUQ8VUsQbY0nTTluq2sWasSQtjsElSj1RhNg1MNt08CUyPc7QZa9LCuUtU\nkpag2t05n7WtthVTxYWtnnsUd50aa9LiGGyStDTb299lTpMdPLZY5HPXkrEmLZ67RCVJPWesSUvj\nDJskLc2KFtu2cOD6tWbbgJXdH079GGvS0hlskrQErdaZFVPFBsqDDuayYRTXqM1mrEnd4S5RSeqR\nxrrGRuBUytm0GduAU6ttI81Yk7rHYJOkHqrCrHnX50pjTdJCGWySpK4y1qTucw2bJPVYtVZtpE7R\nMR9jTeoNZ9gkSV1hrEm9Y7BJkpbMWJN6y2CTJC2JsSb1nsEmSVo0Y03qD4NNkrQoxprUPwabJGnB\njDWpvww2SdKCGGtS/xlskqSOGWvSYBhskqSOGGvS4BhskqS2jDVpsAw2SVJLxpo0eAabJGlexppU\nDwabJGlOxppUHwabJOkgxppULwabJOkAxppUPwabJGkfY02qJ4NNkgQYa1KdGWySJGNNqrlDBz2A\nGRHxKOA1wG2BbwKnZuZlgx2VJI0+Y02qv1rMsEXEScA7gKdl5s2B84D3D3ZUkjT6jDVpONQi2IBT\ngY2Z+YXq6zcCT4iIYoBj0jyKguOLgkb1cfygxyNpcYw1aXj0bZdoRBwCHD7Hpr3AScBHIuJC4O7A\npcBpmdno1/jUmaJgDbC26aYtRcGGRoONgxqTpIUz1qTh0s8ZtlOA3XN8fA2YAJ4FvBA4BvgK8OEq\n8lQTVaxNT7Br8jTO5DTOZIJdk8B0tU3SEKhibRpjTRoafZthy8wLmCcQI+IbwL9l5lerr18GPB8I\n4L/7NcZx18HuzbUT7OJSTmI5OwE4g/WcyFb2MLG2KLiw1YMbDS7v1lglLU4VaxcD96luMtakIVCX\no0QTuHHT1zcAiupD/bO93R1WsXlfrAEsZyer2cRZnD7ZweP9+5QGqIq1LwH3rm7ahrEmDYW6BNs5\nwLsj4j3AVuBVQGbmNwc6KkkaEXPE2k7gJGNNGg61CLbM3BIRpwP/DNyOcg3bIwc7qrG0os32LZtZ\nNXkG6/fNsu3gWDaxGsp/qa/s8fgkLcI8sXanRqNx7eBGJWkhahFsAJn5HuA9gx7HOGu3xqwo2LCb\nZdMnspXVbAJgE6vZwwTABteoSfVjrEmjoTbBpvprNNhYFLCHibXVmjUoZ9Y8rUdNVQeSzKwtXGFU\njxdjTRodBpsWpIq2C9kfASuNAKl+jDVptNTlSgeqeBUBdUt1brwtTTdt8Xx548FYk0aPM2xasGpG\nzVN01FjTSY5ZxWYANrNqcjfLpouinCkd7AjVK8aaNJoMthrxsk/qlCc51lyMNWl0GWw14YyIFsiT\nHOsAxpo02gy2PnFGRFKvGGvS6DPY+scZEXWTJzkWYKxJ48Jgk4aQJzkWGGvSODHY+scZEfWNJzke\nfcaaNF4Mtj5xRkT95kmOR5exJo0fg60mnBFRL3jOvNFjrEnjyWCrEWdEJLVirEnjy0tTSdIQMNak\n8eYMW824C0vSbMaaJGfYJKnGjDVJsIAZtoiYoPwfxlHAXuAq4NLM3NOjsammiqniePavs1vRWNdw\nnZ3UA8aapBktgy0iDgMeDzyH8n8Yvwb2AIcAE0AREf8FnA1szsy9vR2uJI0HY01Ss3l3iUbEg4Ct\nwF8A/wwE8FuZedvMvDVwI+AkYDPwbOBbEXFK74esQSqmijXAlqabtlS3SeoSY03SbK1m2J4LPCYz\nt821sZpN+3r18U8RcQ9gCviPro+yxqqLuu/fPTjCp+Gowmx61s2TwHQxVdBY1/B8cdISGWuS5jJv\nsGXmoxfyRJn5NeCRSx6RBqZam9bK2lbbiqniwlYPdq2b1JqxJmk+Czno4FbANZl5TUTcC3g48JXM\n/FjPRldzRcEaDoyYLUUx1Fcm2N7+LvOa7ODxnq5EmoexJqmVjk7rERGPBL4PnBwRK4CLgCcA74+I\n5/RuePVVxdr0BLsmT+NMTuNMJthV7h4st0lSR4w1Se10OsP2d8DLM/OCiHgNsDMz7xoRK4ENwFt6\nNsIBqdamtbJ2gl1cykksZycAZ7CeE9nKHibWVpeYmldN17qtaLN9C+VM2ly2ASu7Oxxp9BlrkjrR\nabDdifJoUCjflD9Uff514JhuD6om2u4eXMXmfbEGsJydrGYT1cXbh273YLs1ZsVUsYGDDzqYscE1\natLCGGuSOtVpsF0J3DMijgTuAjyzuv3hwPd6MTDVT2NdY2MxVUC5bm9mpm0bZawN67q9keZJjuvL\nWJO0EJ0G2z8A768+vzgz/zMipoC/BU7tycgGr+3uwc2smjyD9ftm2XZwLJtYDSO8e7CKtgvZHwEr\njQBpYYw1SQvVUbBl5lsj4ovAHYBPVDd/FvhUZv5nj8Y2UO3WmBUFG3azbPpEtrKaTQBsYjV7mADY\nsNg1as6IqFuq8+YdeBTzVOFs6IAZa5IWo+PTemTmpRHRAP4sIq4HvjbfSXXHQaPBxqKAPUysrdas\nwczuweE9rUdHqois3Ro87edJjuvJWJO0WB0FW0TcGjgPuB+wm/JaoreIiE8Bj83Mn/VuiPVVRduB\nuweXcPTnUmZExumKC/Ikx8PIWJO0FJ3OsG0ErgNWZOZ3ACLit4FzgDOBJ/VkdEOgCqMlzzY5I6IF\n8iTHQ8RYk7RUnQbbg4GTZ2INIDO/HRGnUZ5EV230dEbkrK8/Ae72xKZbhv2KC9LIMNYkdcNCTutx\ne+CyWbcfAfykqyMaXb2ZEfnyM+DHd2OCXayqTpW3mVWTu1k2XRTlbtslvK7qy5McDwFjTVK3dBps\nrwbOjojlwOcod4/eG3gV8I6IeODMHTPzs10fpeZ3ybMZwSsuqA1Pclx/xpqkbuo02N5Z/TnXJajW\nVR8zOrrWP8IxAAAgAElEQVQ+6Rha/IzIjydh05a5H7XnjqzirJG64oKWzpMcD5axJqnbOj0PmxG2\nREuaEfniWtjTbgmcdCBPcjwYxpqkXpg32CLihpn565nPWz3JzP20ePPOiPzoru/hK2vObfHQsbzi\nglRHxpqkXmk1w/ariLhNZv4I+FWL+zUoz8umJZpzRuSsb1zOWfM/pldXXNBo8CTH/WOsSeqlVsH2\nB8Ceps/n0+jecLRQ43zFBakujDVJvTZvsGXmRU1fPhB4Q2b+X/N9IuLmwBTwmZ6MbgwtZkak21dc\nkNQ5Y01SP7Raw3YCcDRlPLwCyIjYM+tudwNOBZ7XqwFKUl0Za5L6pdUu0WXAJ5q+3jzHfX4B/ENX\nR6RF6dYlsiR1xliT1E/tdoneACAirgDunZle1UDS2DPWJPXbvOdXi4jbz3yemXfoJNYi4g5dGpck\n1ZKxJmkQWu0S/UBEfB54c/NF3+cSEXcDng3cD7hnF8dXe9VF3WcW+6/wxKTS6DLWJA1Kq2A7mfJg\ngosj4ofA+cA3KS/2fgPgVsCJlEeQ3hZ4A/BXPR2tJA2IsSZpkFqtYfsNsD4i3gKsAh4OPBo4CtgL\nXAV8BXg98G+ZeU3vh1svxVSxhvLKBDO2FFOF12qURoyxJmnQ2l5LNDN/SXnx93e2u+84qWJt9rU/\nJ4HpYqrAaJNGg7EmqQ46uvj7OKrWprWyttW26hJT83Ktm1R/xpqkujDY5re9/V3mNdnB4z1nmlRj\nxpqkOpn3tB6SNK6MNUl14wzb/Fa02b6FciZtLtuAld0djqR+MNYk1VHbYIuI36Y8xccxwI2Aa4Af\nAF/IzJFdh9VujVkxVWzg4IMOZmxwjZo0fIw1SXXV6uLvy4B/BR4K7KA8jce1lNF2NHBsRHwUeFJm\nzr4o/MhrrGtsLKYKKA8+mJlp20YZax4hKg0ZY01SnbWaYTsb+C3gDpm5Y/bG6tJV/0o5y/S43gyv\n3qpou5D9BxisdGZNGj7GmqS6axVsDwNOnivWADLzexFxOvC5noxMC+IlsqTFMdYkDYNWwbaLcuH9\nZS3uc2fg510d0ZCpwshTdEhDyFiTNCxaBdurgX+OiN8BPgNcCfyK/WvYHkh57dCX9HqQas1LZGlU\nFAUHzhQ36NlMsbEmaZi0upbodERcSXkB+NOBmzZt/iVwMfAXmXleb4eoVrxElrRwxpqkYdPytB6Z\nuQXYEhE3AI6gjLZrgN2Z2ejD+Mael8jSuCgKDp4pLtjQaNDVf3QYa5KGUavTetwT+FpmXp+Ze4Fd\nEXE48Fzg6Ij4FvD2zPxZn8Y6rrxElkZeFWvTE+xiFZsB2Myqyd0smy4K6Fa0GWuShlWrGbYvA7cB\nfgRQrWX7NPAd4FvAGuCMiPiDzPzvXg9U0vCq1qa1snaCXVzKSSxnJwBnsJ4T2coeJtYWBfPOFHe6\nzs1YkzTMFnJpqtcC78nMUwGq3aRnA28G/rAHY1PJS2RpFLSdKV7F5n2xBrCcnaxmE2dxeruZ4raz\nxMaapGG3kGCbBF4w80Vm7o2INwJf7fqotI+XyJKWxliTNApu0Gb7sqbPvw4cOWv77SjP16YBqY4C\nPZVyNm3GNuBUjxBVjaxo87FtM6vYwbH7HrCDY9nEaih/n1s9dl7GmqRR0WqGbQ/wzYi4GkjgMOCt\nEXHXzPxlRDwDeAXwL70fplrxElmqu3brzIqCDbtZNn0iW1nNJgA2sZo9TABsWMz52Iw1SaOk1XnY\nlkXEbYC7NH3cGfhNdZeXAu8HXt7rQUoabY0GG4sC9jCxtlqzBuXM2qJO62GsSRo17c7DdhVwFeXR\nobO33b5Xg9LCeYksDbsq2g6cKXZmTZKANsEWEYcAfwZ8svl8axGxBvgZ8F5PoCupLow1SaNq3oMO\nIuK3gPOBzcAJszbfC3g38NGIuHHvhidpnDQaXN5oUFQfC5pdM9YkjbJWR4n+DeVRoHfNzM83b6jO\nxXZP4G7Ai3o3PElqz1iTNOpaBdsTgOdlZs61MTO/QXlettW9GJgkdcJYkzQOWgXbbYFvtnn8l6Hp\nxEmS1EfGmqRx0SrYvg/cqc3jjwP+t3vDkaTOGGuSxkmrYPs3YF1E3GiujdXBBq8EPtaLgUnSfIw1\nSeOm1Wk9XgN8EfhKRLyF8n+OVwNHAPcFnlM9fqrXg5SkGcaapHE07wxbdd61k4HPAeuBr1Ce0PIS\nypm1TwH3y8wf9WGckpoUBccXBY3q4/hBj6dfjDVJ46rdlQ5+CjwrItYCd6ScXfsJcHlmXt+H8UkS\nYKxJGm8tg21GZl5LeV0/SQNWFKwB1jbdtKUoFnfNzWFhrEkad/MGW0RsBhq0vz5lIzM9F5vUB1Ws\nTU+wi1VsBmAzqyZ3s2y6KMrrcQ52hN1nrElS6xm2a+kw2Lo3HGm8dbAebe0Eu7iUk1jOTgDOYD0n\nspU9TKytLp4+r8VcTH2QjDVJKs0bbJn5lD6OQx2q3tC3V1+uGLY3YLW1vd0dVrF5X6wBLGcnq9nE\nWZw+2cHj2/0DrDaMNUnar6M1bDMi4h6U1w+9HvhaZrquTVLXGWuSdKCOgi0ibg2cB9wP2A0cAtwi\nIj4FPLY6BYi6oNUM2jguNh9DK9ps37KZVZNnsH7fLNsOjmVTeUnfbcDKHo+vp4qp4nj2sp2jgR/u\nu9lYkzT2Op1h2whcB6zIzO8ARMRvA+cAZwJP6snotM/MYnOApgXnk5tZNV0Uy0Zysfk4areLuyjY\nsJtl0yeyldVsAmATq9nDBMCGod9F/ivgnzHWJGmWToPtwcDJM7EGkJnfjojTgIt6MbBxU82sPQF4\natPNnywK3gWcSzWzNteC83vz5ecXxVEjtdhcc2s02FgUsIeJtdWaNShn1oZ+prV4ebGGT/KmfbG2\ngt/wGF7beI2xJkmdBtuVwO2By2bdPnMiXS3ddjhg9ozNrDp+N8teBbxq5k5zLTh/HO+Lszh9ZBab\nq7Uq2i5k/67zlcMe5MXLizVcwDSXVjfcFfgzDuMQziqmiusa6xpDHaOStFSdBturgbMjYjnlpaqu\no1wM/CrgHRHxwJk7ZuZnuz7KEdDJ5YNanK6h5+OTeqmYKub//f8V8EneNCvWypWypbXFVDHvDHJj\nXWOoY1WSOtFpsL2z+vMtc2xbV33MmPf6pGNuKadr2HfbZlYxz4LzdovVNUKqGbVhmjWd+/d/Lweu\nWTs41gDana5kmH4OkrQonV6aygirid0sY64F58O+S0xjaC/wNtrFmiSJBZ6HTUvSjdM1PAF46h4m\njq9m3S6HfQclSHV24O//r4DXcx7XcUK19TfVmrW5DP3pSiRpqQy2PunS6Rr+vig4l/27hx7qzJqG\nQfM6s6aT4p5Q3bSTx/BaDuGseR6+wXVqksadwVYTo3y6BmnGvFcweE3j2mKquI7y9DUH/v57hKgk\neYBAnVRh1rzrZ+XsWGs0uLzRoKg+nHXQ0Gh3uakqzA78/TfWJAkw2CT1gdcGlaSlcZdozQzh6Rqk\nlhYSa9VaNX//JWkWZ9g0dIqC44uCRvXR9oTEGhxn1iSpOww2ST1hrElS9xhsGipFwRpgS9NNW6rb\nVCPGmiR1l2vYNDSqMJueYBer2AzAZlZN7mbZdFHsO8pWA2asSVL3GWyqjQ7Wo62dYBeXctK+q0Gc\nwXpOZCt7mFhbFMx7gXBof/JiLZ2xJkm9YbCpTlpd4BuAVWzeF2sAy9nJajZRnWy43eM9+rCHjDVJ\n6p1aBFtEfBx4QNNNNwBuApycmV8czKik+iqmiuPZH6grBn3pJmNNknqrFsGWmQ9r/joizgEOMdbG\nzoo227dsZtXkGazfN8u2g2PZxGrwAuEDY6xJUu/VItiaRcQjgT9g//UENSbarTErCjbsZtn0iWxl\nNZsA2MRq9jAB5TVXx2KNWjFVrKG85uaMLcVUMZBrbhprktQffQu2iDgEOHyOTXsz82fVfQ4F3gj8\ndWb+X7/GpuHQaLCxKGAPE2urNWswc4HwMTlCtIq16Vk3TwLTxVRBP6PNWJOk/unnDNspwPlz3H4F\ncMfq88cD12Tm+/s1KA2XKtouZP/6rZWjNLNWrU1rZW2rbcVU0fpI2S6tdTPWJKm/+hZsmXkB7U/U\n+1QYj5kSaR5tj5RtoS9HyhprktR/tVnDFhGHAw8E/nzQY6mzfh8dWJ0bbf/r1WA2qxqDp+gYAGNN\nkgajNsFG+QZwZWZeNeiBDFKrIKvTYnP1TNsjZZn/gJyeHilrrEnS4NQp2G4PXDnoQdTVIBabV5eC\nOjAQi/FZ4D8I7WZMi6liAwf/HszY0KsZV2NNkgaraDQagx7DkkTEHYDvAsdl5hWDHc3iVTNrT6Bc\nxzez8Pxy4F3AuSxxZmWhb+TzXLeT3SwDONVoG5ymmdYDj5Tt0UyrsSZJ3bPYbqnTDNu4m2ux+PHA\nq6qPVha82Nzrdg6vxrrGxupo0P1HyjqzJkkjzWDrkw5O19BvXrdTLRlrklQfBlv/LOV0DZ1ot1hd\nI6SaUetZFBtrklQvBtuIWMQuMa/bqTkZa5JUPwZb/3TjdA2tDkpYEK/bqbkYa5JUTwZbn3TpdA1/\nX0wV57J/9+pDe7XY3Ot2jh9jTZLqq92lotQn1SkZTqWMohnbgFMHdWLcKsyad32uNNZGk7EmSfXm\nDFuNdHK6hl4vNtf4MdYkqf4MNrXkdTtHm7EmScPBYKsZZ9DUL8aaJA0Pg01DpzoJ8cxu4xW9OvBi\nlBlrkjRcPOhAGjPGmiQNH4NNQ6W68PmWppu2VLepA8aaJA0ng01DowqzaQ48wfAkMG20tWesSdLw\ncg2baqNam9bK2lbbqlOizGuc17oZa5I03Aw21cn29neZ12QHjx/Lo2+NNUkafu4SlUaYsSZJo8EZ\nNtXJijbbt3Dg+rVm2zjwMlpjz1iTpNFhsKk22q0xK6aKDZQHHcxlwzivUZvNWJOk0eIuUQ2NxrrG\nRuBUytm0GduAU6ttwliTpFFksGmoVGHWvOtzpbG2n7EmSaPJYJNGhLEmSaPLNWwaOtVatbE8Rcd8\njDVJGm0Gm1ryQuv1Z6xJ0uhzl6hqpyg4vihoVB/trn4w1ow1SRoPBpvm5YXW681Yk6TxYbBpToO6\n0HpRcHAklrepibEmSePFNWxjqo4XWq/CbBpggl2sYjPA5GZWTRfFMhoNPH0HxpokjSODbXz1/ULr\nHaxHWwtlrF3KSSxnJwBnsJ578+XnF8VRLSMRoNFgpA+KMNYkaTwZbOqnjiJxFZv3xRrAcnbyON4X\nZ3F6J48f2dN9GGuSNL4MtvHlhdaHiLEmSePNYBtTA7rQekeRuJlVnMH6fbNsOziW9/G4BB6xiNcc\nesaaJMlg05wa6xobi6kCynVlMzNt2yhjbVGL/9utLysKNgDTu1nGiWxlNZsA2MRq9jDxxlFfnzYX\nY02SBAabWqii7UL2rz1b2csrHTQabCzKFWhr9zAxeRanw0wkjuERosaaJGmGwaZaqaLtwEh0Zg2M\nNUkaawabWvJC6/1nrEmSZjPYVDvVjNpYRqKxJkmai5emkmrCWJMkzcdgk2rAWJMktWKwSQNmrEmS\n2jHYpAEy1iRJnTDYpAEx1iRJnTLYpAEw1iRJC2GwSX1mrEmSFspgk/rIWJMkLYbBJvWJsSZJWiyD\nTeoDY02StBQGm9RjxpokaakMNqmHjDVJUjcYbFKPGGuSpG4x2KQeMNYkSd106KAHIM1WTBXHA9ur\nL1c01jUuH+R4FspYkyR1mzNsUhcZa5KkXjDYVCvFVLEG2NJ005bqttoz1iRJvWKwqTaqMJsGJptu\nngSm6x5txpokqZdcw6a+qdamtbK21bZiqriw3WsMYr2bsSZJ6jWDTf20vf1d5jXZ4eOLJbzGghlr\nkqR+cJeotEjGmiSpX5xhUz+taLN9CweuX2u2DVjZ3eEsnrEmSeong0190259WTFVbKA86GAuG+py\nPjZjTZLUb+4SVW001jU2AqdSzqbN2AacWm0bOGNNkjQIBptqpQqz5l2fK401SdK4M9ikDhhrkqRB\ncg2baqdaq9bX03O0YqxJkgbNGTapBWNNklQHBps0D2NNklQXBps0B2NNklQnBps0i7EmSaobg01q\nYqxJkurIYJMqxpokqa4MNgljTZJUbwabxp6xJkmqO4NNY81YkyQNA4NNY8tYkyQNC4NNY8lYkyQN\nE4NNY8dYkyQNG4NNY8VYkyQNI4NNY8NYkyQNK4NNY8FYkyQNM4NNI89YkyQNO4NNI81YkySNAoNN\nI8tYkySNCoNNI8lYkySNEoNNI8dYkySNGoNNI8VYkySNIoNNI8NYkySNKoNNI8FYkySNMoNNQ89Y\nkySNOoNNQ81YkySNA4NNQ8tYkySNC4NNQ8lYkySNE4NNQ8dYkySNG4NNQ8VYkySNI4NNQ8NYkySN\nK4NNQ8FYkySNM4NNtWesSZLGncGmWjPWJEky2FRjxpokSSWDTbVkrEmStJ/Bptox1iRJOpDBplox\n1iRJOpjBptow1iRJmtuhgx4AQEQcArweeAJwY+Bi4FmZ+d2BDkx9Y6xJkjS/usywPRl4BHAicCtg\nO/D2gY5IfWOsSZLUWl2C7WeUYzkUOATYC1wz0BGpL4w1SZLa69su0Wq35+FzbNqbmR+IiJWUb9bX\nA1cC9+/X2DQYxpokSZ3p5wzbKcDuOT62RsQLgPsCdwJuCXwSeG8fx6Y+M9YkSepc32bYMvMC5gnE\niLgUeG1mXl59/Vzg5xFx18z8Zr/GqP4w1iRJWpi6rGH7FeXRoTP2Vh/XDWY46hVjTZKkhavFaT2A\nc4EXRsQngB8CrwG+npk52GGpm4w1SZIWpy7B9mbKAxIuAm4GfA545CAHpO4y1iRJWrxaBFtmNoBX\nVR8aMcaaJElLU5c1bBpRxpokSUtnsKlnjDVJkrrDYFNPGGuSJHWPwaauM9YkSeoug01dZaxJktR9\nBpu6xliTJKk3DDZ1hbEmSVLvGGxaMmNNkqTeMti0JMaaJEm9Z7Bp0Yw1SZL6w2DTohhrkiT1j8Gm\nBTPWJEnqL4NNC2KsSZLUfwabOmasSZI0GAabOmKsSZI0OAab2jLWJEkaLINNLRlrkiQNnsGmeRlr\nkiTVg8GmORlrkiTVh8GmgxhrkiTVi8GmAxhrkiTVj8GmfYw1SZLqyWATYKxJklRnBpuMNUmSas5g\nG3PGmiRJ9WewjTFjTZKk4WCwjSljTZKk4WGwjSFjTdIoiojlEfHziLjJHNu+FREPWuLzPyUiLlnK\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot.\n", "figure();\n", "subplot(111, aspect='equal');\n", "hold(True);\n", "plot([-9, -4], [-9, -4], 'k-');\n", "#errorbar(echo_pIC50s, genesis_pIC50s, xerr=2*echo_pIC50_err, yerr=2*genesis_pIC50_err, fmt='o');\n", "errorbar(echo_pIC50s, genesis_pIC50s, fmt='ro', markersize=5, zorder=5);\n", "errorbar(echo_pIC50s - echo_bias_interpolation(echo_pIC50s), genesis_pIC50s - genesis_bias_interpolation(genesis_pIC50s), xerr=2*echo_pIC50_err, yerr=2*genesis_pIC50_err, markersize=8, fmt='bo');\n", "errorbar(echo_pIC50s - echo_bias_interpolation(echo_pIC50s), genesis_pIC50s - dilute_genesis_bias_interpolation(genesis_pIC50s), xerr=2*echo_pIC50_err, yerr=2*dilute_genesis_pIC50_err, markersize=8, fmt='go');\n", "plot([-9, -6], [-9, -6], 'k-');\n", "xlabel('pIC50 (acoustic)');\n", "ylabel('pIC50 (tips)');\n", "legend(['ideal', 'original', 'disposable tips','fixed tips with dilution effect'], loc='lower right');\n", "title('95% confidence intervals shown');" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.56162824385\n" ] } ], "source": [ "def rmse(tips,acoustic):\n", " return np.sqrt(((tips - acoustic) ** 2).mean())\n", "\n", "rootmeansquareerror = rmse(genesis_pIC50s,echo_pIC50s)\n", "print rootmeansquareerror" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.56468259099\n" ] } ], "source": [ "rootmeansquareerror_withbias = rmse(genesis_pIC50s - genesis_bias_interpolation(genesis_pIC50s),echo_pIC50s - echo_bias_interpolation(echo_pIC50s))\n", "print rootmeansquareerror_withbias" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.37475877374\n" ] } ], "source": [ "rootmeansquareerror_withbias_withdilution = rmse(genesis_pIC50s - dilute_genesis_bias_interpolation(genesis_pIC50s),echo_pIC50s - echo_bias_interpolation(echo_pIC50s))\n", "print rootmeansquareerror_withbias_withdilution" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }