diff --git a/.travis.yml b/.travis.yml index f8168067e6d160fa5c835826737f87bd4b7a8c9f..bdd72f8ec4c81fdb7b4d921580359e21c6764ffe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,8 @@ env: script: # download data and models, then run tests - mhcflurry-downloads fetch + - mhcflurry-downloads fetch models_class1_allele_specific_ensemble + - mhcflurry-downloads fetch models_class1_allele_specific_single - mhcflurry-downloads info # just to test this command works - nosetests test --with-coverage --cover-package=mhcflurry && ./lint.sh after_success: diff --git a/Dockerfile b/Dockerfile index a704f2f04e1580abe00ac810db5c5947165ab15d..986d828c1fc522eb850ab23fce7abf3f84a99b75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,14 +42,11 @@ WORKDIR /home/user # Setup virtual envs and install convenience packages. Note: installing # cherrypy as part of the mhcflurry installation weirdly fails on a unicode # issue in python2, but installing it separately seems to work. -# We also install bokeh so that dask distributed will have an admin web interface. RUN virtualenv venv-py3 --python=python3 && \ venv-py3/bin/pip install --upgrade pip && \ venv-py3/bin/pip install --upgrade \ numpy \ - bokeh \ cherrypy \ - git+https://github.com/dask/distributed.git \ jupyter \ lxml \ scipy \ @@ -59,9 +56,10 @@ RUN virtualenv venv-py3 --python=python3 && \ ENV KERAS_BACKEND theano # RUN venv-py3/bin/pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0-cp35-cp35m-linux_x86_64.whl -# Install mhcflurry and download data and models. +# Install mhcflurry and latest kubeface and download data and models. COPY . ./mhcflurry -RUN venv-py3/bin/pip install ./mhcflurry && venv-py3/bin/mhcflurry-downloads fetch +RUN venv-py3/bin/pip install --upgrade ./mhcflurry git+https://github.com/hammerlab/kubeface.git \ + && venv-py3/bin/mhcflurry-downloads fetch EXPOSE 8888 CMD venv-py3/bin/jupyter notebook --no-browser diff --git a/README.md b/README.md index ad119b3a3f0bc0d1f9c9b26766ce96d3043cea01..09d8bb48b85f38159e9f4727334673b1dc76609a 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,32 @@ Open source neural network models for peptide-MHC binding affinity prediction The [adaptive immune system](https://en.wikipedia.org/wiki/Adaptive_immune_system) depends on the presentation of protein fragments by [MHC](https://en.wikipedia.org/wiki/Major_histocompatibility_complex) molecules. Machine learning models of this interaction are used in studies of infectious diseases, autoimmune diseases, vaccine development, and cancer immunotherapy. -MHCflurry currently supports peptide / [MHC class I](https://en.wikipedia.org/wiki/MHC_class_I) affinity prediction using one model per MHC allele. The predictors may be trained on data that has been augmented with data imputed based on other alleles (see [Rubinsteyn 2016](http://biorxiv.org/content/early/2016/06/07/054775)). We anticipate adding additional models, including pan-allele and class II predictors. +MHCflurry currently supports allele-specific peptide / [MHC class I](https://en.wikipedia.org/wiki/MHC_class_I) affinity prediction using two approaches: -You can fit MHCflurry models to your own data or download trained models that we provide. Our models are trained on data from [IEDB](http://www.iedb.org/home_v3.php) and [Kim 2014](http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-15-241). See [here](https://github.com/hammerlab/mhcflurry/tree/master/downloads-generation/data_combined_iedb_kim2014) for details on the training data preparation. The steps we use to train predictors on this data, including hyperparameter selection using cross validation, are [here](https://github.com/hammerlab/mhcflurry/tree/master/downloads-generation/models_class1_allele_specific_single). + * Ensembles of predictors trained on random halves of the training data (the default) + * Single-model predictors for each allele trained on all data + +For both kinds of predictors, you can fit models to your own data or download +trained models that we provide. + +The downloadable models were trained on data from +[IEDB](http://www.iedb.org/home_v3.php) and [Kim 2014](http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-15-241). +The ensemble predictors include models trained on data that has been +augmented with values imputed from other alleles (see +[Rubinsteyn 2016](http://biorxiv.org/content/early/2016/06/07/054775)). + +In validation experiments using presented peptides identified by mass-spec, +the ensemble models perform best. We are working on a performance comparison of +these models with other predictors such as netMHCpan, which we hope to make +available soon. + +We anticipate adding additional models, including pan-allele and class II predictors. -The MHCflurry predictors are implemented in Python using [keras](https://keras.io). ## Setup -To configure keras, the neural network library used by MHCflurry, you'll need to set an environment variable in your shell: +The MHCflurry predictors are implemented in Python using [keras](https://keras.io). +To configure keras you'll need to set an environment variable in your shell: ``` export KERAS_BACKEND=theano @@ -73,25 +90,28 @@ The predictions returned by `predict` are affinities (KD) in nM. ## Training your own models -See the [class1_allele_specific_models.ipynb](https://github.com/hammerlab/mhcflurry/blob/master/examples/class1_allele_specific_models.ipynb) notebook for an overview of the Python API, including predicting, fitting, and scoring models. +See the [class1_allele_specific_models.ipynb](https://github.com/hammerlab/mhcflurry/blob/master/examples/class1_allele_specific_models.ipynb) notebook for an overview of the Python API, including predicting, fitting, and scoring single-model predictors. There is also a script called `mhcflurry-class1-allele-specific-cv-and-train` that will perform cross validation and model selection given a CSV file of training data. Try `mhcflurry-class1-allele-specific-cv-and-train --help` for details. -There is also a script called `mhcflurry-class1-allele-specific-cv-and-train` that will perform cross validation and model selection given a CSV file of training data. Try `mhcflurry-class1-allele-specific-cv-and-train --help` for details. +The ensemble predictors are trained similarly using the `mhcflurry-class1-allele-specific-ensemble-train` command. -## Details on the downloaded class I allele-specific models +## Details on the downloadable models -Besides the actual model weights, the data downloaded with `mhcflurry-downloads fetch` also includes a CSV file giving the hyperparameters used for each predictor. Another CSV gives the cross validation results used to select these hyperparameters. +The scripts we use to train predictors, including hyperparameter selection +using cross validation, are +[here](downloads-generation/models_class1_allele_specific_ensemble) +for the ensemble predictors and [here](downloads-generation/models_class1_allele_specific_single) +for the single-model predictors. -To see the hyperparameters for the production models, run: +For the ensemble predictors, we also generate a [report](http://htmlpreview.github.io/?https://github.com/hammerlab/mhcflurry/blob/master/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html) +that describes the hyperparameters selected and the test performance of each +model. -``` -open "$(mhcflurry-downloads path models_class1_allele_specific_single)/production.csv" -``` - -To see the cross validation results: +Besides the model weights, the data downloaded when you run +`mhcflurry-downloads fetch` also includes a CSV file giving the +hyperparameters used for each predictor. Run `mhcflurry-downloads path +models_class1_allele_specific_ensemble` or `mhcflurry-downloads path +models_class1_allele_specific_single` to get the directory where these files are stored. -``` -open "$(mhcflurry-downloads path models_class1_allele_specific_single)/cv.csv" -``` ## Problems and Solutions ### undefined symbol diff --git a/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py b/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py index fed1103c933b265759aade5767173177c9cad445..07b7f1d9e5d2f036bc646178281e04a4faf8e086 100755 --- a/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py +++ b/downloads-generation/data_combined_iedb_kim2014/create-combined-class1-dataset.py @@ -17,7 +17,7 @@ """ Combine 2013 Kim/Peters NetMHCpan dataset[*] with more recent IEDB entries -* = "Dataset size and composition impact the reliability..." +* = "AffinityMeasurementDataset size and composition impact the reliability..." """ from __future__ import ( diff --git a/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh b/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh new file mode 100755 index 0000000000000000000000000000000000000000..0e45c61f6372454dee16d4d309569da0cf820570 --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/GENERATE.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +if [[ $# -eq 0 ]] ; then + echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train' + echo 'See README.md' +fi + +set -e +set -x + +DOWNLOAD_NAME=models_class1_allele_specific_ensemble +SCRATCH_DIR=/tmp/mhcflurry-downloads-generation +SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" +SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH") +export PYTHONUNBUFFERED=1 + +mkdir -p "$SCRATCH_DIR" +rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME" +mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME" + +# Send stdout and stderr to a logfile included with the archive. +exec > >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt") +exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2) + +# Log some environment info +date +pip freeze +git rev-parse HEAD +git status + +cd $SCRATCH_DIR/$DOWNLOAD_NAME + +mkdir models + +cp $SCRIPT_DIR/models.py . +python models.py > models.json + +time mhcflurry-class1-allele-specific-ensemble-train \ + --ensemble-size 16 \ + --model-architectures models.json \ + --train-data "$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv" \ + --min-samples-per-allele 20 \ + --out-manifest selected_models.csv \ + --out-model-selection-manifest all_models.csv \ + --out-models models \ + --verbose \ + "$@" + +bzip2 all_models.csv +cp $SCRIPT_ABSOLUTE_PATH . +tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" * + +echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2" diff --git a/downloads-generation/models_class1_allele_specific_ensemble/README.md b/downloads-generation/models_class1_allele_specific_ensemble/README.md new file mode 100644 index 0000000000000000000000000000000000000000..604852a62546e4c30b49cd5fa544a6dae50feed2 --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/README.md @@ -0,0 +1,29 @@ +# Class I allele-specific models (ensemble) + +This download contains trained MHC Class I allele-specific MHCflurry models. For each allele, an ensemble of predictors is trained on random halves of the training data. Model architectures are selected based on performance on the other half of the dataset, so in general each ensemble contains predictors of different architectures. At prediction time the geometric mean IC50 is taken over the trained models. The training data used is in the [data_combined_iedb_kim2014](../data_combined_iedb_kim2014) MHCflurry download. + +The training script supports multi-node parallel execution using the [kubeface](https://github.com/hammerlab/kubeface) library. + +To use kubeface, you should make a google storage bucket and pass it below with the --storage-prefix argument. + +To generate this download we run: + +``` +./GENERATE.sh \ + --parallel-backend kubeface \ + --target-tasks 200 \ + --kubeface-backend kubernetes \ + --kubeface-storage gs://kubeface-tim \ + --kubeface-worker-image hammerlab/mhcflurry-misc:latest \ + --kubeface-kubernetes-task-resources-memory-mb 10000 \ + --kubeface-worker-path-prefix venv-py3/bin \ + --kubeface-max-simultaneous-tasks 200 \ + --kubeface-speculation-max-reruns 3 \ +``` + +To debug locally: +``` +./GENERATE.sh \ + --parallel-backend local-threads \ + --target-tasks 1 +``` diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3cf13db5c9f6094e9092fd200e5f2e6017e4479d --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/README.md @@ -0,0 +1,12 @@ +# Class1 allele-specific ensemble models + +To generate the report, run: + +``` +time jupyter-nbconvert report.ipynb \ + --execute \ + --ExecutePreprocessor.kernel_name=python \ + --ExecutePreprocessor.timeout=60 \ + --to html \ + --stdout > report.html +``` diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html new file mode 100644 index 0000000000000000000000000000000000000000..a98510c0b35b773203a55da5b25e865a63d0858f --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.html @@ -0,0 +1,18543 @@ +<!DOCTYPE html> +<html> +<head><meta charset="utf-8" /> +<title>report</title> + +<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> + +<style type="text/css"> + /*! +* +* Twitter Bootstrap +* +*/ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +mark { + background: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + border: 0; + padding: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot'); + src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 1.42857143; + color: #000; + background-color: #fff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 3px; +} +.img-thumbnail { + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 2px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 18px; + margin-bottom: 18px; + border: 0; + border-top: 1px solid #eeeeee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 18px; + margin-bottom: 9px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 9px; + margin-bottom: 9px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 33px; +} +h2, +.h2 { + font-size: 27px; +} +h3, +.h3 { + font-size: 23px; +} +h4, +.h4 { + font-size: 17px; +} +h5, +.h5 { + font-size: 13px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 9px; +} +.lead { + margin-bottom: 18px; + font-size: 14px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 19.5px; + } +} +small, +.small { + font-size: 92%; +} +mark, +.mark { + background-color: #fcf8e3; + padding: .2em; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover, +a.text-info:focus { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 8px; + margin: 36px 0 18px; + border-bottom: 1px solid #eeeeee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 9px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + list-style: none; + margin-left: -5px; +} +.list-inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} +dl { + margin-top: 0; + margin-bottom: 18px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 541px) { + .dl-horizontal dt { + float: left; + width: 160px; + clear: left; + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 9px 18px; + margin: 0 0 18px; + font-size: inherit; + border-left: 5px solid #eeeeee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; + text-align: right; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 18px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 2px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #888; + background-color: transparent; + border-radius: 1px; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + box-shadow: none; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12px; + line-height: 1.42857143; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 2px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + margin-right: auto; + margin-left: auto; + padding-left: 0px; + padding-right: 0px; +} +@media (min-width: 768px) { + .container { + width: 768px; + } +} +@media (min-width: 992px) { + .container { + width: 940px; + } +} +@media (min-width: 1200px) { + .container { + width: 1140px; + } +} +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 0px; + padding-right: 0px; +} +.row { + margin-left: 0px; + margin-right: 0px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-left: 0px; + padding-right: 0px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0%; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0%; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0%; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 18px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + float: none; + display: table-column; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + float: none; + display: table-cell; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + overflow-x: auto; + min-height: 0.01%; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 13.5px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + padding: 0; + margin: 0; + border: 0; + min-width: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 18px; + font-size: 19.5px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 13px; + line-height: 1.42857143; + color: #555555; +} +.form-control { + display: block; + width: 100%; + height: 32px; + padding: 6px 12px; + font-size: 13px; + line-height: 1.42857143; + color: #555555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 2px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control::-ms-expand { + border: 0; + background-color: transparent; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eeeeee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 32px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 45px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 18px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-left: -20px; + margin-top: 4px \9; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + vertical-align: middle; + font-weight: normal; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; + min-height: 31px; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-left: 0; + padding-right: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 30px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 17px; + line-height: 1.3333333; + border-radius: 3px; +} +select.input-lg { + height: 45px; + line-height: 45px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 45px; + padding: 10px 16px; + font-size: 17px; + line-height: 1.3333333; + border-radius: 3px; +} +.form-group-lg select.form-control { + height: 45px; + line-height: 45px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 45px; + min-height: 35px; + padding: 11px 16px; + font-size: 17px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 40px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 32px; + height: 32px; + line-height: 32px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 45px; + height: 45px; + line-height: 45px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + border-color: #3c763d; + background-color: #dff0d8; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + border-color: #8a6d3b; + background-color: #fcf8e3; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + border-color: #a94442; + background-color: #f2dede; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 23px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #404040; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 25px; +} +.form-horizontal .form-group { + margin-left: 0px; + margin-right: 0px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + margin-bottom: 0; + padding-top: 7px; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 0px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 17px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + margin-bottom: 0; + font-weight: normal; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 6px 12px; + font-size: 13px; + line-height: 1.42857143; + border-radius: 2px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + color: #337ab7; + font-weight: normal; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 17px; + line-height: 1.3333333; + border-radius: 3px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + font-size: 13px; + text-align: left; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 2px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 8px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + outline: 0; + background-color: #337ab7; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: not-allowed; +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + left: auto; + right: 0; +} +.dropdown-menu-left { + left: 0; + right: auto; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; + content: ""; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 541px) { + .navbar-right .dropdown-menu { + left: auto; + right: 0; + } + .navbar-right .dropdown-menu-left { + left: 0; + right: auto; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 2px; + border-top-left-radius: 2px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-top-left-radius: 0; + border-bottom-right-radius: 2px; + border-bottom-left-radius: 2px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + float: none; + display: table-cell; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 17px; + line-height: 1.3333333; + border-radius: 3px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #555555; + text-align: center; + background-color: #eeeeee; + border: 1px solid #ccc; + border-radius: 2px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 1px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 17px; + border-radius: 3px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + margin-bottom: 0; + padding-left: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.nav > li.disabled > a { + color: #777777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777777; + text-decoration: none; + background-color: transparent; + cursor: not-allowed; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 8px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 2px 2px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 2px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 2px 2px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 2px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + text-align: center; + margin-bottom: 5px; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 2px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 2px 2px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar { + position: relative; + min-height: 30px; + margin-bottom: 18px; + border: 1px solid transparent; +} +@media (min-width: 541px) { + .navbar { + border-radius: 2px; + } +} +@media (min-width: 541px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + overflow-x: visible; + padding-right: 0px; + padding-left: 0px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 541px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-left: 0; + padding-right: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 540px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: 0px; + margin-left: 0px; +} +@media (min-width: 541px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 541px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 541px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + padding: 6px 0px; + font-size: 17px; + line-height: 18px; + height: 30px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 541px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: 0px; + } +} +.navbar-toggle { + position: relative; + float: right; + margin-right: 0px; + padding: 9px 10px; + margin-top: -2px; + margin-bottom: -2px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 2px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 541px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 3px 0px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 18px; +} +@media (max-width: 540px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 18px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 541px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 6px; + padding-bottom: 6px; + } +} +.navbar-form { + margin-left: 0px; + margin-right: 0px; + padding: 10px 0px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: -1px; + margin-bottom: -1px; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 540px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 541px) { + .navbar-form { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-right-radius: 2px; + border-top-left-radius: 2px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: -1px; + margin-bottom: -1px; +} +.navbar-btn.btn-sm { + margin-top: 0px; + margin-bottom: 0px; +} +.navbar-btn.btn-xs { + margin-top: 4px; + margin-bottom: 4px; +} +.navbar-text { + margin-top: 6px; + margin-bottom: 6px; +} +@media (min-width: 541px) { + .navbar-text { + float: left; + margin-left: 0px; + margin-right: 0px; + } +} +@media (min-width: 541px) { + .navbar-left { + float: left !important; + float: left; + } + .navbar-right { + float: right !important; + float: right; + margin-right: 0px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + background-color: #e7e7e7; + color: #555; +} +@media (max-width: 540px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #080808; + color: #fff; +} +@media (max-width: 540px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 18px; + list-style: none; + background-color: #f5f5f5; + border-radius: 2px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + content: "/\00a0"; + padding: 0 5px; + color: #5e5e5e; +} +.breadcrumb > .active { + color: #777777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 18px 0; + border-radius: 2px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.42857143; + text-decoration: none; + color: #337ab7; + background-color: #fff; + border: 1px solid #ddd; + margin-left: -1px; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 2px; + border-top-left-radius: 2px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 2px; + border-top-right-radius: 2px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eeeeee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; + cursor: default; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777777; + background-color: #fff; + border-color: #ddd; + cursor: not-allowed; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 17px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 1px; + border-top-left-radius: 1px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 1px; + border-top-right-radius: 1px; +} +.pager { + padding-left: 0; + margin: 18px 0; + list-style: none; + text-align: center; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777777; + background-color: #fff; + cursor: not-allowed; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + color: #fff; + line-height: 1; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: #777777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eeeeee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 20px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 3px; + padding-left: 0px; + padding-right: 0px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-left: 60px; + padding-right: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 59px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 18px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 2px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-left: auto; + margin-right: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #000; +} +.alert { + padding: 15px; + margin-bottom: 18px; + border: 1px solid transparent; + border-radius: 2px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #3c763d; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #31708f; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + background-color: #fcf8e3; + border-color: #faebcc; + color: #8a6d3b; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + background-color: #f2dede; + border-color: #ebccd1; + color: #a94442; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-radius: 2px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: 12px; + line-height: 18px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + zoom: 1; + overflow: hidden; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + margin-bottom: 20px; + padding-left: 0; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-right-radius: 2px; + border-top-left-radius: 2px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 2px; + border-bottom-left-radius: 2px; +} +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + text-decoration: none; + color: #555; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + background-color: #eeeeee; + color: #777777; + cursor: not-allowed; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 18px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 2px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 1px; + border-top-left-radius: 1px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 15px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 1px; + border-bottom-left-radius: 1px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-right-radius: 1px; + border-top-left-radius: 1px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 1px; + border-bottom-left-radius: 1px; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-left: 15px; + padding-right: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-right-radius: 1px; + border-top-left-radius: 1px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 1px; + border-top-right-radius: 1px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 1px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 1px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 1px; + border-bottom-left-radius: 1px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-left-radius: 1px; + border-bottom-right-radius: 1px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 1px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 1px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + border: 0; + margin-bottom: 0; +} +.panel-group { + margin-bottom: 18px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 2px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { + border-color: #ddd; +} +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #ddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 2px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-lg { + padding: 24px; + border-radius: 3px; +} +.well-sm { + padding: 9px; + border-radius: 1px; +} +.close { + float: right; + font-size: 19.5px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} +.modal-open { + overflow: hidden; +} +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #fff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 3px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; + outline: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + font-size: 12px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} +.tooltip.top { + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right { + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom { + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left { + margin-left: -3px; + padding: 0 5px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 2px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + bottom: 0; + right: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + font-size: 13px; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 3px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + margin: 0; + padding: 8px 14px; + font-size: 13px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 2px 2px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top > .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top > .arrow:after { + content: " "; + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #fff; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right > .arrow:after { + content: " "; + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #fff; +} +.popover.bottom > .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom > .arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left > .arrow:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: #fff; + bottom: -10px; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; +} +.carousel-inner > .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -moz-transition: -moz-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + -moz-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 15%; + opacity: 0.5; + filter: alpha(opacity=50); + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + background-color: rgba(0, 0, 0, 0); +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right { + left: auto; + right: 0; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus { + outline: 0; + color: #fff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + margin-top: -10px; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + line-height: 1; + font-family: serif; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + margin-left: -30%; + padding-left: 0; + list-style: none; + text-align: center; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid #fff; + border-radius: 10px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); +} +.carousel-indicators .active { + margin: 0; + width: 12px; + height: 12px; + background-color: #fff; +} +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -10px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -10px; + } + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after, +.item_buttons:before, +.item_buttons:after { + content: " "; + display: table; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer:after, +.item_buttons:after { + clear: both; +} +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*! +* +* Font Awesome +* +*/ +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0'); + src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +/*! +* +* IPython base +* +*/ +.modal.fade .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +code { + color: #000; +} +pre { + font-size: inherit; + line-height: inherit; +} +label { + font-weight: normal; +} +/* Make the page background atleast 100% the height of the view port */ +/* Make the page itself atleast 70% the height of the view port */ +.border-box-sizing { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +.corner-all { + border-radius: 2px; +} +.no-padding { + padding: 0px; +} +/* Flexible box model classes */ +/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */ +/* This file is a compatability layer. It allows the usage of flexible box +model layouts accross multiple browsers, including older browsers. The newest, +universal implementation of the flexible box model is used when available (see +`Modern browsers` comments below). Browsers that are known to implement this +new spec completely include: + + Firefox 28.0+ + Chrome 29.0+ + Internet Explorer 11+ + Opera 17.0+ + +Browsers not listed, including Safari, are supported via the styling under the +`Old browsers` comments below. +*/ +.hbox { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; +} +.hbox > * { + /* Old browsers */ + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + /* Modern browsers */ + flex: none; +} +.vbox { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; +} +.vbox > * { + /* Old browsers */ + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + /* Modern browsers */ + flex: none; +} +.hbox.reverse, +.vbox.reverse, +.reverse { + /* Old browsers */ + -webkit-box-direction: reverse; + -moz-box-direction: reverse; + box-direction: reverse; + /* Modern browsers */ + flex-direction: row-reverse; +} +.hbox.box-flex0, +.vbox.box-flex0, +.box-flex0 { + /* Old browsers */ + -webkit-box-flex: 0; + -moz-box-flex: 0; + box-flex: 0; + /* Modern browsers */ + flex: none; + width: auto; +} +.hbox.box-flex1, +.vbox.box-flex1, +.box-flex1 { + /* Old browsers */ + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + /* Modern browsers */ + flex: 1; +} +.hbox.box-flex, +.vbox.box-flex, +.box-flex { + /* Old browsers */ + /* Old browsers */ + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + /* Modern browsers */ + flex: 1; +} +.hbox.box-flex2, +.vbox.box-flex2, +.box-flex2 { + /* Old browsers */ + -webkit-box-flex: 2; + -moz-box-flex: 2; + box-flex: 2; + /* Modern browsers */ + flex: 2; +} +.box-group1 { + /* Deprecated */ + -webkit-box-flex-group: 1; + -moz-box-flex-group: 1; + box-flex-group: 1; +} +.box-group2 { + /* Deprecated */ + -webkit-box-flex-group: 2; + -moz-box-flex-group: 2; + box-flex-group: 2; +} +.hbox.start, +.vbox.start, +.start { + /* Old browsers */ + -webkit-box-pack: start; + -moz-box-pack: start; + box-pack: start; + /* Modern browsers */ + justify-content: flex-start; +} +.hbox.end, +.vbox.end, +.end { + /* Old browsers */ + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; + /* Modern browsers */ + justify-content: flex-end; +} +.hbox.center, +.vbox.center, +.center { + /* Old browsers */ + -webkit-box-pack: center; + -moz-box-pack: center; + box-pack: center; + /* Modern browsers */ + justify-content: center; +} +.hbox.baseline, +.vbox.baseline, +.baseline { + /* Old browsers */ + -webkit-box-pack: baseline; + -moz-box-pack: baseline; + box-pack: baseline; + /* Modern browsers */ + justify-content: baseline; +} +.hbox.stretch, +.vbox.stretch, +.stretch { + /* Old browsers */ + -webkit-box-pack: stretch; + -moz-box-pack: stretch; + box-pack: stretch; + /* Modern browsers */ + justify-content: stretch; +} +.hbox.align-start, +.vbox.align-start, +.align-start { + /* Old browsers */ + -webkit-box-align: start; + -moz-box-align: start; + box-align: start; + /* Modern browsers */ + align-items: flex-start; +} +.hbox.align-end, +.vbox.align-end, +.align-end { + /* Old browsers */ + -webkit-box-align: end; + -moz-box-align: end; + box-align: end; + /* Modern browsers */ + align-items: flex-end; +} +.hbox.align-center, +.vbox.align-center, +.align-center { + /* Old browsers */ + -webkit-box-align: center; + -moz-box-align: center; + box-align: center; + /* Modern browsers */ + align-items: center; +} +.hbox.align-baseline, +.vbox.align-baseline, +.align-baseline { + /* Old browsers */ + -webkit-box-align: baseline; + -moz-box-align: baseline; + box-align: baseline; + /* Modern browsers */ + align-items: baseline; +} +.hbox.align-stretch, +.vbox.align-stretch, +.align-stretch { + /* Old browsers */ + -webkit-box-align: stretch; + -moz-box-align: stretch; + box-align: stretch; + /* Modern browsers */ + align-items: stretch; +} +div.error { + margin: 2em; + text-align: center; +} +div.error > h1 { + font-size: 500%; + line-height: normal; +} +div.error > p { + font-size: 200%; + line-height: normal; +} +div.traceback-wrapper { + text-align: left; + max-width: 800px; + margin: auto; +} +/** + * Primary styles + * + * Author: Jupyter Development Team + */ +body { + background-color: #fff; + /* This makes sure that the body covers the entire window and needs to + be in a different element than the display: box in wrapper below */ + position: absolute; + left: 0px; + right: 0px; + top: 0px; + bottom: 0px; + overflow: visible; +} +body > #header { + /* Initially hidden to prevent FLOUC */ + display: none; + background-color: #fff; + /* Display over codemirror */ + position: relative; + z-index: 100; +} +body > #header #header-container { + padding-bottom: 5px; + padding-top: 5px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +body > #header .header-bar { + width: 100%; + height: 1px; + background: #e7e7e7; + margin-bottom: -1px; +} +@media print { + body > #header { + display: none !important; + } +} +#header-spacer { + width: 100%; + visibility: hidden; +} +@media print { + #header-spacer { + display: none; + } +} +#ipython_notebook { + padding-left: 0px; + padding-top: 1px; + padding-bottom: 1px; +} +@media (max-width: 991px) { + #ipython_notebook { + margin-left: 10px; + } +} +#noscript { + width: auto; + padding-top: 16px; + padding-bottom: 16px; + text-align: center; + font-size: 22px; + color: red; + font-weight: bold; +} +#ipython_notebook img { + height: 28px; +} +#site { + width: 100%; + display: none; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + overflow: auto; +} +@media print { + #site { + height: auto !important; + } +} +/* Smaller buttons */ +.ui-button .ui-button-text { + padding: 0.2em 0.8em; + font-size: 77%; +} +input.ui-button { + padding: 0.3em 0.9em; +} +span#login_widget { + float: right; +} +span#login_widget > .button, +#logout { + color: #333; + background-color: #fff; + border-color: #ccc; +} +span#login_widget > .button:focus, +#logout:focus, +span#login_widget > .button.focus, +#logout.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +span#login_widget > .button:hover, +#logout:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +span#login_widget > .button:active, +#logout:active, +span#login_widget > .button.active, +#logout.active, +.open > .dropdown-togglespan#login_widget > .button, +.open > .dropdown-toggle#logout { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +span#login_widget > .button:active:hover, +#logout:active:hover, +span#login_widget > .button.active:hover, +#logout.active:hover, +.open > .dropdown-togglespan#login_widget > .button:hover, +.open > .dropdown-toggle#logout:hover, +span#login_widget > .button:active:focus, +#logout:active:focus, +span#login_widget > .button.active:focus, +#logout.active:focus, +.open > .dropdown-togglespan#login_widget > .button:focus, +.open > .dropdown-toggle#logout:focus, +span#login_widget > .button:active.focus, +#logout:active.focus, +span#login_widget > .button.active.focus, +#logout.active.focus, +.open > .dropdown-togglespan#login_widget > .button.focus, +.open > .dropdown-toggle#logout.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +span#login_widget > .button:active, +#logout:active, +span#login_widget > .button.active, +#logout.active, +.open > .dropdown-togglespan#login_widget > .button, +.open > .dropdown-toggle#logout { + background-image: none; +} +span#login_widget > .button.disabled:hover, +#logout.disabled:hover, +span#login_widget > .button[disabled]:hover, +#logout[disabled]:hover, +fieldset[disabled] span#login_widget > .button:hover, +fieldset[disabled] #logout:hover, +span#login_widget > .button.disabled:focus, +#logout.disabled:focus, +span#login_widget > .button[disabled]:focus, +#logout[disabled]:focus, +fieldset[disabled] span#login_widget > .button:focus, +fieldset[disabled] #logout:focus, +span#login_widget > .button.disabled.focus, +#logout.disabled.focus, +span#login_widget > .button[disabled].focus, +#logout[disabled].focus, +fieldset[disabled] span#login_widget > .button.focus, +fieldset[disabled] #logout.focus { + background-color: #fff; + border-color: #ccc; +} +span#login_widget > .button .badge, +#logout .badge { + color: #fff; + background-color: #333; +} +.nav-header { + text-transform: none; +} +#header > span { + margin-top: 10px; +} +.modal_stretch .modal-dialog { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + min-height: 80vh; +} +.modal_stretch .modal-dialog .modal-body { + max-height: calc(100vh - 200px); + overflow: auto; + flex: 1; +} +@media (min-width: 768px) { + .modal .modal-dialog { + width: 700px; + } +} +@media (min-width: 768px) { + select.form-control { + margin-left: 12px; + margin-right: 12px; + } +} +/*! +* +* IPython auth +* +*/ +.center-nav { + display: inline-block; + margin-bottom: -4px; +} +/*! +* +* IPython tree view +* +*/ +/* We need an invisible input field on top of the sentense*/ +/* "Drag file onto the list ..." */ +.alternate_upload { + background-color: none; + display: inline; +} +.alternate_upload.form { + padding: 0; + margin: 0; +} +.alternate_upload input.fileinput { + text-align: center; + vertical-align: middle; + display: inline; + opacity: 0; + z-index: 2; + width: 12ex; + margin-right: -12ex; +} +.alternate_upload .btn-upload { + height: 22px; +} +/** + * Primary styles + * + * Author: Jupyter Development Team + */ +ul#tabs { + margin-bottom: 4px; +} +ul#tabs a { + padding-top: 6px; + padding-bottom: 4px; +} +ul.breadcrumb a:focus, +ul.breadcrumb a:hover { + text-decoration: none; +} +ul.breadcrumb i.icon-home { + font-size: 16px; + margin-right: 4px; +} +ul.breadcrumb span { + color: #5e5e5e; +} +.list_toolbar { + padding: 4px 0 4px 0; + vertical-align: middle; +} +.list_toolbar .tree-buttons { + padding-top: 1px; +} +.dynamic-buttons { + padding-top: 3px; + display: inline-block; +} +.list_toolbar [class*="span"] { + min-height: 24px; +} +.list_header { + font-weight: bold; + background-color: #EEE; +} +.list_placeholder { + font-weight: bold; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 7px; + padding-right: 7px; +} +.list_container { + margin-top: 4px; + margin-bottom: 20px; + border: 1px solid #ddd; + border-radius: 2px; +} +.list_container > div { + border-bottom: 1px solid #ddd; +} +.list_container > div:hover .list-item { + background-color: red; +} +.list_container > div:last-child { + border: none; +} +.list_item:hover .list_item { + background-color: #ddd; +} +.list_item a { + text-decoration: none; +} +.list_item:hover { + background-color: #fafafa; +} +.list_header > div, +.list_item > div { + padding-top: 4px; + padding-bottom: 4px; + padding-left: 7px; + padding-right: 7px; + line-height: 22px; +} +.list_header > div input, +.list_item > div input { + margin-right: 7px; + margin-left: 14px; + vertical-align: baseline; + line-height: 22px; + position: relative; + top: -1px; +} +.list_header > div .item_link, +.list_item > div .item_link { + margin-left: -1px; + vertical-align: baseline; + line-height: 22px; +} +.new-file input[type=checkbox] { + visibility: hidden; +} +.item_name { + line-height: 22px; + height: 24px; +} +.item_icon { + font-size: 14px; + color: #5e5e5e; + margin-right: 7px; + margin-left: 7px; + line-height: 22px; + vertical-align: baseline; +} +.item_buttons { + line-height: 1em; + margin-left: -5px; +} +.item_buttons .btn, +.item_buttons .btn-group, +.item_buttons .input-group { + float: left; +} +.item_buttons > .btn, +.item_buttons > .btn-group, +.item_buttons > .input-group { + margin-left: 5px; +} +.item_buttons .btn { + min-width: 13ex; +} +.item_buttons .running-indicator { + padding-top: 4px; + color: #5cb85c; +} +.item_buttons .kernel-name { + padding-top: 4px; + color: #5bc0de; + margin-right: 7px; + float: left; +} +.toolbar_info { + height: 24px; + line-height: 24px; +} +.list_item input:not([type=checkbox]) { + padding-top: 3px; + padding-bottom: 3px; + height: 22px; + line-height: 14px; + margin: 0px; +} +.highlight_text { + color: blue; +} +#project_name { + display: inline-block; + padding-left: 7px; + margin-left: -2px; +} +#project_name > .breadcrumb { + padding: 0px; + margin-bottom: 0px; + background-color: transparent; + font-weight: bold; +} +#tree-selector { + padding-right: 0px; +} +#button-select-all { + min-width: 50px; +} +#select-all { + margin-left: 7px; + margin-right: 2px; +} +.menu_icon { + margin-right: 2px; +} +.tab-content .row { + margin-left: 0px; + margin-right: 0px; +} +.folder_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f114"; +} +.folder_icon:before.pull-left { + margin-right: .3em; +} +.folder_icon:before.pull-right { + margin-left: .3em; +} +.notebook_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f02d"; + position: relative; + top: -1px; +} +.notebook_icon:before.pull-left { + margin-right: .3em; +} +.notebook_icon:before.pull-right { + margin-left: .3em; +} +.running_notebook_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f02d"; + position: relative; + top: -1px; + color: #5cb85c; +} +.running_notebook_icon:before.pull-left { + margin-right: .3em; +} +.running_notebook_icon:before.pull-right { + margin-left: .3em; +} +.file_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f016"; + position: relative; + top: -2px; +} +.file_icon:before.pull-left { + margin-right: .3em; +} +.file_icon:before.pull-right { + margin-left: .3em; +} +#notebook_toolbar .pull-right { + padding-top: 0px; + margin-right: -1px; +} +ul#new-menu { + left: auto; + right: 0; +} +.kernel-menu-icon { + padding-right: 12px; + width: 24px; + content: "\f096"; +} +.kernel-menu-icon:before { + content: "\f096"; +} +.kernel-menu-icon-current:before { + content: "\f00c"; +} +#tab_content { + padding-top: 20px; +} +#running .panel-group .panel { + margin-top: 3px; + margin-bottom: 1em; +} +#running .panel-group .panel .panel-heading { + background-color: #EEE; + padding-top: 4px; + padding-bottom: 4px; + padding-left: 7px; + padding-right: 7px; + line-height: 22px; +} +#running .panel-group .panel .panel-heading a:focus, +#running .panel-group .panel .panel-heading a:hover { + text-decoration: none; +} +#running .panel-group .panel .panel-body { + padding: 0px; +} +#running .panel-group .panel .panel-body .list_container { + margin-top: 0px; + margin-bottom: 0px; + border: 0px; + border-radius: 0px; +} +#running .panel-group .panel .panel-body .list_container .list_item { + border-bottom: 1px solid #ddd; +} +#running .panel-group .panel .panel-body .list_container .list_item:last-child { + border-bottom: 0px; +} +.delete-button { + display: none; +} +.duplicate-button { + display: none; +} +.rename-button { + display: none; +} +.shutdown-button { + display: none; +} +.dynamic-instructions { + display: inline-block; + padding-top: 4px; +} +/*! +* +* IPython text editor webapp +* +*/ +.selected-keymap i.fa { + padding: 0px 5px; +} +.selected-keymap i.fa:before { + content: "\f00c"; +} +#mode-menu { + overflow: auto; + max-height: 20em; +} +.edit_app #header { + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); +} +.edit_app #menubar .navbar { + /* Use a negative 1 bottom margin, so the border overlaps the border of the + header */ + margin-bottom: -1px; +} +.dirty-indicator { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 20px; +} +.dirty-indicator.pull-left { + margin-right: .3em; +} +.dirty-indicator.pull-right { + margin-left: .3em; +} +.dirty-indicator-dirty { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 20px; +} +.dirty-indicator-dirty.pull-left { + margin-right: .3em; +} +.dirty-indicator-dirty.pull-right { + margin-left: .3em; +} +.dirty-indicator-clean { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + width: 20px; +} +.dirty-indicator-clean.pull-left { + margin-right: .3em; +} +.dirty-indicator-clean.pull-right { + margin-left: .3em; +} +.dirty-indicator-clean:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f00c"; +} +.dirty-indicator-clean:before.pull-left { + margin-right: .3em; +} +.dirty-indicator-clean:before.pull-right { + margin-left: .3em; +} +#filename { + font-size: 16pt; + display: table; + padding: 0px 5px; +} +#current-mode { + padding-left: 5px; + padding-right: 5px; +} +#texteditor-backdrop { + padding-top: 20px; + padding-bottom: 20px; +} +@media not print { + #texteditor-backdrop { + background-color: #EEE; + } +} +@media print { + #texteditor-backdrop #texteditor-container .CodeMirror-gutter, + #texteditor-backdrop #texteditor-container .CodeMirror-gutters { + background-color: #fff; + } +} +@media not print { + #texteditor-backdrop #texteditor-container .CodeMirror-gutter, + #texteditor-backdrop #texteditor-container .CodeMirror-gutters { + background-color: #fff; + } +} +@media not print { + #texteditor-backdrop #texteditor-container { + padding: 0px; + background-color: #fff; + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + } +} +/*! +* +* IPython notebook +* +*/ +/* CSS font colors for translated ANSI colors. */ +.ansibold { + font-weight: bold; +} +/* use dark versions for foreground, to improve visibility */ +.ansiblack { + color: black; +} +.ansired { + color: darkred; +} +.ansigreen { + color: darkgreen; +} +.ansiyellow { + color: #c4a000; +} +.ansiblue { + color: darkblue; +} +.ansipurple { + color: darkviolet; +} +.ansicyan { + color: steelblue; +} +.ansigray { + color: gray; +} +/* and light for background, for the same reason */ +.ansibgblack { + background-color: black; +} +.ansibgred { + background-color: red; +} +.ansibggreen { + background-color: green; +} +.ansibgyellow { + background-color: yellow; +} +.ansibgblue { + background-color: blue; +} +.ansibgpurple { + background-color: magenta; +} +.ansibgcyan { + background-color: cyan; +} +.ansibggray { + background-color: gray; +} +div.cell { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + border-radius: 2px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border-width: 1px; + border-style: solid; + border-color: transparent; + width: 100%; + padding: 5px; + /* This acts as a spacer between cells, that is outside the border */ + margin: 0px; + outline: none; + border-left-width: 1px; + padding-left: 5px; + background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%); +} +div.cell.jupyter-soft-selected { + border-left-color: #90CAF9; + border-left-color: #E3F2FD; + border-left-width: 1px; + padding-left: 5px; + border-right-color: #E3F2FD; + border-right-width: 1px; + background: #E3F2FD; +} +@media print { + div.cell.jupyter-soft-selected { + border-color: transparent; + } +} +div.cell.selected { + border-color: #ababab; + border-left-width: 0px; + padding-left: 6px; + background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%); +} +@media print { + div.cell.selected { + border-color: transparent; + } +} +div.cell.selected.jupyter-soft-selected { + border-left-width: 0; + padding-left: 6px; + background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%); +} +.edit_mode div.cell.selected { + border-color: #66BB6A; + border-left-width: 0px; + padding-left: 6px; + background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%); +} +@media print { + .edit_mode div.cell.selected { + border-color: transparent; + } +} +.prompt { + /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */ + min-width: 14ex; + /* This padding is tuned to match the padding on the CodeMirror editor. */ + padding: 0.4em; + margin: 0px; + font-family: monospace; + text-align: right; + /* This has to match that of the the CodeMirror class line-height below */ + line-height: 1.21429em; + /* Don't highlight prompt number selection */ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* Use default cursor */ + cursor: default; +} +@media (max-width: 540px) { + .prompt { + text-align: left; + } +} +div.inner_cell { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + /* Old browsers */ + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + /* Modern browsers */ + flex: 1; +} +@-moz-document url-prefix() { + div.inner_cell { + overflow-x: hidden; + } +} +/* input_area and input_prompt must match in top border and margin for alignment */ +div.input_area { + border: 1px solid #cfcfcf; + border-radius: 2px; + background: #f7f7f7; + line-height: 1.21429em; +} +/* This is needed so that empty prompt areas can collapse to zero height when there + is no content in the output_subarea and the prompt. The main purpose of this is + to make sure that empty JavaScript output_subareas have no height. */ +div.prompt:empty { + padding-top: 0; + padding-bottom: 0; +} +div.unrecognized_cell { + padding: 5px 5px 5px 0px; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; +} +div.unrecognized_cell .inner_cell { + border-radius: 2px; + padding: 5px; + font-weight: bold; + color: red; + border: 1px solid #cfcfcf; + background: #eaeaea; +} +div.unrecognized_cell .inner_cell a { + color: inherit; + text-decoration: none; +} +div.unrecognized_cell .inner_cell a:hover { + color: inherit; + text-decoration: none; +} +@media (max-width: 540px) { + div.unrecognized_cell > div.prompt { + display: none; + } +} +div.code_cell { + /* avoid page breaking on code cells when printing */ +} +@media print { + div.code_cell { + page-break-inside: avoid; + } +} +/* any special styling for code cells that are currently running goes here */ +div.input { + page-break-inside: avoid; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; +} +@media (max-width: 540px) { + div.input { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + } +} +/* input_area and input_prompt must match in top border and margin for alignment */ +div.input_prompt { + color: #303F9F; + border-top: 1px solid transparent; +} +div.input_area > div.highlight { + margin: 0.4em; + border: none; + padding: 0px; + background-color: transparent; +} +div.input_area > div.highlight > pre { + margin: 0px; + border: none; + padding: 0px; + background-color: transparent; +} +/* The following gets added to the <head> if it is detected that the user has a + * monospace font with inconsistent normal/bold/italic height. See + * notebookmain.js. Such fonts will have keywords vertically offset with + * respect to the rest of the text. The user should select a better font. + * See: https://github.com/ipython/ipython/issues/1503 + * + * .CodeMirror span { + * vertical-align: bottom; + * } + */ +.CodeMirror { + line-height: 1.21429em; + /* Changed from 1em to our global default */ + font-size: 14px; + height: auto; + /* Changed to auto to autogrow */ + background: none; + /* Changed from white to allow our bg to show through */ +} +.CodeMirror-scroll { + /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/ + /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/ + overflow-y: hidden; + overflow-x: auto; +} +.CodeMirror-lines { + /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */ + /* we have set a different line-height and want this to scale with that. */ + padding: 0.4em; +} +.CodeMirror-linenumber { + padding: 0 8px 0 4px; +} +.CodeMirror-gutters { + border-bottom-left-radius: 2px; + border-top-left-radius: 2px; +} +.CodeMirror pre { + /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */ + /* .CodeMirror-lines */ + padding: 0; + border: 0; + border-radius: 0; +} +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> +Adapted from GitHub theme + +*/ +.highlight-base { + color: #000; +} +.highlight-variable { + color: #000; +} +.highlight-variable-2 { + color: #1a1a1a; +} +.highlight-variable-3 { + color: #333333; +} +.highlight-string { + color: #BA2121; +} +.highlight-comment { + color: #408080; + font-style: italic; +} +.highlight-number { + color: #080; +} +.highlight-atom { + color: #88F; +} +.highlight-keyword { + color: #008000; + font-weight: bold; +} +.highlight-builtin { + color: #008000; +} +.highlight-error { + color: #f00; +} +.highlight-operator { + color: #AA22FF; + font-weight: bold; +} +.highlight-meta { + color: #AA22FF; +} +/* previously not defined, copying from default codemirror */ +.highlight-def { + color: #00f; +} +.highlight-string-2 { + color: #f50; +} +.highlight-qualifier { + color: #555; +} +.highlight-bracket { + color: #997; +} +.highlight-tag { + color: #170; +} +.highlight-attribute { + color: #00c; +} +.highlight-header { + color: blue; +} +.highlight-quote { + color: #090; +} +.highlight-link { + color: #00c; +} +/* apply the same style to codemirror */ +.cm-s-ipython span.cm-keyword { + color: #008000; + font-weight: bold; +} +.cm-s-ipython span.cm-atom { + color: #88F; +} +.cm-s-ipython span.cm-number { + color: #080; +} +.cm-s-ipython span.cm-def { + color: #00f; +} +.cm-s-ipython span.cm-variable { + color: #000; +} +.cm-s-ipython span.cm-operator { + color: #AA22FF; + font-weight: bold; +} +.cm-s-ipython span.cm-variable-2 { + color: #1a1a1a; +} +.cm-s-ipython span.cm-variable-3 { + color: #333333; +} +.cm-s-ipython span.cm-comment { + color: #408080; + font-style: italic; +} +.cm-s-ipython span.cm-string { + color: #BA2121; +} +.cm-s-ipython span.cm-string-2 { + color: #f50; +} +.cm-s-ipython span.cm-meta { + color: #AA22FF; +} +.cm-s-ipython span.cm-qualifier { + color: #555; +} +.cm-s-ipython span.cm-builtin { + color: #008000; +} +.cm-s-ipython span.cm-bracket { + color: #997; +} +.cm-s-ipython span.cm-tag { + color: #170; +} +.cm-s-ipython span.cm-attribute { + color: #00c; +} +.cm-s-ipython span.cm-header { + color: blue; +} +.cm-s-ipython span.cm-quote { + color: #090; +} +.cm-s-ipython span.cm-link { + color: #00c; +} +.cm-s-ipython span.cm-error { + color: #f00; +} +.cm-s-ipython span.cm-tab { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=); + background-position: right; + background-repeat: no-repeat; +} +div.output_wrapper { + /* this position must be relative to enable descendents to be absolute within it */ + position: relative; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + z-index: 1; +} +/* class for the output area when it should be height-limited */ +div.output_scroll { + /* ideally, this would be max-height, but FF barfs all over that */ + height: 24em; + /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */ + width: 100%; + overflow: auto; + border-radius: 2px; + -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); + box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8); + display: block; +} +/* output div while it is collapsed */ +div.output_collapsed { + margin: 0px; + padding: 0px; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; +} +div.out_prompt_overlay { + height: 100%; + padding: 0px 0.4em; + position: absolute; + border-radius: 2px; +} +div.out_prompt_overlay:hover { + /* use inner shadow to get border that is computed the same on WebKit/FF */ + -webkit-box-shadow: inset 0 0 1px #000; + box-shadow: inset 0 0 1px #000; + background: rgba(240, 240, 240, 0.5); +} +div.output_prompt { + color: #D84315; +} +/* This class is the outer container of all output sections. */ +div.output_area { + padding: 0px; + page-break-inside: avoid; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; +} +div.output_area .MathJax_Display { + text-align: left !important; +} +div.output_area .rendered_html table { + margin-left: 0; + margin-right: 0; +} +div.output_area .rendered_html img { + margin-left: 0; + margin-right: 0; +} +div.output_area img, +div.output_area svg { + max-width: 100%; + height: auto; +} +div.output_area img.unconfined, +div.output_area svg.unconfined { + max-width: none; +} +/* This is needed to protect the pre formating from global settings such + as that of bootstrap */ +.output { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; +} +@media (max-width: 540px) { + div.output_area { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-align: stretch; + display: box; + box-orient: vertical; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: column; + align-items: stretch; + } +} +div.output_area pre { + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; + color: black; + background-color: transparent; + border-radius: 0; +} +/* This class is for the output subarea inside the output_area and after + the prompt div. */ +div.output_subarea { + overflow-x: auto; + padding: 0.4em; + /* Old browsers */ + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + /* Modern browsers */ + flex: 1; + max-width: calc(100% - 14ex); +} +div.output_scroll div.output_subarea { + overflow-x: visible; +} +/* The rest of the output_* classes are for special styling of the different + output types */ +/* all text output has this class: */ +div.output_text { + text-align: left; + color: #000; + /* This has to match that of the the CodeMirror class line-height below */ + line-height: 1.21429em; +} +/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */ +div.output_stderr { + background: #fdd; + /* very light red background for stderr */ +} +div.output_latex { + text-align: left; +} +/* Empty output_javascript divs should have no height */ +div.output_javascript:empty { + padding: 0; +} +.js-error { + color: darkred; +} +/* raw_input styles */ +div.raw_input_container { + line-height: 1.21429em; + padding-top: 5px; +} +pre.raw_input_prompt { + /* nothing needed here. */ +} +input.raw_input { + font-family: monospace; + font-size: inherit; + color: inherit; + width: auto; + /* make sure input baseline aligns with prompt */ + vertical-align: baseline; + /* padding + margin = 0.5em between prompt and cursor */ + padding: 0em 0.25em; + margin: 0em 0.25em; +} +input.raw_input:focus { + box-shadow: none; +} +p.p-space { + margin-bottom: 10px; +} +div.output_unrecognized { + padding: 5px; + font-weight: bold; + color: red; +} +div.output_unrecognized a { + color: inherit; + text-decoration: none; +} +div.output_unrecognized a:hover { + color: inherit; + text-decoration: none; +} +.rendered_html { + color: #000; + /* any extras will just be numbers: */ +} +.rendered_html em { + font-style: italic; +} +.rendered_html strong { + font-weight: bold; +} +.rendered_html u { + text-decoration: underline; +} +.rendered_html :link { + text-decoration: underline; +} +.rendered_html :visited { + text-decoration: underline; +} +.rendered_html h1 { + font-size: 185.7%; + margin: 1.08em 0 0 0; + font-weight: bold; + line-height: 1.0; +} +.rendered_html h2 { + font-size: 157.1%; + margin: 1.27em 0 0 0; + font-weight: bold; + line-height: 1.0; +} +.rendered_html h3 { + font-size: 128.6%; + margin: 1.55em 0 0 0; + font-weight: bold; + line-height: 1.0; +} +.rendered_html h4 { + font-size: 100%; + margin: 2em 0 0 0; + font-weight: bold; + line-height: 1.0; +} +.rendered_html h5 { + font-size: 100%; + margin: 2em 0 0 0; + font-weight: bold; + line-height: 1.0; + font-style: italic; +} +.rendered_html h6 { + font-size: 100%; + margin: 2em 0 0 0; + font-weight: bold; + line-height: 1.0; + font-style: italic; +} +.rendered_html h1:first-child { + margin-top: 0.538em; +} +.rendered_html h2:first-child { + margin-top: 0.636em; +} +.rendered_html h3:first-child { + margin-top: 0.777em; +} +.rendered_html h4:first-child { + margin-top: 1em; +} +.rendered_html h5:first-child { + margin-top: 1em; +} +.rendered_html h6:first-child { + margin-top: 1em; +} +.rendered_html ul { + list-style: disc; + margin: 0em 2em; + padding-left: 0px; +} +.rendered_html ul ul { + list-style: square; + margin: 0em 2em; +} +.rendered_html ul ul ul { + list-style: circle; + margin: 0em 2em; +} +.rendered_html ol { + list-style: decimal; + margin: 0em 2em; + padding-left: 0px; +} +.rendered_html ol ol { + list-style: upper-alpha; + margin: 0em 2em; +} +.rendered_html ol ol ol { + list-style: lower-alpha; + margin: 0em 2em; +} +.rendered_html ol ol ol ol { + list-style: lower-roman; + margin: 0em 2em; +} +.rendered_html ol ol ol ol ol { + list-style: decimal; + margin: 0em 2em; +} +.rendered_html * + ul { + margin-top: 1em; +} +.rendered_html * + ol { + margin-top: 1em; +} +.rendered_html hr { + color: black; + background-color: black; +} +.rendered_html pre { + margin: 1em 2em; +} +.rendered_html pre, +.rendered_html code { + border: 0; + background-color: #fff; + color: #000; + font-size: 100%; + padding: 0px; +} +.rendered_html blockquote { + margin: 1em 2em; +} +.rendered_html table { + margin-left: auto; + margin-right: auto; + border: 1px solid black; + border-collapse: collapse; +} +.rendered_html tr, +.rendered_html th, +.rendered_html td { + border: 1px solid black; + border-collapse: collapse; + margin: 1em 2em; +} +.rendered_html td, +.rendered_html th { + text-align: left; + vertical-align: middle; + padding: 4px; +} +.rendered_html th { + font-weight: bold; +} +.rendered_html * + table { + margin-top: 1em; +} +.rendered_html p { + text-align: left; +} +.rendered_html * + p { + margin-top: 1em; +} +.rendered_html img { + display: block; + margin-left: auto; + margin-right: auto; +} +.rendered_html * + img { + margin-top: 1em; +} +.rendered_html img, +.rendered_html svg { + max-width: 100%; + height: auto; +} +.rendered_html img.unconfined, +.rendered_html svg.unconfined { + max-width: none; +} +div.text_cell { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; +} +@media (max-width: 540px) { + div.text_cell > div.prompt { + display: none; + } +} +div.text_cell_render { + /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/ + outline: none; + resize: none; + width: inherit; + border-style: none; + padding: 0.5em 0.5em 0.5em 0.4em; + color: #000; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +a.anchor-link:link { + text-decoration: none; + padding: 0px 20px; + visibility: hidden; +} +h1:hover .anchor-link, +h2:hover .anchor-link, +h3:hover .anchor-link, +h4:hover .anchor-link, +h5:hover .anchor-link, +h6:hover .anchor-link { + visibility: visible; +} +.text_cell.rendered .input_area { + display: none; +} +.text_cell.rendered .rendered_html { + overflow-x: auto; + overflow-y: hidden; +} +.text_cell.unrendered .text_cell_render { + display: none; +} +.cm-header-1, +.cm-header-2, +.cm-header-3, +.cm-header-4, +.cm-header-5, +.cm-header-6 { + font-weight: bold; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.cm-header-1 { + font-size: 185.7%; +} +.cm-header-2 { + font-size: 157.1%; +} +.cm-header-3 { + font-size: 128.6%; +} +.cm-header-4 { + font-size: 110%; +} +.cm-header-5 { + font-size: 100%; + font-style: italic; +} +.cm-header-6 { + font-size: 100%; + font-style: italic; +} +/*! +* +* IPython notebook webapp +* +*/ +@media (max-width: 767px) { + .notebook_app { + padding-left: 0px; + padding-right: 0px; + } +} +#ipython-main-app { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + height: 100%; +} +div#notebook_panel { + margin: 0px; + padding: 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + height: 100%; +} +div#notebook { + font-size: 14px; + line-height: 20px; + overflow-y: hidden; + overflow-x: auto; + width: 100%; + /* This spaces the page away from the edge of the notebook area */ + padding-top: 20px; + margin: 0px; + outline: none; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + min-height: 100%; +} +@media not print { + #notebook-container { + padding: 15px; + background-color: #fff; + min-height: 0; + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + } +} +@media print { + #notebook-container { + width: 100%; + } +} +div.ui-widget-content { + border: 1px solid #ababab; + outline: none; +} +pre.dialog { + background-color: #f7f7f7; + border: 1px solid #ddd; + border-radius: 2px; + padding: 0.4em; + padding-left: 2em; +} +p.dialog { + padding: 0.2em; +} +/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems + to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do. + */ +pre, +code, +kbd, +samp { + white-space: pre-wrap; +} +#fonttest { + font-family: monospace; +} +p { + margin-bottom: 0; +} +.end_space { + min-height: 100px; + transition: height .2s ease; +} +.notebook_app > #header { + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); +} +@media not print { + .notebook_app { + background-color: #EEE; + } +} +kbd { + border-style: solid; + border-width: 1px; + box-shadow: none; + margin: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 1px; + padding-bottom: 1px; +} +/* CSS for the cell toolbar */ +.celltoolbar { + border: thin solid #CFCFCF; + border-bottom: none; + background: #EEE; + border-radius: 2px 2px 0px 0px; + width: 100%; + height: 29px; + padding-right: 4px; + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; + /* Old browsers */ + -webkit-box-pack: end; + -moz-box-pack: end; + box-pack: end; + /* Modern browsers */ + justify-content: flex-end; + display: -webkit-flex; +} +@media print { + .celltoolbar { + display: none; + } +} +.ctb_hideshow { + display: none; + vertical-align: bottom; +} +/* ctb_show is added to the ctb_hideshow div to show the cell toolbar. + Cell toolbars are only shown when the ctb_global_show class is also set. +*/ +.ctb_global_show .ctb_show.ctb_hideshow { + display: block; +} +.ctb_global_show .ctb_show + .input_area, +.ctb_global_show .ctb_show + div.text_cell_input, +.ctb_global_show .ctb_show ~ div.text_cell_render { + border-top-right-radius: 0px; + border-top-left-radius: 0px; +} +.ctb_global_show .ctb_show ~ div.text_cell_render { + border: 1px solid #cfcfcf; +} +.celltoolbar { + font-size: 87%; + padding-top: 3px; +} +.celltoolbar select { + display: block; + width: 100%; + height: 32px; + padding: 6px 12px; + font-size: 13px; + line-height: 1.42857143; + color: #555555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 2px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 1px; + width: inherit; + font-size: inherit; + height: 22px; + padding: 0px; + display: inline-block; +} +.celltoolbar select:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); +} +.celltoolbar select::-moz-placeholder { + color: #999; + opacity: 1; +} +.celltoolbar select:-ms-input-placeholder { + color: #999; +} +.celltoolbar select::-webkit-input-placeholder { + color: #999; +} +.celltoolbar select::-ms-expand { + border: 0; + background-color: transparent; +} +.celltoolbar select[disabled], +.celltoolbar select[readonly], +fieldset[disabled] .celltoolbar select { + background-color: #eeeeee; + opacity: 1; +} +.celltoolbar select[disabled], +fieldset[disabled] .celltoolbar select { + cursor: not-allowed; +} +textarea.celltoolbar select { + height: auto; +} +select.celltoolbar select { + height: 30px; + line-height: 30px; +} +textarea.celltoolbar select, +select[multiple].celltoolbar select { + height: auto; +} +.celltoolbar label { + margin-left: 5px; + margin-right: 5px; +} +.completions { + position: absolute; + z-index: 110; + overflow: hidden; + border: 1px solid #ababab; + border-radius: 2px; + -webkit-box-shadow: 0px 6px 10px -1px #adadad; + box-shadow: 0px 6px 10px -1px #adadad; + line-height: 1; +} +.completions select { + background: white; + outline: none; + border: none; + padding: 0px; + margin: 0px; + overflow: auto; + font-family: monospace; + font-size: 110%; + color: #000; + width: auto; +} +.completions select option.context { + color: #286090; +} +#kernel_logo_widget { + float: right !important; + float: right; +} +#kernel_logo_widget .current_kernel_logo { + display: none; + margin-top: -1px; + margin-bottom: -1px; + width: 32px; + height: 32px; +} +#menubar { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + margin-top: 1px; +} +#menubar .navbar { + border-top: 1px; + border-radius: 0px 0px 2px 2px; + margin-bottom: 0px; +} +#menubar .navbar-toggle { + float: left; + padding-top: 7px; + padding-bottom: 7px; + border: none; +} +#menubar .navbar-collapse { + clear: left; +} +.nav-wrapper { + border-bottom: 1px solid #e7e7e7; +} +i.menu-icon { + padding-top: 4px; +} +ul#help_menu li a { + overflow: hidden; + padding-right: 2.2em; +} +ul#help_menu li a i { + margin-right: -1.2em; +} +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropdown-submenu > a:after { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + display: block; + content: "\f0da"; + float: right; + color: #333333; + margin-top: 2px; + margin-right: -10px; +} +.dropdown-submenu > a:after.pull-left { + margin-right: .3em; +} +.dropdown-submenu > a:after.pull-right { + margin-left: .3em; +} +.dropdown-submenu:hover > a:after { + color: #262626; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; +} +#notification_area { + float: right !important; + float: right; + z-index: 10; +} +.indicator_area { + float: right !important; + float: right; + color: #777; + margin-left: 5px; + margin-right: 5px; + width: 11px; + z-index: 10; + text-align: center; + width: auto; +} +#kernel_indicator { + float: right !important; + float: right; + color: #777; + margin-left: 5px; + margin-right: 5px; + width: 11px; + z-index: 10; + text-align: center; + width: auto; + border-left: 1px solid; +} +#kernel_indicator .kernel_indicator_name { + padding-left: 5px; + padding-right: 5px; +} +#modal_indicator { + float: right !important; + float: right; + color: #777; + margin-left: 5px; + margin-right: 5px; + width: 11px; + z-index: 10; + text-align: center; + width: auto; +} +#readonly-indicator { + float: right !important; + float: right; + color: #777; + margin-left: 5px; + margin-right: 5px; + width: 11px; + z-index: 10; + text-align: center; + width: auto; + margin-top: 2px; + margin-bottom: 0px; + margin-left: 0px; + margin-right: 0px; + display: none; +} +.modal_indicator:before { + width: 1.28571429em; + text-align: center; +} +.edit_mode .modal_indicator:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f040"; +} +.edit_mode .modal_indicator:before.pull-left { + margin-right: .3em; +} +.edit_mode .modal_indicator:before.pull-right { + margin-left: .3em; +} +.command_mode .modal_indicator:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: ' '; +} +.command_mode .modal_indicator:before.pull-left { + margin-right: .3em; +} +.command_mode .modal_indicator:before.pull-right { + margin-left: .3em; +} +.kernel_idle_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f10c"; +} +.kernel_idle_icon:before.pull-left { + margin-right: .3em; +} +.kernel_idle_icon:before.pull-right { + margin-left: .3em; +} +.kernel_busy_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f111"; +} +.kernel_busy_icon:before.pull-left { + margin-right: .3em; +} +.kernel_busy_icon:before.pull-right { + margin-left: .3em; +} +.kernel_dead_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f1e2"; +} +.kernel_dead_icon:before.pull-left { + margin-right: .3em; +} +.kernel_dead_icon:before.pull-right { + margin-left: .3em; +} +.kernel_disconnected_icon:before { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f127"; +} +.kernel_disconnected_icon:before.pull-left { + margin-right: .3em; +} +.kernel_disconnected_icon:before.pull-right { + margin-left: .3em; +} +.notification_widget { + color: #777; + z-index: 10; + background: rgba(240, 240, 240, 0.5); + margin-right: 4px; + color: #333; + background-color: #fff; + border-color: #ccc; +} +.notification_widget:focus, +.notification_widget.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} +.notification_widget:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.notification_widget:active, +.notification_widget.active, +.open > .dropdown-toggle.notification_widget { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.notification_widget:active:hover, +.notification_widget.active:hover, +.open > .dropdown-toggle.notification_widget:hover, +.notification_widget:active:focus, +.notification_widget.active:focus, +.open > .dropdown-toggle.notification_widget:focus, +.notification_widget:active.focus, +.notification_widget.active.focus, +.open > .dropdown-toggle.notification_widget.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} +.notification_widget:active, +.notification_widget.active, +.open > .dropdown-toggle.notification_widget { + background-image: none; +} +.notification_widget.disabled:hover, +.notification_widget[disabled]:hover, +fieldset[disabled] .notification_widget:hover, +.notification_widget.disabled:focus, +.notification_widget[disabled]:focus, +fieldset[disabled] .notification_widget:focus, +.notification_widget.disabled.focus, +.notification_widget[disabled].focus, +fieldset[disabled] .notification_widget.focus { + background-color: #fff; + border-color: #ccc; +} +.notification_widget .badge { + color: #fff; + background-color: #333; +} +.notification_widget.warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.notification_widget.warning:focus, +.notification_widget.warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.notification_widget.warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.notification_widget.warning:active, +.notification_widget.warning.active, +.open > .dropdown-toggle.notification_widget.warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.notification_widget.warning:active:hover, +.notification_widget.warning.active:hover, +.open > .dropdown-toggle.notification_widget.warning:hover, +.notification_widget.warning:active:focus, +.notification_widget.warning.active:focus, +.open > .dropdown-toggle.notification_widget.warning:focus, +.notification_widget.warning:active.focus, +.notification_widget.warning.active.focus, +.open > .dropdown-toggle.notification_widget.warning.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} +.notification_widget.warning:active, +.notification_widget.warning.active, +.open > .dropdown-toggle.notification_widget.warning { + background-image: none; +} +.notification_widget.warning.disabled:hover, +.notification_widget.warning[disabled]:hover, +fieldset[disabled] .notification_widget.warning:hover, +.notification_widget.warning.disabled:focus, +.notification_widget.warning[disabled]:focus, +fieldset[disabled] .notification_widget.warning:focus, +.notification_widget.warning.disabled.focus, +.notification_widget.warning[disabled].focus, +fieldset[disabled] .notification_widget.warning.focus { + background-color: #f0ad4e; + border-color: #eea236; +} +.notification_widget.warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.notification_widget.success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.notification_widget.success:focus, +.notification_widget.success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.notification_widget.success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.notification_widget.success:active, +.notification_widget.success.active, +.open > .dropdown-toggle.notification_widget.success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.notification_widget.success:active:hover, +.notification_widget.success.active:hover, +.open > .dropdown-toggle.notification_widget.success:hover, +.notification_widget.success:active:focus, +.notification_widget.success.active:focus, +.open > .dropdown-toggle.notification_widget.success:focus, +.notification_widget.success:active.focus, +.notification_widget.success.active.focus, +.open > .dropdown-toggle.notification_widget.success.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} +.notification_widget.success:active, +.notification_widget.success.active, +.open > .dropdown-toggle.notification_widget.success { + background-image: none; +} +.notification_widget.success.disabled:hover, +.notification_widget.success[disabled]:hover, +fieldset[disabled] .notification_widget.success:hover, +.notification_widget.success.disabled:focus, +.notification_widget.success[disabled]:focus, +fieldset[disabled] .notification_widget.success:focus, +.notification_widget.success.disabled.focus, +.notification_widget.success[disabled].focus, +fieldset[disabled] .notification_widget.success.focus { + background-color: #5cb85c; + border-color: #4cae4c; +} +.notification_widget.success .badge { + color: #5cb85c; + background-color: #fff; +} +.notification_widget.info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.notification_widget.info:focus, +.notification_widget.info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.notification_widget.info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.notification_widget.info:active, +.notification_widget.info.active, +.open > .dropdown-toggle.notification_widget.info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.notification_widget.info:active:hover, +.notification_widget.info.active:hover, +.open > .dropdown-toggle.notification_widget.info:hover, +.notification_widget.info:active:focus, +.notification_widget.info.active:focus, +.open > .dropdown-toggle.notification_widget.info:focus, +.notification_widget.info:active.focus, +.notification_widget.info.active.focus, +.open > .dropdown-toggle.notification_widget.info.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} +.notification_widget.info:active, +.notification_widget.info.active, +.open > .dropdown-toggle.notification_widget.info { + background-image: none; +} +.notification_widget.info.disabled:hover, +.notification_widget.info[disabled]:hover, +fieldset[disabled] .notification_widget.info:hover, +.notification_widget.info.disabled:focus, +.notification_widget.info[disabled]:focus, +fieldset[disabled] .notification_widget.info:focus, +.notification_widget.info.disabled.focus, +.notification_widget.info[disabled].focus, +fieldset[disabled] .notification_widget.info.focus { + background-color: #5bc0de; + border-color: #46b8da; +} +.notification_widget.info .badge { + color: #5bc0de; + background-color: #fff; +} +.notification_widget.danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.notification_widget.danger:focus, +.notification_widget.danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.notification_widget.danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.notification_widget.danger:active, +.notification_widget.danger.active, +.open > .dropdown-toggle.notification_widget.danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.notification_widget.danger:active:hover, +.notification_widget.danger.active:hover, +.open > .dropdown-toggle.notification_widget.danger:hover, +.notification_widget.danger:active:focus, +.notification_widget.danger.active:focus, +.open > .dropdown-toggle.notification_widget.danger:focus, +.notification_widget.danger:active.focus, +.notification_widget.danger.active.focus, +.open > .dropdown-toggle.notification_widget.danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} +.notification_widget.danger:active, +.notification_widget.danger.active, +.open > .dropdown-toggle.notification_widget.danger { + background-image: none; +} +.notification_widget.danger.disabled:hover, +.notification_widget.danger[disabled]:hover, +fieldset[disabled] .notification_widget.danger:hover, +.notification_widget.danger.disabled:focus, +.notification_widget.danger[disabled]:focus, +fieldset[disabled] .notification_widget.danger:focus, +.notification_widget.danger.disabled.focus, +.notification_widget.danger[disabled].focus, +fieldset[disabled] .notification_widget.danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} +.notification_widget.danger .badge { + color: #d9534f; + background-color: #fff; +} +div#pager { + background-color: #fff; + font-size: 14px; + line-height: 20px; + overflow: hidden; + display: none; + position: fixed; + bottom: 0px; + width: 100%; + max-height: 50%; + padding-top: 8px; + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + /* Display over codemirror */ + z-index: 100; + /* Hack which prevents jquery ui resizable from changing top. */ + top: auto !important; +} +div#pager pre { + line-height: 1.21429em; + color: #000; + background-color: #f7f7f7; + padding: 0.4em; +} +div#pager #pager-button-area { + position: absolute; + top: 8px; + right: 20px; +} +div#pager #pager-contents { + position: relative; + overflow: auto; + width: 100%; + height: 100%; +} +div#pager #pager-contents #pager-container { + position: relative; + padding: 15px 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +div#pager .ui-resizable-handle { + top: 0px; + height: 8px; + background: #f7f7f7; + border-top: 1px solid #cfcfcf; + border-bottom: 1px solid #cfcfcf; + /* This injects handle bars (a short, wide = symbol) for + the resize handle. */ +} +div#pager .ui-resizable-handle::after { + content: ''; + top: 2px; + left: 50%; + height: 3px; + width: 30px; + margin-left: -15px; + position: absolute; + border-top: 1px solid #cfcfcf; +} +.quickhelp { + /* Old browsers */ + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: stretch; + display: -moz-box; + -moz-box-orient: horizontal; + -moz-box-align: stretch; + display: box; + box-orient: horizontal; + box-align: stretch; + /* Modern browsers */ + display: flex; + flex-direction: row; + align-items: stretch; + line-height: 1.8em; +} +.shortcut_key { + display: inline-block; + width: 20ex; + text-align: right; + font-family: monospace; +} +.shortcut_descr { + display: inline-block; + /* Old browsers */ + -webkit-box-flex: 1; + -moz-box-flex: 1; + box-flex: 1; + /* Modern browsers */ + flex: 1; +} +span.save_widget { + margin-top: 6px; +} +span.save_widget span.filename { + height: 1em; + line-height: 1em; + padding: 3px; + margin-left: 16px; + border: none; + font-size: 146.5%; + border-radius: 2px; +} +span.save_widget span.filename:hover { + background-color: #e6e6e6; +} +span.checkpoint_status, +span.autosave_status { + font-size: small; +} +@media (max-width: 767px) { + span.save_widget { + font-size: small; + } + span.checkpoint_status, + span.autosave_status { + display: none; + } +} +@media (min-width: 768px) and (max-width: 991px) { + span.checkpoint_status { + display: none; + } + span.autosave_status { + font-size: x-small; + } +} +.toolbar { + padding: 0px; + margin-left: -5px; + margin-top: 2px; + margin-bottom: 5px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +.toolbar select, +.toolbar label { + width: auto; + vertical-align: middle; + margin-right: 2px; + margin-bottom: 0px; + display: inline; + font-size: 92%; + margin-left: 0.3em; + margin-right: 0.3em; + padding: 0px; + padding-top: 3px; +} +.toolbar .btn { + padding: 2px 8px; +} +.toolbar .btn-group { + margin-top: 0px; + margin-left: 5px; +} +#maintoolbar { + margin-bottom: -3px; + margin-top: -8px; + border: 0px; + min-height: 27px; + margin-left: 0px; + padding-top: 11px; + padding-bottom: 3px; +} +#maintoolbar .navbar-text { + float: none; + vertical-align: middle; + text-align: right; + margin-left: 5px; + margin-right: 0px; + margin-top: 0px; +} +.select-xs { + height: 24px; +} +.pulse, +.dropdown-menu > li > a.pulse, +li.pulse > a.dropdown-toggle, +li.pulse.open > a.dropdown-toggle { + background-color: #F37626; + color: white; +} +/** + * Primary styles + * + * Author: Jupyter Development Team + */ +/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot + * of chance of beeing generated from the ../less/[samename].less file, you can + * try to get back the less file by reverting somme commit in history + **/ +/* + * We'll try to get something pretty, so we + * have some strange css to have the scroll bar on + * the left with fix button on the top right of the tooltip + */ +@-moz-keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +@-moz-keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +/*properties of tooltip after "expand"*/ +.bigtooltip { + overflow: auto; + height: 200px; + -webkit-transition-property: height; + -webkit-transition-duration: 500ms; + -moz-transition-property: height; + -moz-transition-duration: 500ms; + transition-property: height; + transition-duration: 500ms; +} +/*properties of tooltip before "expand"*/ +.smalltooltip { + -webkit-transition-property: height; + -webkit-transition-duration: 500ms; + -moz-transition-property: height; + -moz-transition-duration: 500ms; + transition-property: height; + transition-duration: 500ms; + text-overflow: ellipsis; + overflow: hidden; + height: 80px; +} +.tooltipbuttons { + position: absolute; + padding-right: 15px; + top: 0px; + right: 0px; +} +.tooltiptext { + /*avoid the button to overlap on some docstring*/ + padding-right: 30px; +} +.ipython_tooltip { + max-width: 700px; + /*fade-in animation when inserted*/ + -webkit-animation: fadeOut 400ms; + -moz-animation: fadeOut 400ms; + animation: fadeOut 400ms; + -webkit-animation: fadeIn 400ms; + -moz-animation: fadeIn 400ms; + animation: fadeIn 400ms; + vertical-align: middle; + background-color: #f7f7f7; + overflow: visible; + border: #ababab 1px solid; + outline: none; + padding: 3px; + margin: 0px; + padding-left: 7px; + font-family: monospace; + min-height: 50px; + -moz-box-shadow: 0px 6px 10px -1px #adadad; + -webkit-box-shadow: 0px 6px 10px -1px #adadad; + box-shadow: 0px 6px 10px -1px #adadad; + border-radius: 2px; + position: absolute; + z-index: 1000; +} +.ipython_tooltip a { + float: right; +} +.ipython_tooltip .tooltiptext pre { + border: 0; + border-radius: 0; + font-size: 100%; + background-color: #f7f7f7; +} +.pretooltiparrow { + left: 0px; + margin: 0px; + top: -16px; + width: 40px; + height: 16px; + overflow: hidden; + position: absolute; +} +.pretooltiparrow:before { + background-color: #f7f7f7; + border: 1px #ababab solid; + z-index: 11; + content: ""; + position: absolute; + left: 15px; + top: 10px; + width: 25px; + height: 25px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); +} +ul.typeahead-list i { + margin-left: -10px; + width: 18px; +} +ul.typeahead-list { + max-height: 80vh; + overflow: auto; +} +ul.typeahead-list > li > a { + /** Firefox bug **/ + /* see https://github.com/jupyter/notebook/issues/559 */ + white-space: normal; +} +.cmd-palette .modal-body { + padding: 7px; +} +.cmd-palette form { + background: white; +} +.cmd-palette input { + outline: none; +} +.no-shortcut { + display: none; +} +.command-shortcut:before { + content: "(command)"; + padding-right: 3px; + color: #777777; +} +.edit-shortcut:before { + content: "(edit)"; + padding-right: 3px; + color: #777777; +} +#find-and-replace #replace-preview .match, +#find-and-replace #replace-preview .insert { + background-color: #BBDEFB; + border-color: #90CAF9; + border-style: solid; + border-width: 1px; + border-radius: 0px; +} +#find-and-replace #replace-preview .replace .match { + background-color: #FFCDD2; + border-color: #EF9A9A; + border-radius: 0px; +} +#find-and-replace #replace-preview .replace .insert { + background-color: #C8E6C9; + border-color: #A5D6A7; + border-radius: 0px; +} +#find-and-replace #replace-preview { + max-height: 60vh; + overflow: auto; +} +#find-and-replace #replace-preview pre { + padding: 5px 10px; +} +.terminal-app { + background: #EEE; +} +.terminal-app #header { + background: #fff; + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2); +} +.terminal-app .terminal { + float: left; + font-family: monospace; + color: white; + background: black; + padding: 0.4em; + border-radius: 2px; + -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); + box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4); +} +.terminal-app .terminal, +.terminal-app .terminal dummy-screen { + line-height: 1em; + font-size: 14px; +} +.terminal-app .terminal-cursor { + color: black; + background: white; +} +.terminal-app #terminado-container { + margin-top: 20px; +} +/*# sourceMappingURL=style.min.css.map */ + </style> +<style type="text/css"> + .highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #408080; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ +.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #7D9029 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #A0A000 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ + </style> +<style type="text/css"> + +/* Temporary definitions which will become obsolete with Notebook release 5.0 */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-bold { font-weight: bold; } + + </style> + + +<style type="text/css"> +/* Overrides of notebook CSS for static HTML export */ +body { + overflow: visible; + padding: 8px; +} + +div#notebook { + overflow: visible; + border-top: none; +} + +@media print { + div.cell { + display: block; + page-break-inside: avoid; + } + div.output_wrapper { + display: block; + page-break-inside: avoid; + } + div.output { + display: block; + page-break-inside: avoid; + } +} +</style> + +<!-- Custom stylesheet, it must be in the same directory as the html file --> +<link rel="stylesheet" href="custom.css"> + +<!-- Loading mathjax macro --> +<!-- Load mathjax --> + <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script> + <!-- MathJax configuration --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + tex2jax: { + inlineMath: [ ['$','$'], ["\\(","\\)"] ], + displayMath: [ ['$$','$$'], ["\\[","\\]"] ], + processEscapes: true, + processEnvironments: true + }, + // Center justify equations in code and markdown cells. Elsewhere + // we use CSS to left justify single line equations in code cells. + displayAlign: 'center', + "HTML-CSS": { + styles: {'.MathJax_Display': {"margin": 0}}, + linebreaks: { automatic: true } + } + }); + </script> + <!-- End of mathjax configuration --></head> +<body> + <div tabindex="-1" id="notebook" class="border-box-sizing"> + <div class="container" id="notebook-container"> + +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [1]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">warnings</span> +<span class="n">warnings</span><span class="o">.</span><span class="n">simplefilter</span><span class="p">(</span><span class="s2">"ignore"</span><span class="p">)</span> + +<span class="kn">import</span> <span class="nn">mhcflurry</span> +<span class="kn">import</span> <span class="nn">numpy</span> +<span class="kn">import</span> <span class="nn">seaborn</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">pandas</span> +<span class="kn">from</span> <span class="nn">os</span> <span class="k">import</span> <span class="n">environ</span> +<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="k">import</span> <span class="n">pyplot</span> +<span class="kn">from</span> <span class="nn">mhcflurry.downloads</span> <span class="k">import</span> <span class="n">get_path</span> + +<span class="o">%</span> <span class="n">matplotlib</span> <span class="n">inline</span> + +<span class="kn">import</span> <span class="nn">IPython.core.display</span> <span class="k">as</span> <span class="nn">display</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt"></div> +<div class="output_subarea output_stream output_stderr output_text"> +<pre>Using Theano backend. +/Users/tim/miniconda3/envs/py3k/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20. + "This module will be removed in 0.20.", DeprecationWarning) +</pre> +</div> +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [2]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">IPython.core.display</span> <span class="k">as</span> <span class="nn">di</span> + +<span class="c1"># This line will hide code by default when the notebook is exported as HTML</span> +<span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s1">'<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle(); jQuery("div.output_stderr").toggle();}});</script>'</span><span class="p">,</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt"></div> + +<div class="output_html rendered_html output_subarea "> +<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle(); jQuery("div.output_stderr").toggle();}});</script> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing text_cell rendered"> +<div class="prompt input_prompt"> +</div> +<div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<h1 id="MHCflurry-models">MHCflurry models<a class="anchor-link" href="#MHCflurry-models">¶</a></h1><h2 id="Class-1-allele-specific-ensemble-models">Class 1 allele specific ensemble models<a class="anchor-link" href="#Class-1-allele-specific-ensemble-models">¶</a></h2><p>This report describes the models published with MHCflurry for Class I affinity prediction. These models were trained on the "data_combined_iedb_kim2014" affinity measurement dataset (mostly from IEDB) distributed with MHCflurry.</p> +<p>Each allele's predictor is an ensemble of 16 models. The models were trained on a random 1/2 of the data for the allele and tested on the other half. The best performing model in terms of sum of AUC (at 500nM), F1, and Kendall Tau for each 50/50 split of the data was selected for inclusion in the ensemble.</p> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [3]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_models_df</span> <span class="o">=</span> <span class="n">pandas</span><span class="o">.</span><span class="n">read_csv</span><span class="p">(</span><span class="n">get_path</span><span class="p">(</span><span class="s2">"models_class1_allele_specific_ensemble"</span><span class="p">,</span> <span class="s2">"all_models.csv.bz2"</span><span class="p">))</span> +<span class="n">all_models_df</span><span class="p">[</span><span class="s2">"hyperparameters_layer_sizes"</span><span class="p">]</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="p">[</span><span class="s2">"hyperparameters_layer_sizes"</span><span class="p">]</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="nb">eval</span><span class="p">)</span> + +<span class="n">full_training_data</span> <span class="o">=</span> <span class="n">mhcflurry</span><span class="o">.</span><span class="n">affinity_measurement_dataset</span><span class="o">.</span><span class="n">AffinityMeasurementDataset</span><span class="o">.</span><span class="n">from_csv</span><span class="p">(</span> + <span class="n">get_path</span><span class="p">(</span><span class="s2">"data_combined_iedb_kim2014"</span><span class="p">,</span> <span class="s2">"combined_human_class1_dataset.csv"</span><span class="p">))</span> + +<span class="n">training_sizes</span> <span class="o">=</span> <span class="n">full_training_data</span><span class="o">.</span><span class="n">to_dataframe</span><span class="p">()</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">value_counts</span><span class="p">()</span> + +<span class="n">all_models_df</span><span class="p">[</span><span class="s2">"train_size"</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="p">]</span><span class="o">.</span><span class="n">values</span> + +<span class="p">(</span><span class="n">ensemble_size</span><span class="p">,)</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ensemble_size</span><span class="o">.</span><span class="n">value_counts</span><span class="p">()</span><span class="o">.</span><span class="n">index</span> +<span class="n">ensemble_size</span> + +<span class="n">selected_models_df</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">></span> <span class="mi">0</span><span class="p">]</span> +<span class="n">selected_models_df</span><span class="o">.</span><span class="n">shape</span> + +<span class="n">alleles</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">sort_values</span><span class="p">()</span><span class="o">.</span><span class="n">index</span> <span class="k">if</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">values</span><span class="p">]</span> +</pre></div> + +</div> +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [4]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">training_sizes_for_included_alleles</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span> + <span class="n">training_sizes</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">isin</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="p">)</span> +<span class="p">]</span> + +<span class="n">lines</span> <span class="o">=</span> <span class="p">[]</span> +<span class="k">def</span> <span class="nf">row</span><span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> + <span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'<tr><td><b></span><span class="si">%s</span><span class="s1"></b></td><td></span><span class="si">%s</span><span class="s1"></td></tr>'</span> <span class="o">%</span> <span class="p">(</span><span class="n">label</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span> + +<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'<h1>Models summary</h1>'</span><span class="p">)</span> +<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'<table>'</span><span class="p">)</span> + +<span class="n">row</span><span class="p">(</span><span class="s2">"Num Alleles"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">allele</span><span class="o">.</span><span class="n">nunique</span><span class="p">()))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Ensemble size"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ensemble_size</span><span class="p">))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Num architectures"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">hyperparameters_architecture_num</span><span class="o">.</span><span class="n">nunique</span><span class="p">()))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Num selected models"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">((</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">sum</span><span class="p">()))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Total models tested"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">all_models_df</span><span class="p">)))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Total training measurements"</span><span class="p">,</span> <span class="s2">"</span><span class="si">{:,d}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">sum</span><span class="p">()))</span> +<span class="n">row</span><span class="p">(</span><span class="s2">"Training measurement per allele"</span><span class="p">,</span> + <span class="s2">"min=</span><span class="si">{:,g}</span><span class="s2">; max=</span><span class="si">{:,g}</span><span class="s2">; median=</span><span class="si">{:,g}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">min</span><span class="p">(),</span> + <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">max</span><span class="p">(),</span> + <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">median</span><span class="p">()))</span> + + +<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'</table>'</span><span class="p">)</span> +<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"<p><b>Alleles included: </b></span><span class="si">%s</span><span class="s2"></p>"</span> <span class="o">%</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="n">training_sizes_for_included_alleles</span><span class="o">.</span><span class="n">index</span><span class="p">))</span> + + +<span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt"></div> + +<div class="output_html rendered_html output_subarea "> +<h1>Models summary</h1> +<table> +<tr><td><b>Num Alleles</b></td><td>132</td></tr> +<tr><td><b>Ensemble size</b></td><td>16</td></tr> +<tr><td><b>Num architectures</b></td><td>162</td></tr> +<tr><td><b>Num selected models</b></td><td>2,112</td></tr> +<tr><td><b>Total models tested</b></td><td>342,144</td></tr> +<tr><td><b>Total training measurements</b></td><td>192,177</td></tr> +<tr><td><b>Training measurement per allele</b></td><td>min=26; max=12,357; median=721.5</td></tr> +</table> +<p><b>Alleles included: </b>HLA-A0201 HLA-A0301 HLA-A0203 HLA-A1101 H-2-KB HLA-A3101 HLA-A0206 HLA-A6802 H-2-DB HLA-A0101 HLA-B0702 HLA-A2601 HLA-B1501 HLA-A0202 HLA-A6801 HLA-A3301 HLA-B2705 HLA-B0801 HLA-A2402 HLA-B4001 HLA-B3501 HLA-B5801 HLA-B5101 HLA-B5701 HLA-A3001 HLA-B1801 HLA-A2902 Mamu-A01 HLA-A6901 HLA-A2301 HLA-B4402 Mamu-A100101 HLA-A3002 HLA-B4601 Mamu-B17 HLA-B3901 HLA-B5301 HLA-B1517 HLA-B4403 Mamu-A02 Mamu-B01704 Mamu-A11 HLA-A0219 HLA-A2403 HLA-B5401 HLA-A0212 HLA-A8001 Mamu-B03 HLA-A3201 Mamu-B08 H-2-KD HLA-A0211 HLA-B4501 HLA-B4002 HLA-B0802 HLA-A2501 HLA-A0216 Patr-B0101 Mamu-A101101 Mamu-B52 HLA-B4801 Mamu-B01 HLA-B2703 HLA-B1509 Patr-A0901 H-2-KK HLA-B1503 Mamu-A2201 Mamu-A07 Patr-A0701 HLA-A2602 H-2-DD Mamu-A100201 HLA-A2603 Patr-A0101 HLA-C0401 HLA-B3801 H-2-LD HLA-B0803 Mamu-B3901 Mamu-B8301 Patr-B2401 HLA-C0602 Patr-A0301 HLA-B1542 HLA-B4506 HLA-A0217 HLA-B8301 Patr-A0401 Patr-B1301 HLA-B3503 HLA-C1402 HLA-EQCA100101 HLA-B4201 Mamu-A2601 HLA-B1402 HLA-C1502 HLA-C1203 HLA-C0501 HLA-B1502 HLA-C0303 Mamu-B1001 Mamu-B8701 Mamu-A20102 HLA-C0702 HLA-RT1A HLA-A0250 HLA-B7301 HLA-A0205 Mamu-A70103 Mamu-B6601 HLA-B2720 HLA-A3207 HLA-C0802 HLA-A6823 HLA-B7 HLA-A6601 HLA-A0207 HLA-A2 HLA-A11 HLA-A3215 HLA-B3701 HLA-E0103 HLA-BOLA601301 HLA-B4013 HLA-BOLAHD6 HLA-B5802 HLA-B1401 HLA-B5703 HLA-A0319 HLA-B8101 HLA-A0302</p> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [5]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">architecture_num_to_row</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"hyperparameters_architecture_num"</span><span class="p">)</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">df</span><span class="p">:</span> <span class="n">df</span><span class="o">.</span><span class="n">iloc</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + +<span class="n">hyperparameters</span> <span class="o">=</span> <span class="p">[</span> + <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="o">.</span><span class="n">columns</span> + <span class="k">if</span> <span class="n">x</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"hyperparameters_"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">pandas</span><span class="o">.</span><span class="n">Series</span><span class="p">([</span> + <span class="nb">str</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> + <span class="p">])</span><span class="o">.</span><span class="n">nunique</span><span class="p">()</span> <span class="o">></span> <span class="mi">1</span> +<span class="p">]</span> +<span class="n">architecture_num_to_hyperparameters</span> <span class="o">=</span> <span class="p">{}</span> +<span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">architecture_num_to_row</span><span class="o">.</span><span class="n">iterrows</span><span class="p">():</span> + <span class="n">architecture_num_to_hyperparameters</span><span class="p">[</span><span class="n">row</span><span class="o">.</span><span class="n">hyperparameters_architecture_num</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span> + <span class="n">row</span><span class="p">[</span><span class="n">hyperparameters</span><span class="p">]</span><span class="o">.</span><span class="n">to_dict</span><span class="p">())</span> +</pre></div> + +</div> +</div> +</div> + +</div> +<div class="cell border-box-sizing text_cell rendered"> +<div class="prompt input_prompt"> +</div> +<div class="inner_cell"> +<div class="text_cell_render border-box-sizing rendered_html"> +<h1 id="Best-models">Best models<a class="anchor-link" href="#Best-models">¶</a></h1><p>This table gives the models most often selected for alleles with less than or equal to the given number of training samples.</p> + +</div> +</div> +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [6]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">result_df</span> <span class="o">=</span> <span class="p">[]</span> +<span class="n">cutoffs</span> <span class="o">=</span> <span class="p">[</span><span class="mi">100</span><span class="p">,</span> <span class="mi">500</span><span class="p">,</span> <span class="mi">1000</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">inf</span><span class="p">]</span> +<span class="k">for</span> <span class="n">cutoff</span> <span class="ow">in</span> <span class="n">cutoffs</span><span class="p">:</span> + <span class="n">selected_rates</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span> + <span class="n">all_models_df</span><span class="o">.</span><span class="n">train_size</span> <span class="o"><=</span> <span class="n">cutoff</span> + <span class="p">]</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"hyperparameters_architecture_num"</span><span class="p">)</span><span class="o">.</span><span class="n">weight</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">best_architecture</span> <span class="o">=</span> <span class="n">selected_rates</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">d</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span> + <span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"hyperparameters_"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="ow">in</span> + <span class="n">architecture_num_to_hyperparameters</span><span class="p">[</span><span class="n">best_architecture</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> + <span class="n">d</span><span class="p">[</span><span class="s2">"architecture selection rate (%)"</span><span class="p">]</span> <span class="o">=</span> <span class="n">selected_rates</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">best_architecture</span><span class="p">]</span> <span class="o">*</span> <span class="mi">100</span> + <span class="n">result_df</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> +<span class="n">result_df</span> <span class="o">=</span> <span class="n">pandas</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">result_df</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">cutoffs</span><span class="p">)</span> +<span class="n">result_df</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="s2">"Training size cutoff"</span> +<span class="n">result_df</span><span class="o">.</span><span class="n">T</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[6]:</div> + +<div class="output_html rendered_html output_subarea output_execute_result"> +<div> +<table border="1" class="dataframe"> + <thead> + <tr style="text-align: right;"> + <th>Training size cutoff</th> + <th>100.0</th> + <th>500.0</th> + <th>1000.0</th> + <th>inf</th> + </tr> + </thead> + <tbody> + <tr> + <th>architecture selection rate (%)</th> + <td>3.27381</td> + <td>2.04545</td> + <td>2.27273</td> + <td>3.64583</td> + </tr> + <tr> + <th>architecture_num</th> + <td>112</td> + <td>81</td> + <td>112</td> + <td>27</td> + </tr> + <tr> + <th>dropout_probability</th> + <td>0.1</td> + <td>0</td> + <td>0.1</td> + <td>0.1</td> + </tr> + <tr> + <th>embedding_output_dim</th> + <td>8</td> + <td>8</td> + <td>8</td> + <td>8</td> + </tr> + <tr> + <th>fraction_negative</th> + <td>0.1</td> + <td>0</td> + <td>0.1</td> + <td>0</td> + </tr> + <tr> + <th>impute</th> + <td>True</td> + <td>True</td> + <td>True</td> + <td>False</td> + </tr> + <tr> + <th>layer_sizes</th> + <td>[64]</td> + <td>[12]</td> + <td>[64]</td> + <td>[12]</td> + </tr> + </tbody> +</table> +</div> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [7]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">all_scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">dropna</span><span class="p">()</span> +<span class="n">selected_scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">all_models_df</span><span class="o">.</span><span class="n">weight</span> <span class="o">></span> <span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">dropna</span><span class="p">()</span> + +<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> +<span class="n">seaborn</span><span class="o">.</span><span class="n">distplot</span><span class="p">(</span><span class="n">all_scores</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"All. Mean=</span><span class="si">%0.2f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">all_scores</span><span class="o">.</span><span class="n">mean</span><span class="p">())</span> +<span class="n">seaborn</span><span class="o">.</span><span class="n">distplot</span><span class="p">(</span><span class="n">selected_scores</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">"Selected. Mean=</span><span class="si">%0.2f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">selected_scores</span><span class="o">.</span><span class="n">mean</span><span class="p">())</span> +<span class="c1">#seaborn.set_context('talk')</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">'upper left'</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">"x-large"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"AUC"</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">"x-large"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"AUCs across models and alleles"</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="s2">"xx-large"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[7]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x1177537b8></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +JCX1ZeLEySxc+Bg7d+4gJWU7f/7z3UyaNLnZJE0IIYTwpy7bUuWwde6klu093urV1pNv4eERTbad +d96FvPvuW3z22UoSEvo0u/8111zG8cefwD33/KXZ7fVbjpQaTnR0L4YPH0FwcHCTsiEhISxa9DRL +liziuuuuICQklMmTp3LjjX8E4IILLiYtbQ933XUrmqYxbJji9tvv4e9//yt5eblNjtceF110KUVF +RTz88F8wDINp02bwhz/cWrd98eIn2LRpI//73/sALFjwIM8//wwPPHAvlZWVjB07jqee+mfd+f3l +Lw/x9NNPcscdt1BdXc20aTO4+eY/HVWMQgghREfQjrZlwktmbm7LrTXNFO+wQI6sa81Q3hXExUXS +tvsnuhK5f4FL7l1gk/sXuOLiItuVDHTRlipJbIQQQggRWLpoUiWEEEII77W3h0caMXxJkiohhBCi +G1iXsxGXYXhV1mGzMSFh/JELijaRpEoIIYToBlyGgdt0e1fYu9xLtJFMqSCEEEII4QOSVAkhhBBC ++IAkVUIIIYQQPiBJlRBCCCGED0hSJYQQQgjhA100qTL9uLSN2+3m5Zdf4je/+TUzZ07izDNP4/77 +7yU7O8vrOh555AEWLLirzcduztdfryE391C793/mmcXcdNN1XpXNyTnAlCkTmD79FIqLi5ts//bb +tUyZMsFn5+YLLpeLRYv+xq9+NYv582fz7LNLWn3fYXFxMQ8+uID582dz7rnzePHF5xuUb2t9Qggh +uq8uO6VCW+bb8IX2ztnx/PNPs3btV9xyyx307z+AwsICli79N7///TW88sr/mn0nYEfJycnh3ntv +Z/nyN4iL693uetr6/j+bzca3337NGWfMb7B+zZrPsdm6Vt7+z38+zbp1P7Jw4RLKy8t58MEFRERE +cNllVzVb/p57bqOkpJi//e1JbDaNxx57mKqqKm644Q/tqk8IIUT31bW+8eqpnW+js5b2JnAff/wB +V155LSeddAoJCQkMHz6Shx56lPLycr7+eo1vL8oRmKZx1C9Ebo9x405ocq5ut5vvvlvLqFHHdXo8 +Lamurub999/mpptuZcSIUZxwwgSuv/5G3n77jWbLp6buZMuWTSxY8BCjRo1mxIhR3HHHvbz11utU +VVW2uT4hhBDdW5dtqQoUmmZjw4afmDVrDna7HYDg4BCWLXuF6OjounIrVnzE8uVLyc09RHLyQK6+ ++jomTpzcbJ3ff/8t//rXM2Rk7CMpqS8XX/xb5s07s277l19+xn/+s5TMzH307duPa6/9PaeeOoUL +LzwbTdO4/PKLufLKa7jyymvYvv1nnn76H+j6TuLj4znzzHO45JL/q0u+fvjhO557bgnZ2VmceOJJ +REf3avM1mDp1Os888yRVVVUEBwcDsHHjeuLi4unbtx8VFRV1ZY8Uz6pVK3jlleVkZu7D6XQyfvyJ +3HHHfURHR7Np0wYWLLiTG2+8hRdffJ6CgnzGjz+Re+65n+joaJYu/RfLlv27mXuksWTJP3E6g6iq +qmLcuOPrto0bN57Dhw+TnZ1FUlLfBvtlZ2cREhLCkCFD69YNGTKUmpoadu5MweFwtqk+IYQQ3VuX +bakKFBdffCmffPIh5503j0ceeYAVKz7i8OECkpL6EhYWDsCPP37PU0/9g2uvvYHly9/g7LPPY8GC +u9i+/ecm9aWl7WHBgjv59a8v5OWX3+SKK67hmWee5PPPVwNWsnL//fcyb958li9/g3nzzmTBgrvI +yNjHv//9H0zT5Kmn/sUll/wfhw8f5k9/uolTT53Cf//7Jn/84+28++5bvPrqcgAyMvZx991/YsaM +2bz00mscd9xYPv74/Tadv6ZpjBkzlrCwMH788fu69V999SXTp89sUPbw4YJW4/n55608+uiDXHrp +5bz22js8+ugTpKbqvPzy0ro6SkpK+PDD93jkkYUsWfI8O3em1G3/zW8u44MPVjZZ3n9/JaNHjyEv +7xDBwSF19wUgJqYXpmly6NDBJucWExNLVVUVxcVFdetycg4AUFh4uM31CSGE6N6kpeoo/fa3V9Cv +XzLvvfcWn322kk8//RhN0zj33PO5+ebb0DSNl19exiWX/B8zZswG4KyzzmXnzh288cYrPPjgow3q +e+21l5k7dx7z558DQGJiEtnZmbz++n+ZNWsO7777FlOmTOPCC38DwEUXXUplZSUVFRX07Gm1jEVF +RRESEsIrr/yHkSNH89vfXlFX17XX3sDixU9w6aWX89FH7zNkyDCuuOJqAC699HI2btxATU11m66B +ptmYPHkaa9euYerU6Zimydq1a3jyyWd57bWX68q9887/Wo0nKCiIO++8j9NOOx2A+PgEpkyZRlra +nro6TNPkpptuYejQYQCcdtoZ7NhhJachISGEhIS0GGdlZSXBwUEN1gUFWf+uqalpUn7UqNEkJvbl +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 +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [8]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"allele"</span><span class="p">)</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">"scores_auc"</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +<span class="n">scores</span><span class="p">[</span><span class="s2">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">scores</span><span class="o">.</span><span class="n">allele</span><span class="p">]</span><span class="o">.</span><span class="n">values</span> + +<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">30</span><span class="p">))</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Mean AUC over all models"</span><span class="p">)</span> +<span class="n">seaborn</span><span class="o">.</span><span class="n">barplot</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="s2">"allele"</span><span class="p">,</span> <span class="n">x</span><span class="o">=</span><span class="s2">"scores_auc"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">orient</span><span class="o">=</span><span class="s2">"h"</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span> + +<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Mean AUC over all models"</span><span class="p">)</span> +<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s2">"size"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s2">"scores_auc"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">logx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mf">1.0</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[8]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre>(0.5, 1.0)</pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAq0AAAbECAYAAADW6C0qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz +AAALEgAACxIB0t1+/AAAIABJREFUeJzs3X+4nFV57vFvCL80JGjKURRPx3RvvT1FQbEViAQk4sYq +LVVsSzAeEIwGDT1tAak9rfzQkqIV0JZyEE+pvyCVQ2ItoAQJrUajoKGYqrlbixkp2qJEIAWFMNnn +j7WmTMe9s5MQsvfM3J/rmmtm3nne9a53Ly59smbNeqaNjo4SERERETGV7TbZHYiIiIiImEiS1oiI +iIiY8pK0RkRERMSUl6Q1IiIiIqa8JK0RERERMeUlaY2IiIiIKW/3ye5ARMRkktQAvgt8wfYruj67 +CjgZ2M/2xl3Unw8AS4A5tr/f1Zd1ti/uit8EHGj7e/X9ycDbgL2BPYHVwDm2H9gV/d9ekm4F/gz4 +OvCPtmfugmv+GfBD2xdsJaaxq/oTEdsmM60REfBT4PmS/nv7gKSnAi8Hdtlm1pL2At4EXAucsY2n +/Wf/JP0BcCrwa7YPAQ4GHgM+s5O7+mSZahuHT7X+RAy0zLRGREAL+GtgIbC0Hns98DfA77WDJB0H +/CGwB/AwcLbtr0h6BnAF8Axgf6AJ/KbtH0n6LvBXwCuB/w58yvY54/RjAfAd4GLgZknn2/7pBH2f +Vvv2VOBdwMG2fwRguyXpLOB1kna3/VjniZJ+HXg3ZQLjwXqvX6/9/3Xba2vcNcDf2b6iJsavr+ds +AN5u+9/qjOlGQMDlti/ruM5TgcuB5wGzgU3ASbb/eYJ7a894rqqPwyn/v3U2ZTb5BcDXbJ84zv2c +aft2STOBjwAHAT+gjPcP6znPBv6cMjZ7AMts/0lXH15Qz9+r/r3/r+3LJ+p7ROxcmWmNiCgzah+j +JK1tJwNXtd9IGgYuBH7F9kspSdNySU8BTgS+bPvltoeAn1BmTNtm2D6SMnN7Rk3ExrIY+HhNFr9f ++7CtXgA8ZPuuzoO2f2r7mjESVlESydfZfjFwLmVGdgbwf4E317inA8cAV0t6E/Ai4GV1JvezNbZt +o+0Xdias1a8AP7Y91/YLgK9RlkBsqznAp22/kJK8Xgr8FnAgME/SYePcz99I2ge4AHjY9v8AfpOS +WLd9nJKE/jJwKPAqSW/ouv5ZwGdqzGuBedvR94jYSZK0RkQAtu8Atkh6iaTnAPvY/hZ1JhN4FWUW +9RZJdwCfpHz1Pmz7Q8AaSb8r6S8oydQ+Hc3/Tb3G94F7KbON/4WkQ4AXA8vqoY8Bv9MRsmWcru9G +mTncwvb9b/p84PO2m7Vvt9a+vZSSrP+GpN0ps79/a3sTcBwlsft6/Rssocyetn1xrAvZvg74qKQl +ki4FXsF//ftM5FHbN9TX/0L5B8JDth+hJPezx7mffwd+iTLL/bF6/EfACvjPGeCjgPfU+/kKZcb1 +xV3XXwG8U9J1lFnm396OvkfETpKkNSLicR+nzJC+qb6Gx9c1TgdusX2I7ZfYfgkwF/impIuA8ylJ +3xXAzTye7EKZeaWjvc7P2t4ObKYkhHdR1rQ+T9Kr6+c/An6u84T6tfdewI+BbwF7SPqFrpi9JN0g +af+u6431v/+7AXvUH3WtBX4VOAX4cMff4KKO+/8l4IiO8/9jjDaRdDplRvYhSrJ/zTh/g/E82vV+ +8zh9725zOmU5wZauzx7r+Bzg8I57Opwyo/6fasL8PMoSkhcD/yhpznb0PyJ2giStERGPJzSfAH6D +8hXy1V2frQJG6tfQSHoNcCclaRwBLrX9SUpy+SoeT4gmJOlplCUGr7X9C/Xx85QEr72m9rPAb0p6 +Vsepv0PZ9eBh248CFwF/WdfYtn/YdSnwVNv/1nXZ9v08t8bOB54DfLV+/hHgHOAptr9Sj90EvKUm +ywDv5fHkfmtGgKtsXwX8MyUZHuvvM14iuy0J7irKV/vPhZ+5n5uA0yRNq8sdjgeos8dfoXz93x6H +L7U/b5P0SeBE258C3gE8QJmRjYhdKElrRESdTa1f338L+Cfb93d99i3grcCy+lXy+cCv2v4JZc3k +ByTdDvw/ytfkw53nd1+ry/8Evmn7C13H3wu8QtIv2v47SlJ6o6S1kr4N/A/K1/fUPv4JcB1wk6S1 +wB31esd3tYvtb1Nmd1dI+gZldvG4mshBWd/aoCSvbR8Brge+Imkd8EIeX3e7tV/a/ymwuPbpZsqP +vcb6+4zXxtbabo/P1u7nPMrs6rcpSzW+0XH+G4HD6jlrgE/avqbrGu8B3tixhGD5GGMVEU+yaaOj +2dEjIiIiIqa2zLRGRERExJSXpDUiIiIiprwkrREREREx5SVpjYiIiIgpL2Vc+8Sjjz46+sADE1V7 +jKlo3333JmPXuzJ+vStj19syflPN9my9DP/tv83cvhNI0to3fuVXfoVmsznZ3YiIiIgB0mg0WLZs +xS65Vt8nrZKOAhbbXtBxbCmwvh4/fJzz7gBW2z5jnM+vAg4B7gP2Bu4CTrbdkrSIsp/jZuCPbd8g +aRalPOM+wE+BhbbvlXQYZfPvzcDNti+o7b+PUmlmOnCl7Y+wFc1mk3/5l3/Ztj9KRERERI8ZlDWt +423uPeYmtZLmAuuA+ZJmbKXds23Ptz2XMi9+vKRnUsovHg68GlgqaQ9KKcRv2D4S+BRwdm3jckql +lXnAoZIOlvQKYKi2Ow84R9K+23XHEREREX1kUJLW7nUTE62jWARcC6ygJJtbbVfSdGAWpe74yygz +tI/ZfpBSsvAgShI8q543C9hcSyHuaXtDPX4TcAzwZeDUjuvsxti1tiMiIiIGQt8vD6jmS1pVX08D +5gDnjhVYE8kjgNMoSwhWAJeN0+5Fks4BDgAeptQh/zVKXeq2/wD2pdQjH5H0TeDplBnUWcCDHbGb +gDm1hvijknYH/gq4wvbD23PDEREREf1kUJLWW2yf1H4j6cKtxC6kJLbX1+f9JR0NzAaWUJYUnFlj +32l7ZW3zfOBiSl3rWR3tzQTupyTJF9m+UtKLgOWU5HisWCQ9nTLbu8r2+3bkpiMiIiL6xaAkrd2m +dT13Og04zvZ6AEkLgCW2TwCuawdJ6j7/bqAB3A78saQ9gacALwD+EdjI4zOwPwRm2t4k6RFJc4AN +wLHAeZL2Bj4P/Knta5747UZERET0tkFNWkfr40BJt1GSz1HgLIB2wlotBy6RdIDte7raaS8P2EJZ +d3qq7X+X9CFgdW33D2w/KundwEckvYPyd39LbeN04Op6/k22b5f0O5QlDIskvbX27c22s6dVRERE +DKRpo6Nj/oA+eszw8PBotryKiIiIXWloaIg1a9aS4gKxzRqNxmR3ISIiIgbMrsw/MtPaJ1qt1ujG +jQ9NdjdiB8yePYOMXe/K+PWujF1vy/hNNZlpjW00ffp0tvc/mJgaMna9LePXuzJ2vS3jN3iStPaJ +VqvFOAW+YorL2PW2jF/vytj1tozfrjb5/0BI0tonRkZGaDazuUBERETsPI1Gg2XLVkx2N4ABSFol +HQUstr2g49hSSrWrxbYPH+e8OyjlWM+YoP2fiZP0u8BvUf4JeKPt93R89gLgK8Az6lZYhwGXUsq0 +3mz7ghr3x8ArKdtpvcv232+tH81mk+weEBEREf1qt8nuwC7S/f3B6DjHAZA0F1hHKf86Y7xGx4qr +hQIW2D6sJsTHSnph/Wwm8KfATzuauRw40fY84FBJB0t6MfAy24cBC4APbt/tRkRERPSXQUlauxdi +TLQwYxGlhOoK4JTtjLsbeHVHzB48nqR+GHgX8DD8ZxK7p+0N9fObgGNs/wOlOhbAc4EfT9DfiIiI +iL7W98sDqvmSVtXX0yjVps4dK7AmkkdQyrmupySkl21rnO3HKCVbkfR+YK3t70g6D7je9jpJ7aR5 +FvBgR7Obat+wvUXSe4Ez6iMiIiJiYA1K0nqL7ZPabyRduJXYhZTE9vr6vL+ko4HZwBLKkoIzgUPH +irN9q6S9gL8EHrB9em33jcDdkt4C7A+sBH6Vkri2zQTub7+x/Yd1/e1XJX3R9nd3+C8QERER0cMG +JWntNq3rudNpwHG21wNIWgAssX0CcF07SNKVY8UBtwKfAT5v+/3teNvP6zj3u8CrbG+W9EhdB7uB +siTgvJokn2B7CfBofWzZKXceERER0YMGNWkdrY8DJd1GSV5HgbMA2olotRy4RNIBtu8BkPSSrcS9 +EZgH7CHpNbXdd9n+atf12wnzYuBqyvrilbZvl7Qb8BuSVtfjl9nOflYRERExsFLGtU8MDw+PZsur +iIiI2JmGhoZYs2YtO7u4QMq4DrBGozHZXYiIiIg+M5Xyi8y09olWqzW6ceNDk92N2AGzZ88gY9e7 +Mn69K2PX2zJ+u9rkz7QOyj6tEREREbFDdm7CuqOyPKBPjIyM0Gzmt1oRERGxczQaDZYtWzHZ3fhP +fZ+0SjoKWGx7QcexpZSCAItrqdWxzrsDWG17zI39JV0FHALcB+wN3AWcbLsl6R3AyZRtqj5g+1pJ +s4BlwD6UClkLbd8r6TDgUmAzcLPtCzquMQwst33QRPfZbDbJD7EiIiKiXw3K8oDuhbuj4xwHQNJc +YB2lktaMrbR7tu35tudS5s6Pl/RzwNuAw4BjgA/U2FOAb9g+EvgUcHY9fjlwou15wKGSDq59WAhc +A+y3zXcZERER0acGJWntXowx0eKMRcC1lNKsp0zUrqTplMpW99q+D3ix7S3As4Cf1Nh1PF79ahaw +uZaC3dP2hnr8JkqiC6UU7JET9DMiIiJiIPT98oBqvqRV9fU0YA5w7liBNZE8glIZaz0lcb1snHYv +knQOcADwMHAngO0tdYnAecCHaux9wIikbwJPpxQgmAU82NHepto3bN9Y+7OdtxoRERHRfwYlab3F +9kntN5Iu3ErsQkpie3193r+WVZ1NKdM6CpxZY99pe2Vt83zgYsosLbYvk3QF8DlJXwTOAC6yfaWk +F1EqaB3B47OvADOB+5/ozUZERET0m0FJWrtN63rudBpwXLtEq6QFwBLbJwDXtYPqDGjn+XcDDUnP +B5bW+BblR1ctytf9D9TYHwIzbW+S9IikOcAG4FjK7OxYfY2IiIgYWIOatI7Wx4GSbqMkhqPAWQDt +hLVaDlwi6QDb93S1014esIWyPvhU2xsk/YOkNfX4Z21/UdJ3gI/UZQO7A2+pbZwOXF3PX2n79jH6 +GhERETHQUhGrTwwPD49my6uIiIjYWYaGhlizZi1Pxpe+qYgVEREREX1pUJcH9J1GozHZXYiIiIg+ +MtVyiywP6BOtVmt048aHJrsbsQNmz55Bxq53Zfx6V8aut2X8dqWpsTwgM60RERERMYaptYFRktY+ +MTIyQrPZnOxuRERERI9rNBosW7ZisrvxM/o+aZV0FLDY9oKOY0sp1a4W2z58nPPuAFbbPmOC9n8m +TtLvAr9F2a7qs7YvqMf/FfinGrbG9v+WdBhwKbAZuLkdW+OHgeW2D5roPpvNJtk9ICIiIvpV3yet +VffC3dFxjgMgaS6wjlL+dYbtMRfNjBVXCwUssP2yGrNa0nLgJ8DXbR/f1czlwOvq/q43SDrY9p2S +FgL/C9hvB+43IiIioq8MStLavShjokUai4Brge8BpwCXbUfc3cCrO2L2oFTFeinwHEmrgIeB3wX+ +DdjT9oYaexNwDHAnpYLWkUCmTyMiImLgDUrSOr8mi1AS1jnAuWMFSpoJHEEp57oeWMEYSet4cbYf +oyScSHo/sNb2dyQ9C7jQ9nWSXg58Engd8GBHs5tq37B9Y23jCdx2RERERH8YlKT1Ftsntd9IunAr +sQspie319Xl/SUcDs4EllCUFZwKHjhVn+1ZJewF/CTwAvL22+zXgMQDbX6pJ7IPArI5rzwTuf4L3 +GhEREdF3BiVp7Tat67nTacBxttcDSFoALLF9AnBdO0jSlWPFAbcCnwE+b/v9He2eC9wHvF/SwcDd +tjdJeqSug90AHAucN05fIyIiIgbWoCato/VxoKTbKInhKHAWQDsRrZYDl0g6wPY9AJJespW4NwLz +gD0kvaa2+y5gKfBJSa+l7BRwSj3vdOBqSkndlbZvH6OvEREREQMtFbH6xPDw8Gi2vIqIiIgnamho +iDVr1vJkftmbilgDbKrVB46IiIjeNFVzisy09olWqzWaGsy9KfWze1vGr3dl7Hpbxm9XyExrPAmm +T59OfrPVmzJ2vS3j17sydr0t4zd4krT2iVarRX6z1Zsydr0t49e7Mna9LeP3ZJqa/xhI0tonRkZG +aDabk92NiIiI6FGNRoNly1ZMdjfGNTBJq6SjKHuonmj7Ux3HvwF8zfapT+K1vwu0M8qnAtfafr+k +acBfAAdTSr2+xfZdHeddDKy3/eGJrtFsNsnuAREREdGvdpvsDuxi64ET228kvZCSRD7ZRoFX2X4F +MBd4m6T9gF8H9rI9l7KX68W1X/tJuhH41V3Qt4iIiIgpb2BmWqs7gedLmml7E6Vk6yeAn5f0DuD1 +lCT2R8DrgDdSEsenAPsDHwKOBw4EzrL9t5J+YPtZAJKuAS63/YWu607j8X8g7AM8CjwMHAF8DsD2 +VyW9tCPmXOBXdvL9R0RERPSkQZtphVKK9fX19cuALwPTgdm2X2n7cGAP4JdrzD62Xwu8D1hs+/XA +24A318+3dRX4TZL+jjLbu8b2w8As4IGOmJak3WxvqJWxpuZK6IiIiIhdbNBmWkcpJVP/T11n+gVK +YrgF2FxnSh8CDqAkrgB31Of7gW/X1z8G9q6vOxPLaQCS3kOZRR0Fjqmfvcr2Zkm7A5+t5V4fAGZ2 +nL+b7S0740YjIiIi+smgJa3Y3iBpBnAGZR3pEGXG83jbh0t6CvB1Hk9GJ5pJ3V3SU4HHKMsGsP1H +nQGSoM5q235M0r9TkuIvAb8G/D9JhwHrnvgdRkRERPSfgUtaq78GFtr+jqQhYDPwkKTV9fPvA8/e +xrY+CHwFuAvYME7MKGV5QIuSrH4P+CQl0R2R9KUa9+YxzouIiIgYeCnj2ieGh4dHs+VVRERE7Kih +oSHWrFnLrvhJTcq4DrBGozHZXYiIiIgeNtVzicy09olWqzW6ceNDk92N2AGzZ88gY9e7Mn69K2PX +2zJ+T6bMtEZERETElNMbO2wmae0TIyMjNJvNiQMjIiIiKMsBli1bMdnd2GZ9n7RKOopSFGBBx7Gl +lE3+F9diAmOddwew2vYZ43x+FXAIcB9lz9a7gJNtt+rn04AbgE/b/rCkWcAySrWrn1J2L7i3bnV1 +KWUHg5ttX9BxjWFgue2DJrrPZrNJfogVERER/WpQKmJ1L9wdHec4AJLmUvZMnV/3dB3P2bbn255L +mVs/vuOz9wJP63h/CvAN20cCnwLOrscvB060PQ84VNLBtQ8LgWuA/Sa4t4iIiIi+NyhJa/dijYkW +bywCrgVWUJLNrbYraTqlQMG99f0JQAv4XEfsuhpDfd4saSawp+0N9fhNPF5BayNw5AT9jIiIiBgI +fb88oJovaVV9PQ2YA5w7VmBNJI8ATqMsIVgBXDZOuxdJOodS9vVh4E5JLwROAt4AvLsj9j5KIYFv +Ak8H5lGS1wc7YjbVvmH7xtqf7brRiIiIiH40KEnrLbZPar+RdOFWYhdSEtvr6/P+ko4GZgNLKEsK +zqyx77S9srZ5PnAxJTl9NrAKeC7wiKQNwNuAi2xfKelFwHJKctyefQWYCdz/RG40IiIioh8NStLa +bVrXc6fTgONsrweQtABYYvsE4Lp2UJ0B7Tz/bqBh+/c7Ys4FfmB7paTfAB6oH/0QmGl7k6RHJM2h +lIA9FjhvnL5GREREDKxBTVpH6+NASbdREsNR4CyAdsJaLQcukXSA7Xu62mkvD9hCWR986lau+W7g +I5LeQfm7v6UePx24up6/0vbtY/Q1IiIiYqClIlafGB4eHs2WVxEREbGthoaGWLNmLZPxpe6OVMQa +lN0DIiIiIqKHDerygL7TaDQmuwsRERHRQ3otd8jygD7RarVGN258aLK7ETtg9uwZZOx6V8avd2Xs +elvGb2fK8oCIiIiIiJ0iywP6xMjICM1mc7K7ERERET2i0WiwbNmKye7GNuv7pFXSUcBi2ws6ji2l +VLtabPvwcc67A1ht+4wJ2v+ZOElnAgsopVyX2v60pL2BTwDPoFTBOtn2fZIOAy4FNgM3276go51h +YLntgya6z2azSXYPiIiIiH41KMsDuhfujo5zHABJc4F1lPKvM8ZrdKw4SfsCvw0cSikWcGkNPx34 +hu0jgY8Df1SPXw6caHsecKikg2s7C4FrgP224z4jIiIi+tKgJK3di30nWvy7CLgWWAGcsp1xD1Gq +W80E9qHMtkIp2fq5+vqzwCslzQT2tL2hHr8JOKa+3ggcOUE/IyIiIgZC3y8PqOZLWlVfTwPmAOeO +FVgTySMo5VzXUxLSy7Yz7l+Bb1H+UbC0HpvF42VcNwH7UhLbBzua3VT7hu0b63W260YjIiIi+tGg +JK232D6p/UbShVuJXUhJbK+vz/tLOhqYDSyhLCk4k/L1/1hx+wD7A416fKWkL1MS1pn1GjOB+ylJ +6qyOa7ePR0RERESHQUlau03reu50GnCc7fUAkhYAS2yfAFzXDpJ05VhxwMXAT2xvrsfvp8yqfgl4 +LfA14DXAF21vkvSIpDmUJQXHAueN09eIiIiIgTWoSetofRwo6TZKYjgKnAXQTkSr5cAlkg6wfQ+A +pJeMF0f5EdbXJH2Fsp51te3PS/oS8FFJXwQeAdozv4uBqylLCVbavn2MvkZEREQMtFTE6hPDw8Oj +2fIqIiIittXQ0BBr1qylVypiDepMa9/ptfrBERERMbl6LXfITGufaLVao6nB3JtSP7u3Zfx6V8au +t2X8dqbMtMYuNH36dPKbrd6UsettGb/elbHrbRm/wZOktU+0Wi3ym63elLHrbRm/3pWx620Zv52p +N5L/JK19YmRkhGazOdndiIiIiB7RaDRYtmzFZHdjm/V90irpKGCx7QUdx5ZSqlgttn34OOfdQdmu +6owJ2v+ZOEm/C/wW5Z+AN9p+j6TdKHu4vhTYCzjP9o2SDgMuBTYDN9u+oLbxPkrFrenAlbY/srV+ +NJtNsntARERE9KvdJrsDu0j39wej4xwHQNJcYB2l/OuM8RodK64WClhg+7CaEB8r6YXAm4Ddbc8D +fh0Yrs1cDpxYjx8q6WBJrwCGbM8F5gHnSNp3u+86IiIiok8MStLavVhjosUbi4BrgRXAKdsZdzfw +6o6Y3YGfUqpdfV/S9cCHgb+VNBPY0/aGGnsTcAzwZeDUjjZ2o8zERkRERAykvl8eUM2XtKq+ngbM +Ac4dK7AmkkdQyrmupySkl21rnO3HgI015v3AWtvfkbQfZfb0OElHAn9FqYr1YEezm4A5th8FHpW0 +e427wvbDO377EREREb1tUJLWW2y3y6Yi6cKtxC6kJLbX1+f9JR0NzAaWUJYUnAkcOlac7Vsl7QX8 +JfAA8I7a7n01FttfkPS8+vmsjmvPBO6vfXw6ZRZ3le33PYF7j4iIiOh5g5K0dpvW9dzpNOA42+sB +JC0Altg+AbiuHSTpyrHigFuBzwCft/3+jnZXA68BVkg6GPie7f+Q9EhdB7uBsoTgPEl7A58H/tT2 +NTvrpiMiIiJ61aAmraP1caCk2yjJ6yhwFkA7Ea2WA5dIOsD2PQCSXrKVuDdSfjy1h6TX1HbfBVwJ +XC5pTY1fXJ9PB66mrFu9yfbtkn6HsoRhkaS31jbebDt7WkVERMRAShnXPjE8PDyaLa8iIiJiWw0N +DbFmzVpSxjV2qUajMdldiIiIiB7Sa7lDZlr7RKvVGt248aHJ7kbsgNmzZ5Cx610Zv96VsettGb+d +KTOtsQtNnz6dXqkdHP9Vxq63Zfx6V8aut2X8Bk+S1j7RarUYp8BXTHEZu96W8etdGbvelvHbWXon +8e/7pFXSUcBi2ws6ji2lFARYXEutjnXeHcBq22eM8/lVwCGU/Vf3Bu4CTrbdqp9PA24APm37w5J2 +Ay4GXgrsBZxn+0ZJhwGXUipe3Wz7go5rDAPLbR800X2OjIzQbGZzgYiIiJhYo9Fg2bIVk92N7dL3 +SWvV/U+x0XGOAyBpLrCOUklrhu3xFs2cbXtlPeeTwPGUra8A3gs8rSP2TcDutudJejbwhnr8cuB1 +tjdIukHSwbbvlLQQ+F/Afttyg81mk+weEBEREf1qt8nuwC7SPfc90Vz4Iko1qhXAKRO1K2k6pbLV +vfX9CUAL+FxH7LHA9yVdD3wY+NtaCnZP2xtqzE3AMfX1RuDICfoZERERMRAGJWmdL2lVfdwKLBgv +sCaSR1C+2v8oZfP/8VwkaRXwLeA5wJ2SXgicBJzLf02O9wOGbB8HvA/4K0qi+2BHzCZgXwDbN9r+ +yXbdZURERESfGpTlAbfYPqn9RtKFW4ldSEk2r6/P+0s6GphNKdM6CpxZY9/ZsTzgfMqa1fuAZwOr +gOcCj0jaUI9fD2D7C5KeBzxASVzbZgL3P4H7jIiIiOhLg5K0dpvW9dzpNOC4dolWSQuAJbZPAK5r +B0nqPv9uoGH79ztizgV+YHtlTVJfA6yQdDDwPdv/IekRSXOADZQlBOeN09eIiIiIgTWoSetofRwo +6TZKYjgKnAXQTlir5cAlkg6wfU9XOxdJOgfYQllqcepWrnklcLmkNfX94vp8OnB1PX+l7dvH6GtE +RETEQEtFrD4xPDw8mt0DIiIiYlsMDQ2xZs1aJusL3R2piDUoP8SKiIiIiB42qMsD+k6j0ZjsLkRE +RESP6MW8IcsD+kSr1RrduHG8Gggxlc2ePYOMXe/K+PWujF1vy/jtLFkeEBERERGx02R5QJ8YGRmh +2WxOdjciIiKiBzQaDZYtWzHZ3dgufZ+0SjoKWGx7QcexpcD6evzwcc67A1ht+4xxPr8KOIRSNGBv +4C7gZNut+vk0SlWtT9v+sKS9gU8Az6BUwTrZ9n2SDgMuBTYDN9u+oOMaw8By2wdNdJ/NZpPsHhAR +ERH9alCWB3Qv3B0d5zgAkuYC6yjlX2dspd2zbc+3PZeyKOT4js/eCzyt4/3pwDdsHwl8HPijevxy +4ETb84DQfyO2AAAgAElEQVRDa+EBJC0ErqGUf42IiIgYaIOStHYv9p1o8e8i4FpgBXDKRO1Kmk4p +x3pvfX8C0AI+1xF7RMf7zwKvlDQT2NP2hnr8JuCY+nojcOQE/YyIiIgYCH2/PKCaL2lVfT0NmAOc +O1ZgTSSPoJRzXU9JXC8bp912RawDgIeBOyW9EDgJeAPw7o7YWcAD9fUmYF9gJmWpAB3H5wDYvrH2 +Z5tvMiIiIqJfDUrSeovtk9pvJF24ldiFlMT2+vq8v6SjgdnAEsqSgjNr7Dttr6xtng9cTFnj+mxg +FfBc4BFJGygJ68x63kzgfkqSOqvj2u3jEREREdFhUJLWbtO6njudBhxnez2ApAXAEtsnANe1g+oM +aOf5dwMN27/fEXMu8APbK+sM7GuAr9XnL9reJOkRSXOADcCxwHnj9DUiIiJiYA1q0jpaHwdKuo2S +GI4CZwG0E9ZqOXCJpANs39PVTnt5wBbK+uBTt3LNy4GPSvoi8AhlCQHAYuDqev5K27eP0deIiIiI +gZaKWH1ieHh4NFteRURExLYYGhpizZq19FJFrEGdae07vVhDOCIiIiZHL+YNmWntE61WazQ1mHtT +6mf3toxf78rY9baM386SmdbYxaZPn05+s9WbMna9LePXuzJ2vS3jN3iStPaJVqtFfrPVmzJ2vS3j +17sydr0t47ez9E7in6S1T4yMjNBsNie7GxEREdEDGo0Gy5atmOxubJe+T1olHQUstr2g49hSSrWr +xbYPH+e8O4DVts8Y5/OrgEMoxQT2Bu4CTrbdkvQO4GTKVlgfsH1tPedfgX+qTayx/b8lHQZcCmwG +brZ9QY39Y+CVtY132f77rd1ns9kkuwdEREREv+r7pLXq/v5gdJzjAEiaC6yjlH+dYXu8ld5nd1TE ++iRwvKS/B94GvBh4KvAt4FpJQ8DXbR/f1cblwOtsb5B0g6SDKXP1L7N9mKQG8De1vYiIiIiBtNtk +d2AX6V6wMdECjkXAtcAK4JSJ2pU0nVKO9V7b9wEvtr0FeBbwkxr7UuA5klZJul7S8yTNBPa0vaHG +3AQcY/sfKNWxoJSC/fEE/Y2IiIjoa4OStM6vyeIqSbcCC8YLrInkEcANwEeB07fS7kWSVlFmU58D +3Alge0tdIvBl4BM19gfAhbbnA0uBT1IS3Qc72tsE7NvRxnuBzwBXbef9RkRERPSVQVkecIvtdtlU +JF24ldiFlBnU6+vz/pKOBmYDSyhLCs6sse/sWB5wPnAxZZYW25dJugL4nKQvALcBj9XPviTpWZSE +dVbHtWcC97ff2P7Duv72q5K+aPu7O/oHiIiIiOhlg5K0dpvW9dzpNOA42+sBJC0Altg+AbiuHSSp ++/y7gYak5wNLa3wL+Cnlx1TnUn609f66bvVu25skPSJpDrCBsiTgvJokn2B7CfBofWzZKXceERER +0YMGNWkdrY8DJd1GST5HgbMA2glrtRy4RNIBtu/pauciSedQEsrdgFPrD6r+QdKaevyztr8oaR3w +CUmvpewUcEpt43Tg6nr+Stu3S9oN+A1Jq+vxy2xnP6uIiIgYWCnj2ieGh4dHs+VVREREbIuhoSHW +rFlLyrjGLtdoNCa7CxEREdEjejFvyExrn2i1WqMbN463nWxMZbNnzyBj17syfr0rY9fbMn47S2Za +YxebPn06vVQ/OB6XsettGb/elbHrbRm/wZOktU+0Wi3GKfAVU1zGrrdl/HpXxq63ZfyeqN5L+JO0 +9omRkRGazWwwEBEREeNrNBosW7ZisruxQwYmaZV0FHArcKLtT3Uc/wbwNdunPsnXfxbwHeB/2r6u +HpsG/AVwMGU/17fYvkvSNcAzKf8Mei6wprM4wliazSbZPSAiIiL61aCUcW1bD5zYfiPphcBTd9G1 +3wx8EHhHx7FfB/ayPRd4F6WiFrYX1HKvrwN+DPzOLupjRERExJQ0MDOt1Z3A8yXNtL2JUrL1E8DP +S3oH8HpKEvsjSsL4RuBXgacA+wMfAo4HDgTOsv23kn5g+1kAdYb0cttfGOPaC4F5wN9I+kXb3wKO +AD4HYPurkn6p65zzgT+zfe/O+xNERERE9J5Bm2mFUor19fX1y4AvA9OB2bZfaftwYA/gl2vMPrZf +C7wPWGz79cDbKDOnsA2rwCW9Elhn+z7gKmBJ/WgW8EBH6GO1GhaS/hswH/irHbnJiIiIiH4yaDOt +o5SSqf9H0neBL1DWjW4BNteZ0oeAAyiJK8Ad9fl+4Nv19Y+Bvevrzp/fTQOQ9B7KLOoo8EpgETBH +0o3AXsBBtfzrg8DMjvN3s72lvn4DcLXt/DQyIiIiBt6gJa3Y3iBpBnAGZR3pEGXG83jbh0t6CvB1 +Hk9GJ0oad5f0VOAxyrIBbP9R+0NJ+wGH2p7TcewK4BRgNfBrwP+TdBiwrqPdY4D37Oh9RkRERPST +gUtaq78GFtr+jqQhYDPwkKTV9fPvA8/exrY+CHwFuAvYMMbnb6IsSej0EeCjlCR3RNKX6vE3d8Q8 +v7YZERERMfBSxrVPDA8Pj2bLq4iIiNiaoaEh1qxZy2QXF0gZ1wHWaDQmuwsRERExxfVyvpCZ1j7R +arVGN258aLK7ETtg9uwZZOx6V8avd2XselvG74nKTGtERERETFmTm6w+EUla+8TIyAjNZnOyuxER +ERFTUKPRYNmyFZPdjSek75NWSUdRigIs6Di2lFLSdXEtJjDWeXcAq22fMc7nVwGHAPdR9my9CzjZ +dqtW1zqZsv/rB2xfK+nplOpbM+s5i2z/qG51dSllB4ObbV/QcY1hYLntgya6z2azSX6IFREREf1q +UCpidS/cHR3nOACS5lL2TJ1f93Qdz9m259ueS5lvP17Sz1EqZh1G2Wv1AzX2D4Av2j4S+HNgaT1+ +OXCi7XnAoZIOrn1YCFwD7LfttxkRERHRnwYlae1ewDHRgo5FwLXACkoRgK22K2k6pUDBvbVU64tr +ZatnAT+psb8IfLa+/hLwckkzgT1tb6jHb6IkugAbgSMn6GdERETEQOj75QHVfEmr6utpwBzg3LEC +ayJ5BHAaZQnBCuCycdq9qJZjPQB4GLgTwPaWukTgPOBDNfYOSvWrO4HjgadSEt0HO9rbVPuG7Rtr +f7bvTiMiIiL60KAkrbfYPqn9RtKFW4ldSElsr6/P+0s6GpgNLKEsKTizxr7T9sra5vnAxZRZWmxf +Vsu1fk7SF4A/AT4k6e+AG4G7KQnrrI5rzwTuf2K3GhEREdF/BiVp7Tat67nTacBxttcDSFoALLF9 +Ah3lWOsMaOf5dwMNSc8Hltb4FvAI5QdZRwIftv0VSa8HvmR7k6RHJM2hlIA9ljI7O1ZfIyIiIgbW +oCato/VxoKTbKInhKHAWQDthrZYDl0g6wPY9Xe20lwdsoawPPtX2Bkn/IGlNPf5Z21+UNAR8rCa7 +/0pJjgEWA1fX81favn2MvkZEREQMtFTE6hPDw8Oj2fIqIiIixjI0NMSaNWuZKl/gpiLWAOvlWsIR +ERHx5OqHPCEzrX2i1WqNpgZzb0r97N6W8etdGbvelvHbUZlpjUk2ffp0psp/iLF9Mna9LePXuzJ2 +vS3jN3iStPaJVqtFfrPVmzJ2vS3j17sydr0t47ejejfRT9LaJ0ZGRmg2m5PdjYiIiJiCGo0Gy5at +mOxuPCF9n7RKOgpYbHtBx7GllGpXi20fPs55dwCrbZ8xQfs/EydpEfBWYDPwx7ZvkDQL+ASlmMAe +wO/Z/qqkw4BLa+zNti+obXwa+Ll6/Ce2X7u1fjSbTbJ7QERERPSr3Sa7A7tI9/cHo+McB0DSXGAd +pfzrjPEaHStO0jOBM4DDgVcDSyXtAfwe8HnbrwDeDPxFbeZy4ETb84BDJR1cjz/P9jzb8ydKWCMi +IiL6Xd/PtFbdCzgmWtCxCLgW+B5wCnDZdsS9jDLz+hjwoKR/Bg6ilHh9pJ63B/ATSTOBPW1vqMdv +Ao6R9APgaZI+AzwNuMj2DRPfZkRERER/GpSkdb6kVfX1NGAOcO5YgTWRPIJSsWo9sIIxktatxM0C +HugI/Q9gX9sP1vP2Bz4O/HaNfbAjdlPt2x7AnwIfpCwR+JKkr9r+0fbeeEREREQ/GJSk9RbbJ7Xf +SLpwK7ELKYnt9fV5f0lHA7OBJZQlBWcCh44T9yAlGW2bCdxfr/siSsnWM22vronvWLH/Blxhewvw +w7puVkCS1oiIiBhIg5K0dpvW9dzpNOA42+sBJC0Altg+AbiuHSTpyrHigLcD75W0J/AU4AXAP0r6 +ReBTwG/aXgdge5OkRyTNATYAxwLnAa+irIt9raR9gAOBb++824+IiIjoLYOatI7Wx4GSbqMkr6PA +WQDtRLRaDlwi6QDb9wBIesl4cZS/6YeA1bXdP7D9aJ3d3Qv4oKRpwP22XwecTpl93Q1Yafv2eo0R +SWuAFvAu2xufhL9DRERERE9IGdc+MTw8PJotryIiImIsQ0NDrFmzlqlSXCBlXAdYo9GY7C5ERETE +FNUPeUJmWvtEq9Ua3bjxocnuRuyA2bNnkLHrXRm/3pWx620Zvx2VmdaYZNOnT2eq/IcY2ydj19sy +fr0rY9fbMn6DJ0lrn2i1WoxT4CumuIxdb8v49a6MXW/L+O2o3k30k7T2iZGREZrN5mR3IyIiIqag +RqPBsmUrJrsbT0jfJ62SjgIW217QcWwppYrVYtuHj3PeHZRyrGdM0P7PxElaBLwV2Az8se0bJM0C +PkEpJrAHpcDAV2r8dGAZcKXtlfXYpcDLKVWyft/2bVvrR7PZJLsHRERERL/abbI7sIt0f38wOs5x +ACTNBdZRyr/OGK/RseIkPZNSGOBw4NXAUkl7AL8HfN72K4A3U0vDSvoF4O+BX+po97XA823/MvAb +jFFGNiIiImKQDErS2r2AY6IFHYuAa4EVwCnbGfcyyszrY7YfBP4ZOAi4GLiixuwB/KS+nkGpwnVr +R7u/CNwEYPs+oCXpGRP0OSIiIqJv9f3ygGq+pFX19TRgDnDuWIGSZgJHUBLJ9ZSE9GdmOrcSNwt4 +oCP0P4B9awKLpP2BjwO/DdAu6VqrZLX9A/B7ki4Dfp6SxI474xsRERHR7wYlab3F9kntN7Wk6ngW +UhLb6+vz/pKOBmYDSyhLCs4EDh0n7kFK4to2E7i/XvdFlJKtZ9pePV4HbN8s6Zcps6/fBL4O3Lc9 +NxwRERHRTwYlae02reu502nAcbbXA0haACyxfQJwXTtI0pVjxQFvB94raU/gKcALgH+U9IvAp4Df +bM+ujkfS84C7bc+T9Bzgo+2Z2oiIiIhBNKhJ62h9HCjpNkryOgqcBdBORKvlwCWSDrB9D4Ckl4wX +R/mbfghYXdv9A9uP1tndvYAP1qUA99t+XVef2r5H+QHX2ylrX9+xc247IiIiojeljGufGB4eHs2W +VxERETGWoaEh1qxZy1QpLpAyrgOs0WhMdhciIiJiiuqHPCEzrX2i1WqNbtz40GR3I3bA7NkzyNj1 +roxf78rY9baM347q3ZnWQdmnNSIiIiJ6WJYH9ImRkRGazeZkdyMiIiKmoEajwbJlKya7G09I3yet +ko4CFtte0HFsKaUgwGLbh49z3h2UylZnjPP5VcAhlP1T9wbuAk623ZJ0KfByYFMNP54yH78M2Af4 +KbDQ9r2SDgMuBTYDN9u+oOMaw8By2wdNdJ/NZpP8ECsiIiL61aAsD+heuDs6znEAJM0F1lEqaW2t +EtXZtufbnktJSo+vx18KHFs/m297E6XM6zdsH0nZr/XsGns5cKLtecChkg6ufVgIXAPstx33GRER +EdGXBiVp7V7sO9Hi30XAtZTSrKdM1K6k6ZQqWPfWPVifB3xY0mpJb66x63i8UtYsYHMtBbun7Q31 ++E3AMfX1RuDICfoZERERMRD6fnlANV/Sqvp6GjAHOHeswJpIHkGpjLWekrheNk67F0k6BzgAeBi4 +E5hBKS5wMeXve6uk2ynLCEYkfRN4OjCPkrx2VrraVPuG7Rtrf3bgdiMiIiL6y6AkrbfYPqn9plan +Gs9CSmJ7fX3eX9LRwGxKmdZR4Mwa+07bK2ub51MS1bcCH7L903p8FfBi4HXARbavlPQiSgWtI3h8 +9hVgJnD/E7zXiIiIiL4zKElrt2ldz51OA45rl2iVtABYYvsE4Lp2UJ0B7Tz/bqABCPhrSS+m/H1f +DvwVcBTwQI39ITDT9iZJj0iaA2wAjgXOG6evEREREQNrUJPW0fo4UNJtlMRwFDgLoJ2wVsuBSyQd +YPuernbaywO2UNYHn2p7g6SPAV8FHgU+Zvvbkt4NfETSOyh/97fUNk4Hrq7nr7R9+xh9jYiIiBho +qYjVJ4aHh0ez5VVERESMZWhoiDVr1jJVvsDdkYpYgzrT2nf6oaZwREREPDn6IU/ITGufaLVao6nB +3JtSP7u3Zfx6V8aut2X8dlRmWmOSTZ8+nanyH2Jsn4xdb8v49a6MXW/L+A2eJK19otVqkd9s9aaM +XW/L+PWujF1vy/jtiN5O8pO09omRkRGazeZkdyMiIiKmmEajwbJlKya7G09YktbtIOkoYLHtBR3H +lgLftv2xjmOvBN5D2fLqXuB/tosNdMTcCrzN9j91tf8p4JuULbB2Bz5o+9qJ+tZsNsnuAREREdGv +dpvsDvSgbfku4s+BX7P9CuA7PL4n67a4xfb8eu6xwDmSDtruXkZERET0kSSt229bFoS8wvaP6uvd +gZ9uLXg8th8CrgDesCPnR0RERPSLLA/YfvMlraqvpwFzgHd3Btj+dwBJrwdeAfzhE7jevwMveQLn +R0RERPS8JK3b7xbbJ7XfSLoQmFnXqI4Cb7T9A0m/A5wAHGv70Vq+9Q01ZuF2XK8B/OvO635ERERE +70nS+sRNAzbZPrp9QNL/psyOHmP7EQDblwGXdcS0zx2rvXbMLGARJfmNiIiIGFhJWp+4//LDLEnP +oCwX+DrwOUmjwF/bvmKMc6+V1F7v+nfADcDRdfnBFmA68Ee2//nJ6nxEREREL0gZ1z4xPDw8mi2v +IiIiotvQ0BBr1qxlKhUXSBnXAdZoNCa7CxERETEF9UuOkJnWPtFqtUY3bnxosrsRO2D27Blk7HpX +xq93Zex6W8ZvR2SmNaaA6dOnM5X+Y4xtl7HrbRm/3pWx620Zv8GTpLVPtFottq1YV0w1GbvelvHr +XRm73pbx2xG9neQnae0TIyMjNJvNye5GRERETDGNRoNly1ZMdjeesL5PWiUdBSy2vaDj2FJgfT1+ ++Djn3QGstn3GOJ9fBRwC3AfsDdwFnGy7Jel3gd+i/BPwRtvvkXQO8Op67OnAM20/W9JhwKXAZuBm +2xfU9j8N/Fw9/hPbr93afTabTbJ7QERERPSrvk9aq+7vD0bHOQ6ApLnAOkrJ1hm2x1vpfbbtlfWc +TwLH12R3ge2X1eOrJa2wfRFwUT32t8BZtY3LgdfZ3iDpBkkH274TeJ7tA3fsdiMiIiL6y26T3YFd +pHsRx0SLOhYB1wIrgFMmalfSdGAWcC/wPcqMatseQLuAAJJeD2y0fYukmcCetjfUj28CjqkFCp4m +6TOSviBpq7OsEREREf1uUGZa59cqU1ASzTnAuWMF1kTyCOA0yhKCFXSUX+1yUf3a/wDgYeBO2y1g +Y23r/cBa29/pOOf3gRPr61nAgx2fbap92wP4U+CDlCUCX5L0Vds/2uY7joiIiOgjg5K03mL7pPYb +SRduJXYhJbG9vj7vL+loYDawhLKk4Mwa+86O5QHnAxcDiyTtBfwl8ADw9o7r/g/gx7bvqocepCSu +bTOB+4F/A66wvQX4YV1yICBJa0RERAykQUlau03reu50GnCc7fUAkhYAS2yfAFzXDpLUff7dQLvk +xGeAz9t+f1fbxwCfbb+xvUnSI5LmABuAY4HzgFcBZwCvlbQPcCDw7e2+y4iIiIg+MahJ62h9HCjp +NkryOUr9cVQ7Ya2WA5dIOsD2PV3ttJcHbKGsDz5V0q8D84A9JL2mtvsu218Fng/c3NXGYuDqev5K +27cDSBqRtAZo1fM37qR7j4iIiOg5KePaJ4aHh0ez5VVERER0GxoaYs2atUyl4gIp4zrAGo3GxEER +ERExcPolR8hMa59otVqjGzeOt51sTGWzZ88gY9e7Mn69K2PX2zJ+O6K3Z1oHZZ/WiIiIiAE2dRLW +HZXlAX1iZGSEZrM52d2IiIiIKaTRaLBs2YrJ7sZO0fdJq6SjgMW2F3QcW0opHLDY9uHjnHcHsNr2 +GeN8fhVwCHAfsDdwF3Cy7ZakRcBbgc3Ae23fWHcZeDVlN4GnA8+0/WxJhwGX1tibbV9Q238fpcjB +dOBK2x/Z2n02m03yQ6yIiIjoV4OyPKB74e7oOMcBkDQXWEeppDVjK+2ebXu+7bmUeffjJT2Tssfq +4ZQk9U8k7WH7IttH254P/CvwptrG5cCJtucBh0o6WNIrgKHa7jzgHEn7bu9NR0RERPSLQUlauxdy +TLSwYxFwLaWE6ykTtStpOqWy1b3AyygztI/ZfhD4Z+Cg9gmSXg9stH1LLRm7p+0N9eObKAUIvgyc +2nGd3SgzsREREREDqe+XB1TzJa2qr6cBc4BzxwqsieQRlMpY6ymJ62XjtNsuLnAA8DD8f/buP86u +qr73/2sYEsCYUKdUountaZypHysVRFsgaZAQcPBWKoX4tQRSBUIwSmJbQa3aCiKQipZfDyki/Var +CCNckttbQPmRUDU4ChqKode8qw/MUdErV2JIDELgcO4fax09HOZkZgJhZu/9fj4e8zjn7P3Z66w9 +ax6PfLLOOuvDfcCbSOVbW34BtM+S/g1wYn4+g1TKtWUbMFvSDmBHROwJfIZU0vXR0W/TzMzMrJyq +krSukXRS60VEXLiT2MWkxPam/DgzIo4E+oDlpCUFZ+XY90q6Lbf5YeBi4F9JyWjLdGBLjvl94OeS +Hsjntu4k9kWk2d61ki4a7w2bmZmZlUlVktZOPR2P7ZYAx7ZKuUbEImC5pIXAja2giOi8/odADbgH +uCAipgL7AK8A7s8xRwNfbF0gaVtEPB4Rs4FNwDHAuRGxN3AH8HFJ1z27WzUzMzMrvqomrc38c0BE +3E1KPpvA2QCthDVbBVwSEbMkPdjRTmt5wFOkdaenSfppRFwOrMvtfiB/3A/wcuD2jjaWAdfm62+V +dE9E/BVpCcPSiDgj9+1USd7TyszMzCrJFbFKYmBgoOktr8zMzKxdf38/w8PrmWzFBXalIlZVZ1pL +pyx1hc3MzOy5U6b8wDOtJdFoNJquwVxMrp9dbB6/4vLYFZvHb7w802qTRG9vL5PtD9LGxmNXbB6/ +4vLYFZvHr3qctJZEo9GgS4Evm+Q8dsXm8Ssuj12xefzGoxzJvZPWkhgcHKRe9+YCZmZmltRqNYaG +Vk90N54zTlrHKCKOAJZJWtR2bCXwHUmfbTt2FPARYAeprOtbJT3W0dadpD1cHwWmAg8Afynp5xHx +aeA1wMPA3vnc2yQ1dta/er2Odw8wMzOzstpjojtQMGP5HOITwJskzQe+B5zeJe4vJC2QNA/4EnB1 +27n35HNzSXP6xz2LPpuZmZkVnpPW8RnLopD5kn6Wn+8JPNYl7ldtSboWeE2uovWrcxHRSyrz+tCu +ddfMzMysHLw8YHwWRMTa/LyHVLXqQ+0Bkn4KEBEnAPOBvx1j2z8HfiM/b1XamkVaQnDfs+u2mZmZ +WbE5aR2fNZJOar2IiAuB6XmNahM4WdJPchnWhcAxknZExJnAm3PM4i5tz5T0UEQAvFfSbfk9Pgxc +DCzdbXdlZmZmNsk5aX12eoBtko5sHYiIDwIHA0dLehxA0hXAFW0xT2skIk4H1nS02/JDoDzlLMzM +zMx2gZPWZ+dpX8yKiBeTlgt8C/hSRDSBL0i6aoRrPxsR20kJ6o+AM9vOtZYHPEVad3za7ui8mZmZ +WVG4jGtJDAwMNL3llZmZmbX09/czPLyeyVhcwGVcK6xW8woCMzMz+7Wy5QaeaS2JRqPR3Lx5+0R3 +w3ZBX980PHbF5fErLo9dsXn8xsMzrTaJ9Pb2Mhn/KG10Hrti8/gVl8eu2Dx+1eOktSQajQZjK9hl +k43Hrtg8fsXlsSs2j994lCO5d9JaEoODg9Tr9YnuhpmZmU0StVqNoaHVE92N50zpk9aIOAJYJmlR +27GVwMZ8fE6X6+4F1klaMUr7z4iLiKXAGcATwAWSbo6IGcA1pLKsU4CzJH09x/cCQ8DVbUUFLgLm +Ab35+D/trB/1eh3vHmBmZmZltcdEd+B50vn5QbPLcQAiYi6wgVS2dVq3RkeKi4j9gRXAHOANwMqI +mAK8G7hD0nzgVHKxgYh4GfBl4A/b2p0P9EuaCxwOvC8i9h3H/ZqZmZmVSlWS1s7FHKMt7lgK3ACs +Bk4ZZ9whpJnXJyVtBb4LHEgqxdoqMjAF+GV+Pg1YAtzZ1u7XeHpBgT1Is7ZmZmZmlVT65QHZgohY +m5/3ALOBc0YKjIjppI/ll5CWEKymrQTrGOJmAI+0hf4C2DcnsETETOBzwLsAJG3Ix3+VSEvaAeyI +iD2BzwBXSXp0F+7bzMzMrBSqkrSukXRS60VEXLiT2MWkxPam/DgzIo4E+oDlpCUFZwGHdonbSkpc +W6YDW/L7vgq4lrSedd3OOhwRvwH8D2CtpIvGfqtmZmZm5VOVpLVTT8djuyXAsZI2AkTEImC5pIXA +ja2giLh6pDjgncD5ETEV2Ad4BXB/RLwSuB54S2t2tZuI2BtYA3xc0nW7fptmZmZm5VDVpLWZfw6I +iLtJyWsTOBuglYhmq4BLImKWpAcBIuLgbnGk3+nlwLrc7gck7cizu3sBl+WlAFskHd/Rp5ZlpCUM +SyPijHzuVEne08rMzMwqyWVcS2JgYKDpLa/MzMyspb+/n+Hh9UzG4gIu41phtVptortgZmZmk0jZ +cgPPtJZEo9Fobt68faK7Ybugr28aHrvi8vgVl8eu2Dx+41GOmdaq7NNqZmZmVkGTL2HdVV4eUBKD +g6jG9dYAACAASURBVIPU6/6elpmZmaWlAUNDqye6G8+p0ietEXEEsEzSorZjK0kFAZZJmtPluntJ +la1WjNL+M+IiYilwBqmK1QWSbo6IGcA1pD1cp5D2av16ju8FhoCrJd3W1s4AsErSgaPdZ71ex1/E +MjMzs7KqyvKAzoW7zS7HAYiIucAGUiWtad0aHSkuIvYHVgBzgDcAKyNiCvBu4A5J84FTyVW2IuJl +wJeBP+xoezFwHbDfmO/SzMzMrKSqkrR2LugYbYHHUuAGUmnWU8YZdwhp5vXJXLr1u8CBwMXAVTlm +CvDL/HwaqaDBnR1tbwZeN0o/zczMzCqh9MsDsgURsTY/7yFt3H/OSIERMR2YR0okN5IS0ivGETcD +eKQt9BfAvjmBJSJmAp8D3gXQqo6VCw78iqRb8vFx36yZmZlZ2VQlaV0j6aTWi1ydqpvFpMT2pvw4 +MyKOBPpIZVqbwFnAoV3itpIS15bpwJb8vq8CriWtZ1333NyamZmZWflVJWnt1NPx2G4JcGyrRGtE +LAKWS1oI3NgKioirR4oD3gmcHxFTgX2AVwD3R8QrgeuBt7RmV8fZVzMzM7PKqmrS2sw/B0TE3aTE +sAmcDdBKRLNVwCURMUvSgwARcXC3ONLv9HJgXW73A5J25NndvYDL8lKALZKO7+hTt76amZmZVZor +YpXEwMBA01temZmZGUB/fz/Dw+uZrB/YuiKWmZmZmZVSVZcHlE6tVpvoLpiZmdkkUca8wMsDSqLR +aDQ3b94+0d2wXdDXNw2PXXF5/IrLY1dsHr+x8vIAMzMzM7PnjZcHlMTg4CD1en2iu2FmZmaTQK1W +Y2ho9UR34zlV6KQ1Io4glT89UdL1bce/DXxT0mm7+f1fAnwPeKukG/OxPYF/Bn4XmApcIOnfIuLV +pK2wngQez9f834hYCpwBPJFjb25r/3jgzZJOHq0v9Xod7x5gZmZmZVWG5QEbgRNbLyLiD4AXPE/v +fSpwGXBm27HFwM8kvQ7478An8vFLgTMlLSCVfH1fROwPrADmAG8AVkbEFICIuBS4gMm6GMXMzMzs +eVTomdbsPuDlETFd0jZS0ngN8DsRcSZwAimJ/RlwPHAy8KekalUzSbOfxwEHAGfnWdGfSHoJQERc +B1wp6SsjvPdi4HDgXyPilZL+N6nq1Q35/B6kGVSAP5f00/x8T+Ax4BBgnaQnga0R8V3gQOBbwF2k +5Pbtz/o3ZGZmZlZwZZhphVRe9YT8/BDga0Av0CfpKElzgCnAH+WYF0p6I3ARsEzSCaTk8NR8ftQt +FSLiKGCDpIeBT5NKuCLpUUnbI2I6KXn9YD7+03zdXNLM7CXADOCRtmZ/Aeyb42/AzMzMzIByzLQ2 +gWuBT0bE94GvkD5Sfwp4Is+UbgdmkRJXgHvz4xbgO/n5z4G98/P2j+R7ACLiI8C8/H5HAUuB2RFx +C6k864ER8T5J2yLiv5HKun5C0hdaDUXEnwPvB/5E0sMRsZWUuLZMz30yMzMzszZlSFqRtCkippHW +h74f6Cclg8dJmhMR+5A+cm8lo6PNpO4ZES8gfWnqgPwef9c6GRH7AYdKmt127CrglIj4AnAraf3q +nW3nF5O+cDVfUisxvRs4PyKmkpYrvAK4f1d+B2ZmZmZlVoqkNfsCsFjS9yKin7SWdHtErMvnfwy8 +dIxtXQZ8HXgA2DTC+b8gLUlo90/AvwAvA34D+LuI+BApQT42t1kHVkdEE/iypA9HxOXAOlJC/QFJ +O8bYRzMzM7PKcEWskhgYGGh6yyszMzMD6O/vZ3h4PZN1E6JdqYhVppnWSitjjWEzMzPbNWXMCzzT +WhKNRqPpGszF5PrZxebxKy6PXbF5/MbKM602yfT29jJZ/zBt5zx2xebxKy6PXbF5/KrHSWtJNBoN +xrC9rE1CHrti8/gVl8eu2Dx+Y1WexN5Ja0kMDg5Sr9cnuhtmZmY2CdRqNYaGVk90N55TpU9aI+II +UtWrRW3HVgIb8/E5Xa67l1RidcUo7T8jLiKWkvZkfQK4QNLNETGDVF52BqnIwVmSvp7je4Eh4GpJ +t+VjpwDLSFXL/lXSBTvrR71ex7sHmJmZWVmVpYzraDo/P2h2OQ78qtTqBmBBLlowopHiImJ/UpGD +OcAbgJURMQV4N3CHpPmkcrFX5PiXAV8G/rCt3ZeRysoeARwKTM2JrZmZmVklVSVp7VzQMdoCj6XA +DcBq4JRxxh1Cmnl9UtJW4LvAgcDFwFU5Zgrwy/x8GrAE+FX1LOBoUgWvzwL/DtwlqTFKn83MzMxK +q/TLA7IFEbE2P+8BZgPnjBQYEdOBeaREciMpIb1iHHEzgEfaQn8B7JsTWCJiJvA54F0Akjbk4+2J +9H7A4aTZ2mnAuoj4o1YbZmZmZlVTlaR1jaSTWi8i4sKdxC4mJbY35ceZEXEk0AcsJy0pOIv0sf1I +cVtJiWvLdGBLft9XAdeS1rOuo7uHgX+X9CjwaER8B3g58M0x37GZmZlZiVQlae3U0/HYbglwrKSN +ABGxCFguaSFwYysoIq4eKQ54J3B+REwF9gFeAdwfEa8Ergfe0ppd3Ym7gHfmNqYAvw98b5fu1MzM +zKwEqpq0NvPPARFxNyl5bQJnA7QS0WwVcElEzJL0IEBEHNwtjvQ7vRxYl9v9gKQdeXZ3L+CyvBRg +i6TjO/pEbvf+iPj/ga/lQ+dJ2vLc3LqZmZlZ8biMa0kMDAw0veWVmZmZAfT39zM8vJ7JWlzAZVwr +rFarTXQXzMzMbJIoY17gmdaSaDQazc2bt090N2wX9PVNw2NXXB6/4vLYFZvHb6zKM9NalX1azczM +zCpmciasu8rLA0picHCQer0+0d0wMzOzCVar1RgaWj3R3XjOlT5pjYgjgGWSFrUdW0kqCLBM0pwu +191Lqmy1osv5TwOvIe2pujfwAPA2SY2IuBT4Y2BbDj+OtBXWG0i7BLwI2F/SSyPiMOBS4Angdknn +tb3HALBK0oGj3We9XsdfxDIzM7OyKn3SmnUu3G12OQ5ARMwFNpAqaU2T1G3RzHsk3Zav+TwpOV0F +vBY4RtLmttiP5h8i4t/I22sBVwLHS9oUETdHxEGS7ouIxcBfkqpjmZmZmVVaVda0di7qGG2Rx1Lg +BlJp1lNGazcieklVsB7Ke7D+HvCpiFgXEae2XxARJwCbJa3JpWCnStqUT98KHJ2fbwZeN0o/zczM +zCqhKjOtCyJibX7eA8wGzhkpMCeS80iVsTaSEtcrurT70Yh4HzALeBS4D5hGKi5wMen3e2dE3CPp +/nzN3wAn5uczSGVfW7blviHpltyfcd2omZmZWRlVJWldI+mk1otcnaqbxaTE9qb8ODMijgT6SGVa +m8BZOfa9bcsDPkxKVM8ALpf0WD6+FjiIVMr194GfS3ogX7+VlLi2TAdc+crMzMysQ1WS1k49HY/t +lgDHtkq0RsQiYLmkhcCNraA8A9p+/Q+BGhDAFyLi1aTf7zzgMznmaOCLrQskbYuIxyNiNrAJOAY4 +t0tfzczMzCqrqklrM/8cEBF3kxLDJvnLUa2ENVsFXBIRsyQ92NFOa3nAU6T1waflL1R9FvgGsAP4 +F0nfyfEvB27vaGMZcG2+/jZJ94zQVzMzM7NKc0WskhgYGGh6yyszMzPr7+9neHg9k/nDWlfEMjMz +M7NSqurygNKp1WoT3QUzMzObBMqaE3h5QEk0Go3m5s3daiDYZNbXNw2PXXF5/IrLY1dsHr+x8PIA +MzMzM5vUJm/Cuqu8PKAkBgcHqdfrE90NMzMzm0C1Wo2hodUT3Y3dovRJa0QcASyTtKjt2EpStatl +kuZ0ue5eYJ2kFaO0/4y4iFhKKjLwBHCBpJsjYgZwDamYwBTg3ZK+ERGHAZfm2NslndfWzgCwStKB +o91nvV7HuweYmZlZWVVleUDnwt1ml+MARMRcYAOp/Ou0bo2OFBcR+wMrgDnAG4CVETEFeDdwh6T5 +wKnAP+ZmrgROlHQ4cGhEHJTbWQxcB+w3vls1MzMzK5+qJK2dCztGW+ixFLgBWA2cMs64Q0gzr09K +2gp8FziQVOL1qhwzBfhlREwHpkralI/fSqqaBbAZeN0o/TQzMzOrhNIvD8gWRMTa/LwHmA2cM1Jg +TiTnkcq5biQlpFeMI24G8Ehb6C+AfXMCS0TMBD4HvCvHbm2L3Zb7hqRbcvy4b9bMzMysbKqStK6R +dFLrRURcuJPYxaTE9qb8ODMijgT6gOWkJQVnAYd2idtKSkZbpgNb8vu+ilSy9SxJ63LiO2KsmZmZ +mf1aVZLWTj0dj+2WAMdK2ggQEYuA5ZIWAje2giLi6pHigHcC50fEVGAf4BXA/RHxSuB64C2SNgBI +2hYRj0fEbGATcAxwbpe+mpmZmVVWVZPWZv45ICLuJiWGTeBsgFYimq0CLomIWZIeBIiIg7vFkX6n +lwPrcrsfkLQjz+7uBVwWET3AFknHA+8gzb7uAdwm6Z4R+mpmZmZWaa6IVRIDAwNNb3llZmZWbf39 +/QwPr2eyf1C7KxWxqjrTWjplrTNsZmZmY1fmfMAzrSXRaDSarsFcTK6fXWwev+Ly2BWbx280nmm1 +Saq3t5fJ/gdqI/PYFZvHr7g8dsXm8aseJ60l0Wg08He2isljV2wev+Ly2BWbx29nypnMO2kticHB +Qer1+kR3w8zMzCZIrVZjaGj1RHdjtyl90hoRRwDLJC1qO7aSVMVqmaQ5Xa67l1SOdcUo7T8jLiKW +AmcATwAXSLo5ImYA15CKCUwB3i3pGxHxZ8DHgR/ky8+R9NWIOAf4k9zGX4+wFdbT1Ot1vHuAmZmZ +ldUeE92B50nn5wfNLscBiIi5wAZS+ddp3RodKS4i9gdWAHOANwArI2IK8G7gDknzgVOBf8zNvBZ4 +j6QF+eereR/YwyUdCixihDKyZmZmZlVSlaS1c3HHaIs9lgI3AKuBU8YZdwhp5vVJSVuB7wIHAhcD +V+WYKcAv8/PXAqdFxFci4mMR0QvMA24DkPRDoDcifnOUPpuZmZmVVumXB2QLImJtft4DzAbOGSkw +IqaTksYlpCUEqxlhpnMncTOAR9pCfwHsmxNYImIm8DngXfn8bcD/lLQpIq4EluU2ftbZBvDwuO7a +zMzMrCSqkrSukXRS60UuqdrNYlJie1N+nBkRRwJ9wHLSkoKzgEO7xG0lJZ0t04Et+X1fRSrZepak +dfn8pyW1ktz/BSwE/qNbG2ZmZmZVVJWktVNPx2O7JcCxkjYCRMQiYLmkhcCNraCIuHqkOOCdwPkR +MRXYB3gFcH9EvBK4HniLpA1t7/ftiJgj6cfAUcA3gbuBj0bEx4H/BvRI2vwc3buZmZlZ4VQ1aW3m +nwMi4m5S8toEzgZoJaLZKuCSiJgl6UGA/EWpEeNIv9PLgXW53Q9I2pFnd/cCLouIHmCLpONJSfLq +iHgU+N/A1ZIaEfFVYDi3cebu+CWYmZmZFYXLuJbEwMBA01temZmZVVd/fz/Dw+spQnEBl3GtsFqt +NtFdMDMzswlU9lzAM60l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxKzaP386Uc6a1Kvu0mpmZmVXA +5E9Yd5WXB5TE4OAg9Xp9orthZmZmE6BWqzE0tHqiu7FblT5pjYgjgGWSFrUdW0kqCLBM0pwu191L +qmy1osv5TwOvIW34vzfwAPA2SY18/rdIOwi8StKOfOxHwH/lJoYlfTAf7wWGSDsH3BYRxwB/Q9rR +YA9SEYMDJKnbfdbrdfxFLDMzMyur0ietWefC3WaX4wBExFxgA6mS1jRJ3RbNvEfSbfmazwPHAasi +YhD4e2D/tjb7gW9JOq7jvV4GfBaYBVwNIOlW4NZ8/mzgqztLWM3MzMzKriprWjsXeIy24GMpcAOp +NOspo7WbZ0pnAA/l4w1SoYD2ggCvBX47ItZGxE0R8fJ8fBppr9Y7OxuPiN8mVeg6b5T+mpmZmZVa +VWZaF0TE2vy8B5gNnDNSYERMJ30cv4S0hGA1cEWXdj8aEe8jzZI+CtwHIGlNbqs9Of4xcKGkGyPi +j4FrgENa1bE6Ylv+GrhE0hNjvVEzMzOzMqpK0rpG0kmtF7k6VTeLSYntTflxZkQcCfSRyrQ2gbNy +7Hvblgd8GLiYNEvb0r784FvAkwCS7oqIl+yswzmJPRb4wKh3Z2ZmZlZyVUlaO/V0PLZbAhzbKtEa +EYuA5ZIWAje2giKi8/ofAp27+rafP4f0pa2PRcRBOX5n/gD4jqTHR4kzMzMzK72qJq3N/HNARNxN +Si6bwNkArYQ1WwVcEhGzJD3Y0U5recBTpPXBp43wPi1/D1wTEW8EnuCZa2U7vxQWpB0JzMzMzCrP +FbFKYmBgoOktr8zMzKqpv7+f4eH1FKW4gCtimZmZmVkpVXV5QOnUap3Lac3MzKwqqpAHeHlASTQa +jebmzd1qINhk1tc3DY9dcXn8istjV2wev268PMDMzMzMbMJ4eUBJDA4OUq/XJ7obZmZmNgFqtRpD +Q6snuhu7VemT1og4AlgmaVHbsZWkalfLJM3pct29wDpJK0Zp/xlxEbEUOIO0tdUFkm5uO3c88GZJ +J+fXhwKX5djbJZ3XFjsArJJ04Gj3Wa/X8e4BZmZmVlZVWR7QuXC32eU4ABExF9hAKv86rVujI8VF +xP7ACmAO8AZgZURMyecuBS7g6QtOPgmcKOlw4NBceICIWAxcB+w3jvs0MzMzK6WqJK2di31HW/y7 +FLgBWM0ziwCMFncIaeb1SUlbge8CrZnSu4B3tC6OiOnAVEmb8qFbgaPz883A60bpp5mZmVklVCVp +XRARa/PPncCiboE5kZwH3Az8C21J5hjjZgCPtIX+AtgXQNINHc3MALa2vd7WFnuLpF+O6e7MzMzM +Sq70a1qzNZJOar2IiAt3EruYNBN7U36cGRFHAn3ActKSgrOAQ7vEbSUloy3TgS1d3ms8sWZmZmaV +VZWktVNPx2O7JcCxkjYCRMQiYLmkhcCNraCIuHqkOOCdwPkRMRXYB3gFcP9InZC0LSIej4jZwCbg +GODcLn01MzMzq6yqJq3N/HNARNxNSgybwNkArUQ0WwVcEhGzJD0IEBEHd4sj/U4vB9bldj8gacdO ++rIMuJa0VOM2SfeM0FczMzOzSnNFrJIYGBhoessrMzOzaurv72d4eD1F+YB2VypiVXWmtXSqUHPY +zMzMRlaFPMAzrSXRaDSarsFcTK6fXWwev+Ly2BWbx68bz7TaJNfb20tR/lDt6Tx2xebxKy6PXbF5 +/KrHSWtJNBoN/J2tYvLYFZvHr7g8dsXm8WtXjeTdSWtJDA4OUq/XJ7obZmZm9jyp1WoMDa2e6G48 +b5y0jlFEHAEsk7So7dhK4DuSPtt27CjgI8AO4CHgrZIe62jrTtIero8CU4EHgL+U9POI+DTwGuBh +YArwf4F3t5V6HVG9Xse7B5iZmVlZVaWM63NlLJ9DfAJ4k6T5wPeA07vE/YWkBZLmAV8Crm479558 +7nDgYuD6Z9FnMzMzs8Jz0jo+Y1k0Ml/Sz/LzPYHHusT9qi1J1wKvyVW0nkbSOmBHRLxsvJ01MzMz +KwsvDxifBRGxNj/vAWYDH2oPkPRTgIg4AZgP/O0Y2/458Btdzj0E7EdaRmBmZmZWOU5ax2eNpJNa +LyLiQmB6XqPaBE6W9JOI+CtgIXCMpB0RcSbw5hyzuEvbMyU9FBEjnasBP3oub8TMzMysSJy0Pjs9 +wDZJR7YORMQHgYOBoyU9DiDpCuCKtpinNRIRpwNrOtptnXs9sF3Sj3fHDZiZmZkVgZPWZ+dpX8yK +iBeTlgt8C/hSRDSBL0i6aoRrPxsR20kJ6o+AM9vOfTQi3gc8BWwF/nx3dN7MzMysKFzGtSQGBgaa +3vLKzMysOvr7+xkeXk8Riwu4jGuF1Wq1ie6CmZmZPY+q9m+/Z1pLotFoNDdv3j7R3bBd0Nc3DY9d +cXn8istjV2wev3aeabUC6e3tpYh/tOaxKzqPX3F57IrN41c9TlpLotFoMLaCXTbZeOyKzeNXXB67 +YvP4tatG8l76pDUijgCWSVrUdmwlsDEfn9PlunuBdZJWjNL+iHER8VvAOuBVkna0HT8eeLOkk/Pr +Q4HLgCeA2yWd1xY7AKySdOBo9zk4OEi9Xh8tzMzMzEqiVqsxNLR6orvxvCl90pp1/les2eU4ABEx +F9hAqoA1TdKIi2a6xUXEIPD3wP4d8ZcCg8B/tB3+JHC8pE0RcXNEHCTpvohYDPwlqRLWqOr1Ot49 +wMzMzMpqj4nuwPOkc958tHn0pcANwGrglF2IawBHAZs74u8C3tF6ERHTgamSNuVDtwJH5+ebgdeN +0k8zMzOzSqjKTOuCiFibn/cAs4FzRgrMieQ8YAlpCcFq2qpZjSVO0poc87TkWNINeblCywxS8YCW +bblvSLoltzGO2zQzMzMrp6okrWskndR6EREX7iR2MSmxvSk/zoyII4E+YDlpScFZwKEjxUm6s62t +0VaIbyUlri3TgS1juiMzMzOzCqlK0tqpp+Ox3RLgWEkbASJiEbBc0kLgxlZQRFw9UhzQnrTudBmC +pG0R8XhEzAY2AccA53bpq5mZmVllVTVpbeafAyLiblJi2ATOBmglotkq4JKImCXpQYCIOHgscYxt +L45lwLWk9cW3SbpnhL6amZmZVZorYpXEwMBA07sHmJmZVUd/fz/Dw+sp4oeyu1IRqyq7B5iZmZlZ +gVV1eUDp1Gq1ie6CmZmZPY+q9m+/lweURKPRaG7ePGINBJvk+vqm4bErLo9fcXnsis3j187LA8zM +zMzMJgUvDyiJwcFB6vX6RHfDzMzMnie1Wo2hodUT3Y3nTWWS1lyJ6k7gREnXtx3/NvBNSaftxvf+ +PtDKKF8A3CDpY7li1j8CBwGPAadLeiAiXglcleO/m48/tbP3qNfrePcAMzMzK6uqLQ/YCJzYehER +f0BKIne3JvB6SfOBucDbI2I/4M+AvSTNBd4PXJzjLwD+RtLhpIUqf/o89NHMzMxs0qrMTGt2H/Dy +iJguaRupZOs1wO9ExJnACaQk9mfA8cDJpIRxH2AmcDlwHHAAcLakf4uIn0h6CUBEXAdcKekrHe/b +w6//g/BCYAfwKDAP+BKApG9ExB/mmBMkNSNian7fR57j34OZmZlZoVRtphVSKdYT8vNDgK8BvUCf +pKMkzQGmAH+UY14o6Y3ARcAySScAbwdOzefHuv3CrRHx76TZ3mFJjwIzeHpC+mRE7JET1t8B7gd+ +k5Rsm5mZmVVW1WZam6SSqZ/M60y/QpoFfQp4Is+UbgdmkRJXgHvz4xbgO/n5z4G98/P2LRt6ACLi +I6RZ1CZwdD73eklPRMSewBcj4mRSwjq97fo9WmtXJf2ANCu8BLgEOOXZ3bqZmZlZcVVuplXSJmAa +sIK0NADSjOdxkhbl4738OhkdbSZ1z4h4Qf4o/4D8Hn8n6UhJC9q+QLVHPvck8FNSUnwX8EaAiDgM +2JCf/2tEDOTrtgGNXb9jMzMzs+Kr2kxryxeAxZK+FxH9wBPA9ohYl8//GHjpGNu6DPg68ACwqUtM +k7Q8oEFKVn8AfB54EhiMiLtyXGvJwUrgMxHxOGnt6+ljvTEzMzOzMnJFrJIYGBhoessrMzOz6ujv +72d4eD1VqYhV1ZnW0qla/WEzM7Oqq9q//Z5pLYlGo9F0DeZicv3sYvP4FZfHrtg8fu0802oF0tvb +/t0xKxKPXbF5/IrLY1dsHr/qcdJaEo1Gg7FvGWuTiceu2Dx+xeWxKzaPX0t1EncnrSUxODhIvV6f +6G6YmZnZ86BWqzE0tHqiu/G8Kn3SGhFHkCpZLWo7tpJUmWpZroA10nX3Auskrehy/tPAa4CHSYUG +HgDeJqmRz/cANwP/U9Kn2q57BWmLrBdL2pH3Z72UtO3W7ZLOy3EXkQoU9AJXS/qnnd1nvV7HuweY +mZlZWVWluEDn5wfNLscBiIi5pI3+F0TEtJ20+55cQGAuaX7+uLZz5wO/0dHudODjwGNth68ETpR0 +OHBoRBwUEfOB/tzu4cD7ImLfnd2gmZmZWZlVJWntXPAx2gKQpcANwGp2Xj61Vba1l1RV66H8eiGp +itWXOuI/BbyfVDCglcROzVW6AG4llX39GnBa23V7kGZizczMzCqp9MsDsgURsTY/7wFmA+eMFJgT +yXnAEtISgtXAFV3a/WhEvA+YRUpE74uIPwBOAt4MfKit3XOBmyRtyEsHICW6W9va2wbMlrQD2BER +ewKfAa6S9Oi47tjMzMysRKqStK6RdFLrRURcuJPYxaTE9qb8ODMijgT6gOWkJQVn5dj3Srott/lh +4GLSGteXAmuB3wUej4g6KZH9UUScDswEbgP+lJS4tkwHtuT2XkSa7V0r6aJdvnMzMzOzEqhK0tqp +p+Ox3RLgWEkbASJiEbBc0kLgxlZQRHRe/0OgJulv2mLOAX4i6Vbg5W3Hvw+8XtITEfF4RMwGNgHH +AOdGxN7AHcDHJV33bG/WzMzMrOiqmrQ2888BEXE3KflsAmcDtBLWbBVwSUTMkvRgRzut5QFPkdad +nsbYNPl1wrsMuDZff6ukeyLir0hLGJZGxBk5/lRJ3tPKzMzMKsllXEtiYGCg6S2vzMzMqqG/v5/h +4fUUtbiAy7hWWK1Wm+gumJmZ2fOkiv/ue6a1JBqNRnPz5u0T3Q3bBX190/DYFZfHr7g8dsXm8Wvx +TKsVTG9vL0X9w606j12xefyKy2NXbB6/6nHSWhKNRoMuBb5skvPYFZvHr7g8dsXm8atewu6ktSQG +Bwep1725gJmZWZnVajWGhlZPdDcmROmT1og4AlgmaVHbsZWkalfLJM3pct29wDpJK0Zp/xlxEfHX +wJ+T/gt4i6SPRMQepOIDrwX2As6VdEtEHAZcSirTeruk89raGQBWSTpwtPus1+t49wAzMzMrqz0m +ugPPk87PD5pdjgMQEXOBDaTyr9O6NTpSXC4UsEjSYTkhPiaXdv0LYE9JhwN/BgzkZq4ETszHx/UH +kwAAIABJREFUD42Ig3I7i4HrgP3GfbdmZmZmJVOVpLVz4cdoC0GWkkqorgZOGWfcD4E3tMXsCTxG +qnb144i4CfgU8G8RMR2YKmlTjr0VODo/3wy8bpR+mpmZmVVC6ZcHZAsiYm1+3kOqNnXOSIE5kZxH +Kue6kZSQXjHWOElPkhJOIuJjwHpJ34uI/YB+ScdGxOuAzwAnAVvbmt2W+4akW3Ibu37XZmZmZiVR +laR1jaSTWi8i4sKdxC4mJbY35ceZEXEk0AcsJy0pOAs4dKQ4SXdGxF7APwOPAGfmdh/OsUj6SkT8 +Xj4/o+29pwNbnuW9mpmZmZVOVZLWTj0dj+2WAMdK2ggQEYuA5ZIWAje2giLi6pHigDuB/wXcIelj +be2uA/4EWJ3Xrf5A0i8i4vG8DnYTaQnBuV36amZmZlZZVU1am/nngIi4m5QYNoGzAVqJaLYKuCQi +Zkl6ECAiDt5J3MnA4cCUiPiT3O77gauBKyNiOMcvy4/vAK4lrS++TdI9I/TVzMzMrNJcxrUkBgYG +mt7yyszMrNz6+/sZHl5P0T+IdRnXCqvVahPdBTMzM9vNqvzvvWdaS6LRaDQ3b94+0d2wXdDXNw2P +XXF5/IrLY1dsHr/qzbRWZZ9WMzMzs5IodsK6q7w8oCQGBwep1+sT3Q0zMzPbTWq1GkNDqye6GxPG +Ses4RMQRwDJJi9qOrQS+I+mzbceOAj4C7AAeAt4q6bGOtu4E3i7pvyLihaQ9XG8BvgB8G/gWaSb8 +BcAHJN2xs77V63X8RSwzMzMrKy8PGL+xLAL+BPAmSfOB7wGndwvMlbW+CFwn6aJ8+D8lLcjXnwxc +8qx6bGZmZlZwTlrHbywLSeZL+ll+vifwWJe4FwG3A5+SdFWX9+gDfjruXpqZmZmViJcHjN+CiFib +n/cAs4EPtQdI+ilARJwAzAf+tktb1wA/AWZ1HH9lfo8pwKuBFc9Jz83MzMwKyknr+K2RdFLrRURc +CEzPa1SbwMmSfhIRfwUsBI6RtCMizgTenGMW58vfC9wBfDMi7pL01Xz8PyUtyO2/GPiPiFgj6YfP +yx2amZmZTTJOWp+9HmCbpCNbByLig8DBwNGSHgeQdAVwRVsMpOR0W0S8Fbg+Il7b1mbLFuBRPFZm +ZmZWYV7T+uw97YtZeWb0Q8BLgS9FxNqIePvOrpP0DeAq4FrSmPx+vm4N8GXSmtfv764bMDMzM5vs +XBGrJAYGBpre8srMzKy8+vv7GR5eTxmKC+xKRSx/5FwSVa5FbGZmVgVV/7feM60l0Wg0mtWuwVxc +rp9dbB6/4vLYFVu1x88zrVZgvb29lOGPuIo8dsXm8Ssuj12xefyqx0lrSTQaDcZWrMsmG49dsXn8 +istjV2zVHr9qJutOWkticHCQer0+0d0wMzOz3aRWqzE0tHqiuzFhSp+0RsQRwDJJi9qOrQQ25uNz +ulx3L7BO0ojVqCLi08BrgIeBvYEHgLdJauTzvwWsA14laUfbda8Avg68OBcdOAy4FHgCuF3SeTnu +ImAe0AtcLemfdnaf9Xod7x5gZmZmZVWVfVo7Pz9odjkOQETMBTaQSrZO20m775G0QNJc0lz9cfn6 +QeBWYP+OdqcDHwceazt8JXCipMOBQyPioIiYD/Tndg8H3hcR+45+m2ZmZmblVJWktXPxx2iLQZYC +NwCrgVNGazcieoEZwEP5eAM4CtjcEf8p4P2kCletJHaqpE35/K3A0cDXgNPartuDNBNrZmZmVkml +Xx6QLYiItfl5DzAbOGekwJxIzgOWkJYQrKat/GqHj0bE+4BZpET0PgBJa3Jbv0qOI+Ic4CZJG9qO +zwC2trW3DZidlxPsiIg9gc8AV0l6dFx3bGZmZlYiVUla10g6qfUiIi7cSexiUmJ7U36cGRFHAn3A +ctKSgrNy7Hsl3Zbb/DBwMWmWtqV9+cFi4IcRcTowE7gN+FNS4toyHdiS23sRabZ3raSLxnW3ZmZm +ZiVTlaS1U0/HY7slwLGSNgJExCJguaSFwI2toIjovP6HQGepil+dl/R7bdd+H3i9pCci4vGImA1s +Ao4Bzo2IvYE7gI9Lum6X7tDMzMysRKqatDbzzwERcTcpuWwCZwO0EtZsFXBJRMyS9GBHO63lAU+R +1p2e1nG+2wZyTX6d0C4Drs3X3yrpnoj4K9IShqURcUaOP1WS97QyMzOzSnIZ15IYGBhoessrMzOz +8urv72d4eD1lKC7gMq4VVqt1rkwwMzOzMqn6v/WeaS2JRqPR3Lx5+0R3w3ZBX980PHbF5fErLo9d +sVV7/DzTagXW29tLGf6Iq8hjV2wev+Ly2BWbx696nLSWRKPRoPv3vmwy89gVm8evuDx2xVbt8atm +su6ktSQGBwep1725gJmZWVnVajWGhlZPdDcmjJPWcYiII4Blkha1HVsJfEfSZ9uOHQV8BNhBKu36 +VkmPdbR1J/B2Sf8VES8kFTO4BfgCMCRpTo6bB/wzsFDShm59q9frePcAMzMzK6s9JroDBTSWzyI+ +AbxJ0nzge8Dp3QJz2dgvAte1Vb5q5nPzgU8C/31nCauZmZlZ2TlpHb+xLCSZL+ln+fmewGNd4l4E +3A58StJV7e+RZ2uvAI6R5ClUMzMzqzQvDxi/BRGxNj/vIVWu+lB7gKSfAkTECcB84G+7tHUN8BNg +VsfxfuB8YC9g2nPSazMzM7MCc9I6fmskndR6EREXAtPzGtUmcLKkn+RSrAtJM6U7IuJM4M05ZnG+ +/L3AHcA3I+IuSV/Nxx8F3gDMA66PiEMlPf683J2ZmZnZJOSk9dnrAbZJOrJ1ICI+CBwMHN1KNiVd +Qfq4vxUD8J+StkXEW0nJ6Wvz6R9LegS4OSKOydd1XRdrZmZmVnZe0/rsPe2LWRHxYtJygZcCX4qI +tRHx9p1dJ+kbwFXAtTxzTN4D/FFELMbMzMysolzGtSQGBgaa3vLKzMysvPr7+xkeXk8Zigu4jGuF +1Wq1ie6CmZmZ7UZV/7feM60l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxK7Zqj181Z1q9ptXMzMys +MIqfsO4qLw8oicHBQer1+kR3w8zMzHaDWq3G0NDqie7GhKpM0hoRRwB3AidKur7t+LeBb0o6bTe+ +9/eBVkb5AuAGSR+LiB7gH4GDSFWzTpf0QEQcRCrf+gTwX5JG3e6qXq/jL2KZmZlZWVVtecBG4MTW +i4j4A1ISubs1gddLmg/MBd4eEfsBfwbsJWku8H7g4hx/DnCupNcBe0fEG5+HPpqZmZlNWpWZac3u +A14eEdMlbSNVproG+J1cseoEUhL7M+B44GTgT4F9gJnA5cBxwAHA2ZL+LSJ+IuklABFxHXClpK90 +vG8Pv/4PwguBHaSqV/OAL0Haq7WtuMC9wH55JnY6acbVzMzMrLKqNtMKcCMpOQU4BPga0Av0STpK +0hxgCvBHOeaFkt4IXAQsk3QC8Hbg1Hx+rNsv3BoR/06a7R2W9CgwA3ikLaYREXsA3yUlyP8JvBj4 +9/HepJmZmVmZVG2mtUmqOvXJvM70K6RZ0KeAJ/JM6XZgFilxhTTrCbAF+E5+/nNg7/y8/Wt8PQAR +8RHSLGoTODqfe72kJyJiT+CLEXEyKWGd3nb9HpKeiojLgD+WtDEi3klaNrD8Wd+9mZmZWUFVLWlF +0qaImAasIK0j7SfNeB4naU5E7AN8i18no6PNpO4ZES8AniQtG0DS37UHRATkWW1JT0bET0lJ8V3A +m4D/ERGHARvyJQ8D2/LzH5PWwZqZmZlVVuWS1uwLwGJJ34uIftKa0e0RsS6f/zHw0jG2dRnwdeAB +YFOXmCZpeUCDlKz+APg8KdEdjIi7clxrycHpwBci4gnS+telY70xMzMzszJyRaySGBgYaHrLKzMz +s3Lq7+9neHg9ZSkusCsVsao601o6Va9HbGZmVmb+d94zraXRaDSa1a3BXGzVrp9dfB6/4vLYFVt1 +x88zrVZwvb29lOUPuWo8dsXm8Ssuj12xefyqx0lrSTQaDca+ZaxNJh67YvP4FZfHrtiqO37VTdSd +tJbE4OAg9Xp9orthZmZmu0GtVmNoaPVEd2NClT5pjYgjSJWsFrUdW0mqTLUsV8Aa6bp7gXWSVozS +/jPicknYt5GKFvyDpBsiYm9SydgXA1uBt0l6OO/Peilp263bJZ3X1s4AsErSgaPdZ71ex7sHmJmZ +WVlVpYxr5+cHzS7HAYiIuaSN/hfkQgQjGikuIn6TVOb1MFI1rH/I4e8Avi3pdcDngFYBgiuBEyUd +DhwaEQfldhYD1wH7jeM+zczMzEqpKklr5wKQ0RaELAVuAFYDp4wnTtLDwKslPQW8BPhljp0HfCk/ +/yJwVERMB6ZK2pSP38qvy75uBl43Sj/NzMzMKqH0ywOyBRGxNj/vAWYD54wUmBPJecAS0hKC1cAV +44mT9FReIvBhUsUsSKViH8nPtwH7AtNJSwVoOz47t3FLfp9x36yZmZlZ2VQlaV0j6aTWi4i4cCex +i0mJ7U35cWZEHAn0ActJSwrOAg4dKU7SnQCSroiIq4AvRcRXSQnr9Pwe04EtpCR1Rtt7t46bmZmZ +WZuqJK2dejoe2y0BjpW0ESAiFgHLJS0EbmwFRcTVI8VFxIPAyhzfAB7Lj3cBbwS+CfwJ8FVJ2yLi +8YiYDWwCjgHO7dJXMzMzs8qqatLazD8HRMTdpMSwCZwN0EpEs1XAJRExS9KDABFxcLc4YDvwHxEx +TNo94IuSvhoR3wT+Jc+6Pg60Zn6XAdeS1hffJumeEfpqZmZmVmku41oSAwMDTW95ZWZmVk79/f0M +D6+nLB/AuoxrhdVqtYnugpmZme0m/nfeM62l0Wg0mps3b5/obtgu6OubhseuuDx+xeWxK7bqjp9n +Wq3gent7KcsfctV47IrN41dcHrti8/hVj5PWkmg0Gvg7W8XksSs2j19xeeyKrZrjV+0k3UlrSQwO +DlKv1ye6G2ZmZvYcq9VqDA2tnuhuTLjSJ60RcQSwTNKitmMrSVWslkma0+W6e4F1klaM0v4z4iJi +KXAG8ARwgaSbI2IGcA2pmMAU4N2SvhERhwGX5tjbJZ2X27gAOIq0bdb7JX15Z/2o1+t49wAzMzMr +qz0mugPPk87PD5pdjgMQEXOBDaTyr9O6NTpSXETsD6wA5gBvAFZGxBTg3cAdkuYDpwL/mJu5EjhR +0uHAoRFxUES8GjhE0mHAIn5dCtbMzMyskqqStHYuAhltUchS4AZgNXDKOOMOIc28PilpK/Bd4EDg +YuCqHDMF+GVETAemStqUj98KHC3pP0jVsQB+F/j5KP01MzMzK7XSLw/IFkTE2vy8B5gNnDNSYE4k +55HKuW4kJaRXjCNuBvBIW+gvgH1zAktEzAQ+B7wrx25ti92W+4akpyLifNKs7U6XKJiZmZmVXVWS +1jWSWmVTiYgLdxK7mJTY3pQfZ0bEkUAfsJy0pOAs4NAucVtJyWjLdGBLft9XkUq2niVpXU58R4wF +kPS3ef3tNyLiq5K+vys3b2ZmZlZ0VUlaO/V0PLZbAhwraSNARCwClktaCNzYCoqIq0eKA94JnB8R +U4F9gFcA90fEK4HrgbdI2gAgaVtEPB4Rs4FNpCUB5+bkd6Gk5cCO/PPUc/kLMDMzMyuSqiatzfxz +QETcTUpem8DZAK1ENFsFXBIRsyQ9CBARB3eLI/1OLwfW5XY/IGlHnt3dC7gsInqALZKOB95Bmn3d +A7hN0j0RsQfw/0XEunz8Cknez8rMzMwqy2VcS2JgYKDpLa/MzMzKp7+/n+Hh9ZSpuIDLuFZYrVab +6C6YmZnZbuB/4xPPtJZEo9Fobt68faK7Ybugr28aHrvi8vgVl8eu2Ko5ftWeaa3KPq1mZmZmVmBe +HlASg4OD1Ov+rpaZmVnZ1Go1hoZWT3Q3Jlzpk9aIOAJYJmlR27GVpIIAyyTN6XLdvaTKViNu7B8R +nwZeAzwM7A08ALxNUiOf/y3SDgKvkrQjH/sR8F+5iWFJH4yIw4BLgSeA2yWdl2MvAI4ibXX1fklf +3tl91ut1/EUsMzMzK6vSJ61Z58LdZpfjAETEXGADqZLWNEndFs28R9Jt+ZrPA8cBqyJiEPh7YP+2 +NvuBb0k6rqONK4HjJW2KiJsj4iDSopVDJB0WETXgX4FXj/VmzczMzMqmKklr52Lf0Rb/LgVuAH4A +nMIIZVzb24mIXlJlq4fy8QZplvRbbbGvBX47l5N9FPhr4P8AUyVtyjG3AkdL+oeIOCYf+13g56P0 +18zMzKzUqpK0LsjJIqREczZwzkiBubTqPFJlrI3AaronrR+NiPcBs0iJ6H0AktbkttqT4x8DF0q6 +MSL+GPg8cDyp7GvLttw3JD0VEecDK/KPmZmZWWVVJWldI+mk1otcnaqbxaTE9qb8ODOXVe0jlWlt +Amfl2Pe2LQ/4MHAxaZa2pX35wbeAJwEk3RURLyElrDP+H3t3H2Z3Vd97/52MRo5xQhm522i8uxtn +2q9XoTzouZuQ5oFEnFTlaNscb5mYUyIxNdTk3G0DKOqRhwopWiFYOdyCl0jlYVoukp6egBKacJDg +VNAgTeudj21tdgEfqExDIkqAnX3/sdYuu5vZM0ngOPn9fp/Xdc219177+1t7/Vjxmq9rr1nftphe +YG/rhaSP5v23X4uI+yT906HfspmZmVl5VCVp7TSl47HdKuDMVonWiBgC1kpaBtzeCoqIzusfATpP +/21//yLSH219Mu9bfUTS/og4EBGzgT3AUuDinCQvk7QWeCb/HDySGzUzMzMrg6omrc38c0JEPEBK +LpvAeQCthDXbBFwVEbMkPdbRT2t7wEHSmbfnjPE5LX8E3BQRbyedFLAyt58L3JKv3yrpwYiYCrwr +Inbk9msk+TwrMzMzqyxXxCqJgYGBpo+8MjMzK5/+/n5GRnZS9YpYVV1pLR3XJTYzMysn/45PvNJa +Eo1Go1m9GszlUM362eXh+Ssuz12xVXP+vNJqJdDT00OZ/jFXieeu2Dx/xeW5KzbPX/U4aS2JRqNB +lwJfdpTz3BWb56+4PHfFVr35c4LupLUkBgcHqdd9wICZmVmZ1Go1hoc3T/YwjgqlT1ojYhGwRtJQ +W9sGUrWrNZJO63LdQ8AOSWNWo4qIG4A3ks5ePQb4DnC2pEZErAZ+h3S01WWS7oiIGcAw8CrgaWCF +pMcjYi6wMcfeLenSts8YADZJOmmi+6zX6/j0ADMzMyurqZM9gJ+Szu8Pml3aAYiIecAuUvnX6eP0 +e76kJZLmkdbt3xkRP0cqu3oa8OvAhoh4Oelc1r+RtBD4c+D83Me1wFmSFgBzcuEBImIFcCtw/GHd +qZmZmVkJVSVp7dwIMtHGkNXAbcBmni8C0LXfiOghlWN9HPhV0grtc5L2AX8PnERKglslW2cAz0ZE +LzBN0p7cfhdwRn4+CiycYJxmZmZmlVD67QHZkojYnp9PAWaTyqq+QE4k55PKue4mJa7XdOm3VRFr +FvBj4GHgHcCTbTE/Ao4FfggMRsTfAccBC0jJ67622P15bEi6M4/ncO7TzMzMrJSqkrRuk7S89SIi +Lh8ndgUpsd2SH2dGxGKgD1hL2lKwPsdeIGlr7vMS4Ergf/D8iipAL7CXlCRfIen6iPgVUnnY+V1i +zczMzKxNVZLWTlM6HtutAs6UtBsgIoaAtZKWAbe3gvIKaPv1jwA14EHgsoiYBvwH4A3A35K+7m+t +wP4L0Ctpf0QciIjZwB5gKXBxl7GamZmZVVZVk9Zm/jkhIh4gJYZN4DyAVsKabQKuiohZkh7r6Ke1 +PeAgaX/wOZJ+EBGfBnbkfj8s6ZmI+BjwuYj4AOm/+/tyH+cCt+Trt0p6cIyxmpmZmVWay7iWxMDA +QNNHXpmZmZVLf38/IyM7KdsXry7jWmG1Wm2yh2BmZmYvMf9+f55XWkui0Wg0R0efmuxh2BHo65uO +5664PH/F5bkrturNn1davdJaEj09PZTtH3RVeO6KzfNXXJ67YvP8VY+T1pJoNBr4b7aKyXNXbJ6/ +4vLcFVt15s+JeYuT1pIYHBykXq9P9jDMzMzsJVCr1Rge3jzZwziqlD5pjYhFwBpJQ21tG0jVrtZI +Oq3LdQ+RyrGum6D/F8RFxFuBj+WX35C0NiKOA24iFRB4Algt6YcRMRfYCDwL3C3p0rZ+BoBNkk6a +6D7r9To+PcDMzMzKaupkD+CnpPP7g2aXdgAiYh6wi1T+dXq3TseKi4hXAZ8A3p4T4j0R8Wrgw8B9 +khYCnwE25G6uBc6StACYExEn535WALcCxx/uzZqZmZmVTVWS1s4NIRNtEFkN3AZsBlYeZlwrkb0y +Ir4C/EDSE8AvA1/KMfcDvxYRvcA0SXty+13AGfn5KLBwgnGamZmZVULptwdkSyJie34+BZgNXDRW +YE4k55PKue4mJaTXHEbc8cDpwMnAj4H7ImIEeAh4B/Aw8E7glcAMYF9bt/vz2JB0Z/6cI7tjMzMz +sxKpStK6TdLy1ouIuHyc2BWkxHZLfpwZEYuBPmAtaUvBemBOl7gngAcl/Uv+rK8ApwB/BHw6Iv4X +cCfwCClhndH22b3A3hd7s2ZmZmZlU5WktdOUjsd2q4AzJe0GiIghYK2kZcDtraCIuH6sOGANcGJE +9JGS0rnAdaSv+q+T9NcR8VvA/ZL2R8SBiJgN7AGWAhd3GauZmZlZZVU1aW3mnxMi4gFSYtgEzgNo +JaLZJuCqiJgl6TGAiDi1WxwwDbgQ2Jr7/DNJ34qIA8Cf5q/7HyUlx5CS3FtI+4u3SnpwjLGamZmZ +VZrLuJbEwMBA00demZmZlUN/fz8jIzsp6xeuLuNaYbVabbKHYGZmZi8R/15/Ia+0lkSj0WiOjj41 +2cOwI9DXNx3PXXF5/orLc1ds1Zk/r7S2VOWcVjMzMzMrMG8PKInBwUHq9fpkD8PMzMxeArVajeHh +zZM9jKNK6ZPWiFgErJE01Na2gVQQYE0utTrWdQ8BOyStm6D/F8RFxGrgd4Bngcsk3RERrySdEnAc +cAA4W9L3ImIusDHH3i3p0rZ+BoBNkk6a6D7r9Tr+QywzMzMrq6psD+jcuNvs0g5ARLRKsS6JiOnd +Oh0rLiJ+DlgHnAb8OrAhIl5OKvn6dUmLgJuBC3I31wJnSVoAzImIk3M/K4BbSRW2zMzMzCqtKklr +52bfiTb/rgZuI5VmXXmYcb9KWnl9TtI+4O+BkyRdDVyWY34e2JtLwU6TtCe33wWckZ+PkgoSmJmZ +mVVe6bcHZEsiYnt+PgWYDVw0VmBOJOeTDv/fTUpIrzmMuBnAk22hPwKOBZDUjIhtwInAW3LsvrbY +/XlsSLozf85h36yZmZlZ2VQlad0maXnrRURcPk7sClJiuyU/zoyIxUAfqUxrE1gPzOkSt4+UjLb0 +AntbLyS9OVImegdwynixZmZmZpZUJWntNKXjsd0q4MxWidaIGALWSloG3N4Kiojrx4oDfhf4eERM +A/4D8AbgbyPiQ8Cjkm4CngKek/SjiDgQEbOBPcBS4OIuYzUzMzOrrKomrc38c0JEPEBKDJvAeQCt +RDTbBFwVEbMkPQYQEad2iyP9N/00sCP3+2FJz0TE54EbI2IVaS/xynzduaRTBaYCWyU9OMZYzczM +zCrNFbFKYmBgoOkjr8zMzMqhv7+fkZGdlPULV1fEMjMzM7NSqur2gNKp1WqTPQQzMzN7ifj3+gt5 +e0BJNBqN5ujoU5M9DDsCfX3T8dwVl+evuDx3xVad+fP2gBZvDzAzMzOzo563B5TE4OAg9Xp9sodh +ZmZmL4Farcbw8ObJHsZRpfRJa0QsAtZIGmpr20CqYrVG0mldrnuIVI51XZf3bwDeCDwBHAN8Bzhb +UiO/P4VUQOAvJF2X2x4Fvp27GJH0kYiYC2wEngXulnRp22cMAJsknTTRfdbrdXx6gJmZmZVVVbYH +dG7cbXZpByAi5gG7SOVfp4/T7/mSlkiaR9p08s629z4O/Exbn/3AN3L8EkkfyW9dC5wlaQEwJyJO +zvErgFuB4w/pDs3MzMxKrPQrrVnnZt+JNv+uBm4D/plUBOCa8fqNiB5SOdbH8+tlQAP4clvsm4DX +RcR24MfA7wPfB6ZJ2pNj7gLOAB4GRoGFgJdPzczMrPKqstK6JCK25597gKFugRHRC8wnfbV/I6li +VTdX5CT0W8DrgIcj4kRgOXAR/z45/h5wuaQlwAbgZlKiu68tZj9wLICkOyX95PBu08zMzKycqrLS +uk3S8taLiLh8nNgVpGRzS36cGRGLgT5gLWlLwfoce4GkrbnPS4ArSXtcXwtsB34BOBARe4D7gOcA +JN0fEa8hJawz2j67F9j7Iu7TzMzMrJSqkrR2mtLx2G4VcKak3QARMQSslbQMuL0VFBGd1z8C1CR9 +qC3mIuB7krZGxB+REtpP5n2rj0jaHxEHImI2sAdYClzcZaxmZmZmlVXVpLWZf06IiAdIiWETOA+g +lbBmm4CrImKWpMc6+rkiIj4IHCRttThnnM/8I+CmiHg76aSAlbn9XOCWfP1WSQ+OMVYzMzOzSnNF +rJIYGBho+sgrMzOzcujv72dkZCdl/cL1SCpiVXWltXRco9jMzKw8/Hv9hbzSWhKNRqNZjRrM5VOd ++tnl5PkrLs9dsVVn/rzS2uKV1pLo6emhrP+wy85zV2yev+Ly3BWb5696nLSWRKPRwH+zVUyeu2Lz +/BWX567YqjF/TsrbOWkticHBQer1+mQPw8zMzF6kWq3G8PDmyR7GUaf0SWtELAL+HPi73HQMcIuk +z3SJXw18XlJjnD7PBi4llVh9Galk629LeiQi5gIbScda3S3p0rbrBoBNkk7Kr19NOu7qGOC7wHsl +PZ3feyWwFThH0rcnus96vY5PDzAzM7OyqkoZ122SluQSqqcD6yNiRpfYDwM9h9DnzbnPhaTE8/zc +fi1wlqQFwJxcSICIWAHcChzf1sfHcj+LgG8Ca3Lsm4B7gdcfxj2amZmZlVbpV1qz9k0p34VCAAAg +AElEQVQhM0jlVE/JFaumAK8ClgMLgZnAcERcDVwBHACuk3TzOH0eBzweEb3ANEl7cvtdwBnAw8Bo +7r99OXQ+cFl+/qX8fCMwDfgN4ItHeL9mZmZmpVKVpHVJRGwn7dh+BlgH/DLwHknfj4gLgXdJ2hAR +HwXeDcwDXiFpbpc+l0fEHKAX6AcWkRLifW0x+4HZAJLuhH8r/9rSCzzZFntsjh3Jsd6BbWZmZkZ1 +ktZtkpa3N0TEO4A/iYj9wOuAHfmtKTy/iqoc2w98jpT0fpFUtvVmSR/O7y8mlXt9IylxbekF9o4z +rn055sAhxJqZmZlVVlWS1rFcD7xe0lMR8QWeT1QbPL+n9SCApH8EFrcuzH+I1b4K+ijwckn7I+JA +RMwG9gBLgYs7Prf9uvuBtwF/CrwVuO9F35WZmZlZCVU5af0isCMifgT8AHhtbt8B3AFcMsH1Q3l7 +QIO0J/b9uf1c0h9mTQW2Snqw47r2Q+UuA27MJxb8kLSvtlusmZmZWWW5jGtJDAwMNH3klZmZWfH1 +9/czMrKTMhcXcBnXCqvVapM9BDMzM3sJ+Hf62LzSWhKNRqM5OvrUZA/DjkBf33Q8d8Xl+Ssuz12x +VWP+vNLarirFBczMzMyswLw9oCQGBwep1+uTPQwzMzN7kWq1GsPDmyd7GEedUietEbEIWCNpqK1t +A7A7t5/W5bqHgB2S1o3T92pgBelYrJcBH5V0b0S8mnR6wDHAd4H3Sno6Iv4v4FP58u/na58F/jtw +MvA08D5J34mIU4BPkyp3HQB+W9K/jHev9Xod/yGWmZmZlVUVtgd0btptdmkHICLmAbtIVbSmd4l5 +N6k862JJi4H/AvxpRPQBHyMVHlgEfJPnj8K6DlgpaSHwZaBGKtX6CknzgAuBK3PsRuADkpYAm4EP +Hd4tm5mZmZVLFZLWzo2+E238XQ3cRkoWV3aJeT9wuaRW8YE9wCmSRoH5pKQU4EvAGRHxS8ATwB9E +xP8C+iT9fXuspK8Bb8rXvVvSrvz8ZcBPJhizmZmZWamVentAtiQitufnU4DZwEVjBUZELymRXEXa +QrAZuGaM0NcC32lvkPSv+Wkv8GR+vh84FjgemAf8br5uS0R8g1Ty9cm2bhoRMVXSD/J45gEfABYe +6s2amZmZlVEVktZtkv6t0lREXD5O7ApSYrslP86MiMVAH7CWtKXgPFKJ1v8T+FZbv4PA3wD7SInr +gfy4l7TK+veSvp1jvwz8R1LC2tv2+VNbq7d5C8KFwNskPXGE925mZmZWClXYHtBpSsdju1XAmZLe +JumtwDpgraTbJS2WtETSTuAG4L9FRA9A/vr/etIfTt0PvD3391bgPtLq6qsi4vW5fQHwt8BXW7ER +MZe0l5aIWEFaYT1dko8EMDMzs8qrwkprp2b+OSEiHiAlr60VVCTtbovdBFwVEbMkPdZqlPRnEfEa +YEdEPENK/t8j6YcRcRlwY0S8D/ghsFzSsxGxCrg1IgC+KulLETEFeEtE3J+7XhkRU4GrgTqwOSKa +wL2SLvnf9R/EzMzM7GjnilglMTAw0PSRV2ZmZsXX39/PyMhOXBHr36vi9gAzMzMzK5gqbg8opVqt +NtlDMDMzs5eAf6ePzdsDSqLRaDRHR5+a7GHYEejrm47nrrg8f8XluSu2asyftwe08/YAMzMzs6NO +eRPWI+XtASUxODhIve7TsczMzIqsVqsxPLx5sodxVCp90hoRi4A1koba2jaQKl6tkXRal+seAnZI +WjdB/y+Ii4jfB95NOkrrTkl/mI+yupJUqvUVwMWS7szns24EngXulnRp7uMy4M3AQeBCSfeON456 +vY5PDzAzM7Oyqsr2gM6Nu80u7cC/lU/dRSoBO71bp2PFRcRsYEjS3JwQL42IE4H/ArxM0gLgN4CB +3M21wFm5fU5EnBwRpwC/KmkuMEQ6t9XMzMyssqqStHZuDJloo8hq4DZgM7DyMOMeAX69LeZlwNPA +UuC7EbEFuA74nxHRC0yTtCfH3gWcIembOR7gF4B/nWC8ZmZmZqVWlaR1SURszz/3kFYvx5QTyfnA +HcCNwLmHEyfpOUmjOeaTwE5J/wAcD/RLOhP4BPAFYAawr63b/cCxuZ+DEfFx4C9JZWPNzMzMKqv0 +e1qzbZKWt15ExOXjxK4grcRuyY8zI2Ix0AesJW0pWA/MGStO0j0R8Qrg88CTwAdyv0/kWCR9JSJ+ +Mb8/o+2ze4G9rReSPpr3334tIu6T9E9H+h/AzMzMrMiqkrR2mtLx2G4VcKak3QARMQSslbQMuL0V +FBHXjxUH3ENaHf0rSZ9s63cH8DZgc0ScDPyzpB9FxIG8D3YPaUvAxTlJXiZpLfBM/jn40ty6mZmZ +WfFUNWlt5p8TIuIBUvLaBM4DaCWi2SbgqoiYJekxgIg4dZy49wALgJdHxNtyvxcC1wPXRsRIjl+T +H88FbiFt1dgq6cF80sC7ImJHbr9Gks+zMjMzs8pyRaySGBgYaPrIKzMzs2Lr7+9nZGQnZS8ucCQV +saq60lo6rlNsZmZWfP593p1XWkui0Wg0y1+DuZyqUT+7vDx/xeW5K7byz59XWjt5pbUkenp6KPs/ +8LLy3BWb56+4PHfF5vmrHietJdFoNOhS4MuOcp67YvP8FZfnrtjKPX9OxsfipLUkBgcHqdd9wICZ +mVlR1Wo1hoc3T/YwjlqlT1ojYhGwRtJQW9sGYHduP63LdQ8BOyStm6D/F8RFxAeAs0lnq35K0m0R +MQO4iVRM4OXAH0j6WkTMBTYCzwJ3S7q0rZ8BYJOkkya6z3q9jk8PMDMzs7KqShnXzu8Pml3aAYiI +ecAuUvnX6d06HSsuIl4NvB+YC5wBfCqH/wGp4MDpwHuB/57brwXOkrQAmJMLDxARK4BbSeVfzczM +zCqtKklr5+aQiTaLrAZuAzYDKw8nTtITwCmSDgKvAX6SY68EPpufvxz4SUT0AtMk7cntd5ESXYBR +YOEE4zQzMzOrhNJvD8iWRMT2/HwKMBu4aKzAnEjOJ5Vz3U1KSK85nDhJB/MWgYuBT+e2ffm6mcAX +gf9K2iqwr63b/XlsSLozxx/ZHZuZmZmVSFWS1m2SlrdeRMTl48SuICW2W/LjzIhYDPQBa0lbCtYD +c8aKk3QPgKRrIuKzwJcj4iuS7o2IXyGVbF0vaUdOfGe0fXYvsPeluWUzMzOz8qhK0tppSsdju1XA +mZJ2A0TEELBW0jLg9lZQRFw/VlxEPAZsyPEN4ABwMCJ+Gfhz4P+WtAtA0v6IOBARs4E9wFLS6uxY +YzUzMzOrrKomrc38c0JEPEBKDJvAeQCtRDTbBFwVEbMkPQYQEad2iwOeAr4ZESOk0wPulHRfRPwF +8Arg6oiYAuyV9JvAuaTV16nAVkkPjjFWMzMzs0pzGdeSGBgYaPrIKzMzs+Lq7+9nZGQnVfiS1WVc +K6xWq032EMzMzOxF8O/y8XmltSQajUZzdPSpyR6GHYG+vul47orL81dcnrtiK/f8eaV1LFU5p9XM +zMzMCszbA0picHCQer0+2cMwMzOzI1Sr1Rge3jzZwzhqlT5pjYhFwBpJQ21tG0gFAdZIOq3LdQ8B +OyStm6D/F8RFxFuBj+WX35C0NiJmAMPAq4CngRWSHo+IucBG4FngbkmX5j4+QSpe0ANcL+lz442j +Xq/jP8QyMzOzsqrK9oDOjbvNLu0ARMQ8YBepktb0bp2OFRcRrwI+Abw9J8R7IuLVpDKvfyNpIem8 +1vNzN9cCZ0laAMyJiJMj4nSgX9I8YAHwwYg49jDv2czMzKw0qpK0dm72nWjz72rgNlJp1pWHGddK +ZK+MiK8AP5D0RG5rVb+aATybK2JNk7Qnt98FnAF8FTin7XOmklZizczMzCqp9NsDsiURsT0/nwLM +Bi4aKzAnkvNJlbF2kxLSaw4j7njgdOBk4MfAfbnQwBPAYET8HXAcaQV1BrCvrdv9wGxJzwDPRMTL +gC8An5X04yO8dzMzM7PCq0rSuk3S8taLiLh8nNgVpMR2S36cGRGLgT5gLWlLwXpgTpe4J4AHJf1L +/qyvAKcCZwFXSLo+In6FVEFrPs+vvgL0AnvzdceRVnG3S/rEi7t9MzMzs2KrStLaaUrHY7tVwJmt +Eq0RMQSslbQMuL0VFBHXjxUHrAFOjIg+0irqXOA6YBR4Ml/+L0CvpP0RcSAiZgN7gKXAxRFxDPBX +wB9LuvWlu20zMzOzYqpq0trMPydExAOk5LUJnAfQSkSzTcBVETFL0mMAEXFqtzhgGnAhsDX3+WeS +vhURHwM+FxEfIP13f1++7lzgFtK+1bskPRgRv0fawrA6In4n9/NeST7TyszMzCrJFbFKYmBgoOkj +r8zMzIqrv7+fkZGduCLW2KpyeoCZmZmZFVhVtweUTq1Wm+whmJmZ2Yvg3+Xj8/aAkmg0Gs3R0acm +exh2BPr6puO5Ky7PX3F57oqt3PPn7QFj8fYAMzMzs6NG+RPWI+XtASUxODhIve7DBczMzIqoVqsx +PLx5sodxVCt90hoRi4A1koba2jaQqlitkXRal+seAnZIWjdB/y+Ii4jfB95NOqrqTkl/GBGvJB1t +dRxwADhb0vciYi6wkVSm9W5Jl7b1MwBsknTSRPdZr9fx6QFmZmZWVlXZHtC5cbfZpR2AiJgH7CKV +f53erdOx4nKhgCFJc3NCvDQiTgRWA1+XtAi4Gbggd3MtcJakBcCciDg597MCuJVUFtbMzMys0qqS +tHZuEJlow8hqUgnVzcDKw4x7BPj1tpiXA09Luhq4LLf9PLA3InqBaZL25Pa7gDPy81Fg4QTjNDMz +M6uE0m8PyJZExPb8fAqp2tRFYwXmRHI+qZzrblJCes2hxkl6jpRwEhGfBHZK+gcASc2I2AacCLwF +mEEq9dqyP48NSXfmPo74ps3MzMzKoipJ6zZJy1svIuLycWJXkBLbLflxZkQsBvqAtaQtBeuBOWPF +SbonIl4BfB54Evjd9s4lvTlSJnoHcAopcW3pBfa+mBs1MzMzK6OqJK2dpnQ8tlsFnClpN0BEDAFr +JS0Dbm8FRcT1Y8UB9wB/CfyVpE+2xX8IeFTSTcBTwHOSfhQRB/I+2D3AUuDiLmM1MzMzq6yqJq3N +/HNCRDxASgybwHkArUQ02wRcFRGzJD0GEBGnjhP3HmAB8PKIeFvu90LSyuuNEbGKtJd4Zb7uXNKp +AlOBrZIeHGOsZmZmZpXmilglMTAw0PSRV2ZmZsXU39/PyMhOqvIF65FUxKrqSmvpuF6xmZlZcfn3 ++MS80loSjUajWd4azOVW7vrZ5ef5Ky7PXbGVd/680tqNV1pLoqenh6r8Qy8bz12xef6Ky3NXbJ6/ +6nHSWhKNRgP/zVYxee6KzfNXXJ67Yivn/DkJH4+T1pIYHBykXq9P9jDMzMzsMNVqNYaHN0/2MI56 +pU9aI2IRsEbSUFvbBlIVqzWSTuty3UPADknrurx/A/BG4AngGOA7wNmSGvn9/wPYAfyKpGdy26PA +t3MXI5I+EhFzgY3As8Ddki5t+4wBYJOkkya6z3q9jk8PMDMzs7KaOtkD+Cnp/P6g2aUdgIiYB+wi +lX+dPk6/50taImkeaU3/nfn6QeAu4Ofa+uwHvpHjl0j6SH7rWuAsSQuAORFxco5fAdwKHH8Y92lm +ZmZWSqVfac06N4lMtGlkNXAb8M+kIgDXjNdvRPSQyrE+ntsbwJuBb7TFvgl4XURsB34M/D7wfWCa +pD055i7gDOBhYBRYCHj51MzMzCqvKknrkpwsQko0ZwMXjRUYEb3AfFI5193AZronrVdExAeBWaRE +9GEASdtyX+3J8XeByyXdHhG/BtwM/Cawry1mfx4bku7MfRzWjZqZmZmVUVWS1m2SlrdeRMTl48Su +ICW2W/LjzIhYDPQBa0lbCtbn2Askbc19XgJcSVqlbWnffvAN4DkASfdHxGtICeuMtpheYO9h352Z +mZlZyVUlae00peOx3SrgTEm7ASJiCFgraRlweysor4C2X/8I0FnOov39i0h/tPXJvG/1EUn7I+JA +RMwG9gBLgYvH6cPMzMyskqqatDbzzwkR8QApMWwC5wG0EtZsE3BVRMyS9FhHP63tAQdJf9R2zhif +0/JHwE0R8XbSSQErc/u5wC35+q2SHhynDzMzM7NKchnXkhgYGGj6yCszM7Pi6e/vZ2RkJ1X6ctVl +XCusVuvcmWBmZmZF4N/hh8YrrSXRaDSao6NPTfYw7Aj09U3Hc1dcnr/i8twVWznnzyut4/FKa0n0 +9PRQpX/sZeK5KzbPX3F57orN81c9TlpLotFo4L/ZKibPXbF5/orLc1ds5Zs/J+ATKX3SGhGLgDWS +htraNpAKB6yRdFqX6x4Cdkha1+X9G4A3ko6xOgb4DnC2pEZEbAR+jVQsAOCdkvbn694A/DXws5Ke +iYi5wEbSiQJ3S7q07TMGgE2STproPgcHB6nX6xOFmZmZ2VGkVqsxPLx5sodRCKVPWrPO/yvW7NIO +QETMA3aRKmlNl9Rt08z5bcUFbgbeSToi603AUkmjHf32An8MPN3WfC3wm5L2RMQdEXGypIcjYgXw +/wDHH8oN1ut1fHqAmZmZldXUyR7AT0nnmvtEa/CrgdtIJVxXTtRvRPSQKls9nku3/iJwXUTsiIj3 +tsVfB1xIKvnaSmKnSdqT378LOCM/HwUWTjBOMzMzs0qoykrrkojYnp9PAWaTKlS9QE4k55MqY+0m +Ja7XdOm3VVxgFikRfRiYDnyaVNL1ZcD2iPg68FvAFkm7cmILKdHd19bf/jw2JN2Zx3PYN2tmZmZW +NlVJWrdJWt56ERGXjxO7gpTYbsmPMyNiMdAHrCVtKVifYy9o2x5wCSlR/R3g05Kezu33ACcD7wEe +jYj3ATOBrcB/IiWuLb3A3hd3q2ZmZmblU5WktdOUjsd2q4AzW6VcI2IIWCtpGXB7KyivgLZf/whQ +AwL4s4g4hfTfdz7wBUm/1HbtPwFvkfRsRByIiNnAHmApcHGXsZqZmZlVVlWT1mb+OSEiHiAlhk3g +PIBWwpptAq6KiFmSHuvop7U94CBpf/A5+Q+q/hT4GvAMcKOk/2+Mz28lo2uAW/L1WyU9OEasmZmZ +WaW5IlZJDAwMNH16gJmZWbH09/czMrKTqn2xeiQVsapyeoCZmZmZFVhVtweUTq1Wm+whmJmZ2WHy +7+9D5+0BJdFoNJqjo91qINjRrK9vOp674vL8FZfnrtjKN3/eHjARbw8wMzMzs6OetweUxODgIPV6 +fbKHYWZmZoehVqsxPLx5sodRCKVPWiNiEbBG0lBb2wZStas1kk7rct1DwA5J67q8fwPwRuAJ4Bjg +O8DZkhoR8QHgbNJRWJ+SdFu+5lHg27mLEUkfiYi5wEbgWeBuSZe2fcYAsEnSSRPdZ71ex6cHmJmZ +WVlVZXtA58bdZpd2ACJiHrCLVP51+jj9ni9piaR5pM0o74yIVwPvB+YCZwCfyn32A9/I8UskfST3 +cS1wlqQFwJyIODnHrwBuBY4/zHs1MzMzK52qJK2dm30n2vy7GrgN2AysnKjfiOghlWN9XNITwCmS +DgKvAX6SY98EvC4itkfEloj4xYjoBaZJ2pNj7iIlugCjwMKJbszMzMysCqqStC7JyeL2iLgHGOoW +mBPJ+cAdwI3AueP0e0VEbAe+BbwOeBhA0sG8ReCrwE059nvA5ZKWABuAm0mJ7r62/vYDx+Y+7pT0 +E8zMzMys/Htas22SlrdeRMTl48SuIK2gbsmPMyNiMdAHrCVtKVifYy+QtDX3eQlwJWmVFknXRMRn +gS9HxFeAB4Dn8nv3R8RrSAnrjLbP7gX2vsh7NTMzMyudqiStnaZ0PLZbBZwpaTdARAwBayUtA25v +BUVE5/WPALWI+CVgQ45vAE+T/iDrItIfbX0y71t9RNL+iDgQEbOBPcBS4OIuYzUzMzOrrKomrc38 +c0JEPEBKDJvAeQCthDXbBFwVEbMkPdbRzxUR8UFSUjoVOEfSnoj4ZkSM5PYvSbovInYBN0XE20kn +BazMfZwL3JKv3yrpwTHGamZmZlZprohVEgMDA00feWVmZlYs/f39jIzspGpfrB5JRayqrrSWjmsX +m5mZFY9/fx86r7SWRKPRaJarBnN1lK9+drV4/orLc1ds5Zs/r7ROxCutJdHT00PV/sGXheeu2Dx/ +xeW5KzbPX/U4aS2JRqOB/2armDx3xeb5Ky7PXbGVa/6cfB8KJ60lMTg4SL1en+xhmJmZ2SGq1WoM +D2+e7GEURumT1ohYBKyRNNTWtgHYndtP63LdQ8AOSeu6vH8D8EbS2avHAN8BzpbUyO9PIVXV+gtJ +17Vd9wbgr4GflfRMRMwFNpKOwbpb0qU57jLgzaRjsy6UdO9491mv1/HpAWZmZlZWVSnj2vn9QbNL +OwARMQ/YRSr/On2cfs+XtETSPNLa/jvb3vs48DMd/fYCf0wqONByLXCWpAXAnIg4OSJOAX5V0lxS +ydmrx707MzMzs5KrStLauVlkos0jq4HbgM08XwSga78R0UMqx/p4ft2qhvXljvjrgAuBH+e4XmCa +pD35/buAMyR9k1QdC+AXgH+dYLxmZmZmpVaVpHVJRGzPP/eQVi/HlBPJ+aSv9m8kVazq5oqI2A58 +C3gd8HBEnAgsJ5Vt/bfkOCIuBrZI2tXWPgPY19bffuBYAEkHI+LjwF8CNxzGvZqZmZmVTun3tGbb +JC1vvYiIy8eJXUFKKrfkx5kRsRjoA9aSthSsz7EXSNqa+7wEuJK0x/W1wHbSKumBiKiTEtlHI+J9 +wExgK/CfSIlrSy+wt/VC0kfz/tuvRcR9kv7pyG7fzMzMrNiqkrR2mtLx2G4VcKak3QARMQSslbQM +uL0VFBGd1z8C1CR9qC3mIuB7ku4Cfqmt/Z+At0h6NiIORMRsYA9pS8DFOUleJmkt8Ez+OfjibtnM +zMysuKqatDbzzwkR8QAp+WwC5wG0EtZsE3BVRMyS9FhHP1dExAdJCeVU4JzD+PxWwrsGuCVfv1XS +gxExFXhXROzI7ddI8nlWZmZmVlku41oSAwMDTR95ZWZmVhz9/f2MjOykisUFXMa1wmq12mQPwczM +zA6Df3cfHq+0lkSj0WiOjj412cOwI9DXNx3PXXF5/orLc1ds5Zo/r7QeCq+0lkRPTw9V/EdfBp67 +YvP8FZfnrtg8f9XjpLUkGo0GXQp82VHOc1dsnr/i8twVW3nmz4n3oXLSWhKDg4PU6z5gwMzMrAhq +tRrDw5snexiFUvqkNSIWAWskDbW1bQB25/bTulz3ELBD0roJ+n9BXER8ADibdBTWpyTdFhGvJB1t +dRxwADhb0vciYi6wEXgWuFvSpW39DACbJJ000X3W63V8eoCZmZmVVVXKuHZ+f9Ds0g5ARMwDdpHK +v07v1ulYcRHxauD9wFzgDOBTOXw18HVJi4CbgQty+7XAWZIWAHMi4uTczwrgVuD4w7hPMzMzs1Kq +StLauWFkog0kq4HbgM3AysOJk/QEcIqkg8BrgJ/k9quBy/J1Pw/sjYheYJqkPbn9LlKiCzAKLJxg +nGZmZmaVUPrtAdmSiNien08BZgMXjRWYE8n5pHKuu0kJ6TWHEyfpYN4icDHw6dY1kpoRsQ04EXgL +MAPY19bt/jw2JN2ZP+dI7tfMzMysVKqStG6TtLz1IiIuHyd2BSmx3ZIfZ0bEYqAPWEvaUrAemDNW +nKR7ACRdExGfBb4cEV+RdG9uf3OkTPQO4BRS4trSC+x9KW7YzMzMrEyqkrR2mtLx2G4VcKak3QAR +MQSslbQMuL0VFBHXjxUXEY8BG3J8A3gaOBgRHwIelXQT8BTwnKQfRcSBiJgN7AGWklZnxxqrmZmZ +WWVVNWlt5p8TIuIBUmLYBM4DaCWi2SbgqoiYJekxgIg4tVscKSH9ZkSMkE4P+JKk+yJCwI0RsYq0 +l3hlvu5c0qkCU4Gtkh4cY6xmZmZmleYyriUxMDDQ9JFXZmZmxdDf38/IyE6q+oWqy7hWWK1Wm+wh +mJmZ2SHy7+3D55XWkmg0Gs3R0acmexh2BPr6puO5Ky7PX3F57oqtPPPnldZDVZVzWs3MzMyswLw9 +oCQGBwep1+uTPQwzMzM7BLVajeHhzZM9jEIpfdIaEYuANZKG2to2kAoCrJF0WpfrHgJ2SFrX5f0b +gDcCTwDHAN8BzpbUiIj1wBDpyKsNkv4iIl5JOiXgOOBAjv1eRMwFNgLPAndLurTtMwaATZJOmug+ +6/U6/kMsMzMzK6uqbA/o3Ljb7NIOQETMA3aRKmlNH6ff8yUtkTSPtCnlnRFxLPBfScUHlpISUkgl +X78uaRFwM3BBbr8WOEvSAmBORJycx7ACuBU4/tBv08zMzKycqpK0dm72nWjz72rgNlJp1pUT9RsR +PaTKVo+TzmndQ6pu9SrSaiuSrgYuy9f9PLA3l4KdJmlPbr8LOCM/HwUWTjBOMzMzs0oo/faAbElE +bM/PpwCzgYvGCsyJ5HxSZazdpMT1mi79XhERHwRmAT8GHs7tjwLfIv2fgg2tYEnNiNgGnAi8hZTo +7mvrb38eG5LuzOM5nPs0MzMzK6WqJK3bJC1vvYiIy8eJXUFKbLfkx5kRsRjoA9aSthSsz7EXSNqa ++7wEuBL4S2AmUMvXb42I+yV9HUDSmyNloncAp5AS15ZeYO+LvFczMzOz0qlK0tppSsdju1XAma0S +rRExBKyVtAy4vRWUV0Dbr3+ElKiOAj+R9GyO2wv8TER8CHhU0k2kLQTPSfpRRByIiNmkLQVLgYu7 +jNXMzMyssqqatDbzzwkR8QApMWwC5wG0EtZsE3BVRMyS9FhHP63tAQdJWwHOkbQnIr4eEX9N2s+6 +Q9JfRcTfADdGxKocuzL3cS7pVIGpwFZJD44xVjMzM7NKc0WskhgYGGj6yCszM7Ni6O/vZ2RkJ1X9 +QvVIKmJVdaW1dFzD2MzMrDj8e/vweaW1JBqNRrMcNZirpzz1s6vJ81dcnrtiK/As/moAACAASURB +VM/8eaX1UHmltSR6enqo6j/8ovPcFZvnr7g8d8Xm+aseJ60l0Wg08N9sFZPnrtg8f8XluSu24s+f +E+7D5aS1JAYHB6nX65M9DDMzMxtHrVZjeHjzZA+jkEqftEbEIuDPgb/LTccAt0j6TJf41cDnJTXG +6fNs4FLgH0n/DRvAb0t6JL/fAwwD17cVH7gMeDPpeKwLJd0bEa8mHXd1DPBd4L2Sns7xrwS2ko7R ++vZE91mv1/HpAWZmZlZWUyd7AD8l2yQtkbQEOB1YHxEzusR+GOg5hD5vzn0uJCWe5wNExOuBe4H/ +2AqMiFOAX5U0FxgCrs5vfSz3swj4JrAmx78p9/H6w7pLMzMzs5Iq/Upr1r5xZAbwHHBKRFyU33sV +sBxYSCrBOhwRVwNXAAeA6yTdPE6fxwGP5+fTSVW1Pth6U9I3I2JpfvkLwL/m5/OBy/LzL+XnG4Fp +wG8AXzyCezUzMzMrnaokrUsiYjtpx/YzwDrgl4H3SPp+RFwIvEvShoj4KPBuYB7wirw6OpblETEH +6AX6gUUAknYBRMS/22Et6WBEfDx/9rrcPAN4Mj/fDxybY0fG6sPMzMysqqqStG6TtLy9ISLeAfxJ +ROwHXgfsyG9N4flVVOXYfuBzpKT3i6R9qTdL+nB+fzGp3OsvjjcISR+NiA3A1yJiBylh7SWt5vYC +e1/kfZqZmZmVUlWS1rFcD7xe0lMR8QWeT1QbPL+n9SCApH8EFrcuzH+I1b4K+ijw8m4flJPaZZLW +klZ6n8mfcz/wduBG4K3AfS/6rszMzMxKqMpJ6xeBHRHxI+AHwGtz+w7gDuCSCa4fytsDGqQ9se/v +eL/98Lh7gXfl1dWpwDWS6vlEgRsj4n3AD0n7arv1YWZmZlZZLuNaEgMDA00feWVmZnZ06+/vZ2Rk +J1UvLuAyrhVWq9UmewhmZmY2Af++PnJeaS2JRqPRHB19arKHYUegr286nrvi8vwVl+eu2Io/f15p +PdxrvNJaEj09PVT9fwBF5bkrNs9fcXnuis3zVz1OWkui0Wjgv9sqJs9dsXn+istzV2zFnj8n20fC +SWtJDA4OUq/XJ3sYZmZm1kWtVmN4ePNkD6OwSp+0RsQi4M+Bv8tNxwC3SPpMl/jVwOclNcbp82zg +UuAfSf8NG8BvS3okIt4M/CHpLNbHc/vT+bpXks5m/aCkrRHxauCWPKbvAu/tiN0KnCPp2xPdZ71e +x6cHmJmZWVlNnewB/JRsk7RE0hLgdGB9RMzoEvthni8uMJ6bc58LSYnn+bn9M8A7JJ0O/APwvrZr +PkMuWJB9LPezCPgmsAYgIt5EOtv19YcwDjMzM7PSK/1Ka9a+eWQG8BxwSkRclN97Felg/4XATGA4 +Iq4GriCVWL1O0s3j9HkcaVUV4HRJP8zPXwa0Vk7Xk1ZZ280HLsvPv5SfbwSmAb9BKoBgZmZmVnlV +SVqXRMR20o7tZ4B1wC8D75H0/Yi4EHiXpA0R8VHg3cA84BWS5nbpc3muiNUL9AOLACT9ACAifou0 +qvvRvGVgQNK5ETG/rY8ZwJP5+X7g2NzHSO7DO7XNzMzMqE7Suk3SvyuRGhHvAP4kIvYDryOVb4W0 +gtpKFpVj+4HPkZLeL5K+4r9Z0ofz+4uBTcAv5te/BywDlkp6JiLOAX4+Iu4B3gCcGhE/ICWsvaTV +3F5g7/+GezczMzMrvKokrWO5Hni9pKci4gs8n6g2eH5P60EASf8ILG5dmP8Qq30V9FHg5fm9jwCn +AmdIOpCvf0/btTcAt0p6OCLuB94G/CnwVuC+l/gezczMzEqhyknrF4EdEfEj4AfAa3P7DuAO4JIJ +rh/K2wMapD2x74+InyX9cdU3gC9HRBP4M0mfbbuu/VC5y4Ab84kFPyTtq6VLrJmZmVlluYxrSQwM +DDR95JWZmdnRq7+/n5GRnbi4gMu4VlqtVpvsIZiZmdk4/Lv6xfFKa0k0Go3m6OhTkz0MOwJ9fdPx +3BWX56+4PHfFVuz580rrkay0VqW4gJmZmZkVmLcHlMTg4CD1en2yh2FmZmZd1Go1hoc3T/YwCqv0 +SWtELALWSBpqa9sA7M7tp3W57iFgh6R1E/T/griI+ABwNunIrE9Juq3tvd8E/nPrGKx8AsHVwLPA +3ZIubYsdADZJOmmi+6zX6/gPsczMzKysqrI9oHPjbrNLOwARMQ/YRaqkNb1bp2PFRcSrgfcDc4Ez +gE+1xW8kHXPVvo/j/wXOkrQAmBMRJ+fYFcCtwPGHeI9mZmZmpVWVpLVzs+9Em39XA7cBm4GVhxMn +6QngFEkHgdcAP2mLvx84t/UiInqBaZL25Ka7SIkuwCiwcIJxmpmZmVVCVZLWJRGxPf/cAwx1C8yJ +5HxSgYEbaUsyDzVO0sG8ReCrwE1t7bd1dDMD2Nf2ej9wbI69U9JPMDMzM7Py72nNtkn6t2pTEXH5 +OLErSCuxW/LjzIhYDPQBa0lbCtYDc8aKk3QPgKRrIuKzpMpYX5F07xiftY+UuLb0AnuP8B7NzMzM +SqsqSWunKR2P7VYBZ0raDRARQ8BaScuA21tBEXH9WHER8RiwIcc3gAOkP8h6AUn7I+JARMwG9gBL +gYu7jNXMzMyssqqatDbzzwkR8QApMWwC5wG0EtFsE3BVRMyS9BhARJzaLQ54CvhmRIyQktUvSbpv +nLGsAW4hbdXYKunBMcZqZmZmVmmuiFUSAwMDTR95ZWZmdvTq7+9nZGQn/hL1yCpiVXWltXRcz9jM +zOzo5t/VL45XWkui0Wg0i1uDudqKXT/bPH/F5bkrtmLPn1davdJaYT09Pfh/BMXkuSs2z19xee6K +zfNXPU5aS6LRaOC/2Somz12xef6Ky3NXbMWdPyfaR8pJa0kMDg5Sr9cnexhmZmY2hlqtxvDw5ske +RqGVPmmNiEXAGklDbW0bgN25/bQu1z0E7JC0rsv7NwBvBJ4AjgG+A5wtqZHfn0KqlvUXkq6LiGNI +1bF+llRU4GxJT0TEXGAj8Cxwt6RL8/WfIFXc6gGul/S58e6zXq/j0wPMzMysrKpSxrXz+4Nml3YA +ImIesItU/nX6OP2eL2mJpHmk9f53tr33ceBn2l6fC/yNpIXAF4H/ltuvBc6StACYExEnR8TpQH/u +dwHwwYg4dqKbNDMzMyurqiStnRtIJtpQshq4DdgMrJyo34joIZVjfTy/blXD+nJb7Py2118C3hwR +vcA0SXty+13AGcBXgXParp1KWok1MzMzq6TSbw/IlkTE9vx8CjAbuGiswJxIzieVc91NSlyv6dLv +FRHxQWAW8GPg4Yg4EVgO/GfgY22xM4An8/P9wLFAL2mrAG3tsyU9AzwTES8DvgB8VtKPD/luzczM +zEqmKknrNknLWy8i4vJxYleQEtst+XFmRCwG+oC1pC0F63PsBZK25j4vAa4k7XF9LbAd+AXgQETs +ISWsvfm6XmAvKUmd0fbZrXYi4jjSau92SZ84gns2MzMzK42qJK2dpnQ8tlsFnClpN0BEDAFrJS0D +bm8FRUTn9Y8ANUkfaou5CPiepK15BfZtwNfz432S9kfEgYiYDewBlgIX5z/a+ivgjyXd+lLcsJmZ +mVmRVTVpbeafEyLiAVLy2QTOA2glrNkm4KqImCXpsY5+WtsDDpL2nZ5Dd9cCN0bEfcAB0hYCgDXA +Lfn6uyQ9GBG/R9rCsDoifieP7b2SfKaVmZmZVZLLuJbEwMBA00demZmZHZ36+/sZGdmJiwskLuNa +YbVabbKHYGZmZl349/SL55XWkmg0Gs3R0acmexh2BPr6puO5Ky7PX3F57oqtuPPnlVbwSmul9fT0 +4P8hFJPnrtg8f8XluSs2z1/1OGktiUajQZcCX3aU89wVm+evuDx3xVbc+XOifaSctJbE4OAg9boP +FzAzMzsa1Wo1hoc3T/YwCq30SWtELALWSBpqa9tAqna1RtJpXa57CNghad0E/b8gLiJ+H3g36f8C +3inpD9veewPw18DPSnomIuYCG0llWu+WdGmO+wSpMlcPcL2kz403jnq9jk8PMDMzs7KaOtkD+Cnp +/P6g2aUdgIiYB+wilX/9/9m79zi7q/re/68QCJcQ/JnSCqZ1mjNT360oeHkoJHINONRbKdALgVS5 +GIgSWk9BLbYKYgHFHm4touLxLkQo5NeKKEFAMRgBhSJe8m45mF2LHlFiSBoEws6cP9bash1nMpOQ +MLP3fj8fj3nsvb/7813f9Z31yGM+WXvt9Zk+WqMjxdVCAfNt71cT4sNrYYFWidh/AB5ra+Zy4Bjb +BwD7StpH0sFAv+25wAHAOyQ9a7PuOCIiIqKL9ErSOnwByVgLShZSSqguBY7fzLgfAn/YFrMDTyWp +HwHOBB6FXyax02yvqu/fCBwGfJ1fLVSwHWUmNiIiIqIndf3ygGqepFvq8ymUalNnjRRYE8n9KeVc +V1IS0svGG2f7SWB1jfkAcLft+yWdDVxv+z5JraR5N2BtW7PrgNm2nwCekLQ98Angw7Yf3cJ7j4iI +iOh4vZK03my7VTYVSedtInYBJbG9vj7uIekQYCawmLKk4HRg35HibN8qaUfgY8Ajtt9c2z0O+KGk +NwF7AMuA11MS15YZwJrax2dTZnFvsX3B07n5iIiIiE7XK0nrcFOGPbY7CXid7ZUAkuYDi20fDVzb +CpJ0xUhxwK3AvwJftv2BVrzt32s79wfAq2xvkPR4XQe7CjgcOFvSTsCXgX+wfdVWuueIiIiIjtWr +SetQ/dlL0p2U5HUIOAOglYhW1wEXSZpl+0EASS/ZRNxxlC9P7SDpNbXdM23fMez6rYR5EXAlZd3q +jbbvkvRWyhKGhZJOrvEn2M6eVhEREdGTUsa1SwwMDAxly6uIiIjJqb+/nxUr7ibFBYqUce1hfX19 +E92FiIiIGEX+Tj99mWntEs1mc2j16vUT3Y3YAjNnTidj17kyfp0rY9fZOnf8MtMKWzbT2iv7tEZE +REREB8vygC4xODhIo5HvaUVERExGfX19LFmydKK70dG6PmmVdBCwyPb8tmPnUwoCLKqlVkc67x5g +ue3TRnn/48BLgYeBnYAHgDfabkpaCJxMqWJ1ru0vSNoNWALsSqmQtcD2Q5L2Ay6usTfZPqe2fy5w +KLCRsvvAVzd1n41Gg3wRKyIiIrpVrywPGL5wd2iU4wBImgvcR6mkNX0T7b7N9jzbcymLVI6Q9Bzg +NGAOpZzr+ZJ2oJR5/bbtA4GrgbfVNi4HjrF9ALCvpH0kvRh4he39gPnAJZt3uxERERHdpVeS1uGL +fcda/LuQUo1qKSXZ3GS7kqZSKls9BLyCMkP7pO21wH8Ae1OS4Fb1q92ADbUU7DTbq+rxG4HDbP8b +pdAAwO8CPx+jvxERERFdreuXB1TzJN1Sn0+hbNx/1kiBNZHcn1IZayUlcb1slHbfL+kdwCzgUeBe +4I+AR9pi/ht4FvAzYFDSd4FnUwoQ7AasbYtdV/uG7Y2S/p4yazviEoWIiIiIXtErSevNto9tvZB0 +3iZiF1AS2+vr4x6SDgFmUsq0DgGn19i3215W23wPcCHwLzw1owowA1hDSZLfb/sKSS+iVNDaf5RY +AGz/XV1/e4ekr9n+wWbfeUREREQX6JWkdbgpwx7bnQS8rlWiVdJ8YLHto4FrW0GShp//Q6APuAs4 +V9I0YGfg94HvAKt5agb2p8AM2+skPS5pNrCKsiTg7JokH217MfBE/dn4dG86IiIiolP1atI6VH/2 +knQnJfkcAs4AaCWs1XXARZJm2X5wWDut5QEbKeuDT7T9E0mXAstru++0/YSkdwMflXQq5ff+ptrG +m4Er6/nLbN8laTvgTyUtr8cvs539rCIiIqJnpSJWlxgYGBjKllcRERGTU39/PytW3E0qYhVbUhGr +V2dau05qGkdERExe+Tv99GWmtUs0m82hzqzBHJ1bPzsg49fJMnadrXPHLzOtkJnWnjZ16lTyD6Ez +Zew6W8avc2XsOlvGr/ckae0SzWaTUQp8xSSXsetsGb/OlbHrbJ07fkm0t1SS1i4xODhIo5ENBiIi +Iiajvr4+lixZOtHd6Ghdn7RKOghYZHt+27HzKdWuFtmeM8p591DKsY5YjUrSx4GXAg8DOwEPAG+0 +3ZR0MfBKSoUrgCNsr6vnHQn8ie3j6ut9gUuADcBNts9pu8YAcJ3tvce6z0ajQXYPiIiIiG613UR3 +4Bky/PODoVGOAyBpLnAfpfzr9E20+zbb82zPpcz3H1GPvww4vL43ry1hvRg4l1/9bOBDwDG2DwD2 +lbRPjV0AXAXsPt6bjIiIiOhWvZK0Dl9AMtaCkoXANcBS4Pix2pU0lVKO9SFJU4DfAz4iabmkE9ri +b6cUE6CeNwOYZntVPXQjcFh9vho4cIx+RkRERPSEXkla50m6pf7cCswfLbAmkvsDXwA+SVuSOYL3 +S7oF+B7w28C9wHTgUmAB8IfAWyS9EMD2NcPO3w1Y2/Z6HfCsGnuD7V+M/xYjIiIiulfXr2mtbrZ9 +bOuFpPM2EbuAMoN6fX3cQ9IhwExgMWVJwek19u22l9U23wNcCJwMXGr7sXr8FmAf4DsjXGstJXFt +mQGs2ey7i4iIiOhyvZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1rSBJw8//IdAHCPicpBdTfr/7A58Y +qRO210l6XNJsYBVwOHD2KH2NiIiI6Fm9mrQO1Z+9JN1JSQyHgDMAWglrdR1wkaRZth8c1s77Jb0D +2EhZanGi7VWSPgXcATwBfNL29zfRl0XAlfX8ZbbvGqGvERERET0tZVy7xMDAwFC2vIqIiJic+vv7 +WbHibvIBapEyrj2sr69vorsQERERo8jf6acvM61dotlsDq1evX6iuxFbYObM6WTsOlfGr3Nl7Dpb +545fZlohM609berUqeQfQmfK2HW2jF/nyth1toxf70nS2iWazSb5zlZnyth1toxf58rYdbbOHL8k +2U9HktYuMTg4SKPRmOhuRERExDB9fX0sWbJ0orvR8bo+aZV0ELDI9vy2Y+cDK+vxOaOcdw+w3PZp +o7z/ceClwMPATsADwBttN+v7vwksB15k+4l67L+Af69NrLD9t5L2Ay4GNgA32T6nxl4MvJJSJetv +bN+5qftsNBpk94CIiIjoVl2ftFbDPz8YGuU4AJLmAvdRyr9Otz3aSu+3tVXE+ixwBHCdpEHgfcBz +2trsB75l+4hhbVwOHFn3d/2CpH0oJWGfb/vlkn4D+BLw8vHebERERES36ZWkdfgikrEWlSwErgH+ +EzgeuGxT7UqaSinH+lA93gQOBb7VFvsy4LdrWddHgf8J/F9gmu1VNeZG4FW13RsBbD8sqSnpt2w/ +REREREQP6pWkdV5NFqEkhLOBs0YKlDSDUnr1JMoSgqWMnrS2KmLNoiSi9wLYvrm21Z4c/wg4z/a1 +kl4JfBY4EljbFrOu9u024HRJlwHPA14ATN+cG46IiIjoJr2StN5s+9jWC0nnbSJ2ASWxvb4+7iHp +EGAmsJiypOD0Gvv2tuUB7wEupMzStrQvP/gW8CSA7dsl7UlJWHdri5kBrLH9ZUmvAG4FvlvPfXiz +7jgiIiKii/RK0jrclGGP7U4CXmd7JYCk+cBi20cD17aCJA0//4fA8HIX7e+fRUk8P1DXrf7Q9jpJ +j0uaDawCDgfOlvR79f0DJP028Enba4mIiIjoUb2atA7Vn70k3UlJLoeAMwBaCWt1HXCRpFm2HxzW +Tmt5wEZgO+DEEa7T8j7gM5JeS9kp4Ph6/M3AlfX8ZbbvkrQjcL6ktwC/AE59OjcbERER0elSxrVL +DAwMDGXLq4iIiMmnv7+fFSvuJsUFnpIyrj2sr2/4yoSIiIiYDPI3euvITGuXaDabQ6tXj7adbExm +M2dOJ2PXuTJ+nStj19k6c/wy09qyJTOt222LjkREREREbE1ZHtAlBgcHaTQaE92NiIiIGKavr48l +S5ZOdDc63riTVkm/C+xFKSn6PNs/2Fad2lokHQQssj2/7dj5lKIBi2zPGeW8e4Dltk/bRNsLKXu6 +bqT8Hv/O9ldr2dUrgZ0oBQVOsP2YpLcCb+KpqlmnAPcDHwT2AR4D3mT7gbZrXAistP2Rse610WiQ +L2JFREREtxrX8gBJfw58HrgU+A1ghaQF27JjW9HwRbtDoxwHQNJc4D5KFa0Rq1DV38dhwCG2DwH+ +AviUpJnAu4HP2j4I+DdKcgqljOtf2J5Xf/4D+GNgR9tzgTMpxQmQtLukG4DXb9EdR0RERHSZ8a5p +fQcwF1hr+yHgJZQkqxMMX+g71sLfhcA1lPKtx48ScwqlJOtGANurgBfbXk0pAfulGvdFSnILJWk9 +U9LX6t6utMfavqPGAOxKKUbw6TH6GhEREdETxrs8oFmrNwFg+8eSNm67bm1V8yTdUp9PAWZTEsJf +I2kGJZE8ibKEYClw2QihzwUeaD9g++f16Qzgkfp8HfCs+vyq2tZaYKmk71BKuD7S1kxT0nY1CV4l +6TXjvMeIiIiIrjbepPW7khYDO0h6MfAWykffneBm28e2Xkg6bxOxCyiJ7fX1cQ9JhwAzgcU8VTVr +FfA7wPfa2h0Evk1JSmcAj9fHNTXkklYp1vrR/0soCeuMtutv15q9jYiIiIinjHd5wKnALEpJ0Y9R +ErO3bKtObWNThj22Owl4ne3X2H41cBqw2Pa1tg+pa1HvBj4OvEvSVABJzweuAJ4EbgdeW9t7NfA1 +SbsB35G0i6QpwDzgm8DXW7GS9qOspY2IiIiIYcY102p7PWUNa6esY92Uofqzl6Q7KclrawYV2yvb +Yq8DLpI0y/aDrYO2PydpT2C5pCcoyf9xtn8m6Vzgk5LeBPwMONb2LySdCXyFskvAzba/VBPYV0m6 +vTZ9wgh9jYiIiOh5m6yIVdetjhQwBRiyPXVbdSw2z8DAwFC2vIqIiJh8+vv7WbHiblIR6ylbUhFr +kzOttlMxKyIiIiIm3LiWB0iaRvn4XJR1nm8F3mf7iW3Yt9gMfX19E92FiIiIGEH+Rm8d49094DLg +p5R9RJ8EBoD/TdlUPyaBZcuWsXr1+onuRmyBmTOnZ+w6WMavc2XsOlvGr/eM9+P/l9l+J7DB9qPA +GylbNkVEREREbHPjnWkdqksEWl/K2p18s31SGRwcpNFoTHQ3IiIiYpi+vj6WLFk60d3oeONNWi8G +vkzZbP9i4EjgPdusV1uRpIOARbbntx07n1LxapHtOaOcdw+w3PZpY7T/a3GSFgInAxuAc21/oe7V ++hlKFawdgL+2fUfdn/XiGnuT7XNqGxdQqnNNBa6w/dFN9aPRaJDdAyIiIqJbjWt5gO1PA4uAcynl +S19v+2PbsmNb2fBZ4aFRjgMgaS5lo/95kqaP1uhIcZKeQ/my2hzgD4HzJe0A/DXwZdsHU/Zj/WBt +5nLgGNsHAPtK2kfSwUC/7bnAAcA7JD2LiIiIiB61yZlWSW8YdmhdfXyxpBfb/tS26dZWN3wvsLH2 +BlsIXAP8J3A85Yto4417BWXm9UlgraT/APYGLqSUdoUy0/oLSTOAabZX1eM3AocB/wjc03ad7Sgz +sRERERE9aazlAYeM8X6nJK3zJN1Sn08BZgNnjRRYE8n9KSVdVwJLGSFp3UTcbsAjbaH/DTzL9tp6 +3h7Ap4G/rLFr22LXAbPrVmJPSNoe+ATw4foFuIiIiIieNFZxgeFlRTvVzbaPbb2QdN4mYhdQEtvr +6+Mekg4BZgKLKUsKTgf2HSVuLSUZbZkBrKnXfRFwJXC67eU18R0t9tmUWdxbbF+whfcdERER0RXG +Wh7wA0bfJWDIdv/W79IzYsqwx3YnAa+zvRJA0nxgse2jgWtbQZKuGCkOeAvw93W3hZ2B3we+I+kF +wNXAn9m+D8D2OkmPS5oNrAIOB86WtBPli2//YPuqrXvrEREREZ1nrOUBB9fHnYHXALsCDco32sda +OjCZDdWfvSTdSUlehyhVv2glotV1wEWSZtl+EEDSS0aLo/xOLwWW13bfafuJOru7I3CJpCnAGttH +Am+mzL5uB9xo+y5Jb6UsYVgo6eTatxNsZ0+riIiI6ElThobG3m5V0heAXSiVsL4GHAissP2n27Z7 +MV4DAwND2fIqIiJi8unv72fFirsZ+3vgveM3f3PGZv8yxrtPq4DfAy4BPkaZkfznzb1YbDupaxwR +ETE55W/01jHepPUh20OSVgJ72/6UpB23Zcdi8yxbtiw1mDtU6md3toxf58rYdbaMX+8Zb9L6HUn/ +SNkI/7OSnkvZazQmialTp5KPHTpTxq6zZfw6V8aus2X8es94k9Y3A3Ntf0/SWcChwLFjnBPPoGaz +yegbPcRklrHrbBm/zpWx62ydNX5JrreGcX0RKya/Qw89dKjRyOYCERERk0VfXx9LliwlSeuv25Zf +xOpYkg4CFtme33bsfEoVq0W254xy3j2UcqynjdH+r8VJWgicTCm9eq7tL0jaDfgMpZjADsBf275D +0n7AxTX2Jtvn1DaOBxZRtsL6F9vnbqofjUaD7B4QERER3Wq7ie7AM2T4dPLQKMcBkDQXuI9S/nX6 +aI2OFCfpOcBpwBzgD4HzJe0A/DXwZdsHAycAH6zNXA4cY/sAYF9J+0j6H8ApwEGUylvTJE3dvFuO +iIiI6B5dP9NaDZ+CHmtKeiGlhOp/AscDl21G3CsoM69PAmsl/QewN3Ah8Hg9bwfgF7WM6zTbq+rx +G4FXUUrBfgv4FLAHZba2OdZNRkRERHSrXkla50m6pT6fQqk2ddZIgTWR3J9SznUlsJQRktZNxO0G +PNIW+t/As2yvreftAXwa+Msau7Ytdl3t2zTgAMps7XRguaSXt9qIiIiI6DW9krTebPuXux3Ukqqj +WUBJbK+vj3tIOgSYCSymLCk4nfKx/UhxaynJaMsMYE297osoJVtPt728Jr4jxa4HvmL7UeBRSd8H +ng98c8tuPyIiIqKz9UrSOtyUYY/tTgJeZ3slgKT5wGLbRwPXtoIkXTFSc5/JdQAAIABJREFUHPAW +4O8lTQN2Bn6fss/tC4CrgT+zfR+A7XWSHpc0G1gFHA6cDfwCeEttYwfgD4D7t97tR0RERHSWXk1a +h+rPXpLupCSvQ5TytLQS0eo64CJJs2w/CCDpJaPFUX6nlwLLa7vvtP1End3dEbhE0hRgje0jKXvg +Xkn5Utwy23fVa/xv4Ou17XNsr9nKv4OIiIiIjpF9WrvEwMDAULa8ioiImDz6+/tZseJusk/rr8s+ +rT2sr69vorsQERERbfK3eevKTGuXaDabQ6tXr5/obsQWmDlzOhm7zpXx61wZu87WWeOXmdbhtmSm +tVeKC0RERERMgCSsW0uWB3SJwcFBGo3GRHcjIiIiKEsDlixZOtHd6Co9k7RKOgi4lVIy9eq2498G +vmn7xG147R8ArYxyF+Aa2x9oe39f4H22D6mvrwKeQ/nv2e8CK9r3mR1Jo9EgX8SKiIiIbtVrywNW +Ase0Xkh6ISWJ3NaGgFfZPhiYC5wiaffah7cBV1C2wwLA9nzb84AjgZ8Db30G+hgRERExafXMTGt1 +L/B8STNsr6NUv/oM8DxJpwJHUZLYn1ESxuOA11OKBOxB2X/1CGAv4Azbn5f0Y9t7wi9nSC+3fduw +607hqf8g7Ao8ATxaX99fr/XpEfr7HuAfbT/0tO88IiIiooP12kwrlKpWR9Xnr6Bs4D8VmGn7UNtz +KFWoXl5jdrX9WuACYJHto4BTgBPq++PdfuFGSV8Bvk/5uP9RANtLgSeHB0v6TWAe8InNuruIiIiI +LtRrM61DlOpTH6rrTG+jzIJuBDbUmdL1wCxK4gpwT31cQ0k4oXxkv1N93v61wCkAkt4L7F+vd1h9 +71W2N0jaHviipGNtX7mJvv4JcKXt7EkWERERPa/XklZsr5I0HTgNOBPoB3YDjrA9R9LOwLd4Khkd +K2ncXtIulNnSveo13tUeIAnqrLbtJyX9BJg2rJ3he2IcBrx3M24tIiIiomv1XNJafQ5YYPt+Sf3A +BmC9pOX1/R8Bzx1nW5cA3wAeAFaNEjNEWR7QpMzg/ifw2RFi2j2/thkRERHR81IRq0sMDAwMZcur +iIiIyaG/v58VK+4mxQVGlopYEREREdGVenV5QNfp6+ub6C5ERERElb/LW1+WB3SJZrM5tHr1+onu +RmyBmTOnk7HrXBm/zpWx62ydM35ZHjCSLA+IiIiImDSSsG5NWR7QJQYHB2k0GhPdjYiIiJ7X19fH +kiVLJ7obXadnklZJBwG3AsfYvrrt+LeBb9o+cRte+wdAK6PcBbjG9gfqe98CHqnv/cD2SZJeTCkZ ++yTwOPAG2z/d1DUajQbZPSAiIiK6Vc8krdVK4BjgagBJL6QkkdvaEL9aEWulpI8D6wBszxsWfzFw +qu37JJ0M/A1w+jPQz4iIiIhJqdeS1nuB50uaYXsdsAD4DPA8SacCR1GS2J8BRwLHAa8Hdgb2oMx+ +HkGpfHWG7c9L+rHtPQFqGdjLbd827LpTeGr98K7AE8CjwD7AdEk3AlOBv7V9B/Dntn9S47cHfrGV +fw8RERERHaUXv4h1LSU5BXgF8HVKwjjT9qG251CqVr28xuxq+7XABcAi20cBpwAn1PfHu/3CjZK+ +AnwfWGH7UUri+gHbhwNvBj4rabtWwippLnAqcNEW321EREREF+i1mdYh4ErgQ3Wd6W2UWdCNwIY6 +U7oemEVJXAHuqY9rKAknwM+Bnerz9q8GTgGQ9F5g/3q9w+p77csDvijpWOCfgfsBbP+HpIeBPYEH +Jf05cCbwGtsPb6X7j4iIiOhIvZa0YnuVpOnAaZSksB/YDTjC9hxJOwPf4qlkdKyZ1O0l7UL50tRe +9Rrvag+QBHVW2/aTkn4CTANOBF4EnCrpucAM4MeSFgAnAwfbXvM0bzkiIiKi4/Vc0lp9Dlhg+35J +/cAGYL2k5fX9HwHPHWdblwDfAB4AVo0SM0RZHtCkzOD+J/DZ+t7HJX2NMtvbWnJwCWW3gaWShoCv +2n7PeG8uIiIiotukIlaXGBgYGMqWVxEREROvv7+fFSvuJsUFRrclFbF6daa166TGcURExOSQv8nb +RmZau0Sz2RzqjBrMMVzn1M+OkWT8OlfGrrN1xvhlpnU0mWntYVOnTiX/ODpTxq6zZfw6V8aus2X8 +ek+S1i7RbDYZ/5axMZlk7Dpbxq9zZew62+QfvyTUW1uS1i4xODhIo9GY6G5ERET0tL6+PpYsWTrR +3ehKXZ+0SjqIUslqftux84GV9ficUc67B1hu+7RR3v848FLgYUqhgQeAN9puSroYeCWwroYfATQp +hQ2eDTxeY38saT/gYsq2WzfZPqftGgPAdbb3Hus+G40G2T0gIiIiulWvlHEd/vnB0CjHgV+WT70P +mFcLEYzmbbbn2Z5L+RzgiHr8ZcDh9b15ttcBC4Fv2j6Iskfr22vs5cAxtg8A9pW0T+3DAuAqYPfN +udGIiIiIbtQrSevwhSVjLTRZCFwDLAWOH6tdSVMpVbUekjQF+D3gI5KWSzoBwPYlwLn1vOcBayTN +AKbZXlWP38hTZV9XAweO0c+IiIiIntD1ywOqeZJuqc+nALOBs0YKrInk/sBJlCUES4HLRmn3/ZLe +AcwCHgXuBaYDlwIXUn6/t0q6y/Z3bA9Juhl4IfAqSqK7tq29dbVv2L6h9meLbjgiIiKim/RK0nqz +7WNbLySdt4nYBZTE9vr6uIekQ4CZwGLKkoLTa+zbbS+rbb6HkqieDFxq+7F6/BZgH+A7ALYPVclE +vwC8mJK4tswA1jy9W42IiIjoPr2StA43Zdhju5OA19leCSBpPrDY9tHAta2gOgPafv4PgT5AwOck +vZjy+90f+ISkvwH+y/ZngPXAk7b/W9LjkmYDq4DDgbNH6WtEREREz+rVpHWo/uwl6U5KYjgEnAHQ +Slir64CLJM2y/eCwdlrLAzZS1gefaHuVpE8BdwBPAJ+0/X1JDwOflHRSjT2+tvFmyq4C2wHLbN81 +Ql8jIiIielrKuHaJgYGBoWx5FRERMbH6+/tZseJu8kHppqWMaw/r6+ub6C5ERET0vPw93nYy09ol +ms3m0OrV6ye6G7EFZs6cTsauc2X8OlfGrrNN/vHLTOumZKY1IiIiYkIkSd3WkrR2icHBQRqNxkR3 +IyIioqf09fWxZMnSie5GT+j6pFXSQcAi2/Pbjp1PKRywyPacUc67B1hu+7Qx2v+1OEmvBt5dX37L +9mJJuwFLgF2Bx4AFth+StB9wMbABuMn2OW3tDADX2d57rPtsNBrki1gRERHRrXqljOvwhbtDoxwH +QNJc4D5KJa3pozU6UpykXYELgNfWhHiVpN+gbHH1bdsHAlcDb6vNXA4cY/sAYF9J+9R2FgBXAbtv +5r1GREREdJ1eSVqHLzQZa+HJQuAaSgnX4zczrpXIXijpNuAnth+ux1rVr3YDNtSSsdNsr6rHbwQO +q89XAweO0c+IiIiIntD1ywOqebWcKpSEdTZw1kiBNZHcn1IZayUlIb1sM+J2Bw6mlG59FPiapBXA +w8CgpO8CzwYOoCSva9uaXVf7hu0b6nW28JYjIiIiukevJK032z629ULSeZuIXUBJbK+vj3tIOgSY +CSymLCk4Hdh3lLiHgbts/7Re6zbgJcAxwPttXyHpRZRKW/vz1OwrwAxgzdO/3YiIiIju0itJ63BT +hj22Owl4XauUq6T5wGLbRwPXtoIkXTFSHLAIeKGkmZRZ1P2Aj1A+7n+knv5TYIbtdZIelzQbWAUc +Dpw9Sl8jIiIielavJq1D9WcvSXdSEsMh4AyAViJaXQdcJGmW7QcBJL1ktDhgGnAmsKy2+Tnb35P0 +buCjkk6l/N7fVM97M3AlZX3xMtt3jdDXiIiIiJ6WilhdYmBgYChbXkVERDyz+vv7WbHibvLB6ObZ +kopYvbJ7QERERER0sF5dHtB1+vr6JroLERERPSd/f585WR7QJZrN5tDq1esnuhuxBWbOnE7GrnNl +/DpXxq6zTb7xy/KAzZHlARERERHPuCSsz4QsD+gSg4ODNBqNie5GREREz+jr62PJkqUT3Y2ekaR1 +nCQdBCyyPb/t2PnA921/qu3YocB7gSeAh4A32H5sWFu3AqfY/ndJu1IKFNwAfA74NvAtyiz4NOCz +tn+tItdwjUaD7B4QERER3SrLAzbPeBYA/xPwR7YPBu7nqf1Yf00tBftF4CrbF9TD37U9r55/APBq +Sa99Wr2OiIiI6HBJWjfPeBatHGz7Z/X59sBjo8Q9G7gJ+IjtD48UYLsJXEIpARsRERHRs7I8YPPM +k3RLfT4FmA28uz3A9k8AJB0FHAz83ShtfQb4MTBrjGv+BPiNLexvRERERFdI0rp5brZ9bOuFpPOA +GXWN6hBwnO0fS3orcDRwuO0naunWP6kxC+rpbwe+DHxT0u22vzbKNfuA/9pG9xMRERHREZK0Pj1T +gHW2D2kdkPS3wEuAw2w/DlC/SHVZWwyUtavrJL0BuFrSy9rabMXtCPwVcN62vpGIiIiIySxrWp+e +X/lilqTfoiwXeC7wJUm3SDplU+fZvgP4MHAlZTz+oJ53M7AMuNr2LSO0EREREdEzUhGrSwwMDAxl +y6uIiIhnTn9/PytW3E2KC2y+LamIleUBXSK1jyMiIp5Z+dv7zMpMa5doNptDk6sGc4zX5KufHZsj +49e5MnadbXKNX2ZaN1dmWnvY1KlTyT+azpSx62wZv86VsetsGb/ek6S1SzSbTcZXsCsmm4xdZ8v4 +da6MXWebHOOXpPmZlKS1SwwODtJoNCa6GxEREV2vr6+PJUuWTnQ3ek7XJ62SDgIW2Z7fdux8YGU9 +PmeU8+4Blts+bZT3Pw68FHgY2Al4AHhjLb2KpN8ElgMvqgUGdgOWALtSSrsusP2QpP2Ai4ENwE22 +z2m7xgBwne29x7rPRqNBdg+IiIiIbtUr+7QO//xgaJTjAEiaC9xHKds6fRPtvs32PNtzKZ8RHFHP +HwRuBJ7TFns88G3bBwJXA2+rxy8HjrF9ALCvpH1qGwuAq4Ddx3WHEREREV2sV5LW4YtOxlqEshC4 +BlhKSTY32a6kqcBuwEP1eBM4FFjdFntfjaE+bpA0A5hme1U9fiNwWH2+GjhwjH5GRERE9ISuXx5Q +zZPUqio1BZgNnDVSYE0k9wdOoiwhWEpbCdZh3i/pHcAs4FHgXgDbN9e22pPjh4FBSd8Fng0cQEle +17bFrKt9w/YNtY3Nuc+IiIiIrtQrSevNto9tvZB03iZiF1AS2+vr4x6SDgFmAospSwpOr7Fvt72s +tvke4ELKLG1L+/KDs4D3275C0ouA6yjJ8W5tMTOANZt/exERERHdrVeS1uGmDHtsdxLwOtsrASTN +BxbbPhq4thVUZ0Dbz/8hMLw0Rvv7q4FH6vOfAjNsr5P0uKTZwCrgcODsTbQRERER0ZN6NWkdqj97 +SbqTkhgOAWcAtBLW6jrgIkmzbD84rJ3W8oCNlPXBJ45wnZZ3Ax+VdCrl9/6mevzNwJX1/GW279pE +GxERERE9KWVcu8TAwMBQtryKiIjY9vr7+1mx4m7yYeiWSxnXHtbXN3xlQkRERGwL+Zs7MTLT2iWa +zebQ6tXrJ7obsQVmzpxOxq5zZfw6V8aus02O8ctM65bKTGsPmzp1KvnH05kydp0t49e5MnadLePX +e5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdS1yetkg6ilE39bj20E3Cl7X8aJX4h8DHbzXG0 +/UFgX9svazu2L3AJsAG4yfY59fi5lCpZG4EzbX9V0m9Qdg7YCfgRcILtx2r8LsAy4ETb/z5WXwYH +B2k0GmOFRURExNPU19fHkiVLJ7obPafrk9bql8UFJE0DLOlTtteOEPtO4JOUUqyjkrQz8ErgPkkH +2f5qfetDwJG2V0n6gqR9KP8Ve4Xt/ST1Af8CvJiyDdZnbX+qbp21CLhY0stqO7PGe4ONRoPsHhAR +ERHdqleS1vb5+92AJ4EXSzqrvrcrcCxwILAHsETSJcD7gceBj9j+7LA2/wz4MvBFSqWsr9YSsNNs +r6oxNwKH2f5fkg6vx34X+Hl9vj9wbn3+xfr8YmAa8MfAp5/ebUdERER0h15JWudJuoWy+OUJ4DTg +BcBxtv+vpDOBP7V9vqS/A/4cmAvsaHu/Udp8E3AyYOBDkvakFAhon71dB8wGsL1R0t/Xa59W39+N +p6pkrQOeVWNXAEjKYpmIiIgIeidp/eXygBZJfwT8o6R1wG8Dy+tbU3hqZtY1th/4KCXp/TSwAngh +8L9q7EbKR/v/QElEW2YAa1ovbP+dpPOBOyQtpySsMyizub8SGxERERFP6ZWkdSRXAP/D9npJn+Cp +RLUJTK3PNwLY/j/AIa0TJf0D8E7bl9fXvwN8Hfh74HFJs4FVwOHA2ZIOAY62vZgy0/tEvc7twGsp +a2hfDXxtW91sRERERCfbbqI7MIE+DSyX9DXKmtbn1uPLgS+MdpKkHYBjgM+1jtn+IXAvcDRlxvVK +4BvA3bbvAr4KbFdnV78KXGa7QVnDekztw37A8B0NJnovj4iIiIhJIRWxusTAwMBQdg+IiIjY9vr7 ++1mx4m6yT+uW25KKWL080xoRERERHaKX17R2lb6+vonuQkRERE/I39yJkeUBXaLZbA6tXr1+orsR +W2DmzOlk7DpXxq9zZew62+QYvywP2FJZHhARERERXSnLA7rE4OAgjUZjorsRERHR9fr6+liyZOlE +d6PndH3SKukgYJHt+W3HzgdW1uNzRjnvHmC57dNGef/jwEuBh4GdgAeAN9puSjodmE/Zi/V82/9/ +23lHAn9i+7j6el/gEmADcJPtc9piB4DrbO891n02Gg2ye0BERER0q15ZHjB84e7QKMcBkDQXuI9S +/nX6Jtp9m+15tudSFrYcIelZwF8C+1KKC1zc1u7FlL1Z29dxfAg4xvYBwL6S9qmxC4CrgN3Hd4sR +ERER3atXktbhi33HWvy7ELgGWAocP1a7kqZSyrc+BKynVMOaQSla0GyLvx14c+uFpBnANNur6qEb +gcPq89XAgWP0MyIiIqIndP3ygGqepFvq8ynAbOCskQJrIrk/cBJlCcFS4LJR2n2/pHcAs4BHKVWx +AP4L+B7lPwXnt4JtX1OXK7TsBqxte72u9g3bN9T+jO8OIyIiIrpYryStN9s+tvVC0nmbiF1ASWyv +r497SDoEmAkspiwpOL3Gvt32strme4ALgX8F9gD66vnLJN1u+5sjXGstJXFtmQGs2fzbi4iIiOhu +vZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1raA6A9p+/g8piepq4Be2N9S4NcD/N1InbK+T9Lik2ZQl +BYcDZ4/S14iIiIie1atJ61D92UvSnZTEcAg4A6CVsFbXARdJmmX7wWHttJYHbKQsBTjR9ipJ35T0 +Dcp61uW2v7yJviwCrqznL7N91wh9jYiIiOhpqYjVJQYGBoay5VVERMS219/fz4oVd5MPQ7fcllTE +6tWZ1q6TOsgRERHPjPzNnRiZae0SzWZzaOJrMMeWmBz1s2NLZfw6V8aus02O8ctM65bKTGsPmzp1 +KvnH05kydp0t49e5MnadLePXe5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdSktYuMTg4SKPR +mOhuREREdL2+vj6WLFk60d3oOT2TtNZKVLcCx9i+uu34t4Fv2j5xG19/T+B+4A22r63HpgAfBPYB +HgPeZPuBtnMuBFba/shY7TcaDbJ7QERERHSr7Sa6A8+wlcAxrReSXgjs8gxd+wTgEuDUtmN/DOxo +ey5wJqWiFpJ2l3QD8PpnqG8RERERk1rPzLRW9wLPlzTD9jpKydbPAM+TdCpwFCWJ/RlwJHAcJXHc +mVKa9VLgCGAv4Azbn5f0Y9t7Aki6Crjc9m0jXHsBcADwL5JeYPt7wP7AlwBs3yHpZTV2V+As4NVb +/TcQERER0YF6baYVSinWo+rzVwBfB6YCM20fansOsAPw8hqzq+3XAhcAi2wfBZxCmTmFcawCl3Qo +cJ/th4GPA4vrW7sBj7SFNiVtZ3tVrYyVFd4RERER9N5M6xClZOqHJP0AuI2SGG4ENtSZ0vXALEri +CnBPfVwDfL8+/zmwU33enlhOAZD0Xsos6hBwKLAQmF0/8t8R2LuWf10LzGg7fzvbG7fOrUZERER0 +j15LWrG9StJ04DTKOtJ+yoznEbbnSNoZ+BZPJaNjzaRuL2kX4EnKsgFsv6v1pqTdgX1tz2479mHg +eGA58EfAP0vaD7jv6d9hRERERPfpuaS1+hywwPb9kvqBDcB6Scvr+z8CnjvOti4BvgE8AKwa4f2/ +oCxJaPdR4JOUJHdQ0u31+AnD4iZ6A7qIiIiISSFlXLvEwMDAULa8ioiI2Pb6+/tZseJu8tWTLZcy +rj2sr69vorsQERHRE/I3d2JkprVLNJvNodWr1090N2ILzJw5nYxd58r4da6MXWebHOOXmdYtlZnW +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 +" +> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +62nBXREREelkHdXPqAV3RUREpJN1VHCbvyyIFtwVERGRTtLSrtKNpgV3RUREpJN1VHDTgrsiIiLS +yUIf3DSTVERERLpF6IObZpKKiIhItwj95ATNJBUREZFuEfrgVj9z1PM8crMlHn70NEefvoDrLbln +vYiIiEiohL6rtH4maW62xNAVv+KmblMRERHpNKEKbq7rcfTpC9dMRKiGs4cfPd1wf3WbioiISCcJ +VXB77Otnl5yIsG8wU7u9eiwiIiLSKUIV3F66NNlwPL+ipgV4RUREpJOFKrhdv6uPp0+N1I7nV9S0 +AK+IiIh0slAFt7e8+jqmpmZVURMREZGuFKrgFomooiYiIiLdK/TruImIiIh0CwU3ERERkZBQcBMR +EREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQ +cBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERER +kZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3ERERkZBQcBMREREJCQU3 +ERERkZBQcBMREREJCQU3ERERkZCIbXYDNovreRw7fpGhkRn2DWa47/BuIo6z2c0SERERWVSogpvr +ehx9+sK6hK1jxy/yhafOA3BqaByA19+xZ93aKiIiIrLeQhXcHvv62XULW0MjM0sei4iIiLSbUI1x +e+nSZMPxWsLWvsHMksciIiIi7SZUFbfrd/Xx9KmR2vFawtZ9h3cDNHS7ioiIiLSzlgY3Y4wD/D5w +BzALfNBae6bu/KuB3woOLwHvt9YWF3u+t7z6OqamZtclbEUcR2PaREREJFRa3VX6biBprb0X+GXg +Q/PO/yHwI9baNwCfAw4s9WSRiMN9h3ezbzDD0MgMx45fpOy6HH36Ag8/epqjT1/A9byWvBERERGR +zdbqrtL78QMZ1tonjDH3VE8YY24BrgI/Z4y5Dfi0tfb0ck947PhFHntyiJl8ma8+d5HPfPUl8sUK +iVgUe24M0OxQERER6Uytrrj1ARN1x2VjTPU1twOvA34HeCvwVmPMG5d7wqGRGWbyZaZyRfKFCiPj +s+Rm/eOZfFmzQ0VERKRjtbriNgn01h1HrLVu8PNV4Hlr7SkAY8zngHuALy31hIcObuNr3x7GcRzA +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 +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [9]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">scores</span> <span class="o">=</span> <span class="n">all_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"hyperparameters_dropout_probability"</span><span class="p">)</span><span class="o">.</span><span class="n">scores_auc</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">"scores_auc"</span><span class="p">,</span> <span class="n">ascending</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + +<span class="n">pyplot</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Dropout"</span><span class="p">)</span> +<span class="n">ax</span> <span class="o">=</span> <span class="n">seaborn</span><span class="o">.</span><span class="n">barplot</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s2">"hyperparameters_dropout_probability"</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s2">"scores_auc"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">all_models_df</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[9]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre>(0.5, 1)</pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [10]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">count_impute</span> <span class="o">=</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"allele"</span><span class="p">)</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span> + +<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="n">training_sizes</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">alleles</span><span class="p">],</span> <span class="n">count_impute</span><span class="o">.</span><span class="n">ix</span><span class="p">[</span><span class="n">alleles</span><span class="p">])</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">xmax</span><span class="o">=</span><span class="mi">10000</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">ymax</span><span class="o">=</span><span class="mi">16</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Number of models (out of 16 total in each allele's ensemble)</span><span class="se">\n</span><span class="s2">that use imputation"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"Training points for allele"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Num models"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[10]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x11e086dd8></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [11]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">impute_cums_df</span> <span class="o">=</span> <span class="n">selected_models_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">"allele"</span><span class="p">)</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">to_frame</span><span class="p">()</span> +<span class="n">impute_cums_df</span><span class="p">[</span><span class="s2">"size"</span><span class="p">]</span> <span class="o">=</span> <span class="n">training_sizes</span> +<span class="n">impute_cums_df</span> <span class="o">=</span> <span class="n">impute_cums_df</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="s2">"size"</span><span class="p">)</span> +<span class="n">impute_cums_df</span><span class="p">[</span><span class="s2">"cum_mean"</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span> + <span class="n">impute_cums_df</span><span class="o">.</span><span class="n">hyperparameters_impute</span><span class="o">.</span><span class="n">cumsum</span><span class="p">()</span> <span class="o">/</span> <span class="p">(</span><span class="n">numpy</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">impute_cums_df</span><span class="p">))</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span> +<span class="n">impute_cums_df</span> +<span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span><span class="s2">"size"</span><span class="p">,</span> <span class="s2">"cum_mean"</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">impute_cums_df</span><span class="p">,</span> <span class="n">fit_reg</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">logx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xscale</span><span class="p">(</span><span class="s2">"log"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"IEDB Measurements"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Fraction of models using imputation"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span> + <span class="s2">"Fraction of best models for alleles with <= x measurements</span><span class="se">\n</span><span class="s2">"</span> + <span class="s2">"that use imputation"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[11]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x11977ab00></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [12]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_dropout_probability</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">x_jitter</span><span class="o">=.</span><span class="mi">015</span><span class="p">,</span> + <span class="n">y_jitter</span><span class="o">=.</span><span class="mi">015</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Dropout rate of selected models"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"Training points for allele"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Dropout rate"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[12]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x11f7f0c50></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +CcX/A806CSYCWac5AAAAAElFTkSuQmCC +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [13]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_embedding_output_dim</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">x_jitter</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> + <span class="n">y_jitter</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Embedding output dimensions of selected models"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"Training points for allele"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Embedding output dimensions"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[13]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x11f7e65c0></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYwAAAEZCAYAAACEkhK6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz +AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecHHd9+P/XzJbb60W6U5dsubwlG8sFF4y7g6kGU76E +xBBsf2kBEyCUfIFQAqElOBTDjxIg2LRQHAjVNNvBsuOCsbFsS/5YtiSrXdP1u927LTO/P2a23t7d +XNm7Pen9fDz0OO3s7sxn27zn83l/iuW6LkoppdRM7KUugFJKqeVBA4ZSSqlANGAopZQKRAOGUkqp +QDRgKKWUCkQDhlJKqUA0YMySiDgi8rCIPCQiDxb83TiLfVwiIo8sQFlGyh1XRF4hInf4//+IiLxm +vseaDxH5oIi8eJ77+I2ItAV43BdE5EP+/38pIlvmc9z5EJFfLPHxrxGRp0Xk1gXY14dF5MZ5PP/f +ReTMWT5nhYg4cz3mLI/1LhH5ZoDHOUG+h0er8FIXYBlygUuNMQMLsJ+FKMu09xljPrwAx5mvy4HH +5rmPK2b7BGPMi+Z5zHkxxly5lMcHXgu8zxjzvSUuB3if31dm+RyLhfmdBBXkWMf0wDUNGLNn+f8m +EZFLgE8Ch4FTgTjwYeBtwMnAj40x7/Qf3igiPwJOBAaANxljdotIBPgX4GIgBDwEvM0YMyoiFwE3 +Ag7wAAU1RBH5KHA1cAR4smD7N4FHjDGfEZEE8Cm8H+8a4EZjzOdFxAZuAF4MDAL3A6cYYy4r8xo/ +CPwVkAKeAN5qjOnxazRfMMb82H/cHcAXgNXA2cCnRSQDvBTvR7cVWAn8Dvg7Y0zGv5pcaYzp9/fh ++I+5wT/8HSLyQmPMoYLyNAJfB7YBnUAG6PXv2wu8AmgM+rmIyJXAB4CI/7h3G2PuE5EPA8f579sm +oAd4lTGmS0TeDLwJmADG/c/y8ezxjTEPisgbgb8D0kC3/7496X8+w8BpwAbgcX+/cRH5CHAVkAT6 +gGuNMd0ln0cT8P8BZ+B9L24F/hH4NHAucJyItBtjPl/wnHrgm3jfPQf4kzHmTdO9/pJjrgW+6Jc3 +AnzfGPOpguf/M95vZAx4M/CXwFrguyLyWsAAnwee4T//NuA9xhhHRF4OfMx/7gNMwf8ufxa4Eu/z +/Qfglf77eAh4sTEm4f9m/hWo9d/HDxpjfiMiYbzv53P8z6MH77uffU/Lls9/XYjIKuBbwAq/SL8y +xnxoqvIeLbRJam7u8Juhsk1S/1Vw39nAR40xW/G+iO8FXgA8E7heRFb7j1sP3GCMORP4T+Db/vb3 +AiljzNn+fZ3Ap/xA8kPg740xzwTuwPsRICJXAS/DO2k+G2ieotw1QI8x5kK8H9enRCQKvAE4EzgF +OB84gTJXUiJyHfA84JnGmDPwag03TfdGGWO+hPfDf7cx5qf+5m14tY5T/H9v8reXHjNbS/q//u1L +C4OF7yNA3H+//xKQKYoy4+ciIicCnwBe4L/HbwJ+IiK1/j4uxAsAW/FOLm/yg+1ngecZY84D/t1/ +XI6IXAa8G7ik4PP+acFDzgKeixdE1wKvFJH1wNuBc4wx5wK/Bc4r87puBI4YY07zX+MZwLv8APgA +3onu8yXPeRnQYIw5Cy+oICKbA7z+rG8D3zDGnOOX6QoR+T8i0uHf91r/+3ED8EljzAfwgvXVxpg/ ++u/XA/7zzwLagXf6z/8G8DL/vqfLvN6sGuCQMWYb8GXga3gXAKcALcBVftPRj/AuSM4ArgW+IyKb +gOvxAuYW/70vbNotW76S478BeMoYczbexd2J/sXLUU1rGHMzXZPUXmPMDv//TwGDxpgM0CciQ0C2 +/XNHwZXbTcCX/C/clUCziDzXvy+Cd4I7DUgaY/4HwBjzfRHJVvH/Au8qOQ4gIv+BdzVbzs/85z/o +B4t6vBPnt4wxKf/5X53i+c8HvmmMGfdvfx7o9q/WZlJYK7vJGJPwj/UtvKvoLzG55jbTbfCuEN/u +v6YjIvKTKY4f5HO5BK9GdJuIZI+VxjuxAPyPMWbM//9DQJt/VfxD4B4R+SXeib20Cej5wA+yNSdj +zM0i8jn/xAXwa2NM2n8/HvHLcgj4M/CQn4O41Rhze5nX9QK8iwSMMSn/O/F2vKvqqdwFfNyvBf4O ++JwxZo9fU5ru9SMidf771CoiH/M31+MFqgxebfYRvzw/AQo/j+w+rwTOEZHX+7djeBcHF+L9Loy/ +/avAx6d5HT/2/z7lH7fLL+NevPfwPGC3MeYBvzw7ReQu4DK838z3/O9AXES+i/cbm6p8pbmUXwO/ +9D/D3wPvNcaMTFPWo4LWMOambJOUb6LkdmqK52VKtrv+Y0PA240xZ/pXo+fi1QbcMsdN+39L70sz +tUTJbct//FRlK1T6fQnhXXRky1+4j+g0ZSgsn83k9wK/RhVE0Nce5HMJAbcZY84qeP+fTT7/Uvje +5Y5rjHkt3klmN/D/yJ/Issr9zmy8i4Gy+zXGuMaYS4Fr8JoZPysinyuzn9LvROF+yzLG7MMLAp/A +a865TURewcyvH/8xAOcXPOZ8f19pSmqJInIak4WAVxY8/zy8C5TSz3Kq72FW4WeaKnO/zeT3J/ud +dZj6e1NavmdRcgHlB6Hj8YLaJuCPIvKsGcq77GnAWDpniMg2//9vAu7yr9x/A7xVRCJ+c8c38Nrf +HwEsEXk+gIi8BGj1n/9rvGaMZv85fxOwDNkfzC+B14hI1K8tXEv55N5vgOv8q0zwmgD+4NdMevGa +RBCRE/CanbLSFJ/EXuUfK4Z3QvyZv70nuw+83ENhGUr3kfVr4HUiYolIK15tZa5uB54rIuK/jhcC +D+M1f5Tl9+TZD/QZY27Ea/8/veRhv8F7zSv951yH14z0JFMQkW0i8iiwyxjzL3jNJNvKPPQ3eM0r +iEgN8Ea8Ws6URORv8Wp5vzPGvM/fx6lBXr9/FX0vXhMbItIC3I33vt8HbBWRrf59LyXf1Fr4+f0a +v4nHL/PP/dewHTi1IMhcO93rCOBe4GQRyX4vTwUuAv7Hf82vFZEa/3v4qoLn/aakfD8D3lq4YxH5 +JPAhY8zPjDHvwAuqJ8+zvFVPm6Rmz8XLYWSvfrJX1+9n8tV7uedm7QQ+7J9cu/FOnOAlDD+N1+Rh +4zVLvMsYk/Z/gF8VkU/423sAjDG3isgz8Nqs+/F+5CtnOH7h7Zvw2v4fBEaBvXgJz1LfwMu93O83 +WTwJZLvsfgy4WURehJe4/UPB834O3OA3geHvezteW/OPjDE3+dvfhtc0N4DXVNJZsI+fAHeJyFXG +mJ0F2/8Jr/fNLv/92FFwX9AeLdlcyU7xktPf98+ZafLJ07JPNMb0icg/A7f7idgU8LqS/f5eRD7r +P8bCC64vKnxMmbLsEJEfAH8SkVG89+xtZYrwduALflNWBC/p/YkZXv+3gEtEZCdecvlp4PPGmKGA +r//VwBdFZId/zO8aY/4TQEReDXxLREJ4yfzsifi/gR/4zTxvA270yxzG+6z/1e/4cDXwPRGZoPg7 +VCpID8E+EXmlX9Y6vBrLtX5ngz14taxH8Wpwuwue/zbgc6XlKznu5/C+7zvwajoP4+WmjmqWTm+u +ROQKoMMY813/9ueAhH/1udDHyvXaWuh9K6Uqq6I1DBG5hnzzRi1eVf0ivOjsAI8aY66vZBlUII8B +7xGR9+B9J/6M1x2yEvQKRallatFqGCLyRbwT0YvxupNuF5Ev4/UQ+en0z1ZKKbXUFiXp7SedTjHG +fB2vD/92/65b8bpFKqWUqnKL1UvqfXjJyVIjTD3ITCmlVBWpeC8pEWkGTjbG3OlvKhwA04g/HH8q +ruu6ljXdsAellFJlLPiJczG61V6MNxdL1kMicrEfQF6A1/d7SpZl0du7fAdQtrc3avmXkJZ/aS3n +8i/nsoNX/oW2GAFDgD0Ft98NfM0fybsLuGURyqCUUmqeKh4wjDE3lNzeDVxa6eMqpZRaWDo1iFJK +qUA0YCillApEA4ZSSqlANGAopZQKRAOGUkqpQDRgKKWUCkQDhlJKqUA0YCillApEA4ZSSqlANGAo +pZQKpOrX9H7n5+5g94HhSdsjIXj5ZSfwhwcP0z2QILsOlAWEQhabVjfynqvPJBoKFT3PcV3uevgw +9z/eA8A5WzqwLItDvWOsb6/ngm1rsJdgdlzHdbl7RycHF6gcC72/pTp+2nG4+VePc6BnlA0dDVzz +wi2Ebb3OUWopVH3AKBcsAFIZ+MHvn5q03QXSGZenDg3zts/eydnSAcCBnlFqoiEiYZunDg2TyjjY +lsXTXSPEomEa6iI8+EQv9+7spq2xhtpYmA3tDYt2or1rRyc/v3sfyXSGaDiEC1x8+to57ctxXb75 +y13s2NNHNBzCHBgA4KI57m8u7t7Rye0PHQLgiYODcz7+N3+xk3t39eC6cKB3FMdxeMNLngGUD0pp +x+GG7z1Ed3+CVW21/MtbL164F6XUMa7qA8Z8JNMu//tYNwAh28JxXCz/L0DGdRlPpsk4LoOjE2Qc +l4GRccIhm8a6KLsPDgHlT3SlJ6vzT1vNPY90zfmK+v5d3YzEkwBMJDPcv6t7zgHj7h2d7NjTx0Qy +w0QyA8DB3rE57WuuSo831+M//FRfrvbout7trHJB6c6HD/PUYe8iY+RQin/8yt38w1+fOadjK6WK +HdUBo1DGDxKu45Zsh4x/UgVwXEhnHJLpDBApe6IrdwX/xIFBDh7xHjufK+qFcLB3jGg4lAsWyXSG +9e31i1qG9e31ufche3su0hl3ytvlglLptn1d5WuoSqnZO2YCxmw4LkTDXjv5uvZ6tj98uKjmUO4K +/kDPKJadr1HM9or63C0ddPcnck1S527pmHP517XX8+ATvdh+ebZtXsH5p62e9Doq2dR2wbY1AEXH +m4sVzTE6++JFt7PKBaVYNMREKn8BUBvVr7hSC0V/TVOIRkJcfuY6XNfl9j8fBvI1h+wVfHw8jQuM +jafYsrElV8OA2V9RP3vbGnYfHGLX/gGiERvXdXFcd24ndb8NJxK2iYZDnLS+mXse6VqQnEJQtmUt +yP7/4qy1fPf3T+K6YFne7azzT1vNEwcGcwnx809bze1/2s/QWDL3mBVN0XmXQSnl0e4mZURCFpGQ +zUWnr+XQkXjRfdkrZi+97gnZFieua+LyM9dx8voWLj9z3ayvqO95pIvH9w8yGk/RNzTOL+7Zz907 +OudU/kNH4jTURWhritFQF+HQkfiC5RQW2707e4pyGPfu7Mndd88jXRw8MoZlWxw8MsY9j3TR2Z8o +ev7+nuXxOpVaDrSGUcKyvHXEN3Q0AOWbPS7Ytob7dnWTTDtEwyHqa8Mc7kvw1885ac7HPdg75udN +PMl0Zs4n9anyBwuRU1hs3f2JopXsuwsCQrkgWJrzyJTcVkrN3VEdMGJRi/FksBOGZUHYhsb6GrZu +bOWaF24ByrfF25bFeVtXMTaezj1/vifg9e31RYnqaDg0531Olz+Yb05hsa1qq2X0UKrodla5wNhY +F2FoLP/4pnptklJqoSzLgGH5/5xpHtPaGOUlFxzP3Y90srdzBNuyaKqP0FQfYW/naO5xx61uoC4W +AbzE84Wnry3KG0zVFr9QSd3C/bl43WuzZZnrPqcq81L12pqPd199ZtG4indfne8iW+4zyGQyfP/2 +p0hnHMIhm6ufe/JSFV2po47lutVdZf/Mdx9w797RieO6bFrVyHte7Y3eTmYyuRNJe0sNHW11mKcH +cVxYu7Ke87Z6J3+gaLzEec9YxbdvNYs2cri9vZHe3pGK7b/Sllv5S8fHvPTyk+nrG535iVVqub3/ +pZZz+Zdz2QHa2xsXvBtk1QcMwF3mH9py/9Jp+ZeQln/pLOeyQ2UChvaSUkopFYgGDKWUUoFUPOkt +Iu8FXgJEgC8BdwI34eWsHzXGXF/pMiillJq/itYwROQS4HxjzLOBS4GNwGeA9xtjLgFsEbmqkmVQ +Sim1MCrdJPU84FER+W/gZ8AvgLOMMdv9+28FnlPhMiillFoAlW6SWolXq7gS2IwXNAqD1AjQPNNO +2tsbK1K4xaLlX1pa/qW1nMu/nMteCZUOGH3ALmNMGnhCRMaB9QX3NwKDZZ9ZYJl3bdPyLyEt/9Ja +zuVfzmWHygS7SjdJ3QU8H0BE1gL1wG1+bgPgBcD2KZ6rlFKqilS0hmGM+aWIXCQi9+PN5vFmYB/w +dRGJALuAWypZBqWUUguj4t1qjTHvLbP50kofVyml1MLSgXtKKaUC0YChlFIqEA0YSimlApkxhyEi +JwDPAr4HfBU4E/h7Y8xdFS6bUkqpKhKkhvFNIAlcBZwMvBO4oZKFUkopVX2CBIyYMeZHeKO1v+tP +6xGpbLGUUkpVmyABIyMir8ALGL8QkZcCmcoWSymlVLUJEjDeCLwIuN4Y0wn8FfD6ipZKKaVU1Zkx +YBhjHgHeAdwvIhuBfyDA/E9KKaWOLkF6Sb0feC/eRIJZLt7ss0oppY4RQaYGeR1wgjGmt9KFUUop +Vb2C5DD2A/2VLohSSqnqFqSGsRu4S0TuAMazG40xH61YqZRSSlWdIAHjkP8PvCnKlVJKHYNmDBjG +mI+ISDtwnv/4e4wx3RUvmVJKqaoyYw5DRJ4H/Bm4DrgG2CEiV1a6YEoppapLkCapjwMXGmP2AojI +ZuDHwC8qWTCllFLVJUgvqUg2WAAYY/YEfJ5SSqmjSJAaxn4ReQfwDf/264GnK1ckpZRS1ShITeF1 +wPnAHmCf//83VrBMSimlqlCQXlI9wKsWoSxKKaWq2JQBQ0R+YYy5UkT24s0dVcQYo3NJKaXUMWS6 +GsYb/L+XLkI5lFJKVbkpcxj+2hcAI8BJxpingavxlmetX4SyKaWUqiJBekn9J/BzEQF4JfBZ4CvA +xUEOICJ/Aob8m3uBTwA3AQ7wqDHm+tkVWSml1FII0kuq1RjzReAq4CZjzLeBuiA7F5EaAGPM5f6/ +1wGfAd5vjLkEsEXkqjmWXSml1CIKUsOwReSZwEuBS0TkjIDPAzgdqBeR3wAh4B+Bs4wx2/37bwWu +AH46u2IrpZRabEFO/P8P+DTwb8aYPSJyL/DOgPuPA582xnxDRE7CCxCFM96OAM0z7aS9vTHg4aqT +ln9pafmX1nIu/3IueyUEGYdxG3Bbwe1nzWL/TwBP+s/bLSJ9wFkF9zcSYH3w3t6RWRyyurS3N2r5 +l5CWf2kt5/Iv57JDZYJdkDW9rwH+DWgt3G6MCQXY//8FTgOuF5G1QBPwWxG5xBjzB+AFwO2zLrVS +SqlFF6RJ6sPApcaYR+ew/28A3xSR7Xi9oq4F+oCvi0gE2AXcMof9KqWUWmSBVtybY7DAGJMCXlPm +rkvnsj+llFJLJ0jA+JOI3AL8luI1vb9VsVIppZSqOkECRjNeb6bzC7a5gAYMpZQ6hgTpJXUdgIi0 +GmMGKl8kpZRS1ShIL6nTgR8AdSLyLOBO4C+NMQ9WunBKKaWqR5CpQb4AvAzoM8YcBt6MN5eUUkqp +Y0iQgFFnjNmVvWGM+R1QU7kiKaWUqkZBAka/3yzlAojIq4H+ipZKKaVU1QnSS+rNwM3AqSIyCOym +/NgKpZRSR7EgvaSeAi4UkXogZIwZrnyxlFJKVZsgvaQuAt6BP5eUv5ASxpjLK1oypZRSVSVIk9RN +wEeApytbFKWUUtUs6FxSOqpbKaWOcUECxo0i8h28acjT2Y0aRJRS6tgSJGC8xf97UcE2nUtKKaWO +MUECxhpjzNaKl0QppVRVCzJwb7uIXCkiQYKLUkqpo1SQIPBi4PWQ71ILuAGXaFVKKXWUCDJwb81i +FEQppVR1mzJgiMgbjTH/LiIfKne/MeajlSuWUkqpajNdDcMq+auUUuoYNmXAMMZ81f/7kcUrjlJK +qWo1XZOUgz+luS8FOHhrYQwbY1orXDallFJVZMputcYY2+8J9e/ANUCtMaYO+EvglkUqn1JKqSoR +pFvtecaYN2dvGGP+S0Q+GPQAItIBPAA8B8jgTWboAI8aY66fXXGVUkotlSAD98ZE5DoRqReRRhF5 +C9AXZOf+YL+vAHF/02eA9xtjLgFsEblqTqVWSim16IIEjNcALwe6gIPAXwB/E3D/NwBfBg7j9bY6 +yxiz3b/vVrxah1JKqWUgyMC9p/FGe8+KiFwL9Bhjfici7/c3FwaoEaB5tvtVSim1NCo5P9R1gCMi +VwCn481u215wfyMwGGRH7e2NC1+6RaTlX1pa/qW1nMu/nMteCRULGH6eAgARuR34W+DTInKxMeZO +4AV4a2zMqLd3pDKFXATt7Y1a/iWk5V9ay7n8y7nsUJlgN2MOw68hlG57+RyP927goyJyNxBBu+cq +pdSyMd3AvVfhDdL7aMl8UhHgfcCPgx7EGHN5wc1LZ1lGpZRSVWC6Jqkm4Nl4uYbLCrangX+sZKGU +UkpVn+nmkvoa8DUR+QtjzG2LWCallFJVKEjS+wMiMqlGUdLMpJRS6igXJGD8U8H/I8BVwEBFSqOU +UqpqBRm494eSTb8XkfuAsgsrKaWUOjrNGDBEZGPBTQs4FVhRsRIppZSqSkGapAprGC7QC/xdZYqj +lFKqWgVpkjp+MQqilFKqugVtkroRuBxvDMavgL83xvRWuGxKKaWqSJDpzb8L/B5YB2wG/gTcXMlC +KaWUqj5BchhNxpgvFtz+rD91uVJKqWNIkBrGn0TkNdkbIvIi4KHKFUkppVQ1ClLDeDFwrYh8FW8t +7noAEXkt4BpjQhUsn1JKqSoRpJdUe+k2EakxxkxUpkhKKaWqUZD1MO4puW0DD1SsREopparSdOth +3I6/doWIOAV3pYGfVbZYSimlqs1005tfDiAinzfGvH3xiqSUUqoaBUl6P+gnuIsYY75VgfJM8p4b +7+SJ/QM4rnfbAmoiNhtX1bOiuZZ9XaMMjyVprIvwnHPWs+fgMAd7x9jQ0cAJaxt54IkjAJy9pQPL +dfmjP97w3K2ruHDbGmzLIu043PyrxznQM8qGjgaueeEWwvb0rXWO63L3jk4O9o6xvr2e809bzT2P +dOVuX+DvO6js/g70jpIYT1NbE2ZDR8Os91NJuTL2jJKYSFMbC7OhvbJlLH2fs8eaanvpZ/nuvzmn +IuVS6lgUJGBcWvD/CHARcCewKAHj8aeLZ1J3gfGUwxMHR+BgfoH2sfE03/nN7tzt/T2j3P1oFwC2 +BU93eY+dSKbJuGD2D3LXjsNc8IzV/PaBg/QMJHBdlwM9o+w+OMjH3visaYPG3Ts6uf2hQwA8cXCQ +Jw4McvDIWO42wEWnrw38OrP7G42nGIknaayLsvvQ0Kz3U2qqE+tclC3jwfmXcTrb/3yIW/6wh2Ta +IRq2cRyHS85cz107Ovn53ftIpjNEwyFc4OLT13LTL3dxz85uXBcO9I7yhR8+xGuuOLkiZVPHroX8 +XS0nQXpJXVd4W0TagB9UrEQV4LheQLHwAg5AxnV58tAwezuHcVxw3fzjewbHuflXj/O6K0+Zcp8H +e8eKbh/oGcWyvS+M67rct6ubg71jbN28gm3Ht874ZTrQM8poPMVwPInjuEyk0tS7Ye7b1T2vWsdU +J9a5yL7miVSaVMZhYGSc8WSa/T0jc6qlBfHbBw4yNp4GIJV2+O0DB7nkzPXcv6ubkXjSK08yw/27 +urn49LU8/FRf7rN0Xbh/Z7cGDLXgSi8YoXIXTdUkSA2j1Chw3AKXY1G4ZbZlnDIbgXt3djEwOlHU +dFVofXt97osCsKGjIVfDGEuk6Rsa50DPKA8/dYThZ22a8SSdmEgzEk+SyTg4LownM/QNjTMaT9Hd +n5h1rSN7BfSzu/YyMOr1gLatNPfv7J5zwMi+5olkBtf13s+x8TT7Ooe5+VeP88fHewDo6o8DTBtw +gxoeSxbfHk2y/eHDdPbFSWccsKyiC4FJjv6LPrUEshd42QuxAz2jS12kRRFk8sE7yP8ebeB44JeV +LFQ1yDjw5MEhuvsTWEw+QV+wbQ1A2RzGo3v7GIl7kSiZcnJXv9OpjYVprIsyNp4imcpgWRYZx8Wy +LJLpjLevdAaITKrdlJO9AhqJp3JX3I7r5oLHXGRf8/d+9wSFp+j+kQlS6eJT9kL9gByneL/JdIbb +HzrERDKN44Lluli2RWt9FIBtm9u4d2cPLl6sOGdLx+R9HqPNCWrhjE2kGRgZx3XBslKMTaSXukiL +YrZLtLrAEWPMzsoUp7q4rksynSl7grYta1IQyd6+4fuj9A2NF90300lqQ3sDuw8OkUxncByXxjrv +BJi9gplIen/Bu9Ivp/AYh46M4rouoZBFKuOX2bZoaYjO7c0oeM3/9YenmEjnq2aJiTSxaLjoin9D +R8Ocj1OoJmKTSGZyt7PvmG1bWJZ3OxYNURvzvsonbmzhwd1HSKVdImGLrcdPXuvrWG1OUAtn3+Hh +XEcc1/VuHwtmbGT2l2itw5si5OXASZUuVLVIOy7RcGjKE/RUzt3SQWNdlJpoiOaGKOdu6eDuHZ3c +9uBBHnyil1v+8BTf/OUunILEyQXb1nD5mevY0NFAY12UhroIDXURtm1ewRknrWTjqgbqakKsX+nV +ZsrJngifODhId3+CsUSa+liEkG0Ri4ZoaajhvFPKP3c26muLrzPSGZfxiXTuqj4WDXHiuqZ5Hwdg +66ZWsnHVsmB9h/dZuC7ggmVZpNIO4xNeUPnT4724LoRDFq4L/7ujc9I+Sy8AgtTYlCo0kcpgQe7f +RCozwzOODkGapP4BeAXeNOcW8I8icqox5hMBnmsDXwMEbx6qvwUmgJv8248aY66fc+krLBoJ8eIL +jss1xQR14elrsSyrKOn9g9ueZCyRziVqd+zp4+4dnbkr2+zV+wXb1kyqidy9o5MnDw1hh2wOHhnj +nke6yl4RF574Guoi1MfCrF1ZPylhPl+tDTF6BsZx8WphIdsm7bhEQjY10RBtTTEO9yXmfRyAkza2 +smNPP6m0QyRsc8HpawlbNr9/4ADg1TSi4RC1NVN8la3J2Y3S/NNsLwiU2rKxhft29eC6XrPxlo0t +S12kRRGkSeo1wHnGmASAiHwNb02MGQMGXq3ENcZcKCKX+M+xgPcbY7aLyJdF5CpjzE/nWP4ZWVZx +D6igQhZwRujwAAAgAElEQVScfXL7nBLEhc1V7e2N9PaOsL69nnt3duUeEw2HAjd1Bb0iLj0Rnrd1 +VUWaWs49ZRXdA4lc81lNNISFFajZbLY6j8RZ2VKbu911JMFfP8er5GablSDfBHbulg66+xO5pryL +Tl83aZ+l+aeFCKLq2HLti7ZiWVZRr8BjQZCAYWeDhW8cb3qQGRljfioiP/dvbgIGgOcYY7b7224F +rgDmFDAsIBqxSGcg40yOCnWxEGtX1HNkMMF4yvF695Q8f2VLjOGxJKm04yewoLYmzOknrFjQL8EF +29bwxIFBduzpIxoO0VAXCXxSDXpFvFgnwgu3rcHyj7OuvR5cl4O9Y5MG8y2EqV77VK+1sHa3vr2e +55y7ib6+4gR8uaCs1GyEbXtBegEuN0ECxm0i8l94zUgA1wC3Bz2AMcYRkZuAlwKvxAsQWSNA83TP +v+ysddz3WBfpjEvGcXAcsG1ob6nleeds4KIz1uVG/m5/+DC//eMBJlIZtm5s5ZoXbsG2rFwTz9oV +tew+OMTj+wepiYa44pwNXLhtDf+7o5P7/S6hU3WjnS/bsrjuRVsnNTcFETQQLNaJcDFPuFO99qnK +ULrdtrX3k1ILxXJnaK8REQsv93A5XpL8duCrxphZ9SMTkQ7gj0CDMWaFv+0leDWOt03z1Dk0KCml +1DFvwa+Wgoz0doEv+/9mxV+pb70x5lN4TVkZ4AERucTvffUCAtRWentHZnpI1crmMJYrLf/S0vIv +neVcdvDKv9DmMtJ7Nn4MfFNE/uAf623A48DXRSQC7AJuqXAZlFJKLYCKBgxjTBx4VZm7Lq3kcZVS +Si28IOMwNpZscoGEMeZIZYqklFKqGgWpYfw3cBqwAy+JcirQJSJp4I3GmNsqWD6llFJVIsj80weB +ZxljnmmMOQs4G29N70uBT1awbEoppapIkIBxvDHmT9kbxphHgBOMMQeofNJcKaVUlQhywn9KRD4F +fBsvwFwNPCki5+N1k1VKKXUMCFLDeC3e0qzfA272n3MdsBlvQJ9SSqljQJCBe8PAu8rc9d2FL45S +SqlqFaRb7bXADUCrv8nCm4E2VMFyKaWUqjJBchgfAi41xjxa6cIopZSqXkFyGIc0WCillApSw/iT +iNwC/BZvAkEAjDHfqliplFJKVZ0gAaMZb92K8wu2uYAGDKWUOoYE6SV13WIURCmlVHWbMmCIyC+M +MVeKyF7KLGJkjNlc0ZIppZSqKtPVMN7g/710EcqhlFKqyk0XMK4QkemeqzkMpZQ6hkwXMC7z/54A +nAj8CkgDzwceQwOGUkodU6YMGNlkt4jcAWzLLpgkIq14a2QopZQ6hgQZuLcW6C+4PQasqUxxlFJK +Vasg4zB+CfxORH6MF2BeCfygoqVSSilVdWasYRhj3gl8CdgCnATcYIz5YKULppRSqrpMNw7j4oKb +vcCPCu8zxtxZyYIppZSqLtM1SX3E/7sCr6fU/+KtsPds4BHggsoWTSmlVDWZrpfUZQAi8ivg5caY +J/3bm4CvLk7xIDGRwnEdbMvCW4pDKaXUUgiS9N6UDRa+/cCmIDsXkTDwH8BxQBT4OLATuAlwgEeN +MddPt4/+4Qn6B8aJhCzC4RCRkE0kbBEJ22gAUUqpxRN0evObgR/iJcmvBrYH3P9rgCPGmNeKSAvw +MPBn4P3GmO0i8mURucoY89OpdvDHnV00REOsbIkRyrgk/O2WBdGQTShsEw17QSRkaxBRSqlKCRIw +Xg/8HfC3eJMQ/h6v11QQPySfLA/hjRQ/yxiTDTi3AlcAUwaMb/zsMe/JtkVHay2r2+q8fyvqWNVW +R2NthLhl5R4TDtlEIzaRkFcLsawgQ02UUkrNJMj05kkR+S/gceA3wAZjTDrIzo0xcQARacQLHP+I +tz541gjeehszyjgunX1xOvviRdvrYuF8EPEDSUdrLdFwCAsIa1OWUkotCMt1J81cXkREXgV8AKjF +6yG1A3i3MeY7QQ4gIhuAHwNfNMbcLCL7jTEb/fteAjzHGPO2qZ7/8+173EO9oxzsGeVw7yi9g4mp +Hpp/UUBHWx3r2htY117Puo5G1nU0sKK5hpBtEQmFiIRt/1/Ir4loEFFKHVUW/KQWpEnq/+EFijuN +MT0iciZes9SMAUNEVuHVSq43xtzhb36oYBzHC4Dbp9vHWVs6OK6jHk5dBcBEKkPPgFfT6OqP093v +/U1MZHLPcYFu/74HTX5f0YjNqtZ8bWSV/7c+Fibi50O8mgiEQwvTnNXe3khv78i897NUtPxLS8u/ +dJZz2cEr/0ILEjAyxpiR7FTnxphOEXEC7v99QAvwQRH5EN65/O3AF0QkAuwCbpluB5GwhWVBtiJU +EwmxoaORDR35N8N1XYbHknT5waOrP05XX5zewXGcghpUMuVwoGeUAz2jRcdoro/mgsfqFd7f9uYY +sWiooDkrG0S0e69S6tgUJGA8JiJvBSIicgbwFryeTjMyxrwDeEeZuy4NWsCO1nqsdIaM45DOuGQy +kM44ZDIOaccl47hYlkVzQw3NDTXIxtbcc9MZh97BBN39CTr7xugeiNPVn2B4LFl0jKGxJENjSZ44 +MJjbFrIt2luKk+xr2upobYwSCYcIh23CIYtIyMa2NYgopY5+QQLG9Xg5jATemIrbgXdVslCTWYTs +ECEbiBRud3FdL2hkHD+YOA6ZtBdMwGbNinrWrKjnjJNW5p4VH0+X1EbG6B5IkErnK04Zx83dX6i2 +JlwURFa31bF2RR11sYiXEwlZhLWLr1LqKBSkl9SY35z0n0AS2G2MyczwtEViYVkW4RCEQ0wKJo7r +ksm4Xs3EcUlnHJyMi10bZvPaJjavbco92nFdBoYn6OqPe7WR/gRdA3H6h8aLFjRPTKTZ2znM3s7h +glJAW1PMz4vUsnpFPWtX1LGqtZZILEJiIu311gpZ2qSllFq2ZgwYInIJ8G2gB2/gXqOI/LUx5oFK +F25+LGzLwg5DZNKrzAYTh3QGUhmHTMYl0mqzojnGqce35R6ZTGXoHkjQ3R+n00+kd/bFSUykC/YG +fcPj9A2P89i+/FEiYZt17Q2sbPaCyZq2WtatrKepoYZwSGsjSqnlJUiT1GeAFxljHgEQkbPxBu6d +W8mCVVY2mHjJ7NrcdhfHcXMBJJVxiYZsalaF2NDRkH+U6zIST+WarLI9tXoGEmScfH0klXbY1znM +voLaCEBTXcQbeNjqNWutXVHH2hX1RKNhryZiW4RCFiFbayRKqeoRJGCQDRb+/x/w54g6ClnYtkWN +bU9q3ipKujsOsWiY1sYaTt7QkntUxnE4MjhelB/pGUgwMDJRdJTheIrh+BBPHBjKbbMti/aWWC4v +4tVI6mhrrCEUDvmj2L0gEgp5I9o1kCilFlOQ9TAeF5GvAN/Am9rj1cD9i1C2KjJ10j3btJVKe72y +6qJh1qyoI1vRaGur51DnUFF3X6+3VpxkKp9kd1zXa/oaSPAwfbnttTUhr8tvaz7Jvqq1jlhNiLDt +9dQKhex8QAlZOrOvUqoigqyHkfWvBf+ffnj4MaO4aSvPq5Gk0i71sTAtDTXUx8Icv6Y4yT44MlEU +SLr64/QNj1M4+D4xkWFf5wj7OosHELU11uQDSLY20hTDtv1aiO0FEm3iUkotlBnXw1Bz4ddIotDS +GCM1nqIwiKQzLqm0Q6TFpq0pxinH5ZPsqbRDz0A+iHT6ASU+Xjx9V//IBP0jE+zcN5DbFgnZdLTV +Tppbqz4W8UsFYdvC9mskoYJg4jVxZR+llFKTBekldRHe4LvWwu3GmMsrVaijUz6I5BU3aaUyDpGQ +w/r2Bta1FyfZRxMlSfa+ON2lSfaMw6HeMQ71jhUdubEuMmk6lI7W2oIgURJMsoHEtkimMriuozUT +pVSgpPdNeM1TT1e2KMei8k1aruuQzni1kWTaIZV2aKyL0lgX5aT1hUl2lyNDiVwA6epP0NU/xuBo +8Uj2kXiKkfgQuw8WJtlhZcvk2khzfbRoIkYrGqd/YNzLkdhepwDNmSh1bAoSMA4ZY75V8ZKoHMvK +zqQLdUC2JpJOez21UhmXTNohhcOqVi8Jvu2E/PPHk2lvOpR+fwCinx+ZSOXHWzou9Awk6BlIsOOp +fJI9Fg3l59Vqq+Pk49qoDVvEouGC2kzxuM1cMMk2ddneYMqQrdOmKHU0CRIwbhSR7+BNCZJrSNcg +spi8q/hoxCZa0ksrWxNJpb35tZJpr8vvptWNbFpdPEHj4OiEVwvpi9PVP0ZXf5wjQ8VJ9vFkhqe7 +Rni6y0+y37UXgNbGmuJmrRV1rGiKEbKt3NQspCfPSWlbXuDI5kmyNRMd9a7U8hMkYLzF/3tRwTYX +0ICx5CzCoRDhENTWZLd5wSP7L5l2chM0tjbGaG2MsXVTPh2VSnsTNBb21OrqjzOaSBUdaWBkgoGR +CXY9nU+yh0MWHQXTxWebtRpq81HNccHJOHiVm+KaSTZPojUTpZaHIAFjjTFma8VLohaI5S8KFfJv +e6PXs7mQdNohmXFytYpI2GbtynrWrqwv2stoIkVXX5zh8TR7Dg5664sMxEln8tWRdMbl8JExDh8p +TrI31BYm2b25tTpaav3VDvPSjutNElmmZmJZfhLeLk7Ca/dgpZZOkICxXUSuBH4ddGlWVU28RHUs +ahPL9dAqaMrKeLP7FgYR8E76J65vpq2tnv4TVwDgOC59w+OTaiOlI9lHEymePDTEk4fySXbLIjen +1uq2ela31bJ6RR0tDTVlVzt0XUhlXMhkIDXp7lzeJFTYq0uDiVIVFSRgvBh4PeD6iyhZgGuMCU37 +LFXFCpqyctuK8yGpdKaoNgFg+2uEtLfUctrmFbnt48k0PQOJ3CqI2a6/48mCVRBd6B0cp3dwnEf2 +9Oe210RCXi2kZMr4WHT6r+Z0eZPCJHxN3URutmDt0aXU/ASZ3nzNYhRELbXJ+RDXdWhqjpFMJHNB +xCkzxj8WDbNxVSMbVxUn2YfGkkU1ka7+OEcGE0X7mEhl2N89yv7u4lUQWxqik5LsK5trCdkzn+wL +g8lIPMVQwYJZtkVu0at892DNmygVxHRzSb3ZGPNl//+nGmMeK7jvc/5qeuooZlk2sWi4IIldXAtJ +px1SGafsPDGWZdHSUENLQw1bNk1eBbE0kIzEi9udBkeTDI4meXx/fhXEcKhgFcSCSRobaiNlm7XK +cVyYyNVKipPw2bxJKJeEt71gEtIp6JWC6WsYbwC+7P//28BZBfddPPnh6uhXvhbi9cZyp62FZIVD ++VUQC42NpyblRnr6E6Qy+SandMals89bj4Td+efWx8K5+bSytZGO1lqi4dm1mmbzJqnM5PXByibh +Q9meXTqtijo2TBcwrCn+r1SOZdkl40PcolHq6XTGS17PoD4W4YS1zZywtjm3zXFc+v0ke3bxqq7+ +OP3DxUn2sfE0ew4Ps+dw8SqIK5pjbFzdRFtjvnmrpbHGz2PMznRJeAty3YILuwiHbC/vowFFHS2C +rmuhs9OqgEprId4oda/2EawWkmXbFitbalnZUsszCpLsE6mM183XDyTZWklRkh04MjTOkaHxon1G +I7a3cFVJs1ZtzdyXeHGZoYsw5QOKJuLVcjPdr0SDhFoA3gmxJmJTU1ILSaa8br3pVIZUkAjiq4mE +yibZh8eSRXmR7v4EPYMJnIJ9J1MOB3pGOdBTnGRvro/mgkh2apT2lpifu5ifmQKKNxo+39xVWENJ +ZxzyP0UNKmppTRcwThWRPf7/1xX83wK055Sah3wtxOPXQlKO34w1eVzIjHu0LJobamhuqEE25pPs +Tc21mD1HvDm1/OlQuvriDJck2YfGkgyNJTEH8kn2kF2QZC+okTTWBU+yB+GNhi/f3OWGxxjoT+Qm +ftRR8WopTRcwTl60UqhjnF8LidrUFAwuLJzeJOVPcTJbxUn2lbnt8WySvT9RtC57qqAGkHHcXG2l +UF1NOJdcz3X9ba0lGqnE0CQLF7waWOBR8TahEJqQVwtuugWUFmQ6cxE5D/iUMeYyETkBb7p0B3jU +GHP9QhxDHY3yU5xkZ+zNOH4zlp8HCZJMn0pdLMLmtc1sLkyyuy4DwxP5BHtfnK6BOP1D40Xts/GJ +NHs7h9nbWZxkb2uOFS2lu7qtjtamuSXZZ2OmhHzpKoxe81c+r6Ij41VQc8/0BSAi7wH+Bsg2GH8G +eL8xZruIfFlErjLG/LSSZVBHC28BqtqaKZLpqcysm7FK2ZbFiuYYK5pjPOP4/CqIyVTGW2+9JMme +mMjPlOMCfUPj9A2N89i+/Ej2SNhmVas3n1bhJI11sYr+9IrKlRvICJSOPQEKcib+eicFNRQNKKpQ +pb+1TwIvwxvHAfBMY8x2//+3AlcAGjDUHJQk02sjuYWnJvxaSDKdYSH6bkQjITZ0NLCho3gVxJF4 +fhVEbwXEOD2lqyCmHQ72jnGwZBXEpvqoN5+WP7fWqjZvypXCVRAXS3FAmcy2LUKWVZKQ93t42drL +61hS0YBhjPmJiGwq2FT4rRoBmlFqgRQuPOVxaW6pJT2emlcepPyxLJrqozTVRzl5Q+EqiA5HBseL +AklXf7xoehKA4bEkw2NJnjhQuAqiRXtLrKhJa0s4hOu6C5pkny3HcXFwSU2unAD5NU9se3JQyffy +0oByNFicenFeYcauERic6oGF2tsbZ35QFdPyL61NG7zmJddfP30ilcnVQNJpB3eBT2btKxspXQ9g +bDzF4Z5RDvaOcrh3lIM9oxzuHStZBdH1mr4GEjxMdhVEQ10szDp/nfd1Hd7fte31M07QuNRcoLt/ +DMvyE/F+Yt4bf2IX5VSWMiBOZ7l/9xfaYn/jHhSRi40xdwIvwFvFb1ove89Py3UMmVZTXYSVLTEO +944ynvKuKGvCFs86tYNk2uXPT/aRmMhgW7Cxo55YTYSB4XH6RiZwHJdIyKKuNkpN1CaddhiOp6iN +hrnqwuO4+Ix12JbFeDrNP339fgZGkrQ2RvnQ687hTzt7Odg7xvr2ei7Ytsa7YmxvpLd3BMd1uWtH +J/fv6gbg3C0dXHj62lxC1HFd7t7RyYHeURLjaWoiNvt7RplIOaxrr+fJAwMMjaVpbYzyT68/l1h4 +8kfnuC53PXyY+x/vwfXb9ydSDhs7GnjVc0/kY//xAAMjSWJRm7OlnePWNOfKOZVs+QHSjsPNv3qc +/d0j1ERDbFrdxMaOBi7YtgbHdbn5V49zoGeUDR0NXPPCLYQXYAzDVLJlmel4heXPSmYyfPq7D3Ko +N05tTYgXXbCJc7asIp32xofMpxbiuC4Pml66+uOsbqvjLGnPvb8rGqKsaGjjdD8/4rguAyMTuR5a +2dpI33DxKojx8TS7Dwyy+0Dx9VVbU/EqiGva6mhrivndbKtDW1s9fX1j0z7GguIlfv3BjEs9sLHc +d2c5qUSws9z5ZAkD8Juk/tMY82wROQn4GhABdgFvMMZMW4AXv+unVTWAsKE2zKfecj7v/dI9jCbS +RdtdF5Jph7DfA2Ui5bKyJcYHrzubex/t5ge37WYi5WABdbEwr7zsRC4+fS0Ad/z5ID+87UkmUjNH +x9aGCP/21osmbf+fBw/w3d8/WfaEFw1bJNOTtzfWhvnkW84vG+yg+EfztZ89yj07e4r3G7Fprosy +MDqRmw7dtuDcrR0cGRqnuz/BqrZa3n31mURDC9ft9Bu/2Mn9u7pxXK/msHltE+99zTMnBb9yP/qP +3fxH9nQWb3v1c0/iL87awFTTvAf9Et6/q5vf3LefdMYhHLJ53nkbOXfrqlm9tmQ6Q4+fZB8YS/F0 +5xCdfXHi4zMvRxMJ2axqq82vy+43b9XHIjM+txLa2urp758+YMzEtiBs29i55q7F6TY8XcBIZjLc +8L2HKvb9Xgjt7Y0L/qZUPGDMV7UFDPAmuxsL8OPNWtEUJRIK0TWQKNp+ynGtvPuvzgTg779w16R2 +7un8x3svn7TtHTfeyXB89mtc1cdCgEUy7RAN2/yfS0/gkjPWAcU/mr+94Y6yQacci+J08+a1jXzg +tefMumylsj/Upw4NF+0/HLL4m+cKF/kBOKvcj/71/3L7pKlJIiGLr77nsrLHdFwncG+sz3z/IY4U +zHW1sqmGd/qf8VxkT7iu6zKSSE2qjZQm2afSWBcpni6+zZugsdJJ9oUIGNPJTbviT1kfDpUk5edR +O5kuYHzs5vvZ05mfLWDzmgY+cM25czpOpVQiYFR3I2iVmk2wAOgbTlLud5kpmIl1fGL+ixnOJVgA +jI3n29FTaYdb79mXCxiFUgGDBUzum7Svc2Gq9p/61h/Z1x2ftD2dcdnbNTQpYJRT7vw63ZgO27LL +9sZKpl2SqeK5sY6UTIxYenuuLMuiqS5KU12Uk9aXJNmHxnMBJBtQBkeLLz5G4ilG4kPsPliYZIeV +ZUayN9dHqzanUCo/7Ur5jHw2IR9a4NpJYbAod/topQFjkThlWpoOFayF3VgfYWJoYU4u89UzRTks +izmPc5hrWiCb28k2l5ULFln3PNrNa5838/LzkZA1r0F/hb2x6mNQ2IxVE7G9k1jamfNrno2Q7U2m +uKq1jtMLticm0nQPFHT59Ue0FyfZoWcgQc9Agh1P9eW2x6KhfJNWwdrs1Z5kL8ebdsUp28OraFLI +onVQvDVQvNYX7eFVaPl9A5ahkAXlzk+FA79WttRypEoCxlQW4wRY6u4dndz+0CEAnjg4fae6IPkf +gPXt9eztKr4inF+eOD83VrYMkZBFxN9pTdie96DC2aqtCXPc6iaOW92U2+a6LoOjE950KH1xOvvH +6O6Pc2SoOMk+nszwdNcIT3cV1wpbG4uT7KtX1LGiKRZoFcRqVDQpJFA6qNGxRxkaHJ8UUGwbomG7 +aPzK8nwHZk8DxiKIRS3GJiafLQpapBgcmX+wmCowLWelA94Wwlhicq5ooYOhN1WHt9PWphiFc2Nl +58daqDEhQVmWRWtjjNbGGFsLVkFMpR16BhN09Y3laiKd/XHGEsXzjAyMTDAwMsGupwdy28Ihy6vh +lDRr5VdpXL5crKkDih8homEby4KaiM1oIoVtWUf1KHkNGIsg49qUm5Kh0EI0GVszH2ZebGvuJ9a5 +5lbXt9cX1SxsigfzzEXvcPDOBQsnPzeWx5sbK7fQVGrq5W4rLRK2WbeynnUri1dBHIkncwEktwri +QDzXGw683NGhI2NFzasADbVekv24tc201EdY1VZHR0stkfDij2SvhMbaMH3DyVzQb6gNM1oSYOHo +m3ZFA8YicIFVrTG6B8anfExrQ4yu/sS8mi0aaiMMjk7+0k7FsrzRxY7rFh03OsWPurEuwtDYzPvP +tlAUBpeaOc7kesE2byb9bA7jJ9v3TEroLoSmuoW5Iq6LhYgXdCKoi031ur25sUJRiPkz9JZb7nYp +l6VprIvSWBflxPX5CRkyjkvf8Hh+ckY/kAyU1JBHEymePDTEk4eKk+wrmmv9KVHq/dpILS0NNcsm +yZ7V3FDDwEgS1/V+R80NNWUfN9O0KyF/2pWiLsM2uSR9tQUUDRhzMNumnw3t9Tz7tDV8+9em6Od/ +3Kr8Fd25p6zi6e6RWffAKnTKpjb+97HuQI+NRWw6WuvY0NFAxslw387eXHrvmdJe9jlXXXAc37/9 +KdKZfEK3JmKTTOWvjMMhi+b6GpobIuzrHMn9oM44qfw+Z2JbVlHPJ7N/gPt29ZT9ETbUBvs6r2yO +0TtYHLxfetHxcypfqTNOWMk9O7vzr/uElTM/yVduuduW1joyE2m/FjK7haYqIWRbdLTU0tFSy2kF +qyCOJ9OTaiPdJasgOi70DiboHUzwyJ78BI01kRCrsvNqrahjjT+3VjUn2U8/YSX9QxOkMg6RkM3p +s/icC2UclwzulC0DIX+urlCVBJTq/UR8q5qge3jmx83kuI46EmmHodEk48l8o0ZHk0XPcPkfYcj2 +rorS/ocZi4Y486SV/OVzT+QDX7kvN3CvNmrx8becz5d+9Cjd/Qk6WmK4QO/gOOtXNfD2V24jbNu4 +uPxs+z4mkhnWtdfxnleflTvWhf6V9L2PdfLUoWHSGZfIFIPt/vVtzypb3mtftJVMJsP9jx+ZdF2a +/UpZlnfCLBwtnnYcQnbxqOlyLj5zPaFQqGiAX3aEd+no7/OesYpv32pm3OdsXfuirViW5QXXxASD +Y2lcNz+gMoiPvP5cPvz1++kfniAatnnFpZu5uEw34vmUb2Fet9eMVVsTzs/Q63hNWMm0Q8b/Ww1p +q1g0zKbVjWxaXbwKohUO8/jeI0W1kSODiaLa50Qqw/7uUfZ3F3dEaGmIFnX5XdVWx8rm2qpIsj9z +SweWZRWN6K+EbECZbh6v4kGN+TEof3z06dg5z9g0dbPGHFT9wD3AXe7D87X8S+doL3+5ZqwlroQU +KTdwL51xciPZC2skI/GZmzvDIa+GU7qAVUPtwq6COFXZl5Nb/mf3KR9504W7FnKfVV/DUEpNrVwz +Vm699HRmSXpjzSQcslm7sp61JUn20USqaPBh9v+lSfbDfXEO98Vhd/659bFwbj6tbG1kVWvdUZNk +n4tkutzor/nRgKHUUaVwvfQwC71SYSU11EY4cV0zJ64rWAXRT7KXBpL+khH0Y+Np9hweZs/hglUQ +LVjRVDxd/Oq2OloaK78K4tFKA4ZSR7UpVipMefmPdNpZ9EGFs2HbFu0t3uJShUn2iVSGbj+IdPpL +6Xb1FSfZXReODI1zZGicRwuS7NGI7a/DXtysVVujp8OZ6Duk1DHFX6kwalMTzW4rWOq2SpuxStVE +Qmxc1cjGVcVJ9uGxZH5Ndr/rb+/gOE5BREymnLJJ9ub6aNHgQzneJWK5hCo4Tf9yowFDqWNedlAh +lDZjVUt33iAsy6K5oYbmhhq2bMyPZE9nHHoHE0VL6Xb1JxgumR16aCzJ0FgSk1t35EmvG3FrbdEs +v6vb6misW/gk+3KgAUMpVaJMM5bjL8i1xKPS5yIcslmzop41K+rhpPz2+Hiarv4xb26t/rg3NcpA +glewrOUAAAyPSURBVFTBim0Zx6Wzz2v2KlRXE84l19dkp4tvqyUarq41MRaaBgyl1Ay8aS0Km7Fc +1/HXSZ95jZBqVRcLs3ltM5vXFiTZXZeB4Qk6++MMxVPsOzTkJ9nHiwJkfKJMkh1oa46xuiQ30tp0 +9CTZNWAopWbNmmmNkIyDswyasUrZlsWK5hgrmmNF4zCSqUyuKatwAavCGaddoG9onL6hcR7bV5Bk +D9tes9aKej+IeE1cdUu0CuJ8aMBQSs3bVGuENDVESYxNkK7i7rxBRCMhNnQ0sqGjOMk+EvfGjnQW +zPTbO1i8CmIy7XCwd2zSzMtNdZGCmog3HUp7S+VXQZwPDRhKqQrwxoPU10Zpro9StjtvlUxrMleW +ZdFUH6WpPsrJG/KrIKYz/iqI2d5afm2kdAnm4XiK4fgQTxwonKCxMMmenV+rnqYqSbJrwFBKLYLJ +3XkLm7Gy64RUe3feIMIhO5e/KJSYSNPZN3kke7Igye64bu6+QrU1oVxPrexo9o7WujnPAj1XGjCU +UkuisBnLk1/qttpHpc9FbU2YzWub2Lw2vwqi47oMjkzk59TyayN9w8WrICYmMuztHGFvZ/G8Ym1N +NUWj2Fe31dHWFMOu0ASNGjCUUlUiP61J6aj0VGb59saajm1ZtDXFaGuKccpxbbntyXSGHj8n0u2v +gNjVFyc+Ubz8Qf/wBP3DE+zcl18FMRKyWdVWS0tjlIWmAUMpVaUKmrGgqDdWdqXCo6UZq1Q0HGJ9 +RwPrOxpy21zXzU3QmK2JdPfH6R4oTrKnMl6SXQOGUuqYVtiM5WUI3KIAslxGpc+FZVm5VRBPWp9P +smcchyODkydorIRFDxgiYgFfAk4HxoHXG2P2LHY5lFJHgzLNWP6o9KOlN9ZMQrbtTedekmT/3u/N +gh9rKWoYLwVqjDHPFpHzgM/425RSap7Kj0ovXGQqmc4cVXmQxbQUAeNC4NcAxpj7ROTsJSiDUuoY +UW6RqWw33qM5D1IJSxEwmoChgttpEbGNMQu+OpRSSk2WnZ03lMuDLJdFppbaUgSMYaCx4PZMwcJq +b2+c5u7qp+VfWlr+pbXcyj8wMGDt6xyJ3X5/d2NXX7x2JJ6KHT4SD3UPjKdnfnb1eMbm1gUfjLEU +AeNu4ErgFhF5FvDIEpRBKaXKam1tdVtbWxNnnrIxsdRlqTZLETB+AlwhInf7t69bgjIopZSaJcvV +7gJKKaUCqN55dJVSSlUVDRhKKaUC0YChlFIqkKqdS6qapxARkTDwH8BxQBT4OLATuAlwgEeNMdf7 +j30D8EYgBXzcGPNLEYkB3wE68LoZX2OM6Vvkl4GIdAAPAM8BMsup/CLyXuAlQATve3Lncim///25 +Ge/7kwbewDJ5//3ZGT5ljLlMRE6Yb5n9npKf8x/7O2PMRxex/GcAN+J9BhPAa40xvdVa/sKyF2y7 +GnirMebZ/u2Klr2aaxi5KUSA9+FNIVItXgMcMcZcDDwf+CJe+d5vjLkEsEXkKhFZBfwdcL7/uE+K +SAR4M7DDf/63gQ8u9gvwT1pfAbKzlC2b8ovIJcD5/nfjUmDjcio/8EIgZIy5APhn4BPLofwi8h7g +a+BNHrtAZf4y8FfGmP+/vXOPsauqwvhvWkQBSwtIjJoGKtUPK6RpeViFCgiEFDWxCsUINWJrlFBA +G0FQaa1peCREeSUiFJrS+EIRRRqoiLUPiX1TqMUPMQFNVCTYBgpF7MM/1r70zOXemTu2c3unXb9/ +5sy56+z97ZOTvfbjnLXGAx+QNLqN+m8ELrb9EeLtza91qv4G2pE0Bvh85f9+197JDqNbCBGgk0KI +3MPOmz6YGKGMtb20nHsQOBM4EVhme6vtF4E/EzOm19tWbM9ol/AKNxAPzN+BLgaW/rOA9ZJ+AdwP +PMDA0v8UsF+ZRQ8lRngDQf/TwMTK/8ftgubTJQ0B9rf9TDm/kP5tS73+82zXvgPbj1jJ6FT93bRL +OgyYDVxWsel37Z3sMBqGENlTYqrYfsX2y+Wm/xT4BtHp1niJ0D+E7m3YTHQQ1fM127Yh6XPAv2w/ +zE7d1Xvb0fqBtwHHAecQo6cfMLD0bwZGAH8Cvk8si3T882P7PmJwVGNXNNfOvVhXxtDdq3on9fpt +Pwcg6UPAxcB3eWO/0xH6q9pLPzgHmA68XDHrd+0d0QE3oa8hRNqKpOHAb4F5tn9MrOPWGAJsItpw +cN35jXRvW822nVxIfDy5iBiB3A0cXvm90/W/ACwsI6mniJFh9WHvdP1fAR6yLXbe/2q2m07XX2NX +n/l6Z9f2tkg6j9gDO7vsAw0E/WOBkcQKwY+AUZK+Qxu0d7LD+D2x1kunhRApa4ULgStszyun10r6 +cDmeACwFVgInS9pf0lDgaGA98CilbeXvUtqI7VNsn1Y2zx4DJgMPDhT9wDJijRZJ7wQOAh4pexvQ ++fr/zc4R3yZiOWTtANJfY82uPDO2XwL+I2lEWZ47iza2RdIFxMziVNvPltMrOlx/l+1Vto8tey+f +BjbYnt4O7R37lhSdHULkKmAYcLWkGcAOYi3xlrLJ9CTwM9s7JN1MdHBdxAbha5K+B8yTtJR4O+Mz +e6QV3fkqcMdA0F/e/BgvaUXRdRHwDDBnIOgnNlvvkrSEeMvrSmD1ANJfY3c8M18CfkgMXn9te2U7 +hJdlnZuAZ4H7JO0AFtue1eH6m4bmsP1cf2vP0CBJkiRJS3TyklSSJEnSQaTDSJIkSVoiHUaSJEnS +EukwkiRJkpZIh5EkSZK0RDqMJEmSpCU6+TuMZIAi6VbgJOLr5ZHAH8tPN1U+dOytjFnAStsP9GCz +xvbYXdXbV3qrV9KRwDdtT22xvAnEV7tLbU/ePSqhfMk/k3gn/1vVKKcNbOcCi2zfvbvqT/Y+0mEk +ux3b0wAkHUF0Qn3u1G3PbMGm7c6ixXqPBN7dhyLPAWbbnvN/i+qd/OAq2WXSYSRtRdJMYBwwnAgL +v4HIJ3IAcAgRbuXe2ogXWEx89b8eGAP8EzjX9iZJ220PKmW+C3gPEer8TtvXVEK4n0RE5d0BfNv2 +koqeU4BZRMTY4cByIvfKfyVdSAR42058iT3N9is91DvH9rXEF8QjJN0CXEcERzywlHOp7RWV+qcQ +ofxPl7SdCM9wO3AoETzuUtury/04DDiq3KMFlTLOLTrfUu7jVNvLmtz/o4jZzKFEaPtLbK+rs5kM +fJmYmawmQoC/1qi8ZN8i9zCSPcGbbR9j+zZgGjDF9vHAVGBGA/vRwA22jyViMJ1fzldHzccS4ZnH +AVdKOpgIGXKg7fcRoWWahcg/AbjI9tFEh3uxpGOArwPjbY8mOtfarKdZvVeVei8FVtm+BJgC/Mr2 +icAVRKjp17F9JxGifYbtu4hENzeWOqcD95bQGxA5WN5f5yy6iIQ5H7U9BrgeuLxJOyESN11e7vcX +gZ9Uf5Q0ikjo9MEyk3q+l/KSfYicYSR7guWV48nAxyRNIjrdtzawf8724+V4PTE6rmeR7W3A85Je +IKLXnkGM1rH9V0mPNNGzxPbT5Xg+OzOW3W+7FsHzdiLLYiv1VvkN0emPBRYQs6qGSDoIOMr2L4vm +5aVMFZPl9deU2E2fBD4uSURCqa31dpXyTwDmFkcDcKCkQypmpxH7Tn8oNm8C1jTTnOxb5Awj2RNs +qRwvIzqxVcTSVFcD+1crxzv6YLON7s94o+ugewc7iHAWXXX2XTQeYL1a93+3Omw/CowiEthMIpI9 +NWNQA42DKvVuqfut5gRWEvsmi3ljbo0qg4EttsfaHlNmJONsb6yzuadmQyTlmdaD5mQfIh1G0t80 +67woI9uRxHLMQ0SI5cF9KKO38w8T4Z9rYdBPpfHm78mS3lEimH6WyEq2mBi1Dys2XyDyn/TYpsJW +Sicv6XoiV/R8In3mmGYXlZDTf5H0iXLtOODtxKyqGe8Fttm+htjzmUDje0gtC5uk80v5ZxK50Kv8 +Dpgo6fAyw7iN2M9IknQYSb/TUzjmjUTmsA2SVhOZ9A6QdEDddc3K6O38HcBmSY8Dc4kQ6G8YpQP/ +IJIYrQf+RmxePwFcCyyRtIFYaqql5e2t3ieBYZLmESP+T0laC/ycCCndUzsmA5cVzTcDE21v7aHO +dcBjkkxsUL8EHNGDzguAqZLWETO6SVXbsvQ3i3COTxDO8bomdSf7GBnePNlrkXQ2kXBmQdmMXgMc +X9mXqL0lNbMko0mSpAdy0zvZm9kAzJc0mxhBX111FkmS9I2cYSRJkiQtkXsYSZIkSUukw0iSJEla +Ih1GkiRJ0hLpMJIkSZKWSIeRJEmStEQ6jCRJkqQl/gdeTCJMwB6l8QAAAABJRU5ErkJggg== +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [14]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">train_size</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_layer_sizes</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">x_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> + <span class="n">y_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Hidden layer size of selected models"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"Training points for allele"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Hidden layer size"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[14]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x12214b940></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +AElFTkSuQmCC +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [15]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">seaborn</span><span class="o">.</span><span class="n">regplot</span><span class="p">(</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_embedding_output_dim</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">selected_models_df</span><span class="o">.</span><span class="n">hyperparameters_layer_sizes</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">values</span><span class="p">,</span> + <span class="n">x_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> + <span class="n">y_jitter</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="n">xmin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="n">ymin</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"Hidden layer size vs. embedding output dims of selected models"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"Embedding output dimensions"</span><span class="p">)</span> +<span class="n">pyplot</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"Hidden layer size"</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt output_prompt">Out[15]:</div> + + +<div class="output_text output_subarea output_execute_result"> +<pre><matplotlib.text.Text at 0x12214b710></pre> +</div> + +</div> + +<div class="output_area"><div class="prompt"></div> + + +<div class="output_png output_subarea "> +<img src="data:image/png;base64,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 +kf8PCsz+fJ3oB8IAAAAASUVORK5CYII= +" +> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [16]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">log_path</span> <span class="o">=</span> <span class="n">get_path</span><span class="p">(</span><span class="s2">"models_class1_allele_specific_ensemble"</span><span class="p">,</span> <span class="s2">"GENERATE.sh"</span><span class="p">)</span> +<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">fd</span><span class="p">:</span> + <span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">"<h1>Model selection invocation</h1><pre></span><span class="si">%s</span><span class="s2"></pre>"</span> <span class="o">%</span> <span class="n">fd</span><span class="o">.</span><span class="n">read</span><span class="p">(),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt"></div> + +<div class="output_html rendered_html output_subarea "> +<h1>Model selection invocation</h1><pre>#!/bin/bash + +if [[ $# -eq 0 ]] ; then + echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train' + echo 'See README.md' +fi + +set -e +set -x + +DOWNLOAD_NAME=models_class1_allele_specific_ensemble +SCRATCH_DIR=/tmp/mhcflurry-downloads-generation +SCRIPT_ABSOLUTE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" +SCRIPT_DIR=$(dirname "$SCRIPT_ABSOLUTE_PATH") +export PYTHONUNBUFFERED=1 + +mkdir -p "$SCRATCH_DIR" +rm -rf "$SCRATCH_DIR/$DOWNLOAD_NAME" +mkdir "$SCRATCH_DIR/$DOWNLOAD_NAME" + +# Send stdout and stderr to a logfile included with the archive. +exec > >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt") +exec 2> >(tee -ia "$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt" >&2) + +# Log some environment info +date +pip freeze +git rev-parse HEAD +git status + +cd $SCRATCH_DIR/$DOWNLOAD_NAME + +mkdir models + +cp $SCRIPT_DIR/models.py . +python models.py > models.json + +time mhcflurry-class1-allele-specific-ensemble-train \ + --ensemble-size 16 \ + --model-architectures models.json \ + --train-data "$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv" \ + --min-samples-per-allele 20 \ + --out-manifest selected_models.csv \ + --out-model-selection-manifest all_models.csv \ + --out-models models \ + --verbose \ + "$@" + +bzip2 all_models.csv +cp $SCRIPT_ABSOLUTE_PATH . +tar -cjf "../${DOWNLOAD_NAME}.tar.bz2" * + +echo "Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2" +</pre> +</div> + +</div> + +</div> +</div> + +</div> +<div class="cell border-box-sizing code_cell rendered"> +<div class="input"> +<div class="prompt input_prompt">In [17]:</div> +<div class="inner_cell"> + <div class="input_area"> +<div class=" highlight hl-ipython3"><pre><span></span><span class="n">log_path</span> <span class="o">=</span> <span class="n">get_path</span><span class="p">(</span><span class="s2">"models_class1_allele_specific_ensemble"</span><span class="p">,</span> <span class="s2">"LOG.txt"</span><span class="p">)</span> +<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">log_path</span><span class="p">)</span> <span class="k">as</span> <span class="n">fd</span><span class="p">:</span> + <span class="n">lines</span> <span class="o">=</span> <span class="n">fd</span><span class="o">.</span><span class="n">readlines</span><span class="p">(</span><span class="mi">100000</span><span class="p">)</span> + <span class="n">di</span><span class="o">.</span><span class="n">display_html</span><span class="p">(</span><span class="s2">"<h1>Model selection log (beginning)</h1><pre></span><span class="si">%s</span><span class="s2"></pre>"</span> <span class="o">%</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lines</span><span class="p">),</span> <span class="n">raw</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</pre></div> + +</div> +</div> +</div> + +<div class="output_wrapper"> +<div class="output"> + + +<div class="output_area"><div class="prompt"></div> + +<div class="output_html rendered_html output_subarea "> +<h1>Model selection log (beginning)</h1><pre>+ date +Thu Mar 16 13:18:34 UTC 2017 ++ pip freeze +alabaster==0.7.9 +anaconda-clean==1.0 +anaconda-client==1.5.1 +anaconda-navigator==1.3.1 +appdirs==1.4.0 +argcomplete==1.0.0 +astroid==1.4.7 +astropy==1.2.1 +Babel==2.3.4 +backports.shutil-get-terminal-size==1.0.0 +beautifulsoup4==4.5.1 +biopython==1.68 +bitarray==0.8.1 +blaze==0.10.1 +bokeh==0.12.2 +boto==2.42.0 +bottle==0.12.13 +Bottleneck==1.1.0 +cffi==1.7.0 +chest==0.2.3 +click==6.6 +climate==0.4.6 +cloudpickle==0.2.1 +clyent==1.2.2 +colorama==0.3.7 +conda==4.2.9 +conda-build==2.0.2 +configobj==5.0.6 +contextlib2==0.5.3 +cryptography==1.5 +CVXcanon==0.1.1 +cvxpy==0.4.8 +cycler==0.10.0 +Cython==0.24.1 +cytoolz==0.8.0 +dask==0.11.0 +datacache==0.4.20 +datashape==0.5.2 +decorator==4.0.10 +dill==0.2.5 +docutils==0.12 +downhill==0.4.0 +dynd==0.7.3.dev1 +ecos==2.0.4 +et-xmlfile==1.0.1 +fancyimpute==0.1.0 +fastcache==1.0.2 +filelock==2.0.6 +Flask==0.11.1 +Flask-Cors==2.1.2 +gevent==1.1.2 +google-api-python-client==1.5.5 +greenlet==0.4.10 +gtfparse==0.0.6 +h5py==2.6.0 +HeapDict==1.0.0 +httplib2==0.9.2 +humanize==0.5.1 +idna==2.1 +imagesize==0.7.1 +ipdb==0.10.2 +ipykernel==4.5.0 +ipython==5.1.0 +ipython-genutils==0.1.0 +ipywidgets==5.2.2 +itsdangerous==0.24 +jdcal==1.2 +jedi==0.9.0 +Jinja2==2.8 +joblib==0.10.3 +jsonschema==2.5.1 +jupyter==1.0.0 +jupyter-client==4.4.0 +jupyter-console==5.0.0 +jupyter-core==4.2.0 +Keras==1.2.0 +knnimpute==0.0.1 +-e git+git@github.com:hammerlab/kubeface.git@91fa80a571b9f870c4ec945b834a97fdf863fbc7#egg=kubeface +lazy-object-proxy==1.2.1 +llvmlite==0.13.0 +locket==0.2.0 +lxml==3.6.4 +MarkupSafe==0.23 +matplotlib==1.5.3 +memoized-property==1.0.3 +-e git+git@github.com:hammerlab/mhcflurry.git@2925ce8d6c08e8ac0170504b06f1be384a0fc169#egg=mhcflurry +mhcnames==0.1.0 +mhctools==0.4.1 +mistune==0.7.3 +mock==2.0.0 +mpmath==0.19 +multipledispatch==0.4.8 +multiprocess==0.70.4 +nb-anacondacloud==1.2.0 +nb-conda==2.0.0 +nb-conda-kernels==2.0.0 +nbconvert==4.2.0 +nbformat==4.1.0 +nbpresent==3.0.2 +-e git+git@github.com:hammerlab/neon.git@f343737d19e1b9509137bf63b9d291d2d8c8bcaf#egg=neon +networkx==1.11 +nltk==3.2.1 +nose==1.3.7 +notebook==4.2.3 +numba==0.28.1 +numexpr==2.6.1 +numpy==1.11.1 +oauth2client==4.0.0 +odo==0.5.0 +openpyxl==2.3.2 +pandas==0.18.1 +parse==1.6.6 +partd==0.3.6 +path.py==0.0.0 +pathlib2==2.1.0 +patsy==0.4.1 +pbr==1.10.0 +pep8==1.7.0 +pepdata==0.7.0 +pexpect==4.0.1 +pickleshare==0.7.4 +Pillow==3.3.1 +pkginfo==1.3.2 +plac==0.9.6 +ply==3.9 +progressbar33==2.4 +prompt-toolkit==1.0.3 +psutil==4.3.1 +ptyprocess==0.5.1 +py==1.4.31 +pyasn1==0.1.9 +pyasn1-modules==0.0.8 +pycosat==0.6.1 +pycparser==2.14 +pycrypto==2.6.1 +pycurl==7.43.0 +pyensembl==1.0.3 +pyflakes==1.3.0 +Pygments==2.1.3 +pylint==1.5.4 +pyopen==0.0.6 +pyOpenSSL==16.0.0 +pyparsing==2.1.4 +pytest==2.9.2 +python-dateutil==2.5.3 +pytz==2016.6.1 +PyVCF==0.6.8 +PyYAML==3.12 +pyzmq==15.4.0 +QtAwesome==0.3.3 +qtconsole==4.2.1 +QtPy==1.1.2 +redis==2.10.5 +requests==2.11.1 +rope-py3k==0.9.4.post1 +rsa==3.4.2 +ruamel-yaml===-VERSION +scikit-image==0.12.3 +scikit-learn==0.18.1 +scipy==0.18.1 +scs==1.2.6 +seaborn==0.7.1 +sercol==0.0.2 +serializable==0.1.1 +simplegeneric==0.8.1 +simplejson==3.10.0 +singledispatch==3.4.0.3 +six==1.10.0 +sklearn==0.0 +snowballstemmer==1.2.1 +sockjs-tornado==1.0.3 +Sphinx==1.4.6 +spyder==3.0.0 +SQLAlchemy==1.0.13 +statsmodels==0.6.1 +sympy==1.0 +tables==3.2.3.1 +terminado==0.6 +Theano==0.8.2 +tinytimer==0.0.0 +toolz==0.8.0 +tornado==4.4.1 +traitlets==4.3.0 +typechecks==0.0.2 +unicodecsv==0.14.1 +uritemplate==3.0.0 +varcode==0.5.11 +wcwidth==0.1.7 +Werkzeug==0.11.11 +widgetsnbextension==1.2.6 +wrapt==1.10.6 +xlrd==1.0.0 +XlsxWriter==0.9.3 +xlwt==1.1.2 +You are using pip version 8.1.2, however version 9.0.1 is available. +You should consider upgrading via the 'pip install --upgrade pip' command. ++ git rev-parse HEAD +2925ce8d6c08e8ac0170504b06f1be384a0fc169 ++ git status +On branch add-class1-ensemble +Your branch is up-to-date with 'origin/add-class1-ensemble'. +nothing to commit, working directory clean ++ cd /tmp/mhcflurry-downloads-generation/models_class1_allele_specific_ensemble ++ mkdir models ++ cp /home/tim/sinai/git/mhcflurry/downloads-generation/models_class1_allele_specific_ensemble/models.py . ++ python models.py +Using Theano backend. +/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20. + "This module will be removed in 0.20.", DeprecationWarning) +Models: 162 +++ mhcflurry-downloads path data_combined_iedb_kim2014 +Using Theano backend. +/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20. + "This module will be removed in 0.20.", DeprecationWarning) ++ mhcflurry-class1-allele-specific-ensemble-train --ensemble-size 16 --model-architectures models.json --train-data /home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv --min-samples-per-allele 20 --out-manifest selected_models.csv --out-model-selection-manifest all_models.csv --out-models models --verbose --parallel-backend kubeface --target-tasks 10000 --kubeface-backend kubernetes --kubeface-storage gs://kubeface-tim --kubeface-worker-image hammerlab/mhcflurry-misc:latest --kubeface-kubernetes-task-resources-memory-mb 6000 --kubeface-worker-path-prefix venv-py3/bin --kubeface-max-simultaneous-tasks 200 --kubeface-speculation-max-reruns 3 --kubeface-cache-key-prefix tim-note-tim-2017-03-12-16-37-22-27499bde +Using Theano backend. +/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20. + "This module will be removed in 0.20.", DeprecationWarning) +To show stack trace, run: +kill -s USR1 992 +INFO:root:Running with arguments: Namespace(alleles=None, dask_scheduler=None, ensemble_size=16, kubeface_backend='kubernetes', kubeface_cache_key_prefix='tim-note-tim-2017-03-12-16-37-22-27499bde', kubeface_kubernetes_cluster=None, kubeface_kubernetes_image_pull_policy='Always', kubeface_kubernetes_retries=12, kubeface_kubernetes_task_resources_cpu=1, kubeface_kubernetes_task_resources_memory_mb=6000.0, kubeface_local_process_docker_command='docker', kubeface_max_simultaneous_tasks=200, kubeface_never_cleanup=False, kubeface_poll_seconds=30.0, kubeface_speculation_max_reruns=3, kubeface_speculation_percent=20, kubeface_speculation_runtime_percentile=99, kubeface_storage='gs://kubeface-tim', kubeface_wait_to_raise_task_exception=False, kubeface_worker_image='hammerlab/mhcflurry-misc:latest', kubeface_worker_kubeface_install_command='{pip} install https://github.com/hammerlab/kubeface/archive/master.zip', kubeface_worker_kubeface_install_policy='if-not-present', kubeface_worker_path_prefix='venv-py3/bin', kubeface_worker_pip='pip', kubeface_worker_pip_packages=[], max_models=None, min_samples_per_allele=20, model_architectures=<_io.TextIOWrapper name='models.json' mode='r' encoding='UTF-8'>, num_local_processes=None, num_local_threads=1, out_manifest='selected_models.csv', out_model_selection_manifest='all_models.csv', out_models_dir='models', parallel_backend='kubeface', quiet=False, target_tasks=10000, train_data='/home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv', verbose=True) +Using parallel backend: <Kubeface backend, client=<kubeface.client.Client object at 0x7fe5429fdac8>> +INFO:root:Read 162 model architectures +INFO:root:Loaded training data: Dataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401']) +INFO:root:Filtered training dataset to alleles with >= 20 observations: Dataset(n=192177, alleles=['H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A11', 'HLA-A1101', 'HLA-A2', 'HLA-A2301', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B2703', 'HLA-B2705', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3701', 'HLA-B3801', 'HLA-B3901', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B5101', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5703', 'HLA-B5801', 'HLA-B5802', 'HLA-B7', 'HLA-B7301', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA601301', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B1301', 'Patr-B2401']) +INFO:root:Imputing: 16 tasks, imputation args: {'impute_min_observations_per_peptide': 3, 'imputer_args': {'n_imputations': 50, 'n_burn_in': 5, 'n_nearest_columns': 25}, 'impute_method': 'mice', 'impute_min_observations_per_allele': 3} +Job status available at: + https://storage.cloud.google.com/kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json [ gs://kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json ] + https://storage.cloud.google.com/kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html [ gs://kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html ] +WARNING:googleapiclient.discovery_cache:file_cache is unavailable when using oauth2client >= 4.0.0 +Traceback (most recent call last): + File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 36, in autodetect + from google.appengine.api import memcache +ImportError: No module named 'google' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 33, in <module> + from oauth2client.contrib.locked_file import LockedFile +ImportError: No module named 'oauth2client.contrib.locked_file' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 37, in <module> + from oauth2client.locked_file import LockedFile +ImportError: No module named 'oauth2client.locked_file' + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/__init__.py", line 41, in autodetect + from . import file_cache + File "/home/tim/anaconda3/lib/python3.5/site-packages/googleapiclient/discovery_cache/file_cache.py", line 41, in <module> + 'file_cache is unavailable when using oauth2client >= 4.0.0') +ImportError: file_cache is unavailable when using oauth2client >= 4.0.0 +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/discovery/v1/apis/storage/v1/rest +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000 +INFO:oauth2client.transport:Attempting refresh to obtain initial access_token +INFO:root:Submitting 200 tasks +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000+0+1489457655+1489457740++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001+1+1489457864+1489457929++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002+0+1489457663+1489457721++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003+0+1489457666+1489457726++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004+0+1489457670+1489457730++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005+0+1489457673+1489457758++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006+0+1489457677+1489457770++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007+0+1489457680+1489457744++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008+1+1489457864+1489457929++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009+0+1489457688+1489457749++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010+0+1489457692+1489457802++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011+0+1489457696+1489457783++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012+0+1489457700+1489457809++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013+0+1489457704+1489457802++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014+0+1489457708+1489457792++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015+1+1489457864+1489457923++value +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/upload/storage/v1/b/kubeface-tim/o?uploadType=multipart&alt=json +INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/upload/storage/v1/b/kubeface-tim/o?uploadType=multipart&alt=json +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000000%2B0%2B1489457655%2B1489457740%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:21 2017 + * run time : 0:01:18.176892 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000000-700a7d3f + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000000+0+1489457655+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000001%2B1%2B1489457864%2B1489457929%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:17:49 2017 + * run time : 0:00:58.846496 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000001-ffcc73bc + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000001+1+1489457864+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000002%2B0%2B1489457663%2B1489457721%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:27 2017 + * run time : 0:00:52.098150 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000002-8d3af68e + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000002+0+1489457663+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000003%2B0%2B1489457666%2B1489457726%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:31 2017 + * run time : 0:00:53.772626 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000003-d1067c7f + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000003+0+1489457666+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000004%2B0%2B1489457670%2B1489457730%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:36 2017 + * run time : 0:00:53.499716 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000004-dc19071a + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000004+0+1489457670+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000005%2B0%2B1489457673%2B1489457758%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:38 2017 + * run time : 0:01:18.616956 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000005-839b9d82 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000005+0+1489457673+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000006%2B0%2B1489457677%2B1489457770%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:42 2017 + * run time : 0:01:26.611738 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000006-20b45486 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000006+0+1489457677+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000007%2B0%2B1489457680%2B1489457744%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:46 2017 + * run time : 0:00:56.961026 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000007-5eefd3f5 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000007+0+1489457680+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000008%2B1%2B1489457864%2B1489457929%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:17:49 2017 + * run time : 0:00:58.927556 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000008-524729ed + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000008+1+1489457864+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000009%2B0%2B1489457688%2B1489457749%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:53 2017 + * run time : 0:00:54.847812 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000009-502c6a6d + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000009+0+1489457688+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000010%2B0%2B1489457692%2B1489457802%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:14:57 2017 + * run time : 0:01:43.951529 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000010-1b765a46 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000010+0+1489457692+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000011%2B0%2B1489457696%2B1489457783%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:15:03 2017 + * run time : 0:01:19.163020 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000011-47f45acf + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000011+0+1489457696+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000012%2B0%2B1489457700%2B1489457809%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:15:07 2017 + * run time : 0:01:41.604208 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000012-2408acf0 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000012+0+1489457700+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000013%2B0%2B1489457704%2B1489457802%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:15:10 2017 + * run time : 0:01:30.512149 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000013-74fc3d7a + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000013+0+1489457704+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000014%2B0%2B1489457708%2B1489457792%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:15:15 2017 + * run time : 0:01:16.764111 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000014-be568f1b + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000014+0+1489457708+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o/result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3A000015%2B1%2B1489457864%2B1489457923%2B%2Bvalue?alt=media +DEBUG:root:Download 100%. +DEBUG:root:Result (success): + * result type : value + * start time : Tue Mar 14 02:17:49 2017 + * run time : 0:00:52.669978 + * hostname : tim-note-tim-2017-03-12-16-37-22-27499bde-000--000015-2dc3bbf2 + * platform : Linux-4.4.21+-x86_64-with-Ubuntu-14.04-trusty + * python version : 3.4.3 (default, Nov 17 2016, 01:08:31) + * [GCC 4.8.4] + * invocation arguments : venv-py3/bin/_kubeface-run-task + * gs://kubeface-tim/input::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015 + * gs://kubeface-tim/result::tim-note-tim-2017-03-12-16-37-22-27499bde-000::000015+1+1489457864+{result_time}++{result_type} + * --verbose + * input size : 10.0 MiB + * result size : 956.0 B + * return value type : <class 'list'> +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=done%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=done%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json&alt=json&maxResults=100000 +INFO:root:Marking job 'tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332' done: renaming active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html -> done::html::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.html +INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html/rewriteTo/b/kubeface-tim/o/done%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html?alt=json +INFO:googleapiclient.discovery:URL being requested: DELETE https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ahtml%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.html? +INFO:root:Marking job 'tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332' done: renaming active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json -> done::json::tim-note-tim-2017-03-12-16-37-22-27499bde-000::node-master::dc8df332.json +INFO:googleapiclient.discovery:URL being requested: POST https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json/rewriteTo/b/kubeface-tim/o/done%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json?alt=json +INFO:googleapiclient.discovery:URL being requested: DELETE https://www.googleapis.com/storage/v1/b/kubeface-tim/o/active%3A%3Ajson%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-000%3A%3Anode-master%3A%3Adc8df332.json? +INFO:root:Imputation completed. +INFO:root:Training and scoring models: 9504 tasks (target was 10000), total work: 132 alleles * 16 ensemble size * 162 models = 342144, allele/models per task: (min=36 mean=36.000000 max=36) +Job status available at: + https://storage.cloud.google.com/kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.json [ gs://kubeface-tim/active::json::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.json ] + https://storage.cloud.google.com/kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.html [ gs://kubeface-tim/active::html::tim-note-tim-2017-03-12-16-37-22-27499bde-001::node-master::bd30c322.html ] +INFO:googleapiclient.discovery:URL being requested: GET https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000 +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAwOTk5KzArMTQ4OTQ2OTY4MCsxNDg5NDczOTg4Kyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAxOTk5KzArMTQ4OTQ4NDQxOCsxNDg5NDg2NjIwKyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAyOTk5KzArMTQ4OTQ5OTU0MCsxNDg5NTAwMjU4Kyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDAzOTk5KzArMTQ4OTUxNDUxNSsxNDg5NTE1NzczKyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA0OTk5KzArMTQ4OTUzNzY1MSsxNDg5NTM4NDQxKyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA1OTkzKzArMTQ4OTU5ODE1MisxNDg5NTk5NjAzKyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA2OTkzKzArMTQ4OTYxMjIxNisxNDg5NjE1MjA0Kyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA3OTkzKzArMTQ4OTYyNjI5MisxNDg5NjI3MjU2Kyt2YWx1ZQ%3D%3D +INFO:googleapiclient.discovery:URL being requested: list_next https://www.googleapis.com/storage/v1/b/kubeface-tim/o?fields=nextPageToken%2Citems%28name%29&prefix=result%3A%3Atim-note-tim-2017-03-12-16-37-22-27499bde-001&alt=json&maxResults=100000&pageToken=ClxyZXN1bHQ6OnRpbS1ub3RlLXRpbS0yMDE3LTAzLTEyLTE2LTM3LTIyLTI3NDk5YmRlLTAwMTo6MDA4OTkzKzArMTQ4OTY0MDc5MSsxNDg5NjQxODkwKyt2YWx1ZQ%3D%3D +INFO:root:Submitting 200 tasks +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000000+0+1489458019+1489458400++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000001+0+1489458019+1489458434++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000002+0+1489458021+1489458422++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000003+0+1489458021+1489458476++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000004+0+1489458021+1489458540++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000005+0+1489458022+1489458562++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000006+0+1489458022+1489458629++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000007+0+1489458023+1489458656++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000008+0+1489458023+1489458869++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000009+0+1489458024+1489458596++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000010+0+1489595903+1489596458++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000011+0+1489458025+1489458441++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000012+0+1489458025+1489458467++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000013+0+1489458025+1489458503++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000014+0+1489458026+1489458515++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000015+0+1489458026+1489458633++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000016+0+1489458027+1489458556++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000017+0+1489458027+1489458634++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000018+0+1489458028+1489458658++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000019+0+1489458028+1489458958++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000020+0+1489458029+1489458591++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000021+0+1489458029+1489458813++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000022+0+1489595903+1489596632++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000023+0+1489458030+1489458505++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000024+0+1489458031+1489458523++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000025+0+1489458031+1489458547++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000026+0+1489595904+1489596627++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000027+0+1489458032+1489458651++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000028+0+1489458033+1489458723++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000029+0+1489458033+1489458772++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000030+0+1489458034+1489459085++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000031+0+1489458034+1489458677++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000032+0+1489458035+1489458961++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000033+0+1489458035+1489458625++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000034+0+1489458036+1489458532++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000035+0+1489458036+1489458589++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000036+0+1489458037+1489458619++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000037+0+1489595904+1489596492++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000038+0+1489458038+1489458744++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000039+0+1489458038+1489458958++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000040+0+1489595905+1489596441++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000041+0+1489458039+1489459572++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000042+0+1489458040+1489458866++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000043+0+1489458041+1489459228++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000044+0+1489595906+1489596703++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000045+0+1489458042+1489458602++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000046+0+1489595906+1489596653++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000047+0+1489458042+1489458736++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000048+0+1489458043+1489458855++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000049+0+1489458043+1489458868++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000050+0+1489458044+1489459058++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000051+0+1489458045+1489459204++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000052+0+1489458045+1489459723++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000053+0+1489458046+1489458939++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000054+0+1489458046+1489459355++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000055+0+1489458047+1489458660++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000056+0+1489458047+1489458625++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000057+0+1489458048+1489458664++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000058+0+1489458048+1489458779++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000059+0+1489458048+1489458991++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000060+0+1489595907+1489597567++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000061+0+1489458049+1489459214++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000062+0+1489595907+1489597108++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000063+0+1489458050+1489459831++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000064+0+1489595908+1489597561++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000065+0+1489458052+1489459628++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000066+0+1489458052+1489458700++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000067+0+1489458053+1489458746++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000068+0+1489458053+1489458764++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000069+1+1489649935+1489650676++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000070+0+1489458054+1489459238++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000071+0+1489458055+1489459195++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000072+0+1489458055+1489459311++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000073+0+1489458056+1489459636++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000074+0+1489458056+1489460483++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000075+0+1489458057+1489459463++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000076+0+1489458057+1489460044++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000077+0+1489458058+1489458802++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000078+0+1489458058+1489458831++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000079+0+1489458059+1489458924++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000080+0+1489595909+1489597328++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000081+0+1489458060+1489459267++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000082+1+1489649541+1489651104++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000083+0+1489458061+1489459426++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000084+0+1489458062+1489459630++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000085+0+1489458062+1489460680++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000086+0+1489458063+1489459519++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000087+0+1489458063+1489460252++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000088+0+1489458064+1489458834++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000089+0+1489458064+1489458960++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000090+0+1489595910+1489597719++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000091+0+1489458065+1489459041++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000092+0+1489458066+1489459377++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000093+0+1489458066+1489459268++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000094+1+1489649112+1489650749++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000095+0+1489458067+1489459895++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000096+0+1489458067+1489460869++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000097+0+1489458068+1489459671++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000098+0+1489458068+1489460449++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000099+0+1489458069+1489458549++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000100+0+1489595911+1489596353++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000101+0+1489595911+1489596327++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000102+0+1489458070+1489458642++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000103+0+1489458071+1489458742++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000104+0+1489458071+1489460003++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000105+0+1489458072+1489460432++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000106+0+1489458072+1489460360++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000107+0+1489458073+1489461423++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000108+0+1489458073+1489459744++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000109+0+1489458074+1489462692++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000110+0+1489458074+1489458948++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000111+0+1489458074+1489462203++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000112+0+1489458075+1489462657++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000113+0+1489458075+1489459352++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000114+0+1489458076+1489459170++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000115+0+1489458076+1489460944++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000116+0+1489458077+1489459340++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000117+0+1489458077+1489460231++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000118+0+1489458078+1489460638++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000119+0+1489458078+1489460697++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000120+0+1489458079+1489459698++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000121+0+1489458081+1489464019++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000122+0+1489458082+1489459067++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000123+0+1489458083+1489459098++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000124+0+1489458083+1489459346++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000125+0+1489458084+1489459511++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000126+0+1489458084+1489460475++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000127+0+1489458085+1489459904++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000128+0+1489458085+1489459917++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000129+0+1489458086+1489465379++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000130+0+1489458086+1489459792++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000131+0+1489458087+1489461125++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000132+0+1489458087+1489459758++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000133+0+1489458088+1489459424++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000134+0+1489458088+1489461160++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000135+0+1489458089+1489459631++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000136+0+1489458089+1489462651++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000137+0+1489458089+1489463343++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000138+0+1489458090+1489459677++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000139+0+1489458090+1489460631++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000140+0+1489458091+1489464476++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000141+0+1489458091+1489459731++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000142+0+1489458092+1489460031++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000143+0+1489458092+1489459741++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000144+0+1489458093+1489464063++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000145+0+1489458093+1489461520++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000146+0+1489458093+1489462194++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000147+0+1489458094+1489460258++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000148+0+1489458094+1489459444++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000149+0+1489458095+1489460788++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000150+0+1489458095+1489461183++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000151+0+1489458096+1489461212++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000152+0+1489458096+1489461615++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000153+0+1489458097+1489461864++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000154+0+1489458097+1489464987++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000155+0+1489458098+1489460949++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000156+0+1489458098+1489461545++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000157+0+1489458098+1489461130++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000158+0+1489458099+1489461456++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000159+0+1489458099+1489459654++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000160+0+1489458100+1489459550++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000161+0+1489458100+1489460440++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000162+0+1489458101+1489460927++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000163+0+1489458101+1489462167++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000164+0+1489458102+1489460262++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000165+0+1489458102+1489460918++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000166+0+1489458103+1489459525++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000167+0+1489458112+1489459825++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000168+0+1489458113+1489459516++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000169+0+1489458113+1489459856++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000170+0+1489458114+1489459656++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000171+0+1489458115+1489460286++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000172+0+1489458115+1489460216++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000173+0+1489458116+1489461338++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000174+0+1489458116+1489460060++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000175+0+1489458117+1489460829++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000176+0+1489458117+1489460440++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000177+0+1489458118+1489462512++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000178+0+1489458118+1489459587++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000179+0+1489458119+1489461929++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000180+0+1489458119+1489460111++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000181+0+1489458120+1489459974++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000182+0+1489458120+1489460400++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000183+0+1489458121+1489461809++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000184+0+1489458121+1489461880++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000185+0+1489458122+1489460176++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000186+0+1489458122+1489463550++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000187+0+1489458123+1489460379++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000188+0+1489458123+1489459415++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000189+0+1489458123+1489461261++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000190+0+1489458124+1489460594++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000191+0+1489458124+1489460791++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000192+0+1489458125+1489462264++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000193+0+1489458126+1489461229++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000194+0+1489458126+1489460700++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000195+0+1489458126+1489461467++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000196+0+1489458127+1489461427++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000197+0+1489458128+1489460984++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000198+0+1489458128+1489460369++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000199+0+1489458129+1489460011++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000200+0+1489458431+1489458925++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000201+0+1489458432+1489459877++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000202+0+1489458462+1489459267++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000203+0+1489458463+1489460501++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000204+0+1489458493+1489460057++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000205+0+1489458494+1489460351++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000206+0+1489458525+1489462540++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000207+0+1489458525+1489459254++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000208+0+1489458526+1489459525++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000209+0+1489458556+1489459467++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000210+0+1489458557+1489462883++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000211+0+1489458557+1489459122++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000212+0+1489458557+1489460878++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000213+0+1489458558+1489463175++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000214+0+1489458588+1489461622++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000215+0+1489458589+1489461340++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000216+0+1489458620+1489459603++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000217+0+1489458620+1489460853++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000218+0+1489458621+1489460535++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000219+0+1489458621+1489460341++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000220+0+1489458652+1489459237++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000221+0+1489458652+1489460268++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000222+0+1489458653+1489459870++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000223+0+1489458653+1489461243++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000224+0+1489458653+1489459707++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000225+0+1489458654+1489460605++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000226+0+1489458654+1489459590++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000227+0+1489458685+1489459604++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000228+0+1489458685+1489462983++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000229+0+1489458686+1489459701++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000230+0+1489458686+1489460851++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000231+0+1489458687+1489459413++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000232+0+1489458687+1489460586++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000233+0+1489458718+1489459448++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000234+0+1489458749+1489459606++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000235+0+1489458749+1489460541++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000236+0+1489458780+1489459678++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000237+0+1489458781+1489459860++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000238+0+1489458781+1489460537++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000239+0+1489458781+1489461773++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000240+0+1489458782+1489460351++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000241+0+1489458813+1489461391++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000242+0+1489458813+1489460298++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000243+0+1489458844+1489459914++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000244+0+1489458844+1489459683++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000245+0+1489458845+1489460611++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000246+0+1489458875+1489462491++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000247+0+1489458906+1489460183++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000248+0+1489458906+1489460638++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000249+0+1489458907+1489465041++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000250+0+1489458937+1489460986++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000251+0+1489458938+1489460314++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000252+0+1489458969+1489460935++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000253+0+1489458969+1489459822++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000254+0+1489458970+1489461192++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000255+0+1489458970+1489460899++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000256+0+1489458971+1489460860++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000257+0+1489459001+1489460429++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000258+0+1489459032+1489462464++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000259+0+1489459062+1489461346++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000260+0+1489459093+1489460789++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000261+0+1489459093+1489461614++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000262+0+1489459094+1489460419++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000263+0+1489459124+1489464016++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000264+0+1489459155+1489460363++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000265+0+1489459186+1489462876++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000266+0+1489459216+1489461356++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000267+0+1489459247+1489460143++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000268+0+1489459247+1489463170++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000269+0+1489459248+1489460951++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000270+0+1489459248+1489461126++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000271+0+1489459279+1489463130++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000272+0+1489459280+1489461692++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000273+0+1489459280+1489460944++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000274+0+1489459310+1489461449++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000275+0+1489459311+1489461706++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000276+0+1489459342+1489460699++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000277+0+1489459372+1489461760++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000278+0+1489459373+1489460833++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000279+0+1489459373+1489461744++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000280+0+1489459374+1489460955++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000281+0+1489459404+1489466817++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000282+0+1489459435+1489464774++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000283+0+1489459435+1489462883++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000284+0+1489459436+1489461553++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000285+0+1489459466+1489463958++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000286+0+1489459467+1489461781++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000287+0+1489459467+1489461059++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000288+0+1489459498+1489460715++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000289+0+1489459498+1489461807++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000290+0+1489459530+1489461549++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000291+0+1489459530+1489467193++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000292+0+1489459561+1489461609++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000293+0+1489459561+1489461793++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000294+0+1489459562+1489470429++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000295+0+1489459562+1489466141++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000296+0+1489459593+1489463045++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000297+0+1489459623+1489462060++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000298+0+1489459624+1489460237++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000299+0+1489459624+1489461582++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000300+0+1489459625+1489461420++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000301+0+1489459625+1489460967++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000302+0+1489459656+1489461143++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000303+0+1489459656+1489461899++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000304+0+1489459657+1489461990++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000305+0+1489459687+1489461698++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000306+0+1489459688+1489461239++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000307+0+1489459689+1489460797++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000308+0+1489459689+1489464727++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000309+0+1489459720+1489461921++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000310+0+1489459720+1489461844++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000311+0+1489459721+1489461255++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000312+0+1489459721+1489461862++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000313+0+1489459721+1489461143++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000314+0+1489459722+1489460608++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000315+0+1489459752+1489460863++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000316+0+1489459753+1489461305++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000317+0+1489459753+1489461080++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000318+0+1489459754+1489460993++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000319+0+1489459784+1489462420++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000320+0+1489459815+1489462019++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000321+0+1489459846+1489461131++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000322+0+1489459846+1489461432++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000323+0+1489459877+1489461071++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000324+0+1489459877+1489466127++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000325+0+1489459877+1489463792++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000326+0+1489459878+1489461192++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000327+0+1489459908+1489465753++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000328+0+1489459939+1489463234++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000329+0+1489459940+1489461722++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000330+0+1489459940+1489463715++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000331+0+1489459941+1489466134++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000332+0+1489460002+1489462115++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000333+0+1489460032+1489463008++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000334+0+1489460033+1489462221++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000335+0+1489460063+1489461636++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000336+0+1489460094+1489462406++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000337+0+1489460094+1489463155++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000338+0+1489460095+1489463464++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000339+0+1489460156+1489462669++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000340+0+1489460186+1489464537++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000341+0+1489460217+1489461693++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000342+0+1489460217+1489461078++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000343+0+1489460248+1489461718++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000344+0+1489460248+1489463691++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000345+0+1489460249+1489464702++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000346+0+1489460279+1489466194++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000347+0+1489460280+1489462252++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000348+0+1489460280+1489462679++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000349+0+1489460281+1489463338++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000350+0+1489460312+1489463423++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000351+0+1489460312+1489466139++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000352+0+1489460343+1489461567++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000353+0+1489460373+1489463040++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000354+0+1489460374+1489462086++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000355+0+1489460374+1489461508++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000356+0+1489460375+1489462151++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000357+0+1489460375+1489461795++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000358+0+1489460376+1489461811++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000359+0+1489460406+1489462189++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000360+0+1489460437+1489462732++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000361+0+1489460438+1489462751++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000362+0+1489460468+1489462740++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000363+0+1489460469+1489462119++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000364+0+1489460469+1489461845++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000365+0+1489460470+1489461930++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000366+0+1489460500+1489462283++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000367+0+1489460501+1489462114++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000368+0+1489460532+1489463354++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000369+0+1489460532+1489464241++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000370+0+1489460563+1489463763++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000371+0+1489460563+1489464682++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000372+0+1489460564+1489463069++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000373+0+1489460595+1489463420++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000374+0+1489460626+1489462476++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000375+0+1489460627+1489461669++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000376+0+1489460627+1489461739++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000377+0+1489460628+1489462690++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000378+0+1489460658+1489462958++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000379+0+1489460659+1489463224++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000380+0+1489460659+1489463576++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000381+0+1489460720+1489463354++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000382+0+1489460721+1489464660++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000383+0+1489460721+1489463038++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000384+0+1489460752+1489464495++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000385+0+1489460752+1489462627++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000386+0+1489460813+1489467029++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000387+0+1489460814+1489461976++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000388+0+1489460814+1489466797++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000389+0+1489460815+1489462657++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000390+0+1489460845+1489462745++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000391+0+1489460876+1489463007++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000392+0+1489460876+1489464013++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000393+0+1489460877+1489465761++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000394+0+1489460877+1489464147++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000395+0+1489460877+1489466287++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000396+0+1489460908+1489462448++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000397+0+1489460909+1489462779++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000398+0+1489460909+1489464407++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000399+0+1489460940+1489464875++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000400+0+1489460971+1489462720++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000401+0+1489460971+1489463610++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000402+0+1489460972+1489463361++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000403+0+1489460972+1489462261++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000404+0+1489460972+1489462362++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000405+0+1489460973+1489463671++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000406+0+1489461003+1489462305++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000407+0+1489461004+1489463390++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000408+0+1489461005+1489465235++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000409+0+1489461005+1489461994++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000410+0+1489461036+1489463564++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000411+0+1489461096+1489462659++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000412+0+1489461097+1489462567++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000413+0+1489461098+1489464166++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000414+0+1489461098+1489463177++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000415+0+1489461159+1489464328++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000416+0+1489461160+1489465001++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000417+0+1489461160+1489462994++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000418+0+1489461161+1489461903++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000419+0+1489461161+1489463730++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000420+0+1489461161+1489463854++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000421+0+1489461192+1489462422++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000422+0+1489461223+1489465175++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000423+0+1489461223+1489462167++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000424+0+1489461223+1489463329++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000425+0+1489461254+1489462726++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000426+0+1489461255+1489464227++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000427+0+1489461255+1489463434++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000428+0+1489461256+1489465876++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000429+0+1489461286+1489462817++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000430+0+1489461287+1489462344++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000431+0+1489461317+1489462364++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000432+0+1489461348+1489462905++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000433+0+1489461379+1489464705++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000434+0+1489461379+1489463804++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000435+0+1489461379+1489463515++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000436+0+1489461410+1489463225++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000437+0+1489461441+1489464736++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000438+0+1489461441+1489464152++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000439+0+1489461442+1489465996++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000440+0+1489461473+1489464533++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000441+0+1489461473+1489462714++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000442+0+1489461504+1489462752++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000443+0+1489461504+1489462591++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000444+0+1489461535+1489464057++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000445+0+1489461535+1489463552++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000446+0+1489461566+1489464037++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000447+0+1489461596+1489463830++value +INFO:root:Using existing result: result::tim-note-tim-2017-03-12-16-37-22-27499bde-001::000448+0+1489461597+1489465607++value +</pre> +</div> + +</div> + +</div> +</div> + +</div> + </div> + </div> +</body> +</html> diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..92b58a43cb8fdc5130a9d12cf82f370c0d79f473 --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/models-summary/report.ipynb @@ -0,0 +1,1093 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.simplefilter(\"ignore\")\n", + "\n", + "import mhcflurry\n", + "import numpy\n", + "import seaborn\n", + "import logging\n", + "import pandas\n", + "from os import environ\n", + "from matplotlib import pyplot\n", + "from mhcflurry.downloads import get_path\n", + "\n", + "% matplotlib inline\n", + "\n", + "import IPython.core.display as display" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle();}});</script>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import IPython.core.display as di\n", + "\n", + "# This line will hide code by default when the notebook is exported as HTML\n", + "di.display_html('<script>jQuery(function() {if (jQuery(\"body.notebook_app\").length == 0) { jQuery(\".input_area\").toggle(); jQuery(\".prompt\").toggle(); jQuery(\"div.output_stderr\").toggle();}});</script>', raw=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MHCflurry models\n", + "\n", + "## Class 1 allele specific ensemble models\n", + "\n", + "This report describes the models published with MHCflurry for Class I affinity prediction. These models were trained on the \"data_combined_iedb_kim2014\" affinity measurement dataset (mostly from IEDB) distributed with MHCflurry.\n", + "\n", + "Each allele's predictor is an ensemble of 16 models. The models were trained on a random 1/2 of the data for the allele and tested on the other half. The best performing model in terms of sum of AUC (at 500nM), F1, and Kendall Tau for each 50/50 split of the data was selected for inclusion in the ensemble." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "all_models_df = pandas.read_csv(get_path(\"models_class1_allele_specific_ensemble\", \"all_models.csv.bz2\"))\n", + "all_models_df[\"hyperparameters_layer_sizes\"] = all_models_df[\"hyperparameters_layer_sizes\"].map(eval)\n", + "\n", + "full_training_data = mhcflurry.affinity_measurement_dataset.AffinityMeasurementDataset.from_csv(\n", + " get_path(\"data_combined_iedb_kim2014\", \"combined_human_class1_dataset.csv\"))\n", + "\n", + "training_sizes = full_training_data.to_dataframe().allele.value_counts()\n", + "\n", + "all_models_df[\"train_size\"] = training_sizes.ix[all_models_df.allele].values\n", + "\n", + "(ensemble_size,) = all_models_df.ensemble_size.value_counts().index\n", + "ensemble_size\n", + "\n", + "selected_models_df = all_models_df.ix[all_models_df.weight > 0]\n", + "selected_models_df.shape\n", + "\n", + "alleles = [x for x in training_sizes.sort_values().index if x in selected_models_df.allele.values]" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<h1>Models summary</h1>\n", + "<table>\n", + "<tr><td><b>Num Alleles</b></td><td>132</td></tr>\n", + "<tr><td><b>Ensemble size</b></td><td>16</td></tr>\n", + "<tr><td><b>Num architectures</b></td><td>162</td></tr>\n", + "<tr><td><b>Num selected models</b></td><td>2,112</td></tr>\n", + "<tr><td><b>Total models tested</b></td><td>342,144</td></tr>\n", + "<tr><td><b>Total training measurements</b></td><td>192,177</td></tr>\n", + "<tr><td><b>Training measurement per allele</b></td><td>min=26; max=12,357; median=721.5</td></tr>\n", + "</table>\n", + "<p><b>Alleles included: </b>HLA-A0201 HLA-A0301 HLA-A0203 HLA-A1101 H-2-KB HLA-A3101 HLA-A0206 HLA-A6802 H-2-DB HLA-A0101 HLA-B0702 HLA-A2601 HLA-B1501 HLA-A0202 HLA-A6801 HLA-A3301 HLA-B2705 HLA-B0801 HLA-A2402 HLA-B4001 HLA-B3501 HLA-B5801 HLA-B5101 HLA-B5701 HLA-A3001 HLA-B1801 HLA-A2902 Mamu-A01 HLA-A6901 HLA-A2301 HLA-B4402 Mamu-A100101 HLA-A3002 HLA-B4601 Mamu-B17 HLA-B3901 HLA-B5301 HLA-B1517 HLA-B4403 Mamu-A02 Mamu-B01704 Mamu-A11 HLA-A0219 HLA-A2403 HLA-B5401 HLA-A0212 HLA-A8001 Mamu-B03 HLA-A3201 Mamu-B08 H-2-KD HLA-A0211 HLA-B4501 HLA-B4002 HLA-B0802 HLA-A2501 HLA-A0216 Patr-B0101 Mamu-A101101 Mamu-B52 HLA-B4801 Mamu-B01 HLA-B2703 HLA-B1509 Patr-A0901 H-2-KK HLA-B1503 Mamu-A2201 Mamu-A07 Patr-A0701 HLA-A2602 H-2-DD Mamu-A100201 HLA-A2603 HLA-C0401 Patr-A0101 HLA-B3801 H-2-LD HLA-B0803 Mamu-B3901 Mamu-B8301 Patr-B2401 HLA-C0602 Patr-A0301 HLA-B1542 HLA-B4506 HLA-A0217 HLA-B8301 Patr-A0401 Patr-B1301 HLA-B3503 HLA-C1402 HLA-EQCA100101 HLA-B4201 Mamu-A2601 HLA-B1402 HLA-C1502 HLA-C0501 HLA-C1203 HLA-B1502 HLA-C0303 Mamu-B1001 Mamu-B8701 Mamu-A20102 HLA-C0702 HLA-RT1A HLA-A0250 HLA-B7301 HLA-A0205 Mamu-A70103 Mamu-B6601 HLA-B2720 HLA-C0802 HLA-A3207 HLA-B7 HLA-A6823 HLA-A6601 HLA-A0207 HLA-A2 HLA-A11 HLA-A3215 HLA-B3701 HLA-E0103 HLA-B4013 HLA-BOLA601301 HLA-BOLAHD6 HLA-B5802 HLA-B1401 HLA-B5703 HLA-A0319 HLA-A0302 HLA-B8101</p>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "training_sizes_for_included_alleles = training_sizes.ix[\n", + " training_sizes.index.isin(all_models_df.allele)\n", + "]\n", + "\n", + "lines = []\n", + "def row(label, value):\n", + " lines.append('<tr><td><b>%s</b></td><td>%s</td></tr>' % (label, value))\n", + "\n", + "lines.append('<h1>Models summary</h1>')\n", + "lines.append('<table>')\n", + "\n", + "row(\"Num Alleles\", \"{:,d}\".format(all_models_df.allele.nunique()))\n", + "row(\"Ensemble size\", \"{:,d}\".format(ensemble_size))\n", + "row(\"Num architectures\", \"{:,d}\".format(all_models_df.hyperparameters_architecture_num.nunique()))\n", + "row(\"Num selected models\", \"{:,d}\".format((all_models_df.weight > 0).sum()))\n", + "row(\"Total models tested\", \"{:,d}\".format(len(all_models_df)))\n", + "row(\"Total training measurements\", \"{:,d}\".format(training_sizes_for_included_alleles.sum()))\n", + "row(\"Training measurement per allele\",\n", + " \"min={:,g}; max={:,g}; median={:,g}\".format(\n", + " training_sizes_for_included_alleles.min(),\n", + " training_sizes_for_included_alleles.max(),\n", + " training_sizes_for_included_alleles.median()))\n", + "\n", + "\n", + "lines.append('</table>')\n", + "lines.append(\"<p><b>Alleles included: </b>%s</p>\" % \" \".join(\n", + " training_sizes_for_included_alleles.index))\n", + "\n", + "\n", + "di.display_html(\"\\n\".join(lines), raw=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "architecture_num_to_row = all_models_df.groupby(\"hyperparameters_architecture_num\").apply(lambda df: df.iloc[0])\n", + "\n", + "hyperparameters = [\n", + " x for x in architecture_num_to_row.columns\n", + " if x.startswith(\"hyperparameters_\") and pandas.Series([\n", + " str(item) for item in architecture_num_to_row[x]\n", + " ]).nunique() > 1\n", + "]\n", + "architecture_num_to_hyperparameters = {}\n", + "for _, row in architecture_num_to_row.iterrows():\n", + " architecture_num_to_hyperparameters[row.hyperparameters_architecture_num] = (\n", + " row[hyperparameters].to_dict())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Best models\n", + "\n", + "This table gives the models most often selected for alleles with less than or equal to the given number of training samples." + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr style=\"text-align: right;\">\n", + " <th>Training size cutoff</th>\n", + " <th>100.0</th>\n", + " <th>500.0</th>\n", + " <th>1000.0</th>\n", + " <th>inf</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>architecture_num</th>\n", + " <td>112</td>\n", + " <td>81</td>\n", + " <td>112</td>\n", + " <td>27</td>\n", + " </tr>\n", + " <tr>\n", + " <th>best architecture selected rate (%)</th>\n", + " <td>3.27381</td>\n", + " <td>2.04545</td>\n", + " <td>2.27273</td>\n", + " <td>3.64583</td>\n", + " </tr>\n", + " <tr>\n", + " <th>dropout_probability</th>\n", + " <td>0.1</td>\n", + " <td>0</td>\n", + " <td>0.1</td>\n", + " <td>0.1</td>\n", + " </tr>\n", + " <tr>\n", + " <th>embedding_output_dim</th>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " <td>8</td>\n", + " </tr>\n", + " <tr>\n", + " <th>fraction_negative</th>\n", + " <td>0.1</td>\n", + " <td>0</td>\n", + " <td>0.1</td>\n", + " <td>0</td>\n", + " </tr>\n", + " <tr>\n", + " <th>impute</th>\n", + " <td>True</td>\n", + " <td>True</td>\n", + " <td>True</td>\n", + " <td>False</td>\n", + " </tr>\n", + " <tr>\n", + " <th>layer_sizes</th>\n", + " <td>[64]</td>\n", + " <td>[12]</td>\n", + " <td>[64]</td>\n", + " <td>[12]</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + "Training size cutoff 100.000000 500.000000 1000.000000 \\\n", + "architecture_num 112 81 112 \n", + "best architecture selected rate (%) 3.27381 2.04545 2.27273 \n", + "dropout_probability 0.1 0 0.1 \n", + "embedding_output_dim 8 8 8 \n", + "fraction_negative 0.1 0 0.1 \n", + "impute True True True \n", + "layer_sizes [64] [12] [64] \n", + "\n", + "Training size cutoff inf \n", + "architecture_num 27 \n", + "best architecture selected rate (%) 3.64583 \n", + "dropout_probability 0.1 \n", + "embedding_output_dim 8 \n", + "fraction_negative 0 \n", + "impute False \n", + "layer_sizes [12] " + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result_df = []\n", + "cutoffs = [100, 500, 1000, numpy.inf]\n", + "for cutoff in cutoffs:\n", + " selected_rates = all_models_df.ix[\n", + " all_models_df.train_size <= cutoff\n", + " ].groupby(\"hyperparameters_architecture_num\").weight.mean().sort_values(ascending=False)\n", + " best_architecture = selected_rates.index[0]\n", + " d = dict(\n", + " (key.replace(\"hyperparameters_\", \"\"), value) for (key, value) in \n", + " architecture_num_to_hyperparameters[best_architecture].items())\n", + " d[\"architecture selection rate (%)\"] = selected_rates.ix[best_architecture] * 100\n", + " result_df.append(d)\n", + "result_df = pandas.DataFrame(result_df, index=cutoffs)\n", + "result_df.index.name = \"Training size cutoff\"\n", + "result_df.T" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Full hyperparameters of best model" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'activation': 'tanh',\n", + " 'architecture_num': 27,\n", + " 'batch_normalization': True,\n", + " 'batch_size': 128,\n", + " 'dropout_probability': 0.1,\n", + " 'embedding_output_dim': 8,\n", + " 'fraction_negative': 0,\n", + " 'impute': False,\n", + " 'impute_method': 'mice',\n", + " 'impute_min_observations_per_allele': 3,\n", + " 'impute_min_observations_per_peptide': 3,\n", + " 'imputer_args': {'n_burn_in': 5,\n", + " 'n_imputations': 50,\n", + " 'n_nearest_columns': 25},\n", + " 'include_ms': True,\n", + " 'init': 'glorot_uniform',\n", + " 'kmer_size': 9,\n", + " 'layer_sizes': [12],\n", + " 'loss': 'mse',\n", + " 'max_ic50': 50000.0,\n", + " 'ms_decoy_affinity': 20000.0,\n", + " 'ms_hit_affinity': 1.0,\n", + " 'n_training_epochs': 250,\n", + " 'optimizer': 'rmsprop',\n", + " 'output_activation': 'sigmoid',\n", + " 'pretrain_decay': 'numpy.exp(-epoch)'}" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "best_hyperparameters = eval(\n", + " architecture_num_to_row.ix[result_df.ix[numpy.inf].architecture_num].hyperparameters)\n", + "best_hyperparameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accuracy" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x11b5ecd68>" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nJCX1ZeLEySxc+Bg7d+4gJWU7f/7z3UyaNLnZJE0IIYTwpy7bUuWwde6klu093urV1pNv4eERTbad\nd96FvPvuW3z22UoSEvo0u/8111zG8cefwD33/KXZ7fVbjpQaTnR0L4YPH0FwcHCTsiEhISxa9DRL\nliziuuuuICQklMmTp3LjjX8E4IILLiYtbQ933XUrmqYxbJji9tvv4e9//yt5eblNjtceF110KUVF\nRTz88F8wDINp02bwhz/cWrd98eIn2LRpI//73/sALFjwIM8//wwPPHAvlZWVjB07jqee+mfd+f3l\nLw/x9NNPcscdt1BdXc20aTO4+eY/HVWMQgghREfQjrZlwktmbm7LrTXNFO+wQI6sa81Q3hXExUXS\ntvsnuhK5f4FL7l1gk/sXuOLiItuVDHTRlipJbIQQQggRWLpoUiWEEEII77W3h0caMXxJkiohhBCi\nG1iXsxGXYXhV1mGzMSFh/JELijaRpEoIIYToBlyGgdt0e1fYu9xLtJFMqSCEEEII4QOSVAkhhBBC\n+IAkVUIIIYQQPiBJlRBCCCGED0hSJYQQQgjhA100qTL9uLSN2+3m5Zdf4je/+TUzZ07izDNP4/77\n7yU7O8vrOh555AEWLLirzcduztdfryE391C793/mmcXcdNN1XpXNyTnAlCkTmD79FIqLi5ts//bb\ntUyZMsFn5+YLLpeLRYv+xq9+NYv582fz7LNLWn3fYXFxMQ8+uID582dz7rnzePHF5xuUb2t9Qggh\nuq8uO6VCW+bb8IX2ztnx/PNPs3btV9xyyx307z+AwsICli79N7///TW88sr/mn0nYEfJycnh3ntv\nZ/nyN4iL693uetr6/j+bzca3337NGWfMb7B+zZrPsdm6Vt7+z38+zbp1P7Jw4RLKy8t58MEFRERE\ncNllVzVb/p57bqOkpJi//e1JbDaNxx57mKqqKm644Q/tqk8IIUT31bW+8eqpnW+js5b2JnAff/wB\nV155LSeddAoJCQkMHz6Shx56lPLycr7+eo1vL8oRmKZx1C9Ebo9x405ocq5ut5vvvlvLqFHHdXo8\nLamurub999/mpptuZcSIUZxwwgSuv/5G3n77jWbLp6buZMuWTSxY8BCjRo1mxIhR3HHHvbz11utU\nVVW2uT4hhBDdW5dtqQoUmmZjw4afmDVrDna7HYDg4BCWLXuF6OjounIrVnzE8uVLyc09RHLyQK6+\n+jomTpzcbJ3ff/8t//rXM2Rk7CMpqS8XX/xb5s07s277l19+xn/+s5TMzH307duPa6/9PaeeOoUL\nLzwbTdO4/PKLufLKa7jyymvYvv1nnn76H+j6TuLj4znzzHO45JL/q0u+fvjhO557bgnZ2VmceOJJ\nREf3avM1mDp1Os888yRVVVUEBwcDsHHjeuLi4unbtx8VFRV1ZY8Uz6pVK3jlleVkZu7D6XQyfvyJ\n3HHHfURHR7Np0wYWLLiTG2+8hRdffJ6CgnzGjz+Re+65n+joaJYu/RfLlv27mXuksWTJP3E6g6iq\nqmLcuOPrto0bN57Dhw+TnZ1FUlLfBvtlZ2cREhLCkCFD69YNGTKUmpoadu5MweFwtqk+IYQQ3VuX\nbakKFBdffCmffPIh5503j0ceeYAVKz7i8OECkpL6EhYWDsCPP37PU0/9g2uvvYHly9/g7LPPY8GC\nu9i+/ecm9aWl7WHBgjv59a8v5OWX3+SKK67hmWee5PPPVwNWsnL//fcyb958li9/g3nzzmTBgrvI\nyNjHv//9H0zT5Kmn/sUll/wfhw8f5k9/uolTT53Cf//7Jn/84+28++5bvPrqcgAyMvZx991/YsaM\n2bz00mscd9xYPv74/Tadv6ZpjBkzlrCwMH788fu69V999SXTp89sUPbw4YJW4/n55608+uiDXHrp\n5bz22js8+ugTpKbqvPzy0ro6SkpK+PDD93jkkYUsWfI8O3em1G3/zW8u44MPVjZZ3n9/JaNHjyEv\n7xDBwSF19wUgJqYXpmly6NDBJucWExNLVVUVxcVFdetycg4AUFh4uM31CSGE6N6kpeoo/fa3V9Cv\nXzLvvfcWn322kk8//RhN0zj33PO5+ebb0DSNl19exiWX/B8zZswG4KyzzmXnzh288cYrPPjgow3q\ne+21l5k7dx7z558DQGJiEtnZmbz++n+ZNWsO7777FlOmTOPCC38DwEUXXUplZSUVFRX07Gm1jEVF\nRRESEsIrr/yHkSNH89vfXlFX17XX3sDixU9w6aWX89FH7zNkyDCuuOJqAC699HI2btxATU11m66B\nptmYPHkaa9euYerU6Zimydq1a3jyyWd57bWX68q9887/Wo0nKCiIO++8j9NOOx2A+PgEpkyZRlra\nnro6TNPkpptuYejQYQCcdtoZ7NhhJachISGEhIS0GGdlZSXBwUEN1gUFWf+uqalpUn7UqNEkJvbl\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x125007be0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "all_scores = all_models_df.scores_auc.dropna()\n", + "selected_scores = all_models_df.ix[all_models_df.weight > 0].scores_auc.dropna()\n", + "\n", + "pyplot.figure(figsize=(10, 5))\n", + "seaborn.distplot(all_scores, label=\"All. Mean=%0.2f\" % all_scores.mean())\n", + "seaborn.distplot(selected_scores, label=\"Selected. Mean=%0.2f\" % selected_scores.mean())\n", + "#seaborn.set_context('talk')\n", + "pyplot.legend(loc='upper left', fontsize=\"x-large\")\n", + "pyplot.xlim(xmin=0.5, xmax=1)\n", + "pyplot.xlabel(\"AUC\", fontsize=\"x-large\")\n", + "pyplot.title(\"AUCs across models and alleles\", fontsize=\"xx-large\")" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.5, 1.0)" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nvZK0Djdl2GO7k4DX2V4JIGk+sNj20cC1raA6A9p+/g8piepq4Be2N9S4NcD/N1InbK+T9Lik2ZQl\nBYcDZ4/S14iIiIie1atJ61D92UvSnZTEcAg4A6CVsFbXARdJmmX7wWHttJYHbKQsBTjR9ipJ35T0\nDcp61uW2v7yJviwCrqznL7N91wh9jYiIiOhpqYjVJQYGBoay5VVERMS219/fz4oVd5MPQ7fcllTE\n6tWZ1q6TOsgRERHPjPzNnRiZae0SzWZzaOJrMMeWmBz1s2NLZfw6V8aus02O8ctM65bKTGsPmzp1\nKvnH05kydp0t49e5MnadLePXe5K0dolms0m+s9WZMnadLePXuTJ2nW1yjF+S5mdSktYuMTg4SKPR\nmOhuREREdL2+vj6WLFk60d3oOT2TtNZKVLcCx9i+uu34t4Fv2j5xG19/T+B+4A22r63HpgAfBPYB\nHgPeZPuBtnMuBFba/shY7TcaDbJ7QERERHSr7Sa6A8+wlcAxrReSXgjs8gxd+wTgEuDUtmN/DOxo\ney5wJqWiFpJ2l3QD8PpnqG8RERERk1rPzLRW9wLPlzTD9jpKydbPAM+TdCpwFCWJ/RlwJHAcJXHc\nmVKa9VLgCGAv4Azbn5f0Y9t7Aki6Crjc9m0jXHsBcADwL5JeYPt7wP7AlwBs3yHpZTV2V+As4NVb\n/TcQERER0YF6baYVSinWo+rzVwBfB6YCM20fansOsAPw8hqzq+3XAhcAi2wfBZxCmTmFcawCl3Qo\ncJ/th4GPA4vrW7sBj7SFNiVtZ3tVrYyVFd4RERER9N5M6xClZOqHJP0AuI2SGG4ENtSZ0vXALEri\nCnBPfVwDfL8+/zmwU33enlhOAZD0Xsos6hBwKLAQmF0/8t8R2LuWf10LzGg7fzvbG7fOrUZERER0\nj15LWrG9StJ04DTKOtJ+yoznEbbnSNoZ+BZPJaNjzaRuL2kX4EnKsgFsv6v1pqTdgX1tz2479mHg\neGA58EfAP0vaD7jv6d9hRERERPfpuaS1+hywwPb9kvqBDcB6Scvr+z8CnjvOti4BvgE8AKwa4f2/\noCxJaPdR4JOUJHdQ0u31+AnD4iZ6A7qIiIiISSFlXLvEwMDAULa8ioiI2Pb6+/tZseJu8tWTLZcy\nrj2sr69vorsQERHRE/I3d2JkprVLNJvNodWr1090N2ILzJw5nYxd58r4da6MXWebHOOXmdYtlZnW\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x11b990860>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nvWPV1iWYbPBTC+4+WfP4FeC2zfp5WnBXREREWllL9TNqwV0RERFpZS0V3BYuC6IFd0VERKSVNLSr\ndKtpwV0RERFpZS0V3LTgroiIiLSy0Ac3zSQVERGRdhH64KaZpCIiItIuQj85QTNJRUREpF2EPrjV\nzhz1PI9cvsiDD5/i0acv4Hor7lkvIiIiEiqh7yqtnUmayxc5d8WvuKnbVERERFpNqIKb63o8+vSF\nRRMRKuHswYdPzXu+uk1FRESklYQquD3yrTMrTkTYP5ip3l85FhEREWkVoQpur1yanHe8sKKmBXhF\nRESklYUquF29u5unTw5XjxdW1LQAr4iIiLSyUAW3t73+KrLZvCpqIiIi0pZCFdwiEVXUREREpH2F\nfh03ERERkXah4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYi\nIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh\n4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIi\nIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISEgpuIiIiIiGh4CYiIiISErHtbsB2cT2PY8cvcm54mv2D\nGe4+soeI42x3s0RERESWFarg5roejz59YVPC1rHjF/nSU+cBOHluHIB7b967aW0VERER2WyhCm6P\nfOvMpoWtc8PTKx6LiIiINJtQjXF75dLkvOONhK39g5kVj0VERESaTagqblfv7ubpk8PV442ErbuP\n7AGY1+0qIiIi0swaGtyMMQ7we8DNQB74kLX2dM3jrwd+Mzi8BHzAWltY7nxve/1VZLP5TQlbEcfR\nmDYREREJlUZ3lb4XSFpr7wJ+Gfjwgsf/APgxa+2bgC8AB1c6WSTicPeRPewfzHBueJpjxy9Scl0e\nffoCDz58ikefvoDreQ15IyIiIiLbrdFdpffgBzKstY8bY+6oPGCMuQEYAX7OGHMT8Flr7anVTnjs\n+EUeefIc0zMlvvHcRT73jVeYKZRJxKLYs2OAZoeKiIhIa2p0xa0bmKg5LhljKj9zAHgj8NvA24G3\nG2PevNoJzw1PMz1TIpsrMDNbZng8Ty7vH0/PlDQ7VERERFpWoytuk0BXzXHEWusGt0eAF621JwGM\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x12da37128>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "scores = all_models_df.groupby(\"allele\").scores_auc.mean().to_frame().reset_index().sort_values(\"scores_auc\", ascending=False)\n", + "scores[\"size\"] = training_sizes.ix[scores.allele].values\n", + "\n", + "pyplot.figure(figsize=(10, 30))\n", + "pyplot.title(\"Mean AUC over all models\")\n", + "seaborn.barplot(y=\"allele\", x=\"scores_auc\", data=scores, orient=\"h\", color=\"black\")\n", + "\n", + "pyplot.figure(figsize=(10, 5))\n", + "pyplot.title(\"Mean AUC over all models\")\n", + "seaborn.regplot(x=\"size\", y=\"scores_auc\", data=scores, logx=True)\n", + "pyplot.xlim(xmin=0)\n", + "pyplot.ylim(ymin=0.5, ymax=1.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.5, 1)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x117545898>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "scores = all_models_df.groupby(\"hyperparameters_dropout_probability\").scores_auc.mean().to_frame().reset_index().sort_values(\"scores_auc\", ascending=False)\n", + "\n", + "pyplot.figure(figsize=(10, 5))\n", + "pyplot.title(\"Dropout\")\n", + "ax = seaborn.barplot(x=\"hyperparameters_dropout_probability\", y=\"scores_auc\", data=all_models_df)\n", + "pyplot.ylim(ymin=0.5, ymax=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x120f4c0b8>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x11f7077f0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "count_impute = selected_models_df.groupby(\"allele\").hyperparameters_impute.sum()\n", + "\n", + "seaborn.regplot(training_sizes.ix[alleles], count_impute.ix[alleles])\n", + "pyplot.xlim(xmin=0, xmax=10000)\n", + "pyplot.ylim(ymin=0, ymax=16)\n", + "pyplot.title(\"Number of models (out of 16 total in each allele's ensemble)\\nthat use imputation\")\n", + "pyplot.xlabel(\"Training points for allele\")\n", + "pyplot.ylabel(\"Num models\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x120fb1518>" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x120dcf320>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "impute_cums_df = selected_models_df.groupby(\"allele\").hyperparameters_impute.mean().to_frame()\n", + "impute_cums_df[\"size\"] = training_sizes\n", + "impute_cums_df = impute_cums_df.sort_values(\"size\")\n", + "impute_cums_df[\"cum_mean\"] = (\n", + " impute_cums_df.hyperparameters_impute.cumsum() / (numpy.arange(len(impute_cums_df)) + 1))\n", + "impute_cums_df\n", + "seaborn.regplot(\"size\", \"cum_mean\", data=impute_cums_df, fit_reg=False, logx=True)\n", + "pyplot.xscale(\"log\")\n", + "pyplot.xlabel(\"IEDB Measurements\")\n", + "pyplot.ylabel(\"Fraction of models using imputation\")\n", + "pyplot.title(\n", + " \"Fraction of best models for alleles with <= x measurements\\n\"\n", + " \"that use imputation\")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x11e610da0>" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nhAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x120393550>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "seaborn.regplot(\n", + " selected_models_df.train_size.values,\n", + " selected_models_df.hyperparameters_dropout_probability.values,\n", + " x_jitter=.015,\n", + " y_jitter=.015)\n", + "pyplot.xlim(xmin=0)\n", + "pyplot.ylim(ymin=0)\n", + "pyplot.title(\"Dropout rate of selected models\")\n", + "pyplot.xlabel(\"Training points for allele\")\n", + "pyplot.ylabel(\"Dropout rate\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x120db5f98>" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x11e6162b0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "seaborn.regplot(\n", + " selected_models_df.train_size.values,\n", + " selected_models_df.hyperparameters_embedding_output_dim.values,\n", + " x_jitter=1,\n", + " y_jitter=1)\n", + "pyplot.xlim(xmin=0)\n", + "pyplot.ylim(ymin=0)\n", + "pyplot.title(\"Embedding output dimensions of selected models\")\n", + "pyplot.xlabel(\"Training points for allele\")\n", + "pyplot.ylabel(\"Embedding output dimensions\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x1203ab588>" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nsgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x1208414a8>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "seaborn.regplot(\n", + " selected_models_df.train_size.values,\n", + " selected_models_df.hyperparameters_layer_sizes.map(lambda x: x[0]).values,\n", + " x_jitter=5,\n", + " y_jitter=5)\n", + "pyplot.xlim(xmin=0)\n", + "pyplot.ylim(ymin=0)\n", + "pyplot.title(\"Hidden layer size of selected models\")\n", + "pyplot.xlabel(\"Training points for allele\")\n", + "pyplot.ylabel(\"Hidden layer size\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x11e6cbe10>" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXecXFd5+P29907dJmlXq2ZJrnAkg+Vu425Miw2EBJKX\nACHGvwApEFJJeCEkpL0kgZhAfgmhGOIkQAiEGtsUNyzLRViWJRlLR7JlSStpe50+c8v7x7l39u7s\nzO7samfr+X4+tnbKvfeZmXPPc556DM/z0Gg0Go2mGuZCC6DRaDSaxYtWEhqNRqOpiVYSGo1Go6mJ\nVhIajUajqYlWEhqNRqOpiVYSGo1Go6nJklISQghXCNFe8dztQojv+3//hRDiV6sc1yGEcGuc8w+F\nEF9upIwLRa3vY6kT/s3P4BzTjYkv+X9/QQhxy5lc60wRQnxeCHHpGRzfJoR4oM73fl8I8Wv+308L\nIdpme92ZIoQwhRDfFUIcEkL89hyc70UhxGWzPPYcIcQ3Z3HcnM4n01zrgBDixmnec8b3SuRMDl4A\nahV1eABSyj+v8boxxbFTnXc2LJrCkym+j+XAmX7P040JAKSU7znD68wFrwH+9QyObweunOlBUspZ\nTbBnwGbUZ22WUi70fXQO8NJZHrvQsldyRvIsNSVhTPWir8EPSCnvFEK8GfhrIAM8FXpPBPgn4NVA\nL9AHjPivtQGfBl4ORIEHgA9KKV0hRA74W9Qg3gh8Rkr56VoyCiGagM8CL0HdpCng7UAe+BlwlpQy\n5b9XAr8EHJ/i+nngu8AO4B1SyqdDn+l64B9QlqEHfFxK+e3g+wAeBT7nv2YAW4FnpZQ3CSG2A//o\ny2j5n+vfKr7X1wD/IKXc4T9eBbwInOt/pt8ACv5n+w0p5aEaP1FwvmuAvwOaABf4mJTyXiHE7cBb\ngCTqJj0B/DPwfv97vFNK+Sn/NJuEEPcBm4BjwHuklH3T/IazGRMP+a/t8c91L3A1sAb4Uynlfwsh\nkqhJ/BXAMHAQQEp5R8XnjgB3Aq8CbOBJ4PellBkhxIvAW4LfNXgMvNn/jF/xv5+/A54DrgA6gP+U\nUn5MCHE26jdt9Y8PP/4S0CSEeBq4PDwBCyE2AnejxvQJYF3oNRdYC7xxmt/lU/49tx74d18ugHul\nlH9GBUKIG4C/989XBD4K7ALu83+zPUKIt0gpXwwdU2uMR/3v5EbU+N0LfEBKma645huBj/jnz6LG\nxBNCCAv4BPB6oAQ85n+uL+CPMSnlrUKIa1H3fzBm/0JKec9UY6fi+tON7U9JKe/03/tR4Fd8eQ4D\nvyOl7PXv1S/555C+LMH5K+X7mJTy3goZ3ux/B47/3wellI9WylrJknI3+Tzkm8FPCyH2An9Z+QYh\nxDrgLuAXpZRXoibfgPcBFwDbgNeiJsyATwFP+cdcBnQCf+C/Fgf6pJTXA78M/K0QIlZFvuAGvBUY\nllJeK6XchpqU3i+l7ALuB97hy3oLMCClPDDN9WPAd6WU28MKwudjqEn8SuDXgQnuESnlbinlpf7K\n8D0ohfVu/wb5BvAn/rE3Ax8UQlxVcfyPgeaQ6f424Pv+eT4FvE5KeTXweeD6Kt9JGSHEauDLwK9K\nKa8A3gT8qxBis/+W64HbpZQvAdYDb5VS3oK6if8mdKqXAL8tpbwYeBalGKj1HZ7BmAhzHnCf/1k/\nhJqcAP4MsKSUArWIuJTqq7c/RU3GF/lyBxNUTaSUfwqcBt4updztP70VuAa4HHirEOI2//nKawaP\n7wCyUsrLqqzQ/xl4XEp5EfAB1HdQeTxM/bv8tf+e9wAv+L/rjcAFQojW8MV8V+w3UBPfJcC7gP9E\nKZbbgJwv54tM5GNUH+MfAkpSyiuklJcC3ajJMnzNC1Bj51Yp5eWoRc23fOX+PtTvdZGU8uVAK+r+\nfrf/WW71x+yXmDhmP+uP2XrHTl3foRDiDuB1KGV+CWpBGbivvgJ8zn/+08DZ/jHV5AvfUwF/D/yW\nlPIqlGK+eQpZyyw1SwLgZinlcPAgpKHDXA/sl1JK//HnGJ9gXgV8VUrpAFkhxFeAi/zX3gBcKYR4\nt/84gdLKAd8DkFI+7SuIZtRKKIzhv+d/hBBHhRDvRw2im1GrFIB/QU0w/wq8139cz/Vraf2vA/8s\nhPh5lAL6cLU3+TfLt1ATzhF/ZXI+8CUhRGClJVA3ze6Kw7+EuqGfRk06f+Svzv8beFwIcQ/wI+Cr\nNWQMuAY1UX4ndE0HZSEB/FRKedr/+0X/nAAvAHHfQgO4PzSR3BWSt9p36DH7MRGmKKW8z//7aZT1\nBWpB8PsAUsqUEOLuGsffCnxYShn8pv8EfLvK+6oRtqI/559jVAjxDdSk8rM6z1PJq4E/BJBSviCE\neLDGNev5XX4A3ONbMfcDHwqs5RBXA0eklE/513xOCLELdX88PIWctcb4G4BVQojX+o+jqBV9mNcA\nG4AHQmPORt2XrwL+Q0pZ9OV5G4AQ4qbQ8VON2XrHDtT3Hf4c8GUpZd5/7dNAr7/I2QH8hy/nY0KI\nZ+uQL8zX/PfcA/wYpTSmZSkqiSldTj4eE60kp+K18Dns0N8W8MvBROK7VcKTdK4OWTz/2N9Craz+\nCbUCGEKZmUgp7xdCNPlWxA3Ar/nHmtNcf4IJHSCl/IIfnHotaiL6mBBiwkD1B9m9TDQxLZS1c1nF\n+yaZy6jVzNNCiLuAVVLKnf61f00IcSFqsvkT1CrvF6rJGbrmc1LKa0LX3Igy038V5bYKU6pxnvBv\naobeV/kbBoHXVzHx96p3TIQJLwjCx9hTnDtMpeVuoSa1ajJUs1KryWf616sc81MdH8al9mcPWxLT\n/i5SyqeEEOeixsItwE+FEG+SUj5RIW8lJuPfQ1VqjPEdqO/wd6WUP4SymzdRcbgFPBAoAP99m1EW\nmh3+nP74r/Y7VRuz/SirpJ6xA/WN7WrXDs/T1cbZdPcUAFLKj/r372tRC74PoaztKVmK7qZ62Alc\nGJoo3xV67QfArwkh4kKIBPDW0Gs/xHfvCCHiKMvh/TWuUUtZBc+/FrUi+DJwBOXXtULv+yzwReAr\nwSpmhtcv46/ELpNS/jtq0K5C+cyD15uBe4C7pJRfDx0qgbwQInB9bUG5bi6vvIa/AtqNWoF/0X9/\nhxDiBDAopfwMyp1SuXqp5AngJb5fGiHEJajvZ9N0n5OJ3/krQ+b0b6IUIEz+Dr+PcgnsBF42izFR\n6/ph7gHuEEIY/iT1dqq7m34I/KYQIiKEMIHfZnw12Y+KMyCEeAVqZRhgM3ES/VX/WmuA/wc1TkaA\nqBAicBe9ueL48NgL8wOUNYsQYivwyjo+byVBHO7jwJ9JKb8npfw9lHVTGfx9Qr1VBJ/1ZaiF0kNT\nXbPGGF+N+k7fL4SI+t/pXcDHKw5/EHitEEL457oN2IdyId8PvF0IEfOP/ywqHmAzrmhrjdmN1D92\npiP43D9EjaXAYv4A8BMpZR/KZf1uX4bLGLdYpr2nhBCWUHGuFinl51Fjb5tQMZ0pWWpKoq4ovZRy\nAHWjflUI8RS+787nc6gg5LOogXk09NoHUAG+A8AzqIEUmGS1/L21ZPwkakJ4GmXa7UGZtwH/jsrm\n+Fzoud+dwfXDfBD4SyFEEFz9mJTyROiY30ENqF8QfixHCPG0lLKEWvW/WwixDzXgPyKlfLzGdb4A\nXIIKdCKlHAT+CnjQ/54/jrIkEEL8hhDi85Un8H+btwCfEEI845/rHX6sppKpvvP9KDfZAWALvsuE\nGr/hGYwJr8bfYT6OWiXuR036vajgaCV/DfT4cv0MtUL8Pf+1PwF+zx8vv04osA58B/i6EOLV/uMk\nSmE/BvxfKeXDUsox4I+BHwghnmSiNdMN7BVCPOcrljDvRynPn6F+3711fN5av8s/ApcIIfYLIX6K\n+h6/Fn6jP2Z+Gfi/Qoj9qHjEu6SUL0xzzVpj/K9QiQt7Ub+fx/hYCLIen0Mpwv8SKo75F8AbpZQ5\nxn/7Paixcgr4DOr3cYQQT0wzZqcaO1NR6zu8C6W4dvu/ySWMWwNvB97m36sfQSUw1HVP+e6w30WN\n/z3AfwN3+HPAlBi6VfjCIIR4GyrQ9PqFlkVzZggh3gqMSSnv833C/wP8UEr5uWkOnc21HgL+SUr5\nrbk+t0ZTjYZbEkKIq/2BHX7u7UKIx0KP3yOE+KkQ4jEhxLKfNP3v408ZX/FoljbPAh/xV6nPolaj\nX2zQtfSqTjOvNNSSEEJ8EHgnkJZSXus/dykq7a9JSnmtULnVP0YFUJpQGTyX12MGaTQajaaxNNqS\neB74xeCBEKID5Zf93dB7rgIelVLavl/1CNMHPzUajUYzDzRUSUgpv42fEuZnDnwRlXmSCb2tDRgN\nPU6jMhc0Go1Gs8DMZ53EZajsns+isjO2CyHuRGUEhJuItVI9T38Cnud5hlFvhp5Go9FofGY0cc6X\nkjD8CsuLoNxX5mtSyj/wYxJ/LVQFcxJV3v5s7VP5JzQM+vsrizkXH52drVrOOWQpyLkUZAQt51yz\nlOScCfNVJ1EzOi6l7EXlJT+KX24fKi7TaDQazQLScEtCSnkcuHaq56SUd6GKSDQajUaziFhqFdca\njUajmUe0ktBoNBpNTbSS0Gg0Gk1NtJLQaDQaTU20ktBoNBpNTZbipkNnjOt57Nrfzcn+DJs7m7lu\nx0ZMwyg/39WXJlewSSYibOlsKb9eeY5H93ez+2AvHrCmOUZTIsqWder9rudx972H6B7OsnFNE++8\nVbDrQDff23mMQtHhrM4mPviOy4iYZt3XXCmEf5+z1jaBYXDK/61+4ZbZ7k1f3/XC40GztJjuvg4/\nD9T1m9uuy933HuLgiWHiUYvXXrGZGy45a0WNjxWjJIqOwye/upfeoRzJuEUiHsEwDA53DbNz/2kK\nJZdC0SZXcMgVbRzHIxY12dCu9v64bsfGslIAWNMS59CJEVLZIrbj4npgGOB58JUfS6IRk2zBwTIN\nTvam6R3Ocqwnhe2okpEXTqf4k395nJeds4bnjg0xminhAZYJZ61tBuCGi+vZh2fpUuum3rW/mwf3\nngLg6cP9ALQ0RTl8coQT/RlMqHljz2bCD66XzpZ44rkeDneNcMfrt6+oiWCxEP79Nq5t4vmuEbqH\ns1iGwdkb2ti6rvYCKjxuDp9UTRtuuHgTj+47zfcfO07RdohFLIKmppXPXX/xpklj5+57D/HEc724\nrjrmmz85immay/7eDLNilMQnvrKXF06PAZDKlTCA5mSEfNEpT9yVFEouPUNZ7t9zkp37T3OiN0XR\nVu81gFhUeeuCo4OGukXbo2irPV9sx8PA44VTY5MqCkczRXYf6ptwfceF7sEsJ/szLHdq3dThzx58\njxAlnS3y2IHTRCyTaMREnhimORmrqWDC56wkPBmdGkiTzpZIZVUN5/6jg+za372iJoLFwqP7u/n+\nrmMUbYdcwcZ2PEx/8dU9mOX5U0kOd43QlIhOsgoe2HOSTN6mOakWgME42n2or/zbFooOuw/1AUx6\nzgX+5+EXyBfVmLtv93HyeRvHHb8/CyVnRdybYVaMkqj8YT0gnZtqO1pFoeTSM5ihVKFIPP81g+kb\n/E/1ejUFZTsemzubp5VtqVP5mwSPz1rbxNOH+ynaDq7rEY+qnTczeRvbcXEcj2ze5inZRzRikS86\nfOuRo/zC9edwciBDOluiULLxPLh/z0mASavP8OqyUHTKE4FlGsQi1oqbCBYLuw/2MpIu4HpeedEV\nzNHZgs3ASI6hsTztbYnyIgDgwb2nyOTt8sTf0hSteQ95nsdIuojteur+9TyePzXKka6RCfd5z2AO\ns8JgcV2PUwNpdu47vWLckitGSSRiFoVSrf3pp6ZSQYRpxG4cibhVXiEtZzZ3Nk+40cs3dejGS8Qs\ntm1dQ1MiSrHkMDiaB9T3XrI9irZS9KOZIv/90PO0NsUYTuXLE0uhlOGbP3mBw10j3H7bNh470MPu\ng70c70mRK9gYhoHjeuXJIBqxaE5GVoSSXowMpwq4rlf1vvI8pSia4uPT1pMHe0lnS2TyNi3JCJ7n\n4XkezYkIHspivGr7enqHcmXXUntrgt7hHAaUFwfFkltVHsMwMLxxeUzTIJO3y9bqSrA2V4yS2La1\njScPDiy0GNMSj5r80ivPXxErlEARBj7gay7awM59p3ngqS7yRRvTNACDZDzC2179Eh7Z18y9Txwn\nkytiF9xJE0m+5GKnJ7b9sn2rY//RQe6+91A5jlRyXDwPDDzfdWjRnIjSnIhwy6Vn4QFfu/+IDmTP\nM6tbYvQMZauuvgJFXig5pLMlPM8jnVV7kwUWRNAZOpO3eWjvKQzg+h0bMaCcCPHkoT6KJYdEzCJX\nsHGnWOkZhlIMlmlgux6WZZLOlijaDk8e7F0RY2PFKInjPemFFmFaTAOuEOu4YcfyX50AmIYxYSW2\nc99pHtx7iqFUgWxeKYmCqXzToG72ttYEd9/zHK5X3SqMRUxyrjceIELNN7GIRVdfuhzjCLJeTMMA\nA6UgkiqzbPehPo73pLAd109u0IHs+eLq7et5sTtVjgsEmMa4AohHLYq2Q0sySi5fIpUr4XqQL9ps\nXd9K1h8v6WyJ+/ec5HDXCINjOUYzJZ59cZCxTJGSrSyHiGWWFwyVRCMGV7y0k8MnxyjaDlHXo2Q7\nDKcLGEDvUG5FxK5WjJIYSi3+xrKuB3v8bJ7lPCnVykAK4gCmaaj/DIhGTA4eH+aT/7WXq7at402v\nfCmf+86BSec0DWhKqIBl1DIoeR6GYeB5HsmYVVYAmXyJbN7G8zyiEZPzz2qjvTVBMh4hV7A5OZCh\ndyhbnqQM1G/y0i2rl/1ksBi4/uJNHDk5yp7D/ZRsF9OAeMyitSlGoehQKDmYftwID0azpfIEny3Y\nnB7IqLiV61GyXVLZIif70mXDxEBZB5ZpYlkG52xoYWAkz8BYYYIcBuo9L9m6BtM06epLE7UMjvWm\n8Fz/DXgrIna1YpRENGJStKv7HRcT+aLD7oN9vGTLam5cppNSZQaSh7rngiyjWMSiYDpEIyb5orIk\nRjJFjvekONGfwavwD5gGJOMR8gWbeCxCLGqxZV0LZ29oJV9wSMYjbFnXwjUXbeDuew+VFXFTPMLV\nF27gxos34Xoed379GYbG8jhVYlArYTJYDJiGwe23bQPg4IlhYhGTC8/twDTgWPcYx3tSGIZBoejQ\n0RafcKznKbdTYHE4rjchMwmUVekF/3M8hsYKjGQmLiANxl1M//vYMfCUFTOSLuC4+MFu5dJaCbGr\nFVNxffH5HQstQt2UHJcnn+tdaDEaRuWEu/tgr6pTyCn/8ro1Ca7cto72tgSmYeB54LkeuYLN/hcG\nWN+eJBYxMQ2IRQzamqMUbRcPA8OA9rYE52xoY+u61gkFjhHTpCkRZd2aJM2JKCXHZffBXlUYue80\nx3tSZHIlbDe0mDAgGbNWxGSwWHj8QA8nBzK0NsVIZUs8/mwPew8P0DucIxa1ypZFtVBCYHy71fxH\nIaKWSSxqMThWqJphGLEMirZLNm8zmikynMqXFU7w7jWt8RWRYLIilITreVywZTXJuLXQopSxDCal\n14U5NbD4YyizpXLCDQKQwyll8p+1toVff8OFvPryzVjW+JdkGAbJWATTNNm4tpkt61uVDzqvUmVd\ndzxtMldQGSiHT47w4N5T7NrfXb52JqdSJQtFp+xX3n2oj5LtllehpqGSCOJRiwvPaV8Rk8FiIVhE\npLNFsnmbfNFWabGuh2katLclaGmKsqYtwermGBFLLQ4ilkE8apUL3wJM/16zDKN8zzmuS6HkTHov\nKCvC9SgvRBzXmxTcbkpEeN1VW5etSzjMinA37drfzU+eOe37nWeXBjvXON7USqI0y3TdpUAw4Qat\nSI52jzGSLmCZyo0QBKqv27GRw10jE9xDP3/j+WQzBZWp0tnMk8/1TohhqCylCEPpAq7rks075UyU\nay7aoNwNqMmmKR6hpSk6wbKxTAPXUfGMlmSM5mSEpkR0RUwGi4UgNTqTt9Wq3VMLPcf1uOSCtSQT\nEXJ5m6FUHtM0OauzRR23tpkTfWnlMvRjEtGIKrxsSUYpFB1GM0XwvLL1oGIPxgS3lON6WKZBvuiU\nq7PDGAa0Nce4foUsHFaEJdHVr3zdI6nC9G+eR6ZKvYtFl6/+DrKatqxrUcVvvpvJNA1am2Ik4hF2\n7jvNf91/BM/zWNMapykRYfvZa7jl8i3l8xzpGqF3KFu2IgzDwDQMeodyvHh6jN6hXNliON6T4s/v\n2s33d71IJleiUHTUdT1VuHjFtnVEI+aEyWIkXaBvOEc2X5rWfaGZO67bsZFbLj2LpkREWQCmshTi\nUUst9PJ2edzki8oq3Ly2mXfeKti6rgXTNGhORFndEuO8TW380k3n87ort1By3EmWgwdlKwT8eDTK\n5WsaRvn1ANNQrqo1rfEVs3BYvjNRiGyu5FdxLrQk9bNp7fL3gQcr+CBQDaoNx/GeMY6cHCGTU24G\nUDfnM88P8Hufephs3qYpYdE/ki+v9IKMlmD1Z1kmrqsymCzToGS7DIzmcfw+W+paLiPpIp6naiUS\nsYhKbnBVD60gz+HkQGZFpDouNta3N1EoOkQiJrbtYlkGR06NMjiaw/NUvYTjeOSLNvteGKD3q1mK\ntkssolJkd5zXUc4SdD2PIydHeeK53knB7Ihpsro1xsBIDg9lVURMk7bmKMPpYjmdWhXnqWOuEJ3z\n/G0sHCtCSQynF3/6ayVXblv+gzBwK6geWja2bxEc60kRj1qYplEOEroe5IoOvcOq0CpfNCnZrlrh\ne34wMbzad1yS8YhfkKeIWgalik4smXyJ7z92HE+FvWlJRBjLlrAdz8+EUfGSrr7lGyNaTLiex5fv\nOcj+o4NELZNELMLmdS30DWdJ50qksyVc1yMbchs7rmqx88KpMZoSEdauTgLRspswSLlOJiKcs6GF\no92pCUPFsgzO37TKr+BXcYpETLkiVW83F9sZz5Qq2S73PXmC04PZFdGxeUUoCdWddQmZEcDzJ0e5\n+dLNCy1GQwlXXJ9KpukZVBOB5yuEZMwqm/+eX/cQj1oUig5F28UyDUzPwPE8qGjlYBgG7W1xtq5r\nZThdoHcoh+u55ArOhPeZhkEqW1TBSt/yCI53XY9iyWXYKXCsZ2y8+E7TMHbt72bfCwPqd/I8kvEI\ng6M5Bkby2K6Ladj49Y+Tsps8VK1EKlOktTlGNl/ia/cfIZsv0dWfLiclXHPhep55foCcXwuTLzq8\ncGoUsXU1J/vSbFnXwrlntfLAU6eIRS2a4ioLKnyd/pE8jz/bw5HVSWB5t+dYEUriqu3rkSdGqFpW\nOc/U0xAQ4FDXyPRvWuKEK6537jvNN3/yAqB80NGISXtrnK3rWxlOFRhOFyiWHFa3JhhJFYhFTb/f\njkcqWwLfpRRYDuvWJHn15VsmdQk1DRWQzBcdDIPyeZoTEcBQ12iJU7QdMn4lrwn0Dq+M6tqF5mR/\nBs+jHDvIFmzyRafcz8nx/D5bNW6kQIVvXttcVgxDY3liEYuWpigAzckYl76kk8d/1oPrqXP2DOdI\n5UqsXZ1UBZXD2XKfMNtR48qtSJXNFVV7kOVeQ7MilMT1Ozby6P7THD09tiBxiWDxGYuo3OygBfJU\nBJ1PVwpBJtP+o4PlG/qWS88qT8qBy2AwU6SjOcY1F23g8QM9dPWnyeVt4lGTE31pCiWXretauP22\nbUTM8byM4DwP7j1Fi9oihM1rm8tWRjCBbF672u8kCxnDxjJ0Z9j5ZHNnczlbzUOlrVYmDZimXzvD\nuPXoeUEA2mRDRxNNiWjZcghiFBAtX6Orz7csQucuhYpte4dy5b/HzzOxINdAxdCWew3NilASpmHw\nx++4jLvvPcSJvjSxiEkmX6RYUj7IbL52k69EzOLSCzrYf3SITL52a/FYxCxvPhQmYoFpqMkqFrXY\ncV4HQ6k8R06O1lQUlmHw2iu3VH1tuWIaBne8fnvVHcSC12+4eBOdna3096eAmZv4lQ0Fq+1QFlY+\nx7rH6BnKEo9GdGfYeaJysQBQKKnNwBzXU+mnTVEMw6QpbrF1fStDqQInelN+BlSEq7avx2B8P5GW\npiib166esAfFrv3dJGIW2eCe9lvABKxvT3KiV8WhTAPO3tDKORvbONY9RvdgBlCKbMd5Hcu+hsZo\ntK9eCHE18LdSylcKIS4BPgPYQAH4NSllvxDiPcB7gRLwN1LKe+o4tRdMFmdCeBvS4VSBtqYIjsuE\nFalpGDy67zRPHuz1s2EgWyhh2y6rWmKcu6Gt3PvnaPcYA6N5LMskYhok4xaeZ0zItgB4ZN9pfvzT\nLvJFB8tUra49T/WLuUJ0znvvpvDku5iZTzlnu62p/i7PjAnb13Y209Ic48GnuhhOFSiW3LLVF1ia\ns9me1PU8du47zY9+2kWh5LBty2ou2LKa7oEsmzubufrl6/mP+yRdfowisEynGhOL9fuspLOzdUYT\nS0OVhBDig8A7gbSU8lohxMPA70gpDwgh3gu8FPgE8GPgMqAJeBS4XEpZmub0c6Ik5prK/ZlbW5Mc\nenFwyklmMeyxvIQG+KKXcynICEtPzsVwn0zFEvo+Z/SlNdrd9Dzwi8B/+I/fKqUMmhJFgDxwFfCo\nlNIGxoQQR4AdwJ4Gy9YQKttfd3a2cun57TM6RqPRTEbfJwtDQ5WElPLbQoizQ497AYQQ1wLvA24E\nfg4YDR2WBlbVc/7Ozta5E7aBaDnnlqUg51KQEbScc81SkXMmzHvgWgjxVuD/BW6TUg4KIcaAttBb\nWoG68j+XiGmn5ZxDloKcS0FG0HLONUtJzpkwr0pCCPGrqAD1zVLKQBHsBv5aCBEDksA24Nn5lEuj\n0Wg01Zk3JSGEMIFPA8eBbwshPOAnUsq/EEJ8BhWwNoAPSymXXh8NjUajWYY0XElIKY8D1/oPq+78\nI6W8C7ir0bJoNBqNZmasiFbhGo1Go5kdWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZa\nSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJ\naDQajab+7ainAAAgAElEQVQmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2m\nJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJlpJaDQajaYmWkloNBqNpiZaSWg0Go2mJpFGX0AIcTXw\nt1LKVwohzgf+DXCBZ6WU7/Pf8x7gvUAJ+Bsp5T2Nlkuj0Wg009NQS0II8UHgC0Dcf+pO4MNSypsA\nUwjxJiHEeuB3gGuAnwM+LoSINlIujUaj0dRHo91NzwO/GHp8uZRyp//3fcBrgKuAR6WUtpRyDDgC\n7GiwXBqNRqOpg4a6m6SU3xZCnB16ygj9nQLagFZgNPR8GlhVz/k7O1vPWMb5QMs5tywFOZeCjKDl\nnGuWipwzoeExiQrc0N+twAgwhlIWlc9PS39/au4kaxCdna1azjlkKci5FGQELedcs5TknAnznd30\ntBDiRv/vW4GdwE+B64UQMSHEKmAb8Ow8y6XRaDSaKsy3JfFHwBf8wPRB4JtSSk8I8RngUZQ76sNS\nyuI8y6XRaDSaKjRcSUgpjwPX+n8fAW6u8p67gLsaLYtGo9FoZoYuptNoNBpNTbSS0Gg0Gk1NtJLQ\naDQaTU2mjUkIIdYAfw+cD/wy8AngD6WUww2WTaPRaDQLTD2WxBdQaaodqAK4buA/GymURqPRaBYH\n9SiJc6WUnwdcKWVRSvkRYHOD5dJoNBrNIqAeJWH7RW4egBDiJUysnNZoNBrNMqWeOok/Bx4Gtgoh\nvoPq1vp/GimURqPRaBYH0yoJKeUPhBBPAVcDFvAb1NlbSaPRaDRLm3qym/YD7w1vBCSEeBq4rJGC\naTQajWbhqScm0Q7c5e8eF2DUerNGo9Folg/1xCT6gFcD3xBCXA68Hz+IrdFoNJrlTT2WhCGlHAJe\ni9qD+mEg0UihNBqNRrM4qEdJ7AeQUjpSyt8B7kZVX2s0Go1mmVNPdtPtFY+/gKrC1mg0Gs0yp6aS\nEEI8LaW8TAjhMh6DCALWnpTSarh0Go1Go1lQaioJKeVl/r+6U6xGo9EsQTzPxXE9SraH7bjYjseP\nnzq28e23XtRd7znqqZM4H3gF8FXgX1H1Eb8vpXx01pJrNBqNZg7xcD0P21aKoOQEf7uTUlFHUoUZ\n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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x11fbc9c18>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "seaborn.regplot(\n", + " selected_models_df.hyperparameters_embedding_output_dim.values,\n", + " selected_models_df.hyperparameters_layer_sizes.map(lambda x: x[0]).values,\n", + " x_jitter=5,\n", + " y_jitter=5)\n", + "pyplot.xlim(xmin=0)\n", + "pyplot.ylim(ymin=0)\n", + "pyplot.title(\"Hidden layer size vs. embedding output dims of selected models\")\n", + "pyplot.xlabel(\"Embedding output dimensions\")\n", + "pyplot.ylabel(\"Hidden layer size\")" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<h1>Model selection invocation</h1><pre>#!/bin/bash\n", + "\n", + "if [[ $# -eq 0 ]] ; then\n", + " echo 'WARNING: This script is intended to be called with additional arguments to pass to mhcflurry-class1-allele-specific-cv-and-train'\n", + " echo 'See README.md'\n", + "fi\n", + "\n", + "set -e\n", + "set -x\n", + "\n", + "DOWNLOAD_NAME=models_class1_allele_specific_ensemble\n", + "SCRATCH_DIR=/tmp/mhcflurry-downloads-generation\n", + "SCRIPT_ABSOLUTE_PATH=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)/$(basename \"${BASH_SOURCE[0]}\")\"\n", + "SCRIPT_DIR=$(dirname \"$SCRIPT_ABSOLUTE_PATH\")\n", + "export PYTHONUNBUFFERED=1\n", + "\n", + "mkdir -p \"$SCRATCH_DIR\"\n", + "rm -rf \"$SCRATCH_DIR/$DOWNLOAD_NAME\"\n", + "mkdir \"$SCRATCH_DIR/$DOWNLOAD_NAME\"\n", + "\n", + "# Send stdout and stderr to a logfile included with the archive.\n", + "exec > >(tee -ia \"$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt\")\n", + "exec 2> >(tee -ia \"$SCRATCH_DIR/$DOWNLOAD_NAME/LOG.txt\" >&2)\n", + "\n", + "# Log some environment info\n", + "date\n", + "pip freeze\n", + "git rev-parse HEAD\n", + "git status\n", + "\n", + "cd $SCRATCH_DIR/$DOWNLOAD_NAME\n", + "\n", + "mkdir models\n", + "\n", + "cp $SCRIPT_DIR/models.py .\n", + "python models.py > models.json\n", + "\n", + "time mhcflurry-class1-allele-specific-ensemble-train \\\n", + " --ensemble-size 16 \\\n", + " --model-architectures models.json \\\n", + " --train-data \"$(mhcflurry-downloads path data_combined_iedb_kim2014)/combined_human_class1_dataset.csv\" \\\n", + " --min-samples-per-allele 20 \\\n", + " --out-manifest selected_models.csv \\\n", + " --out-model-selection-manifest all_models.csv \\\n", + " --out-models models \\\n", + " --verbose \\\n", + " \"$@\"\n", + "\n", + "bzip2 all_models.csv\n", + "cp $SCRIPT_ABSOLUTE_PATH .\n", + "tar -cjf \"../${DOWNLOAD_NAME}.tar.bz2\" *\n", + "\n", + "echo \"Created archive: $SCRATCH_DIR/$DOWNLOAD_NAME.tar.bz2\"\n", + "</pre>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "log_path = get_path(\"models_class1_allele_specific_ensemble\", \"GENERATE.sh\")\n", + "with open(log_path) as fd:\n", + " di.display_html(\"<h1>Model selection invocation</h1><pre>%s</pre>\" % fd.read(), raw=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "<h1>Model selection log (beginning)</h1><pre>+ date\n", + "Thu Mar 16 13:18:34 UTC 2017\n", + "+ pip freeze\n", + "alabaster==0.7.9\n", + "anaconda-clean==1.0\n", + "anaconda-client==1.5.1\n", + "anaconda-navigator==1.3.1\n", + "appdirs==1.4.0\n", + "argcomplete==1.0.0\n", + "astroid==1.4.7\n", + "astropy==1.2.1\n", + "Babel==2.3.4\n", + "backports.shutil-get-terminal-size==1.0.0\n", + "beautifulsoup4==4.5.1\n", + "biopython==1.68\n", + "bitarray==0.8.1\n", + "blaze==0.10.1\n", + "bokeh==0.12.2\n", + "boto==2.42.0\n", + "bottle==0.12.13\n", + "Bottleneck==1.1.0\n", + "cffi==1.7.0\n", + "chest==0.2.3\n", + "click==6.6\n", + "climate==0.4.6\n", + "cloudpickle==0.2.1\n", + "clyent==1.2.2\n", + "colorama==0.3.7\n", + "conda==4.2.9\n", + "conda-build==2.0.2\n", + "configobj==5.0.6\n", + "contextlib2==0.5.3\n", + "cryptography==1.5\n", + "CVXcanon==0.1.1\n", + "cvxpy==0.4.8\n", + "cycler==0.10.0\n", + "Cython==0.24.1\n", + "cytoolz==0.8.0\n", + "dask==0.11.0\n", + "datacache==0.4.20\n", + "datashape==0.5.2\n", + "decorator==4.0.10\n", + "dill==0.2.5\n", + "docutils==0.12\n", + "downhill==0.4.0\n", + "dynd==0.7.3.dev1\n", + "ecos==2.0.4\n", + "et-xmlfile==1.0.1\n", + "fancyimpute==0.1.0\n", + "fastcache==1.0.2\n", + "filelock==2.0.6\n", + "Flask==0.11.1\n", + "Flask-Cors==2.1.2\n", + "gevent==1.1.2\n", + "google-api-python-client==1.5.5\n", + "greenlet==0.4.10\n", + "gtfparse==0.0.6\n", + "h5py==2.6.0\n", + "HeapDict==1.0.0\n", + "httplib2==0.9.2\n", + "humanize==0.5.1\n", + "idna==2.1\n", + "imagesize==0.7.1\n", + "ipdb==0.10.2\n", + "ipykernel==4.5.0\n", + "ipython==5.1.0\n", + "ipython-genutils==0.1.0\n", + "ipywidgets==5.2.2\n", + "itsdangerous==0.24\n", + "jdcal==1.2\n", + "jedi==0.9.0\n", + "Jinja2==2.8\n", + "joblib==0.10.3\n", + "jsonschema==2.5.1\n", + "jupyter==1.0.0\n", + "jupyter-client==4.4.0\n", + "jupyter-console==5.0.0\n", + "jupyter-core==4.2.0\n", + "Keras==1.2.0\n", + "knnimpute==0.0.1\n", + "-e git+git@github.com:hammerlab/kubeface.git@91fa80a571b9f870c4ec945b834a97fdf863fbc7#egg=kubeface\n", + "lazy-object-proxy==1.2.1\n", + "llvmlite==0.13.0\n", + "locket==0.2.0\n", + "lxml==3.6.4\n", + "MarkupSafe==0.23\n", + "matplotlib==1.5.3\n", + "memoized-property==1.0.3\n", + "-e git+git@github.com:hammerlab/mhcflurry.git@2925ce8d6c08e8ac0170504b06f1be384a0fc169#egg=mhcflurry\n", + "mhcnames==0.1.0\n", + "mhctools==0.4.1\n", + "mistune==0.7.3\n", + "mock==2.0.0\n", + "mpmath==0.19\n", + "multipledispatch==0.4.8\n", + "multiprocess==0.70.4\n", + "nb-anacondacloud==1.2.0\n", + "nb-conda==2.0.0\n", + "nb-conda-kernels==2.0.0\n", + "nbconvert==4.2.0\n", + "nbformat==4.1.0\n", + "nbpresent==3.0.2\n", + "-e git+git@github.com:hammerlab/neon.git@f343737d19e1b9509137bf63b9d291d2d8c8bcaf#egg=neon\n", + "networkx==1.11\n", + "nltk==3.2.1\n", + "nose==1.3.7\n", + "notebook==4.2.3\n", + "numba==0.28.1\n", + "numexpr==2.6.1\n", + "numpy==1.11.1\n", + "oauth2client==4.0.0\n", + "odo==0.5.0\n", + "openpyxl==2.3.2\n", + "pandas==0.18.1\n", + "parse==1.6.6\n", + "partd==0.3.6\n", + "path.py==0.0.0\n", + "pathlib2==2.1.0\n", + "patsy==0.4.1\n", + "pbr==1.10.0\n", + "pep8==1.7.0\n", + "pepdata==0.7.0\n", + "pexpect==4.0.1\n", + "pickleshare==0.7.4\n", + "Pillow==3.3.1\n", + "pkginfo==1.3.2\n", + "plac==0.9.6\n", + "ply==3.9\n", + "progressbar33==2.4\n", + "prompt-toolkit==1.0.3\n", + "psutil==4.3.1\n", + "ptyprocess==0.5.1\n", + "py==1.4.31\n", + "pyasn1==0.1.9\n", + "pyasn1-modules==0.0.8\n", + "pycosat==0.6.1\n", + "pycparser==2.14\n", + "pycrypto==2.6.1\n", + "pycurl==7.43.0\n", + "pyensembl==1.0.3\n", + "pyflakes==1.3.0\n", + "Pygments==2.1.3\n", + "pylint==1.5.4\n", + "pyopen==0.0.6\n", + "pyOpenSSL==16.0.0\n", + "pyparsing==2.1.4\n", + "pytest==2.9.2\n", + "python-dateutil==2.5.3\n", + "pytz==2016.6.1\n", + "PyVCF==0.6.8\n", + "PyYAML==3.12\n", + "pyzmq==15.4.0\n", + "QtAwesome==0.3.3\n", + "qtconsole==4.2.1\n", + "QtPy==1.1.2\n", + "redis==2.10.5\n", + "requests==2.11.1\n", + "rope-py3k==0.9.4.post1\n", + "rsa==3.4.2\n", + "ruamel-yaml===-VERSION\n", + "scikit-image==0.12.3\n", + "scikit-learn==0.18.1\n", + "scipy==0.18.1\n", + "scs==1.2.6\n", + "seaborn==0.7.1\n", + "sercol==0.0.2\n", + "serializable==0.1.1\n", + "simplegeneric==0.8.1\n", + "simplejson==3.10.0\n", + "singledispatch==3.4.0.3\n", + "six==1.10.0\n", + "sklearn==0.0\n", + "snowballstemmer==1.2.1\n", + "sockjs-tornado==1.0.3\n", + "Sphinx==1.4.6\n", + "spyder==3.0.0\n", + "SQLAlchemy==1.0.13\n", + "statsmodels==0.6.1\n", + "sympy==1.0\n", + "tables==3.2.3.1\n", + "terminado==0.6\n", + "Theano==0.8.2\n", + "tinytimer==0.0.0\n", + "toolz==0.8.0\n", + "tornado==4.4.1\n", + "traitlets==4.3.0\n", + "typechecks==0.0.2\n", + "unicodecsv==0.14.1\n", + "uritemplate==3.0.0\n", + "varcode==0.5.11\n", + "wcwidth==0.1.7\n", + "Werkzeug==0.11.11\n", + "widgetsnbextension==1.2.6\n", + "wrapt==1.10.6\n", + "xlrd==1.0.0\n", + "XlsxWriter==0.9.3\n", + "xlwt==1.1.2\n", + "You are using pip version 8.1.2, however version 9.0.1 is available.\n", + "You should consider upgrading via the 'pip install --upgrade pip' command.\n", + "+ git rev-parse HEAD\n", + "2925ce8d6c08e8ac0170504b06f1be384a0fc169\n", + "+ git status\n", + "On branch add-class1-ensemble\n", + "Your branch is up-to-date with 'origin/add-class1-ensemble'.\n", + "nothing to commit, working directory clean\n", + "+ cd /tmp/mhcflurry-downloads-generation/models_class1_allele_specific_ensemble\n", + "+ mkdir models\n", + "+ cp /home/tim/sinai/git/mhcflurry/downloads-generation/models_class1_allele_specific_ensemble/models.py .\n", + "+ python models.py\n", + "Using Theano backend.\n", + "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", + " \"This module will be removed in 0.20.\", DeprecationWarning)\n", + "Models: 162\n", + "++ mhcflurry-downloads path data_combined_iedb_kim2014\n", + "Using Theano backend.\n", + "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", + " \"This module will be removed in 0.20.\", DeprecationWarning)\n", + "+ mhcflurry-class1-allele-specific-ensemble-train --ensemble-size 16 --model-architectures models.json --train-data /home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv --min-samples-per-allele 20 --out-manifest selected_models.csv --out-model-selection-manifest all_models.csv --out-models models --verbose --parallel-backend kubeface --target-tasks 10000 --kubeface-backend kubernetes --kubeface-storage gs://kubeface-tim --kubeface-worker-image hammerlab/mhcflurry-misc:latest --kubeface-kubernetes-task-resources-memory-mb 6000 --kubeface-worker-path-prefix venv-py3/bin --kubeface-max-simultaneous-tasks 200 --kubeface-speculation-max-reruns 3 --kubeface-cache-key-prefix tim-note-tim-2017-03-12-16-37-22-27499bde\n", + "Using Theano backend.\n", + "/home/tim/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", + " \"This module will be removed in 0.20.\", DeprecationWarning)\n", + "To show stack trace, run:\n", + "kill -s USR1 992\n", + "INFO:root:Running with arguments: Namespace(alleles=None, dask_scheduler=None, ensemble_size=16, kubeface_backend='kubernetes', kubeface_cache_key_prefix='tim-note-tim-2017-03-12-16-37-22-27499bde', kubeface_kubernetes_cluster=None, kubeface_kubernetes_image_pull_policy='Always', kubeface_kubernetes_retries=12, kubeface_kubernetes_task_resources_cpu=1, kubeface_kubernetes_task_resources_memory_mb=6000.0, kubeface_local_process_docker_command='docker', kubeface_max_simultaneous_tasks=200, kubeface_never_cleanup=False, kubeface_poll_seconds=30.0, kubeface_speculation_max_reruns=3, kubeface_speculation_percent=20, kubeface_speculation_runtime_percentile=99, kubeface_storage='gs://kubeface-tim', kubeface_wait_to_raise_task_exception=False, kubeface_worker_image='hammerlab/mhcflurry-misc:latest', kubeface_worker_kubeface_install_command='{pip} install https://github.com/hammerlab/kubeface/archive/master.zip', kubeface_worker_kubeface_install_policy='if-not-present', kubeface_worker_path_prefix='venv-py3/bin', kubeface_worker_pip='pip', kubeface_worker_pip_packages=[], max_models=None, min_samples_per_allele=20, model_architectures=<_io.TextIOWrapper name='models.json' mode='r' encoding='UTF-8'>, num_local_processes=None, num_local_threads=1, out_manifest='selected_models.csv', out_model_selection_manifest='all_models.csv', out_models_dir='models', parallel_backend='kubeface', quiet=False, target_tasks=10000, train_data='/home/tim/.local/share/mhcflurry/4/0.0.8/data_combined_iedb_kim2014//combined_human_class1_dataset.csv', verbose=True)\n", + "Using parallel backend: <Kubeface backend, client=<kubeface.client.Client object at 0x7fe5429fdac8>>\n", + "INFO:root:Read 162 model architectures\n", + "INFO:root:Loaded training data: Dataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401'])\n", + "</pre>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "log_path = get_path(\"models_class1_allele_specific_ensemble\", \"LOG.txt\")\n", + "with open(log_path) as fd:\n", + " lines = fd.readlines(100000)\n", + " di.display_html(\"<h1>Model selection log (beginning)</h1><pre>%s</pre>\" % \"\".join(lines), raw=True)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [py3k]", + "language": "python", + "name": "Python [py3k]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/downloads-generation/models_class1_allele_specific_ensemble/models.py b/downloads-generation/models_class1_allele_specific_ensemble/models.py new file mode 100644 index 0000000000000000000000000000000000000000..08be52528c05610c02e5808e0fde405d33306903 --- /dev/null +++ b/downloads-generation/models_class1_allele_specific_ensemble/models.py @@ -0,0 +1,24 @@ +import sys +from mhcflurry.class1_allele_specific_ensemble import HYPERPARAMETER_DEFAULTS +import json + +models = HYPERPARAMETER_DEFAULTS.models_grid( + impute=[False, True], + activation=["tanh"], + layer_sizes=[[12], [64], [128]], + embedding_output_dim=[8, 32, 64], + dropout_probability=[0, .1, .25], + fraction_negative=[0, .1, .2], + n_training_epochs=[250], + + # Imputation arguments + impute_method=["mice"], + imputer_args=[ + # Arguments specific to imputation method (mice) + {"n_burn_in": 5, "n_imputations": 50, "n_nearest_columns": 25} + ], + impute_min_observations_per_peptide=[3], + impute_min_observations_per_allele=[3]) + +sys.stderr.write("Models: %d\n" % len(models)) +print(json.dumps(models, indent=4)) diff --git a/examples/class1_allele_specific_models.ipynb b/examples/class1_allele_specific_models.ipynb index 0fda9cd6f10d65a21810e10db8abeec646015ad3..e6af34dd630f60ce653788e291ce59a2c3995b9f 100644 --- a/examples/class1_allele_specific_models.ipynb +++ b/examples/class1_allele_specific_models.ipynb @@ -13,7 +13,9 @@ "text": [ "Using Theano backend.\n", "/Users/tim/miniconda3/envs/py3k/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", - " warnings.warn(self.msg_depr % (key, alt_key))\n" + " warnings.warn(self.msg_depr % (key, alt_key))\n", + "/Users/tim/miniconda3/envs/py3k/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", + " \"This module will be removed in 0.20.\", DeprecationWarning)\n" ] } ], @@ -56,7 +58,7 @@ "text": [ "Help on function predict in module mhcflurry.predict:\n", "\n", - "predict(alleles, peptides, loaders=None)\n", + "predict(alleles, peptides, predictor=None)\n", " Make predictions across all combinations of the specified alleles and\n", " peptides.\n", " \n", @@ -68,8 +70,7 @@ " peptides : list of str\n", " Peptide amino acid sequences.\n", " \n", - " loaders : list of Class1AlleleSpecificPredictorLoader, optional\n", - " Loaders to try. Will be tried in the order given.\n", + " predictor : Predictor to use. Defaults to downloaded Class1SingleModelMultiAllelePredictor.\n", " \n", " Returns DataFrame with columns \"Allele\", \"Peptide\", and \"Prediction\"\n", "\n" @@ -165,7 +166,7 @@ } ], "source": [ - "model = mhcflurry.class1_allele_specific.load.from_allele_name(\"HLA-A0201\")\n", + "model = mhcflurry.class1_allele_specific.class1_single_model_multi_allele_predictor.from_allele_name(\"HLA-A0201\")\n", "model.predict([\"SIINFEKL\", \"SIQNPEKP\", \"SYNFPEPI\"])\n" ] }, @@ -193,7 +194,7 @@ { "data": { "text/plain": [ - "'/Users/tim/Library/Application Support/mhcflurry/4/0.0.8/models_class1_allele_specific_single/'" + "'/Users/tim/Library/Application Support/mhcflurry/4/0.1.0/models_class1_allele_specific_single/'" ] }, "execution_count": 5, @@ -226,8 +227,9 @@ ], "source": [ "# Make a Loader first\n", - "loader = mhcflurry.class1_allele_specific.load.Class1AlleleSpecificPredictorLoader(models_dir)\n", - "model = loader.from_allele_name(\"HLA-A0201\")\n", + "loader = mhcflurry.Class1SingleModelMultiAllelePredictor.load_from_download_directory(\n", + " models_dir)\n", + "model = loader.predictor_for_allele(\"HLA-A0201\")\n", "model.predict([\"SIINFEKL\", \"SIQNPEKP\", \"SYNFPEPI\"])" ] }, @@ -255,7 +257,7 @@ { "data": { "text/plain": [ - "Dataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401'])" + "AffinityMeasurementDataset(n=192550, alleles=['ELA-A1', 'Gogo-B0101', 'H-2-DB', 'H-2-DD', 'H-2-KB', 'H-2-KBM8', 'H-2-KD', 'H-2-KK', 'H-2-LD', 'H-2-LQ', 'HLA-A0101', 'HLA-A0201', 'HLA-A0202', 'HLA-A0203', 'HLA-A0204', 'HLA-A0205', 'HLA-A0206', 'HLA-A0207', 'HLA-A0210', 'HLA-A0211', 'HLA-A0212', 'HLA-A0216', 'HLA-A0217', 'HLA-A0219', 'HLA-A0250', 'HLA-A0301', 'HLA-A0302', 'HLA-A0319', 'HLA-A1', 'HLA-A11', 'HLA-A1101', 'HLA-A1102', 'HLA-A2', 'HLA-A2301', 'HLA-A24', 'HLA-A2402', 'HLA-A2403', 'HLA-A2501', 'HLA-A26', 'HLA-A2601', 'HLA-A2602', 'HLA-A2603', 'HLA-A2902', 'HLA-A3', 'HLA-A3/11', 'HLA-A3001', 'HLA-A3002', 'HLA-A3101', 'HLA-A3201', 'HLA-A3207', 'HLA-A3215', 'HLA-A3301', 'HLA-A6601', 'HLA-A6801', 'HLA-A6802', 'HLA-A6823', 'HLA-A6901', 'HLA-A7401', 'HLA-A8001', 'HLA-B0702', 'HLA-B0801', 'HLA-B0802', 'HLA-B0803', 'HLA-B1401', 'HLA-B1402', 'HLA-B1501', 'HLA-B1502', 'HLA-B1503', 'HLA-B1509', 'HLA-B1517', 'HLA-B1542', 'HLA-B1801', 'HLA-B27', 'HLA-B2701', 'HLA-B2702', 'HLA-B2703', 'HLA-B2704', 'HLA-B2705', 'HLA-B2706', 'HLA-B2710', 'HLA-B2720', 'HLA-B3501', 'HLA-B3503', 'HLA-B3508', 'HLA-B3701', 'HLA-B3801', 'HLA-B39', 'HLA-B3901', 'HLA-B40', 'HLA-B4001', 'HLA-B4002', 'HLA-B4013', 'HLA-B4201', 'HLA-B4202', 'HLA-B44', 'HLA-B4402', 'HLA-B4403', 'HLA-B4501', 'HLA-B4506', 'HLA-B4601', 'HLA-B4801', 'HLA-B51', 'HLA-B5101', 'HLA-B5201', 'HLA-B5301', 'HLA-B5401', 'HLA-B5701', 'HLA-B5702', 'HLA-B5703', 'HLA-B58', 'HLA-B5801', 'HLA-B5802', 'HLA-B60', 'HLA-B62', 'HLA-B7', 'HLA-B7301', 'HLA-B8', 'HLA-B8101', 'HLA-B8301', 'HLA-BOLA102101', 'HLA-BOLA200801', 'HLA-BOLA201201', 'HLA-BOLA402401', 'HLA-BOLA601301', 'HLA-BOLA601302', 'HLA-BOLAHD6', 'HLA-C0303', 'HLA-C0401', 'HLA-C0501', 'HLA-C0602', 'HLA-C0702', 'HLA-C0802', 'HLA-C1', 'HLA-C1203', 'HLA-C1402', 'HLA-C1502', 'HLA-C4', 'HLA-E0101', 'HLA-E0103', 'HLA-EQCA100101', 'HLA-RT1A', 'HLA-RT1BL', 'HLA-SLA10401', 'Mamu-A01', 'Mamu-A02', 'Mamu-A07', 'Mamu-A100101', 'Mamu-A100201', 'Mamu-A101101', 'Mamu-A11', 'Mamu-A20102', 'Mamu-A2201', 'Mamu-A2601', 'Mamu-A70103', 'Mamu-B01', 'Mamu-B01704', 'Mamu-B03', 'Mamu-B04', 'Mamu-B06502', 'Mamu-B08', 'Mamu-B1001', 'Mamu-B17', 'Mamu-B3901', 'Mamu-B52', 'Mamu-B6601', 'Mamu-B8301', 'Mamu-B8701', 'Patr-A0101', 'Patr-A0301', 'Patr-A0401', 'Patr-A0602', 'Patr-A0701', 'Patr-A0901', 'Patr-B0101', 'Patr-B0901', 'Patr-B1301', 'Patr-B1701', 'Patr-B2401'])" ] }, "execution_count": 7, @@ -264,7 +266,7 @@ } ], "source": [ - "full_training_data = mhcflurry.dataset.Dataset.from_csv(\n", + "full_training_data = mhcflurry.AffinityMeasurementDataset.from_csv(\n", " mhcflurry.downloads.get_path(\"data_combined_iedb_kim2014\", \"combined_human_class1_dataset.csv\"))\n", "full_training_data" ] @@ -288,12 +290,12 @@ } ], "source": [ - "kim2014_full = mhcflurry.dataset.Dataset.from_csv(\n", + "kim2014_full = mhcflurry.AffinityMeasurementDataset.from_csv(\n", " mhcflurry.downloads.get_path(\"data_kim2014\", \"bdata.20130222.mhci.public.1.txt\"))\n", "\n", - "kim2014_train = mhcflurry.dataset.Dataset.from_csv(\n", + "kim2014_train = mhcflurry.AffinityMeasurementDataset.from_csv(\n", " mhcflurry.downloads.get_path(\"data_kim2014\", \"bdata.2009.mhci.public.1.txt\"))\n", - "kim2014_test = mhcflurry.dataset.Dataset.from_csv(\n", + "kim2014_test = mhcflurry.AffinityMeasurementDataset.from_csv(\n", " mhcflurry.downloads.get_path(\"data_kim2014\", \"bdata.2013.mhci.public.blind.1.txt\"))\n", "\n", "len(kim2014_full), len(kim2014_train), len(kim2014_test)" @@ -333,7 +335,7 @@ } ], "source": [ - "model = mhcflurry.class1_allele_specific.load.from_allele_name(\"HLA-A0201\")\n", + "model = loader.predictor_for_allele(\"HLA-A0201\")\n", "model.predict(kim2014_train.get_allele(\"HLA-A0201\").peptides)\n" ] }, @@ -464,26 +466,18 @@ " | Return str(self).\n", " | \n", " | encode_peptides(self, peptides)\n", - " | Parameters\n", - " | ----------\n", - " | peptides : str list\n", - " | Peptide strings of any length\n", - " | \n", - " | Encode peptides of any length into fixed length vectors.\n", - " | Returns 2d array of encoded peptides and 1d array indicating the\n", - " | original peptide index for each row.\n", " | \n", " | fit_dataset(self, dataset, pretraining_dataset=None, sample_censored_affinities=False, **kwargs)\n", " | Fit the model parameters on the given training data.\n", " | \n", " | Parameters\n", " | ----------\n", - " | dataset : Dataset\n", + " | dataset : AffinityMeasurementDataset\n", " | \n", - " | pretraining_dataset : Dataset\n", + " | pretraining_dataset : AffinityMeasurementDataset\n", " | \n", " | sample_censored_affinities : bool\n", - " | If a column named 'inequality' is in the Dataset then every\n", + " | If a column named 'inequality' is in the AffinityMeasurementDataset then every\n", " | peptide with a value of '>' on each training epoch, gets a\n", " | randomly sampled IC50 between its observed value and the\n", " | max_ic50 of the predictor. Default is False.\n", @@ -492,19 +486,14 @@ " | Extra arguments are passed on to the fit_encoded_kmer_arrays()\n", " | method.\n", " | \n", - " | predict_ic50_for_kmer_peptides(self, peptides)\n", - " | \n", - " | predict_scores(self, peptides, combine_fn=<function mean at 0x109180ae8>)\n", + " | predict_scores(self, peptides)\n", " | Given a list of peptides of any length, returns an array of predicted\n", " | normalized affinity values. Unlike IC50, a higher value here\n", " | means a stronger affinity. Peptides of lengths other than 9 are\n", " | transformed into a set of k-mers either by deleting or inserting\n", - " | amino acid characters. The prediction for a single peptide will be\n", + " | amino acid characters. The prediction for a single peptides will be\n", " | the average of expanded k-mers.\n", " | \n", - " | predict_scores_for_kmer_peptides(self, peptides)\n", - " | Predict binding affinity for 9mer peptides\n", - " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors inherited from mhcflurry.class1_allele_specific.class1_allele_specific_kmer_ic50_predictor_base.Class1AlleleSpecificKmerIC50PredictorBase:\n", " | \n", @@ -557,7 +546,7 @@ { "data": { "text/plain": [ - "Dataset(n=3040, alleles=['HLA-A3301'])" + "AffinityMeasurementDataset(n=3040, alleles=['HLA-A3301'])" ] }, "execution_count": 11, @@ -619,8 +608,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 1min 22s, sys: 1.13 s, total: 1min 24s\n", - "Wall time: 45.8 s\n" + "CPU times: user 1min 11s, sys: 5.66 s, total: 1min 16s\n", + "Wall time: 1min 12s\n" ] } ], @@ -660,7 +649,7 @@ { "data": { "text/plain": [ - "<matplotlib.text.Text at 0x122e50400>" + "<matplotlib.text.Text at 0x121829dd8>" ] }, "execution_count": 14, @@ -669,9 +658,9 @@ }, { "data": { - "image/png": "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\nQmCC\n", + "image/png": "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\nBieumzNQAAAAAElFTkSuQmCC\n", "text/plain": [ - "<matplotlib.figure.Figure at 0x122384da0>" + "<matplotlib.figure.Figure at 0x11d2d7da0>" ] }, "metadata": {}, @@ -756,9 +745,9 @@ { "data": { "text/plain": [ - "{'auc': 0.84099099099099106,\n", - " 'f1': 0.65531914893617027,\n", - " 'tau': 0.43387627983717181}" + "{'auc': 0.88567942942942945,\n", + " 'f1': 0.73814432989690715,\n", + " 'tau': 0.4912073299323329}" ] }, "execution_count": 16, @@ -798,12 +787,12 @@ "Help on function cross_validation_folds in module mhcflurry.class1_allele_specific.cross_validation:\n", "\n", "cross_validation_folds(train_data, alleles=None, n_folds=3, drop_similar_peptides=False, imputer=None, impute_kwargs={'min_observations_per_allele': 2, 'min_observations_per_peptide': 2}, parallel_backend=None)\n", - " Split a Dataset into n_folds cross validation folds for each allele,\n", + " Split a AffinityMeasurementDataset into n_folds cross validation folds for each allele,\n", " optionally performing imputation.\n", " \n", " Parameters\n", " -----------\n", - " train_data : mhcflurry.Dataset\n", + " train_data : mhcflurry.AffinityMeasurementDataset\n", " \n", " alleles : string list, optional\n", " Alleles to run cross validation on. Default: all alleles in\n", @@ -821,7 +810,7 @@ " Imputer to use. If not specified, no imputation is done.\n", " \n", " impute_kwargs : dict, optional\n", - " Additional kwargs to pass to mhcflurry.Dataset.impute_missing_values.\n", + " Additional kwargs to pass to mhcflurry.AffinityMeasurementDataset.impute_missing_values.\n", " \n", " parallel_backend : mhcflurry.parallelism.ParallelBackend, optional\n", " Futures implementation to use for running on multiple threads,\n", @@ -848,9 +837,9 @@ { "data": { "text/plain": [ - "[AlleleSpecificTrainTestFold(allele='HLA-A3301', train=Dataset(n=2026, alleles=['HLA-A3301']), imputed_train=None, test=Dataset(n=1014, alleles=['HLA-A3301'])),\n", - " AlleleSpecificTrainTestFold(allele='HLA-A3301', train=Dataset(n=2027, alleles=['HLA-A3301']), imputed_train=None, test=Dataset(n=1013, alleles=['HLA-A3301'])),\n", - " AlleleSpecificTrainTestFold(allele='HLA-A3301', train=Dataset(n=2027, alleles=['HLA-A3301']), imputed_train=None, test=Dataset(n=1013, alleles=['HLA-A3301']))]" + "[AlleleSpecificTrainTestFold(allele='HLA-A3301', train=AffinityMeasurementDataset(n=2026, alleles=['HLA-A3301']), imputed_train=None, test=AffinityMeasurementDataset(n=1014, alleles=['HLA-A3301'])),\n", + " AlleleSpecificTrainTestFold(allele='HLA-A3301', train=AffinityMeasurementDataset(n=2027, alleles=['HLA-A3301']), imputed_train=None, test=AffinityMeasurementDataset(n=1013, alleles=['HLA-A3301'])),\n", + " AlleleSpecificTrainTestFold(allele='HLA-A3301', train=AffinityMeasurementDataset(n=2027, alleles=['HLA-A3301']), imputed_train=None, test=AffinityMeasurementDataset(n=1013, alleles=['HLA-A3301']))]" ] }, "execution_count": 18, @@ -914,7 +903,7 @@ "text": [ "Searching over 2 models.\n", "First model: \n", - "{'output_activation': 'sigmoid', 'pretrain_decay': 'numpy.exp(-epoch)', 'n_training_epochs': 250, 'embedding_output_dim': 32, 'optimizer': 'rmsprop', 'loss': 'mse', 'fraction_negative': 0.1, 'batch_normalization': True, 'dropout_probability': 0.0, 'init': 'glorot_uniform', 'activation': 'tanh', 'batch_size': 128, 'impute': False, 'kmer_size': 9, 'max_ic50': 50000.0, 'layer_sizes': [8]}\n" + "{'kmer_size': 9, 'n_training_epochs': 250, 'loss': 'mse', 'max_ic50': 50000.0, 'fraction_negative': 0.1, 'layer_sizes': [8], 'batch_size': 128, 'activation': 'tanh', 'init': 'glorot_uniform', 'dropout_probability': 0.0, 'pretrain_decay': 'numpy.exp(-epoch)', 'optimizer': 'rmsprop', 'impute': False, 'embedding_output_dim': 32, 'batch_normalization': True, 'output_activation': 'sigmoid'}\n" ] } ], @@ -995,20 +984,20 @@ " <th>test_size</th>\n", " <th>imputed_train_size</th>\n", " <th>train_tau</th>\n", - " <th>train_auc</th>\n", " <th>train_f1</th>\n", + " <th>train_auc</th>\n", " <th>test_tau</th>\n", " <th>...</th>\n", - " <th>model_fraction_negative</th>\n", - " <th>model_batch_normalization</th>\n", - " <th>model_dropout_probability</th>\n", - " <th>model_init</th>\n", - " <th>model_activation</th>\n", " <th>model_batch_size</th>\n", + " <th>model_activation</th>\n", + " <th>model_init</th>\n", + " <th>model_dropout_probability</th>\n", + " <th>model_pretrain_decay</th>\n", + " <th>model_optimizer</th>\n", " <th>model_impute</th>\n", - " <th>model_kmer_size</th>\n", - " <th>model_max_ic50</th>\n", - " <th>model_layer_sizes</th>\n", + " <th>model_embedding_output_dim</th>\n", + " <th>model_batch_normalization</th>\n", + " <th>model_output_activation</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", @@ -1020,21 +1009,21 @@ " <td>2026</td>\n", " <td>1014</td>\n", " <td>None</td>\n", - " <td>0.710233</td>\n", - " <td>0.989589</td>\n", - " <td>0.902256</td>\n", - " <td>0.429803</td>\n", + " <td>0.705331</td>\n", + " <td>0.887640</td>\n", + " <td>0.988062</td>\n", + " <td>0.408410</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[8]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", @@ -1044,21 +1033,21 @@ " <td>2026</td>\n", " <td>1014</td>\n", " <td>None</td>\n", - " <td>0.747597</td>\n", - " <td>0.993938</td>\n", - " <td>0.919708</td>\n", - " <td>0.425610</td>\n", + " <td>0.743330</td>\n", + " <td>0.907407</td>\n", + " <td>0.994428</td>\n", + " <td>0.425253</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[12]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", @@ -1068,21 +1057,21 @@ " <td>2027</td>\n", " <td>1013</td>\n", " <td>None</td>\n", - " <td>0.705507</td>\n", - " <td>0.990185</td>\n", - " <td>0.882466</td>\n", - " <td>0.430678</td>\n", + " <td>0.698517</td>\n", + " <td>0.877470</td>\n", + " <td>0.990193</td>\n", + " <td>0.434371</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[8]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", @@ -1092,21 +1081,21 @@ " <td>2027</td>\n", " <td>1013</td>\n", " <td>None</td>\n", - " <td>0.745532</td>\n", - " <td>0.993875</td>\n", - " <td>0.924812</td>\n", - " <td>0.395103</td>\n", + " <td>0.745956</td>\n", + " <td>0.874227</td>\n", + " <td>0.994672</td>\n", + " <td>0.444289</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[12]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", @@ -1116,21 +1105,21 @@ " <td>2027</td>\n", " <td>1013</td>\n", " <td>None</td>\n", - " <td>0.709275</td>\n", - " <td>0.992395</td>\n", - " <td>0.894531</td>\n", - " <td>0.441365</td>\n", + " <td>0.703742</td>\n", + " <td>0.859961</td>\n", + " <td>0.988574</td>\n", + " <td>0.440792</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[8]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", @@ -1140,21 +1129,21 @@ " <td>2027</td>\n", " <td>1013</td>\n", " <td>None</td>\n", - " <td>0.743498</td>\n", - " <td>0.994674</td>\n", - " <td>0.873518</td>\n", - " <td>0.439221</td>\n", + " <td>0.741095</td>\n", + " <td>0.912801</td>\n", + " <td>0.993722</td>\n", + " <td>0.443505</td>\n", " <td>...</td>\n", - " <td>0.1</td>\n", - " <td>True</td>\n", - " <td>0.0</td>\n", - " <td>glorot_uniform</td>\n", - " <td>tanh</td>\n", " <td>128</td>\n", + " <td>tanh</td>\n", + " <td>glorot_uniform</td>\n", + " <td>0.0</td>\n", + " <td>numpy.exp(-epoch)</td>\n", + " <td>rmsprop</td>\n", " <td>False</td>\n", - " <td>9</td>\n", - " <td>50000.0</td>\n", - " <td>[12]</td>\n", + " <td>32</td>\n", + " <td>True</td>\n", + " <td>sigmoid</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", @@ -1170,45 +1159,45 @@ "4 HLA-A3301 2 0 2027 1013 None \n", "5 HLA-A3301 2 1 2027 1013 None \n", "\n", - " train_tau train_auc train_f1 test_tau ... \\\n", - "0 0.710233 0.989589 0.902256 0.429803 ... \n", - "1 0.747597 0.993938 0.919708 0.425610 ... \n", - "2 0.705507 0.990185 0.882466 0.430678 ... \n", - "3 0.745532 0.993875 0.924812 0.395103 ... \n", - "4 0.709275 0.992395 0.894531 0.441365 ... \n", - "5 0.743498 0.994674 0.873518 0.439221 ... \n", + " train_tau train_f1 train_auc test_tau ... \\\n", + "0 0.705331 0.887640 0.988062 0.408410 ... \n", + "1 0.743330 0.907407 0.994428 0.425253 ... \n", + "2 0.698517 0.877470 0.990193 0.434371 ... \n", + "3 0.745956 0.874227 0.994672 0.444289 ... \n", + "4 0.703742 0.859961 0.988574 0.440792 ... \n", + "5 0.741095 0.912801 0.993722 0.443505 ... \n", "\n", - " model_fraction_negative model_batch_normalization \\\n", - "0 0.1 True \n", - "1 0.1 True \n", - "2 0.1 True \n", - "3 0.1 True \n", - "4 0.1 True \n", - "5 0.1 True \n", + " model_batch_size model_activation model_init \\\n", + "0 128 tanh glorot_uniform \n", + "1 128 tanh glorot_uniform \n", + "2 128 tanh glorot_uniform \n", + "3 128 tanh glorot_uniform \n", + "4 128 tanh glorot_uniform \n", + "5 128 tanh glorot_uniform \n", "\n", - " model_dropout_probability model_init model_activation \\\n", - "0 0.0 glorot_uniform tanh \n", - "1 0.0 glorot_uniform tanh \n", - "2 0.0 glorot_uniform tanh \n", - "3 0.0 glorot_uniform tanh \n", - "4 0.0 glorot_uniform tanh \n", - "5 0.0 glorot_uniform tanh \n", + " model_dropout_probability model_pretrain_decay model_optimizer \\\n", + "0 0.0 numpy.exp(-epoch) rmsprop \n", + "1 0.0 numpy.exp(-epoch) rmsprop \n", + "2 0.0 numpy.exp(-epoch) rmsprop \n", + "3 0.0 numpy.exp(-epoch) rmsprop \n", + "4 0.0 numpy.exp(-epoch) rmsprop \n", + "5 0.0 numpy.exp(-epoch) rmsprop \n", "\n", - " model_batch_size model_impute model_kmer_size model_max_ic50 \\\n", - "0 128 False 9 50000.0 \n", - "1 128 False 9 50000.0 \n", - "2 128 False 9 50000.0 \n", - "3 128 False 9 50000.0 \n", - "4 128 False 9 50000.0 \n", - "5 128 False 9 50000.0 \n", + " model_impute model_embedding_output_dim model_batch_normalization \\\n", + "0 False 32 True \n", + "1 False 32 True \n", + "2 False 32 True \n", + "3 False 32 True \n", + "4 False 32 True \n", + "5 False 32 True \n", "\n", - " model_layer_sizes \n", - "0 [8] \n", - "1 [12] \n", - "2 [8] \n", - "3 [12] \n", - "4 [8] \n", - "5 [12] \n", + " model_output_activation \n", + "0 sigmoid \n", + "1 sigmoid \n", + "2 sigmoid \n", + "3 sigmoid \n", + "4 sigmoid \n", + "5 sigmoid \n", "\n", "[6 rows x 31 columns]" ] @@ -1266,8 +1255,8 @@ "data": { "text/plain": [ "model_num\n", - "0 0.859859\n", - "1 0.847004\n", + "0 0.841541\n", + "1 0.849979\n", "Name: test_auc, dtype: float64" ] }, diff --git a/mhcflurry/__init__.py b/mhcflurry/__init__.py index a2b1d664cabb8f417700ef252abf27c73d01353c..bb50dabcd968bf7ce5460a0668b9bae8b5c322ca 100644 --- a/mhcflurry/__init__.py +++ b/mhcflurry/__init__.py @@ -14,7 +14,11 @@ from .class1_allele_specific.class1_binding_predictor import ( Class1BindingPredictor) -from .predict import predict +from .prediction import predict +from .affinity_measurement_dataset import AffinityMeasurementDataset +from .class1_allele_specific_ensemble import Class1EnsembleMultiAllelePredictor +from .class1_allele_specific import Class1SingleModelMultiAllelePredictor +from .measurement_collection import MeasurementCollection from . import parallelism __version__ = "0.2.0" @@ -23,5 +27,9 @@ __all__ = [ "Class1BindingPredictor", "predict", "parallelism", + "AffinityMeasurementDataset", + "Class1EnsembleMultiAllelePredictor", + "Class1SingleModelMultiAllelePredictor", + "MeasurementCollection", "__version__", ] diff --git a/mhcflurry/dataset.py b/mhcflurry/affinity_measurement_dataset.py similarity index 92% rename from mhcflurry/dataset.py rename to mhcflurry/affinity_measurement_dataset.py index 43fff5c96eff9ea0d25f896098254aab711c9029..757e51ed7895924a7f040873f43b7f76fb09b52b 100644 --- a/mhcflurry/dataset.py +++ b/mhcflurry/affinity_measurement_dataset.py @@ -37,12 +37,15 @@ from .imputation_helpers import ( ) -class Dataset(object): - +class AffinityMeasurementDataset(object): """ Peptide-MHC binding dataset with helper methods for constructing different representations (arrays, DataFrames, dictionaries, &c). + This class is specific for affinity measurements (IC50s), whereas the + MeasurementCollection class supports both affinitites and other + measurement types like mass spec hits. + Design considerations: - want to allow multiple measurements for each pMHC pair (which can be dynamically combined) @@ -50,7 +53,7 @@ class Dataset(object): """ def __init__(self, df): """ - Constructs a DataSet from a pandas DataFrame with the following + Constructs a AffinityMeasurementDataset from a pandas DataFrame with the following columns: - allele - peptide @@ -89,7 +92,7 @@ class Dataset(object): def to_dataframe(self): """ - Returns DataFrame representation of data contained in Dataset + Returns DataFrame representation of data contained in AffinityMeasurementDataset """ return self._df @@ -125,7 +128,7 @@ class Dataset(object): return len(self.to_dataframe()) def __str__(self): - return "Dataset(n=%d, alleles=%s)" % ( + return "AffinityMeasurementDataset(n=%d, alleles=%s)" % ( len(self), list(sorted(self.unique_alleles()))) def __repr__(self): @@ -136,7 +139,7 @@ class Dataset(object): Two datasets are equal if they contain the same number of samples with the same properties and values. """ - if type(other) is not Dataset: + if type(other) is not AffinityMeasurementDataset: return False elif len(self) != len(other): return False @@ -180,13 +183,13 @@ class Dataset(object): def unique_alleles(self): """ - Returns the set of allele names contained in this Dataset. + Returns the set of allele names contained in this AffinityMeasurementDataset. """ return set(self.alleles) def unique_peptides(self): """ - Returns the set of peptide sequences contained in this Dataset. + Returns the set of peptide sequences contained in this AffinityMeasurementDataset. """ return set(self.peptides) @@ -202,11 +205,11 @@ class Dataset(object): entries just for that allele. """ for (allele_name, group_df) in self.to_dataframe().groupby("allele"): - yield (allele_name, Dataset(group_df)) + yield (allele_name, AffinityMeasurementDataset(group_df)) def groupby_allele_dictionary(self): """ - Returns dictionary mapping each allele name to a Dataset containing + Returns dictionary mapping each allele name to a AffinityMeasurementDataset containing only entries from that allele. """ return dict(self.groupby_allele()) @@ -314,7 +317,7 @@ class Dataset(object): @classmethod def from_single_allele_dataframe(cls, allele_name, single_allele_df): """ - Construct a Dataset from a single MHC allele's DataFrame + Construct a AffinityMeasurementDataset from a single MHC allele's DataFrame """ df = single_allele_df.copy() df["allele"] = allele_name @@ -326,7 +329,7 @@ class Dataset(object): allele_to_peptide_to_affinity_dict): """ Given nested dictionaries mapping allele -> peptide -> affinity, - construct a Dataset with uniform sample weights. + construct a AffinityMeasurementDataset with uniform sample weights. """ alleles = [] peptides = [] @@ -344,7 +347,7 @@ class Dataset(object): @classmethod def create_empty(cls): """ - Returns an empty Dataset containing no pMHC entries. + Returns an empty AffinityMeasurementDataset containing no pMHC entries. """ return cls.from_nested_dictionary({}) @@ -355,7 +358,7 @@ class Dataset(object): peptide_to_affinity_dict): """ Given a peptide->affinity dictionary for a single allele, - create a Dataset. + create a AffinityMeasurementDataset. """ return cls.from_nested_dictionary({allele_name: peptide_to_affinity_dict}) @@ -382,7 +385,7 @@ class Dataset(object): def get_allele(self, allele_name): """ - Get Dataset for a single allele + Get AffinityMeasurementDataset for a single allele """ if allele_name not in self.unique_alleles(): raise KeyError("Allele '%s' not found, available alleles: %s" % ( @@ -393,7 +396,7 @@ class Dataset(object): def get_alleles(self, allele_names): """ - Restrict Dataset to several allele names. + Restrict AffinityMeasurementDataset to several allele names. """ datasets = [] for allele_name in allele_names: @@ -446,7 +449,7 @@ class Dataset(object): weight = row["sample_weight"] # we're either going to create a fresh original peptide column # or extend the existing original peptide tuple that tracks - # the provenance of entries in the new Dataset + # the provenance of entries in the new AffinityMeasurementDataset original_peptide = row.get("original_peptide") if original_peptide is None: original_peptide = () @@ -569,14 +572,14 @@ class Dataset(object): def slice(self, indices): """ - Create a new Dataset by slicing through all columns of this dataset + Create a new AffinityMeasurementDataset by slicing through all columns of this dataset with the given indices. """ indices = np.asarray(indices) max_index = indices.max() n_total = len(self) if max_index >= len(self): - raise ValueError("Invalid index %d for Dataset of size %d" % ( + raise ValueError("Invalid index %d for AffinityMeasurementDataset of size %d" % ( max_index, n_total)) df = self.to_dataframe() @@ -587,7 +590,7 @@ class Dataset(object): def random_split(self, n=None, stratify_fn=None): """ - Randomly split the Dataset into smaller Dataset objects. + Randomly split the AffinityMeasurementDataset into smaller AffinityMeasurementDataset objects. Parameters ---------- @@ -598,7 +601,7 @@ class Dataset(object): Function that takes a row and returns bool, stratifying sampling into two groups. - Returns a pair of Dataset objects. + Returns a pair of AffinityMeasurementDataset objects. """ n_total = len(self) if n is None: @@ -646,7 +649,7 @@ class Dataset(object): test_samples = self test_sample_indices = np.arange(n_total) elif test_allele not in self.unique_alleles(): - raise ValueError("Allele '%s' not in Dataset" % test_allele) + raise ValueError("Allele '%s' not in AffinityMeasurementDataset" % test_allele) else: test_sample_indices = np.where(self.alleles == test_allele)[0] @@ -685,7 +688,7 @@ class Dataset(object): """ Split an allele into training and test sets, and then impute values for peptides missing from the training set using data from other alleles - in this Dataset. + in this AffinityMeasurementDataset. (apologies for the wordy name, this turns out to be a common operation) @@ -698,13 +701,13 @@ class Dataset(object): Size of the training set to return for this allele. stratify_fn : function - Function mapping from rows of the Dataset to booleans for stratifying + Function mapping from rows of the AffinityMeasurementDataset to booleans for stratifying by two groups. **kwargs : dict - Extra keyword arguments passed to Dataset.impute_missing_values + Extra keyword arguments passed to AffinityMeasurementDataset.impute_missing_values - Returns three Dataset objects: + Returns three AffinityMeasurementDataset objects: - training set with original pMHC affinities for given allele - larger imputed training set for given allele - test set @@ -729,7 +732,7 @@ class Dataset(object): The two arguments are assumed to be the same length. - Returns Dataset of equal or smaller size. + Returns AffinityMeasurementDataset of equal or smaller size. """ if len(alleles) != len(peptides): raise ValueError( @@ -746,7 +749,7 @@ class Dataset(object): allele_peptide_pairs : list of (str, str) tuples The two arguments are assumed to be the same length. - Returns Dataset of equal or smaller size. + Returns AffinityMeasurementDataset of equal or smaller size. """ require_iterable_of(allele_peptide_pairs, tuple) keys_to_remove_set = set(allele_peptide_pairs) @@ -763,7 +766,7 @@ class Dataset(object): Parameters ---------- - other_dataset : Dataset + other_dataset : AffinityMeasurementDataset Returns a new Dataset object of equal or lesser size. """ @@ -792,7 +795,7 @@ class Dataset(object): of floats and replaces some or all NaN values with synthetic affinities. - log_transform : function + log_transform : bool Transform affinities with to log10 values before imputation (and then transform back afterward). @@ -802,7 +805,7 @@ class Dataset(object): min_observations_per_allele : int Drop allele columns with fewer than this number of observed values. - Returns Dataset with original pMHC affinities and additional + Returns AffinityMeasurementDataset with original pMHC affinities and additional synthetic samples. """ if isinstance(imputation_method, string_types): diff --git a/mhcflurry/antigen_presentation/__init__.py b/mhcflurry/antigen_presentation/__init__.py index 0b544c71ac10883f5ce56a506171a020bfd88b2d..7406a57d6d863243870d0e09b0594a88e5828602 100644 --- a/mhcflurry/antigen_presentation/__init__.py +++ b/mhcflurry/antigen_presentation/__init__.py @@ -1,9 +1,10 @@ -from .presentation_model import PresentationModel +from .presentation_model import PresentationModel, build_presentation_models from .percent_rank_transform import PercentRankTransform from . import presentation_component_models, decoy_strategies __all__ = [ "PresentationModel", + "build_presentation_models", "PercentRankTransform", "presentation_component_models", "decoy_strategies", diff --git a/mhcflurry/antigen_presentation/presentation_component_models/expression.py b/mhcflurry/antigen_presentation/presentation_component_models/expression.py index 0c4b516ac9fb82b500247dc89413349dff57d54b..22e1abb0d34b38a2e7dd9f270771bb47be8f7e27 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/expression.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/expression.py @@ -25,7 +25,7 @@ class Expression(PresentationComponentModel): group in expression_values.columns for group in experiment_to_expression_group.values()) - assert_no_null(experiment_to_expression_group) + assert_no_null(expression_values) self.experiment_to_expression_group = experiment_to_expression_group self.expression_values = expression_values diff --git a/mhcflurry/antigen_presentation/presentation_component_models/fixed_affinity_predictions.py b/mhcflurry/antigen_presentation/presentation_component_models/fixed_affinity_predictions.py index 3a4a29b10e6e638c68cb29bba4361df0aa26abd2..0680dde4abe83d588c9ea24e7941fb934ba8bbe7 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/fixed_affinity_predictions.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/fixed_affinity_predictions.py @@ -16,6 +16,9 @@ class FixedAffinityPredictions(PresentationComponentModel): - "value", "percentile_rank" (IC50 and percent rank) - peptide (string) - allele (string) + + name : string + Used to name output columns and in debug messages """ def __init__( diff --git a/mhcflurry/antigen_presentation/presentation_component_models/mhc_binding_component_model_base.py b/mhcflurry/antigen_presentation/presentation_component_models/mhc_binding_component_model_base.py index a5a3d3c10122261be5f377293503eb5dea82bb97..fdceb8833cfb65ab70ac7413d85247278625cb17 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/mhc_binding_component_model_base.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/mhc_binding_component_model_base.py @@ -47,7 +47,7 @@ class MHCBindingComponentModelBase(PresentationComponentModel): fallback_predictor : function: (allele, peptides) -> predictions Used when missing an allele. - iedb_dataset : mhcflurry.Dataset + iedb_dataset : mhcflurry.AffinityMeasurementDataset IEDB data for this allele. If not specified no iedb data is used. decoys_per_hit : int diff --git a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_released.py b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_released.py index fc401e32a20a1d12e8226a8536dc2557f148b47a..d05aeddd2606b723e4373150e0c95ea68644ffa6 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_released.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_released.py @@ -4,8 +4,9 @@ import numpy import pandas from ...common import normalize_allele_name -from ...predict import predict +from ...prediction import predict from ..percent_rank_transform import PercentRankTransform +from ...peptide_encoding import encode_peptides from .presentation_component_model import PresentationComponentModel @@ -21,15 +22,22 @@ class MHCflurryReleased(PresentationComponentModel): random_peptides_for_percent_rank : list of string If specified, then percentile rank will be calibrated and emitted using the given peptides. + + predictor : Class1EnsembleMultiAllelePredictor-like object + Predictor to use. """ def __init__( self, experiment_to_alleles, random_peptides_for_percent_rank=None, + predictor=None, + predictor_name="mhcflurry_released", **kwargs): PresentationComponentModel.__init__(self, **kwargs) self.experiment_to_alleles = experiment_to_alleles + self.predictor = predictor + self.predictor_name = predictor_name if random_peptides_for_percent_rank is None: self.percent_rank_transforms = None self.random_peptides_for_percent_rank = None @@ -39,9 +47,9 @@ class MHCflurryReleased(PresentationComponentModel): random_peptides_for_percent_rank) def column_names(self): - columns = ['mhcflurry_released_affinity'] + columns = [self.predictor_name + '_affinity'] if self.percent_rank_transforms is not None: - columns.append('mhcflurry_released_percentile_rank') + columns.append(self.predictor_name + '_percentile_rank') return columns def requires_fitting(self): @@ -59,15 +67,18 @@ class MHCflurryReleased(PresentationComponentModel): .Prediction.values) def predict_min_across_alleles(self, alleles, peptides): - alleles = [ + alleles = list(set([ normalize_allele_name(allele) for allele in alleles - ] - df = predict(alleles, numpy.unique(numpy.array(peptides))) + ])) + df = predict( + alleles, + peptides, + predictor=self.predictor) pivoted = df.pivot(index='Peptide', columns='Allele') pivoted.columns = pivoted.columns.droplevel() result = { - 'mhcflurry_released_affinity': ( + self.predictor_name + '_affinity': ( pivoted.min(axis=1).ix[peptides].values) } if self.percent_rank_transforms is not None: @@ -77,8 +88,11 @@ class MHCflurryReleased(PresentationComponentModel): percentile_ranks[allele] = ( self.percent_rank_transforms[allele] .transform(pivoted[allele].values)) - result['mhcflurry_released_percentile_rank'] = ( + result[self.predictor_name + '_percentile_rank'] = ( percentile_ranks.min(axis=1).ix[peptides].values) + + for (key, value) in result.items(): + assert len(value) == len(peptides), (len(peptides), result) return result def predict_for_experiment(self, experiment_name, peptides): diff --git a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py index 0f0177e03cf4abbd344b4935cefb8aa01d15a4e3..47be4dca4959cc169c4110ba0c6c17ecae9f696f 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/mhcflurry_trained_on_hits.py @@ -3,7 +3,7 @@ from copy import copy import pandas from numpy import log, exp, nanmean -from ...dataset import Dataset +from ...affinity_measurement_dataset import AffinityMeasurementDataset from ...class1_allele_specific import Class1BindingPredictor from ...common import normalize_allele_name @@ -22,7 +22,7 @@ class MHCflurryTrainedOnHits(MHCBindingComponentModelBase): Parameters ------------ - iedb_dataset : mhcflurry.Dataset + iedb_dataset : mhcflurry.AffinityMeasurementDataset IEDB data for this allele. If not specified no iedb data is used. mhcflurry_hyperparameters : dict @@ -96,7 +96,7 @@ class MHCflurryTrainedOnHits(MHCBindingComponentModelBase): if self.iedb_dataset is not None: df = df.append(iedb_dataset_df, ignore_index=True) - dataset = Dataset( + dataset = AffinityMeasurementDataset( df.sample(frac=1)) # shuffle dataframe print("Train data: ", dataset) model = Class1BindingPredictor( diff --git a/mhcflurry/antigen_presentation/presentation_component_models/presentation_component_model.py b/mhcflurry/antigen_presentation/presentation_component_models/presentation_component_model.py index eb20fbd5d436747c779099084216b88177b736b7..00bc5a8df6f6fa0e04eff682e01cde4f38c55fac 100644 --- a/mhcflurry/antigen_presentation/presentation_component_models/presentation_component_model.py +++ b/mhcflurry/antigen_presentation/presentation_component_models/presentation_component_model.py @@ -187,7 +187,12 @@ class PresentationComponentModel(object): self.predict_for_experiment( str(peptides_df.iloc[0].experiment_name), peptides_df.peptide.values)) - assert len(return_value) == len(peptides_df), str(self) + assert len(return_value) == len(peptides_df), ( + "%d != %d" % (len(return_value), len(peptides_df)), + str(self), + peptides_df.peptide.nunique(), + return_value, + peptides_df) assert_no_null(return_value, str(self)) else: peptides_df = ( @@ -202,7 +207,9 @@ class PresentationComponentModel(object): result_df.loc[sub_df.index, "experiment_name"] == experiment_name).all() - unique_peptides = numpy.unique(sub_df.peptide.values) + unique_peptides = list(set(sub_df.peptide)) + if len(unique_peptides) == 0: + continue result_dict = self.predict_for_experiment( experiment_name, unique_peptides) diff --git a/mhcflurry/class1_allele_specific/__init__.py b/mhcflurry/class1_allele_specific/__init__.py index f66cf684c55738064c3a660a81f905d56f578506..228b33d9b11be41a360acd50510c6038c1ed1730 100644 --- a/mhcflurry/class1_allele_specific/__init__.py +++ b/mhcflurry/class1_allele_specific/__init__.py @@ -3,7 +3,11 @@ from __future__ import absolute_import from .class1_binding_predictor import Class1BindingPredictor from .train import train_across_models_and_folds, AlleleSpecificTrainTestFold from .cross_validation import cross_validation_folds -from .load import from_allele_name, supported_alleles +from .class1_single_model_multi_allele_predictor import ( + from_allele_name, + supported_alleles, + get_downloaded_predictor, + Class1SingleModelMultiAllelePredictor) __all__ = [ 'Class1BindingPredictor', @@ -12,4 +16,6 @@ __all__ = [ 'train_across_models_and_folds', 'from_allele_name', 'supported_alleles', + 'get_downloaded_predictor', + 'Class1SingleModelMultiAllelePredictor', ] diff --git a/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py b/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py index 875730c16c37935b4120302b6d8210e58e5d2c37..b309df00af2067a4db33b570555d2cab358a05f4 100644 --- a/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py +++ b/mhcflurry/class1_allele_specific/class1_allele_specific_kmer_ic50_predictor_base.py @@ -17,17 +17,14 @@ from __future__ import ( division, absolute_import, ) -from collections import defaultdict -import numpy as np from six import string_types -from ..peptide_encoding import fixed_length_index_encoding +from ..peptide_encoding import encode_peptides from ..amino_acid import ( amino_acids_with_unknown, common_amino_acids ) -from ..regression_target import regression_target_to_ic50 from ..ic50_predictor_base import IC50PredictorBase from ..hyperparameters import HyperparameterDefaults @@ -88,74 +85,25 @@ class Class1AlleleSpecificKmerIC50PredictorBase(IC50PredictorBase): return len(self.amino_acids) def encode_peptides(self, peptides): - """ - Parameters - ---------- - peptides : str list - Peptide strings of any length - - Encode peptides of any length into fixed length vectors. - Returns 2d array of encoded peptides and 1d array indicating the - original peptide index for each row. - """ - indices = [] - encoded_matrices = [] - for i, peptide in enumerate(peptides): - matrix, _, _, _ = fixed_length_index_encoding( - peptides=[peptide], - desired_length=self.kmer_size, - allow_unknown_amino_acids=self.allow_unknown_amino_acids) - encoded_matrices.append(matrix) - indices.extend([i] * len(matrix)) - combined_matrix = np.concatenate(encoded_matrices) - index_array = np.array(indices) - expected_shape = (len(index_array), self.kmer_size) - assert combined_matrix.shape == expected_shape, \ - "Expected shape %s but got %s" % ( - expected_shape, combined_matrix.shape) - return combined_matrix, index_array - - def predict_scores_for_kmer_peptides(self, peptides): - """ - Predict binding affinity for 9mer peptides - """ - if any(len(peptide) != self.kmer_size for peptide in peptides): - raise ValueError("Can only predict 9mer peptides") - X, _ = self.encode_peptides(peptides) - return self.predict_scores_for_kmer_encoded_array(X) - - def predict_ic50_for_kmer_peptides(self, peptides): - scores = self.predict_scores_for_kmer_peptides(peptides) - return regression_target_to_ic50(scores, max_ic50=self.max_ic50) + return encode_peptides( + peptides, kmer_size=self.kmer_size, allow_unknown_amino_acids=self.allow_unknown_amino_acids) - def predict_scores(self, peptides, combine_fn=np.mean): + def predict_scores(self, peptides): """ Given a list of peptides of any length, returns an array of predicted normalized affinity values. Unlike IC50, a higher value here means a stronger affinity. Peptides of lengths other than 9 are transformed into a set of k-mers either by deleting or inserting - amino acid characters. The prediction for a single peptide will be + amino acid characters. The prediction for a single peptides will be the average of expanded k-mers. """ if isinstance(peptides, string_types): raise TypeError("Input must be a list of peptides, not %s : %s" % ( peptides, type(peptides))) - input_matrix, original_peptide_indices = self.encode_peptides(peptides) - # peptides of lengths other than self.kmer_size get multiple - # predictions, which are then combined with the combine_fn argument - multiple_predictions_dict = defaultdict(list) - fixed_length_predictions = \ - self.predict_scores_for_kmer_encoded_array(input_matrix) - for i, yi in enumerate(fixed_length_predictions): - original_peptide_index = original_peptide_indices[i] - original_peptide = peptides[original_peptide_index] - multiple_predictions_dict[original_peptide].append(yi) - combined_predictions_dict = { - p: combine_fn(ys) if len(ys) > 1 else ys[0] - for (p, ys) in multiple_predictions_dict.items() - } - return np.array([combined_predictions_dict[p] for p in peptides]) + encoded_peptides = self.encode_peptides(peptides) + return encoded_peptides.combine_predictions( + self.predict_scores_for_kmer_encoded_array(encoded_peptides.encoded_matrix)) def fit_dataset( self, @@ -168,12 +116,12 @@ class Class1AlleleSpecificKmerIC50PredictorBase(IC50PredictorBase): Parameters ---------- - dataset : Dataset + dataset : AffinityMeasurementDataset - pretraining_dataset : Dataset + pretraining_dataset : AffinityMeasurementDataset sample_censored_affinities : bool - If a column named 'inequality' is in the Dataset then every + If a column named 'inequality' is in the AffinityMeasurementDataset then every peptide with a value of '>' on each training epoch, gets a randomly sampled IC50 between its observed value and the max_ic50 of the predictor. Default is False. diff --git a/mhcflurry/class1_allele_specific/class1_binding_predictor.py b/mhcflurry/class1_allele_specific/class1_binding_predictor.py index 3f68385c81e0f976712e0a5060ad2de434dc3898..31024b679e78ed058468fe480cfd73b9e216df52 100644 --- a/mhcflurry/class1_allele_specific/class1_binding_predictor.py +++ b/mhcflurry/class1_allele_specific/class1_binding_predictor.py @@ -114,24 +114,34 @@ class Class1BindingPredictor(Class1AlleleSpecificKmerIC50PredictorBase): def __getstate__(self): result = dict(self.__dict__) del result['model'] - with tempfile.NamedTemporaryFile(suffix='.hdf5', delete=True) as fd: - keras.models.save_model(self.model, fd.name, overwrite=True) - result['model_bytes'] = fd.read() + result['model_json'] = self.model.to_json() + result['model_weights'] = self.get_weights() return result def __setstate__(self, state): - model_bytes = state.pop('model_bytes') - self.__dict__.update(state) - fd = tempfile.NamedTemporaryFile(suffix='.hdf5', delete=False) + model_bytes = model_json = model_weights = None try: - fd.write(model_bytes) - - # HDF5 has issues when the file is open multiple times, so we close - # it here before loading it into keras. - fd.close() - self.model = keras.models.load_model(fd.name) - finally: - os.unlink(fd.name) + model_bytes = state.pop('model_bytes') + except KeyError: + model_json = state.pop('model_json') + model_weights = state.pop('model_weights') + self.__dict__.update(state) + + if model_bytes is not None: + # Old format + fd = tempfile.NamedTemporaryFile(suffix='.hdf5', delete=False) + try: + fd.write(model_bytes) + + # HDF5 has issues when the file is open multiple times, so we close + # it here before loading it into keras. + fd.close() + self.model = keras.models.load_model(fd.name) + finally: + os.unlink(fd.name) + else: + self.model = keras.models.model_from_json(model_json) + self.set_weights(model_weights) def get_weights(self): """ diff --git a/mhcflurry/class1_allele_specific/load.py b/mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py similarity index 62% rename from mhcflurry/class1_allele_specific/load.py rename to mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py index 619bd0f314ac817cf005668643241b3e156b1b6c..1dca8766306e3cc4faebfee478fc1dadf19176c7 100644 --- a/mhcflurry/class1_allele_specific/load.py +++ b/mhcflurry/class1_allele_specific/class1_single_model_multi_allele_predictor.py @@ -27,12 +27,12 @@ import pandas from ..downloads import get_path from ..common import normalize_allele_name, UnsupportedAllele -CACHED_LOADER = None +CACHED_PREDICTOR = None def from_allele_name(allele_name): """ - Load a predictor for an allele using the default loader. + Load a single-allele predictor. Parameters ---------- @@ -42,7 +42,7 @@ def from_allele_name(allele_name): ---------- Class1BindingPredictor """ - return get_loader_for_downloaded_models().from_allele_name(allele_name) + return get_downloaded_predictor().predictor_for_allele(allele_name) def supported_alleles(): @@ -50,26 +50,28 @@ def supported_alleles(): Return a list of the names of the alleles for which there are trained predictors in the default laoder. """ - return get_loader_for_downloaded_models().supported_alleles + return get_downloaded_predictor().supported_alleles -def get_loader_for_downloaded_models(): +def get_downloaded_predictor(): """ Return a Class1AlleleSpecificPredictorLoader that uses downloaded models. """ - global CACHED_LOADER + global CACHED_PREDICTOR # Some of the unit tests manipulate the downloads directory configuration # so get_path here may return different results in the same Python process. # For this reason we check the path and invalidate the loader if it's # different. path = get_path("models_class1_allele_specific_single") - if CACHED_LOADER is None or path != CACHED_LOADER.path: - CACHED_LOADER = Class1AlleleSpecificPredictorLoader(path) - return CACHED_LOADER + if CACHED_PREDICTOR is None or path != CACHED_PREDICTOR.path: + CACHED_PREDICTOR = ( + Class1SingleModelMultiAllelePredictor + .load_from_download_directory(path)) + return CACHED_PREDICTOR -class Class1AlleleSpecificPredictorLoader(object): +class Class1SingleModelMultiAllelePredictor(object): """ Factory for Class1BindingPredictor instances that are stored on disk using this directory structure: @@ -82,6 +84,10 @@ class Class1AlleleSpecificPredictorLoader(object): ... """ + @staticmethod + def load_from_download_directory(directory): + return Class1SingleModelMultiAllelePredictor(directory) + def __init__(self, path): """ Parameters @@ -96,31 +102,49 @@ class Class1AlleleSpecificPredictorLoader(object): self.supported_alleles = list(sorted(self.df.allele)) self.predictors_cache = {} - def from_allele_name(self, allele_name): + def predictor_for_allele(self, allele): """ Load a predictor for an allele. Parameters ---------- - allele_name : class I allele name + allele : class I allele name Returns ---------- Class1BindingPredictor """ - allele_name = normalize_allele_name(allele_name) - if allele_name not in self.predictors_cache: + allele = normalize_allele_name(allele) + if allele not in self.predictors_cache: try: - predictor_name = self.df.ix[allele_name].predictor_name + predictor_name = self.df.ix[allele].predictor_name except KeyError: raise UnsupportedAllele( "No models for allele '%s'. Alleles with models: %s" " in models file: %s" % ( - allele_name, + allele, ' '.join(self.supported_alleles), self.path_to_models_csv)) model_path = join(self.path, "models", predictor_name + ".pickle") with open(model_path, 'rb') as fd: - self.predictors_cache[allele_name] = pickle.load(fd) - return self.predictors_cache[allele_name] + self.predictors_cache[allele] = pickle.load(fd) + return self.predictors_cache[allele] + + def predict(self, measurement_collection): + if (measurement_collection.df.measurement_type != "affinity").any(): + raise ValueError("Only affinity measurements supported") + + result = pandas.Series( + index=measurement_collection.df.index) + for (allele, sub_df) in measurement_collection.df.groupby("allele"): + result.loc[sub_df.index] = self.predict_for_allele( + allele, sub_df.peptide.values) + assert not result.isnull().any() + return result + + def predict_for_allele(self, allele, peptides): + predictor = self.predictor_for_allele(allele) + result = predictor.predict(peptides) + assert len(result) == len(peptides) + return result diff --git a/mhcflurry/class1_allele_specific/cross_validation.py b/mhcflurry/class1_allele_specific/cross_validation.py index d2189377e0d9f28d4d608bda9186b9a6095b06e5..c819bc4e69fb589324db01f98f84f20ad453552b 100644 --- a/mhcflurry/class1_allele_specific/cross_validation.py +++ b/mhcflurry/class1_allele_specific/cross_validation.py @@ -102,12 +102,12 @@ def cross_validation_folds( }, parallel_backend=None): ''' - Split a Dataset into n_folds cross validation folds for each allele, + Split a AffinityMeasurementDataset into n_folds cross validation folds for each allele, optionally performing imputation. Parameters ----------- - train_data : mhcflurry.Dataset + train_data : mhcflurry.AffinityMeasurementDataset alleles : string list, optional Alleles to run cross validation on. Default: all alleles in @@ -125,7 +125,7 @@ def cross_validation_folds( Imputer to use. If not specified, no imputation is done. impute_kwargs : dict, optional - Additional kwargs to pass to mhcflurry.Dataset.impute_missing_values. + Additional kwargs to pass to mhcflurry.AffinityMeasurementDataset.impute_missing_values. parallel_backend : mhcflurry.parallelism.ParallelBackend, optional Futures implementation to use for running on multiple threads, @@ -193,8 +193,8 @@ def cross_validation_folds( imputation_args) # Here _replace is a method on named tuples that returns a new named - # tuple with the specified key set to the given value and all other key/ - # values the same as the original. + # tuple with the specified key set to the given value and all other + # key/values the same as the original. return [ result_fold._replace(imputed_train=imputation_result) for (result_fold, imputation_result) in zip( diff --git a/mhcflurry/class1_allele_specific/cv_and_train_command.py b/mhcflurry/class1_allele_specific/cv_and_train_command.py index dac1c4e1a5f02db16ef0e9eb5907a2db80cd04e2..3d0159f4b1d1f6bb3c37783a92dae7a89fe40bd2 100644 --- a/mhcflurry/class1_allele_specific/cv_and_train_command.py +++ b/mhcflurry/class1_allele_specific/cv_and_train_command.py @@ -49,7 +49,7 @@ import pickle import numpy from .. import parallelism -from ..dataset import Dataset +from ..affinity_measurement_dataset import AffinityMeasurementDataset from ..imputation_helpers import imputer_from_name from .cross_validation import cross_validation_folds from .train import ( @@ -216,12 +216,12 @@ def go(args): logging.info( "Subselected to %d model architectures" % len(model_architectures)) - train_data = Dataset.from_csv(args.train_data) + train_data = AffinityMeasurementDataset.from_csv(args.train_data) logging.info("Loaded training dataset: %s" % train_data) test_data = None if args.test_data: - test_data = Dataset.from_csv(args.test_data) + test_data = AffinityMeasurementDataset.from_csv(args.test_data) logging.info("Loaded testing dataset: %s" % test_data) if args.min_samples_per_allele: diff --git a/mhcflurry/class1_allele_specific/scoring.py b/mhcflurry/class1_allele_specific/scoring.py index 485d4303af62ea5a57e4e9b08e763640b74224a4..12cccc7fde4e308a0d16c5fa334272454538fbae 100644 --- a/mhcflurry/class1_allele_specific/scoring.py +++ b/mhcflurry/class1_allele_specific/scoring.py @@ -3,6 +3,7 @@ from __future__ import ( division, absolute_import, ) +import logging import sklearn import numpy import scipy @@ -44,18 +45,21 @@ def make_scores( ic50_y <= threshold_nm, y_pred, sample_weight=sample_weight) - except ValueError: + except ValueError as e: + logging.warning(e) auc = numpy.nan try: f1 = sklearn.metrics.f1_score( ic50_y <= threshold_nm, ic50_y_pred <= threshold_nm, sample_weight=sample_weight) - except ValueError: + except ValueError as e: + logging.warning(e) f1 = numpy.nan try: tau = scipy.stats.kendalltau(ic50_y_pred, ic50_y)[0] - except ValueError: + except ValueError as e: + logging.warning(e) tau = numpy.nan return dict( diff --git a/mhcflurry/class1_allele_specific/train.py b/mhcflurry/class1_allele_specific/train.py index 2c6d651924be67ecd43d2d638781e1b37461a9dd..cfc2234463ca6fe7e2aae6acca5fb98ac19fc248 100644 --- a/mhcflurry/class1_allele_specific/train.py +++ b/mhcflurry/class1_allele_specific/train.py @@ -52,10 +52,10 @@ def impute_and_select_allele(dataset, imputer, allele=None, **kwargs): Parameters ----------- - dataset : mhcflurry.Dataset + dataset : mhcflurry.AffinityMeasurementDataset imputer : object or string - See Dataset.impute_missing_values + See AffinityMeasurementDataset.impute_missing_values allele : string [optional] Allele name to subselect to after imputation @@ -121,14 +121,14 @@ def train_and_test_one_model_one_fold( ----------- model_description : dict of model parameters - train_dataset : mhcflurry.Dataset - Dataset to train on. Must include only one allele. + train_dataset : mhcflurry.AffinityMeasurementDataset + AffinityMeasurementDataset to train on. Must include only one allele. - test_dataset : mhcflurry.Dataset, optional - Dataset to test on. Must include only one allele. If not specified + test_dataset : mhcflurry.AffinityMeasurementDataset, optional + AffinityMeasurementDataset to test on. Must include only one allele. If not specified no testing is performed. - imputed_train_dataset : mhcflurry.Dataset, optional + imputed_train_dataset : mhcflurry.AffinityMeasurementDataset, optional Required only if model_description["impute"] == True return_train_scores : boolean diff --git a/mhcflurry/class1_allele_specific_ensemble/__init__.py b/mhcflurry/class1_allele_specific_ensemble/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4bc674059ab9c78731518cf12ea7aa7d5d4fba6b --- /dev/null +++ b/mhcflurry/class1_allele_specific_ensemble/__init__.py @@ -0,0 +1,12 @@ +from .class1_ensemble_multi_allele_predictor import ( + Class1EnsembleMultiAllelePredictor, + get_downloaded_predictor, + supported_alleles, + HYPERPARAMETER_DEFAULTS) + +__all__ = [ + "Class1EnsembleMultiAllelePredictor", + "get_downloaded_predictor", + "supported_alleles", + "HYPERPARAMETER_DEFAULTS", +] diff --git a/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py b/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py new file mode 100644 index 0000000000000000000000000000000000000000..c3ec0ae7f4c5b874ea09b1527958f68979520436 --- /dev/null +++ b/mhcflurry/class1_allele_specific_ensemble/class1_ensemble_multi_allele_predictor.py @@ -0,0 +1,791 @@ +# Copyright (c) 2016. Mount Sinai School of Medicine +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +This module defines a multi-allele Class I affinity predictor, +Class1EnsembleMultiAllelePredictor, whose predictions are generated by an +ensemble of Class1BindingPredictor instances. +""" +from __future__ import ( + print_function, + division, + absolute_import, +) + +import pickle +import os +import math +import logging +import collections +import time +from functools import partial + +import numpy +import pandas + +from ..hyperparameters import HyperparameterDefaults +from ..class1_allele_specific import Class1BindingPredictor, scoring +from ..downloads import get_path +from ..common import normalize_allele_name, UnsupportedAllele +from .. import parallelism, common +from ..peptide_encoding import encode_peptides + + +MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS = HyperparameterDefaults( + include_ms=True, + ms_hit_affinity=1.0, + ms_decoy_affinity=20000.0) + +IMPUTE_HYPERPARAMETER_DEFAULTS = HyperparameterDefaults( + impute_method='mice', + impute_min_observations_per_peptide=5, + impute_min_observations_per_allele=5, + imputer_args={"n_burn_in": 5, "n_imputations": 25}) + +HYPERPARAMETER_DEFAULTS = ( + HyperparameterDefaults( + impute=True, + architecture_num=None) + .extend(MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS) + .extend(IMPUTE_HYPERPARAMETER_DEFAULTS) + .extend(Class1BindingPredictor.hyperparameter_defaults)) + + +CACHED_PREDICTOR = None +CACHED_PREDICTOR_PATH = None + + +def supported_alleles(): + """ + Return a list of the names of the alleles for which there are trained + predictors in the default laoder. + """ + return get_downloaded_predictor().supported_alleles + + +def get_downloaded_predictor(): + """ + Return a Class1AlleleSpecificPredictorLoader that uses downloaded models. + """ + global CACHED_PREDICTOR, CACHED_PREDICTOR_PATH + + # Some of the unit tests manipulate the downloads directory configuration + # so get_path here may return different results in the same Python process. + # For this reason we check the path and invalidate the loader if it's + # different. + path = get_path("models_class1_allele_specific_ensemble") + if CACHED_PREDICTOR_PATH != path: + CACHED_PREDICTOR_PATH = path + CACHED_PREDICTOR = ( + Class1EnsembleMultiAllelePredictor + .load_from_download_directory(path)) + return CACHED_PREDICTOR + + +class Class1EnsembleMultiAllelePredictor(object): + """ + Multi-allele affinity predictor that uses ensembles of allele-specific + models. + + The individual models are selected via hyperparameter selection over a fixed + universe of models. + + Metadata for the individual models, including hyperparameters and test + scores are stored in the "manifest_df" dataframe. This dataframe is generated + in fit() and saved to / loaded from a CSV file when saving and loading + models. The individual allele-specific models are stored as .pickle files in + a directory, and named according to the `model_name` column in the manifest + dataframe. They are loaded lazily as they are needed and cached in the + `allele_to_models` attribute. + """ + @staticmethod + def load_from_download_directory(directory): + """ + Instantiate a Class1EnsembleMultiAllelePredictor from a directory with + structure: + + selected_models.csv + Manifest file describing selected models + + models/ + Subdir with model pickle files + + Parameters + ----------- + directory : string + Path to directory + + Returns + ----------- + Class1EnsembleMultiAllelePredictor + """ + return Class1EnsembleMultiAllelePredictor.load_fit( + os.path.join(directory, "models"), + os.path.join(directory, "selected_models.csv"), + ) + + @staticmethod + def load_fit(path_to_models_dir, path_to_manifest): + """ + Instantiate a Class1EnsembleMultiAllelePredictor from the given manifest + file and models directory. + + Parameters + ----------- + path_to_models_dir : string + Path to models/ directory + + path_to_manifest : string + Path to manifest csv file + + Returns + ----------- + Class1EnsembleMultiAllelePredictor + """ + manifest_df = pandas.read_csv(path_to_manifest, index_col="model_name") + # Convert string-serialized dicts into Python objects. + manifest_df["hyperparameters"] = [ + eval(s) for s in manifest_df.hyperparameters + ] + hyperparameters_to_search = list(dict( + (row.hyperparameters_architecture_num, row.hyperparameters) + for (_, row) in manifest_df.iterrows() + ).values()) + (ensemble_size,) = list(manifest_df.ensemble_size.unique()) + assert ( + manifest_df.ix[manifest_df.weight > 0] + .groupby("allele") + .weight + .count() == ensemble_size).all() + result = Class1EnsembleMultiAllelePredictor( + ensemble_size=ensemble_size, + hyperparameters_to_search=hyperparameters_to_search) + result.manifest_df = manifest_df + result.allele_to_models = {} + result.models_dir = os.path.abspath(path_to_models_dir) + return result + + def __init__(self, ensemble_size, hyperparameters_to_search): + """ + Parameters + ----------- + ensemble_size : int + Number of models in each allele's ensemble + + hyperparameters_to_search : list of dict + List of model architectures to perform model selection over + """ + self.imputation_hyperparameters = None # None indicates no imputation + self.hyperparameters_to_search = [] + for (num, params) in enumerate(hyperparameters_to_search): + params = dict(params) + params["architecture_num"] = num + params = HYPERPARAMETER_DEFAULTS.with_defaults(params) + self.hyperparameters_to_search.append(params) + + if params['impute']: + imputation_args = IMPUTE_HYPERPARAMETER_DEFAULTS.subselect( + params) + if self.imputation_hyperparameters is None: + self.imputation_hyperparameters = imputation_args + if self.imputation_hyperparameters != imputation_args: + raise NotImplementedError( + "Only one set of imputation parameters is supported: " + "%s != %s" % ( + str(self.imputation_hyperparameters), + str(imputation_args))) + + self.ensemble_size = ensemble_size + self.manifest_df = None + self.allele_to_models = None + self.models_dir = None + + @property + def supported_alleles(self): + """ + List of alleles this predictor has models for. + """ + return list( + self.manifest_df.ix[self.manifest_df.weight > 0].allele.unique()) + + def description(self): + """ + Human readable description of this model. + + Returns + ----------- + str + """ + lines = [] + kvs = [] + + def kv(key, value): + kvs.append((key, value)) + + kv("ensemble size", self.ensemble_size) + kv("num architectures considered", + len(self.hyperparameters_to_search)) + if self.allele_to_models is not None: + kv("supported alleles", " ".join(self.supported_alleles)) + kv("models dir", self.models_dir) + + lines.append("%s Ensemble: %s" % ( + "Untrained" if self.allele_to_models is None else "Trained", + self)) + for (key, value) in kvs: + lines.append("* %s: %s" % (key, value)) + + if self.manifest_df is not None: + models_used = self.manifest_df.ix[self.manifest_df.weight > 0] + + ignored_properties = set(['hyperparameters', 'scores']) + lines.append("* Attributes common to all models:") + unique = None + for col in models_used.columns: + unique = models_used[col].map(str).unique() + if len(unique) == 1: + lines.append("\t%s: %s" % (col, unique[0])) + ignored_properties.add(col) + if unique is None: + lines.append("\t(none)") + + for (allele, manifest_rows) in models_used.groupby("allele"): + lines.append("***") + for (i, (name, row)) in enumerate(manifest_rows.iterrows()): + lines.append("* %s model %d: %s" % ( + allele, i + 1, name)) + for (k, v) in row.iteritems(): + if k not in ignored_properties: + lines.append("\t%s: %s" % (k, v)) + lines.append("") + return "\n".join(lines) + + def models_for_allele(self, allele): + """ + Return the single-allele models in the ensemble for the given allele. + + Parameters + ----------- + allele : str + + Returns + ----------- + list of Class1BindingPredictor instances + """ + allele = normalize_allele_name(allele) + if allele not in self.allele_to_models: + model_names = self.manifest_df.ix[ + (self.manifest_df.weight > 0) & + (self.manifest_df.allele == allele) + ].index + if len(model_names) == 0: + raise UnsupportedAllele( + "Unsupported allele: %s. Supported alleles: %s" % ( + allele, + ", ".join(self.supported_alleles))) + assert len(model_names) == self.ensemble_size + models = [] + for name in model_names: + filename = os.path.join( + self.models_dir, "%s.pickle" % name) + with open(filename, 'rb') as fd: + model = pickle.load(fd) + assert model.name == name + models.append(model) + self.allele_to_models[allele] = models + result = self.allele_to_models[allele] + assert len(result) == self.ensemble_size + return result + + def write_fit( + self, + models_dir=None, + selected_models_csv=None, + all_models_csv=None): + """ + Write the models and metadata to disk. + + Any arguments left unspecified result in the corresponding file not + being written. + + The manifest CSV has a 'weight' column. The weight is set to 1.0 for + selected models and 0.0 for non-selected models. + + Parameters + ----------- + models_dir : str, optional + Path to dir in which to write models. + + selected_models_csv : str, optional + Path to selected models manifest csv. Descriptions and scores for + the selected models are written here. + + all_models_csv : str, optional + Path to manifest csv. Descriptions and scores for all models, both + selected and unselected, are written here. + """ + if all_models_csv: + self.manifest_df.to_csv(all_models_csv) + logging.debug("Wrote: %s" % all_models_csv) + if selected_models_csv: + self.manifest_df.ix[ + self.manifest_df.weight > 0 + ].to_csv(selected_models_csv) + logging.debug("Wrote: %s" % selected_models_csv) + + if models_dir: + models_written = [] + for (allele, models) in self.allele_to_models.items(): + for model in models: + filename = os.path.join( + models_dir, "%s.pickle" % model.name) + with open(filename, 'wb') as fd: + pickle.dump(model, fd) + logging.debug("Wrote: %s" % filename) + models_written.append(model.name) + assert set(models_written) == set( + self.manifest_df.ix[self.manifest_df.weight > 0].index) + + def predict_measurement_collection(self, measurement_collection): + """ + Return affinity predictions for the (allele, peptide) pairs given in + the specified measurement collection. + + Parameters + ----------- + measurement_collection : MeasurementCollection + + Returns + ----------- + pandas.Series of predictions corresponding to each row in + measurement_collection.df. + """ + result = pandas.Series( + index=measurement_collection.df.index) + for (allele, sub_df) in measurement_collection.df.groupby("allele"): + result.loc[sub_df.index] = self.predict_for_allele( + allele, sub_df.peptide.values) + assert not result.isnull().any() + return result + + def predict_for_allele(self, allele, peptides): + """ + Return affinity predictions for a list of peptides on a single allele. + + Parameters + ----------- + allele : string + + peptides : list of string + + Returns + ----------- + numpy array of predictions for each peptide + """ + encoded = encode_peptides(peptides) + values = [ + model.predict(encoded) + for model in self.models_for_allele(allele) + ] + + # Geometric mean + result = numpy.exp(numpy.nanmean(numpy.log(values), axis=0)) + assert len(result) == len(peptides) + return result + + def fit( + self, + measurement_collection, + parallel_backend=None, + target_tasks=1): + """ + Fit the predictor for any number of alleles. This method supports + parallel execution and works as follows. + + (1) Split the dataset into `ensemble_size` random (test, train) splits. + Stratify by allele so each allele has about the same fraction of + points in each split. + (2) Run imputation on each split (if any models require imputation) + (3) For each allele and each split, perform model selection over all + len(hyperparameters_to_search) architectures to pick the best model. + + The final predictor for allele is then an ensemble of the + `ensemble_size` best models, which in general have different + hyperparameters. + + Parameters + ----------- + measurement_collection : MeasurementCollection + training data + + parallel_backend : mhcflurry.parallelism.ParallelBackend instance + Implementation to use for parallel execution + + target_tasks : int, optional + Approximate number of parallel tasks to split the work into + """ + if parallel_backend is None: + parallel_backend = parallelism.get_default_backend() + + # Unique name for this fit to be used in the model filenames. + fit_name = time.asctime().replace(" ", "_") + assert len(measurement_collection.df) > 0 + + # (1) Split the data + splits = measurement_collection.half_splits( + self.ensemble_size, random_state=0) + + # (2) perform imputation if necessary + if self.imputation_hyperparameters is not None: + logging.info("Imputing: %d tasks, imputation args: %s" % ( + len(splits), str(self.imputation_hyperparameters))) + imputed_trains = list(parallel_backend.map( + partial( + impute, parallel_backend, self.imputation_hyperparameters), + [train for (train, test) in splits])) + logging.info("Imputation completed.") + else: + logging.info("No imputation required.") + imputed_trains = None + + assert len(splits) == self.ensemble_size, len(splits) + + alleles = set(measurement_collection.df.allele.unique()) + + # (3) Train and select models + total_work = ( + len(alleles) * + self.ensemble_size * + len(self.hyperparameters_to_search)) + work_per_task = int(math.ceil(total_work / target_tasks)) + + # tasks is a list of tuples. Each tuple represents a task and is the + # arguments to the fit_and_test() top-level function. + tasks = [] + for (fold_num, (train_split, test_split)) in enumerate(splits): + assert len(train_split.df) > 0 + assert len(test_split.df) > 0 + + # For efficiency, we pass around RemoteObject references to the + # train and test data, so they are only uploaded once. + train_remote_object = parallel_backend.remote_object(train_split) + test_remote_object = parallel_backend.remote_object(test_split) + imputed_train_remote_object = None + if imputed_trains is not None: + imputed_train_remote_object = imputed_trains[fold_num] + + # Buffer of alleles and models to use in the next task. + task_allele_model_pairs = [] + + # This function appends a new task to the tasks list and resets + # the task_allele_model_pairs buffer. + def make_task(): + if task_allele_model_pairs: + tasks.append(( + parallel_backend, + fold_num, + train_remote_object, + imputed_train_remote_object, + test_remote_object, + list(task_allele_model_pairs))) + task_allele_model_pairs[:] = [] + + assert all( + allele in set(train_split.df.allele.unique()) + for allele in alleles), ( + "%s not in %s" % ( + alleles, set(train_split.df.allele.unique()))) + assert all( + allele in set(test_split.df.allele.unique()) + for allele in alleles), ( + "%s not in %s" % ( + alleles, set(test_split.df.allele.unique()))) + + # Loop through models and alleles and generate new tasks whenever + # the current task's work exceeds work_per_task. + for model in self.hyperparameters_to_search: + for allele in alleles: + task_allele_model_pairs.append((allele, model)) + if len(task_allele_model_pairs) > work_per_task: + make_task() + make_task() + assert not task_allele_model_pairs + + allele_models_per_task = numpy.array([ + len(task[-1]) for task in tasks + ]) + logging.info( + "Training and scoring models: %d tasks (target was %d), " + "total work: %d alleles * %d ensemble size * %d models = %d, " + "allele/models per task: (min=%d mean=%f max=%d)" % ( + len(tasks), + target_tasks, + len(alleles), + self.ensemble_size, + len(self.hyperparameters_to_search), + total_work, + allele_models_per_task.min(), + allele_models_per_task.max(), + allele_models_per_task.mean())) + + assert len(tasks) > 0 + results = parallel_backend.map(call_fit_and_test, tasks) + + # Iterate over results, keeping track of the best model seen so far for + # each (fold, allele) pair. + # Also track metadata for all models in manifest_rows, which will be + # used to generate the manifest dataframe. + + # fold number -> allele -> best model + results_per_fold = [ + {} + for _ in range(len(splits)) + ] + next_model_num = 1 + manifest_rows = [] + for result in results: + logging.debug("Received task result with %d items." % len(result)) + for item in result: + item['model_name'] = "%s.%d.%s" % ( + item['allele'], next_model_num, fit_name) + next_model_num += 1 + + scores = pandas.Series(item['scores']) + item['summary_score'] = scores.fillna(0).sum() + fold_results = results_per_fold[item['fold_num']] + allele = item['allele'] + current_best = float('-inf') + if allele in fold_results: + current_best = fold_results[allele]['summary_score'] + + if item['summary_score'] > current_best: + logging.info("Updating current best: %s" % str(item)) + fold_results[allele] = item + + manifest_entry = dict(item) + del manifest_entry['model'] + for key in ['hyperparameters', 'scores']: + for (sub_key, value) in item[key].items(): + manifest_entry["%s_%s" % (key, sub_key)] = value + manifest_rows.append(manifest_entry) + + assert len(manifest_rows) > 0 + manifest_df = pandas.DataFrame(manifest_rows) + manifest_df.index = manifest_df.model_name + del manifest_df["model_name"] + manifest_df["weight"] = 0.0 + manifest_df["ensemble_size"] = self.ensemble_size + + logging.info("Done collecting results.") + + self.allele_to_models = collections.defaultdict(list) + for fold_results in results_per_fold: + assert set(fold_results) == set(alleles), ( + "%s != %s" % (set(fold_results), set(alleles))) + for (allele, item) in fold_results.items(): + model = item['model'].value + model.name = item['model_name'] + self.allele_to_models[allele].append(model) + manifest_df.loc[model.name, "weight"] = 1.0 + + self.manifest_df = manifest_df + +def call_fit_and_test(args): + """ + Call fit_and_test with the given arguments and return the result. + + This top-level function exists as a convenience for parallel execution of + fit_and_test using a parallel map. + """ + return fit_and_test(*args) + + +def fit_and_test( + parallel_backend, + fold_num, + train_mc_remote_object, + imputed_mc_remote_object, + test_mc_remote_object, + allele_and_hyperparameter_pairs): + """ + Fit and test one or more models on one or more alleles. When running + parallel jobs, this function is the entry point for each task. + + The input measurement collections and output trained models are passed + as kubeface.RemoteObject instances instead of by value. This is an + optimization that enables the master node to upload each measurement + collection only once and run many tasks that use it. For the returned models, + it allows the master to download only the models that actually perform best. + + Parameters + ----------- + + parallel_backend : mhcflurry.parallelism.ParallelBackend instance + Implementation to use for parallel execution + + fold_num : int + Which split of the data is being fit. For an ensemble of size 16, + 0 <= fold_num < 16. + + train_mc_remote_object : kubeface.RemoteObject of MeasurementCollection + train MeasurementCollection + + imputed_mc_remote_object : kubeface.RemoteObject of MeasurementCollection + imputed (pre-training) MeasurementCollection + + test_mc_remote_object : kubeface.RemoteObject of MeasurementCollection + test MeasurementCollection + + allele_and_hyperparameter_pairs : list of (string, dict) pairs + The "work" of the task: the alleles and model hyperparameters to train + and evaluate. + + Returns + ----------- + list of dict giving scores, metadata, and remote objects pointing to the + trained models + """ + + logging.info( + "Fit and test: fold=%d train=%s,%s test=%s alleles/models [%d]=%s" % ( + fold_num, + train_mc_remote_object.value, + imputed_mc_remote_object, + test_mc_remote_object.value, + len(allele_and_hyperparameter_pairs), + "\n".join("Allele: %s, hyperparameters: %s" % ( + allele, hyperparameters) + for (allele, hyperparameters) + in allele_and_hyperparameter_pairs))) + + assert len(train_mc_remote_object.value.df) > 0 + assert len(test_mc_remote_object.value.df) > 0 + + train_mc_hash = common.dataframe_cryptographic_hash( + train_mc_remote_object.value.df) + + imputed_mc_hash = None + if imputed_mc_remote_object is not None: + imputed_mc_hash = common.dataframe_cryptographic_hash( + imputed_mc_remote_object.value.df) + test_mc_hash = common.dataframe_cryptographic_hash( + test_mc_remote_object.value.df) + + common_result_entries = { + 'fold_num': fold_num, + 'all_alleles_train_data_hash': train_mc_hash, + 'all_alleles_imputed_data_hash': imputed_mc_hash, + 'all_alleles_test_data_hash': test_mc_hash, + } + + results = [] + for (i, (allele, all_hyperparameters)) in enumerate( + allele_and_hyperparameter_pairs): + logging.info("Model %d / %d: allele=%s hyperparameters=%s" % ( + i + 1, + len(allele_and_hyperparameter_pairs), + allele, + str(all_hyperparameters))) + + start = time.time() + measurement_collection_hyperparameters = ( + MEASUREMENT_COLLECTION_HYPERPARAMETER_DEFAULTS.subselect( + all_hyperparameters)) + model_hyperparameters = ( + Class1BindingPredictor.hyperparameter_defaults.subselect( + all_hyperparameters)) + + train_dataset = ( + train_mc_remote_object + .value + .select_allele(allele) + .to_dataset(**measurement_collection_hyperparameters)) + if all_hyperparameters['impute'] and ( + allele in + imputed_mc_remote_object.value.alleles): + imputed_train_dataset = ( + imputed_mc_remote_object + .value + .select_allele(allele) + .to_dataset(**measurement_collection_hyperparameters)) + else: + imputed_train_dataset = None + test_dataset = ( + test_mc_remote_object + .value + .select_allele(allele) + .to_dataset(**measurement_collection_hyperparameters)) + + assert len(train_dataset) > 0 + assert len(test_dataset) > 0 + + model = Class1BindingPredictor(**model_hyperparameters) + + train_start = time.time() + model.fit_dataset( + train_dataset, + pretraining_dataset=imputed_train_dataset) + train_end = time.time() + predictions = model.predict(test_dataset.peptides) + test_end = time.time() + assert len(test_dataset.affinities) == len(predictions) + scores = scoring.make_scores( + test_dataset.affinities, predictions) + + result = dict(common_result_entries) + result.update({ + 'allele': allele, + 'hyperparameters': all_hyperparameters, + 'model': parallel_backend.remote_object(model), + 'scores': scores, + 'train_size': len(train_dataset), + 'test_size': len(test_dataset), + 'pretrain_size': ( + 0 if imputed_train_dataset is None + else len(imputed_train_dataset)), + 'train_time': train_end - train_start, + 'predict_time': test_end - train_end, + }) + results.append(result) + logging.info("Done training model in %0.2f sec" % ( + time.time() - start)) + return results + + +def impute(parallel_backend, hyperparameters, measurement_collection): + """ + Run imputation on a measurement collection and return the resulting + measurement collection. When running parallel jobs, this function is the + entry point for each imputation task. + + Parameters + ----------- + + parallel_backend : mhcflurry.parallelism.ParallelBackend instance + Implementation to use for parallel execution + + hyperparameters : dict + Imputation hyperparameters. See IMPUTE_HYPERPARAMETER_DEFAULTS. + + measurement_collection : MeasurementCollection + data to run imputation on + + Returns + ----------- + RemoteObject of MeasurementCollection + + the imputed data + """ + return parallel_backend.remote_object( + measurement_collection.impute(**hyperparameters)) \ No newline at end of file diff --git a/mhcflurry/class1_allele_specific_ensemble/train_command.py b/mhcflurry/class1_allele_specific_ensemble/train_command.py new file mode 100644 index 0000000000000000000000000000000000000000..cabe40cd962b6a595fe17052534238c270c1b26b --- /dev/null +++ b/mhcflurry/class1_allele_specific_ensemble/train_command.py @@ -0,0 +1,232 @@ +# Copyright (c) 2016. Mount Sinai School of Medicine +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +''' +Ensemble class1 allele-specific model selection and training script. + +Procedure + - N (ensemble size) times: + - Split full dataset (all alleles) into 50/50 train and test splits. + Stratify by allele. + - Perform imputation on train subset. + - For each allele and architecture, train and test on splits. + + The final predictor is an ensemble of the N best predictors for each + allele. + +The parallelization is primary intended to be used with an +alternative concurrent.futures Executor such as dask-distributed that supports +multi-node parallelization. Theano in particular seems to have deadlocks +when running with single-node parallelization. +''' +from __future__ import ( + print_function, + division, + absolute_import, +) +import sys +import argparse +import json +import logging +import os +import traceback +import signal + +from .. import parallelism +from ..affinity_measurement_dataset import AffinityMeasurementDataset + +from .class1_ensemble_multi_allele_predictor import ( + Class1EnsembleMultiAllelePredictor) +from ..measurement_collection import MeasurementCollection + +parser = argparse.ArgumentParser( + description=__doc__, + formatter_class=argparse.RawDescriptionHelpFormatter) + +parser.add_argument( + "--train-data", + metavar="X.csv", + required=True, + help="Training data") + +parser.add_argument( + "--model-architectures", + metavar="X.json", + type=argparse.FileType('r'), + required=True, + help="JSON file giving model architectures to assess in cross validation." + " Can be - to read from stdin") + +parser.add_argument( + "--alleles", + metavar="ALLELE", + nargs="+", + default=None, + help="Use only the specified alleles") + +parser.add_argument( + "--out-manifest", + metavar="X.csv", + help="Write descriptions of selected models to given file") + +parser.add_argument( + "--out-model-selection-manifest", + metavar="X.csv", + help="Write complete results of all models to the given file") + +parser.add_argument( + "--out-models-dir", + metavar="DIR", + help="Write production models to files in this dir") + +parser.add_argument( + "--max-models", + type=int, + metavar="N", + help="Use only the first N models") + +parser.add_argument( + "--ensemble-size", + type=int, + metavar="N", + required=True, + help="Number of models to use per allele") + +parser.add_argument( + "--target-tasks", + type=int, + metavar="N", + required=True, + help="Target number of tasks to submit") + +parser.add_argument( + "--min-samples-per-allele", + default=100, + metavar="N", + help="Don't train predictors for alleles with fewer than N samples. " + "Set to 0 to disable filtering. Default: %(default)s", + type=int) + +parser.add_argument( + "--quiet", + action="store_true", + default=False, + help="Output less info") + +parser.add_argument( + "--verbose", + action="store_true", + default=False, + help="Output more info") + +parser.add_argument( + "--dask-scheduler", + metavar="HOST:PORT", + help="Host and port of dask distributed scheduler") + +parser.add_argument( + "--parallel-backend", + choices=("local-threads", "local-processes", "kubeface", "dask"), + default="local-threads", + help="Backend to use, default: %(default)s") + +parser.add_argument( + "--num-local-processes", + metavar="N", + type=int, + help="Processes (exclusive with --dask-scheduler and --num-local-threads)") + +parser.add_argument( + "--num-local-threads", + metavar="N", + type=int, + default=1, + help="Threads (exclusive with --dask-scheduler and --num-local-processes)") + +try: + import kubeface + kubeface.Client.add_args(parser) +except ImportError: + logging.error("Kubeface support disabled, not installed.") + + +def run(argv=sys.argv[1:]): + # On sigusr1 print stack trace + print("To show stack trace, run:\nkill -s USR1 %d" % os.getpid()) + signal.signal(signal.SIGUSR1, lambda sig, frame: traceback.print_stack()) + + args = parser.parse_args(argv) + if args.verbose: + logging.root.setLevel(level="DEBUG") + elif not args.quiet: + logging.root.setLevel(level="INFO") + + logging.info("Running with arguments: %s" % args) + + # Set parallel backend + if args.parallel_backend == "dask": + backend = parallelism.DaskDistributedParallelBackend( + args.dask_scheduler) + elif args.parallel_backend == "kubeface": + backend = parallelism.KubefaceParallelBackend(args) + elif args.parallel_backend == "local-threads": + backend = parallelism.ConcurrentFuturesParallelBackend( + args.num_local_threads, + processes=False) + elif args.parallel_backend == "local-processes": + backend = parallelism.ConcurrentFuturesParallelBackend( + args.num_local_processes, + processes=True) + else: + assert False, args.parallel_backend + + parallelism.set_default_backend(backend) + print("Using parallel backend: %s" % backend) + go(args) + + +def go(args): + model_architectures = json.loads(args.model_architectures.read()) + logging.info("Read %d model architectures" % len(model_architectures)) + if args.max_models: + model_architectures = model_architectures[:args.max_models] + logging.info( + "Subselected to %d model architectures" % len(model_architectures)) + + train_dataset = AffinityMeasurementDataset.from_csv(args.train_data) + logging.info("Loaded training data: %s" % train_dataset) + + if args.alleles: + train_dataset = train_dataset.get_alleles(args.alleles) + logging.info( + "Filtered training dataset by allele to: %s" % train_dataset) + + if args.min_samples_per_allele: + train_dataset = train_dataset.filter_alleles_by_count( + args.min_samples_per_allele) + logging.info( + "Filtered training dataset to alleles with >= %d observations: %s" + % (args.min_samples_per_allele, train_dataset)) + + train_mc = MeasurementCollection.from_dataset(train_dataset) + model = Class1EnsembleMultiAllelePredictor( + args.ensemble_size, + model_architectures) + model.fit(train_mc, target_tasks=args.target_tasks) + logging.info("Done fitting.") + + model.write_fit( + selected_models_csv=args.out_manifest, + all_models_csv=args.out_model_selection_manifest, + models_dir=args.out_models_dir) diff --git a/mhcflurry/common.py b/mhcflurry/common.py index 1a8c5a7185de68e392a0180c0854ae0195053679..cc21280eea4e3e5ccd8a2b3ab1007a4292ccc2da 100644 --- a/mhcflurry/common.py +++ b/mhcflurry/common.py @@ -150,7 +150,8 @@ def dataframe_cryptographic_hash(df): """ start = time.time() result = hashlib.sha1(df.to_msgpack()).hexdigest() - print("Generated dataframe hash in %0.2f sec" % (time.time() - start)) + logging.info( + "Generated dataframe hash in %0.2f sec" % (time.time() - start)) return result diff --git a/mhcflurry/downloads.yml b/mhcflurry/downloads.yml index eed77bac6dd2ac7415fa92837315009e2986959a..91c3100090fcf2d32b463c1ca42da517d173ba69 100644 --- a/mhcflurry/downloads.yml +++ b/mhcflurry/downloads.yml @@ -8,7 +8,7 @@ # by name, the downloads with "default=true" are downloaded. # This should usually be the latest release. -current-release: 0.0.8 +current-release: 0.1.0 # An integer indicating what models the current MHCflurry code base is compatible # with. Increment this integer when changes are made to MHCflurry that would break @@ -17,6 +17,25 @@ current-compatibility-version: 1 # Add new releases here as they are made. releases: + 0.1.0: + compatibility-version: 1 + downloads: + - name: models_class1_allele_specific_ensemble + url: http://github.com/hammerlab/mhcflurry/releases/download/0.1.0-alpha1/models_class1_allele_specific_ensemble.tar.bz2 + default: true + + - name: models_class1_allele_specific_single + url: http://github.com/hammerlab/mhcflurry/releases/download/0.1.0-alpha1/models_class1_allele_specific_single.tar.bz2 + default: false + + - name: data_kim2014 + url: http://github.com/hammerlab/mhcflurry/releases/download/0.0.8/data_kim2014.tar.bz2 + default: true + + - name: data_combined_iedb_kim2014 + url: http://github.com/hammerlab/mhcflurry/releases/download/0.0.8/data_combined_iedb_kim2014.tar.bz2 + default: true + 0.0.8: compatibility-version: 1 downloads: diff --git a/mhcflurry/downloads_command.py b/mhcflurry/downloads_command.py index 1f162357134c6a15f3ddee2c6877e9c1857f3392..d5ad018db4e102ada1f06d4bd70567d647792314 100644 --- a/mhcflurry/downloads_command.py +++ b/mhcflurry/downloads_command.py @@ -197,7 +197,7 @@ def fetch_subcommand(args): logging.debug("Extracting: %s" % names) bad_names = [ n for n in names - if n.strip().startswith("/") or n.strip().startswith(".") + if n.strip().startswith("/") or n.strip().startswith("..") ] if bad_names: raise RuntimeError( diff --git a/mhcflurry/ic50_predictor_base.py b/mhcflurry/ic50_predictor_base.py index 6166bf6df2e622076e3690b55dcf3e09bfc3b412..38f6fa49e617cc6feb5c02211989572280fff72a 100644 --- a/mhcflurry/ic50_predictor_base.py +++ b/mhcflurry/ic50_predictor_base.py @@ -21,7 +21,7 @@ from __future__ import ( import numpy as np from .regression_target import regression_target_to_ic50, MAX_IC50 -from .dataset import Dataset +from .affinity_measurement_dataset import AffinityMeasurementDataset from .hyperparameters import HyperparameterDefaults @@ -71,7 +71,7 @@ class IC50PredictorBase(object): peptide_to_ic50_dict : dict Dictionary that maps peptides to IC50 values. """ - dataset = Dataset.from_peptide_to_affinity_dictionary( + dataset = AffinityMeasurementDataset.from_peptide_to_affinity_dictionary( allele_name=self.name, peptide_to_affinity_dict=peptide_to_ic50_dict) return self.fit_dataset(dataset, **kwargs) @@ -84,7 +84,7 @@ class IC50PredictorBase(object): alleles=None, **kwargs): if alleles is None: alleles = [self.name] * len(peptides) - dataset = Dataset.from_sequences( + dataset = AffinityMeasurementDataset.from_sequences( alleles=alleles, peptides=peptides, affinities=affinities, diff --git a/mhcflurry/measurement_collection.py b/mhcflurry/measurement_collection.py new file mode 100644 index 0000000000000000000000000000000000000000..3bcc686394082286a585657cab5c1d7d0153e5ee --- /dev/null +++ b/mhcflurry/measurement_collection.py @@ -0,0 +1,217 @@ +from sklearn.model_selection import StratifiedKFold +import pandas + +from .affinity_measurement_dataset import AffinityMeasurementDataset +from .imputation_helpers import imputer_from_name + +COLUMNS = [ + "allele", + "peptide", + "measurement_type", + "measurement_source", + "measurement_value", + "weight", +] + +MEASUREMENT_TYPES = [ + "affinity", + "ms_hit", +] + +MEASUREMENT_SOURCES = [ + "in_vitro_affinity_assay", + "imputed", + "ms_hit", + "ms_decoy", +] + + +class MeasurementCollection(object): + """ + A measurement collection is a set of observations for allele/peptide pairs. + A single measurement collection may have both MS hits and affinity measurements. + + This is more general than a AffinityMeasurementDataset since it supports MS hits. It is also + simpler, as the user is expected to manipulate the underlying dataframe. + Later we may want to retire AffinityMeasurementDataset or combine it with this class. + """ + + def __init__(self, df, check=True): + if check: + for col in COLUMNS: + assert col in df.columns, col + + for measurement_type in df.measurement_type.unique(): + assert measurement_type in MEASUREMENT_TYPES, measurement_type + self.df = df[COLUMNS] + self.alleles = set(df.allele) + + @staticmethod + def from_dataset(dataset): + """ + Given a AffinityMeasurementDataset, return a MeasurementCollection + """ + dataset_df = dataset.to_dataframe() + df = dataset_df.reset_index(drop=True)[["allele", "peptide"]].copy() + df["measurement_type"] = "affinity" + df["measurement_source"] = "in_vitro_affinity_assay" + df["measurement_value"] = dataset_df.affinity.values + df["weight"] = dataset_df.sample_weight.values + return MeasurementCollection(df) + + def select_measurement_type(self, kind): + """ + Return a new MeasurementCollection containing only measurements of the + given type. + + Parameters + ----------- + kind : string + "affinity" or "ms_hit" + + Returns + ----------- + MeasurementCollection instance + """ + if kind not in MEASUREMENT_TYPES: + raise ValueError( + "Unknown measurement type: %s. Supported types: %s" % ( + kind, ", ".join(MEASUREMENT_TYPES))) + return MeasurementCollection( + self.df.ix[self.df.measurement_type == kind], + check=False) + + def select_allele(self, allele): + """ + Return a new MeasurementCollection containing only observations for the + specified allele. + """ + assert isinstance(allele, str), type(allele) + assert len(self.df) > 0 + alleles = set(self.df.allele.unique()) + assert allele in alleles, "%s not in %s" % (allele, alleles) + return MeasurementCollection( + self.df.ix[self.df.allele == allele], + check=False) + + def half_splits(self, num, random_state=None): + """ + Split the MeasurementCollection into disjoint pairs of + MeasurementCollection instances, each containing half the observations. + + Parameters + ------------- + num : int + Number of pairs to return + + random_state : int, optional + + Returns + ------------- + list of (MeasurementCollection, MeasurementCollection) pairs + Each pair gives a disjoint train and test split. + """ + assert num > 0 + results = [] + while True: + cv = StratifiedKFold( + n_splits=2, + shuffle=True, + random_state=( + None if random_state is None + else random_state + len(results))) + stratification_groups = self.df.allele + self.df.measurement_type + #assert len(stratification_groups.unique()) > 1, ( + # stratification_groups.unique()) + (indices1, indices2) = next( + cv.split(self.df.values, stratification_groups)) + assert len(indices1) > 0 + assert len(indices2) > 0 + mc1 = MeasurementCollection(self.df.iloc[indices1], check=False) + mc2 = MeasurementCollection(self.df.iloc[indices2], check=False) + for pair in [(mc1, mc2), (mc2, mc1)]: + results.append(pair) + if len(results) == num: + return results + + def to_dataset( + self, + include_ms=False, + ms_hit_affinity=1.0, + ms_decoy_affinity=20000): + """ + Return a AffinityMeasurementDataset containing the observations in the collection. + Mass-spec data are converted to affinities according to + ms_hit_affinity and ms_decoy_affinity. + + Parameters + ------------- + include_ms : bool + If True then mass spec data is included; otherwise it is dropped + + ms_hit_affinity : float + nM affinity to assign to mass-spec hits (relevant only if + include_ms=True) + + ms_decoy_affinity : float + nM affinity to assign to mass-spec decoys (relevant only if + include_ms=True) + + Returns + ------------- + AffinityMeasurementDataset instance + """ + if include_ms: + dataset = AffinityMeasurementDataset(pandas.DataFrame({ + "allele": self.df.allele, + "peptide": self.df.peptide, + "affinity": [ + row.measurement_value if row.measurement_type == "affinity" + else ( + ms_hit_affinity if row.value > 0 + else ms_decoy_affinity) + for (_, row) in self.df.iterrows() + ], + "sample_weight": self.df.weight, + })) + else: + df = self.df.ix[ + (self.df.measurement_type == "affinity") & + (self.df.measurement_source == "in_vitro_affinity_assay") + ] + dataset = AffinityMeasurementDataset(pandas.DataFrame({ + "allele": df.allele, + "peptide": df.peptide, + "affinity": df.measurement_value, + "sample_weight": df.weight, + })) + return dataset + + def impute( + self, + impute_method="mice", + impute_log_transform=True, + impute_min_observations_per_peptide=1, + impute_min_observations_per_allele=1, + imputer_args={}): + """ + Return a new MeasurementCollection after applying imputation to + this collection. The imputed collection will have the + observations in the current collection plus the imputed data. + """ + assert len(self.df) > 0 + + dataset = self.to_dataset(include_ms=False) + assert len(dataset) > 0 + imputer = imputer_from_name(impute_method, **imputer_args) + result_df = dataset.impute_missing_values( + imputation_method=imputer, + log_transform=impute_log_transform, + min_observations_per_peptide=impute_min_observations_per_peptide, + min_observations_per_allele=impute_min_observations_per_allele + ).to_dataframe() + result_df["measurement_type"] = "affinity" + result_df["measurement_source"] = "imputed" + result_df["measurement_value"] = result_df.affinity + result_df["weight"] = result_df.sample_weight + return MeasurementCollection(result_df) diff --git a/mhcflurry/parallelism.py b/mhcflurry/parallelism.py index df8dcfab8ff6b054ee65a2b1fc71df85f204b7bc..f89d17d82d3bf4198d5dc2aa80850f42d747ceaa 100644 --- a/mhcflurry/parallelism.py +++ b/mhcflurry/parallelism.py @@ -4,6 +4,11 @@ from concurrent import futures DEFAULT_BACKEND = None +class RemoteObjectStub(object): + def __init__(self, value): + self.value = value + + class ParallelBackend(object): """ Thin wrapper of futures implementations. Designed to support @@ -14,6 +19,9 @@ class ParallelBackend(object): self.module = module self.verbose = verbose + def remote_object(self, value): + return RemoteObjectStub(value) + class KubefaceParallelBackend(ParallelBackend): """ @@ -26,6 +34,9 @@ class KubefaceParallelBackend(ParallelBackend): def map(self, func, iterable): return self.client.map(func, iterable) + def remote_object(self, value): + return self.client.remote_object(value) + def __str__(self): return "<Kubeface backend, client=%s>" % self.client diff --git a/mhcflurry/peptide_encoding.py b/mhcflurry/peptide_encoding.py index dc39de38f4648b6763ed6fed174fee1af0c3b11d..0738037160be0d716177a3b977cd2a6d1c836fcf 100644 --- a/mhcflurry/peptide_encoding.py +++ b/mhcflurry/peptide_encoding.py @@ -16,6 +16,7 @@ from __future__ import print_function, division, absolute_import import itertools import logging +import pandas import numpy as np from .amino_acid import common_amino_acids, amino_acids_with_unknown @@ -23,6 +24,95 @@ from .amino_acid import common_amino_acids, amino_acids_with_unknown common_amino_acid_letters = common_amino_acids.letters() +class KmerEncodedPeptides(object): + """ + Variable-length peptides encoded into a fixed length matrix using netmhc-style reduction to kmers (usually 9mers). + + Parameters + ---------- + peptides : str list + Peptide strings of any length + + encoded_matrix : int array of shape (R, k) + The encoded peptides. R >= len(peptides) is the number of kmers needed to represent the peptides. + If all peptides are length k then R == len(peptides). + + indices : int array of length R + peptides[indices[i]] gives the peptide that gave rise to row encoded_matrix[i] for all 0 < i < R. + + kmer_size : int + k (usually 9) + + allow_unknown_amino_acids : bool + """ + def __init__(self, peptides, encoded_matrix, indices, kmer_size, allow_unknown_amino_acids): + assert len(indices) == len(encoded_matrix) + assert len(peptides) == 0 or len(peptides) == max(indices) + 1 + self.encoded_matrix = encoded_matrix + self.kmer_size = kmer_size + self.allow_unknown_amino_acids = allow_unknown_amino_acids + self.peptides = peptides + self.indices = indices + self.unique_peptides = np.unique(peptides) + + def __len__(self): + return len(self.peptides) + + def combine_predictions(self, predictions): + assert len(predictions) == len(self.encoded_matrix) + assert len(predictions) == len(self.indices) + df = pandas.DataFrame({ + 'original_peptide_index': self.indices, + 'prediction': predictions, + }) + predictions_by_index = df.groupby("original_peptide_index").prediction.mean() + return predictions_by_index[np.arange(0, max(self.indices) + 1)].values + + +def encode_peptides(peptides, kmer_size=9, allow_unknown_amino_acids=True): + """ + Encode peptides of any length into KmerEncodedPeptides instance + + Parameters + ---------- + peptides : str list or KmerEncodedPeptides + Peptide strings of any length. For convenience, if a KmerEncodedPeptides instance is passed then it is returned. + + """ + if isinstance(peptides, KmerEncodedPeptides): + assert peptides.kmer_size == kmer_size + assert peptides.allow_unknown_amino_acids == allow_unknown_amino_acids + return peptides + + if len(peptides) == 0: + combined_matrix = np.zeros((0, kmer_size)) + indices = [] + else: + indices = [] + encoded_matrices = [] + for i, peptide in enumerate(peptides): + matrix, _, _, _ = fixed_length_index_encoding( + peptides=[peptide], + desired_length=kmer_size, + allow_unknown_amino_acids=allow_unknown_amino_acids) + encoded_matrices.append(matrix) + indices.extend([i] * len(matrix)) + combined_matrix = np.concatenate(encoded_matrices) + index_array = np.array(indices) + expected_shape = (len(index_array), kmer_size) + assert combined_matrix.shape == expected_shape, \ + "Expected shape %s but got %s" % ( + expected_shape, combined_matrix.shape) + + return KmerEncodedPeptides( + peptides, + combined_matrix, + index_array, + kmer_size=kmer_size, + allow_unknown_amino_acids=allow_unknown_amino_acids) + + + def all_kmers(k, alphabet=common_amino_acid_letters): """ Generates all k-mer peptide sequences @@ -313,3 +403,5 @@ def check_valid_index_encoding_array(X, allow_unknown_amino_acids=True): X.max(), max_expected_index)) return X + + diff --git a/mhcflurry/predict.py b/mhcflurry/predict.py deleted file mode 100644 index 6534971ef67c20c15c0645800c6ab8af828f6ccb..0000000000000000000000000000000000000000 --- a/mhcflurry/predict.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) 2015. Mount Sinai School of Medicine -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from collections import OrderedDict - -import pandas as pd - -from .class1_allele_specific import load -from .common import normalize_allele_name, UnsupportedAllele - - -def predict(alleles, peptides, loaders=None): - """ - Make predictions across all combinations of the specified alleles and - peptides. - - Parameters - ---------- - alleles : list of str - Names of alleles to make predictions for. - - peptides : list of str - Peptide amino acid sequences. - - loaders : list of Class1AlleleSpecificPredictorLoader, optional - Loaders to try. Will be tried in the order given. - - Returns DataFrame with columns "Allele", "Peptide", and "Prediction" - """ - if loaders is None: - loaders = [ - load.get_loader_for_downloaded_models(), - ] - result_dict = OrderedDict([ - ("Allele", []), - ("Peptide", []), - ("Prediction", []), - ]) - for allele in alleles: - allele = normalize_allele_name(allele) - exceptions = {} # loader -> UnsupportedAllele exception - model = None - for loader in loaders: - try: - model = loader.from_allele_name(allele) - break - except UnsupportedAllele as e: - exceptions[loader] = e - if model is None: - raise UnsupportedAllele( - "No loaders support allele '%s'. Errors were:\n%s" % ( - allele, - "\n".join( - ("\t%-20s : %s" % (k, v)) - for (k, v) in exceptions.items()))) - - for i, ic50 in enumerate(model.predict(peptides)): - result_dict["Allele"].append(allele) - result_dict["Peptide"].append(peptides[i]) - result_dict["Prediction"].append(ic50) - return pd.DataFrame(result_dict) diff --git a/mhcflurry/predict_command.py b/mhcflurry/predict_command.py index edcc6af020e175bd5077f1e1a84e9e9b6d61553c..03c92a133295762936b4737fcef472d64c97e09a 100644 --- a/mhcflurry/predict_command.py +++ b/mhcflurry/predict_command.py @@ -46,7 +46,7 @@ import pandas import itertools from .downloads import get_path -from . import class1_allele_specific +from . import class1_allele_specific, class1_allele_specific_ensemble parser = argparse.ArgumentParser( description=__doc__, @@ -93,12 +93,25 @@ parser.add_argument( default="mhcflurry_prediction", help="Output column name for predictions. Default: '%(default)s'") +parser.add_argument( + "--predictor", + choices=("class1-allele-specific-single", "class1-allele-specific-ensemble"), + default="class1-allele-specific-single", + help="Predictor to use. Default: %(default)s.") + +parser.add_argument( + "--models-class1-allele-specific-ensemble", + metavar="DIR", + default=None, + help="Directory containing class1 allele specific ensemble models. " + "Default: %s" % get_path("models_class1_allele_specific_ensemble", test_exists=False)) + parser.add_argument( "--models-class1-allele-specific-single", metavar="DIR", - default=get_path("models_class1_allele_specific_single"), + default=None, help="Directory containing class1 allele specific single models. " - "Default: '%(default)s'") + "Default: %s" % get_path("models_class1_allele_specific_single", test_exists=False)) def run(argv=sys.argv[1:]): @@ -142,20 +155,39 @@ def run(argv=sys.argv[1:]): print("Predicting for %d alleles and %d peptides = %d predictions" % ( len(args.alleles), len(args.peptides), len(df))) - class1_allele_specific_loader = ( - class1_allele_specific.load.Class1AlleleSpecificPredictorLoader( - args.models_class1_allele_specific_single)) + if args.predictor == "class1-allele-specific-single": + models_dir = args.models_class1_allele_specific_single + if models_dir is None: + # The reason we set the default here instead of in the argument parser is that + # we want to test_exists at this point, so the user gets a message instructing + # them to download the models if needed. + models_dir = get_path("models_class1_allele_specific_single") + predictor = ( + class1_allele_specific + .class1_single_model_multi_allele_predictor + .Class1SingleModelMultiAllelePredictor + ).load_from_download_directory(models_dir) + elif args.predictor == "class1-allele-specific-ensemble": + models_dir = args.models_class1_allele_specific_ensemble + if models_dir is None: + models_dir = get_path("models_class1_allele_specific_ensemble") + predictor = ( + class1_allele_specific_ensemble + .class1_ensemble_multi_allele_predictor + .Class1EnsembleMultiAllelePredictor + ).load_from_download_directory(models_dir) + else: + assert False predictions = {} # allele -> peptide -> value for (allele, sub_df) in df.groupby(args.allele_column): logging.info("Running %d predictions for allele %s" % ( len(sub_df), allele)) - model = class1_allele_specific_loader.from_allele_name(allele) peptides = sub_df[args.peptide_column].values predictions[allele] = dict( (peptide, prediction) for (peptide, prediction) - in zip(peptides, model.predict(peptides))) + in zip(peptides, predictor.predict_for_allele(allele, peptides))) logging.info("Collecting result") df[args.prediction_column] = [ diff --git a/mhcflurry/prediction.py b/mhcflurry/prediction.py new file mode 100644 index 0000000000000000000000000000000000000000..36e1f0e71534a3b92eb23d46c4dfa25d09fb33d0 --- /dev/null +++ b/mhcflurry/prediction.py @@ -0,0 +1,60 @@ +# Copyright (c) 2015. Mount Sinai School of Medicine +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from collections import OrderedDict + +import pandas +import numpy + +from .class1_allele_specific_ensemble import class1_ensemble_multi_allele_predictor +from .common import normalize_allele_name, UnsupportedAllele +from .peptide_encoding import encode_peptides + + +def predict(alleles, peptides, predictor=None): + """ + Make predictions across all combinations of the specified alleles and + peptides. + + Parameters + ---------- + alleles : list of str + Names of alleles to make predictions for. + + peptides : list of str + Peptide amino acid sequences. + + predictor : Predictor to use. Defaults to downloaded Class1SingleModelMultiAllelePredictor. + + Returns DataFrame with columns "Allele", "Peptide", and "Prediction" + """ + if predictor is None: + predictor = class1_ensemble_multi_allele_predictor.get_downloaded_predictor() + + if len(peptides) == 0 or len(alleles) == 0: + return pandas.DataFrame(columns=["Peptide", "Allele", "Prediction"]) + + peptides = numpy.unique(peptides) + encoded_peptides = encode_peptides(peptides) + result_dfs = [] + result_df = pandas.DataFrame() + result_df["Peptide"] = peptides + for allele in alleles: + allele = normalize_allele_name(allele) + predictions = predictor.predict_for_allele(allele, encoded_peptides) + result_df = result_df.copy() + result_df["Allele"] = allele + result_df["Prediction"] = predictions + result_dfs.append(result_df) + return pandas.concat(result_dfs, ignore_index=True) diff --git a/requirements.txt b/requirements.txt index e1768825d305e148f3429f64c7b54c4f60dd06dd..9b6ae49d48bfaef191ec9d09c91ba3cd354907ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ numpy>= 1.11 pandas>=0.13.1 appdirs -theano>=0.8.2 +theano==0.8.2 keras==1.2.0 fancyimpute>=0.0.12 scikit-learn diff --git a/setup.py b/setup.py index dd66f5813776311e7bcaa4269175373e26a8cfce..e4853dddd2ff8a74a43c18cdb1a04fcaa722b8b3 100644 --- a/setup.py +++ b/setup.py @@ -52,7 +52,7 @@ if __name__ == '__main__': 'numpy>=1.11', 'pandas>=0.13.1', 'appdirs', - 'theano>=0.8.2', + 'theano==0.8.2', 'keras==1.2.0', 'fancyimpute>=0.0.12', 'scikit-learn', @@ -79,8 +79,10 @@ if __name__ == '__main__': 'console_scripts': [ 'mhcflurry-downloads = mhcflurry.downloads_command:run', 'mhcflurry-predict = mhcflurry.predict_command:run', + 'mhcflurry-class1-allele-specific-ensemble-train = ' + 'mhcflurry.class1_allele_specific_ensemble.train_command:run', 'mhcflurry-class1-allele-specific-cv-and-train = ' - 'mhcflurry.class1_allele_specific.cv_and_train_command:run' + 'mhcflurry.class1_allele_specific.cv_and_train_command:run', ] }, classifiers=[ @@ -97,5 +99,9 @@ if __name__ == '__main__': }, install_requires=required_packages, long_description=readme, - packages=['mhcflurry', 'mhcflurry.class1_allele_specific'], + packages=[ + 'mhcflurry', + 'mhcflurry.class1_allele_specific', + 'mhcflurry.class1_allele_specific_ensemble', + ], ) diff --git a/test/__init__.py b/test/__init__.py index 41d07bd4e26c104ac024a971f26edae1836f24f8..ea6085a3b822f81d2098e552f42cfa1b5c90d4f5 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -4,6 +4,17 @@ Utility functions for tests. import os +import numpy + +from mhcflurry import amino_acid + +def make_random_peptides(num, length=9): + return [ + ''.join(peptide_sequence) + for peptide_sequence in + numpy.random.choice( + amino_acid.common_amino_acid_letters, size=(num, length)) + ] def data_path(name): ''' diff --git a/test/test_dataset.py b/test/test_affinity_measurement_dataset.py similarity index 73% rename from test/test_dataset.py rename to test/test_affinity_measurement_dataset.py index 57e541738fe10b28cc661c3bcbf38853ace6775e..4ecc71d4372d6010ae68c36e4e92c8b762dba0a2 100644 --- a/test/test_dataset.py +++ b/test/test_affinity_measurement_dataset.py @@ -1,15 +1,15 @@ from nose.tools import eq_ -from mhcflurry.dataset import Dataset +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset def test_create_allele_data_from_single_allele_dict(): peptide_to_ic50_dict = { ("A" * 10): 1.2, ("C" * 9): 1000, } - dataset = Dataset.from_single_allele_dictionary( + dataset = AffinityMeasurementDataset.from_single_allele_dictionary( allele_name="A0201", peptide_to_affinity_dict=peptide_to_ic50_dict) - assert isinstance(dataset, Dataset) + assert isinstance(dataset, AffinityMeasurementDataset) eq_(len(peptide_to_ic50_dict), len(dataset)) expected_peptides = set([ @@ -22,7 +22,7 @@ def test_create_allele_data_from_single_allele_dict(): eq_(pi, pj) def test_dataset_random_split(): - dataset = Dataset.from_nested_dictionary({ + dataset = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": { "SIINFEKL": 10.0, "FEKLSIIN": 20000.0, @@ -33,15 +33,15 @@ def test_dataset_random_split(): assert len(right) == 1 def test_dataset_difference(): - dataset1 = Dataset.from_nested_dictionary({ + dataset1 = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": { "SIINFEKL": 10.0, "FEKLSIIN": 20000.0, "SIFEKLIN": 50000.0, }}) - dataset2 = Dataset.from_nested_dictionary({"H-2-Kb": {"SIINFEKL": 10.0}}) + dataset2 = AffinityMeasurementDataset.from_nested_dictionary({"H-2-Kb": {"SIINFEKL": 10.0}}) dataset_diff = dataset1.difference(dataset2) - expected_result = Dataset.from_nested_dictionary({ + expected_result = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": { "FEKLSIIN": 20000.0, "SIFEKLIN": 50000.0, @@ -50,20 +50,20 @@ def test_dataset_difference(): def test_dataset_intersection(): - dataset1 = Dataset.from_nested_dictionary({ + dataset1 = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": { "SIINFEKL": 10.0, "FEKLSIIN": 20000.0, "SIFEKLIN": 50000.0, }}) - dataset2 = Dataset.from_nested_dictionary({"H-2-Kb": {"SIINFEKL": 30.0}}) + dataset2 = AffinityMeasurementDataset.from_nested_dictionary({"H-2-Kb": {"SIINFEKL": 30.0}}) dataset_intersection = dataset1.intersection(dataset2) - expected_result = Dataset.from_nested_dictionary({ + expected_result = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": {"SIINFEKL": 10.0}}) eq_(dataset_intersection, expected_result) def test_dataset_cross_validation(): - dataset = Dataset.from_nested_dictionary({ + dataset = AffinityMeasurementDataset.from_nested_dictionary({ "H-2-Kb": { "SIINFEKL": 10.0, "FEKLSIIN": 20000.0, diff --git a/test/test_antigen_presentation.py b/test/test_antigen_presentation.py index 4da4ba5c1f207e5b29954594c46575ed609c808c..1714929e88149716330e6e7ecf8a3c09a4bf9387 100644 --- a/test/test_antigen_presentation.py +++ b/test/test_antigen_presentation.py @@ -13,20 +13,12 @@ from mhcflurry.antigen_presentation import ( presentation_model) from mhcflurry.amino_acid import common_amino_acid_letters +from . import make_random_peptides ###################### # Helper functions -def make_random_peptides(num, length=9): - return [ - ''.join(peptide_sequence) - for peptide_sequence in - numpy.random.choice( - amino_acid.common_amino_acid_letters, size=(num, length)) - ] - - def hit_criterion(experiment_name, peptide): # Peptides with 'A' are always hits. Easy for model to learn. return 'A' in peptide @@ -81,6 +73,9 @@ AA_COMPOSITION_DF.index = AA_COMPOSITION_DF.peptide del AA_COMPOSITION_DF['peptide'] HITS_DF = PEPTIDES_DF.ix[PEPTIDES_DF.hit].reset_index().copy() + +# Add some duplicates: +HITS_DF = pandas.concat([HITS_DF, HITS_DF.iloc[:10]], ignore_index=True) del HITS_DF["hit"] ###################### @@ -107,6 +102,15 @@ def mhcflurry_basic_model(): ) +def mhcflurry_released_model(): + return presentation_component_models.MHCflurryReleased( + predictor_name="mhcflurry_ensemble", + experiment_to_alleles=EXPERIMENT_TO_ALLELES, + random_peptides_for_percent_rank=OTHER_PEPTIDES, + fit_cache_policy="strong", + predictions_cache_policy="strong") + + def test_mhcflurry_trained_on_hits(): mhcflurry_model = mhcflurry_basic_model() mhcflurry_model.fit(HITS_DF) @@ -144,6 +148,7 @@ def compare_predictions(peptides_df, model1, model2): def test_presentation_model(): mhcflurry_model = mhcflurry_basic_model() + mhcflurry_ie_model = mhcflurry_released_model() aa_content_model = ( presentation_component_models.FixedPerPeptideQuantity( @@ -155,6 +160,9 @@ def test_presentation_model(): decoys_per_hit=50) terms = { + 'A_ie': ( + [mhcflurry_ie_model], + ["log1p(mhcflurry_ensemble_affinity)"]), 'A_ms': ( [mhcflurry_model], ["log1p(mhcflurry_affinity_value)"]), @@ -166,10 +174,10 @@ def test_presentation_model(): for kwargs in [{}, {'ensemble_size': 3}]: models = presentation_model.build_presentation_models( terms, - ["A_ms", "A_ms + P"], + ["A_ms", "A_ms + P", "A_ie + P"], decoy_strategy=decoys, **kwargs) - eq_(len(models), 2) + eq_(len(models), 3) unfit_model = models["A_ms"] model = unfit_model.clone() @@ -197,10 +205,14 @@ def test_presentation_model(): model = better_unfit_model.clone() model.fit(HITS_DF.ix[HITS_DF.experiment_name == "exp1"]) peptides["prediction_better"] = model.predict(peptides) - assert_less( peptides.prediction_better[~peptides.hit].mean(), peptides.prediction[~peptides.hit].mean()) assert_less( peptides.prediction[peptides.hit].mean(), peptides.prediction_better[peptides.hit].mean()) + + another_unfit_model = models["A_ie + P"] + model = another_unfit_model.clone() + model.fit(HITS_DF.ix[HITS_DF.experiment_name == "exp1"]) + model.predict(peptides) diff --git a/test/test_class1_allele_specific_cv_and_train_command.py b/test/test_class1_allele_specific_cv_and_train_command.py index bcc71db1e63e8f35e0e5be41f907943c1d7d650a..eb722ffeee727a9f3a09389dc6ea77bf89ed70fb 100644 --- a/test/test_class1_allele_specific_cv_and_train_command.py +++ b/test/test_class1_allele_specific_cv_and_train_command.py @@ -10,7 +10,7 @@ from os import mkdir, environ import pandas from mhcflurry.class1_allele_specific import cv_and_train_command -from mhcflurry import downloads, predict +from mhcflurry import downloads, predict, class1_allele_specific from mhcflurry.class1_allele_specific.train import HYPERPARAMETER_DEFAULTS try: @@ -72,7 +72,7 @@ def test_small_run(): # If kubeface is installed, then this command will by default use it. # In that case, we want to have the kubeface storage written to a # local file and not assume the existence of a google storage bucket. - args.extend(["--storage-prefix", "/tmp/"]) + args.extend(["--kubeface-storage", "/tmp/"]) print("Running cv_and_train_command with args: %s " % str(args)) cv_and_train_command.run(args) @@ -113,7 +113,11 @@ def verify_trained_models(base_temp_dir): ("HLA-A0201", "LLGLPAAEY", False), ], columns=("allele", "peptide", "binder")) - data["prediction"] = predict(data.allele, data.peptide).Prediction + data["prediction"] = predict( + data.allele, + data.peptide, + predictor=class1_allele_specific.get_downloaded_predictor() + ).Prediction print(data) mean_binder = data.ix[data.binder].prediction.mean() mean_nonbinder = data.ix[~data.binder].prediction.mean() diff --git a/test/test_class1_binding_predictor_A0205.py b/test/test_class1_binding_predictor_A0205.py index b9e9211549699ce5b7d56b922700a63435f3e080..fb3df4a7391c99055b65547e2a80a7b549e7f2bd 100644 --- a/test/test_class1_binding_predictor_A0205.py +++ b/test/test_class1_binding_predictor_A0205.py @@ -1,7 +1,7 @@ import numpy as np np.random.seed(0) -from mhcflurry.dataset import Dataset +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset from mhcflurry import Class1BindingPredictor from nose.tools import eq_ @@ -11,10 +11,10 @@ from mhcflurry.downloads import get_path def test_class1_binding_predictor_A0205_training_accuracy(): - dataset = Dataset.from_csv(get_path( + dataset = AffinityMeasurementDataset.from_csv(get_path( "data_combined_iedb_kim2014", "combined_human_class1_dataset.csv")) dataset_a0205_all_lengths = dataset.get_allele("HLA-A0205") - dataset_a0205 = Dataset( + dataset_a0205 = AffinityMeasurementDataset( dataset_a0205_all_lengths._df.ix[ dataset_a0205_all_lengths._df.peptide.str.len() == 9]) diff --git a/test/test_class1_binding_predictor_with_dummy_models.py b/test/test_class1_binding_predictor_with_dummy_models.py index dc390f35b95426a544b1a515e91c793fdf264339..c558357271b0ef05dd959901c67d5c91e9b2ca93 100644 --- a/test/test_class1_binding_predictor_with_dummy_models.py +++ b/test/test_class1_binding_predictor_with_dummy_models.py @@ -68,24 +68,28 @@ def test_always_zero_10mer_inputs(): def test_encode_peptides_9mer(): - X, indices = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYYY"]) - assert len(indices) == 1 - assert indices[0] == 0 - assert X.shape[0] == 1, X.shape - assert X.shape[1] == 9, X.shape + encoded = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYYY"]) + assert len(encoded.indices) == 1 + assert encoded.indices[0] == 0 + assert encoded.encoded_matrix.shape[0] == 1, encoded.encoded_matrix.shape + assert encoded.encoded_matrix.shape[1] == 9, encoded.encoded_matrix.shape def test_encode_peptides_8mer(): - X, indices = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYY"]) - assert len(indices) == 9 - assert (indices == 0).all() + encoded = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYY"]) + assert len(encoded.indices) == 9 + assert (encoded.indices == 0).all() + + X = encoded.encoded_matrix assert X.shape[0] == 9, (X.shape, X) assert X.shape[1] == 9, (X.shape, X) def test_encode_peptides_10mer(): - X, indices = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYYFF"]) - assert len(indices) == 10 - assert (indices == 0).all() + encoded = always_zero_predictor_with_unknown_AAs.encode_peptides(["AAASSSYYFF"]) + assert len(encoded.indices) == 10 + assert (encoded.indices == 0).all() + + X = encoded.encoded_matrix assert X.shape[0] == 10, (X.shape, X) assert X.shape[1] == 9, (X.shape, X) diff --git a/test/test_cross_validation.py b/test/test_cross_validation.py index c0d4296e815dad534d8cb8f46b799dd0343f9f69..fdcd160f97a6e36d057138fa7857714badebe80c 100644 --- a/test/test_cross_validation.py +++ b/test/test_cross_validation.py @@ -14,12 +14,14 @@ from mhcflurry.class1_allele_specific import ( from mhcflurry.class1_allele_specific.train import ( HYPERPARAMETER_DEFAULTS) +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset + def test_imputation(): imputer = fancyimpute.MICE( n_imputations=2, n_burn_in=1, n_nearest_columns=25) train_data = ( - mhcflurry.dataset.Dataset.from_csv( + AffinityMeasurementDataset.from_csv( get_path("data_kim2014", "bdata.2009.mhci.public.1.txt")) .get_alleles(["HLA-A0201", "HLA-A0202", "HLA-A0301"])) @@ -41,7 +43,7 @@ def test_imputation(): def test_cross_validation_no_imputation(): train_data = ( - mhcflurry.dataset.Dataset.from_csv( + AffinityMeasurementDataset.from_csv( get_path("data_kim2014", "bdata.2009.mhci.public.1.txt")) .get_alleles(["HLA-A0201", "HLA-A0202", "HLA-A0301"])) @@ -76,7 +78,7 @@ def test_cross_validation_with_imputation(): imputer = fancyimpute.MICE( n_imputations=2, n_burn_in=1, n_nearest_columns=25) train_data = ( - mhcflurry.dataset.Dataset.from_csv( + AffinityMeasurementDataset.from_csv( get_path("data_kim2014", "bdata.2009.mhci.public.1.txt")) .get_alleles(["HLA-A0201", "HLA-A0202", "HLA-A0301"])) diff --git a/test/test_ensemble.py b/test/test_ensemble.py new file mode 100644 index 0000000000000000000000000000000000000000..24ea46c9f04b68ef367740e34603daaff3f94cb6 --- /dev/null +++ b/test/test_ensemble.py @@ -0,0 +1,203 @@ +import tempfile +import shutil +import os +import time +import cProfile + +import json +from os.path import join +from os import mkdir + +from numpy.testing import assert_allclose, assert_equal +import numpy +from nose.tools import eq_ + +from . import make_random_peptides + +from mhcflurry.class1_allele_specific import scoring +from mhcflurry.measurement_collection import MeasurementCollection +from mhcflurry.class1_allele_specific_ensemble import train_command +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset +from mhcflurry.downloads import get_path +from mhcflurry.amino_acid import common_amino_acid_letters +from mhcflurry \ + .class1_allele_specific_ensemble \ + .class1_ensemble_multi_allele_predictor import ( + Class1EnsembleMultiAllelePredictor, + get_downloaded_predictor, + HYPERPARAMETER_DEFAULTS) + + +def test_single_allele(): + model_hyperparameters = HYPERPARAMETER_DEFAULTS.models_grid( + impute=[False], + activation=["tanh"], + layer_sizes=[[4], [16]], + embedding_output_dim=[16], + dropout_probability=[.25], + n_training_epochs=[20]) + model = Class1EnsembleMultiAllelePredictor( + ensemble_size=3, + hyperparameters_to_search=model_hyperparameters) + print(model) + + dataset = AffinityMeasurementDataset.from_csv(get_path( + "data_combined_iedb_kim2014", "combined_human_class1_dataset.csv")) + sub_dataset = AffinityMeasurementDataset( + dataset._df.ix[ + (dataset._df.allele.isin(["HLA-A0205"])) & + (dataset._df.peptide.str.len() == 9) + ]) + mc = MeasurementCollection.from_dataset(sub_dataset) + model.fit(mc) + results = mc.df.copy() + results["prediction"] = model.predict_measurement_collection(mc) + score = results[["measurement_value", "prediction"]].corr('kendall').ix["measurement_value", "prediction"] + assert score > 0.3, score + + repeated = model.predict_for_allele("HLA-A0205", ["AAAAAAAA","AAAAAAAA", "AAAAAAAA"]) + assert len(repeated) == 3, repeated + assert numpy.std(repeated) < 1e-4, (repeated, numpy.std(repeated)) + + +def test_basic(): + model_hyperparameters = HYPERPARAMETER_DEFAULTS.models_grid( + impute=[False, True], + activation=["tanh"], + layer_sizes=[[4], [16]], + embedding_output_dim=[16], + dropout_probability=[.25], + n_training_epochs=[20]) + model = Class1EnsembleMultiAllelePredictor( + ensemble_size=3, + hyperparameters_to_search=model_hyperparameters) + print(model) + + dataset = AffinityMeasurementDataset.from_csv(get_path( + "data_combined_iedb_kim2014", "combined_human_class1_dataset.csv")) + sub_dataset = AffinityMeasurementDataset( + dataset._df.ix[ + (dataset._df.allele.isin(["HLA-A0101", "HLA-A0205"])) & + (dataset._df.peptide.str.len() == 9) + ]) + + mc = MeasurementCollection.from_dataset(sub_dataset) + print(model.description()) + print("Now fitting.") + model.fit(mc) + + model2 = Class1EnsembleMultiAllelePredictor( + ensemble_size=3, + hyperparameters_to_search=model_hyperparameters) + model2.fit(mc) + print(set(model.manifest_df.all_alleles_train_data_hash)) + assert_equal( + set(model.manifest_df.all_alleles_train_data_hash), + set(model2.manifest_df.all_alleles_train_data_hash)) + assert_equal( + set(model.manifest_df.all_alleles_test_data_hash), + set(model2.manifest_df.all_alleles_test_data_hash)) + assert_equal( + set(model.manifest_df.all_alleles_imputed_data_hash), + set(model2.manifest_df.all_alleles_imputed_data_hash)) + + print(model.description()) + ic50_pred = model.predict_measurement_collection(mc) + ic50_true = mc.df.measurement_value + + scores = scoring.make_scores(ic50_true, ic50_pred) + print(scores) + assert scores['auc'] > 0.85, "Expected higher AUC" + + # test save and restore + try: + tmpdir = tempfile.mkdtemp(prefix="mhcflurry-test") + model.write_fit( + tmpdir, + all_models_csv=os.path.join(tmpdir, "models.csv")) + model2 = Class1EnsembleMultiAllelePredictor.load_fit( + tmpdir, + os.path.join(tmpdir, "models.csv")) + finally: + shutil.rmtree(tmpdir) + + eq_(model.ensemble_size, model2.ensemble_size) + eq_(model.supported_alleles, model2.supported_alleles) + eq_(model.hyperparameters_to_search, model2.hyperparameters_to_search) + ic50_pred2 = model.predict_measurement_collection(mc) + assert_allclose(ic50_pred, ic50_pred2, rtol=1e-04) + + +def test_prediction_performance(): + use_profiling = False + + def evaluate(context, s): + if use_profiling: + return cProfile.runctx(s, globals(), context, sort="cumtime") + else: + return eval(s, globals(), context) + + start = time.time() + predictor = get_downloaded_predictor() + print("\nInstantiated ensemble predictor in %0.2f sec" % (time.time() - start)) + + start = time.time() + evaluate({'predictor': predictor}, 'predictor.models_for_allele(("HLA-A*01:01"))') + print("Loaded ensemble for allele in %0.2f sec" % (time.time() - start)) + + start = time.time() + evaluate({'predictor': predictor}, 'predictor.predict_for_allele("HLA-A*01:01", ["ESDPIVAQY"])') + print("Generated 1 prediction in %0.2f sec" % (time.time() - start)) + + start = time.time() + peptides = make_random_peptides(10000) + evaluate( + {'predictor': predictor, 'peptides': peptides}, + 'predictor.predict_for_allele("HLA-A*01:01", peptides)') + print("Generated %d predictions in %0.2f sec" % ( + len(peptides), time.time() - start)) + + +def test_train_command(): + base_temp_dir = tempfile.mkdtemp() + temp_dir = join(base_temp_dir, "models_class1_allele_specific_single") + mkdir(temp_dir) + + def write_json(payload, filename): + path = join(temp_dir, filename) + with open(path, 'w') as fd: + json.dump(payload, fd) + return path + + models = HYPERPARAMETER_DEFAULTS.models_grid( + impute=[False, True], + activation=["tanh"], + layer_sizes=[[4], [8]], + embedding_output_dim=[16], + dropout_probability=[.25], + n_training_epochs=[10], + imputer_args=[{"n_burn_in": 2, "n_imputations": 10}], + impute_min_observations_per_peptide=[1], + impute_min_observations_per_allele=[1], + ) + print("Model selection will be over %d models" % len(models)) + + bdata2009 = get_path( + "data_kim2014", "bdata.2009.mhci.public.1.txt") + mkdir(join(temp_dir, "models")) + + args = [ + '--parallel-backend', 'local-threads', + "--model-architectures", write_json(models, "models.json"), + "--train-data", bdata2009, + "--out-manifest", join(temp_dir, "models.csv"), + "--out-models", join(temp_dir, "models"), + "--alleles", "HLA-A0201", "HLA-A0301", + "--verbose", + "--num-local-threads", "1", + "--ensemble-size", "2", + "--target-tasks", "1", + ] + print("Running train command with args: %s " % str(args)) + + train_command.run(args) diff --git a/test/test_imputation.py b/test/test_imputation.py index 81cea624cf21903a2d23c4b8c517fa0b97cc7ac4..d30f12f7229475ccbed003e6cda8ffef204450ec 100644 --- a/test/test_imputation.py +++ b/test/test_imputation.py @@ -2,7 +2,7 @@ import numpy as np np.random.seed(0) from mhcflurry.imputation_helpers import imputer_from_name -from mhcflurry.dataset import Dataset +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset from mhcflurry import Class1BindingPredictor from fancyimpute import MICE, KNN, SoftImpute, IterativeSVD @@ -12,13 +12,13 @@ from mhcflurry.downloads import get_path def test_create_imputed_datasets_empty(): - empty_dataset = Dataset.create_empty() + empty_dataset = AffinityMeasurementDataset.create_empty() result = empty_dataset.impute_missing_values(MICE(n_imputations=25)) eq_(result, empty_dataset) def test_create_imputed_datasets_two_alleles(): - dataset = Dataset.from_nested_dictionary({ + dataset = AffinityMeasurementDataset.from_nested_dictionary({ "HLA-A*02:01": { "A" * 9: 20.0, "C" * 9: 40000.0, @@ -38,7 +38,7 @@ def test_create_imputed_datasets_two_alleles(): def test_performance_improves_for_A0205_with_pretraining(): # test to make sure that imputation improves predictive accuracy after a # small number of training iterations (5 epochs) - dataset = Dataset.from_csv( + dataset = AffinityMeasurementDataset.from_csv( get_path("data_combined_iedb_kim2014", "combined_human_class1_dataset.csv")) print("Full dataset: %d pMHC entries" % len(dataset)) @@ -51,7 +51,7 @@ def test_performance_improves_for_A0205_with_pretraining(): a0205_data_without_imputation = dataset.get_allele("HLA-A0205") - print("Dataset with only A0205, # entries: %d" % ( + print("AffinityMeasurementDataset with only A0205, # entries: %d" % ( len(a0205_data_without_imputation))) predictor_without_imputation = Class1BindingPredictor( diff --git a/test/test_known_class1_epitopes.py b/test/test_known_class1_epitopes.py index 7434c1a519dfc296c5cfbcede5910e0f0a7722a5..a1c35794c94aa0421bef39ba64cc2778717ee5b3 100644 --- a/test/test_known_class1_epitopes.py +++ b/test/test_known_class1_epitopes.py @@ -12,7 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -from mhcflurry.class1_allele_specific import load +import cProfile + +import mhcflurry +import mhcflurry.class1_allele_specific +import mhcflurry.class1_allele_specific_ensemble + + +predictors = [ + mhcflurry.class1_allele_specific.get_downloaded_predictor(), + mhcflurry.class1_allele_specific_ensemble.get_downloaded_predictor(), +] + + +def predict_and_check(allele, peptide, expected_range=(0, 500)): + for predictor in predictors: + (prediction,) = predictor.predict_for_allele(allele, [peptide]) + assert prediction >= expected_range[0], (predictor, prediction) + assert prediction <= expected_range[1], (predictor, prediction) def test_A1_Titin_epitope(): @@ -20,12 +37,7 @@ def test_A1_Titin_epitope(): # Identification of a Titin-Derived HLA-A1-Presented Peptide # as a Cross-Reactive Target for Engineered MAGE A3-Directed # T Cells - model = load.from_allele_name("HLA-A*01:01") - ic50s = model.predict(["ESDPIVAQY"]) - print(ic50s) - assert len(ic50s) == 1 - ic50 = ic50s[0] - assert ic50 <= 500, ic50 + predict_and_check("HLA-A*01:01", "ESDPIVAQY") def test_A1_MAGE_epitope(): @@ -33,23 +45,13 @@ def test_A1_MAGE_epitope(): # Identification of a Titin-Derived HLA-A1-Presented Peptide # as a Cross-Reactive Target for Engineered MAGE A3-Directed # T Cells - model = load.from_allele_name("HLA-A*01:01") - ic50s = model.predict(["EVDPIGHLY"]) - print(ic50s) - assert len(ic50s) == 1 - ic50 = ic50s[0] - assert ic50 <= 500, ic50 + predict_and_check("HLA-A*01:01", "EVDPIGHLY") def test_A2_HIV_epitope(): # Test the A2 HIV epitope SLYNTVATL from # The HIV-1 HLA-A2-SLYNTVATL Is a Help-Independent CTL Epitope - model = load.from_allele_name("HLA-A*02:01") - ic50s = model.predict(["SLYNTVATL"]) - print(ic50s) - assert len(ic50s) == 1 - ic50 = ic50s[0] - assert ic50 <= 500, ic50 + predict_and_check("HLA-A*02:01", "SLYNTVATL") if __name__ == "__main__": diff --git a/test/test_load_allele_datasets.py b/test/test_load_allele_datasets.py index 7c76be9e6b761f063598cbcbb375fe6933078a8d..7103a18c4b7e6838f75c288a4594a9349395dba6 100644 --- a/test/test_load_allele_datasets.py +++ b/test/test_load_allele_datasets.py @@ -1,10 +1,10 @@ -from mhcflurry.dataset import Dataset +from mhcflurry.affinity_measurement_dataset import AffinityMeasurementDataset from nose.tools import eq_ from . import data_path def load_csv(filename): - return Dataset.from_csv(data_path(filename)) + return AffinityMeasurementDataset.from_csv(data_path(filename)) def test_load_allele_datasets_8mer(): diff --git a/test/test_predict.py b/test/test_predict.py index 12dd9ba6cce9cb09bbf0c26a96ae0db69c8f2b5c..cc67d065812354319b254b93c75382629d646384 100644 --- a/test/test_predict.py +++ b/test/test_predict.py @@ -7,3 +7,17 @@ def test_predict_A1_Titin_epitope(): row = result_df.ix[0] ic50 = row["Prediction"] assert ic50 <= 500 + + +def test_predict_duplicates_and_empty(): + result_df = predict( + alleles=["HLA-A*01:01", "HLA-A01:01"], + peptides=["ESDPIVAQY", "ESDPIVAQY"]) + assert len(set(result_df.Prediction)) == 1 + assert len(set(result_df.Allele)) == 1 + assert len(set(result_df.Peptide)) == 1 + + result_df = predict( + alleles=["HLA-A*01:01"], + peptides=[]) + assert len(result_df) == 0 \ No newline at end of file