{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Rescaling\n", "## Rescaling base quality scores using aDNA damage profile" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The idea of rescaling read base quality scores using damage profile was first introduced by mapDamage2. \n", "Rescaling base quality score is one of the way to deal with aDNA damage, which otherwise can introduces biases, in variant calling for example. \n", "\n", "However, the runtime necessary to rescale these reads with mapDamage2 made it more than often prohibitive to use this functionality. \n", "Starting from version 0.80, PyDamage now also offers a base quality score rescaling.\n", "\n", "This notebook is used to demontrate the performance of PyDamage v0.80 vs the current version of mapDamage2 (v2.2.2 as of 2024/09/18), and compare their rescaling results.\n", "\n", "For both PyDamage and mapDamage, the output of the rescaling will be a `BAM` file with rescaled read base quality score." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:44:52.780690Z", "iopub.status.busy": "2024-09-19T09:44:52.780391Z", "iopub.status.idle": "2024-09-19T09:44:54.980653Z", "shell.execute_reply": "2024-09-19T09:44:54.980036Z" } }, "outputs": [], "source": [ "import pandas as pd\n", "import pysam\n", "from plotnine import *\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:44:54.984723Z", "iopub.status.busy": "2024-09-19T09:44:54.984323Z", "iopub.status.idle": "2024-09-19T09:45:02.257072Z", "shell.execute_reply": "2024-09-19T09:45:02.255385Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pydamage, version 0.80\r\n" ] } ], "source": [ "! pydamage --version" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:45:02.261502Z", "iopub.status.busy": "2024-09-19T09:45:02.261113Z", "iopub.status.idle": "2024-09-19T09:49:48.584822Z", "shell.execute_reply": "2024-09-19T09:49:48.583774Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Estimating and testing Damage\r\n", "Computing alignment stats for entire reference\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 0it [00:00, ?it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 11422it [00:00, 114152.07it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 23080it [00:00, 115564.42it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 34637it [00:00, 112379.51it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 46904it [00:00, 116370.15it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 58984it [00:00, 117947.02it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 70789it [00:00, 117511.17it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 82547it [00:00, 114832.58it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 94823it [00:00, 117300.05it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 107288it [00:00, 119561.15it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 119258it [00:01, 119035.95it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 131172it [00:01, 115322.56it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 142733it [00:01, 114135.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 154166it [00:01, 113346.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 165514it [00:01, 111400.21it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 178148it [00:01, 115767.59it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 190725it [00:01, 118713.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 203456it [00:01, 121257.10it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 215601it [00:01, 119441.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 227594it [00:01, 119584.84it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 240166it [00:02, 121399.90it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 252866it [00:02, 123062.60it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 265543it [00:02, 124165.52it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 278130it [00:02, 124672.37it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 290603it [00:02, 118672.24it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 302534it [00:02, 116520.31it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 315059it [00:02, 119032.93it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 327739it [00:02, 121294.18it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 340463it [00:02, 123039.47it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 353257it [00:02, 124486.17it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 366042it [00:03, 125482.73it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 378923it [00:03, 126472.37it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 391583it [00:03, 126079.39it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 404334it [00:03, 126503.70it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 417081it [00:03, 126788.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 429869it [00:03, 127112.66it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 442584it [00:03, 126924.38it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 455279it [00:03, 126442.32it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 467989it [00:03, 126636.35it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 480655it [00:03, 125484.27it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 493390it [00:04, 126037.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 506049it [00:04, 126199.66it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 518756it [00:04, 126457.98it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 531490it [00:04, 126717.94it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 544163it [00:04, 126633.10it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 556828it [00:04, 126490.11it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 569478it [00:04, 126315.70it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 582142it [00:04, 126409.44it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 594784it [00:04, 126220.51it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 607407it [00:04, 125972.04it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 620023it [00:05, 126022.45it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 632726it [00:05, 126321.58it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 645499it [00:05, 126740.61it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 658174it [00:05, 126703.90it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 670845it [00:05, 126398.32it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 683486it [00:05, 125324.18it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 696021it [00:05, 124843.38it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 708507it [00:05, 124528.19it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 720961it [00:05, 123695.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 733355it [00:05, 123766.40it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 746024it [00:06, 124633.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 758716it [00:06, 125313.43it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 771330it [00:06, 125558.97it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 784093it [00:06, 126175.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 796712it [00:06, 125299.85it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 809244it [00:06, 124661.71it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 821858it [00:06, 125098.63it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 834406it [00:06, 125209.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 846929it [00:06, 125078.14it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 859498it [00:06, 125259.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 872029it [00:07, 125271.78it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 884680it [00:07, 125640.30it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 897296it [00:07, 125794.44it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 909876it [00:07, 125460.91it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 922423it [00:07, 125282.48it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 934952it [00:07, 123208.34it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 947281it [00:07, 121741.66it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 959571it [00:07, 122081.75it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 972035it [00:07, 122837.63it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 984724it [00:08, 124040.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 997226it [00:08, 124330.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1009817it [00:08, 124800.58it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1022419it [00:08, 125162.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1035105it [00:08, 125669.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1047834it [00:08, 126153.79it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1060530it [00:08, 126390.91it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1073170it [00:08, 126330.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1085804it [00:08, 126118.94it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1098456it [00:08, 126234.75it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1111080it [00:09, 126183.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1123841it [00:09, 126608.11it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1136503it [00:09, 126400.51it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1149144it [00:09, 125867.24it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1161732it [00:09, 123785.52it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1174118it [00:09, 123564.24it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1186480it [00:09, 120100.34it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1198512it [00:09, 117798.07it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1210964it [00:09, 119746.18it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1222959it [00:09, 115656.48it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1234562it [00:10, 114573.50it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1246044it [00:10, 114633.27it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1257525it [00:10, 113551.79it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1269208it [00:10, 114507.57it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1280735it [00:10, 114729.56it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1293496it [00:10, 118544.36it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1306889it [00:10, 123119.03it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1320394it [00:10, 126675.07it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1333072it [00:10, 126404.25it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1346560it [00:10, 128931.61it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1360049it [00:11, 130711.21it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1373608it [00:11, 132170.26it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1387333it [00:11, 133689.24it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1401102it [00:11, 134885.71it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1414769it [00:11, 135416.63it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1428550it [00:11, 136132.79it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1442439it [00:11, 136957.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1456204it [00:11, 137161.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1470254it [00:11, 138160.57it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1484071it [00:11, 135357.83it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1497691it [00:12, 135604.97it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1511261it [00:12, 135555.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1525127it [00:12, 136479.40it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1538803it [00:12, 136560.55it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1552663it [00:12, 137168.68it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1566629it [00:12, 137912.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1580588it [00:12, 138412.53it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1594551it [00:12, 138776.84it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1608492it [00:12, 138963.38it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1622463it [00:12, 139185.37it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1636399it [00:13, 139230.90it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1650386it [00:13, 139420.61it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1664329it [00:13, 139411.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1678271it [00:13, 139125.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1692184it [00:13, 138636.11it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1706190it [00:13, 139059.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1720117it [00:13, 139121.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1734030it [00:13, 137587.07it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1747793it [00:13, 137484.00it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1761545it [00:13, 136278.46it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1775177it [00:14, 132925.70it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1788488it [00:14, 130877.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1801591it [00:14, 129261.42it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1814528it [00:14, 128303.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1827365it [00:14, 127737.67it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1840143it [00:14, 127284.26it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1852874it [00:14, 127084.53it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1865584it [00:14, 123388.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1878286it [00:14, 124442.61it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1891118it [00:14, 125579.92it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1903710it [00:15, 125676.21it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1916318it [00:15, 125795.04it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1928930it [00:15, 125889.34it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1941644it [00:15, 126259.21it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1954416it [00:15, 126694.34it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1967089it [00:15, 126490.82it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1979741it [00:15, 125664.92it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 1992359it [00:15, 125814.95it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2005146it [00:15, 126426.70it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2017791it [00:16, 126121.72it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2030405it [00:16, 121883.67it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2042624it [00:16, 119517.65it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2054602it [00:16, 115539.25it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2066193it [00:16, 114352.70it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2078227it [00:16, 116072.67it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2089858it [00:16, 115894.42it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2101466it [00:16, 115947.68it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2113865it [00:16, 118320.87it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2126200it [00:16, 119811.66it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2138814it [00:17, 121692.61it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2151481it [00:17, 123173.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2164180it [00:17, 124311.28it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2176617it [00:17, 124292.80it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2189342it [00:17, 125176.45it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2201863it [00:17, 124486.11it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2214315it [00:17, 124445.43it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2227149it [00:17, 125607.12it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2239969it [00:17, 126381.52it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2252609it [00:17, 125839.16it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2265195it [00:18, 125411.81it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2277859it [00:18, 125777.49it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2290580it [00:18, 126203.83it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2303213it [00:18, 126238.38it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2315838it [00:18, 126213.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2328512it [00:18, 126366.42it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2341149it [00:18, 125943.88it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2353744it [00:18, 125923.75it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2366512it [00:18, 126445.84it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2379348it [00:18, 127015.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2392136it [00:19, 127272.74it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2404870it [00:19, 127288.66it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2417601it [00:19, 127291.09it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2430369it [00:19, 127405.93it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2443110it [00:19, 127167.50it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2455827it [00:19, 127014.90it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2468529it [00:19, 126982.29it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2481370it [00:19, 127408.98it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2494248it [00:19, 127815.68it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2507030it [00:19, 127412.69it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2519772it [00:20, 127097.08it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2532483it [00:20, 126408.97it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2545260it [00:20, 126811.64it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2557947it [00:20, 126827.12it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2570631it [00:20, 126754.82it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2583339it [00:20, 126850.89it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2596025it [00:20, 126587.14it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2608762it [00:20, 126816.95it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2621593it [00:20, 127260.39it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2634402it [00:20, 127505.96it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2647205it [00:21, 127660.40it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2659972it [00:21, 127524.04it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2672725it [00:21, 127480.51it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2685498it [00:21, 127553.40it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2698291it [00:21, 127662.86it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2711058it [00:21, 127277.72it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2723787it [00:21, 127071.56it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2736495it [00:21, 126321.35it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2749129it [00:21, 126114.04it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2761762it [00:21, 126174.20it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2774380it [00:22, 125968.29it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2786978it [00:22, 125865.74it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2799565it [00:22, 125829.01it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2812149it [00:22, 125725.60it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2824722it [00:22, 125517.64it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2837328it [00:22, 125675.98it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2849896it [00:22, 125367.22it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2862433it [00:22, 125266.80it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2874960it [00:22, 125027.90it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2887525it [00:22, 125210.38it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2900312it [00:23, 126004.39it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2912913it [00:23, 125873.71it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2925501it [00:23, 124646.72it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2938029it [00:23, 124831.64it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2950622it [00:23, 125156.09it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2963140it [00:23, 124270.40it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2975570it [00:23, 122706.25it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 2987846it [00:23, 121852.06it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3000035it [00:23, 121230.19it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3012161it [00:23, 120493.26it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3024212it [00:24, 118144.34it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3036035it [00:24, 117696.71it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3047850it [00:24, 117826.94it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3059664it [00:24, 117915.94it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3071459it [00:24, 117629.39it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3083261it [00:24, 117741.35it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3095155it [00:24, 118096.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3106966it [00:24, 116752.75it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3118725it [00:24, 116999.80it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3130489it [00:24, 117187.33it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3142374it [00:25, 117681.03it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3154144it [00:25, 117493.76it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3165982it [00:25, 117755.71it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3177759it [00:25, 117397.92it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3189549it [00:25, 117546.54it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Compute damage for entire reference: 3194672it [00:25, 125123.77it/s]\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Rescaling quality scores: 0%| | 0/230 [00:00" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%timeit -r 3 -o\n", "! pydamage analyze --rescale --group --force ../../tests/data/bigger_test_data.bam" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:49:48.591745Z", "iopub.status.busy": "2024-09-19T09:49:48.591267Z", "iopub.status.idle": "2024-09-19T09:49:48.595599Z", "shell.execute_reply": "2024-09-19T09:49:48.594810Z" } }, "outputs": [], "source": [ "res = _\n", "res_dict = {\n", " \"pydamage v0.80\" : {\n", " \"mean\" : res.average,\n", " \"std\" : res.stdev\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:49:48.597617Z", "iopub.status.busy": "2024-09-19T09:49:48.597287Z", "iopub.status.idle": "2024-09-19T09:52:45.740788Z", "shell.execute_reply": "2024-09-19T09:52:45.739544Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\r\n", "Estimating and testing Damage: 0%| | 0/230 [00:00" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%timeit -r 3 -o\n", "! pydamage analyze --rescale -p 8 --force ../../tests/data/bigger_test_data.bam" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:52:45.745667Z", "iopub.status.busy": "2024-09-19T09:52:45.745255Z", "iopub.status.idle": "2024-09-19T09:52:45.749149Z", "shell.execute_reply": "2024-09-19T09:52:45.748781Z" } }, "outputs": [], "source": [ "res = _\n", "res_dict[\"pydamage v0.80 - parallel\"] = {\n", " \"mean\" : res.average,\n", " \"std\" : res.stdev\n", "}" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:52:45.751202Z", "iopub.status.busy": "2024-09-19T09:52:45.750782Z", "iopub.status.idle": "2024-09-19T09:52:46.286244Z", "shell.execute_reply": "2024-09-19T09:52:46.284724Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2.2.2\r\n" ] } ], "source": [ "! mapDamage --version" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T09:52:46.291498Z", "iopub.status.busy": "2024-09-19T09:52:46.290826Z", "iopub.status.idle": "2024-09-19T10:36:51.098213Z", "shell.execute_reply": "2024-09-19T10:36:51.097174Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Warning, results_bigger_test_data already exists\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Started with the command: /home/maxime_borry/miniforge3/envs/pydamage_bench/bin/mapDamage -i ../../tests/data/bigger_test_data.bam -r ../../tests/data/ref_genome.fa --rescale\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tReading from '../../tests/data/bigger_test_data.bam'\r\n", "\tWriting results to 'results_bigger_test_data/'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "pdf results_bigger_test_data/Fragmisincorporation_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "additional results_bigger_test_data/Length_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Performing Bayesian estimates\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Starting grid search, starting from random values\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 1 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 2 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 3 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 4 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 5 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 6 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 7 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 8 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 9 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 10 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done burning, starting the iterations\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done with the iterations, finishing up\r\n", "Writing and plotting to files\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[?25h\u001b[?25h" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Rescaling BAM: '../../tests/data/bigger_test_data.bam' -> 'results_bigger_test_data/bigger_test_data.rescaled.bam'\r\n", "Warning! Assuming the pairs are non-overlapping, facing inwards and correctly paired.\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of non-rescaled reads due to improper pairing: 845319\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tThe expected substition frequencies before and after scaling using the scaled qualities as probalities:\r\n", "\tCT\t0.022074949825252405\t\t0.012365374164447053\r\n", "\tTC\t0.006143060440522095\t\t0.006143060440522095\r\n", "\tGA\t0.022384267009500677\t\t0.012317144729004435\r\n", "\tAG\t0.006157675379772034\t\t0.006157675379772034\r\n", "\tQuality metrics before and after scaling\r\n", "\tCT-Q0 \t541379\t\t541379\r\n", "\tCT-Q10 \t541379\t\t259309\r\n", "\tCT-Q20 \t533542\t\t255363\r\n", "\tCT-Q30 \t529743\t\t253189\r\n", "\tCT-Q40 \t0\t\t0\r\n", "\tGA-Q0 \t559491\t\t559491\r\n", "\tGA-Q10 \t559491\t\t262017\r\n", "\tGA-Q20 \t548446\t\t257032\r\n", "\tGA-Q30 \t543260\t\t254466\r\n", "\tGA-Q40 \t0\t\t0\r\n", "Successful run\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning, results_bigger_test_data already exists\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Started with the command: /home/maxime_borry/miniforge3/envs/pydamage_bench/bin/mapDamage -i ../../tests/data/bigger_test_data.bam -r ../../tests/data/ref_genome.fa --rescale\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tReading from '../../tests/data/bigger_test_data.bam'\r\n", "\tWriting results to 'results_bigger_test_data/'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "pdf results_bigger_test_data/Fragmisincorporation_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "additional results_bigger_test_data/Length_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Performing Bayesian estimates\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Starting grid search, starting from random values\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 1 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 2 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 3 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 4 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 5 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 6 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 7 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 8 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 9 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 10 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done burning, starting the iterations\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done with the iterations, finishing up\r\n", "Writing and plotting to files\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[?25h\u001b[?25hRescaling BAM: '../../tests/data/bigger_test_data.bam' -> 'results_bigger_test_data/bigger_test_data.rescaled.bam'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning! Assuming the pairs are non-overlapping, facing inwards and correctly paired.\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of non-rescaled reads due to improper pairing: 845319\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tThe expected substition frequencies before and after scaling using the scaled qualities as probalities:\r\n", "\tCT\t0.022074949825252405\t\t0.012365282422660039\r\n", "\tTC\t0.006143060440522095\t\t0.006143060440522095\r\n", "\tGA\t0.022384267009500677\t\t0.012317048861071829\r\n", "\tAG\t0.006157675379772034\t\t0.006157675379772034\r\n", "\tQuality metrics before and after scaling\r\n", "\tCT-Q0 \t541379\t\t541379\r\n", "\tCT-Q10 \t541379\t\t259309\r\n", "\tCT-Q20 \t533542\t\t255363\r\n", "\tCT-Q30 \t529743\t\t253189\r\n", "\tCT-Q40 \t0\t\t0\r\n", "\tGA-Q0 \t559491\t\t559491\r\n", "\tGA-Q10 \t559491\t\t262017\r\n", "\tGA-Q20 \t548446\t\t257032\r\n", "\tGA-Q30 \t543260\t\t254466\r\n", "\tGA-Q40 \t0\t\t0\r\n", "Successful run\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning, results_bigger_test_data already exists\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Started with the command: /home/maxime_borry/miniforge3/envs/pydamage_bench/bin/mapDamage -i ../../tests/data/bigger_test_data.bam -r ../../tests/data/ref_genome.fa --rescale\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tReading from '../../tests/data/bigger_test_data.bam'\r\n", "\tWriting results to 'results_bigger_test_data/'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "pdf results_bigger_test_data/Fragmisincorporation_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "additional results_bigger_test_data/Length_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Performing Bayesian estimates\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Starting grid search, starting from random values\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 1 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 2 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 3 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 4 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 5 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 6 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 7 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 8 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 9 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 10 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done burning, starting the iterations\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done with the iterations, finishing up\r\n", "Writing and plotting to files\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[?25h" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[?25h" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Rescaling BAM: '../../tests/data/bigger_test_data.bam' -> 'results_bigger_test_data/bigger_test_data.rescaled.bam'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning! Assuming the pairs are non-overlapping, facing inwards and correctly paired.\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of non-rescaled reads due to improper pairing: 845319\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tThe expected substition frequencies before and after scaling using the scaled qualities as probalities:\r\n", "\tCT\t0.022074949825252405\t\t0.012365388851336931\r\n", "\tTC\t0.006143060440522095\t\t0.006143060440522095\r\n", "\tGA\t0.022384267009500677\t\t0.012317157513671044\r\n", "\tAG\t0.006157675379772034\t\t0.006157675379772034\r\n", "\tQuality metrics before and after scaling\r\n", "\tCT-Q0 \t541379\t\t541379\r\n", "\tCT-Q10 \t541379\t\t259309\r\n", "\tCT-Q20 \t533542\t\t255363\r\n", "\tCT-Q30 \t529743\t\t253189\r\n", "\tCT-Q40 \t0\t\t0\r\n", "\tGA-Q0 \t559491\t\t559491\r\n", "\tGA-Q10 \t559491\t\t262017\r\n", "\tGA-Q20 \t548446\t\t257032\r\n", "\tGA-Q30 \t543260\t\t254466\r\n", "\tGA-Q40 \t0\t\t0\r\n", "Successful run\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning, results_bigger_test_data already exists\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Started with the command: /home/maxime_borry/miniforge3/envs/pydamage_bench/bin/mapDamage -i ../../tests/data/bigger_test_data.bam -r ../../tests/data/ref_genome.fa --rescale\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tReading from '../../tests/data/bigger_test_data.bam'\r\n", "\tWriting results to 'results_bigger_test_data/'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "pdf results_bigger_test_data/Fragmisincorporation_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "additional results_bigger_test_data/Length_plot.pdf generated\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Performing Bayesian estimates\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Starting grid search, starting from random values\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 1 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 2 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 3 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 4 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 5 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 6 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 7 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 8 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 9 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Adjusting the proposal variance iteration 10 \r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done burning, starting the iterations\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Done with the iterations, finishing up\r\n", "Writing and plotting to files\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\u001b[?25h\u001b[?25hRescaling BAM: '../../tests/data/bigger_test_data.bam' -> 'results_bigger_test_data/bigger_test_data.rescaled.bam'\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Warning! Assuming the pairs are non-overlapping, facing inwards and correctly paired.\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of non-rescaled reads due to improper pairing: 845319\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\tThe expected substition frequencies before and after scaling using the scaled qualities as probalities:\r\n", "\tCT\t0.022074949825252405\t\t0.012365272201902557\r\n", "\tTC\t0.006143060440522095\t\t0.006143060440522095\r\n", "\tGA\t0.022384267009500677\t\t0.012317043166668018\r\n", "\tAG\t0.006157675379772034\t\t0.006157675379772034\r\n", "\tQuality metrics before and after scaling\r\n", "\tCT-Q0 \t541379\t\t541379\r\n", "\tCT-Q10 \t541379\t\t259309\r\n", "\tCT-Q20 \t533542\t\t255363\r\n", "\tCT-Q30 \t529743\t\t253189\r\n", "\tCT-Q40 \t0\t\t0\r\n", "\tGA-Q0 \t559491\t\t559491\r\n", "\tGA-Q10 \t559491\t\t262017\r\n", "\tGA-Q20 \t548446\t\t257032\r\n", "\tGA-Q30 \t543260\t\t254466\r\n", "\tGA-Q40 \t0\t\t0\r\n", "Successful run\r\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "10min 53s ± 4.72 s per loop (mean ± std. dev. of 3 runs, 1 loop each)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%timeit -r 3 -o\n", "! mapDamage -i ../../tests/data/bigger_test_data.bam -r ../../tests/data/ref_genome.fa --rescale" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:36:51.100921Z", "iopub.status.busy": "2024-09-19T10:36:51.100536Z", "iopub.status.idle": "2024-09-19T10:36:51.104002Z", "shell.execute_reply": "2024-09-19T10:36:51.103576Z" } }, "outputs": [], "source": [ "res = _\n", "res_dict[\"mapDamage v2.2.2\"] = {\n", " \"mean\" : res.average,\n", " \"std\" : res.stdev\n", "}" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:36:51.105921Z", "iopub.status.busy": "2024-09-19T10:36:51.105638Z", "iopub.status.idle": "2024-09-19T10:36:51.110620Z", "shell.execute_reply": "2024-09-19T10:36:51.110210Z" } }, "outputs": [], "source": [ "runtimes = pd.DataFrame.from_dict(res_dict, orient=\"index\")" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:36:51.112231Z", "iopub.status.busy": "2024-09-19T10:36:51.112008Z", "iopub.status.idle": "2024-09-19T10:36:55.936068Z", "shell.execute_reply": "2024-09-19T10:36:55.934975Z" } }, "outputs": [ { "data": { "image/png": "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AAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAA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1nniiSeSJDvuuONqp/127NgxO+ywQ5577rk8/vjj2X///ZuNnTdvXl588cXKYwEAAABAtVUlAJbL5fz1r3/N9ddfn9tuuy3Tp09/2zHbbrttPvaxj+X444/PRz7ykZRKpWpMpZlLL710jcvPOuusTJo0KYcddljOPPPM1ZYNHjw43bt3z6JFi3L99dfntNNOW2353LlzM27cuCTJIYcc0mzbQ4cOzXPPPZdx48blxBNPbBY9r7vuupTL5fTs2VMABAAAAGCj2KBrAC5YsCAjR47MNttskyOOOCK/+MUvMn369JTL5bf974UXXsgvfvGLHHHEEdlmm20ycuTINV4rb1No165dPv3pTydJbr755owePbpy045p06bl/PPPT11dXfr27ZvDDz+82fgjjjgiffr0SV1dXc4///xMmzYtyRs3/hg9enRuueWWJMnJJ5+ctm0LfzY2AAAAAJtAqVwul9d10Kuvvpqf/OQnueSSS7J06dKsuolOnTpl7733zs4775wtt9wyPXv2TNeuXbNkyZIsWLAg8+fPz+TJk/Poo49m2bJl/zeRUimdOnXKv/3bv+Vb3/pWunbtWp1n+DbWdARgk8svvzy33XZbkqRNmzapra2tzL1bt26VCNqSF154ISNGjMiSJUuSvPH61NfXp7GxMUly1FFH5ctf/vIGPYemuwD369cvM2fO3KBtAQAAAFAs63zY2W9/+9v8x3/8R+bMmVMJf/vtt18+9alP5ZBDDsngwYPTpk2bt91OY2NjJkyYkHHjxmX06NF58MEHs3Tp0owcOTK//OUv8+Mf/zinnnrquj+jjeArX/lK9thjj4wZMyZTp06tHPX34Q9/OCeccEK6d+/e6thtt902l112WUaPHp3x48dn/vz56dSpU7bbbrsceeSRLV4bEAAAAACqZZ2PAKypeeOs4S222CKnn356vvSlL+X973//Bk9k6tSp+fnPf54rrrgiS5YsSU1NTRoaGjZ4u5sDRwACAAAA0Jp1DoBbbLFF/v3f/z1f//rX061bt6pPaMmSJbnkkkty4YUXVk6bZc0EQAAAAABas84BcM6cOenTp8/Gmk/F3Llzm901l5YJgAAAAAC0Zp3vAvxOxL8k4h8AAAAAVME6B0AAAAAA4L1DAAQAAACAAmv7Tj7Y8uXL8/Of/zz33XdfGhoasscee+SMM87I1ltv/U5OAwAAAAA2G+t8E5DWPP300znppJNSKpXy85//PPvtt99qy5csWZKDDjookyZNWu3rPXv2zB133JEhQ4ZUYxqbJTcBAQAAAKA1VTsFeMyYMZk0aVLmzJmTfffdt9nys88+OxMnTky5XF7tv/nz5+eEE05IfX19taYCAAAAALypagHw7rvvTqlUykc/+tGUSqXVlr366qu56qqrUiqVss022+T666/P3//+95x22mlJkunTp2fUqFHVmgoAAAAA8KaqBcDp06cnSYun8o4ZMyZ1dXVJkiuvvDLHHXdcBg8enF/84hfZbbfdkiR/+ctfqjUVAAAAAOBNVQuAc+fOTZIWb+gxduzYyrKPfOQjqy0bPnx4yuVyJkyYUK2pAAAAAABvqloAXLhw4RsbrGm+yfvuuy+lUinDhg1rtmzgwIFJ/i8gAgAAAADVU7UA2KlTpyTNQ96iRYvy1FNPJUn233//ZuM6dOiQJGlsbKzWVAAAAACAN1UtAG677bZJkvvvv3+1r998880pl8tJkgMOOKDZuPnz5ydJunXrVq2pAAAAAABvqloAPOigg1Iul3PjjTdWrue3ZMmS/OQnP0mS9OvXL7vuumuzcZMmTUqSDBo0qFpTAQAAAADeVLUAeNppp6WmpiZ1dXX50Ic+lH333Tfbb799Jk2alFKplNNOO63FcXfffXdKpVL23nvvak0FAAAAAHhT1QLg4MGDc+6556ZcLuf111/PI488kvnz56dcLme33XbLt771rWZjJk6cmGeeeSZJcuihh1ZrKgAAAADAm9pWc2Pf+c53sscee+SKK67IP/7xj3Tu3DmHH354/vM//zMdO3Zstv7//M//JElKpVIOOeSQak4FAAAAAEhSKjfdoYP3rP79+2fWrFnp169fZs6cuamnAwAAAMC7SNVOAQYAAAAA3n0EQAAAAAAoMAEQAAAAAApsnQPg8OHDM3Xq1I0xl4qJEyfmE5/4xEZ9DAAAAADYHKxzAPzzn/+cnXfeOf/8z/+cp556qqqTmThxYk488cQMGTIkN910U1W3DQAAAACbo3UOgB/96EezYsWK/O53v8vgwYNz8MEH53//93+zYMGC9ZrAvHnz8tOf/jR777139thjj4wePTorV67MRz/60fXaHgAAAADwf0rlcrm8roP+/Oc/5z//8z8zZcqUlEqlJElNTU0++MEPZt99982HP/zh7LzzzunZs2d69uyZrl27ZsmSJVmwYEEWLFiQZ555Jg8//HD+9re/5amnnkpjY2OapvH+978/P/zhD/PJT36yus+0wPr3759Zs2alX79+mTlz5qaeDgAAAADvIusVAJOksbExv/rVr/Lf//3fee65597Y2JsxcF00PfxOO+2Ub33rW/nc5z6XNm3arM+UNlsCIAAAAACtWe8AuKo77rgjv/71r3PLLbfk1VdfXetx3bp1yzHHHJPPfe5zGTZs2IZOY7MlAAIAAADQmqoEwCYNDQ158MEH8/DDD2fixIl54YUXsmDBgtTX16e2tjZbbrlltt122wwePDj77rtv9ttvP0f7VYEACAAAAEBrqhoA2TQEQAAAAABas853AQYAAAAA3jsEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIAC2+gB8PXXX8/s2bMzY8aMjf1QAAAAAMBbtN0YG33uuedy6aWX5vbbb8+0adOSJKVSKQ0NDaut96c//SlTpkxJ37598/nPf35jTAUAAAAANmtVD4A/+tGP8p3vfCeNjY0pl8trXHf58uUZMWJE2rZtm6OPPjp9+vSp9nQAAAAAYLNW1VOAf/jDH+ass85KQ0NDampqst9+++XAAw9sdf2TTjopnTp1SmNjY2666aZqTgUAAAAASBUD4PPPP5/vfOc7SZLBgwfnqaeeygMPPJBvfvObrY7p0KFDhg0bliS55557qjUVAAAAAOBNVQuAl112WRobG9O9e/fcfvvt2XHHHddq3N57751yuZyJEydWayoAAAAAwJuqFgDvvvvulEqlfPazn81WW2211uMGDhyYJHnxxRerNRUAAAAA4E1VC4BNAW/vvfdep3GdO3dOkrz22mvVmgoAAAAA8KaqBcD6+vokSfv27ddp3Kuvvprk/0IgAAAAAFA9VQuAvXv3TpLMnDlzncZNmDAhSdbptGEAAAAAYO1ULQDuvvvuKZfLuf3229d6TENDQ6699tqUSqXsu+++1ZoKAAAAAPCmqgXAY445Jkny17/+NWPHjl2rMd/5zncya9asJMlxxx1XrakAAAAAAG+qWgD83Oc+l/e9730pl8s5/vjjc8stt7S67oIFC3LGGWfkxz/+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AAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKLC2m3oC74R58+bl4YcfzoQJEzJ16tQsXLgwNTU16dWrV3bdddccffTRGThw4Bq38dBDD2XMmDGZMmVK6uvr06tXr+yzzz4ZPnx4unbtusaxixcvzujRozN+/PjMnz8/tbW12X777XPUUUdl3333reZTBQAAAIDVlMrlcnlTT2Jjmjt3br74xS9m1afZoUOHNDY2ZsWKFUmSNm3a5Atf+EKOPvroFrfx85//PLfeemuSpKamJrW1tVm+fHmSpHv37hk5cmQGDBjQ4tgZM2bk7LPPzuLFi5MkHTt2TH19fVauXJkkOeaYY3Laaadt0HPs379/Zs2alX79+mXmzJkbtC0AAAAAiqXwRwCuXLky5XI5Q4YMyWGHHZbBgwenR48eaWxszNSpU3PVVVfl6aefzhVXXJGtt946e+2112rjb7/99tx6660plUo55ZRTcuyxx6a2tjbTpk3LRRddlOnTp+eCCy7IZZddlnbt2q02dsWKFbnggguyePHiDBw4MN/4xjcyaNCg1NfX58Ybb8yoUaNy0003ZdCgQfnIRz7yTr4sAAAAAGwmCn8NwC5duuTiiy/Oeeedl4MPPjg9evRI8sZRfzvssEPOP//8yum/11133WpjV6xYkauvvjpJcvTRR2f48OGpra1NkgwaNCjnnHNOOnTokJdffjl33nlns8e+/fbbM3v27HTo0CHnnHNOBg0alCSpra3N8OHD8/GPfzxJMmrUqDQ0NGycFwAAAACAzVrhA2Dnzp2z/fbbt7q8Xbt2OeSQQ5IkU6ZMWW3ZhAkTsnDhwpRKpRx//PHNxvbu3TtDhw5Nktx7773Nljd9bejQoendu3ez5Z/85CdTKpWyYMGCTJw4cS2fEQAAAACsvcIHwLXRdFRf03X5mkyYMCFJss0226RXr14tjh0yZEiS5Nlnn01dXV3l68uXL8/zzz+fJNlzzz1bHNurV6/KtQOffPLJDXgGAAAAANAyATDJpEmTkqTZnYBffPHFJG8EwNY0LSuXy6vdgGPmzJmVG4+szfimxwIAAACAatrsA+Dzzz+fhx9+OEny0Y9+dLVlCxYsSJL07Nmz1fFbbrll5c8LFy5sNnZtx686FgAAAACqpfB3AV6TV199NT/5yU+ycuXK7Ljjjhk2bNhqy5tO6W06Rbglqy5btmxZs7FrO3758uVrnOuoUaMqNyR5q3nz5q1xLAAAAACbr802ANbX1+f73/9+Zs+ena5du+Zb3/pW2rRp847Po+k04bezdOnSzJkzp8Vlb712IQAAAAA02SwD4IoVK/KDH/wgTz31VDp37pzzzjsvffv2bbZehw4dkrwRC1uz6pF+nTp1aja2afyqy1bVtO2OHTuucc6dO3dOnz59WlxWU7PZn8kNAAAAQCs2uwC4YsWK/PCHP8zjjz+eTp065bzzzsv222/f4ro9e/bM1KlTV7ue31utuqxHjx6rjV11ndYCYNP4Vce25JRTTskpp5zS4rL+/ftn1qxZaxwPAAAAwOZpszp0rKGhIT/60Y/yyCOPpEOHDjnnnHOy4447trr+gAEDkiQzZsxodZ2mZaVSKf379698vX///imVSms9vumxAAAAAKCaNpsA2NDQkB//+McZP3582rdvn+985zvZZZdd1jhm8ODBSd6IdK3daOOJJ55Ikuy4446rnfbbsWPH7LDDDkmSxx9/vMWx8+bNy4svvrjaYwEAAABANW0WAbCxsTEXXnhhHn744bRv3z4jRozIbrvt9rbjBg8enO7du6dcLuf6669vtnzu3LkZN25ckuSQQw5ptnzo0KFJknHjxmXu3LnNll933XUpl8vp2bOnAAgAAADARlH4ANjY2JiLLrooDz74YNq1a5f/+q//yh577LFWY9u1a5dPf/rTSZKbb745o0ePrty0Y9q0aTn//PNTV1eXvn375vDDD282/ogjjkifPn1SV1eX888/P9OmTUvyxo0/Ro8enVtuuSVJcvLJJ6dt283ucowAAAAAvANK5XK5vKknsTFNmjQpZ511VpKkbdu26dKlyxrX/+///u/07t17ta9dfvnlue2225Ikbdq0SW1tbZYtW5Yk6datW0aOHJltttmmxe298MILGTFiRJYsWZLkjTsF19fXp7GxMUly1FFH5ctf/vL6P8H8301A+vXrl5kzZ27QtgAAAAAolsIfdrZq32xoaMiiRYvWuP7KlSubfe0rX/lK9thjj4wZMyZTp06tHPX34Q9/OCeccEK6d+/e6va23XbbXHbZZRk9enTGjx+f+fPnp1OnTtluu+1y5JFHZv/991/fpwYAAAAAb6vwRwBuDhwBCAAAAEBrCn8NQAAAAADYnAmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUWNtNPQEAAFgXL7zwQn7/+99n5syZ6dChQ4YOHZpjjjkmbdv61RYAoCWlcrlc3tSTYMP0798/s2bNSr9+/TJz5sxNPR0AgI1i4cKFOf300/PnP/85b/0Vtl+/frn00ktzwgknbKLZAQC8ezkFGACAd70lS5bk0EMPzejRo5vFvySZNWtWPvWpT+U3v/nNJpgdAMC7m/MkAAA2ggceeGBTT6FQLr744jz55JNvu95pp52W7t27p1evXu/ArDYfBxxwwKaeAgCwAZwCXABOAQaAd59SqbSppwBV4y0DALy3OQUYAAAAAArMKcAAABvB/fffv6mnUBg33HBDfvKTn6z1+r17987111+/EWcEAPDe4ghAAADe1bp06bJR1wcAKDrXACwA1wAEgHcf1wCkSLxlAID3NkcAAgAAAECBuQYgAMBG4BqA1bVgwYJ86Utfyssvv7zG9b7yla/k5JNPfodmBQDw3iAAAgBsBAcccMCmnkLhDBkyJCeddFIeeOCBZsu6dOmSH/7wh/nqV7+6CWYGAPDuJgACAPCe0L9//9x333155JFH8tvf/jYzZ85Mhw4dMnTo0Jxyyinp2rXrpp4iAMC7kgAIAMB7RqlUyoc+9KF86EMf2tRTAQB4z3ATEAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMDabuoJAAAAAO99CxcuzO9+97tMnDgx5XI5O++8cz772c+md+/em3pqsNkrlcvl8qaeBBumf//+mTVrVvr165eZM2du6ukAAACwGWlsbMw555yTiy66KHV1dasta9++fc4444z85Cc/Sbt27TbRDAFHAAIAAADrpVwu5/TTT8+vfvWrFpe//vrrufTSSzNr1qz86U9/Sk2NK5HBpiAAAgAAsNl44IEHNvUUCuW+++5rNf6tavTo0Tn33HNzxBFHvAOz2nwccMABm3oKvEc4BbgAnAIMAACwdkql0qaeAlSNpMPacuwtAAAAABSYU4ABAADYbFx++eWbegqFsXDhwpx99tnrNGbEiBF53/vet5FmBLTGKcAF4BRgAACAteMUYIpE0mFtOQUYAAAAAArMKcAAAABsNu6///5NPYVCuffeezNixIi1Wvc///M/c/TRR2/kGQEtEQABAADYbBxwwAGbegqFsv/++2fy5Mn5/e9/v8b1jj322FxwwQVp06bNOzQzYFVOAQYAAADWS6lUyq9//ev827/9W9q1a9dseZs2bfKlL30p11xzjfgHm5CbgBSAm4AAAACwqb3yyiv59a9/nYkTJ6ZcLmeXXXbJP//zP6dfv36bemqw2RMAC0AABAAAAKA1TgEGAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKDABEAAAAAAKTAAEAAAAgAITAAEAAACgwARAAAAAACgwARAAAAAACkwABAAAAIACEwABAAAAoMAEQAAAAAAoMAEQAAAAAAqsVC6Xy5t6EmyY9u3bZ8WKFampqcnWW2+9qacDAAAAwEbUt2/fPProo2u9ftuNOBfeIY2NjUmSlStXZtasWZt4NgAAAAC8mwiABdChQ4fU1dWlTZs26dOnz6aeDhTKvHnzsnLlytTU1KRXr16bejoArMI+GuDdyf4ZNr6+ffuu0/pOAQZYg6OOOipz5sxJnz59cuutt27q6QCwCvtogHcn+2d493ETEAAAAAAoMAEQAAAAAApMAAQAAACAAhMAAQAAAKDABEAAAAAAKLC2m3oCAO9mJ598cpYuXZrOnTtv6qkA8Bb20QDvTvbP8O5TKpfL5U09CQAAAABg43AKMAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAADvcWeddVaOPfbYXH311Zt6KgBrzb4Liuuuu+7Ksccemy9+8YvNll1yySU59thjc8kll1T1Mb/4xS/m2GOPzV133VXV7RaFuwADb+vYY49t9rX27dunY8eO6d69ewYNGpSddtopQ4cOTZcuXTbBDKm2xsbGTJgwIY899lieeeaZzJo1K3V1dencuXMGDhyYgw46KMOGDUu7du3Wa/tTp07N+PHjM2nSpMyYMSOvvvpqamtr8773vS977713Pv7xj6dbt27rte158+bl4YcfzoQJEzJ16tQsXLgwNTU16dWrV3bdddccffTRGThw4HptG+CdMHXq1Fx//fWZOHFilixZkm7dumXXXXfNJz/5yQwaNGi9t7ty5cqMHTs29957b6ZOnZrXXnst7du3z1ZbbZU99tgjxxxzTHr37r3GbTz00EMZM2ZMpkyZkvr6+vTq1Sv77LNPhg8fnq5du6733ID3PvsueHcTAIG11qlTp7Rv3z7JG4Hotddey+LFizN9+vTce++9+dWvfpWPf/zjOeWUU9Y7DPHu8LOf/Sx33HFH5f9ramrSsWPHLFmyJBMnTszEiRMzZsyYfPe7302PHj3Wadv33ntvLrroosr/l0qldOrUKcuXL88//vGP/OMf/8itt96a//qv/8oHP/jBddr23Llz88UvfjGr3uC+Q4cOaWxszKxZszJr1qz89a9/zRe+8IUcffTR67RtgHfC2LFjc+mll6ahoSFJ0rlz58yfPz9jx47NAw88kDPPPDNDhw5d5+3W19dn5MiR+fvf/175WqdOnVJXV5cXXnghL7zwQm677bacddZZ2WOPPVrcxs9//vPceuutSd74uVBbW5uXXnopN9xwQ8aOHZuRI0dmwIAB6zw34L3Pvgve/QRAYK2ddtppGTZs2GpfmzdvXp5++umMGTMmTz31VK6//vo8/fTTueCCC1JbW7uJZsqGamhoSPfu3TNs2LDst99+2X777dOmTZu89tprufPOO3P11Vdn2rRp+cEPfpAf/ehHKZVKa73txsbGtG/fPgcddFAOOuig7LLLLunQoUNef/31PP744/nlL3+ZuXPn5oILLsjll1++ToFx5cqVKZfLGTJkSA477LAMHjw4PXr0SGNjY6ZOnZqrrroqTz/9dK644opsvfXW2Wuvvdbn5QHYKGbMmFF5A33QQQfli1/8Ynr06JGFCxfmyiuvzH333ZdLL7002223Xfr3779O277mmmsqb6A//elP5+ijj84WW2xROeL75z//eV5++eVceOGFueqqq5r9DL/99ttz6623plQq5ZRTTsmxxx6b2traTJs2LRdddFGmT5+eCy64IJdddpkPAWEzY98F7w2uAQhskF69emXo0KH5wQ9+kNNPPz1J8uyzz+byyy/fxDNjQxx55JH55S9/mc997nPZcccd06ZNmyRJly5dcvzxx+drX/takuSZZ57JU089tU7b/sAHPpArrrgiX//617PnnnumQ4cOSd44rXzffffNyJEj0759+yxdujS33377Om27S5cuufjii3Peeefl4IMPrsTDNm3aZIcddsj5559fOf33uuuuW6dtA2xsv//979PQ0JDtt98+3/jGNyr7sB49euQb3/hGtttuu6xYsSK///3v13nbY8eOTZIMGzYsn/70p7PFFlskeWP/OGTIkHz7299OkixZsiSTJk1abeyKFSsq12g7+uijM3z48Mqb7EGDBuWcc85Jhw4d8vLLL+fOO+9cvycPvGfZd8F7gyMAoUrOOuusTJo0KSeddFL+6Z/+KTfccEPuueeezJ49O126dMlee+2Vz3zmM+nZs2eS5KWXXsq1116bJ598MosXL06fPn1y+OGH57jjjktNTfM2v2jRojz66KN59NFH8+KLL2bevHlZuXJlevXqld133z2f+MQn0rdv37ed2/Dhw/PnP/859913X1555ZV06NAhH/zgB3PiiSdmu+2226DX4Oijj85LL72Um2++OWPHjs0JJ5yQbbbZZrV1pkyZkkceeSQTJkzInDlzsmDBgnTo0CEDBgzIgQcemCOOOKLFT99eeeWVnHbaaUmSX/7yl1m5cmX++Mc/5sknn8xrr72WrbbaKkcddVSOOuqoytFoDz74YG666aa88MILaWxszA477JBTTz01O+20U4vzX9+5NVmwYEH++Mc/5tFHH83ixYvTvXv37LXXXjnxxBPz0ksv5eyzz06S3HjjjS2OX7JkSW688cY88sgjeeWVV9LQ0JCePXtmyJAh+cQnPpGtt9767f8SVpnL5z//+axcuTI//OEPs8suu7S67re//e0888wzOe644/KFL3whyRuRbk0OPPDAXH755Vm+fHmmTJmSXXfdda3n9naf/Pbt2ze77bZbHnvssfzjH/9Y6+0mb5xusv3227e6vF27djnkkEPym9/8JlOmTFmnbcP67kuvvvrq/PGPf8y2226bn/70p61uf/LkyfmP//iP1NTU5Morr0yvXr1WW37//ffn5ptvzrRp01IqlbLNNtvkqKOOyiGHHLLGec+dOzfjx4/P448/npdeeinz5s1LTU1N+vTpk7322ivHHXdcq0fafvGLX8ycOXPy9a9/Pfvvv3+uueaaPPjgg5k/f366d++e/fbbLyeddFI6d+6c5I396LXXXpvJkyfntddeS79+/XLcccc1O3q8GnNL3nhzd/3112fs2LF55ZVX0rFjx+y000751Kc+lQ984AOVa9iOHDkyu+22W7PxDQ0NufPOO3P//ffnhRdeyPLly9O1a9fstNNOOfroo9dp35YkX/3qV/Piiy/mM5/5TE488cRW1/vtb3+b0aNHZ/vtt8/FF1+cJFm6dGkeeeSRJMknPvGJygcvTdq0aZNPfOITueiiizJ+/PgsW7YsnTp1Wuu5LVy4MEla3UcOGjQobdq0SWNjY+rr61dbNmHChCxcuDClUinHH398s7G9e/fO0KFDc8cdd+Tee+/NUUcdtdbzYuOz77Lvejv2XZtm33XXXXfl0ksvTZ8+fXLllVfmsccey1/+8pdMmTIlK1asyIABA/Kxj30shx9+eItn2yxdujSPPfZYHn300UybNi3z589PfX19evTokV133TXHHXdcq9devOSSS3L33XfnsMMOy//7f/8vt956a+6555689NJLWbp0aS655JJst912aWhoyMSJE/Poo4/mmWeeybx58/Lqq6+mS5cu2WGHHXL44Yfnwx/+8EZ5fZ555pnccsstefrpp7No0aK0b98+/fv3z0EHHZQjjjiicmkq1p4ACFXW2NiYc889NxMnTqzslBYsWJA777wzkyZNyk9+8pO8/PLLOe+88/Laa6+lc+fOaWhoyKxZs/K///u/mTdvXiV0rerXv/517r777sr/d+7cOfX19ZXrmt1zzz05++yzM3jw4FbntmLFipx99tl55pln0rZt29TW1mbJkiV56KGH8sgjj+Tb3/529t133w16/sOHD89tt92WhoaGjBs3Lqeccspqy//t3/6t8uem68q99tprmTx5ciZPnpyxY8fm/PPPT8eOHVt9jClTpuR//ud/snTp0nTu3DkrVqzIiy++mF/84heZPXt2vvCFL1R+QWm6zkddXV0mTpyYs88+OyNHjmwxAm7I3GbMmJGzzz47ixcvTpLU1tbm1VdfzW233ZaHH344p5566hpft6eeeirf//738+qrryZJ2rZtmzZt2mT27NkZM2ZM7rnnnvz7v/979tlnnzVup0nPnj2z22675cknn8y9997bagCcPXt2nnnmmSR521/EV9WmTZu0bfvGj5CVK1eu9bi11fTp7Htt22we1nVf+tGPfjTXXHNNXnjhhTz//PPZYYcdWtxu09EHQ4YMafYG+qqrrsoNN9yQ5P+um/ncc8/lmWeeydSpU9c434svvni1oyI6d+6c5cuXZ/r06Zk+fXruvvvu1Y6ObcnSpUvz7//+75kxY0Y6dOiQlStXZs6cObnhhhvyzDPP5Pvf/34ef/zx/PjHP05DQ0M6deqUFStW5IUXXsill16a1157Lccdd1xV57Zs2bKcc845ee6555K8sd9saGjI3/72tzz22GOVo0JaM3/+/Hzve9/LtGnTKq9rx44ds2DBgjz44IN58MEHc9JJJ+Xkk09e43ZWdfDBB2fUqFEZO3Zsq2+iy+Vyxo0bV1m/ydNPP125dtaQIUNaHNv09RUrVmTy5MnrdBmDrbbaKjNnzmz1g5Vp06alsbExNTU1zULQhAkTkiTbbLNNs+/NVed2xx135Nlnn01dXV3l6G7ePey77LtaY9+16fddN910U375y1+mVCpV3t80XRt7woQJ+eY3v9nsIJEbbrghf/zjHyv/37Fjx5TL5cyZMyd33313xo0bl69//eur/X29Vblczg9+8IP87W9/q7z/WdXkyZNz7rnnVv6/Xbt2adu2bRYtWpRHHnkkjzzySI466qh8+ctfrtIr8cacfvOb36x2tk7Hjh2zfPnyPPvss3n22Wdz77335rvf/a4buKwjARCq7NZbb0379u3zne98J3vttVfK5XIeeeSRXHzxxXn55Zfz+9//Po899lh23nnnnHbaaenbt2+WLVuWX//617ntttty880354gjjmh2IdqtttoqJ510Uvbbb7+8733vS21tbeW6ZqNGjcoTTzyRCy+8ML/85S9bvfZeU5j7+te/nqFDh6Zdu3Z58cUXc9lll2Xy5Mm56KKLctlll6VPnz7r/fx79OiR7bbbLs8991yzw/CTZI899sjBBx+cwYMHp2fPnmnTpk3q6ury0EMP5de//nWee+65/Pa3v82XvvSlVh/jf/7nf7LLLru0+PrdeOON6dq1a/7yl7/ki1/8Yg4//PB06NAh06dPzw9/+MPMmjUrV155ZS688MKqzW3FihX54Q9/WDmS81//9V8zePDglEqlPP300/npT3+aX/3qV60+n5deeinf+973snz58gwbNiyf/OQn069fv9TU1OTll1/O1VdfnbFjx+bCCy/MT3/602y11VZr9XdxyCGH5Mknn8wDDzyQ008/vRLsVtX0i9yAAQPWeOTcW02fPr0SK6t9R93GxsZMnjx5o2w7SeX70p2AWV/rui/t3bt39txzzzz66KO58847W3wTvXz58jzwwANJ3njTvapx48ZV3kAfeeSROfnkk9OtW7e89tprueaaa/KXv/ylchRLS7bZZpvstdde+fCHP5w+ffqkffv2aWhoyOTJk/PrX/86zz//fGX/0tr1PP/whz+ke/fulSOKV6xYkXvuuSc/+9nP8uyzz+YPf/hDxowZk4MPPjinnnpqevTokcWLF+eyyy7L3/72t/zud7/LYYcdVjl1qxpzu/LKK/Pcc8+lXbt2Of3003PYYYelXbt2mT17dn7xi1/k0ksvbfU1WbFiRc4///xMmzYtu+yySz7zmc9kp512Srt27fLqq6/m1ltvzZ/+9Kf88Y9/zMCBA3PAAQe0uq1VDR06NL///e8zc+bMTJkypcX96uTJkzNnzpzU1NSsdkH8F198MUnSvXv3Vt/QdOvWLd26dcvixYszY8aMdXoTfcQRR+TKK6/M3Xffnb59++bjH/945TpaEydOzM9+9rMkyTHHHNPsjIKmub31qP5VNS0rl8uZOXNm3v/+96/13Hhn2HfZd7XGvmvT7rsWL16c//3f/82hhx6az33uc+nZs2eWLVuWv/zlL/njH/+Y++67L+9///ubHcXYo0ePHHfccTnooIPSv3//dOrUKStXrsysWbNyzTXXZOzYsZX3Ta3dJfnhhx9OQ0NDvvzlL2fYsGGpra2tHG2XvHGJnoMPPjiHHHJI3v/+96dbt25J3jgy84477sgf/vCH3HrrrRk8eHD233//qrwe1113Xa677rpsscUW+fSnP52DDz44W2yxRVasWJEJEybkl7/8Zf7xj3/kkksuyTnnnFOVx9xcuAYgVFnTJ4377LNPampq0qZNm+y7776VHfaYMWPStm3bnHXWWZUfUp06dcqXv/zlbL311imXy5VfpFb16U9/OieffHIGDRpUCXxN1zUbMWJEBgwYkEWLFrU4dtW5ffWrX82wYcMqp7IOGDAg5557bnr16pW6urpce+21G/wabLvttkneOLrsrb73ve9l2LBh6d27d+UUgQ4dOuTQQw+tfOL517/+tdkh/Kvq1q3bGl+/3/3ud/mnf/qnHHvssZVP8QYOHFi5bt1zzz2XuXPnVm1u48aNy8yZM9O2bducc8452X333Su/7O2yyy757ne/mxUrVrT6fH79619n+fLlOeaYY/L1r389AwYMqHzCt/XWW+eb3/xm9txzzyxfvrzyi/Ta2G+//dK+ffu8+uqrefzxx1tcp+m6Kmv6ZLAlv/vd75K8EabXdNTp+rjpppuycOHC1NTUtHrqzfp6/vnn8/DDDydp/kYF1tb67EsPP/zwJMl9993X4v7tvvvuy/Lly9OtW7d86EMfqny9XC5Xrl+0//7754wzzqj88t2lS5d8/vOfz7Bhw7J06dJW5/vlL385J5xwQvr371/5hb5t27bZbbfdKp+eT58+fY3X86yrq8t3vvOdytHE7dq1y+GHH55DDz00STJ69Ohst912+X//7/9VTnvr1q1bvvnNb6Zjx455/fXX8+ijj1Ztbq+88kruuuuuJMnpp5+ej33sY5W/i759++ass85q9WiP5I0QMnXq1Oy44445//zzs9tuu1XGb7HFFjnxxBMrR8+senTF2+nbt2/lCPN77723xXWa9rtNHzY1aTrNbdWvtWTLLbdcbf21dfTRR+f4449PqVTK1Vdfnc985jM56aSTcsIJJ+Scc85JTU1NzjjjjMqlIFa1YMGCt51b07zWZ268M+y77LtaY9+1+nN5p9XX12fXXXfNmWeeWZlrp06dcvLJJ1dOB7/mmmua/Rs88sgj84UvfCE77rhj5bTqmpqaDBgwIN/4xjey++675/XXX698z7Vk+fLlOe2003LUUUdV3mN27969sr0PfOAD+eY3v5m99tqr8m84eSM+nnjiiTnppJOSJLfccktVXotFixblD3/4Q9q2bZtzzz23ctOX5I1/v3vttVfOPffc1NbW5tFHH3VJn3UkAEKV7bTTTi1ed2PV29K3dH2MmpqayjU+pk+fvk6P2a5du8r2n3766VbX69OnT4uhp1OnTjnmmGOSJA888EDK5fI6Pf5bNe2kX3vttXUa98EPfrByavOaTgtp7fVrClFt27Zt8XSNnXfeufJL2rq+xmua20MPPZQk2WeffVr8hLFv37456KCDWtzukiVLMn78+JRKpXzyk59s9fGb/t6a7oK2Njp16lT5Zbzpl7ZVTZkyJS+++GJKpdI6BcAbb7wx48ePT/LGNXZaOrJwfT333HMZNWpUkjc+yV3XO8Wtyauvvpqf/OQnWblyZXbccceqx0U2H+uzL91nn32y5ZZbZunSpS1+UNN0Ct1hhx222r+padOm5aWXXkryxiUWWvJP//RP6/1ctthii8qbvjX9/DjggAPyvve9r9nXd99998qfP/WpTzVb3qFDh8o1RV944YWqze2hhx5KuVxOt27d8pGPfKTZ2Hbt2uUTn/hEq9tuer2POeaYVq/t2vR3PH369HV6U9g07r777mt2qYGGhobK3/9bv4eWL1+eJK0exd+kaXnT+murpqYmn/vc53LGGWdUnvOyZcsqc6yvr8+SJUvS2NjYbGxdXd3bzm3VZcuWLVunufHOsO/6P/ZdrY+z79o0PvWpT7V4JOsJJ5yQmpqaLF26NE888cRab69UKmXvvfdOsuZ/I1tsscUGfSjedHmiZ599tsW/g3U1duzYvP7669ltt92y4447trjO1ltvXfn3uS7vjXAKMFRda6cVrvqJSdMRcm/VvXv3JK2HsylTpmTMmDGZPHly5s2bl7q6umaxrumTrpZ88IMfbPUUiaZ49tprr+WVV15p9YYia2NNAbGxsTFjx47N/fffn2nTpmXJkiUtHh23pufR2uvX9BpvtdVWLV6nr6amJl27ds28efNafI3Xd25NQXBNN9r44Ac/2OKnb88++2xWrlyZUqm02jUI36rp2ipz5sxpdZ2WHHLIIbn//vvzt7/9rdlFl5ui4M4777zWpxX/7W9/q5zOfNxxx1X1or+zZ8/OyJEj8/rrr+cDH/hAPvvZz1Zt2/X19fn+97+f2bNnp2vXrvnWt77VLCLD2lqffWmbNm0ybNiwXHPNNbnzzjtz2GGHVcbMmDEjzz77bJLmR6Y2XfNoTTe42XrrrdOrV6/Mmzev1TlPnDgxd9xxR5577rksWLCgxSN51rTfbe1nW9PPrbVZp7UjfdZnbk373Z122qnVf8sf/OAHW/z6smXLKh8CXXHFFbnqqqtaXG9Vc+fOXeMF/Vd14IEH5sorr8yCBQsyceLE1ULDE088kSVLlqR9+/bZb7/91mp7b7W+H9ItWrQoP/jBDzJ58uQcdNBBOf7449OvX7+89tprmTBhQn73u9/l97//fZ5++umcc8459pEFZN/1f+y7mrPv2nTatm2bnXfeucVlPXr0yIABAzJ9+vRMnTq12fXaX3rppdxyyy2ZNGlSXnnlldTV1TULuGv6N/L+97//bV+zpUuX5tZbb82jjz6amTNnZtmyZc1i3+uvv56lS5du8DX5mi4D9PTTT6/xvUBTrF3X90abOwEQqqy1H7KrXrR11V86WlqnpU9Pbrrpplx11VWVHXpNTU06depU+SSsrq4udXV1azx1dtVD3N9q1UPjFy9evEEBsCmuvfV6KXV1dTnvvPNWOx2iXbt26dq1a+W5L1myJCtXrqx8YteSt3v9Wlu+6jpvfY03ZG5NN/5Y29d3VU0/kMvlchYtWtTq+Cavv/76266zqj333DNbbLFFXn311Tz88MOVX9xXrlyZ++67L8na3/zjiSeeyI9//OOsXLkyw4YNy+c///l1msuazJ07NyNGjMjChQszaNCgnHvuuWu84/K6WLFiRX7wgx/kqaeeSufOnXPeeedt0Pc3rO++9PDDD8/o0aPz1FNP5aWXXqocldJ0RMcuu+zS7KjXJUuWNNtua3Nq7U30r371q/zlL3+p/H9NTU26dOlSOVpn2bJlef3119f482Ntfra93TpNH2RUY25N+921Pa1rVYsWLaq8EW26lunbWdNr81Zdu3bNnnvumfHjx+fee+9d7U1006l1H/7wh5vdBbPpg6u3e6ym5Wu6WVZLLr744kyePDmHHnroah84dezYMcOGDcuOO+6YM888M0888UTuuuuuyqmfSSqX01jT3Fb92bgud/jknWPf9X/su5qz71q3fVdrceq0005r9cyf1nTt2nWNv/duueWWmT59erP3Cg8++GAuvPDC1b5HO3fuXNnW66+/nmXLlq3xfdWqB6m0ZObMmRkxYsRqEbFDhw7p0qVLSqVSVq5cWfn3XldXt8EBsOlx6uvr1+r7d12+xxEAYZNo7dPX1rz44ouV+Nf0yde222672qkWo0aNyjXXXLPBp+9WQ9OpEm89quyaa67JU089ldra2nz2s5/Nfvvt1+w6J5///OfX+Elw8vav37q+vtWc27pqCrrdunWrXFevmtq2bZsDDjggt912W8aOHVsJgBMnTsz8+fMry9/Ok08+mZEjR2bFihU5+OCD86//+q/r9Tq3ZN68eTn77LMzZ86cDBw4MOeff366dOlSlW033aDl8ccfT6dOnXLeeeet081OoJr69OmTIUOG5LHHHsudd96Zz33uc2loaKi8sdqQU3Ba2/c/8cQTlTepH//4x3PkkUemX79+q33af9FFF+Xee+9d48+Ptfn3vq77hGrNbV2temTEZZddtsaLw6+vgw8+OOPHj89DDz2UM844I+3bt8/y5csrl09o6YOXpgixpiM1Vl2+tkf1JG8cqdV06thbLyLfZMCAAdl7773z0EMP5cEHH1ztTXTPnj0zderUNc5t1WXrMjfe/ey7Ns7c1pV917tr39XaB/fr+mH92mjp+2jJkiW59NJL09DQkN133z0nnXRSdthhh8rljpLkjjvuyGWXXbbGbb/1zsJv9dOf/jQLFixI375988///M8ZPHjwar+nv/zyy5UbJFbj+73p+/z444/Pv/zLv2zw9lidAAjvAQ888EBWrlyZAQMGtHgL+KT1H0KrWtsffm/3SdCaLFy4sHJ6w1uvhXj//fcnSU488cTKtWZW1djYWPkE6Z22IXPr1q1b5s2bt8bXt7VrsDQdrbh48eIsWrRojUcvrq9DDjkkt912W5588sksXLgwPXr0qJz+u9deezU7UvOtJkyYkAsuuCCvv/569t9//5x55plv+8vC2po/f37OPvvszJ49O/369cv3vve9Df7ksElDQ0N+9KMf5ZFHHkmHDh1yzjnntHotEVgXG7Iv/djHPpbHHnss99xzT0455ZSMHz8+ixcvTqdOnXLggQc2W7/p38PavrF6q6YjfYcMGdLq3dXX5ufHxrAhc1v1LoStae01WXU/O2PGjI3yJvpDH/pQOnbsmGXLluWRRx7JAQcckIcffjj19fWVo2zeasCAAUneeM5LlixpcV+4ePHiyhFE6zLvmTNnVv689dZbt7pe05Fdr7zySrO5Pfroo5kxY0arY5uWlUqlql6/leqx76oO+67Vba77rhtvvHGt1307TZcdau0owKbviVW/Bx577LEsX748W2yxRUaMGNHidQ439N/I3Llz88wzzyRJvvGNb1SubVnNx3irpufYdAdnqstNQOA9oOmos2233bbF8FIulzNhwoS33c6kSZNaXTZx4sQkb9yZbW2vB9eSa6+9Ng0NDampqWl2keCm57Hddtu1OHby5Mkb5VOztbEhc2sas6YL7Lb22q/6g/TBBx9cq7muq6Zr/DWd9rtixYrKjUve7vTfSZMm5fzzz099fX0+9KEPVfXaeU3x7+WXX07fvn1zwQUXVO2okYaGhvz4xz/O+PHj0759+9XuAAgbakP2pfvss0969uyZBQsW5NFHH80dd9yRJBk6dGiLv7w3HbG6dOnSTJs2rcXHnD17dqtHJ7/dvq2urq5yDa932obMrWnM5MmTW73oeGt/T126dKm8YW3ppgbVUFtbW7lOVtMHLk1HSx144IEt7kd32WWXypH9rd25velImDVdL6olqx7htKbrJTW9kXvraXBN14ebMWNGq99rTXPbcccdK6fd8e5i31Ud9l2rs+/acA0NDa1+zyxatKgSw1b9nps7d26SN+Jnazc5efLJJzdoXqu+Zq2dQbOhj/FWTd8fEyZM2GQHhhSZAAjvAZ07d07yxg+vlg6tvv322zN79uy33c6cOXNavBvs8uXLc/PNNyd5425p63tq580331zZziGHHFL5JaVJ0w/llu7A29jYWLn766awIXNr+kVp/Pjxq31S2eSVV16pfFr8Vj169KjcPetPf/rT235Svq53Vk6y2l1+x40bl0ceeSRLly5N586dK4/dkqeeeirf+973Ul9fn7333jv/8R//UbU7/i5cuDAjRozISy+9lK222iojR45c47WJ1kVjY2MuvPDCPPzww2nfvn1GjBhRucM2VMOG7EvbtGlTufPjtddeW7l7XWun0G233XaVox6uvfbaFtdp7evJmvdtyRuXP1jXOzJWy4bMbd99902pVMrixYtbvMFSQ0NDbrjhhlYfu+nv4KGHHnrbOwiu7bW23qrpA5ami6Y3fVDX2gcvnTt3rtyx8YYbbmgWBxobGyvP6UMf+tA6Xatq1TeNY8aMaXGdhQsX5uGHH06Syt0VmwwePDjdu3dPuVzO9ddf32zs3LlzM27cuCRrf11Z3nn2XdVh37U6+67quPbaa1t8n3fddddl5cqV6dy5c4YMGVL5etP7w5deeqnFmxY+8cQTlbC/vpoeI2n5btgLFiyo7Duq5ZBDDkm7du3y+uuvV2482Jq6uroWnzutEwDhPaBpZz99+vRcccUVlQi0bNmyXHfddfnFL37xtqdxJm/sxP+//+//y9133125WOzMmTNz3nnnZc6cOamtrc0JJ5ywTnObP39+xo0bl7POOitXXHFFkjc+QTvjjDNafR5/+tOf8vDDD1d+QZg5c2bOP//8PP/885vsk7cNmdvQoUPTr1+/NDQ05LzzzsuECRMqP8AnT56c7373u2u8sO8XvvCFdO7cOQsXLsy3v/3t3H///atd0Hbu3Lm544478q1vfSu33HLLej2/pgD43HPPVX7h3m+//Va7TsiqnnnmmXzve99LXV1dhgwZkv/6r/9ap5ty3HXXXTn22GNz7LHHNjsdY/HixRkx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" }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" } ], "source": [ "ggplot(runtimes, aes(x = runtimes.index, y = \"mean\")) + geom_point() + geom_errorbar(aes(ymin = \"mean - std\", ymax = \"mean + std\")) + theme_classic() + ylab(\"Time (s)\") + xlab(\"Tool\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> PyDamage provides a __10-15x__ speedup over mapDamage for the same dataset for damage rescaling." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:36:55.939362Z", "iopub.status.busy": "2024-09-19T10:36:55.938480Z", "iopub.status.idle": "2024-09-19T10:36:55.944880Z", "shell.execute_reply": "2024-09-19T10:36:55.943711Z" } }, "outputs": [], "source": [ "def get_phred_scores(bam):\n", " fwd = [] \n", " rev = []\n", " with pysam.AlignmentFile(bam, \"rb\") as bam:\n", " for read in bam:\n", " if not read.is_reverse:\n", " fwd.append(np.array(read.query_qualities)[:13])\n", " else:\n", " rev.append(np.array(read.query_qualities)[::-1][:13])\n", " # quals.append(np.array(read.query_qualities)[:13])\n", " # quals.append(np.array(read.get_forward_qualities())[:20])\n", " return (np.stack(fwd), np.stack(rev))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:36:55.947351Z", "iopub.status.busy": "2024-09-19T10:36:55.947057Z", "iopub.status.idle": "2024-09-19T10:37:06.770694Z", "shell.execute_reply": "2024-09-19T10:37:06.769968Z" } }, "outputs": [], "source": [ "original_fwd, original_rev = get_phred_scores(\"../../tests/data/bigger_test_data.bam\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:07.241982Z", "iopub.status.busy": "2024-09-19T10:37:07.241669Z", "iopub.status.idle": "2024-09-19T10:37:21.466555Z", "shell.execute_reply": "2024-09-19T10:37:21.465610Z" } }, "outputs": [], "source": [ "pydamage_fwd, pydamage_rev = get_phred_scores(\"pydamage_results/pydamage_rescaled.bam\") " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:21.470124Z", "iopub.status.busy": "2024-09-19T10:37:21.469824Z", "iopub.status.idle": "2024-09-19T10:37:33.150287Z", "shell.execute_reply": "2024-09-19T10:37:33.148912Z" } }, "outputs": [], "source": [ "mapdamage_fwd, mapdamage_rev = get_phred_scores(\"results_bigger_test_data/bigger_test_data.rescaled.bam\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:33.153370Z", "iopub.status.busy": "2024-09-19T10:37:33.152991Z", "iopub.status.idle": "2024-09-19T10:37:33.156570Z", "shell.execute_reply": "2024-09-19T10:37:33.156159Z" } }, "outputs": [], "source": [ "columns = ['original', 'mapdamage v2.2.2', 'pydamage v0.80']" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:33.158880Z", "iopub.status.busy": "2024-09-19T10:37:33.158607Z", "iopub.status.idle": "2024-09-19T10:37:34.270592Z", "shell.execute_reply": "2024-09-19T10:37:34.269664Z" } }, "outputs": [], "source": [ "df_fwd = (\n", " pd.DataFrame(\n", " [original_fwd.mean(axis=0), mapdamage_fwd.mean(axis=0), pydamage_fwd.mean(axis=0)],\n", " )\n", " .transpose()\n", " .set_axis(columns, axis=1)\n", " .rename_axis(\"position\")\n", " .reset_index()\n", " .melt(id_vars = \"position\", var_name = \"bam\", value_name = \"mean\")\n", ").merge(\n", " (\n", " pd.DataFrame(\n", " [original_fwd.std(axis=0), mapdamage_fwd.std(axis=0), pydamage_fwd.std(axis=0)],\n", " )\n", " .transpose()\n", " .set_axis(columns, axis=1)\n", " .rename_axis(\"position\")\n", " .reset_index()\n", " .melt(id_vars = \"position\", var_name = \"bam\", value_name = \"std\")\n", " ), on=['position', 'bam']\n", ")" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:34.274077Z", "iopub.status.busy": "2024-09-19T10:37:34.273791Z", "iopub.status.idle": "2024-09-19T10:37:34.576472Z", "shell.execute_reply": "2024-09-19T10:37:34.576050Z" } }, "outputs": [ { "data": { "image/png": "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AAC4MQJAAAAAAAAAwI0RAAIAAAAAAABujAAQAAAAAAAAcGMEgAAAAAAAAIAbIwAEAAAAAAAA3BgBIAAAAAAAAODGCAABAAAAAAAAN0YACAAAAAAAALgxAkAAAAAAAADAjREAAgAAAAAAAG6MABAAAAAAAABwYwSAAAAAAAAAgBsjAAQAAAAAAADcGAEgAAAAAAAA4MYIAAEAAAAAAAA3RgAIAAAAAAAAuDECQAAAAAAAAMCNEQACAAAAAAAAbowAEAAAAAAAAHBjBIAAAAAAAACAGyMABAAAAAAAANwYASAAAAAAAADgxggAAQAAAAAAADdGAAgAAAAAAAC4MQJAAAAAAAAAwI0RAAIAAAAAAABujAAQAAAAAAAAcGMEgAAAAAAAAIAbIwAEAAAAAAAA3BgBIAAAAAAAAODGCAABAAAAAAAAN0YACAAAAAAAALgxAkAAAAAAAADAjREAAgAAAAAAAG6MABAAAAAAAABwYwSAAAAAAAAAgBsjAAQAAAAAAADcGAEgAAAAAAAA4MYIAAEAAAAAAAA3RgAIAAAAAAAAuDECQAAAAAAAAMCNEQACAAAAAAAAbowAEAAAAAAAAHBjBIAAAAAAAACAGyMABAAAAAAAANwYASAAAAAAAADgxggAAQAAAAAAADdGAAgAAAAAAAC4MQJAAAAAAAAAwI0RAAIAAAAAAABujAAQAAAAAAAAcGMEgAAAAAAAAIAbIwAEAAAAAAAA3BgBIAAAAAAAAODGCAABAAAAAAAAN0YACAAAAAAAALgxAkAAAAAAAADAjREAAgAAAAAAAG6MABAAAAAAAABwYwSAAAAAAAAAgBsjAAQAAAAAAADcGAEgAAAAAAAA4MYIAAEAAAAAAAA3RgAIAAAAAAAAuDECQAAAAAAAAMCNEQACAAAAAAAAbowAEAAAAAAAAHBjBIAAAAAAAACAGyMABAAAAAAAANwYASAAAAAAAADgxggAAQAAAAAAADdGAAgAAAAAAAC4MQJAAAAAAAAAwI0RAAIAAAAAAABujAAQAAAAAAAAcGMEgAAAAAAAAIAbIwAEAAAAAAAA3BgBIAAAAAAAAODGCAABAAAAAAAAN0YACAAAAAAAALgxAkAAAAAAAADAjREAAgAAAAAAAG6MABAAAAAAAABwYwSAAAAAAAAAgBsjAAQAAAAAAADcGAEgAAAAAAAA4MYIAAEA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1pAhQ3Ty5Mks2548eVJDhgzRU089JUny9/fXs88+a1YpAAAAAAAAAK7yMGugcuXKady4cRo8eLAkacKECfr6669Vp04d1alTR/7+/oqLi9OhQ4d06NAh2e122e12GYah8ePHq2zZsmaVAgAAAAAAAOAq0wJASRo0aJBsNpuef/55xcXFyW636+DBgzp48GCGdna7XdKVmX/jxo3TQw89ZGYZAAAAAADkmTVr1qhLly6SpGHDhmn48OEFWxAAXIdpS4DTDR48WPv27dOrr76q6tWrO2b6XfurevXqev3117V//349/PDDZpcAAAAAAAAA4CpTZwCmq1y5ssaMGaMxY8bo4sWLOnfunGJiYlSiRAlVqFCB5b4AAAAAAABAPsmTAPBaZcuWJfADAAAAAAAACojpS4ABAAAAAAAAFB6mzgBcv369Y4+/ypUrX7f9yZMndfz4cVksFt1yyy1mlgIAAAAAAABAJs4AXLNmjTp16qQuXbro0qVLTvW5fPmyOnfurE6dOum3334zqxQAAAAAAPLVwYMH9fzzz6tu3bry9/dXcHCwbr75Zn322WdKTk7Ose+OHTs0atQo3X777apevbr8/Pzk7e2tChUqqGfPnvrss88UGxub4xjHjx+XYRgyDEODBw+WJF24cEHDhg1T48aNFRQUpODgYLVp00aTJk1Sampqhv4nT57UG2+8oYYNG6pEiRIKCgpS+/btNWXKFNnt9hv6bAAUPNNmAM6bN0+S1LhxYzVr1sypPs2aNVPTpk21c+dOzZ07V+3atTOrHAAAAAAA8sXs2bP16KOPKj4+3nEtPj5emzdv1ubNm/Xtt99qyZIlWa6Ue//99zVs2LAsxw0LC1NYWJiWL1+uMWPGaN68eWrdurVTNW3evFl9+/bVuXPnMlz/448/9Mcff2jBggWaO3euPD09tWjRIvXv31/R0dEZ2v7222/67bfftGrVKk2ZMsWp5wIonEwLAH/77TcZhqGePXu61K9Xr17asWMHMwABAAAAAEXOtm3b9NFHHyklJUUPPvigunXrJl9fX+3Zs0f/+9//FBYWpn379qlr167avn27SpQokaF/fHy8rFarWrdurfbt26tOnToqWbKk0tLSdPz4cS1cuFAbN27U2bNndeutt2rHjh3X3XLr1KlTuuuuuxQeHq4BAwaoa9eu8vf31+7duzV+/HhFRkZq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Y2PVv39/xcfHZ1vbV199pZ07d+q7775TTEyMIiMjtW/fPrVv314pKSkaOHCgTpw4kaFPSkqK7rvvPoWFhalSpUpaunSp432tWbNG/v7+evXVV7N9pq+vrwYMGKDFixfrwoULSkxMVGxsrMLCwvTBBx/IarVq/Pjx+vHHH7Md4+LFi3r++ef15ptv6vLly4qKitJff/2lm2++WWlpaXrhhRf02muvOT732NhYxcTEaP78+SpRooSOHz+uf//736bWdvjwYT366KNKS0tTly5ddPDgQUVGRio2NlZTp07Vjh079NVXX2X7nn744Qe98MIL8vb21gcffKBz584pLi5O8fHx2rhxo1q2bKljx46pb9++2c4Kzer99O3bV9KVgzGyk37v/vvvl6enp1NjS39PYPPy8nLsD2iWPXv26PLly5KkRo0amTp2amqqNm7caPrYpgWA48eP16lTp9S1a1e9+OKLTvV5/vnn1bVrV508eVLjx483qxQAAAAAAAqdxGNHdeaj95USdjbL+ylhZ3Xmo/fzNQSMjIzUrFmzdPvtt8tischqteruu+/W66+/LulKCOfl5aV58+apRo0akq5s9TV+/HjVqlVLdrtdc+fOzTTusGHDNGLECDVu3Ngxm8lqtaply5aaP3++6tWrp/Pnz2fZN136HmiDBw+Wl5eXJKlevXpavHixKleurLi4uEyz+WbPnq3du3fLarVq4cKF6tmzp2OZaKdOnbRkyRIlJiZm+8w2bdpo2rRp6t27t8qWLeu4Xr58eb3zzjsaNmyYJOWYYcTHx+vBBx/UyJEjVbJkSUlStWrVNGvWLBmGodOnT2v8+PGOz91qtcpqtequu+5yfO5z5swxtbZRo0YpMTFRNWvW1K+//uoIxDw9PfXQQw/p22+/VWRkZJbvJykpyZHzTJ8+Xe+8847jYAoPDw+1a9dOS5cuVYUKFbRr1y79/PPP2X42/5R+Gu6SJUscgdq1zp07p1WrVmVo64yYmBjHwR/33Xdfhu3ozDB06FBJV4Lurl27mjr2559/rrCwMFmtVg0ePNi0cU0LAH/66ScZhuFIb5117733ym6355ieAwAAAABQlNltNp3/ZrzsyUk5t0tOutLOyVlUN+rmm29Wp06dMl3v3r274/Vrr70mD4+MO4hZLBbH8t3du3e79Exvb2/16NFDkrRhw4Zs21WtWlUPPvhgpuslSpRwBFJz5szJcFhpeqB4++23q0mTJpn61qlTR/fdd59L9V7rjjvukCRt3rw5x+WZb731VqZrVapUUe3atSVl/7l369ZNknTs2DHFxcWZUpvdbte8efMkSS+++GKWe9v1799f1atXz3LcRYsWKSwsTHXq1MlyybUklSpVSrfeeqskZdjn8Hq6du2qihUrKiUlJcvQc9asWbLZbKpevbratWvn1Jh2u12DBw/WmTNnVLJkSY0ePdrpepzx3//+17EX4WeffebSrMTr+eOPP/T2229LuvK9qlu3rmlju7wHYHaOHz8uSSpTpoxL/UqXLp2hPwAAAAAAhc2RwQ/k27NSws7q6KOZgy9X1Jo8y6l22S0xLFeu3HXblC9fXpKy3dJr+/btmjBhgjZs2KBTp04pLi4uQ1gnXdlvMDs5HfKQHj5GRETo+PHjjvAq/dCEnA6y6NKli6ZNm5bt/aioKH355Zf69ddfdeDAAUVFRSk1NTVDm4SEBEVERGSZgfj4+DiCvn8qV66cDh06dN3PVLoyO9Pf3/+Gazt27JjjgI4OHTpk+747dOigv/76K9P19OWoJ06ccMz8y0psbKyjnbMsFoseeOABffLJJ5o+fbpjaXm69OW/AwYMcHrMN954Qz/99JMsFou+++47Va5c2em+17NgwQLHEvJXXnlFd911l2ljHzt2THfffbcSExPVtm1b04NL0wLA9N9wOZ3kk5X09v/8DQsAAAAAAPJWdoGO1Wp1uk1KSkqme59//rlefvllx35wFotFQUFB8vb2lnQlLIqLi8txlltoaKhT9y5cuOAIAC9evOhS3386ePCgunbtmiGY9Pf3V3BwsCwWi9LS0nTp0iVJUlxcXJYBYLly5bINLtM/M2c+939+rrmtLf0zkaSKFStm+96zu5d+GnRSUpLOnz+fbf90Oe3rmJUBAwbok08+0caNG3XixAlVrVpV0pX3mx7oOrv89/3339eYMWNkGIa+/fbbbGcs5sayZct0//33Ky0tTY888ojGjh1r2tgnT55U165dFRYWpqZNm2rRokWOZe9mMW0JcPXq1WW32zV58uQs/+PPSkpKiiZPnuzoDwAAAAAA8k92QZWrba61f/9+vfLKK7LZbOrXr5+2bt2qxMRERUREKCwsTGFhYXr55ZclKdOMQGfltt/1+j7yyCM6e/asatSooR9//FHh4eGKjY3VhQsXFBYWps2bN193nLz4TG+kthv5rKS/T6K97777ZLfbr/sr/fANZzVv3lz16tWT3W7XjBkzHNfTZ/+1bNnSqaWwo0aNyrAP4qOPPupSHTlZuXKl+vTpo6SkJD344IOaOHFirr6HWTl9+rS6dOmiEydOqGHDhlq+fHmmE6DNYFoAePfdd0uSDh06pIEDByohISHH9omJiXrooYd08OBBGYZhaioLAAAAAAAKxty5c5WWlqb69etrxowZatGiRaZ90pyZSZbT8uBr7127XDn9cAxn+17r1KlT2rRpk6Qr4VPfvn0zBTHO1J0XbqS2az+f9Nl8WcnuXvqy5L1797pUsyvSl/heexpwehjozPLff//734698z799FM988wzptW2evVq3XXXXUpISNC9996rqVOnymIxJ047c+aMunTpomPHjqlu3bpasWKFy1vrOcu0JcCvvvqqvv32W128eFFz587V5s2b9eyzz6pbt26qXbu2/Pz8FB8fryNHjmjFihWaMGGCTp48KenKb8acjuEGAAAAAKAgObunXnbi9+zS2bGjrt/wqoqvvy2/BlnvE1fYnTp1SpLUuHHjLIMSu93uONk1J2vXrs32Xvoss+DgYFWrVs1xvXnz5jp9+rTWrl2rl156Kce+2dUtSc2aNcuyzYoVK3KsOa/cSG01atRQUFCQoqKitH79+iwPR5GkdevWZXm9ffv2+vzzz7Vv3z7t27dP9evXd7H663vwwQf17rvvau/evdq5c6cSEhJ09OhRWa1W9e/fP8e+Y8eO1ZtvvilJ+uijj7L9vufG2rVrdccddyg+Pl533XWXZsyYkWGZ9o04e/asunTpoiNHjqhmzZpatWpVhj0gzWbaDMCSJUvql19+UVBQkOx2u06fPq2hQ4eqTZs2KlWqlHx8fFSqVCm1bt1aQ4cO1cmTJ2W32zP0AwAAAADAHfnWbyjPkOz3X7uWZ4WK8q3XII8ryjvpP9/v2bMny+Wn3377rY4ePXrdcY4fP66ZM2dmuh4bG6vPP/9c0pVlqdcuxUw/4XfhwoVZnk585MiRLE+bvbZuKeuTjc+dO6cvvvjiunXnhRup7dpVl59//rkSExMztfnhhx+yPABEunK6cHow9cILL+R4hkNKSorjMBBXXHvK74wZMxyz/7p3755jKPbpp5/q9ddflyR9+OGHeuONN1x+dnbWr1+v22+/XfHx8brttts0Z84c0078DQsLU9euXXX48GFVr15dq1evznF/RjOYFgBKUqtWrbR9+3b16NHDqXXhPXv21Pbt29WyZUszywAAAAAAoFAxLBaVf3KIDC/vnNt5eav8E0NkmLTEsCD06tVL0pUA8IUXXlBkZKQkKTo6WmPGjNGQIUNUunTp644TFBSkJ554QlOnTnWcNXDgwAHddtttOnHihPz8/Bwzv9L169dPDRo0UGpqqm6//XYtX77cEUKuX79evXv3dhxE8k/16tVznBj76KOPaseOHZIkm82mlStXqlOnTje8n15u3Whtb731lry9vXX48GHdeeedOnz4sKQrgd306dP12GOPqWTJkln29fPzc4SLK1euVLdu3bRhwwbH3oA2m0179uzRqFGjVLt2bUdtrkpf6jtjxgzNnj07w7WsjBs3Tq+88ookadiwYY4lwM4aPHiwDMPIMIM03ebNm3X77bcrLi5OPXv21E8//eTSoRyTJ0+WYRgyDEPHjx/PcO/ixYvq1q2bDh48qCpVqmj16tWmnlScHdP/RKlWrZqWLl2qnTt3atiwYbr11lvVpEkT1axZU02aNNFtt92m4cOHa9euXVqyZEmWHzQAAAAAAO7Gp0ZNhb75XrYzAT0rVFTom+/Jp0bNfK7MXN27d3fMxBs3bpyCg4NVqlQplSpVSv/3f/+nbt266emnn77uOM8884waN26shx9+WAEBAQoODla9evW0fv16eXh4aOrUqZkOFPX09NScOXNUrlw5nTp1Sj179lRAQIACAgLUsWNHxcTE6D//+U+Wz7NYLBo3bpysVqt2796tZs2aOfp2795dly9f1v/+978b/4By4UZrq1u3riZOnCiLxaIVK1aoTp06Cg4OVkBAgAYOHKimTZs6vic+Pj6Z+t93332aOHGivL29tW7dOnXo0EF+fn4qU6aMfHx81KhRI7399ts6ceJErg/HuP/+++Xp6anTp0/rwoUL8vPz07/+9a9s27/wwguO1xMmTFBISEi2v9IDRWcNHTpUMTExkqStW7eqatWq2Y794osvujT2V199pX379kmSwsPD1aZNm2zHbtWqlUtj58S0PQD/qVGjRmrUqGjuVwAAAAAAQF7wqVFTVUaNVcL+vYrbvlVp8XGy+vnLv3lL+dZvaNrJogVt5syZatOmjb777jsd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957uuece1apVS35+fkpLS9Off/6pd955R0uXLlX//v117NgxlwJPoKCZ9k8L69atk2EY6tatm8aNG0f4BwAAAADANY4mHtP7Zz7KFP6lO5sSpvfPfKSjiXm/zDQ+Pl4ffPCBJOn555/XRx99pODgYElSqVKlNGbMGD355JOSpBEjRighISHTGLGxsZo9e7b69esnLy8vSVLVqlXl6emZ47OPHz+u7777TpL0xRdf6IknnnCsHKxevbp+/vlnVa5c+YbeX2RkpEaMGKF33nlHJUuWlCSVL19eM2bMUOXKlWWz2TR37txM/YYNG6YRI0aocePGjoDParWqZcuWmj9/vurVq6fz589n2RcozEwLAC9cuCBJuu+++8waEgAAAAAAt2Cz2zT+/DdKsifn2C7Jnqzx57+RzW7L03qWLVumyMhIWa1WDR06NMs27733niwWi8LDw7V8+fJM9xs3bqyePXu6/OyffvpJdrtd5cqV06OPPprpvpeXl1599VWXx72Wj4+PXnrppUzXPT091aNHD0nS7t27XRrT29vb0XfDhg03VB+Q30xbAhwUFKSLFy86/sUAAAAAAAB38cCRwfn2rLMpYXrwaOZgzBWzak3O8f62bdskSfXr11dISEiWbUJDQ1WvXj3t3btX27Zt01133ZXh/s0335yr2v78809Hf6vVmmWbjh075mrsdPXq1ct2KXKFChUkSREREVne3759uyZMmKANGzbo1KlTiouLy3Rw6dmzZ2+oPiC/mRYA1q9fX2vXrtWpU6fMGhIAAAAAAOSBixcvSroS8uWkUqVK2rt3r2PV37XKli17Q8+uWLFitm1yuueMwMDAbO95eFyJQlJSUjLd+/zzz/Xyyy/LZrsyA9NisSgoKMixRDk2NlZxcXGKi4u7ofqA/GbaEuBBgwbJbrfrxx9/NGtIAAAAAACQh7I63dfZdtnN3ruef86mc/Z5eW3//v165ZVXZLPZ1K9fP23dulWJiYmKiIhQWFiYwsLC9PLLL0ty7j0AhYlpAeDDDz+sjh07atOmTfriiy/MGhYAAAAAAJgsffbe6dOnc2yXfj+3s/2yUq5cOUnSuXPnsm1TEEts586dq7S0NNWvX18zZsxQixYtMh1ocv78+XyvCzCDaUuADcPQTz/9pHvuuUcvvfSStm/frpdfflmNGzc26xEAAAAAABSI6+2pdz27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559677339MMPP7g09vTp0yVJgwcP1rBhwxzXPTw81KNHD/3www9q3ry5Ll26pHXr1ql3796ONsnJyXrvvfckSc8//7zeeustx70mTZro119/Vb169XTkyBFNnDhRzz77bK4/g8LEtABw1qxZkqTg4GD9/vvvqlmzpllDAygEPJNjJPk43d7LnpR3xeQja4lAhb41TPG7d8pzyWrp6upIjzJlFNLvX/Jv3tKtlv66k4JaDisV3JJY9sMDAADOuvagjbfeeksff/yxZs6cqePHj8vf318dO3bUu+++q6ZNm2boN2zYML3//vtq3Lixdu7cme34v/32m9q3by+LxaITJ06oUqVKGe7PmTNHn3/+uXbs2CGLxaIGDRpoyJAhGjBgQI51nzx5Ur/88ouWLFmiQ4cO6fTp07JYLKpevbpuvfVWvfLKKypfPuv9yKtVq6YTJ07ou+++07333quRI0dq7ty5On36tMqXL6977rlH7733noKCgiRJ27dv1+jRo7VhwwZFRESobt26evnllzV48GDTa5OkpKQkjR07VjNmzNCxY8cUGBiom2++WW+99ZbatGnj2Id79erV6ty5c6b+KSkpmjRpkmbPnq3du3crOjpaZcqUUbt27fT888+rU6dOOX62/1S/fn3t379fH3zwgd55551s2w0dOlSjR49W8+bNtW3bNklSVFSUFi5cKEl69dVXHeFfOg8PD7366qsaOHCgFixYoJiYGJUoUcLp2sLCrvzLfYsWLbK836RJE3l4eCg1NVVxcRlXp61cuVJhYWEyDEOvv/56pr6VK1dW//79NXHiRE2bNs1tAkDTlgAfOHBAhmHo6aefJvwD3FBN45BL7Wu42L4wMywW+TdpJv8WrR3XAlrdrIDWbQn/AAAA4DKbza49u+L1/XcXNeGLMH3/3UXt2RUvmy3/t8dKSkpSly5d9N577+no0aPy8vLSpUuX9NNPP6l169b6+eefM7R//PHHZbFYtGvXLm3dujXbcdP3+O/Vq1em8O+VV17R/fffrw0bNiguLk4Wi0W///67Bg4cqNdeey3HegcNGqTnnntOCxcu1KFDh+Tl5aX4+Hjt3r1bH3/8sZo0aaI9e/bkOEZUVJTatm2rjz76SOfOnVNaWppOnDihTz75RL1791ZSUpIWLFigdu3a6ccff1RCQoKSkpK0a9cuPfLII/rss89Mry0mJkadOnXSO++8o3379iktLU1JSUmaP3++OnTokOn78E9nz55V69at9cwzz2jNmjUKDw+Xr6+vzp07px9//FGdO3fOMFPOGelhbPpsu6zY7XbNnDkzQ3tJ2rBhg2P5bM+ePbPsm349KSlJGzZscKm26tWrS1K2vwd37Nih1NRUWSwWNWvWLMO9VatWSZIaNGiQ6fdmul69ekmSNm/enClALKpM+8k1/RvbuHFjs4YEUIg089mtFaqnNHnm0MouyVA1y1GV8XCPPyRRdLEcFgAAFEbHjibqm/HnFXY24xY7K5dGKaSip54cUl41ajq/8uZGffXVV0pJSdF3332nBx98UF5eXtq/f7+eeOIJbdy4UQMHDtTevXtVtWpVSVdmR/Xu3VuLFi3SpEmT1LJly0xjxsbGOpZ0Pv744xnuzZo1S59++qkk6ZlnntGIESNUtmxZRUREaOTIkfrPf/7jmIGXlYYNG+q2227T3XffrapVq8rHx0cpKSnauHGj/u///k9btmzRgw8+qJ07dzpmzP3T8OHDVb58ea1fv1633HKLkpOTNXXqVD3zzDPavHmzRowYoS+//FIDBgzQyJEjFRISoosXL+qJJ57Q/PnzNXToUA0aNEilSpUyrbaXXnpJv//+u7z/v707j9OyrPcH/nlmgGHYZJFFEBQBSUtzzTUlsQS3jqi5r2VlalpZJ6Pclzou5dGj1i8UCRUzLc3dNLUy11xwR2QTRFZlX2d+fxBPIOsMAwMP7/frNa/XPfd1Xff9fQYm9dO1VFTkuuuuy4knnpiKioqMGDEiZ5xxRk455ZQV/kzmzp2bgw8+OK+88kr23nvvXHLJJdljjz1SUVGRKVOm5IYbbsjFF1+ciy++ONttt12OOOKIFT5rSccee2x+9rOf5e23386//vWv7LTTTsv0eeaZZzJy5MiUlZXlmGOOKd5/8803kyTt27df4Wm6bdu2Tbt27TJhwoS8+eab6du372rVlSTf/va3c8455+TWW2/NVlttlTPPPDOtW7fOggUL8uSTT+b0009Pkpx99tnZaqutlhq7uLbPfvazK3z+4rbq6uq8/fbbK5xpuCGpswBw8803z3vvvZe5c0tj2R+wtObNC/lKg4fy0IJDV9KrkIrMzgEN7k9Z5YHrrDZYHsthAYD1zfvD5+TnF4/NvLnLn+k3ftz8/Pzisfnx+Z3WWQj4ySefZPDgwUvN3tpmm23y0EMP5bOf/WzGjBmTyy+/PL/+9a+L7d/85jfz4IMP5o477sg111yTysql/53pzjvvzIwZM9KuXbsccsghxfvV1dXFvdeOOOKI3HDDDcW2Vq1a5aqrrsrkyZMzcODAFdZ7/fXXL3OvYcOG6dWrVx5++OH07NkzQ4cOzd/+9rfss88+y33GjBkz8sILL6R790XbtjRq1Cjf+MY38s9//jM333xzrrjiinzpS18qzmJMFoVVt912WzbbbLNMnz49DzzwQE444YQ6qW3kyJG55ZZbkiTXXXddTjvttGJb165d86c//Sm77LJLPv744+V+nl//+td5+eWXs9tuu+Uvf/nLUucwtG7dOj/96U/ToEGDnHfeebn44otXOwDs2rVr9txzz/zjH//IbbfdttwAcPHswN69e2ezzTYr3v/www+TJB07dlzpOzp16pQJEyYU+6+us846Kx988EGuvvrqXHDBBbnggguKpwAvXLgwPXv2zI033phvf/vby4xdndo6dfrPZIKa1ra+qrMlwIunbr7wwgt19UhgPdJk+x2yc4Pn07fBvWmQ5Z+E1LIwJSc0GpC2ZRPT5HOfX8cVAgDA+quqqjq/+b+PVhj+LTZv7qJ+62o58BZbbJFjjz12mfvNmzfP2WefnWTRfn3V1f+p5+CDD06nTp3yySef5K677lpm7G9/+9skyUknnZSGDf+zgujVV1/NsGHDkizaN255VrbX3Kq0bt06e+65Z5KsdEnpkUceWQz/lrT//vsXr3/84x8v0960adPsvvvuSZKhQ4fWWW333HNPqqur065du5x66qnLjG3UqFF+8IMfrPDZi4PKs88+e4WHsC4OeIcOHVrcP291LB43ZMiQVFVVLdU2f/784p//p/dunDFjRpKkSZMmK33+4vbp06evdk1JUlZWll/84he58cYbi5952rRpWbhw0WGUM2fOzKRJk7JgwYJlxq5ObUu21bS29VWdzQD87ne/m5tvvjm33nprzjvvvKWSX2DD1+KLvTLlj3dl57yQbcuH5rGyHfJatkmStClMTJ+GL6V72TspK1Sn8rPbpdFmK/9/egAAYENy8tHvrbN3jR83P6ceO3yNnrG6h5Ltu+++K1wq+6UvfSlJMnXq1IwcObK471p5eXlOOeWUXHrppRkwYEBOPPHE4pg333wzzz77bJLk61//+lLPW3xAxCabbLLMvmyLdevWLZ07d86YMWNWWPOTTz6Z3/72t3nuuecybty4zJo1a5k+48aNW+H47bbbbrn327Vrt8o+iw/xmDp1ap3V9vLLLydJ9thjj5SXly/TP8kKZzNOnz69GEaeddZZ+d73vrfcfksaPXp0OnTosMp+SfK1r30tZ599dsaNG5e//vWv6d27d7HtkUceyaRJk1JZWZl+/fqt1vM+bclguSYmTJiQfv365R//+EeOPvronHvuuenZs2emTp2aJ554Iuedd15+9rOf5e9//3seeOCBFf5cNyZ1NgOwR48euemmmzJr1qz06dMnw4ev2f9YAeuX8uYtsulxJydJKgtzslnZf6ZBb13+TrYufztlheqUNW2atseveH8KAABg/bHkUseVtU2YMGGptsWHgTz99NPFWX3Jf2aj7b333unZs+dSYyZOnJhk9ZaFrsi5556bL33pS7ntttuK25C1atUq7du3T/v27dO48aKl0ys7uGFF4deSIdGq+syfP3+ZttrWtjo/lxW1jR8/vhiiTZ48OR999NEKvxZbXii5Im3atEmfPn2SLHsYyOLvv/rVry5zgm+zZs1W612L22tyAnCy6MCVf/zjHznxxBNzxx13ZOedd06zZs3SuXPnnHTSSXn88cdTUVGRRx55pLi8uia1LflnVNPa1ld1NgNw0KBBSRat47/zzjuz7bbb5qCDDsqee+6ZTTfdNGVlq84al/x/DYD1zya9eqdQKGTiHYOW296ww2bpcMb3zP4DAIASsLLZWVtssUUOOOCAPPTQQ8V98+bPn5/f/e53SZY9/KMu3vvoo4/m6quvTpKceeaZOf3009OzZ8+lgrsTTjghgwcPXmntK5rxWNM+dVXb6syCW1E9i5e8Jskbb7yRbbfdtkZ1r47jjjsuf/7zn3P33XfnhhtuSOPGjTNjxozcd999SZLjjz9+mTGLV4WubCbmku01WUX65ptv5pFHHkmSFZ4avc022+Sggw7KPffck7vvvnupv4+bbbZZXn755ZXWtmRbqaxwrbMA8OSTTy7+hSwUCpk/f37uvffe3Hvvvas1vlAoCABhA9Bi3/3S7Au7Z+jtdydjF91r2LFTNjvp6DT53OdTWI2wHwAAWD+sbgiy5PLYxb75zW/moYceyq233ppLLrkk9913XyZOnJgWLVrkyCOPXKZ/27ZtV/nOlbXfeeedSZIDDjgg11133XL7LDnTbV1ak9oW/2xXdtjEin4mi5ckJ2svADz00EPTvHnzTJs2Lffff3+OOOKI/PGPf8ysWbOy6aab5oADDlhmzOI6Pvroo0yaNGm5JwFPnDixOLO0JnW/9dZbxetu3bqtsF+PHj2SJCNGjFimtgcffDBvvPHGCscubisUCvnMZz6z2rWtz+osAEyWTa1ru5YbWL+VVTZJxRZdi983/fxOabr98vfwAACAUrC6e+qtyOuvzcpVl688+FrSD/t3zGe3W/kBCnXhqaeeWmHbk08+mWTRCb1bbrnlMu0HH3xwOnbsmHHjxuXBBx8sHv5x7LHHLveAhcWnyH7yySd59dVX8/nPL3tw4Pvvv7/C/f8W31/R/oEzZ84s7j+4rq1JbTvuuGMGDx6cZ555JgsXLlzufnUr+nNq1apVttlmm7z11lu56667lhu8rqnFe/zdeuutue2223LEEUcUl/8eddRRadBg2Whp7733TsOGDTN//vw88sgjyxwSkiyaNZksOuRkr732Wu16llxhOmrUqGyzzTbL7bc4cG3RosVS9/fbb79cddVVeeONN/LBBx9k8803X2bs4hmGu+22W5o2bbrata3P6iwA/PSaagAAAGCRbT9XmQ4dG2b8uGX3jvu0zTo2zDafrVwHVSUjR47MHXfckWOOOWap+zNmzMj//u//Jll0au7ylqA2aNAgp5xySi677LJcfvnleeGFF5Ise/jHYjvssEO6d++e9957L5dffnlx1tySLr/88hXWuskmmyRZ8Qm8l112Wb2d2LomtR122GE599xzM2HChAwcOHCZn9/8+fNzzTXXrPDdX//613Puuefm7rvvzl/+8pelTjP+tClTpqR169ar+jjLOP7443PrrbfmwQcfzDvvvJPHH3+8eH95Ntlkkxx00EH505/+lGuuuSZHH330UsHmggULip/p0EMPXSakW5klQ9Ybb7yx+Pd0SePHj88f//jHJCme3LxY79690759+3z00Ue58sorc+211y7VPmbMmNxxxx0r/Xwbojpbq3fSSSet8RcAAACUorKyQr55Rvs0qlj53nKNKgo57Yz2KSur2R50tbXJJpvktNNOy6BBg4oHW7z99ts58MADM2rUqDRp0iQ//vGPVzj+tNNOS1lZWZ577rlUVVXl85//fHbZZZfl9i0UCrnooouSJL///e9z5plnZtKkSUmSjz/+OD/60Y8yYMCAFYZBi5eaPvDAA7niiiuKhzhMnDgxP/zhD3PFFVekTZs2tftBrKE1qa1r167FLdHOPPPMDBgwIHPnzk2yKKDt169fRo8evcJ3n3HGGdl5551TVVWVQw89NFdeeeVSh7ZMnTo19913X4488shlgt7Vtd9++6Vjx46ZN29ejjvuuCxYsCDdunVbJlxb0sUXX5yGDRvmX//6V4477riMHz8+yaJw7vjjj8+//vWvNGrUqPh3YkkjR45MoVBIoVDIwIEDl2rbcsstc+CBByZJrr/++nz/+98vLpGeM2dOHn744eyzzz755JNP0rBhw5xxxhlLjW/UqFEuvPDCJMl1112Xn//855k9e3aS5LXXXsvBBx+cmTNnplu3bmu0l+X6xmZdAAAAsA5s1a1xfnx+p3To2HC57Zt1bJgfn98pW3VrvM5qOv3007P99tvnpJNOSrNmzYpLSv/2t7+lQYMGGTRoULp27brC8VtssUW+8pWvFL9fVWBy7LHH5qyzzkqS/N///V/at2+f1q1bp02bNrnyyivzgx/8YIXLaE888cTsueeeSZKf/OQnadasWVq3bp327dvnqquuyte//vUcfPDBNf0R1Ik1re3aa6/Nrrvumjlz5uQb3/hGmjdvnlatWqVr16555JFHcvPNNxf7Lj5NeMnvH3jggey1116ZPXt2fvSjH6V9+/Zp1apVWrRokdatW+erX/1q/vCHP6SqqqpWn6+srCxHH310kuSll15KkuUu613SdtttlwEDBqRBgwa5884707Fjx7Rq1SodO3bMnXfemYYNG+aWW26p1b6Ft9xyS7bffvtUV1fnl7/8ZTp16pTmzZunadOm6du3b4YNG5aKiorceuuty5xGnSTf/va3861vfSvV1dU577zz0qJFi2yyySb5/Oc/n9deey3t2rXLvffem4qKihrXtr4SAAIAAMA6slW3xrn8qi75Yf+O6X3AJtlj72bpfcAm+WH/jrn86i7rNPxLkoqKivz1r3/NxRdfnG7dumXOnDlp06ZN/uu//ivPPfdcDj/88FU+o1+/fkkWBVGrCoWS5H//939z5513Zs8990yTJk2yYMGC7Lbbbhk8eHCuuuqqFY5r1KhR/vKXv6R///7p3r17GjRokEKhkC9+8Yv53e9+V9yDsD6saW2bbLJJnn766VxyySX5zGc+k7KysjRs2DBf/epX8/e//z29evUq9m3ZsuUy49u3b5+nn346Q4YMySGHHJLNNtssM2fOLM7U+9rXvpbbbrstd999d60/46f/bFdneewJJ5yQ559/PkcffXQ6dOiQmTNnpkOHDjnmmGPy/PPP59hjj61VLe3atcsLL7yQG264Ifvtt1823XTTzJkzJ40bN84222yTM888M6+99tpKZzzedNNNufvuu9O7d++0aNEic+fOTbdu3fK9730vQ4cOzWc/+9la1ba+qtNDQAAAAGpq9rB3ajxm7pjRy72uicoey84KgXWhrKyQz27XZJ0c8rE6Kioq8rOf/Sw/+9nPajX+iSeeSJIcfvjhadWq1WqN+drXvpavfe1ry21bfPjI8lRWVubSSy/NpZdeutz2gQMHLrNkdLGRI0eutKZevXqt8jDTlT1/TWpLFgWoP/3pT/PTn/50mba//OUvSRb9Wa3o5NuysrIcddRROeqoo1b6GWprp512qtVhrzvuuGNxT73VteWWW67yXY0aNcrpp5+e008/vcY1LdavX79igF3q1noAOH369EybNi0LFy5cZd8uXbqs7XIAAGC9tjGGYWMvu2CNxk8aNKBW47oPHLJG7wWWPmzhW9/6Vj1XU5qqq6vzP//zP0kWhZQNGy5/CTmsTJ0HgFVVVRkyZEhuvfXWPP/885k2bdpqjSsUClmwYEFdlwMAABsUYRiwoZg5c2bOPPPMzJ07N7vuumu++MUv1ndJG6yPPvoo5557bk455ZTsuuuuad68eZJFh1JccMEFeeyxx5IkP/zhD+uzTDZgdRoATpgwIf369cs///nPJKnV1FAAAGDj0qn/sidAAuuva665Jtdcc00mTpyYefPmpby8PL/85S/ru6wN2vz58zN48OAMHjw4yaI9AefNm1c8nTZJLr300vTu3bu+SmQDV2cBYHV1dfr165dnnnkmyaJjrHfbbbcMGTIkhUIhvXr1Sps2bTJixIi8+uqrWbBgQQqFQr7yla+kQ4cOdVUGAAAlpL6Wwyb1tyR2YwzD7MUHG5Zp06Zl7NixadKkSXbYYYdcdNFF2Wuvveq7rA1a27Zt86tf/SqPPfZY3nzzzUyYMCFVVVXp0qVL9tprr5xxxhl+xqyROgsA77nnnjzzzDMpFAr5zne+k2uvvTZlZWUZMmTRUoKzzz47hx56aJLkww8/zEUXXZTf/OY3GTp0aK644orssMMOdVUKAAAlor6Wwyb1tyRWGAasCys7aGNVLrzwwlx44YV1VguLDvc4++yzc/bZZ9d3KZSosrp60J133pkk6datWzH8W5HNNtssN910U6688sqMGzcu/fr1W+29AgEAAACA1VdnMwBfeOGFFAqFHHnkkcsN/5a3H+APfvCD3HnnnXnppZfym9/8Jueee25dlQMAQAnYGJfDAgDUtToLACdOnJgk2WabbZa6XygUkiRz5sxZ7rijjjoqL774Yu655x4BIADAStRmP7ykbvbEq69lqZbDAgCsuToLAOfPn58kadq06VL3mzVrlhkzZmTSpEnLHdelS5ckyfvvv19XpQAAlKQ13Q8vqf2eePW1Hx4AAGuuzvYAbNOmTZJk+vTpS91v3759kuTdd99d7riPPvooSfLxxx/XVSkAAAAAwL/V2QzArbfeOh999FFGjBix1P3tttsu7733Xh5++OHljlt8v3Xr1nVVCgBASbIfHgAAtVFnAeBuu+2Wp59+Oi+++OJS9w855JD88Y9/zHvvvZf+/fvn0ksvLe4LeM011+TBBx9MoVDIHnvsUVelAACUJPvhAQBQG3UWAH75y1/OlVdemSeffDJz5sxJ48aNkyw65OP888/P2LFj8/Of/zw333xzunbtmuHDhy+1L+B3v/vduioFANhI1OZQjA35QAwAAKiNOgsAv/SlL6VXr16ZPXt2nnnmmey3335JksrKygwZMiR9+vTJjBkz8tFHH2XChAmprq4ujr3ggguy77771lUpAMBGYk0PxXAgBgAAG4M6CwDLy8vzxBNPLLdtzz33zGuvvZbLLrssjz32WMaPH5+mTZtm1113zTnnnJM+ffrUVRkAAAAAwBLqLABclS233DL/7//9v3X1OgDY6GyMy2EdigEAAKu2zgJAAGDt2hiXw9qLDwAAVq2svgsAAAAAANaetTYDcP78+Xnuuefy5ptvZsqUKZk3b17OP//8tfU6ANjoWQ4LAAAsT50HgPPmzcull16a66+/Pp988slSbZ8OAH/0ox/lT3/6Uzp37pzHH3+8rksBYCNWX/vhJfW3LNVyWAAAYHnqNACcPHlyvvzlL+fVV19NdXX1Um2FQmGZ/v369ctVV12V4cOH58UXX8wuu+xSl+UAsBGr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Y++u1buHdB9Yq3EAAADA6imr7wLqS1lZWTp06JDTTjstp556aqZPn54rr7wyc+fOLfZZfKDHkvc+bfEswSRp0qTJSt/ZtGnTtGvXbrlfZWUb7R8FAAAAAGvRRjUDcEX69OmTW2+9NZMnT85LL72UPffcM8mivf/ef//94l6Ay7NkW6tWrVb6nuOPPz7HH3/8cts233zzjB07thbVw5q7qFP/Go95f+RHufPf1ydW98lWndrXbVEAAABAnRAAJmnUqFGaN2+eKVOm5MMPPyze79y5c1588cWMHj16hWMXtxUKhWy++eZrvVZYG2qzD9/8/GfZeue0tZcfAAAArKesO00ye/bsTJs2LUlSWVlZvL/99tsnWRTyreiQjpdffjlJsvXWWxeXDAMAAADA+qLkA8CFCxeuss+9996bBQsWJEk+97nPFe9vv/32admyZaqrq/PHP/5xmXETJ07M008/nSTp1atX3RQMAAAAAHWo5APAUaNG5dxzz81jjz221Am81dXVGT16dG666abccccdSZI999wzXbp0KfZp2LBhjjnmmCTJ/fffnz/84Q/FA0FGjBiRSy65JHPmzEmHDh3yla98ZR1+KgAAAABYPRvFHoDvvvtu3n333SSL9vtr3Lhx5syZk3nz5hX7fOELX8j3vve9Zcb27ds3I0aMyMMPP5xBgwbltttuS0VFRWbNmpUk2WSTTfLTn/40DRs2XDcfBgAAAABqoOQDwE6dOuUHP/hBhg4dmmHDhmXq1KmZPn16GjVqlM033zw9evRIr169suOOO67wGd/5zneyww475KGHHsr7779fnPW322675fDDD0/Lli3X3QcCAAAAgBoo+QCwoqIi++67b/bdd981es6ee+6ZPffcs46qAgAAAIB1o+T3AAQAAACAjZkAEAAAAABKmAAQAAAAAEqYABAAAAAASpgAEAAAAABKWMmfAgw19c7sYbUaNyFTk3QoXtfmOT0re9Tq3QAAAAArIgCET7lg7GW1GlcobJ6KbJMkebjwXB4ae3eNnzGk+8BavRsAAABgRSwBBgAAAIASZgYgfMpFnfrXatz7Iz/Knf++PrG6T7bq1L7uioI6MOyd2TUeM3b80tcVtXhGj56VNR4DAABA3REAwqfUdh+++akqXndOW/v5sd657IKxtRhVXry64/7y5P6aP2PgkO61eC8AAAB1xRJg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H/7whzz//POZPHlyKioq0q1btxx44IHZfffd67s8oBYuvvjivPjii0mS/fbbL+ecc079FgSsUlVVVZ566qk8+eSTef/99zNjxow0atQo7du3zw477JBDDjkkbdu2re8yYaM3Y8aMvP766xk+fHjxa+rUqUmSn/zkJyv89+eFCxfmtddey0svvZS33347Y8eOzZw5c9K0adNsscUW+eIXv5jevXunYcOG6/LjALCeEgBSp0aPHp3+/fvnk08+SZJUVlZm5syZeeWVV/LKK6/kkEMOyWmnnVbPVQI18dRTTxXDP2DDMHfu3Fx22WV55ZVXiveaNGmSOXPmZOTIkRk5cmQefvjh/OQnP8kOO+xQb3UCyXPPPZdrr722xuNuvPHGPProo8Xvy8rKUllZmWnTpmXo0KEZOnRoHnrooVx44YVp1apVXZYMwAZIAEidmT9/fi699NJ88skn2WKLLfL9738/Xbt2zdy5c3Pfffdl8ODB+fOf/5yuXbtm//33r+9ygdUwffr0/Pa3v03Tpk3TunXrjBkzpr5LAlbD73//+2L4d8wxx+Tggw9O8+bNizOGbrrppnz44Ye56qqrMmDAgFRUVNRvwbCRa9WqVbbaaqt069YtW221VX7+85+vcsyCBQvSsmXL9O7dO3vssUe6deuW8vLyzJgxI4899lhuv/32jBgxIldccUV+8YtfpFAorINPAsD6SgBInXnkkUcyfvz4NG7cOOeff35xWVFFRUWOPPLITJ06Nffff38GDx6cXr16pUEDf/1gfTdgwIB88skn+fa3v52///3vAkDYQDz11FNJkt69e+eYY44p3i8vL8+OO+6YH/3oR/ne976XadOm5fXXX8/OO+9cX6XCRq9Xr17p3bt3jcf17ds3p59++jIBfrNmzXLYYYeldevWufrqq/P222/njTfeyOc+97m6KhmADZBDQKgzTz75ZJJkn332We6eQv369UuhUMiUKVMydOjQdVwdUFOvvPJKnnjiiWy99dbp06dPfZcD1MDi/cO6deu23PauXbumvLw8yaLlwkD9Wfy7WFM9e/Zc6ezdvffeO5WVlUmS4cOH1+odAJQOASB1Yvbs2Rk2bFiSZKeddlpun0033TSdO3dOkrz66qvrrDag5ubOnZsbbrgh5eXlOeOMM1JW5h8XsCFp3759kuS9995bbvuIESOycOHClJWVZauttlqXpQHrSHl5eXHFTVVVVT1XA0B981901IkPPvgg1dXVSZIuXbqssN/iNssIYf12++23Z/z48Tn00EPTtWvX+i4HqKHFs3afeOKJDBkyJNOnT0+y6NTQV155Jf/zP/+TJDnkkEPSoUOHeqsTWHtGjRpV/N3fYost6rkaAOqbTdioE1OmTClet27deoX92rRpk+Q/S5OA9c/w4cNz7733pm3btkvtHQZsOA4++OBMnjw5f/rTn3L77bfn9ttvL54CXFVVlU6dOuX0009P375967tUYC353e9+l2TRjODtt9++nqsBoL6ZAUidmDNnTvF6ZXuRLG6bPXv2Wq8JqLmFCxfm+uuvT1VVVb71rW+lcePG9V0SUAtlZWU56aSTcvrpp6dhw4ZJklmzZhWXAc6dOzfTpk3LwoUL67NMYC2577778vzzzydJvvGNbzh8DwAzAFm3Fi8TBtZP9957b4YPH57dd989X/jCF+q7HKCWPv7441xxxRV566238sUvfjGHHXZYOnXqlBkzZuS1117L7373u9x222158803c/7559f6EAJg/fPcc8/l5ptvTpJ89atfzW677VbPFQGwPjADkDqx5CyhlZ0muLht8YlkwPpj/PjxueOOO1JZWZlvfvOb9V0OsAZ++ctf5q233sqXvvSl/PCHP0z37t1TWVmZtm3bpnfv3rnkkkvSsGHDvPzyy3n88cfru1ygjrz88sv5n//5n1RVVaV379459dRT67skANYTAkDqxJL7/i25H+CnLW5r1arVWq8JqJkBAwZk7ty5Ofzww9O0adPMnj17qa/FSwcXLly4zD1g/TF69Oi8/PLLSZLDDjtsuX06d+6cXXbZJUnyzDPPrLPagLXn1VdfzWWXXZb58+dn3333zVlnnZVCoVDfZQGwnrAEmDqx+eabp1AopLq6OqNHj87mm2++3H6jR49Osug/PID1y4QJE5IkgwcPzuDBg1fY76mnnspTTz2VJPnVr36Vrbbaap3UB6yeDz74oHi92WabrbBfx44dkyQfffTRWq8JWLtee+21XHrppZk3b1723HPPnHPOOSkrM9cDgP/wTwXqRGVlZXr06JEk+de//rXcPpMmTcqYMWOSxElkALCWLDnjZ3Gwvzwff/xxkqRJkyZruyRgLXr99ddzySWXZO7cufnCF76Qc889176eACzDDEDqzD777JN33303Tz/9dI466qi0bdt2qfZ77rkn1dXVad26tQAQ1kPXXnvtStt/8pOf5PXXX89+++2Xc845Z90UBdTYkrNyH3rooeXu6Tl16tQ8++yzSZKePXuus9qAuvXGG2/k4osvzty5c7PLLrvkv//7v534C8BymQFInenTp0/atWuXOXPm5JJLLsmIESOSLDr44w9/+EMeeOCBJMmxxx7rX0wAYC1p3759cX+/Bx54IAMGDMjkyZOTJPPmzctLL72U8847LzNnzkyDBg1y4IEH1me5QJJp06Yt9bXY7Nmzl7q/YMGCYtvbb7+diy++OHPmzMmOO+6Y8847Lw0bNqyP8gHYABSqq6ur67sISsfIkSPz05/+tPgvLk2aNMncuXOzcOHCJMmBBx6Yb3/72/VZIlBLZgDChuPjjz/O+eefn5EjRxbvVVZWZu7cucXDexo2bJjvfve72XfffeupSmCxQw89dLX6XXbZZdluu+2SJP3798/QoUOTJM2bN1/pst8vfvGLOe2009a8UAA2WKZhUae23HLLXH/99fnDH/6Q559/PpMnT06TJk2y1VZbpW/fvtlzzz3ru0QAKHktW7bM1VdfncceeyzPPPNMRo4cmZkzZ6Zhw4Zp165dtt9++xx88MHp1KlTfZcK1NKS8zimT5++0r4zZ85c2+UAsJ4zAxAAAAAASpg9AAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABYCMzcODAFAqFFAqFDBw4sE6eueWWW6ZQKGTLLbesk+cBAAB1p0F9FwAAG4JCobDCtqZNm6Z169bZfvvt07dv35xwwglp0aLFOqyu7v3qV7/Kxx9/nJYtW+acc86p73IAAIA1YAYgAKyhmTNnZsyYMXnggQdy5plnZuutt84jjzxS32WtkV/96le56KKL8qtf/aq+SwEAANZQobq6urq+iwCA9d2SMwD/+Mc/LtU2ffr0vPLKKxk0aFAmTZqUJKmoqMhTTz2V3XbbbZ3WWVe23HLLjBo1KltssUVGjhxZ3+UAAABrQAAIAKthyQBwRf/onDx5cvr27ZsXXnghSbL77rvnn//85zqpr64JAAEAoHRYAgwAdaRNmza59dZbi98/++yzGT16dD1WBAAAIAAEgDq1zTbbpEePHsXvhw4dukyfadOm5corr0yvXr3SoUOHNGrUKG3bts3uu++eCy+8MBMmTFjle+bOnZtf//rX6du3bzp16pTGjRunadOm2XLLLbPrrrvm9NNPzx//+MfMnDlzmbErOwV48Wm+o0aNSpKMGjWq2HfJrwsvvHC541bnFOCnn346X//617P11lunefPmadKkSbbaaqscd9xxuf/++1c5/tPvqqqqysCBA/OlL30p7du3T+PGjdOlS5ccf/zxefXVV1f5PAAAKHVOAQaAOta2bdsMGzYsSfLJJ58s1fboo4/muOOOK+4VuNikSZMyadKkPPfcc7nmmmty44035rjjjlvu80eMGJE+ffrk3XffXaZt1KhRGTVqVF588cXcdNNNueuuu3LEEUfU0SdbM7Nnz84pp5ySO++8c5m2ESNGZMSIEbn99tvTu3fv3HXXXWnVqtUqnzl58uQcfvjheeqpp5a6P2bMmNx2220ZMmRIBg4cmOOPP77OPgcAAGxoBIAAUMeWnMHXsmXL4vVf/vKXHHTQQVmwYEGSZJdddsnRRx+dzp07Z8KECbnnnnvy17/+NdOnT88JJ5yQ6urq5QZXRx55ZDH8+8xnPpMjjzwyW2yxRTbZZJNMmzYt77zzTp5++uk8//zzNa79N7/5TWbNmpVvfvObmThxYtq2bZvf/OY3y/T7zGc+U6PnVlVV5ZBDDsnjjz+eJGnSpElOPPHE7LHHHikvL8/LL7+cW265JVOmTMnjjz+eXr165dlnn01lZeUKn7lgwYJi+Lf77rvniCOOSOfOnTN16tTcddddefzxx7Nw4cKcdtpp2W233ZaamQkAABsTh4AAwGpYnUNAkuStt97KtttuW/x+9OjR6dy5c2bOnJkePXrkww8/TJL0798/l1xyyVLPTZLrr78+Z511VpKkWbNmeeutt7L55psX21988cXsuuuuSZKvfe1rueOOO1JWtvwdPUaPHp2qqqplluUOHDgwp5xySpLklltuycknn7zM2JoeArKq/ldffXXOPffcJEmXLl3y+OOPp3v37kv1GT9+fL785S/n9ddfT5Kcc845+eUvf7nCdy32y1/+Muecc84y/c4444zccMMNSZIzzzwz11133So/BwAAlCJ7AAJAHZk6dWoxWEsWnQLcuXPnJItCt8Xh3wEHHJBLL710mfAvWRRULX7GjBkzlgmt3nvvveL1SSedtMLwL1kUtK3Onnxr2/z583P11VcnWRSkDhkyZJnwL0k6dOiQe+65JxUVFUmSX//615k8efJKn33CCScsN/xLkiuuuKI4g/Chhx5ag08AAAAbNgEgANTQn/70p6W+Bg8enB/+8If5zGc+k+eeey5J0qhRo1xzzTXFMXfffXfx+rzzzlvp83/yk58sd1ySNG3atHj90ksvrdHnWFf++c9/FsPPfffdN3vssccK+/bo0SNHHnlkkkV7Bq4quPv+97+/wrYWLVpkl112SZIMHz48c+bMqWnpAABQEuwBCAA1dNhhh620vW3bthk4cGAx6Kquri7ux9ekSZPsvffeKx3fvXv3dO/ePe+9916GDx9e3IsvSfbaa680adIks2bNysUXX5zJkyfnhBNOyE477bTcGYXrg2effbZ4fcABB6yyf58+fTJ48ODi2BUd4NGkSZN8/vOfX+mzOnXqVLz++OOP06FDh9UpGQAASooZgACwhiorK7P55punb9+++d///d+8++67OfDAA4vt06ZNy8yZM5Mk3bp1S3l5+Sqf2bNnz+L14tlzSdK6detce+21KSsry4IFC3Lttddml112SevWrXPQQQflF7/4RV5++eU6/HRrbsn6t95661X2X/Kzjxs3boX92rRps8rQc/Fy4iRmAAIAsNESAAJADVVXVy/1NWvWrIwZMyYPPvhgzjrrrKVO/k2S6dOnF6+XXMK7Ms2aNVvu+CT5xje+kaeffjp9+vQphokff/xxHnzwwfz4xz/OTjvtlO2333692feupp9/ZZ99SSvb/xAAAPgP/+YMAGtZ8+bNi9eLZwKuyowZM5Y7frG99torDz30UCZNmpT77rsv5513Xvbee+9iIDh06NAceOCBGThw4JoVXwdq+vlX9dkBAICaEQACwFrWokWL4sy34cOHZ+HChasc8+677xavO3bsuMJ+LVu2zCGHHJLLL788f/vb3/Lhhx/mjDPOKLb/4Ac/yPz589eg+jW32WabFa+X/FwrsrqfHQAAWD0CQABYywqFQr7whS8kSWbNmpW///3vK+0/fPjwvPfee0kW7Rm46aabrva72rZtm+uvv754OMaUKVPyxhtv1Ljmxctrq6urazz203bffffi9SOPPLLK/g8//PByxwIAALUjAASAdeCII44oXv/85z9fad8rrriiGLwtOa4munbtWrxesGBBjccv3odvdZcsr8wee+xRnMn31FNPLXUq8Ke99957ueuuu5IsOuV3ycNUAACA2hEAAsA6cNJJJxWXwj788MM5//zzlzu77qabbsrNN9+cZFEId9ZZZy3Vftttt+Xmm29eaTD3zjvv5PHHH0+SNG7ceKlTdVfX4gBx8uTJGT16dI3HL6lhw4Y599xzkyyaUXj00Udn+PDhy/SbMGFCDj/88OJpvd/61rfSunXrNXo3AACQNKjvAgBgY9C0adMMGjQoffv2zYIFC3LJJZfk4YcfztFHH53NN988EydOzD333JMnnngiyaJlwzfeeGM6deq01HOGDRuWiy66KGeddVb233//7LrrrunSpUsqKyszceLEPPvss7n77rsza9asJMl3v/vdWh2ksf/+++e+++5LkvTr1y/f/va307Fjx+LS4O7du6d79+6r/byzzz47DzzwQB5//PGMGjUq22+/fU4++eTsvvvuKS8vzyuvvJIBAwZkypQpSZLtttsul112WY3rBgAAliUABIB1ZP/998/999+f4447LpMnT84LL7yQF154YZl+zZo1y4033pjjjz9+mbbFAdysWbNy3333FUO6TysUCvnOd76Tyy+/vFa1nnrqqbnhhhvy9ttv56WXXsppp522VPsFF1yQCy+8cLWfV1ZWlj//+c85+eST8/vf/z6zZs3KDTfckBtuuGGZvvvtt1/uuuuuVFZW1qp2AABgaQJAAFiHDjjggLz//vu56aabcv/99+ftt9/Oxx9/nBYtWqRbt27p27dvvvOd76Rdu3bLHd+/f//07ds3TzzxRJ5++um8/fbb+fDDDzNv3rw0a9YsW221Vfbaa6+ceuqp2XHHHWtdZ9OmTfPss8/mmmuuyYMPPphhw4Zl+vTpqaqqqvUzKysrc+edd+Y73/lOBg4cmL/97W8ZP358Fi5cmPbt22ePPfbIsccem0MOOaTW7wAAAJZVqK6L4/0AAAAAgPWSQ0AAAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCECQABAAAAoIQJAAEAAACghAkAAQAAAKCE/X8S3IryNgmnTQAAAABJRU5ErkJggg==" }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" } ], "source": [ "(ggplot(df_fwd, aes(x='position', y='mean', color='bam')) + geom_point() + geom_errorbar(aes(ymin = \"mean - std\", ymax = \"mean + std\")) + theme_classic() + ylab(\"Mean Phred score\") + xlab(\"Position\"))" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2024-09-19T10:37:34.579376Z", "iopub.status.busy": "2024-09-19T10:37:34.579130Z", "iopub.status.idle": "2024-09-19T10:37:35.629074Z", "shell.execute_reply": "2024-09-19T10:37:35.628306Z" } }, "outputs": [ { "data": { "image/png": "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AAAAAMCLEQACAAAAAAAAXowAEAAAAAAAAPBiBIAAAAAAAACAFyMABAAAAAAAALwYASAAAAAAAADgxQgAAQAAAAAAAC9GAAgAAAAAAAB4MQJAAAAAAAAAwIsRAAIAAAAAAABejAAQAAAAAAAA8GIEgAAAAAAAAIAXIwAEAAAAAAAAvBgBIAAAAAAAAODFCAABAAAAAAAAL0YACAAAAAAAAHgxAkAAAAAAAADAixEAAgAAAAAAAF6MABAAAAAAAADwYgSAAAAAAAAAgBcjAAQAAAAAAAC8GAEgAAAAAAAA4MUIAAEAAAAAAAAvRgAIAAAAAAAAeDECQAAAAAAAAMCLEQACAAAAAAAAXowAEAAAAAAAAPBiBIAAAAAAAACAFyMABAAAAAAAALwYASAAAAAAAADgxQgAAQAAAAAAAC9GAAgAAAAAAAB4MQJAAAAAAAAAwIsRAAIAAAAAAABejAAQAAAAAAAA8GIEgAAAAAAAAIAXIwAEAAAAAAAAvBgBIAAAAAAAAODFCAABAAAAAAAAL0YACAAAAAAAAHgxAkAAAAAAAADAixEAAgAAAAAAAF6MABAAAAAAAADwYgSAAAAAAAAAgBcjAAQAAAAAAAC8GAEgAAAAAAAA4MUIAAEAAAAAAAAvRgAIAAAAAAAAeDECQAAAAAAAAMCLEQACAAAAAAAAXowAEAAAAAAAAPBiBIAAAAAAAACAFyMABAAAAAAAALwYASAAAAAAAADgxQgAAQAAAAAAAC9GAAgAAAAAAAB4MQJAAAAAAAAAwIsRAAIAAAAAAABejAAQAAAAAAAA8GIEgAAAAAAAAIAXIwAEAAAAAAAAvBgBIAAAAAAAAODFCAABAAAAAAAAL0YACAAAAAAAAHgxAkAAAAAAAADAixEAAgAAAAAAAF6MABAAAAAAAADwYgSAAAAAAAAAgBcjAAQAAAAAAAC8GAEgAAAAAAAA4MUIAAEAAAAAAAAvRgAIAAAAAAAAeDECQAAAAAAAAMCLEQACAAAAAAAAXowAEAAAAAAAAPBiBIAAAAAAAACAFyMABAAAAAAAALwYASAAAAAAAADgxQgAAQAAAAAAAC9GAAgAAAAAAAB4MQJAAAAAAAAAwIsRAAIAAAAAAABejAAQAAAAAAAA8GIEgAAAAAAAAIAXIwAEAAAAAAAAvBgBIAAAAAAAAODFCAABAAAAAAAAL0YA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kydPVnJysm688UYtWrRI4eHhebaPiYnRTTfdpOTkZBmGke/0ZAAAAAAArkZZ+/u52iY+Pt75OiMjQ3369NG2bdskXdgz8IYbblDjxo1VsWJFBQQEyGq1SrpwsMeHH34oScrMzMz3eRaL63N93GkLoPgyLQBs27atBgwYoAULFui3335TkyZN9MILL2jgwIHZ9gg4fvy4vvvuO7399ts6ceKEDMNQnz591KlTJ7NKgcn27012u0/qMemM/cIeeClHJJvd/THq1Atwuw8AAAAAFKbExES32lx6cOacOXOc4V/37t01f/78PA/WPHHixBVWCqAkMy0AlKQvvvhC7dq10969e3Xy5Ek9/vjjevzxxxUUFKTg4GAlJCRk+43P4XCobt26mjFjhpllwGTjRhfkDxqrpAcuvPxMktwfY9pXtQvwXAAAAAAoPAcOHHCrzaX73//000/O1++9916e4Z8k/fXXXwWsEABMDgDDwsK0ceNGjRgxQt9//73zelbw53A4srUfOHCg/ve//+W7VNgMf/75pzZt2qT9+/crMjJSsbGxSktLU2hoqGrWrKnOnTurU6dOMgwjR9/77rtPUVFR+Y5//fXX66GHHvJU+QAAAACAq9S6deuUmpqaba+8f1q+fLnzddu2bZ2vL90/v3bt/CdALF68+AqqBFDSmRoAShdCwPnz52vTpk2aPn261q1bp2PHjikuLk6hoaGqWrWqOnXqpOHDh6tVq1ZmPz5XP/74o9asWeP8OmsfhfPnz+v8+fPatGmTfvrpJ7300ksKDAzMdYzAwED5+fnlec+bvTS2itt9Dv1+VLMXXtirYmj/TNVsXc3ssgAAAACgyMXExOizzz7TyJEjc71/4sQJzZ49W5Lk7++vfv36Oe9dujfggQMH1KhRo1zH+Oqrr7R7924TqwZQ0pgeAGZp1apVoQV8l9OwYUPVrVtXDRo0UOXKlRUQcGFvuejoaP3000+aPXu2duzYof/973969NFHcx3j/vvvV/fu3Quz7KtGQfbiSz329+sqFdnPDwAAAID3ev7559WkSRN17Ngx2/WYmBjdcsstzq2w7rvvPpUuXdp5v3Xr1po/f74k6aWXXtK8efOch35kWbVqlR588EEPvwMA3s5jAeDVpE+fPrleDw8P15AhQ5Samqq5c+dq9erVevDBB+Xr61vIFQIAAAAAiqP+/ftr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LVy4UImJiUpISNB3332nkJAQHThwQK+88oqGDBmiDh066ODBg4qJiVFMTIweeughSdIHH3ygPXv25Bi3Ro0aevXVV7Vt2zYlJiYqJiZGqamp+v3339W7d28lJCRo6NChSkpKyrO2jz76SNu2bdPnn3+u+Ph4xcTEaPfu3erQoYPS09M1bNgwHTlyJFuf9PR03XLLLYqMjFTVqlW1dOlS5/tavXq1goKC9Mwzz+T5zICAAN1xxx1avHixoqKilJKSooSEBEVGRur111+X1WrV5MmT9e233+Y5xpkzZ/TYY4/phRde0Llz5xQbG6u//vpL1113nTIzM/X444/r2WefdX7uCQkJio+P1/fff6+QkBAdPnxY//73v02tbf/+/brnnnuUmZmprl27au/evYqJiVFCQoKmT5+urVu36qOPPsrzPX399dd6/PHHZbPZ9Prrr+vUqVNKTExUUlKSNmzYoFatWunQoUMaPHhwnrNCc3s/gwcPlnRhr768ZN279dZb5evr69LY0t8T2Pz8/FS3bl2X+7li586dOnfunCSpcePGpo6dkZGhDRs2mD62aQHg5MmTdezYMXXr1k1PPPGES30ee+wxdevWTUePHtXkyZPNKgUAAAAAgKtOyqGDOvHWa0qPPJnr/fTIkzrx1muFGgLGxMToq6++Ur9+/WSxWGS1WjVw4EA999xzki6EcH5+fpo/f75q1qwp6cJWX5MnT1bt2rXlcDg0d+7cHOOOHj1aY8eOVZMmTZyzmaxWq1q1aqXvv/9e9evX1+nTp3PtmyVrD7QRI0bIz89PklS/fn0tXrxYERERSkxMzDGbb86cOdqxY4esVqsWLlyoXr16OZeJdu7cWUuWLFFKSkqez2zbtq1mzJihPn36qFy5cs7rFSpU0Msvv6zRo0dLUr4ZRlJSkm6//XaNGzdOpUqVkiRdc801+uqrr2QYho4fP67Jkyc7P/esw1EHDBjg/Ny/+eYbU2t78803lZKSolq1aunHH390BmK+vr6688479emnnyomJibX95OamurMebIO1cg6+dbHx0ft27fX0qVLValSJW3fvl3fffddnp/NP2WdhrtkyRJnoHapU6dOaeXKldnauiI+Pl5vvfWWJOmWW27Jth2dGUaNGiXpQtDdrVs3U8f+4IMPFBkZKavVqhEjRpg2rmkB4Lx582QYhjO9ddXNN98sh8ORb3oOAAAAAEBx5rDbdfqTyXKkpebfLi31QjsXZ1Fdqeuuu06dO3fOcb1Hjx7O188++6x8fLLvIGaxWJzLd3fs2OHWM202m3r27ClJWr9+fZ7tqlevrttvvz3H9ZCQEGcg9c0332Q7rDQrUOzXr5+aNm2ao2/dunV1yy23uFXvpfr37y9J2rhxY77LM1988cUc16pVq6Y6depIyvtz7969uyTp0KFDSkxMNKU2h8Oh+fPnS5KeeOKJXPe2Gzp0qGrUqJHruIsWLVJkZKTq1q2b65JrSSpdurT69u0rSdn2Obycbt26qXLlykpPT8819Pzqq69kt9tVo0YNtW/f3qUxHQ6HRowYoRMnTqhUqVIaP368y/W44v3333fuRfjee++5NSvxcn777Te99NJLki58r+rVq2fa2G7vAZiXw4cPS5LKli3rVr8yZcpk6w8AAAAAwNXmwIjbCu1Z6ZEndfCenMGXO2pP+8qldnktMSxfvvxl21SoUEGS8tzSa8uWLZoyZYrWr1+vY8eOKTExMVtYJ13YbzAv+R3ykBU+RkdH6/Dhw87wKuvQhPwOsujatatmzJiR5/3Y2Fj997//1Y8//qg///xTsbGxysjIyNYmOTlZ0dHRuWYg/v7+zqDvn8qXL699+/Zd9jOVLszODAoKuuLaDh065Dygo2PHjnm+744dO+qvv/7KcT1rOeqRI0ecM/9yk5CQ4GznKovFottuu03vvPOOZs6c6VxaniVr+e8dd9zh8pjPP/+85s2bJ4vFos8//1wREREu972cBQsWOJeQP/300xowYIBpYx86dEgDBw5USkqK2rVrZ3pwaVoAmPUTLr+TfHKT1f6fP2EBAAAAAIBn5RXoWK1Wl9ukp6fnuPfBBx/oqaeecu4HZ7FYFBYWJpvNJulCWJSYmJjvLLcqVaq4dC8qKsoZAJ45c8atvv+0d+9edevWLVswGRQUpPDwcFksFmVmZurs2bOSpMTExFwDwPLly+cZXGZ9Zq587v/8XAtaW9ZnIkmVK1fO873ndS/rNOjU1FSdPn06z/5Z8tvXMTd33HGH3nnnHW3YsEFHjhxR9erVJV14v1mBrqvLf1977TVNmDBBhmHo008/zXPGYkH89NNPuvXWW5WZmam7775bEydONG3so0ePqlu3boqMjFSzZs20aNEi57J3s5i2BLhGjRpyOByaNm1arr/4c5Oenq5p06Y5+wMAAAAAgMKTV1DlbptL7dmzR08//bTsdruGDBmiTZs2KSUlRdHR0YqMjFRkZKSeeuopScoxI9BVBe13ub533323Tp48qZo1a+rbb7/V+fPnlZCQoKioKEVGRmrjxo2XHccTn+mV1HYln5X090m0t9xyixwOx2V/ZB2+4aoWLVqofv36cjgcmjVrlvN61uy/Vq1aubQU9s0338y2D+I999zjVh35WbFihQYNGqTU1FTdfvvt+uyzzwr0PczN8ePH1bVrVx05ckSNGjXSsmXLcpwAbQbTAsCBAwdKkvbt26dhw4YpOTk53/YpKSm68847tXfvXhmGYWoqCwAAAAAAisbcuXOVmZmpBg0aaNasWWrZsmWOfdJcmUmW3/LgS+9dulw563AMV/te6tixY/rll18kXQifBg8enCOIcaVuT7iS2i79fLJm8+Umr3tZy5J37drlVs3uyFrie+lpwFlhoCvLf//97387985799139fDDD5tW26pVqzRgwAAlJyfr5ptv1vTp02WxmBOnnThxQl27dtWhQ4dUr149LV++3O2t9Vxl2hLgZ555Rp9++qnOnDmjuXPnauPGjXrkkUfUvXt31alTR4GBgUpKStKBAwe0fPlyTZkyRUePHpV04SdjfsdwAwAAAABQlFzdUy8vSTu36+TENy/f8KLKz72kwIa57xN3tTt27JgkqUmTJrkGJQ6Hw3mya37WrFmT572sWWbh4eG65pprnNdbtGih48ePa82aNXryySfz7ZtX3ZLUvHnzXNssX74835o95Upqq1mzpsLCwhQbG6t169blejiKJK1duzbX6x06dNAHH3yg3bt3a/fu3WrQoIGb1V/e7bffrldeeUW7du3Stm3blJycrIMHD8pqtWro0KH59p04caJeeOEFSdJbb72V5/e9INasWaP+/fsrKSlJAwYM0KxZs7It074SJ0+eVNeuXXXgwAHVqlVLK1euzLYHpNlMmwFYqlQp/fDDDwoLC5PD4dDx48c1atQotW3bVqVLl5a/v79Kly6tNm3aaNSoUTp69KgcDke2fgAAAAAAeKOABo3kWzHv/dcu5VupsgLqN/RwRZ6T9e/7nTt35rr89NNPP9XBgwcvO87hw4c1e/bsHNcTEhL0wQcfSLqwLPXSpZhZJ/wuXLgw19OJDxw4kOtps5fWLeV+svGp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iYmyWCz69ddfNWzYMD377LP51jt8+HA9+uijWrhwofbt2yc/Pz8lJSVpx44devvtt9W0aVPt3Lkz3zFiY2PVrl07vfXWWzp16pQyMzN15MgRvfPOO+rTp49SU1O1YMECtW/fXt9++62Sk5OVmpqq7du36+6779Z7771nem3x8fHq3LmzXn75Ze3evVuZmZlKTU3V999/r44dO+b4PvzTyZMn1aZNGz388MNavXq1zp8/r4CAAJ06dUrffvutunTpkm2mnCuywtis2Xa5cTgcmj17drb2krR+/Xrn8tlevXrl2jfrempqqtavX+9WbTVq1JCkPH8Obt26VRkZGbJYLGrevHm2eytXrpQkNWzYMMfPzSy9e/eWJG3cuDFHgFhcmTYDMOsb26RJE7OGBHAVqRocrXqW3dprb3DZtp18V8rqe/l2gCexHBYAAFyNDh1M0SeTTyvyZHq26yuWxqpiZV89MLKCatbyL7R6PvroI6Wnp+vzzz/X7bffLj8/P+3Zs0f333+/NmzYoGHDhmnXrl2qXv3CaqCIiAj16dNHixYt0tSpU9WqVascYyYkJDiXdN53333Z7n311Vd69913JUkPP/ywxo4dq3Llyik6Olrjxo3Tf/7zH+cMvNw0atRI119/vQYOHPj/7d15mJZl3T/+9z3DMAyroCyyiApIVpqmpqImiuWu30hzX8vK1LSynpRyRyuX8tFHrd+DIrnmUpq76eNSrhgq7qhsgciq7OvM7w9iAllnuGHg5vU6jjmOa67zPK/rcwOj+PZc0rVr1zRp0iTz5s3LP/7xj/zsZz/Lyy+/nKOPPjqvvfbacv+n/QUXXJD27dvn2Wefze677565c+dm0KBBOfXUU/PCCy/kwgsvzHXXXZdjjjkm/fv3T4cOHTJhwoSccsopue+++3Luuefm+OOPT5s2bYpW21lnnZUXX3wxlZWVueaaa3L88censrIyw4cPz2mnnZaTTjppub8mc+bMyUEHHZRXX301u+++ey6++OLsuuuuqayszOTJk3PdddfloosuykUXXZRtttkmhx122HKftbijjz46v/zlL/POO+/kn//8Z7785S8v1ee5557LiBEjUlZWlqOOOqr2/ltvvZUkad++/XJP023btm3atWuX8ePH56233sr++++/SnUlyfe///2cddZZufnmm7Plllvm9NNPT5s2bTJ//vw89dRTOfXUU5MkZ555Zrbccsslxi6q7Qtf+MJyn7+oraamJu+8885yZxquT4oWAHbu3Dnvv/9+5syZU6xHAuuQyi2659Bhd+dP847JiOrlz/Ldq9Fj+VL5kFRu4VRcGpblsADAuubDD2bnVxeNydw5y57pN27svPzqojH5+Xmd1loI+Omnn+aWW25ZYvbW1ltvnYcffjhf+MIXMnr06Fx66aX5/e9/X9v+3e9+Nw899FBuv/32XHXVVamqWvLvTHfeeWemT5+edu3a5eCDD669X1NTU7v32mGHHZbrrruutq1169a54oorMmnSpAwcOHC59V577bVL3auoqEjv3r3zyCOPpGfPnhk6dGieffbZfPWrX13mM6ZPn56XX3453bsv3LalcePG+c53vpPnn38+N954Yy677LLstddetbMYk4Vh1a233ppNN90006ZNy4MPPpjjjjuuKLWNGDEiN910U5LkmmuuySmnnFLbtsUWW+Qvf/lLdtxxx3zyySfL/Dy///3vM2TIkOy8887529/+tsQ5DG3atMkvfvGLNGrUKOecc04uuuiiVQ4At9hii/Tq1Sv/+Mc/cuutty4zAFw0O7BPnz7ZdNNNa+9/9NFHSZKOHTuu8B2dOnXK+PHja/uvqjPOOCP/+te/cuWVV+b888/P+eefX3sK8IIFC9KzZ89cf/31+f73v7/U2FWprVOn/0wmqGtt66qiLQFeNHXz5ZdfLtYjgXVIq732SePC3BxdcXMOqbg7zQvTatvKUp3Pl72eExr/Prs1eiYVm3ZM1efMAAQAgEWqq2vyh//5eLnh3yJz5yzst7aWA3ft2jVHH330UvdbtGiRM888M8nC/fpqav5Tz0EHHZROnTrl008/zV133bXU2P/93/9NkpxwwgmpqKiovf/aa69l2LBhSRbuG7csK9prbmXatGmTXr16JckKl5QefvjhteHf4vbZZ5/a65///OdLtTdr1iy77LJLkmTo0KFFq+3ee+9NTU1N2rVrl5NPPnmpsY0bN85PfvKT5T57UVB55plnLvcQ1kUB79ChQ2v3z1sVi8bdcccdqf7MQY/z5s2r/f3/7N6N06dPT5I0bdp0hc9f1D5t2rQV9vussrKy/PrXv871119f+5mnTp2aBQsWJElmzJiRiRMnZv78+UuNXZXaFm+ra23rqqLNAPzhD3+YG2+8MTfffHPOOeecJZJfYP3XuGOntNijd6Y9+1S2LX81c8qnZGy+kiTZqfz57Nx4xMKOhUI2+dbR9sgDAKCknHjk+2vtXePGzsvJR3+wWs9Y1UPJ9txzz+X+3X2vvfZKkkyZMiUjRoyo3XetvLw8J510Ui655JIMGDAgxx9/fO2Yt956Ky+88EKS5Nvf/vYSz1t0QESrVq2W2pdtkW7duqVLly4ZPXr5e4o/9dRT+d///d+8+OKLGTt2bGbOnLlUn7Fjxy53/DbbbLPM++3atVtpn0WHeEyZMqVotQ0ZMiRJsuuuu6a8vHyp/kmWO5tx2rRptWHkGWeckR/96EfL7Le4UaNGpUOHDivtlyTf+ta3cuaZZ2bs2LH5v//7v/Tp06e27dFHH83EiRNTVVWVvn37rtLzPmvxYLkuxo8fn759++Yf//hHjjzyyJx99tnp2bNnpkyZkieffDLnnHNOfvnLX+bvf/97HnzwweX+um5IijYDsEePHrnhhhsyc+bM7Lfffvngg9X7hxWw7ml3wnfSfOdeS90vK/z7H9rl5Wl38vfSbPul9wEBAADWPYsvdVxR2/jx45doW3QYyDPPPFM7qy/5z2y03XffPT179lxizIQJE5Ks2rLQ5Tn77LOz11575dZbb63dhqx169Zp37592rdvnyZNFi6dXtHBDcsLvxYPiVbWZ968eUu11be2Vfl1WV7buHHjakO0SZMm5eOPP17u1yLLCiWXZ+ONN85+++2XZOnDQBZ9f+ihhy51gm/z5s1X6V2L2utyAnCy8MCVf/zjHzn++ONz++23Z4cddkjz5s3TpUuXnHDCCXniiSdSWVmZRx99tHZ5dV1qW/z3qK61rauKNgNw0KBBSRau47/zzjvz+c9/PgceeGB69eqVTTbZJGVlK88aF/+/BsC6p9CoUdp//4y03KN3Kh78WzJm4f2yysq02veAtNrra2ncwexfAAAoBSuandW1a9fsu+++efjhh2v3zZs3b17++Mc/Jln68I9ivPexxx7LlVdemSQ5/fTTc+qpp6Znz55LBHfHHXdcbrnllhXWviqrleq6oml1aluVWXDLq2fRktckefPNN/P5zxd/K6Zjjjkmf/3rX3PPPffkuuuuS5MmTTJ9+vTcf//9SZJjjz12qTGLVoWuaCbm4u11WUX61ltv5dFHH02S5Z4avfXWW+fAAw/Mvffem3vuuWeJP4+bbrpphgwZssLaFm8rlRWuRQsATzzxxNo/kIVCIfPmzct9992X++67b5XGFwoFASCsBwqFQpp+cds0Gzc1WThTPS33/nra7rN7wxYGAADU2aqGIIsvj13ku9/9bh5++OHcfPPNufjii3P//fdnwoQJadmyZQ4//PCl+rdt23al71xR+5133pkk2XfffXPNNdcss8/iM93WptWpbdGv7YoOm1jer8miJcnJmgsADznkkLRo0SJTp07NAw88kMMOOyx//vOfM3PmzGyyySbZd999lxqzqI6PP/44EydOXOZJwBMmTKidWVqXut9+++3a627dln9AZY8ePZIkw4cPX6q2hx56KG+++eZyxy5qKxQK+dznPrfKta3LihYAJkun1vVdyw0AAADrklXdU2953nh9Zq64dMXB1+J+2q9jvrDNig9QKIann356uW1PPfVUkoUn9G6++eZLtR900EHp2LFjxo4dm4ceeqj28I+jjz56mQcsLDpF9tNPP81rr72WL33pS0v1+fDDD5e7/9+i+8vbP3DGjBm1+w+ubatT2/bbb59bbrklzz33XBYsWLDM/eqW9/vUunXrbL311nn77bdz1113LTN4XV2L9vi7+eabc+utt+awww6rXf57xBFHpFGjpaOl3XffPRUVFZk3b14effTRpQ4JSRbOmkwWHnKy2267rXI9i68wHTlyZLbeeutl9lsUuLZs2XKJ+3vvvXeuuOKKvPnmm/nXv/6Vzp07LzV20QzDnXfeOc2aNVvl2tZlRQsAP7umGgAAAFjo81+sSoeOFRk3dum94z5r044V2foLVWuhqmTEiBG5/fbbc9RRRy1xf/r06fnv//7vJAtPzV3WEtRGjRrlpJNOSv/+/XPppZfm5ZdfTrL04R+LbLfddunevXvef//9XHrppbWz5hZ36aWXLrfWVq1aJVn+Cbz9+/dvsBNbV6e2b3zjGzn77LMzfvz4DBw4cKlfv3nz5uWqq65a7ru//e1v5+yzz84999yTv/3tb0ucZvxZkydPTps2bVb2cZZy7LHH5uabb85DDz2Ud999N0888UTt/WVp1apVDjzwwPzlL3/JVVddlSOPPHKJYHP+/Pm1n+mQQw5ZKqRbkcVD1uuvv772z+nixo0blz//+c9JUnty8yJ9+vRJ+/bt8/HHH+fyyy/P1VdfvUT76NGjc/vtt6/w862PinYIyAknnLDaXwAAAFCKysoK+e5p7dO4csV7yzWuLOSU09qnrKxue9DVV6tWrXLKKadk0KBBtQdbvPPOOznggAMycuTING3aND//+c+XO/6UU05JWVlZXnzxxVRXV+dLX/pSdtxx2YcCFgqFXHjhhUmSP/3pTzn99NMzceLEJMknn3ySn/3sZxkwYMByw6BFS00ffPDBXHbZZbWHOEyYMCE//elPc9lll2XjjTeu3y/Ealqd2rbYYovaLdFOP/30DBgwIHPmzEmyMKDt27dvRo0atdx3n3baadlhhx1SXV2dQw45JJdffvkSh7ZMmTIl999/fw4//PClgt5Vtffee6djx46ZO3dujjnmmMyfPz/dunVbKlxb3EUXXZSKior885//zDHHHJNx48YlWRjOHXvssfnnP/+Zxo0b1/6ZWNyIESNSKBRSKBQycODAJdo233zzHHDAAUmSa6+9Nj/+8Y9rl0jPnj07jzzySL761a/m008/TUVFRU477bQlxjdu3DgXXHBBkuSaa67Jr371q8yaNStJ8vrrr+eggw7KjBkz0q1bt9Xay3JdU7QAEAAAoD5mDXu3zl9zRv/nP4bnjB5Vr2fA2rZltyb5+Xmd0qFjxTLbN+1YkZ+f1ylbdmuy1mo69dRTs+222+aEE05I8+bNa5eUPvvss2nUqFEGDRqULbbYYrnju3btmq9//eu1368sMDn66KNzxhlnJEn+53/+J+3bt0+bNm2y8cYb5/LLL89PfvKT5S6jPf7449OrV68kybnnnpvmzZunTZs2ad++fa644op8+9vfzkEHHVTXX4KiWN3arr766uy0006ZPXt2vvOd76RFixZp3bp1tthiizz66KO58cYba/suOk148e8ffPDB7Lbbbpk1a1Z+9rOfpX379mndunVatmyZNm3a5NBDD83dd9+d6urqen2+srKyHHnkkUmSV155JUmWuax3cdtss00GDBiQRo0a5c4770zHjh3TunXrdOzYMXfeeWcqKipy00031Wvfwptuuinbbrttampq8tvf/jadOnVKixYt0qxZs+y///4ZNmxYKisrc/PNNy91GnWSfP/738/3vve91NTU5JxzzknLli3TqlWrfOlLX8rrr7+edu3a5b777ktlZWWda1tXFXUPQAAAgLoa0//81Ro/cdCAeo3rPvCO1Xov1MeW3Zrk0is2y9tvzso/B8/IzBkL0rRZeb68Y7N8/otVdT59dnVVVlbm//7v//Kb3/wmt99+e4YPH56NN944e+yxR375y1/W7tu3In379s0jjzySJk2arDQUSpL//u//zu67756rr746r7/+eubPn5+dd945p512Wo455pj07t17meMaN26cv/3tb+nfv3/uvPPOjBw5MoVCIXvssUdOOeWUHHvssTnxxBPr+CtQHKtbW6tWrfLMM8/kiiuuyK233prhw4enoqIihx56aM4999zaAy2SZKONNlpqfPv27fPMM8/krrvuyq233prBgwdn4sSJadSoUbp165Yddtghhx566GoFpMccc8wSS5FXZXnscccdly9+8Yv5zW9+k6effjoTJ05Mhw4d0rt37/zsZz/LdtttV69a2rVrl5dffjkDBgzI3Xffnddffz2ffPJJmjRpkq5du6ZPnz4544wzstVWWy33GTfccEO+/vWv57rrrsuQIUNqZ/0dcsgh+fnPf77Mg2/WZwJAAAAAWIvKygr5wjZN18ohH6uisrIyv/zlL/PLX/6yXuOffPLJJMk3v/nNtG7depXGfOtb38q3vvWtZbYtOnxkWaqqqnLJJZfkkksuWWb7wIEDl1oyusiIESNWWFPv3r1Xepjpip6/OrUlC2fy/eIXv8gvfvGLpdr+9re/JVn4e7W8k2/LyspyxBFH5IgjjljhZ6ivL3/5y/U67HX77bev3VNvVW2++eYrfVfjxo1z6qmn5tRTT61zTYv07ds3ffv2rff49ckaDwCnTZuWqVOnZsGCBSvtu9lmm63pcgAAYJ1Wn6Wpn10OWx9VPZZeIrW2dOq39P5PwPph8cMWvve97zVwNaWppqYmv/nNb5IsDCkrKpa9hBxWpOgBYHV1de64447cfPPNeemllzJ16tRVGlcoFDJ//vxilwMAAOuVDXE5bEOGj0D9zZgxI6effnrmzJmTnXbaKXvssUdDl7Te+vjjj3P22WfnpJNOyk477ZQWLVokWXgoxfnnn5/HH388SfLTn/60IctkPVbUAHD8+PHp27dvnn/++SSp19RQAAAAYN111VVX5aqrrsqECRMyd+7clJeX57e//W1Dl7VemzdvXm655ZbccsstSRbuCTh37tza02mT5JJLLkmfPn0aqkTWc0ULAGtqatK3b98899xzSRYeY73zzjvnjjvuSKFQSO/evbPxxhtn+PDhee211zJ//vwUCoV8/etfT4cOHYpVBgAAJaShlsMmDTcrzXJYYF03derUjBkzJk2bNs12222XCy+8MLvttltDl7Vea9u2bX73u9/l8ccfz1tvvZXx48enuro6m222WXbbbbecdtppfo1ZLUULAO+9994899xzKRQK+cEPfpCrr746ZWVlueOOhUsJzjzzzBxyyCFJko8++igXXnhh/vCHP2To0KG57LLL6n3yCwAApauhlsMmDbck1nJYYG1Y0UEbK3PBBRfkggsuKFotLDzc48wzz8yZZ57Z0KVQosqK9aA777wzSdKtW7fa8G95Nt1009xwww25/PLLM3bs2PTt23eV9woEAAAAAFZd0WYAvvzyyykUCjn88MOXGf4taz/An/zkJ7nzzjvzyiuv5A9/+EPOPvvsYpUDAFBy6rMcNlm/T4i1HBYAYPUVLQCcMGFCkmTrrbde4n6hUEiSzJ49e5njjjjiiAwePDj33nuvABAAYAVWdzlssv6dEGs5LADA6ivaEuB58+YlSZo1a7bE/ebNmydJJk6cuMxxm222WZLkww8/LFYpAAAAAMC/FW0G4MYbb5yPP/4406ZNW+J++/btM3369Lz33nvLHPfxxx8nST755JNilQIAUJIshwUAoD6KFgButdVW+fjjjzN8+PAl7m+zzTZ5//3388gjjyxz3KL7bdq0KVYpAMAGoj574q3P++FZDgsAQH0ULQDceeed88wzz2Tw4MFL3D/44IPz5z//Oe+//3769euXSy65pHZfwKuuuioPPfRQCoVCdt1112KVAgBsIFZ3T7z1bT88AACoj6LtAfi1r30tSfLUU08tceDHEUcckc6dOydJfvWrX6Vjx47p1atX2rdvn5/+9Ke1/X74wx8WqxQAAAAA4N+KNgNwr732Su/evTNr1qw899xz2XvvvZMkVVVVueOOO7Lffvtl+vTp+fjjjzN+/PjU1NTUjj3//POz5557FqsUAGADYU88AABYuaIFgOXl5XnyySeX2darV6+8/vrr6d+/fx5//PGMGzcuzZo1y0477ZSzzjor++23X7HKAAA2IPbEAwCAlStaALgym2++ef6//+//W1uvAwAAAACyFgNAAGDN2tBOxAUAAFaNABAASoQTcQEAgGVZYwHgvHnz8uKLL+att97K5MmTM3fu3Jx33nlr6nUAsISG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SpgAEAAAAABKmAAQAAAAAEqYABAAAAAASpgAEAAAAABKmAAQAAAAAEqYABAAAAAASpgAEAAAAABKmAAQAAAAAEpYo4YuAIC1491Zw+o8ZnymJOlQe12fZ/Ss6lHnMQAAABSPABBgA3H+mP51HlModE5ltk6SPFJ4MQ+PuafOz7ij+8A6jwEAAKB4LAEGAAAAgBJmBiDABuLCTv3qPObDER/nzn9fH1+zX7bs1L64RQEAALDGCQABNhD12YtvXqprr7ukrf38AAAA1kMbRAD4zjvvZPDgwRk2bFjGjRuXTz/9NHPnzk3Lli2z5ZZbZs8998xXv/rVFAqF5T7j+eefz8MPP5wPPvggc+bMySabbJKddtophx9+eFq2bLkWPw1QDA7EAAAAYEOxQQSADz74YJ5++una76uqqlJeXp7Jkydn8uTJGTx4cB577LH069cvTZs2XWr8DTfckIceeihJUlZWlsrKyowdOzb33Xdfnn766fTv3z9dunRZa58HWH0OxAAAAGBDsUEEgF/4whey1VZb5fOf/3w6duyYqqqqJMmUKVPy2GOP5fbbb8/QoUNz44035vTTT19i7KOPPpqHHnoohUIhxx57bA455JBUVlZm+PDhueqqqzJy5Mhccsklufbaa1NRUdEQHw8AAAAAlmuDCAD322+/Zd5v3bp1jjjiiMyZMyd33313nnrqqXzve9+rDfLmzZuX2267LUly0EEH5fDDD68du8UWW+S8887Laaedlo8++iiPP/54DjjggDX/YYCicCAGAAAAG4oNIgBcmZ49eyZJ5s6dm+nTp6d169ZJktdffz1TpkxJoVDIN77xjaXGtW3bNl/96lfz2GOP5amnnhIAwnrEgRgAAABsKMoauoB1wVtvvZVk4d6AG220Ue39119/PUmy2WabZZNNNlnm2O233z5J8u6772b27NlrtlAAAAAAqKMNdgbg7NmzM2HChDz55JO57777kixc5rv4ScCjR49OsjAAXJ5FbTU1NfnXv/6V7t27r8GqAQAAAKBuNqgAcMqUKTnhhBOWut+oUaMceuihOfroo5e4P3ny5CRJmzZtlvvMjTfeeInnAwAAAMC6ZIMKAMvKymqX+M6YMSPz5s1LoVDIgQcemEMPPTTl5eVL9F+0pLeysnK5z1y8bebMmSt8/y233FJ7qMhnTZw4cVU+AqwR784aVucx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AABQwgSAAAAAAFDCGjV0AZSuo48+OjNmzEizZs0auhRgNfhZhtLgZxnWf36OAaivQk1NTU1DFwEAAAAArBmWAAMAAABACRMAAgAAAEAJEwACAAAAQAkTAAIAAABACXMKMEX36aef5u67785LL72USZMmpbKyMt26dcsBBxyQXXbZpaHLA+rhoosuyuDBg5Mke++9d84666yGLQhYqerq6jz99NN56qmn8uGHH2b69Olp3Lhx2rdvn+222y4HH3xw2rZt29BlwgZv+vTpeeONN/LBBx/Ufk2ZMiVJcu655y73788LFizI66+/nldeeSXvvPNOxowZk9mzZ6dZs2bp2rVr9thjj/Tp0ycVFRVr8+MAsI4SAFJUo0aNSr9+/fLpp58mSaqqqjJjxoy8+uqrefXVV3PwwQfnlFNOaeAqgbp4+umna8M/YP0wZ86c9O/fP6+++mrtvaZNm2b27NkZMWJERowYkUceeSTnnntutttuuwarE0hefPHFXH311XUed/311+exxx6r/b6srCxVVVWZOnVqhg4dmqFDh+bhhx/OBRdckNatWxezZADWQwJAimbevHm55JJL8umnn6Zr16758Y9/nC222CJz5szJ/fffn1tuuSV//etfs8UWW2SfffZp6HKBVTBt2rT87//+b5o1a5Y2bdpk9OjRDV0SsAr+9Kc/1YZ/Rx11VA466KC0aNGidsbQDTfckI8++ihXXHFFBgwYkMrKyoYtGDZwrVu3zpZbbplu3bplyy23zK9+9auVjpk/f3422mij9OnTJ7vuumu6deuW8vLyTJ8+PY8//nhuu+22DB8+PJdddll+/etfp1AorIVPAsC6SgBI0Tz66KMZN25cmjRpkvPOO692WVFlZWUOP/zwTJkyJQ888EBuueWW9O7dO40a+eMH67oBAwbk008/zfe///38/e9/FwDCeuLpp59OkvTp0ydHHXVU7f3y8vJsv/32+dnPfpYf/ehHmTp1at54443ssMMODVUqbPB69+6dPn361Hnc/vvvn1NPPXWpAL958+b5xje+kTZt2uTKK6/MO++8kzfffDNf/OIXi1UyAOshh4BQNE899VSS5Ktf/eoy9xTq27dvCoVCJk+enKFDh67l6oC6evXVV/Pkk09mq622yn777dfQ5QB1sGj/sG7dui2zfYsttkh5eXmShcuFgYaz6Gexrnr27LnC2bu77757qqqqkiQffPBBvd4BQOkQAFIUs2bNyrBhw5IkX/7yl5fZZ5NNNkmXLl2SJK+99tpaqw2ouzlz5uS6665LeXl5TjvttJSV+dcFrE/at2+fJHn//feX2T58+PAsWLAgZWVl2XLLLddmacBaUl5eXrviprq6uoGrAaCh+S86iuJf//pXampqkiSbbbbZcvstarOMENZtt912W8aNG5dDDjkkW2yxRUOXA9TRolm7Tz75ZO64445MmzYtycJTQ1999dX85je/SZIcfPDB6dChQ4PVCaw5I0eOrP3Z79q1awNXA0BDswkbRTF58uTa6zZt2iy338Ybb5zkP0uTgHXPBx98kPvuuy9t27ZdYu8wYP1x0EEHZdKkSfnLX/6S2267LbfddlvtKcDV1dXp1KlTTj311Oy///4NXSqwhvzxj39MsnBG8LbbbtvA1QDQ0MwApChmz55de72ivUgWtc2aNWuN1wTU3YIFC3Lttdemuro63/ve99KkSZOGLgmoh7Kyspxwwgk59dRTU1FRkSSZOXNm7TLAOXPmZOrUqVmwYEFDlgmsIffff39eeumlJMl3vvMdh+8BYAYga9eiZcLAuum+++7LBx98kF122SVf+cpXGrocoJ4++eSTXHbZZXn77bezxx575Bvf+EY6deqU6dOn5/XXX88f//jH3HrrrXnrrbdy3nnn1fsQAmDd8+KLL+bGG29Mkhx66KHZeeedG7giANYFZgBSFIvPElrRaYKL2hadSAasO8aNG5fbb789VVVV+e53v9vQ5QCr4be//W3efvvt7LXXXvnpT3+a7t27p6qqKm3btk2fPn1y8cUXp6KiIkOGDMkTTzzR0OUCRTJkyJD85je/SXV1dfr06ZOTTz65oUsCYB0hAKQoFt/3b/H9AD9rUVvr1q3XeE1A3QwYMCBz5szJN7/5zTRr1iyzZs1a4mvR0sEFCxYsdQ9Yd4waNSpDhgxJknzjG99YZp8uXbpkxx13TJI899xza602YM157bXX0r9//8ybNy977rlnzjjjjBQKhYYuC4B1hCXAFEXnzp1TKBRSU1OTUaNGpXPnzsvsN2rUqCQL/8MDWLeMHz8+SXLLLbfklltuWW6/p59+Ok8//XSS5He/+1223HLLtVIfsGr+9a9/1V5vuummy+3XsWPHJMnHH3+8xmsC1qzXX389l1xySebOnZtevXrlrLPOSlmZuR4A/Id/K1AUVVVV6dGjR5Lkn//85zL7TJw4MaNHj04SJ5EBwBqy+IyfRcH+snzyySdJkqZNm67pkoA16I033sjFF1+cOXPm5Ctf+UrOPvts+3oCsBQzACmar371q3nvvffyzDPP5Igjjkjbtm2XaL/33ntTU1OTNm3aCABhHXT11VevsP3cc8/NG2+8kb333jtnnXXW2ikKqLPFZ+U+/PDDy9zTc8qUKXnhhReSJD179lxrtQHF9eabb+aiiy7KnDlzsuOOO+a//uu/nPgLwDKZAUjR7LfffmnXrl1mz56diy++OMOHD0+y8OCPu+++Ow8++GCS5Oijj/YXEwBYQ9q3b1+7v9+DDz6YAQMGZNKkSUmSuXPn5pVXXsk555yTGTNmpFGjRjnggAMaslwgydSpU5f4WmTWrFlL3J8/f35t2zvvvJOLLroos2fPzvbbb59zzjknFRUVDVE+AOuBQk1NTU1DF0HpGDFiRH7xi1/U/sWladOmmTNnThYsWJAkOeCAA/L973+/IUsE6skMQFh/fPLJJznvvPMyYsSI2ntVVVWZM2dO7eE9FRUV+eEPf5g999yzgaoEFjnkkENWqV///v2zzTbbJEn69euXoUOHJklatGixwmW/e+yxR0455ZTVLxSA9ZZpWBTV5ptvnmuvvTZ33313XnrppUyaNClNmzbNlltumf333z+9evVq6BIBoORttNFGufLKK/P444/nueeey4gRIzJjxoxUVFSkXbt22XbbbXPQQQelU6dODV0qUE+Lz+OYNm3aCvvOmDFjTZcDwDrODEAAAAAAKGH2AAQAAACAEiYABAAAAIASJgAEAAAAgBImAAQAAACAEiYABAAAAIASJgAEAAAAgBImAAQAAACAEiYABAAAAIASJgAEAAAAgBImAAQAAACAEiYABAAAAIASJgAEAAAAgBImAAQAAACAEiYABAAAAIASJgAEAAAAgBImAAQAAACAEiYABAAAAIASJgAEgA3MwIEDUygUUigUMnDgwKI8c/PNN0+hUMjmm29elOcBAADF06ihCwCA9UGhUFhuW7NmzdKmTZtsu+222X///XPcccelZcuWa7G64vvd736XTz75JBtttFHOOuushi4HAABYDWYAAsBqmjFjRkaPHp0HH3wwp59+erbaaqs8+uijDV3Wavnd736XCy+8ML/73e8auhQAAGA1FWpqamoauggAWNctPgPwz3/+8xJt06ZNy6uvvppBgwZl4sSJSZLKyso8/fTT2XnnnddqncWy+eabZ+TIkenatWtGjBjR0OUAAACrQQAIAKtg8QBwef/qnDRpUvbff/+8/PLLSZJddtklzz///Fqpr9gEgAAAUDosAQaAItl4441z8803137/wgsvZNSoUQ1YEQAAgAAQAIpq6623To8ePWq/Hzp06FJ9pk6dmssvvzy9e/dOhw4d0rhx47Rt2za77LJLLrjggowfP36l75kzZ05+//vfZ//990+nTp3SpEmTNGvWLJtvvnl22mmnnHrqqfnzn/+cGTNmLDV2RacALzrNd+TIkUmSkSNH1vZd/OuCCy5Y5rhVOQX4mWeeybe//e1stdVWadGiRZo2bZott9wyxxxzTB544IGVjv/su6qrqzNw4MDstddead++fZo0aZLNNtssxx57bF577bWVPg8AAEqdU4ABoMjatm2bYcOGJUk+/fTTJdoee+yxHHPMMbV7BS4yceLETJw4MS+++GKuuuqqXH/99TnmmGOW+fzhw4dnv/32y3vvvbdU28iRIzNy5MgMHjw4N9xwQ+66664cdthhRfpkq2fWrFk56aSTcueddy7VNnz48AwfPjy33XZb+vTpk7vuuiutW7de6TMnTZqUb37zm3n66aeXuD969OjceuutueOOOzJw4MAce+yxRfscAACwvhEAAkCRLT6Db6ONNqq9/tvf/pYDDzww8+fPT5LsuOOOOfLII9OlS5eMHz8+9957b/7v//4v06ZNy3HHHZeampplBleHH354bfj3uc99Locffni6du2aVq1aZerUqXn33XfzzDPP5KWXXqpz7X/4wx8yc+bMfPe7382ECRPStm3b/OEPf1iq3+c+97k6Pbe6ujoHH3xwnnjiiSRJ06ZNc/zxx2fXXXdNeXl5hgwZkptuuimTJ0/OE088kd69e+eFF15IVVXVcp85f/782vBvl112yWGHHZYuXbpkypQpueuuu/LEE09kwYIFOeWUU7LzzjsvMTMTAAA2JA4BAYBVsCqHgCTJ22+/nc9//vO1348aNSpdunTJjBkz0qNHj3z00UdJkn79+uXiiy9e4rlJcu211+aMM85IkjRv3jxvv/12OnfuXNs+ePDg7LTTTkmSb33rW7n99ttTVrbsHT1GjRqV6urqpZblDhw4MCeddFKS5KabbsqJJ5641Ni6HgKysv5XXnllzj777CTJZpttlieeeCLdu3dfos+4cePyta99LW+88UaS5Kyzzspvf/vb5b5rkd/+9rc566yzlup32mmn5brrrkuSnH766bnmmmtW+jkAAKAU2QMQAIpkypQptcFasvAU4C5duiRZGLotCv/23XffXHLJJUuFf8nCoGrRM6ZPn75UaPX+++/XXp9wwgnLDf+ShUHbquzJt6bNmzcvV155ZZKFQeodd9yxVPiXJB06dMi9996bysrKJMnvf//7TJo0aYXPPu6445YZ/iXJZZddVjuD8OGHH16NTwAAAOs3ASAA1NFf/vKXJb5uueWW/PSnP83nPve5vPjii0mSxo0b56qrrqodc88999Ren3POOSt8/rnnnrvMcUnSrFmz2utXXnlltT7H2vL888/Xhp977rlndt111+X27dGjRw4//PAkC/cMXFlw9+Mf/3i5bS1btsyOO+6YJPnggw8ye/bsupYOAAAlwR6AAFBH3/jGN1bY3rZt2wwcOLA26Kqpqandj69p06bZfffdVzi+e/fu6d69e95///188MEHtXvxJcluu+2Wpk2bZubMmbnooosyadKkHHfccfnyl7+8zBmF64IXXnih9nrfffddaf/99tsvt9xyS+3Y5R3g0bRp03zpS19a4bM6depUe/3JJ5+kQ4cOq1IyAACUFDMAAWA1VVVVpXPnztl///3z3//933nvvfdywAEH1LZPnTo1M2bMSJJ069Yt5eXlK31mz549a68XzZ5LkjZt2uTqq69OWVlZ5s+fn6uvvjo77rhj2rRpkwMPPDC//vWvM2TIkCJ+utW3eP1bbbXVSvsv/tnHjh273H4bb7zxSkPPRcuJk5gBCADABksACAB1VFNTs8TXzJkzM3r06Dz00EM544wzljj5N0mmTZtWe734Et4Vad68+TLHJ8l3vvOdPPPMM9lvv/1qw8RPPvkkDz30UH7+85/ny1/+crbddtt1Zt+7un7+FX32xa1o/0MAAOA//M0ZANawFi1a1F4vmgm4MtOnT1/m+EV22223PPzww5k4cWLuv//+nHPOOdl9991rA8GhQ4fmgAMOyMCBA1ev+CKo6+df2WcHAADqRgAIAGtYy5Yta2e+ffDBB1mwYMFKx7z33nu11x07dlxuv4022igHH3xwLr300jz77LP56KOPctppp9W2/+QnP8m8efNWo/rVt+mmm9ZeL/65lmdVPzsAALBqBIAAsIYVCoV85StfSZLMnDkzf//731fY/4MPPsj777+fZOGegZtssskqv6tt27a59tpraw/HmDx5ct58880617xoeW1NTU2dx37WLrvsUnv96KOPrrT/I488ssyxAABA/QgAAWAtOOyww2qvf/WrX62w72WXXVYbvC0+ri622GKL2uv58+fXefyiffhWdcnyiuy66661M/mefvrpJU4F/qz3338/d911V5KFp/wufpgKAABQPwJAAFgLTjjhhNqlsI888kjOO++8Zc6uu+GGG3LjjTcmWRjCnXHGGUu033rrrbnxxhtXGMy9++67eeKJJ5IkTZo0WeJU3VW1KECcNGlSRo0aVefxi6uoqMjZZ5+dZOGMwiOPPDIffPDBUv3Gjx+fb37zm7Wn9X7ve99LmzZtVuvdAABA0qihCwCADUGzZs0yaNCg7L///pk/f34uvvjiPPLIIznyyCPTuXPnTJgwIffee2+efPLJJAuXDV9//fXp1KnTEs8ZNmxYLrzwwpxxxhnZZ599stNOO2WzzTZLVVVVJkyYkBdeeCH33HNPZs6cmST54Q9/WK+DNPbZZ5/cf//9SZK+ffvm+9//fjp27Fi7NLh79+7p3r37Kj/vzDPPzIMPPpgnnngiI0eOzLbbbpsTTzwxu+yyS8rLy/Pqq69mwIABmTx5cpJkm222Sf/+/etcNwAAsDQBIACsJfvss08eeOCBHHPMMZk0aVJefvnlvPzyy0v1a968ea6//voce+yxS7UtCuBmzpyZ+++/vzak+6xCoZAf/OAHufTSS+tV68knn5zrrrsu77zzTl555ZWccsopS7Sff/75ueCCC1b5eWVlZfnrX/+aE088MX/6058yc+bMXHfddbnuuuuW6rv33nvnrrvuSlVVVb1qBwAAliQABIC1aN99982HH36YG264IQ888EDeeeedfPLJJ2nZsmW6deuW/fffPz/4wQ/Srl27ZY7v169f9t9//zz55JN55pln8s477+Sjjz7K3Llz07x582y55ZbZbbfdcvLJJ2f77bevd53NmjXLCy+8kKuuuioPPfRQhg0blmnTpqW6urrez6yqqsqdd96ZH/zgBxk4cGCeffbZjBs3LgsWLEj79u2z66675uijj87BBx9c73cAAABLK9QU43g/AAAAAGCd5BAQAAAAAChhAkAAAAAAKGECQAAAAAAoYQJAAAAAAChhAkAAAAAAKGECQAAAAAAoYQJAAAAAAChhAkAAAAAAKGECQAAAAAAoYQJAAAAAAChhAkAAAAAAKGECQAAAAAAoYQJAAAAAAChhAkAAAAAAKGECQAAAAAAoYQJAAAAAAChhAkAAAAAAKGECQAAAAAAoYf8/h7dS+WvLyNUAAAAASUVORK5CYII=" }, "metadata": { "image/png": { "height": 480, "width": 640 } }, "output_type": "display_data" } ], "source": [ "df_rev = (\n", " pd.DataFrame(\n", " [original_rev.mean(axis=0), mapdamage_rev.mean(axis=0), pydamage_rev.mean(axis=0)],\n", " )\n", " .transpose()\n", " .set_axis(columns, axis=1)\n", " .rename_axis(\"position\")\n", " .reset_index()\n", " .melt(id_vars = \"position\", var_name = \"bam\", value_name = \"mean\")\n", ").merge(\n", " (\n", " pd.DataFrame(\n", " [original_rev.std(axis=0), mapdamage_rev.std(axis=0), pydamage_rev.std(axis=0)],\n", " )\n", " .transpose()\n", " .set_axis(columns, axis=1)\n", " .rename_axis(\"position\")\n", " .reset_index()\n", " .melt(id_vars = \"position\", var_name = \"bam\", value_name = \"std\")\n", " ), on=['position', 'bam']\n", ")\n", "(ggplot(df_rev, aes(x='position', y='mean', color='bam')) + geom_point() + geom_errorbar(aes(ymin = \"mean - std\", ymax = \"mean + std\")) + theme_classic() + ylab(\"Mean Phred score\") + xlab(\"Position\"))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> mapDamage and PyDamage produce very similar results with regards to reads base quality rescaling" ] } ], "metadata": { "kernelspec": { "display_name": "dmg_bench", "language": "python", "name": "python3" }, "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.12.5" } }, "nbformat": 4, "nbformat_minor": 2 }