{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Assembly and analysis of Ficus RAD-seq data\n", "\n", "A RAD-seq library of 95 samples was prepared by Floragenex with the PstI restriction enzyme, followed by sonication and size selection. Stats reported by Floragenex include: AverageFragmentSize=386bp, Concentration=2.51ng/uL, Concentation=10nM. The library was sequenced on two lanes of Illumina HiSeq 3000 yielding 378,809,976 reads in lane 1, and 375,813,513 reads in lane 2, for a total of ~755M reads. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### This notebook\n", "This is a jupyter notebook, a tool used to create an executable document to full reproduce our analyses. This notebook contains all of the code to assemble the *Ficus* RAD-seq data set with *ipyrad*.\n", "We begin by demultiplexing [The raw data](#The-raw-data). The demultiplexed data (will be) archived and available online. If you downloaded the demultiplexed data you can skip to section [The Demultiplexed Data](#The-demultiplexed-data) and begin by loading in those data. The data were assembled under a range of parameter settings, which you can see in the [Within-sample assembly](#Within-sample-assembly) section. Several Samples were filtered from the data set due to low coverage. The data was then clustered across Samples and final output files were created [Across-sample assembly](#Across-sample-assembly)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Required software\n", "The following conda commands will locally install of the software required for this notebook. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## conda install ipyrad -c ipyrad\n", "## conda install toytree -c eaton-lab" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import ipyrad as ip\n", "import toyplot" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ipyrad v.0.6.20\n", "toyplot v.0.14.4\n" ] } ], "source": [ "## print software versions\n", "print 'ipyrad v.{}'.format(ip.__version__)\n", "print 'toyplot v.{}'.format(toyplot.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cluster info\n", "I started an ipcluster instance on a 40 core workstation with the ipcluster command as shown below. The `cluster_info()` command shows that ipyrad is able to find all 40 cores on the cluster. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "##\n", "## ipcluster start --n=40\n", "##" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import ipyparallel as ipp\n", "ipyclient = ipp.Client(profile=\"testing\")\n", "#print ip.cluster_info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The raw data\n", "The data came to us as two large 20GB files. The barcodes file was provided by Floragenex and maps sample names to barcodes that are contained inline in the sequences, and are 10bp in length. The barcodes are printed a little further below. I ran the program *fastQC* on the raw data files to do a quality check, the results of which are available here [lane1-fastqc](link) and here [lane2-fastqc](link). Overall, quality scores were very high and there was little (but some) adapter contamination, which we will filter out in the ipyrad analysis. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## The reference genome link\n", "reference = \"\"\"\\\n", "ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/\\\n", "002/002/945/GCA_002002945.1_F.carica_assembly01/\\\n", "GCA_002002945.1_F.carica_assembly01_genomic.fna.gz\\\n", "\"\"\"\n", "\n", "## Download the reference genome of F. carica\n", "# ! wget $reference\n", "\n", "## decompress it\n", "# ! gunzip ./GCA_002002945.1_F.carica_assembly01_genomic.fna.gz" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## Locations of the raw data and barcodes file\n", "lane1data = \"~/Documents/RADSEQ_DATA/Ficus/Ficus-1_S1_L001_R1_001.fastq.gz\"\n", "lane2data = \"~/Documents/RADSEQ_DATA/Ficus/Ficus-2_S2_L002_R1_001.fastq.gz\"\n", "barcodes = \"~/Documents/RADSEQ_DATA/barcodes/Ficus_Jander_2016_95barcodes.txt\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create an ipyrad Assembly object for each lane of data\n", "We set the location to the data and barcodes info for each object, and set the max barcode mismatch parameter to zero (strict), allowing no mismatches. You can see the full barcode information [at this link](https://github.com/dereneaton/ficus-rad/blob/master/Ficus_Jander_2016_95barcodes.txt)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " New Assembly: lane1\n", " New Assembly: lane2\n" ] } ], "source": [ "## create an object to demultiplex each lane\n", "demux1 = ip.Assembly(\"lane1\")\n", "demux2 = ip.Assembly(\"lane2\")\n", "\n", "## set path to data, bcodes, and max_mismatch params\n", "demux1.set_params(\"project_dir\", \"./ficus_demux_reads\")\n", "demux1.set_params(\"raw_fastq_path\", lane1data)\n", "demux1.set_params(\"barcodes_path\", barcodes)\n", "demux1.set_params(\"max_barcode_mismatch\", 0)\n", "\n", "## set path to data, bcodes, and max_mismatch params\n", "demux2.set_params(\"project_dir\", \"./ficus_demux_reads\")\n", "demux2.set_params(\"raw_fastq_path\", lane2data)\n", "demux2.set_params(\"barcodes_path\", barcodes)\n", "demux2.set_params(\"max_barcode_mismatch\", 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Demultiplex raw data from both lanes" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: lane1\n", " [####################] 100% chunking large files | 0:21:55 | s1 | \n", " [####################] 100% sorting reads | 0:43:43 | s1 | \n", " [####################] 100% writing/compressing | 0:14:25 | s1 | \n", "\n", " Assembly: lane2\n", " [####################] 100% chunking large files | 0:27:44 | s1 | \n", " [####################] 100% sorting reads | 0:45:12 | s1 | \n", " [####################] 100% writing/compressing | 0:15:53 | s1 | \n" ] } ], "source": [ "demux1.run(\"1\")\n", "demux2.run(\"1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The demultiplexed data\n", "Now we have two directories with demultiplexed data, each with one gzipped fastq file corresponding to all of the reads matching to a particular Sample's barcode from that lane of sequencing. These are the data that (will be uploaded) to Genbank SRA when we publish. We will load the sorted fastq data at this step, to copy the same procedure that one would take if they were starting from access to the demultiplexed data." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "lib1_fastqs = \"./ficus_demux_reads/lane1_fastqs/*.gz\"\n", "lib2_fastqs = \"./ficus_demux_reads/lane2_fastqs/*.gz\"" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: lib1\n", " [####################] 100% loading reads | 0:01:47 | s1 | \n", "\n", " Assembly: lib2\n", " [####################] 100% loading reads | 0:00:34 | s1 | \n" ] } ], "source": [ "lib1 = ip.Assembly(\"lib1\", quiet=True)\n", "lib1.set_params(\"sorted_fastq_path\", lib1_fastqs)\n", "lib1.run(\"1\")\n", "\n", "lib2 = ip.Assembly(\"lib2\", quiet=True)\n", "lib2.set_params(\"sorted_fastq_path\", lib2_fastqs)\n", "lib2.run(\"1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Merge the two lanes of data into one Assembly\n", "We will join these two demultiplexed libraries into a single analysis that has the set of parameters we will use to assemble the data set. To do this we use the `merge()` command in ipyrad. On this merged Assembly we will then set a number of parameter settings that we will use to assemble the data. \n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 0 assembly_name merged \n", " 1 project_dir ./analysis-ipyrad \n", " 2 raw_fastq_path Merged: lane1, lane2 \n", " 3 barcodes_path Merged: lane1, lane2 \n", " 4 sorted_fastq_path Merged: lane1, lane2 \n", " 5 assembly_method denovo \n", " 6 reference_sequence \n", " 7 datatype rad \n", " 8 restriction_overhang ('TGCAG', '') \n", " 9 max_low_qual_bases 5 \n", " 10 phred_Qscore_offset 43 \n", " 11 mindepth_statistical 6 \n", " 12 mindepth_majrule 6 \n", " 13 maxdepth 10000 \n", " 14 clust_threshold 0.85 \n", " 15 max_barcode_mismatch 0 \n", " 16 filter_adapters 3 \n", " 17 filter_min_trim_len 60 \n", " 18 max_alleles_consens 2 \n", " 19 max_Ns_consens (5, 5) \n", " 20 max_Hs_consens (5, 5) \n", " 21 min_samples_locus 4 \n", " 22 max_SNPs_locus (20, 20) \n", " 23 max_Indels_locus (8, 8) \n", " 24 max_shared_Hs_locus 4 \n", " 25 trim_reads (0, 0, 0, 0) \n", " 26 trim_loci (0, 8, 0, 0) \n", " 27 output_formats ('l', 'k', 's', 'a', 'p', 'n', 'v') \n", " 28 pop_assign_file \n" ] } ], "source": [ "## named corresponding to some params we are changing\n", "data = ip.merge(\"merged\", [demux1, demux2])\n", "\n", "## set several non-default parameters\n", "data.set_params(\"project_dir\", \"analysis-ipyrad\")\n", "data.set_params(\"filter_adapters\", 3)\n", "data.set_params(\"phred_Qscore_offset\", 43)\n", "data.set_params(\"max_Hs_consens\", (5, 5))\n", "data.set_params(\"max_shared_Hs_locus\", 4)\n", "data.set_params(\"filter_min_trim_len\", 60)\n", "data.set_params(\"trim_loci\", (0, 8, 0, 0))\n", "data.set_params(\"output_formats\", list(\"lksapnv\"))\n", "\n", "## print parameters for prosperity's sake\n", "data.get_params()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create branch `ficus` and drop the control Sample\n", "First we will drop the control sequence included for quality checking by Floragenex (FGXCONTROL). To do this we create a new branch using the argument `subsample` to include all Samples except FGXCONTROL. " ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## drop the Floragenex control sample if it is in the data\n", "snames = [i for i in data.samples if i != \"FGXCONTROL\"]\n", "\n", "## working branch\n", "data = data.branch(\"ficus\", subsamples=snames)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A summary of the number of reads per Sample." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "summary of raw read covereage\n", "count 95\n", "mean 5149596\n", "std 7716026\n", "min 14703\n", "25% 289541\n", "50% 1890328\n", "75% 7402440\n", "max 51339646\n", "Name: reads_raw, dtype: int64\n" ] } ], "source": [ "print \"summary of raw read covereage\"\n", "print data.stats.reads_raw.describe().astype(int)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Filtering options\n", "From looking closely at the data it appears there are som poor quality reads with adapter contamination, and also that there are some conspicuous long strings of poly repeats, which are probably due to the library being put on the sequencer in the wrong concentration (the facility failed to do a qPCR quantification). Setting the filter parameter in ipyrad to strict (2) uses 'cutadapt' to filter the reads. By default ipyrad would look just for the Illumina universal adapter, but I'm also adding a few additional poly-{A,C,G,T} sequences to be trimmed. These appeared to be somewhat common in the raw data, followed by nonsense. " ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus\n", " [####################] 100% concatenating inputs | 0:02:43 | s2 | \n", " [####################] 100% processing reads | 0:51:52 | s2 | \n" ] } ], "source": [ "## run step 2\n", "data.run(\"2\", force=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Within-sample assembly\n", "Steps 2-5 of ipyrad function to filter and cluster reads, and to call consensus haplotypes within samples. We'll look more closely at the stats for each step after it's finished. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### _reference_ & _de novo_ assemblies with ipyrad" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "## create new branches for assembly method\n", "ficus_d = data.branch(\"ficus_d\")\n", "ficus_r = data.branch(\"ficus_r\")\n", "\n", "## set reference info\n", "reference = \"GCA_002002945.1_F.carica_assembly01_genomic.fna\"\n", "ficus_r.set_params(\"reference_sequence\", reference)\n", "ficus_r.set_params(\"assembly_method\", \"reference\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "## map reads to reference genome\n", "ficus_r.run(\"3\", force=True)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_d\n", " [####################] 100% dereplicating | 0:04:31 | s3 | \n", " [####################] 100% clustering | 0:13:54 | s3 | \n", " [####################] 100% building clusters | 0:00:46 | s3 | \n", " [####################] 100% chunking | 0:00:11 | s3 | \n", " [####################] 100% aligning | 0:23:58 | s3 | \n", " [####################] 100% concatenating | 0:00:14 | s3 | \n" ] } ], "source": [ "## cluster reads denovo\n", "ficus_d.run(\"3\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_d\n", " [####################] 100% inferring [H, E] | 0:14:01 | s4 | \n" ] } ], "source": [ "ficus_d.run(\"4\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Branch to make consensus calls at different mindepth settings\n", "Now that the reads are filtered and clustered within each Sample we want to try applying several different parameter settings for downstream analyses. One major difference will be in the minimum depth of sequencing we require to make a confident base call. We will leave one Assembly with the default setting of 6, which is somewhat conservative. We will also create a 'lowdepth' Assembly that allows base calls for depths as low as 2. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ficus_dhi = ficus_d.branch(\"ficus_dhi\")\n", "ficus_dlo = ficus_d.branch(\"ficus_dlo\")\n", "ficus_dlo.set_params(\"mindepth_majrule\", 1)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_dlo\n", " [####################] 100% calculating depths | 0:00:23 | s5 | \n", " [####################] 100% chunking clusters | 0:00:21 | s5 | \n", " [####################] 100% consens calling | 0:15:17 | s5 | \n", "\n", " Assembly: ficus_dhi\n", " [####################] 100% calculating depths | 0:00:23 | s5 | \n", " [####################] 100% chunking clusters | 0:00:21 | s5 | \n", " [####################] 100% consens calling | 0:14:24 | s5 | \n" ] } ], "source": [ "ficus_dlo.run(\"5\")\n", "ficus_dhi.run(\"5\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot consens reads\n", "Compare hidepth and lodepth assemblies. The difference is not actually that great. Regardless, the samples with very few reads are going to recover very few clusters. \n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div align=\"center\" class=\"toyplot\" id=\"t97a2d0f4f74441f790862d6cc0dddf76\"><svg class=\"toyplot-canvas-Canvas\" height=\"300.0px\" id=\"t4ab2f767943d4de8a4231c25ddcfb787\" preserveAspectRatio=\"xMidYMid meet\" style=\"background-color:transparent;fill:rgb(16.1%,15.3%,14.1%);fill-opacity:1.0;font-family:Helvetica;font-size:12px;opacity:1.0;stroke:rgb(16.1%,15.3%,14.1%);stroke-opacity:1.0;stroke-width:1.0\" viewBox=\"0 0 700.0 300.0\" width=\"700.0px\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:toyplot=\"http://www.sandia.gov/toyplot\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g class=\"toyplot-coordinates-Cartesian\" id=\"t5935bc4e46e7471b87e30c344c267f53\"><clipPath id=\"td9aa7ad4e9aa4bc09f3ed20f928c1e6c\"><rect height=\"220.0\" width=\"620.0\" x=\"40.0\" y=\"40.0\"></rect></clipPath><g clip-path=\"url(#td9aa7ad4e9aa4bc09f3ed20f928c1e6c)\"><g class=\"toyplot-mark-BarBoundaries\" id=\"t5fb77395b87f40c381c495f7c65fc09d\" style=\"stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\"><g class=\"toyplot-Series\"><rect class=\"toyplot-Datum\" height=\"14.306286879010969\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842124\" x=\"50.0\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"19.455132229024628\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842124\" x=\"56.315789473684212\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"79.560935142174202\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"62.631578947368425\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"14.401307643263493\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"68.94736842105263\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"2.8358528605926949\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"75.263157894736835\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.5400256506829919\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"81.578947368421055\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.1497635558444017\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"87.89473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"5.9715380809251712\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"94.21052631578948\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"14.529314890443032\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"100.52631578947368\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.6611401999374493\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"106.84210526315789\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.214591841507314\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"113.15789473684211\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.5597190733259936\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842337\" x=\"119.4736842105263\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.7252102888286629\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"125.78947368421053\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"14.100490612391582\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"132.10526315789474\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.0084632483808207\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"138.42105263157893\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"3.3606825740288002\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"144.73684210526315\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"38.221487001110205\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"151.05263157894737\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"38.35343293281835\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"157.36842105263156\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"70.441895787330708\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"163.68421052631578\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"11.029793686781034\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"170.0\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"12.741644450024239\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"176.31578947368422\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"29.812887868113137\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"182.63157894736841\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"4.7987947625342429\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842479\" x=\"188.9473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"22.512536094351162\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"195.26315789473685\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.6739409246553976\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"201.57894736842104\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.76902815420933734\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842479\" x=\"207.89473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"78.758428169471728\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"214.21052631578951\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"26.106585726699592\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"220.52631578947367\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"7.5760596907640263\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"226.84210526315789\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"18.330145460543008\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"233.15789473684211\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"7.6878198642630764\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"239.4736842105263\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.7971848252331597\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"245.78947368421052\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.9604802241111088\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"252.10526315789474\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.123911015269755\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"258.42105263157896\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"33.632919525290049\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"264.73684210526312\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"28.720395246992439\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"271.05263157894734\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"36.980309039034807\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"277.36842105263156\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"26.503408192956158\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"283.68421052631578\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.5766184916315069\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"290.0\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"23.454866367818966\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"296.31578947368422\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"20.541716823352431\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"302.63157894736844\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"81.147732671634344\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"308.94736842105266\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"78.232613784903492\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"315.26315789473682\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.238132866599187\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"321.57894736842104\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"2.7639718679457417\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"327.89473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.7479512686256555\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"334.21052631578948\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"28.616020106984507\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"340.5263157894737\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"25.323279841074054\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"346.84210526315786\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"21.440721567005625\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"353.15789473684214\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.519256474828126\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"359.47368421052636\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"22.572108697846261\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"365.78947368421052\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.261764973770795\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"372.10526315789474\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"29.052229418527077\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841058\" x=\"378.42105263157902\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"37.329374955382093\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"384.73684210526312\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"27.886378798061173\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"391.05263157894734\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"31.150563601139254\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"397.36842105263156\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.8836758758034193\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"403.68421052631578\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.021662764907290466\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"410.0\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.428666730670272\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"416.31578947368422\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.093051421988178618\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"422.63157894736844\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"35.117803592572614\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"428.9473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"10.624109180335125\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"435.26315789473682\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"28.475704470653113\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"441.57894736842104\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"28.576140926132439\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"447.89473684210526\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"28.418593544988397\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"454.21052631578948\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"30.57059230430275\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"460.5263157894737\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"101.53288678497489\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"466.84210526315792\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"4.9248326674494649\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"473.15789473684208\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"37.84780430645921\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"479.4736842105263\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"33.86628658360965\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"485.78947368421052\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.593106809739396\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"492.10526315789468\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.725052741447513\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"498.42105263157896\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"19.957806841987349\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"504.73684210526318\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"30.223003394653688\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"511.05263157894734\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"39.785637094530898\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"517.36842105263156\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"18.013573691556701\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"523.68421052631572\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"1.1761896673534693\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"530.0\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.67597673222115873\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"536.31578947368428\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.18413350171209686\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"542.63157894736844\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"40.320313519288447\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"548.94736842105272\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"36.780420799208287\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"555.26315789473688\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"36.8124226110032\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"561.57894736842104\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"18.211492589118848\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"567.89473684210532\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"45.495252654304096\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"574.21052631578948\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.11800298847686\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"580.52631578947364\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"32.231732504240227\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"586.84210526315792\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"29.78728641867724\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"593.15789473684208\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"43.668687704165421\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"599.47368421052624\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"27.258650951315389\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"605.78947368421052\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"33.329148481021662\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"612.10526315789468\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"48.316827783480647\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"618.42105263157896\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.13243826727421038\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"624.73684210526312\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"6.544124344270557\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"631.0526315789474\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"0.69370081259984318\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.315789473684049\" x=\"637.36842105263167\" y=\"148.46711321502511\"></rect><rect class=\"toyplot-Datum\" height=\"44.370758221388513\" style=\"fill:rgb(40%,76.1%,64.7%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"643.68421052631572\" y=\"148.46711321502511\"></rect></g><g class=\"toyplot-Series\"><rect class=\"toyplot-Datum\" height=\"10.743746722891416\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842124\" x=\"50.0\" y=\"137.72336649213369\"></rect><rect class=\"toyplot-Datum\" height=\"14.731172472533842\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842124\" x=\"56.315789473684212\" y=\"133.73594074249127\"></rect><rect class=\"toyplot-Datum\" height=\"66.570661231282017\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"62.631578947368425\" y=\"81.896451983743091\"></rect><rect class=\"toyplot-Datum\" height=\"11.570378138331535\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"68.94736842105263\" y=\"136.89673507669357\"></rect><rect class=\"toyplot-Datum\" height=\"2.0619013507226498\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"75.263157894736835\" y=\"146.40521186430246\"></rect><rect class=\"toyplot-Datum\" height=\"1.0875692654599618\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"81.578947368421055\" y=\"147.37954394956515\"></rect><rect class=\"toyplot-Datum\" height=\"4.6875269246012863\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"87.89473684210526\" y=\"143.77958629042382\"></rect><rect class=\"toyplot-Datum\" height=\"4.4068956519384699\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"94.21052631578948\" y=\"144.06021756308664\"></rect><rect class=\"toyplot-Datum\" height=\"11.289746865668718\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"100.52631578947368\" y=\"137.17736634935639\"></rect><rect class=\"toyplot-Datum\" height=\"1.1338488086710186\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"106.84210526315789\" y=\"147.33326440635409\"></rect><rect class=\"toyplot-Datum\" height=\"0.82220039534547595\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"113.15789473684211\" y=\"147.64491281967963\"></rect><rect class=\"toyplot-Datum\" height=\"1.1343411442371121\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842337\" x=\"119.4736842105263\" y=\"147.332772070788\"></rect><rect class=\"toyplot-Datum\" height=\"0.47018046560174298\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842053\" x=\"125.78947368421053\" y=\"147.99693274942337\"></rect><rect class=\"toyplot-Datum\" height=\"11.000745888382596\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"132.10526315789474\" y=\"137.46636732664251\"></rect><rect class=\"toyplot-Datum\" height=\"4.5152094764749791\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"138.42105263157893\" y=\"143.95190373855013\"></rect><rect class=\"toyplot-Datum\" height=\"2.2883757111171974\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"144.73684210526315\" y=\"146.17873750390791\"></rect><rect class=\"toyplot-Datum\" height=\"31.751705327316998\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"151.05263157894737\" y=\"116.71540788770811\"></rect><rect class=\"toyplot-Datum\" height=\"34.072082850229066\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"157.36842105263156\" y=\"114.39503036479604\"></rect><rect class=\"toyplot-Datum\" height=\"59.176765699965799\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"163.68421052631578\" y=\"89.29034751505931\"></rect><rect class=\"toyplot-Datum\" height=\"8.7355099488709698\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"170.0\" y=\"139.73160326615414\"></rect><rect class=\"toyplot-Datum\" height=\"9.8314489189541803\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"176.31578947368422\" y=\"138.63566429607093\"></rect><rect class=\"toyplot-Datum\" height=\"26.043566774242009\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"182.63157894736841\" y=\"122.4235464407831\"></rect><rect class=\"toyplot-Datum\" height=\"3.5645094983839272\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842479\" x=\"188.9473684210526\" y=\"144.90260371664118\"></rect><rect class=\"toyplot-Datum\" height=\"17.682724191154222\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"195.26315789473685\" y=\"130.78438902387089\"></rect><rect class=\"toyplot-Datum\" height=\"1.1476342045211254\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"201.57894736842104\" y=\"147.31947901050398\"></rect><rect class=\"toyplot-Datum\" height=\"0.4967665861698265\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842479\" x=\"207.89473684210526\" y=\"147.97034662885528\"></rect><rect class=\"toyplot-Datum\" height=\"68.130380304608039\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"214.21052631578951\" y=\"80.336732910417069\"></rect><rect class=\"toyplot-Datum\" height=\"21.176337368023312\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"220.52631578947367\" y=\"127.2907758470018\"></rect><rect class=\"toyplot-Datum\" height=\"5.6785984191105285\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"226.84210526315789\" y=\"142.78851479591458\"></rect><rect class=\"toyplot-Datum\" height=\"14.411154354584994\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841911\" x=\"233.15789473684211\" y=\"134.05595886044011\"></rect><rect class=\"toyplot-Datum\" height=\"5.5934243661795051\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"239.4736842105263\" y=\"142.8736888488456\"></rect><rect class=\"toyplot-Datum\" height=\"5.2241726916231528\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"245.78947368421052\" y=\"143.24294052340196\"></rect><rect class=\"toyplot-Datum\" height=\"0.97827076979129401\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"252.10526315789474\" y=\"147.48884244523381\"></rect><rect class=\"toyplot-Datum\" height=\"27.86816238211641\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"258.42105263157896\" y=\"120.5989508329087\"></rect><rect class=\"toyplot-Datum\" height=\"28.012909038542489\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"264.73684210526312\" y=\"120.45420417648262\"></rect><rect class=\"toyplot-Datum\" height=\"24.167768267495759\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"271.05263157894734\" y=\"124.29934494752935\"></rect><rect class=\"toyplot-Datum\" height=\"33.565961888303832\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"277.36842105263156\" y=\"114.90115132672128\"></rect><rect class=\"toyplot-Datum\" height=\"22.153623466682433\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"283.68421052631578\" y=\"126.31348974834268\"></rect><rect class=\"toyplot-Datum\" height=\"4.9642195127354967\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"290.0\" y=\"143.50289370228961\"></rect><rect class=\"toyplot-Datum\" height=\"20.680555452985658\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"296.31578947368422\" y=\"127.78655776203945\"></rect><rect class=\"toyplot-Datum\" height=\"16.367203558601489\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"302.63157894736844\" y=\"132.09990965642362\"></rect><rect class=\"toyplot-Datum\" height=\"71.106056465966091\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"308.94736842105266\" y=\"77.361056749059017\"></rect><rect class=\"toyplot-Datum\" height=\"66.087680040962326\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"315.26315789473682\" y=\"82.379433174062783\"></rect><rect class=\"toyplot-Datum\" height=\"29.395387308081439\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"321.57894736842104\" y=\"119.07172590694367\"></rect><rect class=\"toyplot-Datum\" height=\"1.8959842649553309\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"327.89473684210526\" y=\"146.57112895006978\"></rect><rect class=\"toyplot-Datum\" height=\"4.9391103988656937\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"334.21052631578948\" y=\"143.52800281615941\"></rect><rect class=\"toyplot-Datum\" height=\"24.096871945980965\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"340.5263157894737\" y=\"124.37024126904414\"></rect><rect class=\"toyplot-Datum\" height=\"22.569647020015921\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"346.84210526315786\" y=\"125.89746619500919\"></rect><rect class=\"toyplot-Datum\" height=\"17.857010981544818\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"353.15789473684214\" y=\"130.61010223348029\"></rect><rect class=\"toyplot-Datum\" height=\"29.590844527813275\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"359.47368421052636\" y=\"118.87626868721183\"></rect><rect class=\"toyplot-Datum\" height=\"19.960268519817731\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"365.78947368421052\" y=\"128.50684469520738\"></rect><rect class=\"toyplot-Datum\" height=\"29.224054531087305\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"372.10526315789474\" y=\"119.2430586839378\"></rect><rect class=\"toyplot-Datum\" height=\"26.534917669184978\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841058\" x=\"378.42105263157902\" y=\"121.93219554584013\"></rect><rect class=\"toyplot-Datum\" height=\"33.085934711380588\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"384.73684210526312\" y=\"115.38117850364452\"></rect><rect class=\"toyplot-Datum\" height=\"25.293247371543515\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"391.05263157894734\" y=\"123.17386584348159\"></rect><rect class=\"toyplot-Datum\" height=\"28.385114726495317\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"397.36842105263156\" y=\"120.08199848852979\"></rect><rect class=\"toyplot-Datum\" height=\"1.4203881081267582\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"403.68421052631578\" y=\"147.04672510689835\"></rect><rect class=\"toyplot-Datum\" height=\"0.012308389151883148\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"410.0\" y=\"148.45480482587323\"></rect><rect class=\"toyplot-Datum\" height=\"29.017273593335759\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"416.31578947368422\" y=\"119.44983962168935\"></rect><rect class=\"toyplot-Datum\" height=\"0.057110925664716206\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"422.63157894736844\" y=\"148.41000228936039\"></rect><rect class=\"toyplot-Datum\" height=\"31.708872133068468\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"428.9473684210526\" y=\"116.75824108195664\"></rect><rect class=\"toyplot-Datum\" height=\"8.4479859782830999\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"435.26315789473682\" y=\"140.01912723674201\"></rect><rect class=\"toyplot-Datum\" height=\"26.728897882218575\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"441.57894736842104\" y=\"121.73821533280653\"></rect><rect class=\"toyplot-Datum\" height=\"26.493561481634686\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"447.89473684210526\" y=\"121.97355173339042\"></rect><rect class=\"toyplot-Datum\" height=\"24.915133656797806\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"454.21052631578948\" y=\"123.5519795582273\"></rect><rect class=\"toyplot-Datum\" height=\"28.069527628641154\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"460.5263157894737\" y=\"120.39758558638395\"></rect><rect class=\"toyplot-Datum\" height=\"86.56539324072503\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"466.84210526315792\" y=\"61.901719974300072\"></rect><rect class=\"toyplot-Datum\" height=\"3.7796601407587502\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"473.15789473684208\" y=\"144.68745307426636\"></rect><rect class=\"toyplot-Datum\" height=\"34.287725828169968\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"479.4736842105263\" y=\"114.17938738685514\"></rect><rect class=\"toyplot-Datum\" height=\"30.302269420791845\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"485.78947368421052\" y=\"118.16484379423326\"></rect><rect class=\"toyplot-Datum\" height=\"29.679464929706796\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"492.10526315789468\" y=\"118.78764828531831\"></rect><rect class=\"toyplot-Datum\" height=\"29.628754366401068\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"498.42105263157896\" y=\"118.83835884862404\"></rect><rect class=\"toyplot-Datum\" height=\"16.590231570033524\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"504.73684210526318\" y=\"131.87688164499158\"></rect><rect class=\"toyplot-Datum\" height=\"27.515157781240546\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842195\" x=\"511.05263157894734\" y=\"120.95195543378456\"></rect><rect class=\"toyplot-Datum\" height=\"30.341656266077834\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"517.36842105263156\" y=\"118.12545694894727\"></rect><rect class=\"toyplot-Datum\" height=\"14.438232810719143\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"523.68421052631572\" y=\"134.02888040430597\"></rect><rect class=\"toyplot-Datum\" height=\"0.84386316025279484\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"530.0\" y=\"147.62325005477231\"></rect><rect class=\"toyplot-Datum\" height=\"0.47805783465895502\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"536.31578947368428\" y=\"147.98905538036615\"></rect><rect class=\"toyplot-Datum\" height=\"0.10437514000796\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"542.63157894736844\" y=\"148.36273807501715\"></rect><rect class=\"toyplot-Datum\" height=\"36.230974307468486\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"548.94736842105272\" y=\"112.23613890755662\"></rect><rect class=\"toyplot-Datum\" height=\"33.193263864784967\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"555.26315789473688\" y=\"115.27384935024014\"></rect><rect class=\"toyplot-Datum\" height=\"33.182432482331336\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"561.57894736842104\" y=\"115.28468073269377\"></rect><rect class=\"toyplot-Datum\" height=\"14.488943374024871\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"567.89473684210532\" y=\"133.97816984100024\"></rect><rect class=\"toyplot-Datum\" height=\"40.379886122783603\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"574.21052631578948\" y=\"108.08722709224151\"></rect><rect class=\"toyplot-Datum\" height=\"28.174887439781202\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"580.52631578947364\" y=\"120.29222577524391\"></rect><rect class=\"toyplot-Datum\" height=\"29.221592853256951\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"586.84210526315792\" y=\"119.24552036176816\"></rect><rect class=\"toyplot-Datum\" height=\"27.685013551536457\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"593.15789473684208\" y=\"120.78209966348865\"></rect><rect class=\"toyplot-Datum\" height=\"37.444089142277591\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"599.47368421052624\" y=\"111.02302407274752\"></rect><rect class=\"toyplot-Datum\" height=\"24.764971309144897\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"605.78947368421052\" y=\"123.70214190588021\"></rect><rect class=\"toyplot-Datum\" height=\"30.446523741651845\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"612.10526315789468\" y=\"118.02058947337326\"></rect><rect class=\"toyplot-Datum\" height=\"40.658055717616023\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736841627\" x=\"618.42105263157896\" y=\"107.80905749740909\"></rect><rect class=\"toyplot-Datum\" height=\"0.078773690572035093\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"624.73684210526312\" y=\"148.38833952445307\"></rect><rect class=\"toyplot-Datum\" height=\"5.1183205449170259\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"631.0526315789474\" y=\"143.34879267010808\"></rect><rect class=\"toyplot-Datum\" height=\"0.50415161966094502\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.315789473684049\" x=\"637.36842105263167\" y=\"147.96296159536416\"></rect><rect class=\"toyplot-Datum\" height=\"39.101290657686491\" style=\"fill:rgb(98.8%,55.3%,38.4%);fill-opacity:1.0;opacity:1.0;stroke:rgb(100%,100%,100%);stroke-opacity:1.0;stroke-width:1.0\" width=\"6.3157894736842763\" x=\"643.68421052631572\" y=\"109.36582255733862\"></rect></g></g></g><g class=\"toyplot-coordinates-Axis\" id=\"t0773ad32ba0044c0b4971be3f58d915c\" transform=\"translate(50.0,250.0)translate(0,10.0)\"><line style=\"\" x1=\"0\" x2=\"600.0\" y1=\"0\" y2=\"0\"></line><g><text style=\"font-weight:normal;stroke:none;text-anchor:middle\" transform=\"translate(3.1578947368421053,6)translate(0,7.5)\"><tspan style=\"font-size:10.0px\">0</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:middle\" transform=\"translate(192.6315789473684,6)translate(0,7.5)\"><tspan style=\"font-size:10.0px\">30</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:middle\" transform=\"translate(382.10526315789474,6)translate(0,7.5)\"><tspan style=\"font-size:10.0px\">60</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:middle\" transform=\"translate(571.578947368421,6)translate(0,7.5)\"><tspan style=\"font-size:10.0px\">90</tspan></text></g><g class=\"toyplot-coordinates-Axis-coordinates\" style=\"visibility:hidden\" transform=\"\"><line style=\"stroke:rgb(43.9%,50.2%,56.5%);stroke-opacity:1.0;stroke-width:1.0\" x1=\"0\" x2=\"0\" y1=\"-3.0\" y2=\"4.5\"></line><text style=\"alignment-baseline:alphabetic;fill:rgb(43.9%,50.2%,56.5%);fill-opacity:1.0;font-size:10px;font-weight:normal;stroke:none;text-anchor:middle\" x=\"0\" y=\"-6\"></text></g></g><g class=\"toyplot-coordinates-Axis\" id=\"td6a7c95cd6cf4d65ba4085b537892676\" transform=\"translate(50.0,250.0)rotate(-90.0)translate(0,-10.0)\"><line style=\"\" x1=\"0\" x2=\"188.09828002569992\" y1=\"0\" y2=\"0\"></line><g><line style=\"\" x1=\"3.0657735699498065\" x2=\"3.0657735699498065\" y1=\"0\" y2=\"5\"></line><line style=\"\" x1=\"52.29933017746235\" x2=\"52.29933017746235\" y1=\"0\" y2=\"5\"></line><line style=\"\" x1=\"101.53288678497489\" x2=\"101.53288678497489\" y1=\"0\" y2=\"5\"></line><line style=\"\" x1=\"150.76644339248745\" x2=\"150.76644339248745\" y1=\"0\" y2=\"5\"></line><line style=\"\" x1=\"200.0\" x2=\"200.0\" y1=\"0\" y2=\"5\"></line></g><g><text style=\"font-weight:normal;stroke:none;text-anchor:end\" transform=\"translate(3.0657735699498065,-6)rotate(90)translate(0,3.75)\"><tspan style=\"font-size:10.0px\">-200000</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:end\" transform=\"translate(52.29933017746235,-6)rotate(90)translate(0,3.75)\"><tspan style=\"font-size:10.0px\">-100000</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:end\" transform=\"translate(101.53288678497489,-6)rotate(90)translate(0,3.75)\"><tspan style=\"font-size:10.0px\">0</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:end\" transform=\"translate(150.76644339248745,-6)rotate(90)translate(0,3.75)\"><tspan style=\"font-size:10.0px\">100000</tspan></text><text style=\"font-weight:normal;stroke:none;text-anchor:end\" transform=\"translate(200.0,-6)rotate(90)translate(0,3.75)\"><tspan style=\"font-size:10.0px\">200000</tspan></text></g><g class=\"toyplot-coordinates-Axis-coordinates\" style=\"visibility:hidden\" transform=\"\"><line style=\"stroke:rgb(43.9%,50.2%,56.5%);stroke-opacity:1.0;stroke-width:1.0\" x1=\"0\" x2=\"0\" y1=\"3.0\" y2=\"-4.5\"></line><text style=\"alignment-baseline:hanging;fill:rgb(43.9%,50.2%,56.5%);fill-opacity:1.0;font-size:10px;font-weight:normal;stroke:none;text-anchor:middle\" x=\"0\" y=\"6\"></text></g></g></g></svg><div class=\"toyplot-interactive\"><ul class=\"toyplot-mark-popup\" onmouseleave=\"this.style.visibility='hidden'\" style=\"background:rgba(0%,0%,0%,0.75);border:0;border-radius:6px;color:white;cursor:default;list-style:none;margin:0;padding:5px;position:fixed;visibility:hidden\">\n", " <li class=\"toyplot-mark-popup-title\" style=\"color:lightgray;cursor:default;padding:5px;list-style:none;margin:0\"></li>\n", " <li class=\"toyplot-mark-popup-save-csv\" onmouseout=\"this.style.color='white';this.style.background='steelblue'\" onmouseover=\"this.style.color='steelblue';this.style.background='white'\" style=\"border-radius:3px;padding:5px;list-style:none;margin:0\">\n", " Save as .csv\n", " </li>\n", " </ul><script>\n", " (function()\n", " {\n", " var data_tables = [{\"title\": \"Bar Data\", \"names\": [\"left\", \"right\", \"boundary1\", \"boundary2\"], \"id\": \"t5fb77395b87f40c381c495f7c65fc09d\", \"columns\": [[-0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5], [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5, 29.5, 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.5, 50.5, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.5, 59.5, 60.5, 61.5, 62.5, 63.5, 64.5, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.5, 85.5, 86.5, 87.5, 88.5, 89.5, 90.5, 91.5, 92.5, 93.5, 94.5], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [21822.0, 29921.0, 135214.0, 23501.0, 4188.0, 2209.0, 9521.0, 8951.0, 22931.0, 2303.0, 1670.0, 2304.0, 955.0, 22344.0, 9171.0, 4648.0, 64492.0, 69205.0, 120196.0, 17743.0, 19969.0, 52898.0, 7240.0, 35916.0, 2331.0, 1009.0, 138382.0, 43012.0, 11534.0, 29271.0, 11361.0, 10611.0, 1987.0, 56604.0, 56898.0, 49088.0, 68177.0, 44997.0, 10083.0, 42005.0, 33244.0, 144426.0, 134233.0, 59706.0, 3851.0, 10032.0, 48944.0, 45842.0, 36270.0, 60103.0, 40542.0, 59358.0, 53896.0, 67202.0, 51374.0, 57654.0, 2885.0, 25.0, 58938.0, 116.0, 64405.0, 17159.0, 54290.0, 53812.0, 50606.0, 57013.0, 175826.0, 7677.0, 69643.0, 61548.0, 60283.0, 60180.0, 33697.0, 55887.0, 61628.0, 29326.0, 1714.0, 971.0, 212.0, 73590.0, 67420.0, 67398.0, 29429.0, 82017.0, 57227.0, 59353.0, 56232.0, 76054.0, 50301.0, 61841.0, 82582.0, 160.0, 10396.0, 1024.0, 79420.0]], \"filename\": \"toyplot\"}];\n", "\n", " function save_csv(data_table)\n", " {\n", " var uri = \"data:text/csv;charset=utf-8,\";\n", " uri += data_table.names.join(\",\") + \"\\n\";\n", " for(var i = 0; i != data_table.columns[0].length; ++i)\n", " {\n", " for(var j = 0; j != data_table.columns.length; ++j)\n", " {\n", " if(j)\n", " uri += \",\";\n", " uri += data_table.columns[j][i];\n", " }\n", " uri += \"\\n\";\n", " }\n", " uri = encodeURI(uri);\n", "\n", " var link = document.createElement(\"a\");\n", " if(typeof link.download != \"undefined\")\n", " {\n", " link.href = uri;\n", " link.style = \"visibility:hidden\";\n", " link.download = data_table.filename + \".csv\";\n", "\n", " document.body.appendChild(link);\n", " link.click();\n", " document.body.removeChild(link);\n", " }\n", " else\n", " {\n", " window.open(uri);\n", " }\n", " }\n", "\n", " function open_popup(data_table)\n", " {\n", " return function(e)\n", " {\n", " var popup = document.querySelector(\"#t97a2d0f4f74441f790862d6cc0dddf76 .toyplot-mark-popup\");\n", " popup.querySelector(\".toyplot-mark-popup-title\").innerHTML = data_table.title;\n", " popup.querySelector(\".toyplot-mark-popup-save-csv\").onclick = function() { popup.style.visibility = \"hidden\"; save_csv(data_table); }\n", " popup.style.left = (e.clientX - 50) + \"px\";\n", " popup.style.top = (e.clientY - 20) + \"px\";\n", " popup.style.visibility = \"visible\";\n", " e.stopPropagation();\n", " e.preventDefault();\n", " }\n", "\n", " }\n", "\n", " for(var i = 0; i != data_tables.length; ++i)\n", " {\n", " var data_table = data_tables[i];\n", " var event_target = document.querySelector(\"#\" + data_table.id);\n", " event_target.oncontextmenu = open_popup(data_table);\n", " }\n", " })();\n", " </script><script>\n", " (function()\n", " {\n", " function _sign(x)\n", " {\n", " return x < 0 ? -1 : x > 0 ? 1 : 0;\n", " }\n", "\n", " function _mix(a, b, amount)\n", " {\n", " return ((1.0 - amount) * a) + (amount * b);\n", " }\n", "\n", " function _log(x, base)\n", " {\n", " return Math.log(Math.abs(x)) / Math.log(base);\n", " }\n", "\n", " function _in_range(a, x, b)\n", " {\n", " var left = Math.min(a, b);\n", " var right = Math.max(a, b);\n", " return left <= x && x <= right;\n", " }\n", "\n", " function inside(range, projection)\n", " {\n", " for(var i = 0; i != projection.length; ++i)\n", " {\n", " var segment = projection[i];\n", " if(_in_range(segment.range.min, range, segment.range.max))\n", " return true;\n", " }\n", " return false;\n", " }\n", "\n", " function to_domain(range, projection)\n", " {\n", " for(var i = 0; i != projection.length; ++i)\n", " {\n", " var segment = projection[i];\n", " if(_in_range(segment.range.bounds.min, range, segment.range.bounds.max))\n", " {\n", " if(segment.scale == \"linear\")\n", " {\n", " var amount = (range - segment.range.min) / (segment.range.max - segment.range.min);\n", " return _mix(segment.domain.min, segment.domain.max, amount)\n", " }\n", " else if(segment.scale[0] == \"log\")\n", " {\n", " var amount = (range - segment.range.min) / (segment.range.max - segment.range.min);\n", " var base = segment.scale[1];\n", " return _sign(segment.domain.min) * Math.pow(base, _mix(_log(segment.domain.min, base), _log(segment.domain.max, base), amount));\n", " }\n", " }\n", " }\n", " }\n", "\n", " function display_coordinates(e)\n", " {\n", " var current = svg.createSVGPoint();\n", " current.x = e.clientX;\n", " current.y = e.clientY;\n", "\n", " for(var axis_id in axes)\n", " {\n", " var axis = document.querySelector(\"#\" + axis_id);\n", " var coordinates = axis.querySelector(\".toyplot-coordinates-Axis-coordinates\");\n", " if(coordinates)\n", " {\n", " var projection = axes[axis_id];\n", " var local = current.matrixTransform(axis.getScreenCTM().inverse());\n", " if(inside(local.x, projection))\n", " {\n", " var domain = to_domain(local.x, projection);\n", " coordinates.style.visibility = \"visible\";\n", " coordinates.setAttribute(\"transform\", \"translate(\" + local.x + \")\");\n", " var text = coordinates.querySelector(\"text\");\n", " text.textContent = domain.toFixed(2);\n", " }\n", " else\n", " {\n", " coordinates.style.visibility= \"hidden\";\n", " }\n", " }\n", " }\n", " }\n", "\n", " var root_id = \"t97a2d0f4f74441f790862d6cc0dddf76\";\n", " var axes = {\"t0773ad32ba0044c0b4971be3f58d915c\": [{\"domain\": {\"bounds\": {\"max\": Infinity, \"min\": -Infinity}, \"max\": 94.5, \"min\": -0.5}, \"range\": {\"bounds\": {\"max\": Infinity, \"min\": -Infinity}, \"max\": 600.0, \"min\": 0.0}, \"scale\": \"linear\"}], \"td6a7c95cd6cf4d65ba4085b537892676\": [{\"domain\": {\"bounds\": {\"max\": Infinity, \"min\": -Infinity}, \"max\": 200000.0, \"min\": -206227.0}, \"range\": {\"bounds\": {\"max\": Infinity, \"min\": -Infinity}, \"max\": 200.0, \"min\": 0.0}, \"scale\": \"linear\"}]};\n", "\n", " var svg = document.querySelector(\"#\" + root_id + \" svg\");\n", " svg.addEventListener(\"click\", display_coordinates);\n", " })();\n", " </script></div></div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import toyplot\n", "\n", "## stack columns of consens stats\n", "zero = np.zeros(ficus_dhi.stats.shape[0])\n", "upper = ficus_dhi.stats.reads_consens\n", "lower = -1*ficus_dlo.stats.reads_consens\n", "boundaries = np.column_stack((lower, zero, upper))\n", "\n", "## plot barplots\n", "canvas = toyplot.Canvas(width=700, height=300)\n", "axes = canvas.cartesian()\n", "axes.bars(boundaries, baseline=None)\n", "axes.y.ticks.show = True\n", "axes.y.ticks.labels.angle = -90" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cluster data across Samples\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_dlo\n", " [####################] 100% concat/shuffle input | 0:00:51 | s6 | \n", " [####################] 100% clustering across | 3:26:51 | s6 | \n", " [####################] 100% building clusters | 0:00:40 | s6 | \n", " [####################] 100% aligning clusters | 0:03:15 | s6 | \n", " [####################] 100% database indels | 0:01:00 | s6 | \n", " [####################] 100% indexing clusters | 0:07:29 | s6 | \n", " [####################] 100% building database | 0:51:26 | s6 | \n", "\n", " Assembly: ficus_dhi\n", " [####################] 100% concat/shuffle input | 0:00:45 | s6 | \n", " [####################] 100% clustering across | 2:05:50 | s6 | \n", " [####################] 100% building clusters | 0:00:37 | s6 | \n", " [####################] 100% aligning clusters | 0:02:56 | s6 | \n", " [####################] 100% database indels | 0:00:50 | s6 | \n", " [####################] 100% indexing clusters | 0:06:03 | s6 | \n", " [####################] 100% building database | 0:41:25 | s6 | \n" ] } ], "source": [ "## run step 6 on full and subsampled data sets\n", "ficus_dlo.run(\"6\")\n", "ficus_dhi.run(\"6\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Create branches that include/exclude Samples with little data\n", "We have several Samples that recovered very little data, probably as a result of having low quality DNA extractions. Figs are hard. We'll assemble one data set that includes all of these samples, but since they are likely to have little information we'll also assemble most of our data sets without these low data samples. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "ficus_dhi = ip.load_json(\"analysis-ipyrad/ficus_dhi.json\", 1)\n", "ficus_dlo = ip.load_json(\"analysis-ipyrad/ficus_dlo.json\", 1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_dhi\n", " [####################] 100% filtering loci | 0:01:13 | s7 | \n", " [####################] 100% building loci/stats | 0:00:51 | s7 | \n", " [####################] 100% building alleles | 0:01:02 | s7 | \n", " [####################] 100% building vcf file | 0:02:37 | s7 | \n", " [####################] 100% writing vcf file | 0:00:01 | s7 | \n", " [####################] 100% building arrays | 0:00:43 | s7 | \n", " [####################] 100% writing outfiles | 0:02:12 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dhi_outfiles\n", "\n", " Assembly: ficus_dlo\n", " [####################] 100% filtering loci | 0:01:07 | s7 | \n", " [####################] 100% building loci/stats | 0:00:59 | s7 | \n", " [####################] 100% building alleles | 0:01:11 | s7 | \n", " [####################] 100% building vcf file | 0:03:07 | s7 | \n", " [####################] 100% writing vcf file | 0:00:01 | s7 | \n", " [####################] 100% building arrays | 0:00:54 | s7 | \n", " [####################] 100% writing outfiles | 0:02:20 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dlo_outfiles\n" ] } ], "source": [ "## infer a min4 assembly to see which samples have least data\n", "ficus_dhi.run(\"7\", force=True)\n", "ficus_dlo.run(\"7\", force=True)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>sample_coverage</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>A01_paraensis</th>\n", " <td>6133</td>\n", " </tr>\n", " <tr>\n", " <th>A02_paraensis</th>\n", " <td>11534</td>\n", " </tr>\n", " <tr>\n", " <th>A04_paraensis</th>\n", " <td>35023</td>\n", " </tr>\n", " <tr>\n", " <th>A05_paraensis</th>\n", " <td>14597</td>\n", " </tr>\n", " <tr>\n", " <th>A06_obtusifolia</th>\n", " <td>605</td>\n", " </tr>\n", " <tr>\n", " <th>A07_obtusifolia</th>\n", " <td>455</td>\n", " </tr>\n", " <tr>\n", " <th>A16_citrifolia</th>\n", " <td>3664</td>\n", " </tr>\n", " <tr>\n", " <th>A18_citrifolia</th>\n", " <td>3804</td>\n", " </tr>\n", " <tr>\n", " <th>A19_citrifolia</th>\n", " <td>9194</td>\n", " </tr>\n", " <tr>\n", " <th>A26_popenoei</th>\n", " <td>542</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " sample_coverage\n", "A01_paraensis 6133\n", "A02_paraensis 11534\n", "A04_paraensis 35023\n", "A05_paraensis 14597\n", "A06_obtusifolia 605\n", "A07_obtusifolia 455\n", "A16_citrifolia 3664\n", "A18_citrifolia 3804\n", "A19_citrifolia 9194\n", "A26_popenoei 542" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ficus_dlo.stats_dfs.s7_samples.head(10)" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "excluded samples:\t\tconsens reads\n", " A07_obtusifolia \t3128\n", " A62_turbinata \t3400\n", " C02_citrifolia \t44\n", " A26_popenoei \t3374\n", " A63_turbinata \t1562\n", " A34_nymphaeifolia \t12204\n", " A75_colubrinae \t3982\n", " A29_popenoei \t1473\n", " A28_popenoei \t3168\n", " C33_triangle \t1373\n", " A38_nymphaeifolia \t6826\n", " C09_costaricana \t189\n", " A06_obtusifolia \t5760\n", " C01_bullenei \t3826\n", " C52_citrifolia \t269\n", " C54_citrifolia \t1409\n", " C32_triangleXtrigonata\t2389\n", " A27_popenoei \t2467\n", " C34_triangle \t374\n" ] } ], "source": [ "## get list of samples with > 1000 reads in the min4\n", "mask = ficus_dlo.stats_dfs.s7_samples.sample_coverage > 1000\n", "skeep = ficus_dlo.stats.index[mask].tolist()\n", "\n", "## print who was excluded\n", "print \"excluded samples:\\t\\tconsens reads\"\n", "for name, dat in ficus_dlo.samples.items():\n", " if name not in skeep:\n", " print \" {:<22}\\t{}\".format(name, int(dat.stats.reads_consens))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Assemble final data sets\n", "Also with different thresholds for missing data. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Assembly: ficus_dlo_s4\n", " [####################] 100% filtering loci | 0:00:43 | s7 | \n", " [####################] 100% building loci/stats | 0:00:34 | s7 | \n", " [####################] 100% building alleles | 0:00:44 | s7 | \n", " [####################] 100% building vcf file | 0:01:26 | s7 | \n", " [####################] 100% writing vcf file | 0:00:01 | s7 | \n", " [####################] 100% building arrays | 0:00:40 | s7 | \n", " [####################] 100% writing outfiles | 0:01:21 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dlo_s4_outfiles\n", "\n", " Assembly: ficus_dlo_s10\n", " [####################] 100% filtering loci | 0:00:44 | s7 | \n", " [####################] 100% writing outfiles | 0:00:47 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dlo_s10_outfiles\n", "\n", " Assembly: ficus_dlo_s20\n", " [####################] 100% filtering loci | 0:00:44 | s7 | \n", " [####################] 100% building loci/stats | 0:00:33 | s7 | \n", " [####################] 100% building alleles | 0:00:41 | s7 | \n", " [####################] 100% building vcf file | 0:01:02 | s7 | \n", " [####################] 100% writing vcf file | 0:00:00 | s7 | \n", " [####################] 100% building arrays | 0:00:38 | s7 | \n", " [####################] 100% writing outfiles | 0:00:32 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dlo_s20_outfiles\n", "\n", " Assembly: ficus_dhi_s4\n", " [####################] 100% filtering loci | 0:00:36 | s7 | \n", " [####################] 100% building loci/stats | 0:00:27 | s7 | \n", " [####################] 100% building alleles | 0:00:37 | s7 | \n", " [####################] 100% building vcf file | 0:01:14 | s7 | \n", " [####################] 100% writing vcf file | 0:00:01 | s7 | \n", " [####################] 100% building arrays | 0:00:32 | s7 | \n", " [####################] 100% writing outfiles | 0:01:14 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dhi_s4_outfiles\n", "\n", " Assembly: ficus_dhi_s10\n", " [####################] 100% filtering loci | 0:00:37 | s7 | \n", " [####################] 100% building loci/stats | 0:00:27 | s7 | \n", " [####################] 100% building alleles | 0:00:35 | s7 | \n", " [####################] 100% building vcf file | 0:01:00 | s7 | \n", " [####################] 100% writing vcf file | 0:00:00 | s7 | \n", " [####################] 100% building arrays | 0:00:31 | s7 | \n", " [####################] 100% writing outfiles | 0:00:43 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dhi_s10_outfiles\n", "\n", " Assembly: ficus_dhi_s20\n", " [####################] 100% filtering loci | 0:00:36 | s7 | \n", " [####################] 100% building loci/stats | 0:00:27 | s7 | \n", " [####################] 100% building alleles | 0:00:35 | s7 | \n", " [####################] 100% building vcf file | 0:00:53 | s7 | \n", " [####################] 100% writing vcf file | 0:00:00 | s7 | \n", " [####################] 100% building arrays | 0:00:30 | s7 | \n", " [####################] 100% writing outfiles | 0:00:29 | s7 | \n", " Outfiles written to: ~/Documents/Ficus/analysis-ipyrad/ficus_dhi_s20_outfiles\n" ] } ], "source": [ "## final min4s, min10s, and min20\n", "for assembly in [ficus_dlo, ficus_dhi]:\n", " for minsamp in [4, 10, 20]:\n", " ## new branch names\n", " subname = assembly.name + \"_s{}\".format(minsamp)\n", " \n", " ## make new branches with subsampling\n", " subdata = assembly.branch(subname, subsamples=skeep)\n", " \n", " ## set minsamp value\n", " subdata.set_params(\"min_samples_locus\", minsamp)\n", " \n", " ## run step7\n", " subdata.run(\"7\", force=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check some final stats" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>total_filters</th>\n", " <th>applied_order</th>\n", " <th>retained_loci</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>total_prefiltered_loci</th>\n", " <td>250234</td>\n", " <td>0</td>\n", " <td>250234</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_rm_duplicates</th>\n", " <td>6458</td>\n", " <td>6458</td>\n", " <td>243776</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_max_indels</th>\n", " <td>4889</td>\n", " <td>4889</td>\n", " <td>238887</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_max_snps</th>\n", " <td>9980</td>\n", " <td>4476</td>\n", " <td>234411</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_max_shared_het</th>\n", " <td>10985</td>\n", " <td>9067</td>\n", " <td>225344</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_min_sample</th>\n", " <td>197775</td>\n", " <td>186819</td>\n", " <td>38525</td>\n", " </tr>\n", " <tr>\n", " <th>filtered_by_max_alleles</th>\n", " <td>17038</td>\n", " <td>4609</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>total_filtered_loci</th>\n", " <td>33916</td>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " total_filters applied_order retained_loci\n", "total_prefiltered_loci 250234 0 250234\n", "filtered_by_rm_duplicates 6458 6458 243776\n", "filtered_by_max_indels 4889 4889 238887\n", "filtered_by_max_snps 9980 4476 234411\n", "filtered_by_max_shared_het 10985 9067 225344\n", "filtered_by_min_sample 197775 186819 38525\n", "filtered_by_max_alleles 17038 4609 33916\n", "total_filtered_loci 33916 0 33916" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#subdata = ip.load_json(\"analysis-ipyrad/ficus_dhi_s20\")\n", "subdata.stats_dfs.s7_filters" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>sample_coverage</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>A01_paraensis</th>\n", " <td>3178</td>\n", " </tr>\n", " <tr>\n", " <th>A02_paraensis</th>\n", " <td>6990</td>\n", " </tr>\n", " <tr>\n", " <th>A04_paraensis</th>\n", " <td>26258</td>\n", " </tr>\n", " <tr>\n", " <th>A05_paraensis</th>\n", " <td>10147</td>\n", " </tr>\n", " <tr>\n", " <th>A16_citrifolia</th>\n", " <td>1870</td>\n", " </tr>\n", " <tr>\n", " <th>A18_citrifolia</th>\n", " <td>2028</td>\n", " </tr>\n", " <tr>\n", " <th>A19_citrifolia</th>\n", " <td>5755</td>\n", " </tr>\n", " <tr>\n", " <th>A33_nymphaeifolia</th>\n", " <td>2344</td>\n", " </tr>\n", " <tr>\n", " <th>A41_nymphaeifolia</th>\n", " <td>19448</td>\n", " </tr>\n", " <tr>\n", " <th>A42_nymphaeifolia</th>\n", " <td>25988</td>\n", " </tr>\n", " <tr>\n", " <th>A48_trigonata</th>\n", " <td>5099</td>\n", " </tr>\n", " <tr>\n", " <th>A49_trigonata</th>\n", " <td>5963</td>\n", " </tr>\n", " <tr>\n", " <th>A55_triangle</th>\n", " <td>5659</td>\n", " </tr>\n", " <tr>\n", " <th>A59_dugandii</th>\n", " <td>22571</td>\n", " </tr>\n", " <tr>\n", " <th>A60_dugandii</th>\n", " <td>1555</td>\n", " </tr>\n", " <tr>\n", " <th>A61_turbinata</th>\n", " <td>4224</td>\n", " </tr>\n", " <tr>\n", " <th>A65_pertusa</th>\n", " <td>26857</td>\n", " </tr>\n", " <tr>\n", " <th>A67_bullenei</th>\n", " <td>12912</td>\n", " </tr>\n", " <tr>\n", " <th>A69_bullenei</th>\n", " <td>1530</td>\n", " </tr>\n", " <tr>\n", " <th>A70_bullenei</th>\n", " <td>9034</td>\n", " </tr>\n", " <tr>\n", " <th>A71_bullenei</th>\n", " <td>1141</td>\n", " </tr>\n", " <tr>\n", " <th>A72_bullenei</th>\n", " <td>2881</td>\n", " </tr>\n", " <tr>\n", " <th>A77_colubrinae</th>\n", " <td>22439</td>\n", " </tr>\n", " <tr>\n", " <th>A82_perforata</th>\n", " <td>17661</td>\n", " </tr>\n", " <tr>\n", " <th>A83_perforata</th>\n", " <td>17932</td>\n", " </tr>\n", " <tr>\n", " <th>A84_perforata</th>\n", " <td>26821</td>\n", " </tr>\n", " <tr>\n", " <th>A85_perforata</th>\n", " <td>16701</td>\n", " </tr>\n", " <tr>\n", " <th>A87_costaricana</th>\n", " <td>2200</td>\n", " </tr>\n", " <tr>\n", " <th>A94_maxima</th>\n", " <td>18643</td>\n", " </tr>\n", " <tr>\n", " <th>A95_insipida</th>\n", " <td>10999</td>\n", " </tr>\n", " <tr>\n", " <th>A96_glabrata</th>\n", " <td>20708</td>\n", " </tr>\n", " <tr>\n", " <th>A97_glabrata</th>\n", " <td>16130</td>\n", " </tr>\n", " <tr>\n", " <th>B102_obtusifolia</th>\n", " <td>26421</td>\n", " </tr>\n", " <tr>\n", " <th>B103_obtusifolia</th>\n", " <td>728</td>\n", " </tr>\n", " <tr>\n", " <th>B118_maxima</th>\n", " <td>1542</td>\n", " </tr>\n", " <tr>\n", " <th>B119_maxima</th>\n", " <td>17984</td>\n", " </tr>\n", " <tr>\n", " <th>B120_maxima</th>\n", " <td>20001</td>\n", " </tr>\n", " <tr>\n", " <th>B123_maxima</th>\n", " <td>15354</td>\n", " </tr>\n", " <tr>\n", " <th>B126_insipida</th>\n", " <td>22977</td>\n", " </tr>\n", " <tr>\n", " <th>B127_insipida</th>\n", " <td>18709</td>\n", " </tr>\n", " <tr>\n", " <th>B128_insipida</th>\n", " <td>22847</td>\n", " </tr>\n", " <tr>\n", " <th>B130_glabrataXmaxima</th>\n", " <td>22352</td>\n", " </tr>\n", " <tr>\n", " <th>B131_glabrataXmaxima</th>\n", " <td>23084</td>\n", " </tr>\n", " <tr>\n", " <th>B133_glabrata</th>\n", " <td>21720</td>\n", " </tr>\n", " <tr>\n", " <th>B134_glabrata</th>\n", " <td>22720</td>\n", " </tr>\n", " <tr>\n", " <th>C04_colubrinae</th>\n", " <td>24782</td>\n", " </tr>\n", " <tr>\n", " <th>C11_costaricana</th>\n", " <td>26317</td>\n", " </tr>\n", " <tr>\n", " <th>C12_dugandii</th>\n", " <td>7438</td>\n", " </tr>\n", " <tr>\n", " <th>C14_dugandii</th>\n", " <td>26742</td>\n", " </tr>\n", " <tr>\n", " <th>C15_insipida</th>\n", " <td>22907</td>\n", " </tr>\n", " <tr>\n", " <th>C17_maxima</th>\n", " <td>18066</td>\n", " </tr>\n", " <tr>\n", " <th>C18_maxima</th>\n", " <td>23139</td>\n", " </tr>\n", " <tr>\n", " <th>C19_nymphaeifolia</th>\n", " <td>26665</td>\n", " </tr>\n", " <tr>\n", " <th>C21_obtusifolia</th>\n", " <td>2627</td>\n", " </tr>\n", " <tr>\n", " <th>C22_obtusifolia</th>\n", " <td>27114</td>\n", " </tr>\n", " <tr>\n", " <th>C24_obtusifolia</th>\n", " <td>25269</td>\n", " </tr>\n", " <tr>\n", " <th>C25_popenoei</th>\n", " <td>26463</td>\n", " </tr>\n", " <tr>\n", " <th>C26_popenoei</th>\n", " <td>25572</td>\n", " </tr>\n", " <tr>\n", " <th>C27_popenoei</th>\n", " <td>15584</td>\n", " </tr>\n", " <tr>\n", " <th>C28_pertusa</th>\n", " <td>25187</td>\n", " </tr>\n", " <tr>\n", " <th>C30_triangle</th>\n", " <td>7256</td>\n", " </tr>\n", " <tr>\n", " <th>C31_triangle</th>\n", " <td>12661</td>\n", " </tr>\n", " <tr>\n", " <th>C36_trigonata</th>\n", " <td>27118</td>\n", " </tr>\n", " <tr>\n", " <th>C37_trigonata</th>\n", " <td>26778</td>\n", " </tr>\n", " <tr>\n", " <th>C39_trigonata</th>\n", " <td>26270</td>\n", " </tr>\n", " <tr>\n", " <th>C41_trigonata</th>\n", " <td>10822</td>\n", " </tr>\n", " <tr>\n", " <th>C43_trigonata</th>\n", " <td>27126</td>\n", " </tr>\n", " <tr>\n", " <th>C45_yoponensis</th>\n", " <td>18584</td>\n", " </tr>\n", " <tr>\n", " <th>C46_yoponensis</th>\n", " <td>22783</td>\n", " </tr>\n", " <tr>\n", " <th>C47_yoponensis</th>\n", " <td>23199</td>\n", " </tr>\n", " <tr>\n", " <th>C48_tonduzii</th>\n", " <td>20918</td>\n", " </tr>\n", " <tr>\n", " <th>C49_dugandii</th>\n", " <td>24327</td>\n", " </tr>\n", " <tr>\n", " <th>C50_insipida</th>\n", " <td>23203</td>\n", " </tr>\n", " <tr>\n", " <th>C51_perforata</th>\n", " <td>22246</td>\n", " </tr>\n", " <tr>\n", " <th>C53_citrifolia</th>\n", " <td>3392</td>\n", " </tr>\n", " <tr>\n", " <th>C5_colubrinae</th>\n", " <td>26818</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " sample_coverage\n", "A01_paraensis 3178\n", "A02_paraensis 6990\n", "A04_paraensis 26258\n", "A05_paraensis 10147\n", "A16_citrifolia 1870\n", "A18_citrifolia 2028\n", "A19_citrifolia 5755\n", "A33_nymphaeifolia 2344\n", "A41_nymphaeifolia 19448\n", "A42_nymphaeifolia 25988\n", "A48_trigonata 5099\n", "A49_trigonata 5963\n", "A55_triangle 5659\n", "A59_dugandii 22571\n", "A60_dugandii 1555\n", "A61_turbinata 4224\n", "A65_pertusa 26857\n", "A67_bullenei 12912\n", "A69_bullenei 1530\n", "A70_bullenei 9034\n", "A71_bullenei 1141\n", "A72_bullenei 2881\n", "A77_colubrinae 22439\n", "A82_perforata 17661\n", "A83_perforata 17932\n", "A84_perforata 26821\n", "A85_perforata 16701\n", "A87_costaricana 2200\n", "A94_maxima 18643\n", "A95_insipida 10999\n", "A96_glabrata 20708\n", "A97_glabrata 16130\n", "B102_obtusifolia 26421\n", "B103_obtusifolia 728\n", "B118_maxima 1542\n", "B119_maxima 17984\n", "B120_maxima 20001\n", "B123_maxima 15354\n", "B126_insipida 22977\n", "B127_insipida 18709\n", "B128_insipida 22847\n", "B130_glabrataXmaxima 22352\n", "B131_glabrataXmaxima 23084\n", "B133_glabrata 21720\n", "B134_glabrata 22720\n", "C04_colubrinae 24782\n", "C11_costaricana 26317\n", "C12_dugandii 7438\n", "C14_dugandii 26742\n", "C15_insipida 22907\n", "C17_maxima 18066\n", "C18_maxima 23139\n", "C19_nymphaeifolia 26665\n", "C21_obtusifolia 2627\n", "C22_obtusifolia 27114\n", "C24_obtusifolia 25269\n", "C25_popenoei 26463\n", "C26_popenoei 25572\n", "C27_popenoei 15584\n", "C28_pertusa 25187\n", "C30_triangle 7256\n", "C31_triangle 12661\n", "C36_trigonata 27118\n", "C37_trigonata 26778\n", "C39_trigonata 26270\n", "C41_trigonata 10822\n", "C43_trigonata 27126\n", "C45_yoponensis 18584\n", "C46_yoponensis 22783\n", "C47_yoponensis 23199\n", "C48_tonduzii 20918\n", "C49_dugandii 24327\n", "C50_insipida 23203\n", "C51_perforata 22246\n", "C53_citrifolia 3392\n", "C5_colubrinae 26818" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subdata.stats_dfs.s7_samples" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>locus_coverage</th>\n", " <th>sum_coverage</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>1</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>10</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>11</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>12</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>13</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>14</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>15</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>16</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>17</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>18</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", " <td>0</td>\n", " <td>0</td>\n", " </tr>\n", " <tr>\n", " <th>20</th>\n", " <td>2432</td>\n", " <td>2432</td>\n", " </tr>\n", " <tr>\n", " <th>21</th>\n", " <td>1887</td>\n", " <td>4319</td>\n", " </tr>\n", " <tr>\n", " <th>22</th>\n", " <td>1248</td>\n", " <td>5567</td>\n", " </tr>\n", " <tr>\n", " <th>23</th>\n", " <td>910</td>\n", " <td>6477</td>\n", " </tr>\n", " <tr>\n", " <th>24</th>\n", " <td>844</td>\n", " <td>7321</td>\n", " </tr>\n", " <tr>\n", " <th>25</th>\n", " <td>848</td>\n", " <td>8169</td>\n", " </tr>\n", " <tr>\n", " <th>26</th>\n", " <td>841</td>\n", " <td>9010</td>\n", " </tr>\n", " <tr>\n", " <th>27</th>\n", " <td>882</td>\n", " <td>9892</td>\n", " </tr>\n", " <tr>\n", " <th>28</th>\n", " <td>911</td>\n", " <td>10803</td>\n", " </tr>\n", " <tr>\n", " <th>29</th>\n", " <td>849</td>\n", " <td>11652</td>\n", " </tr>\n", " <tr>\n", " <th>30</th>\n", " <td>829</td>\n", " <td>12481</td>\n", " </tr>\n", " <tr>\n", " <th>31</th>\n", " <td>795</td>\n", " <td>13276</td>\n", " </tr>\n", " <tr>\n", " <th>32</th>\n", " <td>705</td>\n", " <td>13981</td>\n", " </tr>\n", " <tr>\n", " <th>33</th>\n", " <td>680</td>\n", " <td>14661</td>\n", " </tr>\n", " <tr>\n", " <th>34</th>\n", " <td>664</td>\n", " <td>15325</td>\n", " </tr>\n", " <tr>\n", " <th>35</th>\n", " <td>638</td>\n", " <td>15963</td>\n", " </tr>\n", " <tr>\n", " <th>36</th>\n", " <td>544</td>\n", " <td>16507</td>\n", " </tr>\n", " <tr>\n", " <th>37</th>\n", " <td>538</td>\n", " <td>17045</td>\n", " </tr>\n", " <tr>\n", " <th>38</th>\n", " <td>589</td>\n", " <td>17634</td>\n", " </tr>\n", " <tr>\n", " <th>39</th>\n", " <td>576</td>\n", " <td>18210</td>\n", " </tr>\n", " <tr>\n", " <th>40</th>\n", " <td>644</td>\n", " <td>18854</td>\n", " </tr>\n", " <tr>\n", " <th>41</th>\n", " <td>686</td>\n", " <td>19540</td>\n", " </tr>\n", " <tr>\n", " <th>42</th>\n", " <td>754</td>\n", " <td>20294</td>\n", " </tr>\n", " <tr>\n", " <th>43</th>\n", " <td>770</td>\n", " <td>21064</td>\n", " </tr>\n", " <tr>\n", " <th>44</th>\n", " <td>941</td>\n", " <td>22005</td>\n", " </tr>\n", " <tr>\n", " <th>45</th>\n", " <td>1019</td>\n", " <td>23024</td>\n", " </tr>\n", " <tr>\n", " <th>46</th>\n", " <td>1094</td>\n", " <td>24118</td>\n", " </tr>\n", " <tr>\n", " <th>47</th>\n", " <td>1073</td>\n", " <td>25191</td>\n", " </tr>\n", " <tr>\n", " <th>48</th>\n", " <td>1150</td>\n", " <td>26341</td>\n", " </tr>\n", " <tr>\n", " <th>49</th>\n", " <td>1122</td>\n", " <td>27463</td>\n", " </tr>\n", " <tr>\n", " <th>50</th>\n", " <td>1083</td>\n", " <td>28546</td>\n", " </tr>\n", " <tr>\n", " <th>51</th>\n", " <td>1129</td>\n", " <td>29675</td>\n", " </tr>\n", " <tr>\n", " <th>52</th>\n", " <td>908</td>\n", " <td>30583</td>\n", " </tr>\n", " <tr>\n", " <th>53</th>\n", " <td>848</td>\n", " <td>31431</td>\n", " </tr>\n", " <tr>\n", " <th>54</th>\n", " <td>691</td>\n", " <td>32122</td>\n", " </tr>\n", " <tr>\n", " <th>55</th>\n", " <td>570</td>\n", " <td>32692</td>\n", " </tr>\n", " <tr>\n", " <th>56</th>\n", " <td>416</td>\n", " <td>33108</td>\n", " </tr>\n", " <tr>\n", " <th>57</th>\n", " <td>317</td>\n", " <td>33425</td>\n", " </tr>\n", " <tr>\n", " <th>58</th>\n", " <td>220</td>\n", " <td>33645</td>\n", " </tr>\n", " <tr>\n", " <th>59</th>\n", " <td>122</td>\n", " <td>33767</td>\n", " </tr>\n", " <tr>\n", " <th>60</th>\n", " <td>77</td>\n", " <td>33844</td>\n", " </tr>\n", " <tr>\n", " <th>61</th>\n", " <td>36</td>\n", " <td>33880</td>\n", " </tr>\n", " <tr>\n", " <th>62</th>\n", " <td>18</td>\n", " <td>33898</td>\n", " </tr>\n", " <tr>\n", " <th>63</th>\n", " <td>15</td>\n", " <td>33913</td>\n", " </tr>\n", " <tr>\n", " <th>64</th>\n", " <td>2</td>\n", " <td>33915</td>\n", " </tr>\n", " <tr>\n", " <th>65</th>\n", " <td>0</td>\n", " <td>33915</td>\n", " </tr>\n", " <tr>\n", " <th>66</th>\n", " <td>1</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>67</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>68</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>69</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>70</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>71</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>72</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>73</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>74</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>75</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " <tr>\n", " <th>76</th>\n", " <td>0</td>\n", " <td>33916</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " locus_coverage sum_coverage\n", "1 0 0\n", "2 0 0\n", "3 0 0\n", "4 0 0\n", "5 0 0\n", "6 0 0\n", "7 0 0\n", "8 0 0\n", "9 0 0\n", "10 0 0\n", "11 0 0\n", "12 0 0\n", "13 0 0\n", "14 0 0\n", "15 0 0\n", "16 0 0\n", "17 0 0\n", "18 0 0\n", "19 0 0\n", "20 2432 2432\n", "21 1887 4319\n", "22 1248 5567\n", "23 910 6477\n", "24 844 7321\n", "25 848 8169\n", "26 841 9010\n", "27 882 9892\n", "28 911 10803\n", "29 849 11652\n", "30 829 12481\n", "31 795 13276\n", "32 705 13981\n", "33 680 14661\n", "34 664 15325\n", "35 638 15963\n", "36 544 16507\n", "37 538 17045\n", "38 589 17634\n", "39 576 18210\n", "40 644 18854\n", "41 686 19540\n", "42 754 20294\n", "43 770 21064\n", "44 941 22005\n", "45 1019 23024\n", "46 1094 24118\n", "47 1073 25191\n", "48 1150 26341\n", "49 1122 27463\n", "50 1083 28546\n", "51 1129 29675\n", "52 908 30583\n", "53 848 31431\n", "54 691 32122\n", "55 570 32692\n", "56 416 33108\n", "57 317 33425\n", "58 220 33645\n", "59 122 33767\n", "60 77 33844\n", "61 36 33880\n", "62 18 33898\n", "63 15 33913\n", "64 2 33915\n", "65 0 33915\n", "66 1 33916\n", "67 0 33916\n", "68 0 33916\n", "69 0 33916\n", "70 0 33916\n", "71 0 33916\n", "72 0 33916\n", "73 0 33916\n", "74 0 33916\n", "75 0 33916\n", "76 0 33916" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subdata.stats_dfs.s7_loci" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Link to all of the final stats files on github" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "+ [ficus_dlo](...)\n", "+ [ficus_dhi](...)\n", "+ [ficus_dlo_s4](...)\n", "+ [ficus_dhi_s4](...)\n", "+ [ficus_dlo_s10](...)\n", "+ [ficus_dhi_s10](...)\n", "+ [ficus_dlo_s20](...)\n", "+ [ficus_dhi_s20](...)" ] } ], "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.13" } }, "nbformat": 4, "nbformat_minor": 1 }