--- a +++ b/notebooks/resource-allocation/102023.ipynb @@ -0,0 +1,3762 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import seaborn as sns\n", + "from datetime import datetime, timedelta, date\n", + "from humanize import naturalsize\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Qiita's resource allocation\n", + "\n", + "This notebook walks through how to load & parse the job stats from Qiita. It additionally tries to split the different commands by their resource utilization and make sure to be as accurate/fair to request them. Here resource allocations are mainly walltime (`ElapsedRawTime`), memory (`MaxRSSRaw`) and the time a job took to start running (`WaitTime`: Start - Submit). " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Loading data\n", + "\n", + "First you will need to run `generate-allocation-summary.py` in Qiita as the qiita user (or whatever user runs qiita in your system). The resulting file would be: `job_[date].tsv.gz`.\n", + "\n", + "The generated file will have these columns: `['JobID', 'ElapsedRaw', 'MaxRSS', 'Submit', 'Start', 'MaxRSS.1', 'CPUTimeRAW', 'ReqMem', 'AllocCPUS', 'AveVMSize', 'QiitaID', 'external_id', 'sId', 'sName', 'sVersion', 'cId', 'cName', 'samples', 'columns', 'input_size', 'extra_info'],`." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "m1g = 2**30\n", + "df = pd.read_csv('jobs_2023-10-04.tsv.gz', sep='\\t', dtype={'extra_info': str})\n", + "df['ElapsedRawTime'] = pd.to_timedelta(df.ElapsedRawTime)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'There are 101147 successful jobs since we moved to barnacle2 and the largest external_id is: 1581986'" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# for reference for the next iteration of this notebook\n", + "f'There are {df.shape[0]} successful jobs since we moved to barnacle2 and the largest external_id is: {df.external_id.max()}'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Main summary\n", + "\n", + "Just showing the first 15, this is helpful to see the huge differences between before and after the first set of changes were made." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total unique jobs: 66\n" + ] + }, + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " <th colspan=\"2\" halign=\"left\">WaitTime</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>complete_job</th>\n", + " <th>Qiita</th>\n", + " <td>16590</td>\n", + " <td>0 days 00:00:02</td>\n", + " <td>0 days 02:38:35</td>\n", + " <td>0 Bytes</td>\n", + " <td>349.4 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:02:18</td>\n", + " </tr>\n", + " <tr>\n", + " <th>release_validators</th>\n", + " <th>Qiita</th>\n", + " <td>5520</td>\n", + " <td>0 days 00:00:06</td>\n", + " <td>6 days 09:07:42</td>\n", + " <td>0 Bytes</td>\n", + " <td>175.4 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 14:39:55</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"4\" valign=\"top\">Validate</th>\n", + " <th>BIOM type - BIOM</th>\n", + " <td>4503</td>\n", + " <td>0 days 00:01:01</td>\n", + " <td>0 days 05:58:41</td>\n", + " <td>125.8 MB</td>\n", + " <td>329.2 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 02:55:00</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Visualization types - q2_visualization</th>\n", + " <td>1542</td>\n", + " <td>0 days 00:00:41</td>\n", + " <td>0 days 00:40:43</td>\n", + " <td>8.5 MB</td>\n", + " <td>73.5 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:22:46</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - Demultiplexed</th>\n", + " <td>765</td>\n", + " <td>0 days 00:00:36</td>\n", + " <td>1 days 16:56:48</td>\n", + " <td>83.4 MB</td>\n", + " <td>15.6 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 15:27:39</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - per_sample_FASTQ</th>\n", + " <td>750</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 04:12:47</td>\n", + " <td>77.4 MB</td>\n", + " <td>88.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 02:05:43</td>\n", + " </tr>\n", + " <tr>\n", + " <th>update_sample_template</th>\n", + " <th>Qiita</th>\n", + " <td>687</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:33:08</td>\n", + " <td>0 Bytes</td>\n", + " <td>21.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:30</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Validate</th>\n", + " <th>Diversity types - distance_matrix</th>\n", + " <td>669</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 00:08:06</td>\n", + " <td>1.6 MB</td>\n", + " <td>5.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>2 days 09:13:31</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity group significance [beta_group_significance]</th>\n", + " <th>qiime2</th>\n", + " <td>596</td>\n", + " <td>0 days 00:01:04</td>\n", + " <td>0 days 00:21:21</td>\n", + " <td>257.7 MB</td>\n", + " <td>1.2 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:25</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Validate</th>\n", + " <th>Diversity types - alpha_vector</th>\n", + " <td>543</td>\n", + " <td>0 days 00:01:15</td>\n", + " <td>0 days 05:00:08</td>\n", + " <td>186.8 MB</td>\n", + " <td>9.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 20:32:28</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pick closed-reference OTUs</th>\n", + " <th>QIIMEq2</th>\n", + " <td>517</td>\n", + " <td>0 days 00:04:24</td>\n", + " <td>4 days 04:30:41</td>\n", + " <td>2.4 GB</td>\n", + " <td>81.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 14:02:47</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trimming</th>\n", + " <th>QIIMEq2</th>\n", + " <td>517</td>\n", + " <td>0 days 00:00:39</td>\n", + " <td>0 days 22:32:35</td>\n", + " <td>54.5 MB</td>\n", + " <td>17.8 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 04:37:26</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Validate</th>\n", + " <th>Diversity types - ordination_results</th>\n", + " <td>502</td>\n", + " <td>0 days 00:00:37</td>\n", + " <td>0 days 00:12:54</td>\n", + " <td>74.8 MB</td>\n", + " <td>2.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 18:35:39</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Deblur 2021.09</th>\n", + " <th>deblur</th>\n", + " <td>481</td>\n", + " <td>0 days 00:02:17</td>\n", + " <td>7 days 05:09:14</td>\n", + " <td>966.5 MB</td>\n", + " <td>72.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>7 days 06:26:48</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_artifact</th>\n", + " <th>Qiita</th>\n", + " <td>472</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:38:41</td>\n", + " <td>0 Bytes</td>\n", + " <td>121.5 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 10:57:15</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter samples from table [filter_samples]</th>\n", + " <th>qiime2</th>\n", + " <td>371</td>\n", + " <td>0 days 00:00:57</td>\n", + " <td>0 days 00:24:35</td>\n", + " <td>241.2 MB</td>\n", + " <td>24.8 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 12:15:25</td>\n", + " </tr>\n", + " <tr>\n", + " <th>build_analysis_files</th>\n", + " <th>Qiita</th>\n", + " <td>316</td>\n", + " <td>0 days 00:01:23</td>\n", + " <td>1 days 06:30:21</td>\n", + " <td>128.3 MB</td>\n", + " <td>226.5 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>5 days 02:12:45</td>\n", + " </tr>\n", + " <tr>\n", + " <th>adonis PERMANOVA test for beta group significance [adonis]</th>\n", + " <th>qiime2</th>\n", + " <td>308</td>\n", + " <td>0 days 00:01:13</td>\n", + " <td>0 days 00:39:12</td>\n", + " <td>147.4 MB</td>\n", + " <td>1.5 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 04:10:16</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity (phylogenetic) [beta_phylogenetic]</th>\n", + " <th>qiime2</th>\n", + " <td>289</td>\n", + " <td>0 days 00:01:04</td>\n", + " <td>0 days 00:13:55</td>\n", + " <td>241.2 MB</td>\n", + " <td>13.5 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 20:44:14</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Split libraries FASTQ</th>\n", + " <th>QIIMEq2</th>\n", + " <td>249</td>\n", + " <td>0 days 00:00:50</td>\n", + " <td>3 days 03:00:29</td>\n", + " <td>56.7 MB</td>\n", + " <td>46.3 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 00:05:31</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Principal Coordinate Analysis [pcoa]</th>\n", + " <th>qiime2</th>\n", + " <td>241</td>\n", + " <td>0 days 00:00:52</td>\n", + " <td>0 days 00:06:38</td>\n", + " <td>236.0 MB</td>\n", + " <td>1.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:06:59</td>\n", + " </tr>\n", + " <tr>\n", + " <th>create_sample_template</th>\n", + " <th>Qiita</th>\n", + " <td>231</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:04:53</td>\n", + " <td>0 Bytes</td>\n", + " <td>415.8 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 07:18:02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Visualize taxonomy with an interactive bar plot [barplot]</th>\n", + " <th>qiime2</th>\n", + " <td>189</td>\n", + " <td>0 days 00:01:11</td>\n", + " <td>0 days 00:18:24</td>\n", + " <td>188.4 MB</td>\n", + " <td>3.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 11:38:52</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity [alpha]</th>\n", + " <th>qiime2</th>\n", + " <td>168</td>\n", + " <td>0 days 00:01:02</td>\n", + " <td>0 days 00:07:38</td>\n", + " <td>196.9 MB</td>\n", + " <td>1.2 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 01:45:20</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_sample_or_column</th>\n", + " <th>Qiita</th>\n", + " <td>136</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:11:34</td>\n", + " <td>0 Bytes</td>\n", + " <td>6.2 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 05:49:38</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Rarefy table [rarefy]</th>\n", + " <th>qiime2</th>\n", + " <td>135</td>\n", + " <td>0 days 00:00:55</td>\n", + " <td>0 days 00:35:37</td>\n", + " <td>79.2 MB</td>\n", + " <td>12.3 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 07:52:35</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_analysis</th>\n", + " <th>Qiita</th>\n", + " <td>126</td>\n", + " <td>0 days 00:00:04</td>\n", + " <td>0 days 00:04:44</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.8 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:25:52</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity [beta]</th>\n", + " <th>qiime2</th>\n", + " <td>109</td>\n", + " <td>0 days 00:00:59</td>\n", + " <td>0 days 00:07:57</td>\n", + " <td>241.0 MB</td>\n", + " <td>502.2 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>1 days 23:15:18</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequence Processing Pipeline</th>\n", + " <th>qp-klp</th>\n", + " <td>100</td>\n", + " <td>0 days 00:02:25</td>\n", + " <td>0 days 16:32:56</td>\n", + " <td>153.3 MB</td>\n", + " <td>10.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 08:46:06</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"2\" valign=\"top\">Validate</th>\n", + " <th>qtp-job-output-folder - job-output-folder</th>\n", + " <td>100</td>\n", + " <td>0 days 00:00:35</td>\n", + " <td>0 days 00:01:14</td>\n", + " <td>45.4 MB</td>\n", + " <td>46.5 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:14:55</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - FASTQ</th>\n", + " <td>87</td>\n", + " <td>0 days 00:00:41</td>\n", + " <td>0 days 01:50:44</td>\n", + " <td>77.9 MB</td>\n", + " <td>84.4 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:29</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity (phylogenetic) [alpha_phylogenetic]</th>\n", + " <th>qiime2</th>\n", + " <td>72</td>\n", + " <td>0 days 00:01:08</td>\n", + " <td>0 days 00:05:28</td>\n", + " <td>231.0 MB</td>\n", + " <td>13.3 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 04:35:04</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Validate</th>\n", + " <th>Diversity types - FeatureData</th>\n", + " <td>72</td>\n", + " <td>0 days 00:01:09</td>\n", + " <td>0 days 00:04:49</td>\n", + " <td>200.9 MB</td>\n", + " <td>510.9 MB</td>\n", + " <td>0 days 00:01:09</td>\n", + " <td>0 days 00:40:47</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Apply ANCOM to identify features that differ in abundance. [ancom]</th>\n", + " <th>qiime2</th>\n", + " <td>67</td>\n", + " <td>0 days 00:01:14</td>\n", + " <td>1 days 07:50:45</td>\n", + " <td>244.5 MB</td>\n", + " <td>5.2 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 01:54:02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pre-fitted sklearn-based taxonomy classifier [classify_sklearn]</th>\n", + " <th>qiime2</th>\n", + " <td>58</td>\n", + " <td>0 days 00:01:41</td>\n", + " <td>0 days 08:04:39</td>\n", + " <td>938.3 MB</td>\n", + " <td>44.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 13:10:32</td>\n", + " </tr>\n", + " <tr>\n", + " <th>update_prep_template</th>\n", + " <th>Qiita</th>\n", + " <td>54</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:02:25</td>\n", + " <td>0 Bytes</td>\n", + " <td>125.3 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:28</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_sample_template</th>\n", + " <th>Qiita</th>\n", + " <td>54</td>\n", + " <td>0 days 00:00:04</td>\n", + " <td>0 days 00:19:31</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.6 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:06:37</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Core diversity metrics (non-phylogenetic) [core_metrics]</th>\n", + " <th>qiime2</th>\n", + " <td>45</td>\n", + " <td>0 days 00:02:33</td>\n", + " <td>0 days 00:21:57</td>\n", + " <td>245.6 MB</td>\n", + " <td>696.0 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:23</td>\n", + " </tr>\n", + " <tr>\n", + " <th>copy_artifact</th>\n", + " <th>Qiita</th>\n", + " <td>43</td>\n", + " <td>0 days 00:00:08</td>\n", + " <td>0 days 00:25:35</td>\n", + " <td>0 Bytes</td>\n", + " <td>123.0 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:19</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Core diversity metrics (phylogenetic and non-phylogenetic) [core_metrics_phylogenetic]</th>\n", + " <th>qiime2</th>\n", + " <td>42</td>\n", + " <td>0 days 00:05:19</td>\n", + " <td>0 days 00:30:23</td>\n", + " <td>207.9 MB</td>\n", + " <td>463.9 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 03:17:23</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_study</th>\n", + " <th>Qiita</th>\n", + " <td>40</td>\n", + " <td>0 days 00:00:04</td>\n", + " <td>0 days 00:16:09</td>\n", + " <td>0 Bytes</td>\n", + " <td>125.5 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:27</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Add pseudocount to table. [add_pseudocount]</th>\n", + " <th>qiime2</th>\n", + " <td>39</td>\n", + " <td>0 days 00:01:04</td>\n", + " <td>0 days 00:04:30</td>\n", + " <td>242.5 MB</td>\n", + " <td>302.6 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:30</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Generate HTML summary</th>\n", + " <th>Sequencing Data Type</th>\n", + " <td>36</td>\n", + " <td>0 days 00:00:36</td>\n", + " <td>0 days 00:34:04</td>\n", + " <td>78.7 MB</td>\n", + " <td>85.1 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 06:22:26</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha rarefaction curves [alpha_rarefaction]</th>\n", + " <th>qiime2</th>\n", + " <td>35</td>\n", + " <td>0 days 00:15:45</td>\n", + " <td>1 days 13:21:15</td>\n", + " <td>206.7 MB</td>\n", + " <td>2.8 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:01:19</td>\n", + " </tr>\n", + " <tr>\n", + " <th>submit_to_EBI</th>\n", + " <th>Qiita</th>\n", + " <td>31</td>\n", + " <td>0 days 00:04:32</td>\n", + " <td>0 days 12:34:14</td>\n", + " <td>184.2 MB</td>\n", + " <td>3.4 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 07:36:40</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Taxonomy-based feature table filter. [filter_table]</th>\n", + " <th>qiime2</th>\n", + " <td>31</td>\n", + " <td>0 days 00:01:00</td>\n", + " <td>0 days 00:19:37</td>\n", + " <td>243.9 MB</td>\n", + " <td>659.1 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:28</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter features against reference [filter_features]</th>\n", + " <th>qiime2</th>\n", + " <td>27</td>\n", + " <td>0 days 00:02:07</td>\n", + " <td>0 days 00:18:52</td>\n", + " <td>8.8 GB</td>\n", + " <td>11.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 03:48:38</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Visualize and Interact with Principal Coordinates Analysis Plots [plot]</th>\n", + " <th>qiime2</th>\n", + " <td>26</td>\n", + " <td>0 days 00:01:20</td>\n", + " <td>0 days 00:10:50</td>\n", + " <td>243.3 MB</td>\n", + " <td>25.1 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:15</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity rarefaction [beta_rarefaction]</th>\n", + " <th>qiime2</th>\n", + " <td>26</td>\n", + " <td>0 days 00:02:57</td>\n", + " <td>0 days 00:15:28</td>\n", + " <td>253.1 MB</td>\n", + " <td>500.1 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter features from a table based on abundance and prevalence [filter_features_conditionally]</th>\n", + " <th>qiime2</th>\n", + " <td>22</td>\n", + " <td>0 days 00:00:57</td>\n", + " <td>0 days 00:02:33</td>\n", + " <td>244.3 MB</td>\n", + " <td>553.3 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:26</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Generate a heatmap representation of a feature table [heatmap]</th>\n", + " <th>qiime2</th>\n", + " <td>21</td>\n", + " <td>0 days 00:01:12</td>\n", + " <td>0 days 00:03:47</td>\n", + " <td>258.2 MB</td>\n", + " <td>799.4 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 10:58:17</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Collapse features by their taxonomy at the specified level [collapse]</th>\n", + " <th>qiime2</th>\n", + " <td>19</td>\n", + " <td>0 days 00:01:03</td>\n", + " <td>0 days 00:03:47</td>\n", + " <td>245.3 MB</td>\n", + " <td>462.6 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:21</td>\n", + " </tr>\n", + " <tr>\n", + " <th>download_remote_files</th>\n", + " <th>Qiita</th>\n", + " <td>18</td>\n", + " <td>0 days 00:01:03</td>\n", + " <td>0 days 00:43:41</td>\n", + " <td>125.0 MB</td>\n", + " <td>128.9 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:21</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Non V4 16S sequence assessment [non_v4_16s]</th>\n", + " <th>qiime2</th>\n", + " <td>14</td>\n", + " <td>0 days 00:05:07</td>\n", + " <td>0 days 00:12:39</td>\n", + " <td>752.6 MB</td>\n", + " <td>1.9 GB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter samples from a distance matrix. [filter_distance_matrix]</th>\n", + " <th>qiime2</th>\n", + " <td>12</td>\n", + " <td>0 days 00:01:08</td>\n", + " <td>0 days 00:02:14</td>\n", + " <td>250.2 MB</td>\n", + " <td>260.8 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter features from table [filter_features]</th>\n", + " <th>qiime2</th>\n", + " <td>12</td>\n", + " <td>0 days 00:00:56</td>\n", + " <td>0 days 00:02:25</td>\n", + " <td>242.6 MB</td>\n", + " <td>313.2 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:02</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Identify core features in table [core_features]</th>\n", + " <th>qiime2</th>\n", + " <td>11</td>\n", + " <td>0 days 00:01:16</td>\n", + " <td>0 days 00:02:38</td>\n", + " <td>247.5 MB</td>\n", + " <td>592.2 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:26</td>\n", + " </tr>\n", + " <tr>\n", + " <th>list_remote_files</th>\n", + " <th>Qiita</th>\n", + " <td>9</td>\n", + " <td>0 days 00:00:07</td>\n", + " <td>0 days 00:02:21</td>\n", + " <td>0 Bytes</td>\n", + " <td>121.0 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:25</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Convert to relative frequencies [relative_frequency]</th>\n", + " <th>qiime2</th>\n", + " <td>7</td>\n", + " <td>0 days 00:01:03</td>\n", + " <td>0 days 00:03:57</td>\n", + " <td>242.9 MB</td>\n", + " <td>264.9 MB</td>\n", + " <td>0 days 00:00:01</td>\n", + " <td>0 days 00:00:09</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Uniform Manifold Approximation and Projection [umap]</th>\n", + " <th>qiime2</th>\n", + " <td>3</td>\n", + " <td>0 days 00:01:19</td>\n", + " <td>0 days 00:06:15</td>\n", + " <td>269.8 MB</td>\n", + " <td>276.2 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:13</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Validate</th>\n", + " <th>Sequencing Data Type - FASTA</th>\n", + " <td>3</td>\n", + " <td>0 days 00:00:51</td>\n", + " <td>0 days 00:02:23</td>\n", + " <td>77.9 MB</td>\n", + " <td>83.6 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Summarize table [summarize]</th>\n", + " <th>qiime2</th>\n", + " <td>3</td>\n", + " <td>0 days 00:02:33</td>\n", + " <td>0 days 00:02:50</td>\n", + " <td>263.2 MB</td>\n", + " <td>268.8 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Generate HTML summary</th>\n", + " <th>BIOM type</th>\n", + " <td>2</td>\n", + " <td>0 days 00:01:43</td>\n", + " <td>0 days 00:02:23</td>\n", + " <td>278.1 MB</td>\n", + " <td>315.8 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity correlation [beta_correlation]</th>\n", + " <th>qiime2</th>\n", + " <td>1</td>\n", + " <td>0 days 00:06:27</td>\n", + " <td>0 days 00:06:27</td>\n", + " <td>269.2 MB</td>\n", + " <td>269.2 MB</td>\n", + " <td>0 days 02:54:46</td>\n", + " <td>0 days 02:54:46</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Convert to presence/absence [presence_absence]</th>\n", + " <th>qiime2</th>\n", + " <td>1</td>\n", + " <td>0 days 00:01:40</td>\n", + " <td>0 days 00:01:40</td>\n", + " <td>246.5 MB</td>\n", + " <td>246.5 MB</td>\n", + " <td>0 days 00:00:01</td>\n", + " <td>0 days 00:00:01</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity comparisons [alpha_group_significance]</th>\n", + " <th>qiime2</th>\n", + " <td>1</td>\n", + " <td>0 days 00:01:09</td>\n", + " <td>0 days 00:01:09</td>\n", + " <td>242.6 MB</td>\n", + " <td>242.6 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:00</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName \n", + "complete_job Qiita 16590 \n", + "release_validators Qiita 5520 \n", + "Validate BIOM type - BIOM 4503 \n", + " Visualization types - q2_visualization 1542 \n", + " Sequencing Data Type - Demultiplexed 765 \n", + " Sequencing Data Type - per_sample_FASTQ 750 \n", + "update_sample_template Qiita 687 \n", + "Validate Diversity types - distance_matrix 669 \n", + "Beta diversity group significance [beta_group_s... qiime2 596 \n", + "Validate Diversity types - alpha_vector 543 \n", + "Pick closed-reference OTUs QIIMEq2 517 \n", + "Trimming QIIMEq2 517 \n", + "Validate Diversity types - ordination_results 502 \n", + "Deblur 2021.09 deblur 481 \n", + "delete_artifact Qiita 472 \n", + "Filter samples from table [filter_samples] qiime2 371 \n", + "build_analysis_files Qiita 316 \n", + "adonis PERMANOVA test for beta group significan... qiime2 308 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 289 \n", + "Split libraries FASTQ QIIMEq2 249 \n", + "Principal Coordinate Analysis [pcoa] qiime2 241 \n", + "create_sample_template Qiita 231 \n", + "Visualize taxonomy with an interactive bar plot... qiime2 189 \n", + "Alpha diversity [alpha] qiime2 168 \n", + "delete_sample_or_column Qiita 136 \n", + "Rarefy table [rarefy] qiime2 135 \n", + "delete_analysis Qiita 126 \n", + "Beta diversity [beta] qiime2 109 \n", + "Sequence Processing Pipeline qp-klp 100 \n", + "Validate qtp-job-output-folder - job-output-folder 100 \n", + " Sequencing Data Type - FASTQ 87 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 72 \n", + "Validate Diversity types - FeatureData 72 \n", + "Apply ANCOM to identify features that differ in... qiime2 67 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 58 \n", + "update_prep_template Qiita 54 \n", + "delete_sample_template Qiita 54 \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 45 \n", + "copy_artifact Qiita 43 \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 42 \n", + "delete_study Qiita 40 \n", + "Add pseudocount to table. [add_pseudocount] qiime2 39 \n", + "Generate HTML summary Sequencing Data Type 36 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 35 \n", + "submit_to_EBI Qiita 31 \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 31 \n", + "Filter features against reference [filter_featu... qiime2 27 \n", + "Visualize and Interact with Principal Coordinat... qiime2 26 \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 26 \n", + "Filter features from a table based on abundance... qiime2 22 \n", + "Generate a heatmap representation of a feature ... qiime2 21 \n", + "Collapse features by their taxonomy at the spec... qiime2 19 \n", + "download_remote_files Qiita 18 \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 14 \n", + "Filter samples from a distance matrix. [filter_... qiime2 12 \n", + "Filter features from table [filter_features] qiime2 12 \n", + "Identify core features in table [core_features] qiime2 11 \n", + "list_remote_files Qiita 9 \n", + "Convert to relative frequencies [relative_frequ... qiime2 7 \n", + "Uniform Manifold Approximation and Projection [... qiime2 3 \n", + "Validate Sequencing Data Type - FASTA 3 \n", + "Summarize table [summarize] qiime2 3 \n", + "Generate HTML summary BIOM type 2 \n", + "Beta diversity correlation [beta_correlation] qiime2 1 \n", + "Convert to presence/absence [presence_absence] qiime2 1 \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 1 \n", + "\n", + " \\\n", + " min \n", + "cName sName \n", + "complete_job Qiita 0 days 00:00:02 \n", + "release_validators Qiita 0 days 00:00:06 \n", + "Validate BIOM type - BIOM 0 days 00:01:01 \n", + " Visualization types - q2_visualization 0 days 00:00:41 \n", + " Sequencing Data Type - Demultiplexed 0 days 00:00:36 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 00:00:38 \n", + "update_sample_template Qiita 0 days 00:00:03 \n", + "Validate Diversity types - distance_matrix 0 days 00:00:38 \n", + "Beta diversity group significance [beta_group_s... qiime2 0 days 00:01:04 \n", + "Validate Diversity types - alpha_vector 0 days 00:01:15 \n", + "Pick closed-reference OTUs QIIMEq2 0 days 00:04:24 \n", + "Trimming QIIMEq2 0 days 00:00:39 \n", + "Validate Diversity types - ordination_results 0 days 00:00:37 \n", + "Deblur 2021.09 deblur 0 days 00:02:17 \n", + "delete_artifact Qiita 0 days 00:00:03 \n", + "Filter samples from table [filter_samples] qiime2 0 days 00:00:57 \n", + "build_analysis_files Qiita 0 days 00:01:23 \n", + "adonis PERMANOVA test for beta group significan... qiime2 0 days 00:01:13 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 00:01:04 \n", + "Split libraries FASTQ QIIMEq2 0 days 00:00:50 \n", + "Principal Coordinate Analysis [pcoa] qiime2 0 days 00:00:52 \n", + "create_sample_template Qiita 0 days 00:00:03 \n", + "Visualize taxonomy with an interactive bar plot... qiime2 0 days 00:01:11 \n", + "Alpha diversity [alpha] qiime2 0 days 00:01:02 \n", + "delete_sample_or_column Qiita 0 days 00:00:03 \n", + "Rarefy table [rarefy] qiime2 0 days 00:00:55 \n", + "delete_analysis Qiita 0 days 00:00:04 \n", + "Beta diversity [beta] qiime2 0 days 00:00:59 \n", + "Sequence Processing Pipeline qp-klp 0 days 00:02:25 \n", + "Validate qtp-job-output-folder - job-output-folder 0 days 00:00:35 \n", + " Sequencing Data Type - FASTQ 0 days 00:00:41 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 00:01:08 \n", + "Validate Diversity types - FeatureData 0 days 00:01:09 \n", + "Apply ANCOM to identify features that differ in... qiime2 0 days 00:01:14 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 00:01:41 \n", + "update_prep_template Qiita 0 days 00:00:03 \n", + "delete_sample_template Qiita 0 days 00:00:04 \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 0 days 00:02:33 \n", + "copy_artifact Qiita 0 days 00:00:08 \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 0 days 00:05:19 \n", + "delete_study Qiita 0 days 00:00:04 \n", + "Add pseudocount to table. [add_pseudocount] qiime2 0 days 00:01:04 \n", + "Generate HTML summary Sequencing Data Type 0 days 00:00:36 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 0 days 00:15:45 \n", + "submit_to_EBI Qiita 0 days 00:04:32 \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 0 days 00:01:00 \n", + "Filter features against reference [filter_featu... qiime2 0 days 00:02:07 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:01:20 \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 0 days 00:02:57 \n", + "Filter features from a table based on abundance... qiime2 0 days 00:00:57 \n", + "Generate a heatmap representation of a feature ... qiime2 0 days 00:01:12 \n", + "Collapse features by their taxonomy at the spec... qiime2 0 days 00:01:03 \n", + "download_remote_files Qiita 0 days 00:01:03 \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 0 days 00:05:07 \n", + "Filter samples from a distance matrix. [filter_... qiime2 0 days 00:01:08 \n", + "Filter features from table [filter_features] qiime2 0 days 00:00:56 \n", + "Identify core features in table [core_features] qiime2 0 days 00:01:16 \n", + "list_remote_files Qiita 0 days 00:00:07 \n", + "Convert to relative frequencies [relative_frequ... qiime2 0 days 00:01:03 \n", + "Uniform Manifold Approximation and Projection [... qiime2 0 days 00:01:19 \n", + "Validate Sequencing Data Type - FASTA 0 days 00:00:51 \n", + "Summarize table [summarize] qiime2 0 days 00:02:33 \n", + "Generate HTML summary BIOM type 0 days 00:01:43 \n", + "Beta diversity correlation [beta_correlation] qiime2 0 days 00:06:27 \n", + "Convert to presence/absence [presence_absence] qiime2 0 days 00:01:40 \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 0 days 00:01:09 \n", + "\n", + " \\\n", + " max \n", + "cName sName \n", + "complete_job Qiita 0 days 02:38:35 \n", + "release_validators Qiita 6 days 09:07:42 \n", + "Validate BIOM type - BIOM 0 days 05:58:41 \n", + " Visualization types - q2_visualization 0 days 00:40:43 \n", + " Sequencing Data Type - Demultiplexed 1 days 16:56:48 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 04:12:47 \n", + "update_sample_template Qiita 0 days 00:33:08 \n", + "Validate Diversity types - distance_matrix 0 days 00:08:06 \n", + "Beta diversity group significance [beta_group_s... qiime2 0 days 00:21:21 \n", + "Validate Diversity types - alpha_vector 0 days 05:00:08 \n", + "Pick closed-reference OTUs QIIMEq2 4 days 04:30:41 \n", + "Trimming QIIMEq2 0 days 22:32:35 \n", + "Validate Diversity types - ordination_results 0 days 00:12:54 \n", + "Deblur 2021.09 deblur 7 days 05:09:14 \n", + "delete_artifact Qiita 0 days 00:38:41 \n", + "Filter samples from table [filter_samples] qiime2 0 days 00:24:35 \n", + "build_analysis_files Qiita 1 days 06:30:21 \n", + "adonis PERMANOVA test for beta group significan... qiime2 0 days 00:39:12 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 00:13:55 \n", + "Split libraries FASTQ QIIMEq2 3 days 03:00:29 \n", + "Principal Coordinate Analysis [pcoa] qiime2 0 days 00:06:38 \n", + "create_sample_template Qiita 0 days 00:04:53 \n", + "Visualize taxonomy with an interactive bar plot... qiime2 0 days 00:18:24 \n", + "Alpha diversity [alpha] qiime2 0 days 00:07:38 \n", + "delete_sample_or_column Qiita 0 days 00:11:34 \n", + "Rarefy table [rarefy] qiime2 0 days 00:35:37 \n", + "delete_analysis Qiita 0 days 00:04:44 \n", + "Beta diversity [beta] qiime2 0 days 00:07:57 \n", + "Sequence Processing Pipeline qp-klp 0 days 16:32:56 \n", + "Validate qtp-job-output-folder - job-output-folder 0 days 00:01:14 \n", + " Sequencing Data Type - FASTQ 0 days 01:50:44 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 00:05:28 \n", + "Validate Diversity types - FeatureData 0 days 00:04:49 \n", + "Apply ANCOM to identify features that differ in... qiime2 1 days 07:50:45 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 08:04:39 \n", + "update_prep_template Qiita 0 days 00:02:25 \n", + "delete_sample_template Qiita 0 days 00:19:31 \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 0 days 00:21:57 \n", + "copy_artifact Qiita 0 days 00:25:35 \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 0 days 00:30:23 \n", + "delete_study Qiita 0 days 00:16:09 \n", + "Add pseudocount to table. [add_pseudocount] qiime2 0 days 00:04:30 \n", + "Generate HTML summary Sequencing Data Type 0 days 00:34:04 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 1 days 13:21:15 \n", + "submit_to_EBI Qiita 0 days 12:34:14 \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 0 days 00:19:37 \n", + "Filter features against reference [filter_featu... qiime2 0 days 00:18:52 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:10:50 \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 0 days 00:15:28 \n", + "Filter features from a table based on abundance... qiime2 0 days 00:02:33 \n", + "Generate a heatmap representation of a feature ... qiime2 0 days 00:03:47 \n", + "Collapse features by their taxonomy at the spec... qiime2 0 days 00:03:47 \n", + "download_remote_files Qiita 0 days 00:43:41 \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 0 days 00:12:39 \n", + "Filter samples from a distance matrix. [filter_... qiime2 0 days 00:02:14 \n", + "Filter features from table [filter_features] qiime2 0 days 00:02:25 \n", + "Identify core features in table [core_features] qiime2 0 days 00:02:38 \n", + "list_remote_files Qiita 0 days 00:02:21 \n", + "Convert to relative frequencies [relative_frequ... qiime2 0 days 00:03:57 \n", + "Uniform Manifold Approximation and Projection [... qiime2 0 days 00:06:15 \n", + "Validate Sequencing Data Type - FASTA 0 days 00:02:23 \n", + "Summarize table [summarize] qiime2 0 days 00:02:50 \n", + "Generate HTML summary BIOM type 0 days 00:02:23 \n", + "Beta diversity correlation [beta_correlation] qiime2 0 days 00:06:27 \n", + "Convert to presence/absence [presence_absence] qiime2 0 days 00:01:40 \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 0 days 00:01:09 \n", + "\n", + " MaxRSSRaw \\\n", + " min \n", + "cName sName \n", + "complete_job Qiita 0 Bytes \n", + "release_validators Qiita 0 Bytes \n", + "Validate BIOM type - BIOM 125.8 MB \n", + " Visualization types - q2_visualization 8.5 MB \n", + " Sequencing Data Type - Demultiplexed 83.4 MB \n", + " Sequencing Data Type - per_sample_FASTQ 77.4 MB \n", + "update_sample_template Qiita 0 Bytes \n", + "Validate Diversity types - distance_matrix 1.6 MB \n", + "Beta diversity group significance [beta_group_s... qiime2 257.7 MB \n", + "Validate Diversity types - alpha_vector 186.8 MB \n", + "Pick closed-reference OTUs QIIMEq2 2.4 GB \n", + "Trimming QIIMEq2 54.5 MB \n", + "Validate Diversity types - ordination_results 74.8 MB \n", + "Deblur 2021.09 deblur 966.5 MB \n", + "delete_artifact Qiita 0 Bytes \n", + "Filter samples from table [filter_samples] qiime2 241.2 MB \n", + "build_analysis_files Qiita 128.3 MB \n", + "adonis PERMANOVA test for beta group significan... qiime2 147.4 MB \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 241.2 MB \n", + "Split libraries FASTQ QIIMEq2 56.7 MB \n", + "Principal Coordinate Analysis [pcoa] qiime2 236.0 MB \n", + "create_sample_template Qiita 0 Bytes \n", + "Visualize taxonomy with an interactive bar plot... qiime2 188.4 MB \n", + "Alpha diversity [alpha] qiime2 196.9 MB \n", + "delete_sample_or_column Qiita 0 Bytes \n", + "Rarefy table [rarefy] qiime2 79.2 MB \n", + "delete_analysis Qiita 0 Bytes \n", + "Beta diversity [beta] qiime2 241.0 MB \n", + "Sequence Processing Pipeline qp-klp 153.3 MB \n", + "Validate qtp-job-output-folder - job-output-folder 45.4 MB \n", + " Sequencing Data Type - FASTQ 77.9 MB \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 231.0 MB \n", + "Validate Diversity types - FeatureData 200.9 MB \n", + "Apply ANCOM to identify features that differ in... qiime2 244.5 MB \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 938.3 MB \n", + "update_prep_template Qiita 0 Bytes \n", + "delete_sample_template Qiita 0 Bytes \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 245.6 MB \n", + "copy_artifact Qiita 0 Bytes \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 207.9 MB \n", + "delete_study Qiita 0 Bytes \n", + "Add pseudocount to table. [add_pseudocount] qiime2 242.5 MB \n", + "Generate HTML summary Sequencing Data Type 78.7 MB \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 206.7 MB \n", + "submit_to_EBI Qiita 184.2 MB \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 243.9 MB \n", + "Filter features against reference [filter_featu... qiime2 8.8 GB \n", + "Visualize and Interact with Principal Coordinat... qiime2 243.3 MB \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 253.1 MB \n", + "Filter features from a table based on abundance... qiime2 244.3 MB \n", + "Generate a heatmap representation of a feature ... qiime2 258.2 MB \n", + "Collapse features by their taxonomy at the spec... qiime2 245.3 MB \n", + "download_remote_files Qiita 125.0 MB \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 752.6 MB \n", + "Filter samples from a distance matrix. [filter_... qiime2 250.2 MB \n", + "Filter features from table [filter_features] qiime2 242.6 MB \n", + "Identify core features in table [core_features] qiime2 247.5 MB \n", + "list_remote_files Qiita 0 Bytes \n", + "Convert to relative frequencies [relative_frequ... qiime2 242.9 MB \n", + "Uniform Manifold Approximation and Projection [... qiime2 269.8 MB \n", + "Validate Sequencing Data Type - FASTA 77.9 MB \n", + "Summarize table [summarize] qiime2 263.2 MB \n", + "Generate HTML summary BIOM type 278.1 MB \n", + "Beta diversity correlation [beta_correlation] qiime2 269.2 MB \n", + "Convert to presence/absence [presence_absence] qiime2 246.5 MB \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 242.6 MB \n", + "\n", + " \\\n", + " max \n", + "cName sName \n", + "complete_job Qiita 349.4 MB \n", + "release_validators Qiita 175.4 MB \n", + "Validate BIOM type - BIOM 329.2 GB \n", + " Visualization types - q2_visualization 73.5 MB \n", + " Sequencing Data Type - Demultiplexed 15.6 GB \n", + " Sequencing Data Type - per_sample_FASTQ 88.7 MB \n", + "update_sample_template Qiita 21.4 GB \n", + "Validate Diversity types - distance_matrix 5.4 GB \n", + "Beta diversity group significance [beta_group_s... qiime2 1.2 GB \n", + "Validate Diversity types - alpha_vector 9.4 GB \n", + "Pick closed-reference OTUs QIIMEq2 81.4 GB \n", + "Trimming QIIMEq2 17.8 GB \n", + "Validate Diversity types - ordination_results 2.1 GB \n", + "Deblur 2021.09 deblur 72.1 GB \n", + "delete_artifact Qiita 121.5 MB \n", + "Filter samples from table [filter_samples] qiime2 24.8 GB \n", + "build_analysis_files Qiita 226.5 GB \n", + "adonis PERMANOVA test for beta group significan... qiime2 1.5 GB \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 13.5 GB \n", + "Split libraries FASTQ QIIMEq2 46.3 GB \n", + "Principal Coordinate Analysis [pcoa] qiime2 1.1 GB \n", + "create_sample_template Qiita 415.8 MB \n", + "Visualize taxonomy with an interactive bar plot... qiime2 3.1 GB \n", + "Alpha diversity [alpha] qiime2 1.2 GB \n", + "delete_sample_or_column Qiita 6.2 GB \n", + "Rarefy table [rarefy] qiime2 12.3 GB \n", + "delete_analysis Qiita 120.8 MB \n", + "Beta diversity [beta] qiime2 502.2 MB \n", + "Sequence Processing Pipeline qp-klp 10.1 GB \n", + "Validate qtp-job-output-folder - job-output-folder 46.5 MB \n", + " Sequencing Data Type - FASTQ 84.4 MB \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 13.3 GB \n", + "Validate Diversity types - FeatureData 510.9 MB \n", + "Apply ANCOM to identify features that differ in... qiime2 5.2 GB \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 44.4 GB \n", + "update_prep_template Qiita 125.3 MB \n", + "delete_sample_template Qiita 120.6 MB \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 696.0 MB \n", + "copy_artifact Qiita 123.0 MB \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 463.9 MB \n", + "delete_study Qiita 125.5 MB \n", + "Add pseudocount to table. [add_pseudocount] qiime2 302.6 MB \n", + "Generate HTML summary Sequencing Data Type 85.1 MB \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 2.8 GB \n", + "submit_to_EBI Qiita 3.4 GB \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 659.1 MB \n", + "Filter features against reference [filter_featu... qiime2 11.1 GB \n", + "Visualize and Interact with Principal Coordinat... qiime2 25.1 GB \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 500.1 MB \n", + "Filter features from a table based on abundance... qiime2 553.3 MB \n", + "Generate a heatmap representation of a feature ... qiime2 799.4 MB \n", + "Collapse features by their taxonomy at the spec... qiime2 462.6 MB \n", + "download_remote_files Qiita 128.9 MB \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 1.9 GB \n", + "Filter samples from a distance matrix. [filter_... qiime2 260.8 MB \n", + "Filter features from table [filter_features] qiime2 313.2 MB \n", + "Identify core features in table [core_features] qiime2 592.2 MB \n", + "list_remote_files Qiita 121.0 MB \n", + "Convert to relative frequencies [relative_frequ... qiime2 264.9 MB \n", + "Uniform Manifold Approximation and Projection [... qiime2 276.2 MB \n", + "Validate Sequencing Data Type - FASTA 83.6 MB \n", + "Summarize table [summarize] qiime2 268.8 MB \n", + "Generate HTML summary BIOM type 315.8 MB \n", + "Beta diversity correlation [beta_correlation] qiime2 269.2 MB \n", + "Convert to presence/absence [presence_absence] qiime2 246.5 MB \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 242.6 MB \n", + "\n", + " WaitTime \\\n", + " min \n", + "cName sName \n", + "complete_job Qiita 0 days 00:00:00 \n", + "release_validators Qiita 0 days 00:00:00 \n", + "Validate BIOM type - BIOM 0 days 00:00:00 \n", + " Visualization types - q2_visualization 0 days 00:00:00 \n", + " Sequencing Data Type - Demultiplexed 0 days 00:00:00 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 00:00:00 \n", + "update_sample_template Qiita 0 days 00:00:00 \n", + "Validate Diversity types - distance_matrix 0 days 00:00:00 \n", + "Beta diversity group significance [beta_group_s... qiime2 0 days 00:00:00 \n", + "Validate Diversity types - alpha_vector 0 days 00:00:00 \n", + "Pick closed-reference OTUs QIIMEq2 0 days 00:00:00 \n", + "Trimming QIIMEq2 0 days 00:00:00 \n", + "Validate Diversity types - ordination_results 0 days 00:00:00 \n", + "Deblur 2021.09 deblur 0 days 00:00:00 \n", + "delete_artifact Qiita 0 days 00:00:00 \n", + "Filter samples from table [filter_samples] qiime2 0 days 00:00:00 \n", + "build_analysis_files Qiita 0 days 00:00:00 \n", + "adonis PERMANOVA test for beta group significan... qiime2 0 days 00:00:00 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 00:00:00 \n", + "Split libraries FASTQ QIIMEq2 0 days 00:00:00 \n", + "Principal Coordinate Analysis [pcoa] qiime2 0 days 00:00:00 \n", + "create_sample_template Qiita 0 days 00:00:00 \n", + "Visualize taxonomy with an interactive bar plot... qiime2 0 days 00:00:00 \n", + "Alpha diversity [alpha] qiime2 0 days 00:00:00 \n", + "delete_sample_or_column Qiita 0 days 00:00:00 \n", + "Rarefy table [rarefy] qiime2 0 days 00:00:00 \n", + "delete_analysis Qiita 0 days 00:00:00 \n", + "Beta diversity [beta] qiime2 0 days 00:00:00 \n", + "Sequence Processing Pipeline qp-klp 0 days 00:00:00 \n", + "Validate qtp-job-output-folder - job-output-folder 0 days 00:00:00 \n", + " Sequencing Data Type - FASTQ 0 days 00:00:00 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 00:00:00 \n", + "Validate Diversity types - FeatureData 0 days 00:01:09 \n", + "Apply ANCOM to identify features that differ in... qiime2 0 days 00:00:00 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 00:00:00 \n", + "update_prep_template Qiita 0 days 00:00:00 \n", + "delete_sample_template Qiita 0 days 00:00:00 \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 0 days 00:00:00 \n", + "copy_artifact Qiita 0 days 00:00:00 \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 0 days 00:00:00 \n", + "delete_study Qiita 0 days 00:00:00 \n", + "Add pseudocount to table. [add_pseudocount] qiime2 0 days 00:00:00 \n", + "Generate HTML summary Sequencing Data Type 0 days 00:00:00 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 0 days 00:00:00 \n", + "submit_to_EBI Qiita 0 days 00:00:00 \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 0 days 00:00:00 \n", + "Filter features against reference [filter_featu... qiime2 0 days 00:00:00 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:00:00 \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 0 days 00:00:00 \n", + "Filter features from a table based on abundance... qiime2 0 days 00:00:00 \n", + "Generate a heatmap representation of a feature ... qiime2 0 days 00:00:00 \n", + "Collapse features by their taxonomy at the spec... qiime2 0 days 00:00:00 \n", + "download_remote_files Qiita 0 days 00:00:00 \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 0 days 00:00:00 \n", + "Filter samples from a distance matrix. [filter_... qiime2 0 days 00:00:00 \n", + "Filter features from table [filter_features] qiime2 0 days 00:00:00 \n", + "Identify core features in table [core_features] qiime2 0 days 00:00:00 \n", + "list_remote_files Qiita 0 days 00:00:00 \n", + "Convert to relative frequencies [relative_frequ... qiime2 0 days 00:00:01 \n", + "Uniform Manifold Approximation and Projection [... qiime2 0 days 00:00:00 \n", + "Validate Sequencing Data Type - FASTA 0 days 00:00:00 \n", + "Summarize table [summarize] qiime2 0 days 00:00:00 \n", + "Generate HTML summary BIOM type 0 days 00:00:00 \n", + "Beta diversity correlation [beta_correlation] qiime2 0 days 02:54:46 \n", + "Convert to presence/absence [presence_absence] qiime2 0 days 00:00:01 \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 0 days 00:00:00 \n", + "\n", + " \n", + " max \n", + "cName sName \n", + "complete_job Qiita 0 days 00:02:18 \n", + "release_validators Qiita 0 days 14:39:55 \n", + "Validate BIOM type - BIOM 1 days 02:55:00 \n", + " Visualization types - q2_visualization 0 days 00:22:46 \n", + " Sequencing Data Type - Demultiplexed 0 days 15:27:39 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 02:05:43 \n", + "update_sample_template Qiita 0 days 00:00:30 \n", + "Validate Diversity types - distance_matrix 2 days 09:13:31 \n", + "Beta diversity group significance [beta_group_s... qiime2 0 days 00:00:25 \n", + "Validate Diversity types - alpha_vector 1 days 20:32:28 \n", + "Pick closed-reference OTUs QIIMEq2 1 days 14:02:47 \n", + "Trimming QIIMEq2 1 days 04:37:26 \n", + "Validate Diversity types - ordination_results 0 days 18:35:39 \n", + "Deblur 2021.09 deblur 7 days 06:26:48 \n", + "delete_artifact Qiita 0 days 10:57:15 \n", + "Filter samples from table [filter_samples] qiime2 0 days 12:15:25 \n", + "build_analysis_files Qiita 5 days 02:12:45 \n", + "adonis PERMANOVA test for beta group significan... qiime2 0 days 04:10:16 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 20:44:14 \n", + "Split libraries FASTQ QIIMEq2 1 days 00:05:31 \n", + "Principal Coordinate Analysis [pcoa] qiime2 0 days 00:06:59 \n", + "create_sample_template Qiita 0 days 07:18:02 \n", + "Visualize taxonomy with an interactive bar plot... qiime2 0 days 11:38:52 \n", + "Alpha diversity [alpha] qiime2 0 days 01:45:20 \n", + "delete_sample_or_column Qiita 0 days 05:49:38 \n", + "Rarefy table [rarefy] qiime2 0 days 07:52:35 \n", + "delete_analysis Qiita 0 days 00:25:52 \n", + "Beta diversity [beta] qiime2 1 days 23:15:18 \n", + "Sequence Processing Pipeline qp-klp 0 days 08:46:06 \n", + "Validate qtp-job-output-folder - job-output-folder 0 days 00:14:55 \n", + " Sequencing Data Type - FASTQ 0 days 00:00:29 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 04:35:04 \n", + "Validate Diversity types - FeatureData 0 days 00:40:47 \n", + "Apply ANCOM to identify features that differ in... qiime2 0 days 01:54:02 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 13:10:32 \n", + "update_prep_template Qiita 0 days 00:00:28 \n", + "delete_sample_template Qiita 0 days 00:06:37 \n", + "Core diversity metrics (non-phylogenetic) [core... qiime2 0 days 00:00:23 \n", + "copy_artifact Qiita 0 days 00:00:19 \n", + "Core diversity metrics (phylogenetic and non-ph... qiime2 0 days 03:17:23 \n", + "delete_study Qiita 0 days 00:00:27 \n", + "Add pseudocount to table. [add_pseudocount] qiime2 0 days 00:00:30 \n", + "Generate HTML summary Sequencing Data Type 0 days 06:22:26 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 0 days 00:01:19 \n", + "submit_to_EBI Qiita 0 days 07:36:40 \n", + "Taxonomy-based feature table filter. [filter_ta... qiime2 0 days 00:00:28 \n", + "Filter features against reference [filter_featu... qiime2 0 days 03:48:38 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:00:15 \n", + "Beta diversity rarefaction [beta_rarefaction] qiime2 0 days 00:00:01 \n", + "Filter features from a table based on abundance... qiime2 0 days 00:00:26 \n", + "Generate a heatmap representation of a feature ... qiime2 0 days 10:58:17 \n", + "Collapse features by their taxonomy at the spec... qiime2 0 days 00:00:21 \n", + "download_remote_files Qiita 0 days 00:00:21 \n", + "Non V4 16S sequence assessment [non_v4_16s] qiime2 0 days 00:00:01 \n", + "Filter samples from a distance matrix. [filter_... qiime2 0 days 00:00:02 \n", + "Filter features from table [filter_features] qiime2 0 days 00:00:02 \n", + "Identify core features in table [core_features] qiime2 0 days 00:00:26 \n", + "list_remote_files Qiita 0 days 00:00:25 \n", + "Convert to relative frequencies [relative_frequ... qiime2 0 days 00:00:09 \n", + "Uniform Manifold Approximation and Projection [... qiime2 0 days 00:00:13 \n", + "Validate Sequencing Data Type - FASTA 0 days 00:00:01 \n", + "Summarize table [summarize] qiime2 0 days 00:00:01 \n", + "Generate HTML summary BIOM type 0 days 00:00:01 \n", + "Beta diversity correlation [beta_correlation] qiime2 0 days 02:54:46 \n", + "Convert to presence/absence [presence_absence] qiime2 0 days 00:00:01 \n", + "Alpha diversity comparisons [alpha_group_signif... qiime2 0 days 00:00:00 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# discarding jobs before 1265533; this is so we only keep the most recent; \n", + "# the main reasons for that are discussed in the 072023 notebook (in this same section)\n", + "df = df[df.external_id >= 1265533].copy()\n", + "\n", + "summary = df.groupby(['cName', 'sName'])[\n", + " ['ElapsedRawTime', 'MaxRSSRaw', 'WaitTime']].agg(['count', 'min', 'max']).copy()\n", + "summary[('MaxRSSRaw', 'min')] = summary[('MaxRSSRaw', 'min')].apply(naturalsize)\n", + "summary[('MaxRSSRaw', 'max')] = summary[('MaxRSSRaw', 'max')].apply(naturalsize)\n", + "summary.drop(columns=[('WaitTime', 'count')], inplace=True)\n", + "summary.drop(columns=[('MaxRSSRaw', 'count')], inplace=True)\n", + "summary.sort_values(('ElapsedRawTime', 'count'), inplace=True, ascending=False)\n", + "print('Total unique jobs:', summary.shape[0])\n", + "pd.set_option('display.max_rows', len(summary))\n", + "display(summary)\n", + "pd.reset_option('display.max_rows')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Deciding what to optimize and what to leave with a default value\n", + "\n", + "In the previous version (072023) we decided to only optimize things that are using more than 4gb or 4hrs" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "qiita: 15\n" + ] + }, + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>release_validators</th>\n", + " <th>Qiita</th>\n", + " <td>5520</td>\n", + " <td>0 days 00:00:06</td>\n", + " <td>6 days 09:07:42</td>\n", + " <td>0 Bytes</td>\n", + " <td>175.4 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"3\" valign=\"top\">Validate</th>\n", + " <th>BIOM type - BIOM</th>\n", + " <td>4503</td>\n", + " <td>0 days 00:01:01</td>\n", + " <td>0 days 05:58:41</td>\n", + " <td>125.8 MB</td>\n", + " <td>329.2 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - Demultiplexed</th>\n", + " <td>765</td>\n", + " <td>0 days 00:00:36</td>\n", + " <td>1 days 16:56:48</td>\n", + " <td>83.4 MB</td>\n", + " <td>15.6 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - per_sample_FASTQ</th>\n", + " <td>750</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 04:12:47</td>\n", + " <td>77.4 MB</td>\n", + " <td>88.7 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>update_sample_template</th>\n", + " <th>Qiita</th>\n", + " <td>687</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:33:08</td>\n", + " <td>0 Bytes</td>\n", + " <td>21.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th rowspan=\"2\" valign=\"top\">Validate</th>\n", + " <th>Diversity types - distance_matrix</th>\n", + " <td>669</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 00:08:06</td>\n", + " <td>1.6 MB</td>\n", + " <td>5.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Diversity types - alpha_vector</th>\n", + " <td>543</td>\n", + " <td>0 days 00:01:15</td>\n", + " <td>0 days 05:00:08</td>\n", + " <td>186.8 MB</td>\n", + " <td>9.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trimming</th>\n", + " <th>QIIMEq2</th>\n", + " <td>517</td>\n", + " <td>0 days 00:00:39</td>\n", + " <td>0 days 22:32:35</td>\n", + " <td>54.5 MB</td>\n", + " <td>17.8 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pick closed-reference OTUs</th>\n", + " <th>QIIMEq2</th>\n", + " <td>517</td>\n", + " <td>0 days 00:04:24</td>\n", + " <td>4 days 04:30:41</td>\n", + " <td>2.4 GB</td>\n", + " <td>81.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Deblur 2021.09</th>\n", + " <th>deblur</th>\n", + " <td>481</td>\n", + " <td>0 days 00:02:17</td>\n", + " <td>7 days 05:09:14</td>\n", + " <td>966.5 MB</td>\n", + " <td>72.1 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>build_analysis_files</th>\n", + " <th>Qiita</th>\n", + " <td>316</td>\n", + " <td>0 days 00:01:23</td>\n", + " <td>1 days 06:30:21</td>\n", + " <td>128.3 MB</td>\n", + " <td>226.5 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Split libraries FASTQ</th>\n", + " <th>QIIMEq2</th>\n", + " <td>249</td>\n", + " <td>0 days 00:00:50</td>\n", + " <td>3 days 03:00:29</td>\n", + " <td>56.7 MB</td>\n", + " <td>46.3 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>delete_sample_or_column</th>\n", + " <th>Qiita</th>\n", + " <td>136</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:11:34</td>\n", + " <td>0 Bytes</td>\n", + " <td>6.2 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequence Processing Pipeline</th>\n", + " <th>qp-klp</th>\n", + " <td>100</td>\n", + " <td>0 days 00:02:25</td>\n", + " <td>0 days 16:32:56</td>\n", + " <td>153.3 MB</td>\n", + " <td>10.1 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>submit_to_EBI</th>\n", + " <th>Qiita</th>\n", + " <td>31</td>\n", + " <td>0 days 00:04:32</td>\n", + " <td>0 days 12:34:14</td>\n", + " <td>184.2 MB</td>\n", + " <td>3.4 GB</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName \n", + "release_validators Qiita 5520 \n", + "Validate BIOM type - BIOM 4503 \n", + " Sequencing Data Type - Demultiplexed 765 \n", + " Sequencing Data Type - per_sample_FASTQ 750 \n", + "update_sample_template Qiita 687 \n", + "Validate Diversity types - distance_matrix 669 \n", + " Diversity types - alpha_vector 543 \n", + "Trimming QIIMEq2 517 \n", + "Pick closed-reference OTUs QIIMEq2 517 \n", + "Deblur 2021.09 deblur 481 \n", + "build_analysis_files Qiita 316 \n", + "Split libraries FASTQ QIIMEq2 249 \n", + "delete_sample_or_column Qiita 136 \n", + "Sequence Processing Pipeline qp-klp 100 \n", + "submit_to_EBI Qiita 31 \n", + "\n", + " \\\n", + " min \n", + "cName sName \n", + "release_validators Qiita 0 days 00:00:06 \n", + "Validate BIOM type - BIOM 0 days 00:01:01 \n", + " Sequencing Data Type - Demultiplexed 0 days 00:00:36 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 00:00:38 \n", + "update_sample_template Qiita 0 days 00:00:03 \n", + "Validate Diversity types - distance_matrix 0 days 00:00:38 \n", + " Diversity types - alpha_vector 0 days 00:01:15 \n", + "Trimming QIIMEq2 0 days 00:00:39 \n", + "Pick closed-reference OTUs QIIMEq2 0 days 00:04:24 \n", + "Deblur 2021.09 deblur 0 days 00:02:17 \n", + "build_analysis_files Qiita 0 days 00:01:23 \n", + "Split libraries FASTQ QIIMEq2 0 days 00:00:50 \n", + "delete_sample_or_column Qiita 0 days 00:00:03 \n", + "Sequence Processing Pipeline qp-klp 0 days 00:02:25 \n", + "submit_to_EBI Qiita 0 days 00:04:32 \n", + "\n", + " \\\n", + " max \n", + "cName sName \n", + "release_validators Qiita 6 days 09:07:42 \n", + "Validate BIOM type - BIOM 0 days 05:58:41 \n", + " Sequencing Data Type - Demultiplexed 1 days 16:56:48 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 04:12:47 \n", + "update_sample_template Qiita 0 days 00:33:08 \n", + "Validate Diversity types - distance_matrix 0 days 00:08:06 \n", + " Diversity types - alpha_vector 0 days 05:00:08 \n", + "Trimming QIIMEq2 0 days 22:32:35 \n", + "Pick closed-reference OTUs QIIMEq2 4 days 04:30:41 \n", + "Deblur 2021.09 deblur 7 days 05:09:14 \n", + "build_analysis_files Qiita 1 days 06:30:21 \n", + "Split libraries FASTQ QIIMEq2 3 days 03:00:29 \n", + "delete_sample_or_column Qiita 0 days 00:11:34 \n", + "Sequence Processing Pipeline qp-klp 0 days 16:32:56 \n", + "submit_to_EBI Qiita 0 days 12:34:14 \n", + "\n", + " MaxRSSRaw \\\n", + " min \n", + "cName sName \n", + "release_validators Qiita 0 Bytes \n", + "Validate BIOM type - BIOM 125.8 MB \n", + " Sequencing Data Type - Demultiplexed 83.4 MB \n", + " Sequencing Data Type - per_sample_FASTQ 77.4 MB \n", + "update_sample_template Qiita 0 Bytes \n", + "Validate Diversity types - distance_matrix 1.6 MB \n", + " Diversity types - alpha_vector 186.8 MB \n", + "Trimming QIIMEq2 54.5 MB \n", + "Pick closed-reference OTUs QIIMEq2 2.4 GB \n", + "Deblur 2021.09 deblur 966.5 MB \n", + "build_analysis_files Qiita 128.3 MB \n", + "Split libraries FASTQ QIIMEq2 56.7 MB \n", + "delete_sample_or_column Qiita 0 Bytes \n", + "Sequence Processing Pipeline qp-klp 153.3 MB \n", + "submit_to_EBI Qiita 184.2 MB \n", + "\n", + " \n", + " max \n", + "cName sName \n", + "release_validators Qiita 175.4 MB \n", + "Validate BIOM type - BIOM 329.2 GB \n", + " Sequencing Data Type - Demultiplexed 15.6 GB \n", + " Sequencing Data Type - per_sample_FASTQ 88.7 MB \n", + "update_sample_template Qiita 21.4 GB \n", + "Validate Diversity types - distance_matrix 5.4 GB \n", + " Diversity types - alpha_vector 9.4 GB \n", + "Trimming QIIMEq2 17.8 GB \n", + "Pick closed-reference OTUs QIIMEq2 81.4 GB \n", + "Deblur 2021.09 deblur 72.1 GB \n", + "build_analysis_files Qiita 226.5 GB \n", + "Split libraries FASTQ QIIMEq2 46.3 GB \n", + "delete_sample_or_column Qiita 6.2 GB \n", + "Sequence Processing Pipeline qp-klp 10.1 GB \n", + "submit_to_EBI Qiita 3.4 GB " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "qiime2: 9\n" + ] + }, + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>Filter samples from table [filter_samples]</th>\n", + " <th>qiime2</th>\n", + " <td>371</td>\n", + " <td>0 days 00:00:57</td>\n", + " <td>0 days 00:24:35</td>\n", + " <td>241.2 MB</td>\n", + " <td>24.8 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity (phylogenetic) [beta_phylogenetic]</th>\n", + " <th>qiime2</th>\n", + " <td>289</td>\n", + " <td>0 days 00:01:04</td>\n", + " <td>0 days 00:13:55</td>\n", + " <td>241.2 MB</td>\n", + " <td>13.5 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Rarefy table [rarefy]</th>\n", + " <th>qiime2</th>\n", + " <td>135</td>\n", + " <td>0 days 00:00:55</td>\n", + " <td>0 days 00:35:37</td>\n", + " <td>79.2 MB</td>\n", + " <td>12.3 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity (phylogenetic) [alpha_phylogenetic]</th>\n", + " <th>qiime2</th>\n", + " <td>72</td>\n", + " <td>0 days 00:01:08</td>\n", + " <td>0 days 00:05:28</td>\n", + " <td>231.0 MB</td>\n", + " <td>13.3 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Apply ANCOM to identify features that differ in abundance. [ancom]</th>\n", + " <th>qiime2</th>\n", + " <td>67</td>\n", + " <td>0 days 00:01:14</td>\n", + " <td>1 days 07:50:45</td>\n", + " <td>244.5 MB</td>\n", + " <td>5.2 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pre-fitted sklearn-based taxonomy classifier [classify_sklearn]</th>\n", + " <th>qiime2</th>\n", + " <td>58</td>\n", + " <td>0 days 00:01:41</td>\n", + " <td>0 days 08:04:39</td>\n", + " <td>938.3 MB</td>\n", + " <td>44.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha rarefaction curves [alpha_rarefaction]</th>\n", + " <th>qiime2</th>\n", + " <td>35</td>\n", + " <td>0 days 00:15:45</td>\n", + " <td>1 days 13:21:15</td>\n", + " <td>206.7 MB</td>\n", + " <td>2.8 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Filter features against reference [filter_features]</th>\n", + " <th>qiime2</th>\n", + " <td>27</td>\n", + " <td>0 days 00:02:07</td>\n", + " <td>0 days 00:18:52</td>\n", + " <td>8.8 GB</td>\n", + " <td>11.1 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Visualize and Interact with Principal Coordinates Analysis Plots [plot]</th>\n", + " <th>qiime2</th>\n", + " <td>26</td>\n", + " <td>0 days 00:01:20</td>\n", + " <td>0 days 00:10:50</td>\n", + " <td>243.3 MB</td>\n", + " <td>25.1 GB</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName \n", + "Filter samples from table [filter_samples] qiime2 371 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 289 \n", + "Rarefy table [rarefy] qiime2 135 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 72 \n", + "Apply ANCOM to identify features that differ in... qiime2 67 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 58 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 35 \n", + "Filter features against reference [filter_featu... qiime2 27 \n", + "Visualize and Interact with Principal Coordinat... qiime2 26 \n", + "\n", + " \\\n", + " min \n", + "cName sName \n", + "Filter samples from table [filter_samples] qiime2 0 days 00:00:57 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 00:01:04 \n", + "Rarefy table [rarefy] qiime2 0 days 00:00:55 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 00:01:08 \n", + "Apply ANCOM to identify features that differ in... qiime2 0 days 00:01:14 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 00:01:41 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 0 days 00:15:45 \n", + "Filter features against reference [filter_featu... qiime2 0 days 00:02:07 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:01:20 \n", + "\n", + " \\\n", + " max \n", + "cName sName \n", + "Filter samples from table [filter_samples] qiime2 0 days 00:24:35 \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 0 days 00:13:55 \n", + "Rarefy table [rarefy] qiime2 0 days 00:35:37 \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 0 days 00:05:28 \n", + "Apply ANCOM to identify features that differ in... qiime2 1 days 07:50:45 \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 0 days 08:04:39 \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 1 days 13:21:15 \n", + "Filter features against reference [filter_featu... qiime2 0 days 00:18:52 \n", + "Visualize and Interact with Principal Coordinat... qiime2 0 days 00:10:50 \n", + "\n", + " MaxRSSRaw \n", + " min max \n", + "cName sName \n", + "Filter samples from table [filter_samples] qiime2 241.2 MB 24.8 GB \n", + "Beta diversity (phylogenetic) [beta_phylogenetic] qiime2 241.2 MB 13.5 GB \n", + "Rarefy table [rarefy] qiime2 79.2 MB 12.3 GB \n", + "Alpha diversity (phylogenetic) [alpha_phylogene... qiime2 231.0 MB 13.3 GB \n", + "Apply ANCOM to identify features that differ in... qiime2 244.5 MB 5.2 GB \n", + "Pre-fitted sklearn-based taxonomy classifier [c... qiime2 938.3 MB 44.4 GB \n", + "Alpha rarefaction curves [alpha_rarefaction] qiime2 206.7 MB 2.8 GB \n", + "Filter features against reference [filter_featu... qiime2 8.8 GB 11.1 GB \n", + "Visualize and Interact with Principal Coordinat... qiime2 243.3 MB 25.1 GB " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "summary = df.groupby(['cName', 'sName'])[\n", + " ['ElapsedRawTime', 'MaxRSSRaw']].agg(['count', 'min', 'max']).copy()\n", + "\n", + "# We are gonna focus on jobs that request more than 4gb or take more than 4hrs.\n", + "summary = summary[(summary[('MaxRSSRaw', 'max')] > 4*m1g) | \n", + " (summary[('ElapsedRawTime', 'max')] > timedelta(hours=4))]\n", + "\n", + "summary.sort_values(('MaxRSSRaw', 'count'), inplace=True, ascending=False)\n", + "\n", + "summary[('MaxRSSRaw', 'min')] = summary[('MaxRSSRaw', 'min')].apply(naturalsize)\n", + "summary[('MaxRSSRaw', 'max')] = summary[('MaxRSSRaw', 'max')].apply(naturalsize)\n", + "summary.drop(columns=[('MaxRSSRaw', 'count')], inplace=True)\n", + "\n", + "_df = summary[summary.index.get_level_values('sName') != 'qiime2']\n", + "print (\"qiita:\", _df.shape[0])\n", + "display(_df)\n", + "\n", + "_df = summary[summary.index.get_level_values('sName') == 'qiime2']\n", + "print (\"qiime2:\", _df.shape[0])\n", + "display(_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optimizing Qiita processing jobs.\n", + "\n", + "As a remider, we can use:\n", + "- 'samples'\n", + "- 'columns'\n", + "- 'input_size'\n", + "- 'extra_info': this is when the current method doesn't provide the required info or we need to update it; this info comes from `job_stats_generation.py`\n", + "\n", + "Note that `COMPLETE_JOBS_RESOURCE_PARAM` and `RELEASE_VALIDATORS_RESOURCE_PARAM` are not in the list but is the most common job; thus optimizing it" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Complete jobs " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " <th colspan=\"2\" halign=\"left\">WaitTime</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th>extra_info</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th rowspan=\"10\" valign=\"top\">complete_job</th>\n", + " <th rowspan=\"10\" valign=\"top\">Qiita</th>\n", + " <th>FASTQ</th>\n", + " <td>87</td>\n", + " <td>0 days 00:00:04</td>\n", + " <td>0 days 02:38:35</td>\n", + " <td>0 Bytes</td>\n", + " <td>122.3 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:30</td>\n", + " </tr>\n", + " <tr>\n", + " <th>per_sample_FASTQ</th>\n", + " <td>893</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 02:27:09</td>\n", + " <td>0 Bytes</td>\n", + " <td>126.9 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:47</td>\n", + " </tr>\n", + " <tr>\n", + " <th>BIOM</th>\n", + " <td>6702</td>\n", + " <td>0 days 00:00:02</td>\n", + " <td>0 days 00:14:07</td>\n", + " <td>0 Bytes</td>\n", + " <td>349.4 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:02:18</td>\n", + " </tr>\n", + " <tr>\n", + " <th>NaN</th>\n", + " <td>1404</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:08:54</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:02:18</td>\n", + " </tr>\n", + " <tr>\n", + " <th>q2_visualization</th>\n", + " <td>2837</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:05:44</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:37</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Demultiplexed</th>\n", + " <td>1565</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:05:39</td>\n", + " <td>0 Bytes</td>\n", + " <td>121.5 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:45</td>\n", + " </tr>\n", + " <tr>\n", + " <th>distance_matrix</th>\n", + " <td>1090</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:03:46</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:44</td>\n", + " </tr>\n", + " <tr>\n", + " <th>alpha_vector,ordination_results,q2_visualization,distance_matrix,BIOM</th>\n", + " <td>91</td>\n", + " <td>0 days 00:00:05</td>\n", + " <td>0 days 00:03:25</td>\n", + " <td>0 Bytes</td>\n", + " <td>121.2 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:29</td>\n", + " </tr>\n", + " <tr>\n", + " <th>ordination_results</th>\n", + " <td>756</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:03:23</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:29</td>\n", + " </tr>\n", + " <tr>\n", + " <th>alpha_vector</th>\n", + " <td>796</td>\n", + " <td>0 days 00:00:03</td>\n", + " <td>0 days 00:03:00</td>\n", + " <td>0 Bytes</td>\n", + " <td>120.7 MB</td>\n", + " <td>0 days 00:00:00</td>\n", + " <td>0 days 00:00:30</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 87 \n", + " per_sample_FASTQ 893 \n", + " BIOM 6702 \n", + " NaN 1404 \n", + " q2_visualization 2837 \n", + " Demultiplexed 1565 \n", + " distance_matrix 1090 \n", + " alpha_vector,ordination_results,q2_visualizatio... 91 \n", + " ordination_results 756 \n", + " alpha_vector 796 \n", + "\n", + " \\\n", + " min \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 0 days 00:00:04 \n", + " per_sample_FASTQ 0 days 00:00:03 \n", + " BIOM 0 days 00:00:02 \n", + " NaN 0 days 00:00:03 \n", + " q2_visualization 0 days 00:00:03 \n", + " Demultiplexed 0 days 00:00:03 \n", + " distance_matrix 0 days 00:00:03 \n", + " alpha_vector,ordination_results,q2_visualizatio... 0 days 00:00:05 \n", + " ordination_results 0 days 00:00:03 \n", + " alpha_vector 0 days 00:00:03 \n", + "\n", + " \\\n", + " max \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 0 days 02:38:35 \n", + " per_sample_FASTQ 0 days 02:27:09 \n", + " BIOM 0 days 00:14:07 \n", + " NaN 0 days 00:08:54 \n", + " q2_visualization 0 days 00:05:44 \n", + " Demultiplexed 0 days 00:05:39 \n", + " distance_matrix 0 days 00:03:46 \n", + " alpha_vector,ordination_results,q2_visualizatio... 0 days 00:03:25 \n", + " ordination_results 0 days 00:03:23 \n", + " alpha_vector 0 days 00:03:00 \n", + "\n", + " MaxRSSRaw \\\n", + " min \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 0 Bytes \n", + " per_sample_FASTQ 0 Bytes \n", + " BIOM 0 Bytes \n", + " NaN 0 Bytes \n", + " q2_visualization 0 Bytes \n", + " Demultiplexed 0 Bytes \n", + " distance_matrix 0 Bytes \n", + " alpha_vector,ordination_results,q2_visualizatio... 0 Bytes \n", + " ordination_results 0 Bytes \n", + " alpha_vector 0 Bytes \n", + "\n", + " \\\n", + " max \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 122.3 MB \n", + " per_sample_FASTQ 126.9 MB \n", + " BIOM 349.4 MB \n", + " NaN 120.7 MB \n", + " q2_visualization 120.7 MB \n", + " Demultiplexed 121.5 MB \n", + " distance_matrix 120.7 MB \n", + " alpha_vector,ordination_results,q2_visualizatio... 121.2 MB \n", + " ordination_results 120.7 MB \n", + " alpha_vector 120.7 MB \n", + "\n", + " WaitTime \\\n", + " min \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 0 days 00:00:00 \n", + " per_sample_FASTQ 0 days 00:00:00 \n", + " BIOM 0 days 00:00:00 \n", + " NaN 0 days 00:00:00 \n", + " q2_visualization 0 days 00:00:00 \n", + " Demultiplexed 0 days 00:00:00 \n", + " distance_matrix 0 days 00:00:00 \n", + " alpha_vector,ordination_results,q2_visualizatio... 0 days 00:00:00 \n", + " ordination_results 0 days 00:00:00 \n", + " alpha_vector 0 days 00:00:00 \n", + "\n", + " \n", + " max \n", + "cName sName extra_info \n", + "complete_job Qiita FASTQ 0 days 00:00:30 \n", + " per_sample_FASTQ 0 days 00:00:47 \n", + " BIOM 0 days 00:02:18 \n", + " NaN 0 days 00:02:18 \n", + " q2_visualization 0 days 00:00:37 \n", + " Demultiplexed 0 days 00:00:45 \n", + " distance_matrix 0 days 00:00:44 \n", + " alpha_vector,ordination_results,q2_visualizatio... 0 days 00:00:29 \n", + " ordination_results 0 days 00:00:29 \n", + " alpha_vector 0 days 00:00:30 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# COMPLETE_JOBS_RESOURCE_PARAM\n", + "cmd = 'complete_job'\n", + "summary = df[df.cName == cmd].groupby(\n", + " ['cName', 'sName', 'extra_info'], dropna=False)[\n", + " ['ElapsedRawTime', 'MaxRSSRaw', 'WaitTime']].agg(['count', 'min', 'max']).copy()\n", + "summary[('MaxRSSRaw', 'min')] = summary[('MaxRSSRaw', 'min')].apply(naturalsize)\n", + "summary[('MaxRSSRaw', 'max')] = summary[('MaxRSSRaw', 'max')].apply(naturalsize)\n", + "summary.drop(columns=[('MaxRSSRaw', 'count')], inplace=True)\n", + "summary.drop(columns=[('WaitTime', 'count')], inplace=True)\n", + "summary.sort_values(('ElapsedRawTime', 'max'), inplace=True, ascending=False)\n", + "\n", + "display(summary.head(10))\n", + "\n", + "# The current allocation for all complete jobs is (from 072023)\n", + "# COMPLETE_JOBS_RESOURCE_PARAM |\n", + "# default | -p qiita -N 1 -n 1 --mem 500mb --time 00:20:00 --qos=qiita_prio\n", + "# per_sample_FASTQ | -p qiita -N 1 -n 1 --mem 200mb --time 15:00:00 --qos=qiita_prio\n", + "# FASTQ | -p qiita -N 1 -n 1 --mem 200mb --time 1:30:00 --qos=qiita_prio\n", + "# job-output-folder | -p qiita -N 1 -n 1 --mem 200mb --time 1:00:00 --qos=qiita_prio\n", + "\n", + "# No changes needed! " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Release validator jobs" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "42\n" + ] + }, + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th>extra_info</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th rowspan=\"11\" valign=\"top\">release_validators</th>\n", + " <th rowspan=\"11\" valign=\"top\">Qiita</th>\n", + " <th>Core diversity metrics (non-phylogenetic) [core_metrics]</th>\n", + " <td>48</td>\n", + " <td>0 days 00:03:58</td>\n", + " <td>6 days 09:07:42</td>\n", + " <td>110.1 MB</td>\n", + " <td>124.7 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Core diversity metrics (phylogenetic and non-phylogenetic) [core_metrics_phylogenetic]</th>\n", + " <td>43</td>\n", + " <td>0 days 00:05:45</td>\n", + " <td>2 days 07:53:10</td>\n", + " <td>110.9 MB</td>\n", + " <td>125.3 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity [alpha]</th>\n", + " <td>174</td>\n", + " <td>0 days 00:01:26</td>\n", + " <td>1 days 16:14:27</td>\n", + " <td>4.5 MB</td>\n", + " <td>124.1 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Woltka v0.1.4</th>\n", + " <td>493</td>\n", + " <td>0 days 00:00:14</td>\n", + " <td>1 days 02:56:54</td>\n", + " <td>0 Bytes</td>\n", + " <td>130.2 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Deblur 2021.09</th>\n", + " <td>490</td>\n", + " <td>0 days 00:00:19</td>\n", + " <td>1 days 02:45:59</td>\n", + " <td>4.6 MB</td>\n", + " <td>123.5 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Trimming</th>\n", + " <td>518</td>\n", + " <td>0 days 00:00:21</td>\n", + " <td>0 days 22:24:10</td>\n", + " <td>119.5 MB</td>\n", + " <td>124.7 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity (phylogenetic) [beta_phylogenetic]</th>\n", + " <td>289</td>\n", + " <td>0 days 00:00:06</td>\n", + " <td>0 days 17:26:18</td>\n", + " <td>0 Bytes</td>\n", + " <td>123.2 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Alpha diversity (phylogenetic) [alpha_phylogenetic]</th>\n", + " <td>73</td>\n", + " <td>0 days 00:01:39</td>\n", + " <td>0 days 17:17:40</td>\n", + " <td>78.3 MB</td>\n", + " <td>123.0 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Beta diversity [beta]</th>\n", + " <td>109</td>\n", + " <td>0 days 00:00:46</td>\n", + " <td>0 days 16:53:16</td>\n", + " <td>119.4 MB</td>\n", + " <td>123.1 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Adapter and host filtering</th>\n", + " <td>105</td>\n", + " <td>0 days 00:00:45</td>\n", + " <td>0 days 06:09:46</td>\n", + " <td>120.3 MB</td>\n", + " <td>175.4 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Pick closed-reference OTUs</th>\n", + " <td>517</td>\n", + " <td>0 days 00:00:09</td>\n", + " <td>0 days 05:40:20</td>\n", + " <td>0 Bytes</td>\n", + " <td>123.3 MB</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName extra_info \n", + "release_validators Qiita Core diversity metrics (non-phylogenetic) [core... 48 \n", + " Core diversity metrics (phylogenetic and non-ph... 43 \n", + " Alpha diversity [alpha] 174 \n", + " Woltka v0.1.4 493 \n", + " Deblur 2021.09 490 \n", + " Trimming 518 \n", + " Beta diversity (phylogenetic) [beta_phylogenetic] 289 \n", + " Alpha diversity (phylogenetic) [alpha_phylogene... 73 \n", + " Beta diversity [beta] 109 \n", + " Adapter and host filtering 105 \n", + " Pick closed-reference OTUs 517 \n", + "\n", + " \\\n", + " min \n", + "cName sName extra_info \n", + "release_validators Qiita Core diversity metrics (non-phylogenetic) [core... 0 days 00:03:58 \n", + " Core diversity metrics (phylogenetic and non-ph... 0 days 00:05:45 \n", + " Alpha diversity [alpha] 0 days 00:01:26 \n", + " Woltka v0.1.4 0 days 00:00:14 \n", + " Deblur 2021.09 0 days 00:00:19 \n", + " Trimming 0 days 00:00:21 \n", + " Beta diversity (phylogenetic) [beta_phylogenetic] 0 days 00:00:06 \n", + " Alpha diversity (phylogenetic) [alpha_phylogene... 0 days 00:01:39 \n", + " Beta diversity [beta] 0 days 00:00:46 \n", + " Adapter and host filtering 0 days 00:00:45 \n", + " Pick closed-reference OTUs 0 days 00:00:09 \n", + "\n", + " \\\n", + " max \n", + "cName sName extra_info \n", + "release_validators Qiita Core diversity metrics (non-phylogenetic) [core... 6 days 09:07:42 \n", + " Core diversity metrics (phylogenetic and non-ph... 2 days 07:53:10 \n", + " Alpha diversity [alpha] 1 days 16:14:27 \n", + " Woltka v0.1.4 1 days 02:56:54 \n", + " Deblur 2021.09 1 days 02:45:59 \n", + " Trimming 0 days 22:24:10 \n", + " Beta diversity (phylogenetic) [beta_phylogenetic] 0 days 17:26:18 \n", + " Alpha diversity (phylogenetic) [alpha_phylogene... 0 days 17:17:40 \n", + " Beta diversity [beta] 0 days 16:53:16 \n", + " Adapter and host filtering 0 days 06:09:46 \n", + " Pick closed-reference OTUs 0 days 05:40:20 \n", + "\n", + " MaxRSSRaw \\\n", + " min \n", + "cName sName extra_info \n", + "release_validators Qiita Core diversity metrics (non-phylogenetic) [core... 110.1 MB \n", + " Core diversity metrics (phylogenetic and non-ph... 110.9 MB \n", + " Alpha diversity [alpha] 4.5 MB \n", + " Woltka v0.1.4 0 Bytes \n", + " Deblur 2021.09 4.6 MB \n", + " Trimming 119.5 MB \n", + " Beta diversity (phylogenetic) [beta_phylogenetic] 0 Bytes \n", + " Alpha diversity (phylogenetic) [alpha_phylogene... 78.3 MB \n", + " Beta diversity [beta] 119.4 MB \n", + " Adapter and host filtering 120.3 MB \n", + " Pick closed-reference OTUs 0 Bytes \n", + "\n", + " \n", + " max \n", + "cName sName extra_info \n", + "release_validators Qiita Core diversity metrics (non-phylogenetic) [core... 124.7 MB \n", + " Core diversity metrics (phylogenetic and non-ph... 125.3 MB \n", + " Alpha diversity [alpha] 124.1 MB \n", + " Woltka v0.1.4 130.2 MB \n", + " Deblur 2021.09 123.5 MB \n", + " Trimming 124.7 MB \n", + " Beta diversity (phylogenetic) [beta_phylogenetic] 123.2 MB \n", + " Alpha diversity (phylogenetic) [alpha_phylogene... 123.0 MB \n", + " Beta diversity [beta] 123.1 MB \n", + " Adapter and host filtering 175.4 MB \n", + " Pick closed-reference OTUs 123.3 MB " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# RELEASE_VALIDATORS_RESOURCE_PARAM\n", + "cmd = 'release_validators'\n", + "_df = df[(df.cName == cmd) & (df.updated == 'after')].copy()\n", + "summary = _df.groupby(\n", + " ['cName', 'sName', 'extra_info'], dropna=False)[\n", + " ['ElapsedRawTime', 'MaxRSSRaw']].agg(['count', 'min', 'max']).copy()\n", + "summary[('MaxRSSRaw', 'min')] = summary[('MaxRSSRaw', 'min')].apply(naturalsize)\n", + "summary[('MaxRSSRaw', 'max')] = summary[('MaxRSSRaw', 'max')].apply(naturalsize)\n", + "summary.sort_values(('ElapsedRawTime', 'max'), inplace=True, ascending=False)\n", + "summary.drop(columns=[('MaxRSSRaw', 'count')], inplace=True)\n", + "\n", + "print(summary.shape[0])\n", + "display(summary.head(11))\n", + "\n", + "# The current allocations are:\n", + "# default | -p qiita -N 1 -n 1 --mem 200mb --time 4:00:00\n", + "# Core diversity metrics (non-phylogenetic) [core_metrics]\n", + "# -p qiita -N 1 -n 1 --mem 150mb --time 6-15:00:00\n", + "# Core diversity metrics (phylogenetic and non-phylogenetic) [core_metrics_phylogenetic]\n", + "# -p qiita -N 1 -n 1 --mem 150mb --time 2-9:00:00\n", + "# Beta diversity (phylogenetic) [beta_phylogenetic] | -p qiita -N 1 -n 1 --mem 150mb --time 18:00:00\n", + "# Alpha diversity (phylogenetic) [alpha_phylogenetic] | -p qiita -N 1 -n 1 --mem 150mb --time 19:00:00\n", + "# Beta diversity [beta] | -p qiita -N 1 -n 1 --mem 150mb --time 18:00:00\n", + "# Alpha diversity [alpha] | -p qiita -N 1 -n 1 --mem 150mb --time 16:00:00\n", + "# Deblur 2021.09 | -p qiita -N 1 -n 1 --mem 150mb --time 11:00:00\n", + "# Adapter and host filtering | -p qiita -N 1 -n 1 --mem 200mb --time 6:30:00\n", + "# Trimming | -p qiita -N 1 -n 1 --mem 150mb --time 5:00:00\n", + "\n", + "# *** RESOURCE ALLOCATION ***\n", + "# UPDATE qiita.processing_job_resource_allocation set \n", + "# allocation = '-p qiita -N 1 -n 1 --mem 150mb --time 1-17:00:00'\n", + "# WHERE job_type = 'RELEASE_VALIDATORS_RESOURCE_PARAM' and \n", + "# name = 'Alpha diversity [alpha]';" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Validate jobs \n", + "\n", + "These are based on the artifact_type they are validating, which is part of the job submission and is being\n", + "added as part of the software name here" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "<div>\n", + "<style scoped>\n", + " .dataframe tbody tr th:only-of-type {\n", + " vertical-align: middle;\n", + " }\n", + "\n", + " .dataframe tbody tr th {\n", + " vertical-align: top;\n", + " }\n", + "\n", + " .dataframe thead tr th {\n", + " text-align: left;\n", + " }\n", + "\n", + " .dataframe thead tr:last-of-type th {\n", + " text-align: right;\n", + " }\n", + "</style>\n", + "<table border=\"1\" class=\"dataframe\">\n", + " <thead>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th colspan=\"3\" halign=\"left\">ElapsedRawTime</th>\n", + " <th colspan=\"2\" halign=\"left\">MaxRSSRaw</th>\n", + " </tr>\n", + " <tr>\n", + " <th></th>\n", + " <th></th>\n", + " <th>count</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " <th>min</th>\n", + " <th>max</th>\n", + " </tr>\n", + " <tr>\n", + " <th>cName</th>\n", + " <th>sName</th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " <th></th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th rowspan=\"7\" valign=\"top\">Validate</th>\n", + " <th>Sequencing Data Type - Demultiplexed</th>\n", + " <td>765</td>\n", + " <td>0 days 00:00:36</td>\n", + " <td>1 days 16:56:48</td>\n", + " <td>83.4 MB</td>\n", + " <td>15.6 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>BIOM type - BIOM</th>\n", + " <td>4503</td>\n", + " <td>0 days 00:01:01</td>\n", + " <td>0 days 05:58:41</td>\n", + " <td>125.8 MB</td>\n", + " <td>329.2 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Diversity types - alpha_vector</th>\n", + " <td>543</td>\n", + " <td>0 days 00:01:15</td>\n", + " <td>0 days 05:00:08</td>\n", + " <td>186.8 MB</td>\n", + " <td>9.4 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - per_sample_FASTQ</th>\n", + " <td>750</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 04:12:47</td>\n", + " <td>77.4 MB</td>\n", + " <td>88.7 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Sequencing Data Type - FASTQ</th>\n", + " <td>87</td>\n", + " <td>0 days 00:00:41</td>\n", + " <td>0 days 01:50:44</td>\n", + " <td>77.9 MB</td>\n", + " <td>84.4 MB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Diversity types - ordination_results</th>\n", + " <td>502</td>\n", + " <td>0 days 00:00:37</td>\n", + " <td>0 days 00:12:54</td>\n", + " <td>74.8 MB</td>\n", + " <td>2.1 GB</td>\n", + " </tr>\n", + " <tr>\n", + " <th>Diversity types - distance_matrix</th>\n", + " <td>669</td>\n", + " <td>0 days 00:00:38</td>\n", + " <td>0 days 00:08:06</td>\n", + " <td>1.6 MB</td>\n", + " <td>5.4 GB</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " ElapsedRawTime \\\n", + " count \n", + "cName sName \n", + "Validate Sequencing Data Type - Demultiplexed 765 \n", + " BIOM type - BIOM 4503 \n", + " Diversity types - alpha_vector 543 \n", + " Sequencing Data Type - per_sample_FASTQ 750 \n", + " Sequencing Data Type - FASTQ 87 \n", + " Diversity types - ordination_results 502 \n", + " Diversity types - distance_matrix 669 \n", + "\n", + " \\\n", + " min \n", + "cName sName \n", + "Validate Sequencing Data Type - Demultiplexed 0 days 00:00:36 \n", + " BIOM type - BIOM 0 days 00:01:01 \n", + " Diversity types - alpha_vector 0 days 00:01:15 \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 00:00:38 \n", + " Sequencing Data Type - FASTQ 0 days 00:00:41 \n", + " Diversity types - ordination_results 0 days 00:00:37 \n", + " Diversity types - distance_matrix 0 days 00:00:38 \n", + "\n", + " MaxRSSRaw \\\n", + " max min \n", + "cName sName \n", + "Validate Sequencing Data Type - Demultiplexed 1 days 16:56:48 83.4 MB \n", + " BIOM type - BIOM 0 days 05:58:41 125.8 MB \n", + " Diversity types - alpha_vector 0 days 05:00:08 186.8 MB \n", + " Sequencing Data Type - per_sample_FASTQ 0 days 04:12:47 77.4 MB \n", + " Sequencing Data Type - FASTQ 0 days 01:50:44 77.9 MB \n", + " Diversity types - ordination_results 0 days 00:12:54 74.8 MB \n", + " Diversity types - distance_matrix 0 days 00:08:06 1.6 MB \n", + "\n", + " \n", + " max \n", + "cName sName \n", + "Validate Sequencing Data Type - Demultiplexed 15.6 GB \n", + " BIOM type - BIOM 329.2 GB \n", + " Diversity types - alpha_vector 9.4 GB \n", + " Sequencing Data Type - per_sample_FASTQ 88.7 MB \n", + " Sequencing Data Type - FASTQ 84.4 MB \n", + " Diversity types - ordination_results 2.1 GB \n", + " Diversity types - distance_matrix 5.4 GB " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# RELEASE_VALIDATORS_RESOURCE_PARAM\n", + "cmd = 'Validate'\n", + "# & (df.updated == 'after')\n", + "_df = df[(df.cName == cmd)].copy()\n", + "summary = _df.groupby(\n", + " ['cName', 'sName'], dropna=False)[\n", + " ['ElapsedRawTime', 'MaxRSSRaw']].agg(['count', 'min', 'max']).copy()\n", + "\n", + "summary = summary[(summary[('MaxRSSRaw', 'max')] > 1*m1g) | \n", + " (summary[('ElapsedRawTime', 'max')] > timedelta(hours=1))]\n", + "\n", + "summary[('MaxRSSRaw', 'min')] = summary[('MaxRSSRaw', 'min')].apply(naturalsize)\n", + "summary[('MaxRSSRaw', 'max')] = summary[('MaxRSSRaw', 'max')].apply(naturalsize)\n", + "summary.sort_values([('ElapsedRawTime', 'max'), ('MaxRSSRaw', 'max')], inplace=True, ascending=False)\n", + "summary.drop(columns=[('MaxRSSRaw', 'count')], inplace=True)\n", + "\n", + "display(summary)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "BIOM type - BIOM 4\n", + "Name: sName, dtype: int64" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "Sequencing Data Type - Demultiplexed 6\n", + "Name: sName, dtype: int64" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Validate'\n", + "_df = df[df.cName == cname].copy()\n", + "# fine to dropna as that means that the study or the analysis \n", + "# don't exist anymore AKA not useful\n", + "_df.dropna(subset=['samples', 'columns'], inplace=True)\n", + "\n", + "col_name = 'samples * columns'\n", + "_df[col_name] = _df.samples * _df['columns']\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = m1g + (np.log(x_plot)*m1g*1.5) + (x_plot*3500)\n", + "_df['cMaxRSSRaw'] = m1g + (np.log(_df[col_name])*m1g*1.5) + (_df[col_name]*3500)\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures_df = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures_df.shape[0]\n", + "display(failures_df.sName.value_counts())\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 600 + (np.log(x_plot)*3000)\n", + "_df['cElapsedRaw'] = 600 + (np.log(_df[col_name])*3000)\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures_df = _df[_df.ElapsedRaw > _df.cElapsedRaw]\n", + "failures = failures_df.shape[0]\n", + "display(failures_df.sName.value_counts())\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "col_name = 'samples * columns'\n", + "_df[col_name] = _df.samples * _df['columns']\n", + "\n", + "# Current allocation:\n", + "# '-p qiita -N 1 -n 1 '\n", + "# || '--mem (2**30)+(nlog({samples}*{columns})*(2**30)*1.5)+({samples}*{columns}*3500) '\n", + "# || '--time 600+(nlog({samples}*{columns})*3000)' \n", + "# \n", + "\n", + "# No changes needed! \n", + "\n", + "# Note, in this iterations there are more failures than the last time but\n", + "# as far as I can tell, the failures are due to EBI-ENA loaded studies, \n", + "# we should consider lowering the max number of samples per-preparation\n", + "# that qebil loads from 250 to 150." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### build_analysis_files" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAFBCAYAAAALyLn8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAAC1yUlEQVR4nOydeZzM9f/An585d/ayi91FqESIEIp0oSLHktVBh6ODipQOSaQU0aWo6PgWlUK1kXQQPx2ULEVqJfe6drH3zuycn98fn52Pmd2Z2dl7Z/f9fDzYmc98Pu/P6zMzn9e83u/XJcmyLCMQCAQCgUAgqFNoaloAgUAgEAgEAkHlI4w8gUAgEAgEgjqIMPIEAoFAIBAI6iDCyBMIBAKBQCCogwgjTyAQCAQCgaAOIow8gUAgEAgEgjqIMPIEbN26lcGDB5fpmHvvvZd9+/YFPHb8+PEkJydXhohBs3DhQmbNmlWuY93XVB5OnDjB4MGDGTJkCCkpKUyaNAmAqVOn8r///a9cYwoEguAQOkxB6DBBcXQ1LYAgNHn33XcBOHPmTA1LUnm4r6k8bN26lcaNG7NkyRIAunfvXklSCQSCqkDoMG+EDqubiJU8AQBms5lJkyYxdOhQ7rzzTg4ePFhiBuf5vG/fvvz1119eY6SnpzN27FgGDRrEvffey6lTp4I675QpU7jlllvo378/SUlJHDhwAIA777yTV155hdtvv52+ffvy+OOP43K5AFi8eDE33XQTiYmJXHfddaxfv95r3O3bt3PNNdeo+1ssFi6//HLOnDnDJ598wpAhQxg+fDi33XabOvN1X1NBQYH6XgwbNozp06er4/jit99+47XXXuOvv/7izjvv9LsysH//fu666y6SkpIYOnQon3/+OUCZzycQCEoidJjQYYKSCCNPAChL9WPGjGH16tUMHjyYKVOmlHmMWbNm0blzZ9auXcv06dM5ePBgqcf89NNPREdHs3LlSr7//ns6duzIsmXL1NePHDnCRx99xFdffcVvv/3G77//zrFjx9iyZQsff/wxa9asYfLkySxYsMBr3G7duhETE8PPP/8MwNq1a7n88suJiYlhzpw5vPfee3zxxRfccsstbN++3evY9evXU1BQwOrVq1UllpaW5vcaevbsyaRJk+jevTsfffSRz30cDgeTJk3i0UcfJTk5mY8//pj333+fP//8s8znEwgEJRE67CxChwncCHetAIC2bdvStWtXAIYNG8YzzzxDfHx8mcbYsmULTzzxBADnnnsuPXr0KPWYG264gRYtWvDRRx9x+PBhfv/9dy655BL19T59+qDRaIiMjOTcc88lJyeHnj17Mm/ePNasWcPhw4fZuXMnBQUFJca+/fbbWblyJddccw0rVqxgypQpaLVabrjhBkaMGEHv3r254oorSExM9DquW7duzJ8/nzvvvJNevXoxevRozj333DK9F8U5dOgQR44cYdq0aeq2wsJC/vnnH6666qpKP59AUN8QOuwsQocJ3IiVPAEAGo33V0GSJKKjo/FsbWy32wOOIUmS1/46XelziE8++YSnnnqKsLAwEhMTGTx4sNcYYWFhJcb/+++/GTFiBPn5+VxxxRXcc889PsdOTExk+/bt/Pbbb5jNZi699FIAXn75ZRYvXkzLli159913mThxotdxLVq0YP369YwbN478/HzGjh3Ld999V+q1BMLpdBIdHc3q1avVfytXrmT48OFVcj6BoL4hdNhZhA4TuBFGngCAf//9l9TUVABWrFhBt27diI2NZffu3QBkZmaSkpIScIyrrrqKFStWAHD8+HG2bt1a6nl/+eUXhg0bxs0338z555/Pxo0bcTqdAY/Ztm0bHTt2ZOzYsVx22WVs2LDB5zEmk4khQ4Ywbdo0RowYoV7HNddcQ0xMDGPGjOHhhx/m33//9Truk08+4cknn+TKK6/k8ccf58orr+S///4r9VoCcf7552M0Glm9ejVwNpNt9+7dVXI+gaC+IXTYWYQOE7gR7loBAK1ateKNN94gLS2NRo0aMXfuXDQaDY899hj9+/enefPmXHbZZQHHmDlzJk8++SQDBgygSZMmtGvXrtTz3nXXXTz99NMkJyej1Wrp0KEDe/fuDXjM4MGDWbduHQMHDkSv13P55ZeTk5NDfn5+iX2TkpJYuXIlN954IwANGzbk/vvvZ8yYMYSFhaHVann++ee9jrnxxhv5/fffGThwICaTiWbNmjFq1KhSryUQBoOBt956i9mzZ/Pee+/hcDh46KGH6NatG+3bt6/08wkE9Q2hw84idJjAjSR7risLBHUIWZZ59913OXbsGM8++2xNiyMQCARlQugwQUURK3mCKue2227zGVQMsGzZMiIjI6vkvNdeey0NGzZk0aJFFR7rwIEDTJ48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Dq+++iq9evUqcezu3bs5evSoGv9y+vRpnE4nVqvVayaZmJjI8OHDGTNmDPn5+Vx44YUVlluWZebNm8f333/PkiVLShig5aVp06Zewcfp6enqbPeSSy7h999/p0+fPgDcc889ap/Ltm3blpqYIhDUBqpD7zRt2pRTp06pz+12O1lZWSQkJJRrv9Lwp8e+++47rrzySiIjI2nYsCHXXXcd//zzT5UaecV77noaTS+99BK7du1i+PDh9OjRA4fDoe6bmJjIq6++WqI3ri9iY2PR6/UMHToUjUZD48aN6d27N3/88UcJI8/fezBgwICg3/ucnBwmTZqELMusWLGiQquh9RkRk1dPiYyMpEuXLnzwwQeAkk02cuRINmzYEHRfxfKwY8cOJk6cyLx583waeMuWLWPlypU+DTxQjJ4ff/xRbZA9YsQIBg4c6GXgASQkJNC2bVumTZvG0KFDK0X22bNns23bNr744otKM/BAiVnauHEjZ86cURWaW2nef//9fPvtt6xatUr9DJxOJ9988w1Qsim7QFCbqUq907lzZ7Kzs9mxYwegJEd06dKF6Ojocu0XiEB67NNPP+Xjjz8GlASCDRs20LNnz6DHLg+9evVi8+bNaoKHZzbrL7/8wujRo7nxxhtp1KgRW7ZsUd9XX71x/WEwGOjTp4/qUnW7bi+++OIS+/p7D4J97202G3fddRfNmzfn/fffFwZeBRArefWYl19+meeee47ExERsNhuDBw9myJAhnD59Oqi+ip9++im7d+8uYWAFYuHChciyzCuvvMIrr7wCQPPmzZk/fz6vv/46UVFRagwKwA033MD999+vunZ8xaf5Y+jQoUybNi1gLEuwnDhxgo8//phmzZp5BUCPGjWqXDP0DRs2sHz5ct59913atWvHhAkTGD16NHa7nc6dO3PvvfcCSnzeihUreOONN/jf//6HVqvFYrHQoUMHVq5cKVy1gpCjqvSOXq/njTfeYNasWVgsFmJiYtQM9PT0dMaNG8c777xDQkKC3/0C4Xlef3rszTffZO7cuTz99NMkJiYCcMstt5SIK6xs2rZty+OPP87o0aOJiIigU6dO6msTJkzgxRdf5K233kKr1dK1a1eOHDmivl68N66nbirOc889x+zZsxk4cCBOp5PExERuuOEGQEm86NixIyNHjgz4HgTzGW3dupXdu3djs9m89OuL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G4YNG1YiHd5utzNhwgQmTJjA119/zXPPPcecOXOCLq7rTrlfsWIF69at4+jRo2zatInbb7+djh07MmXKFK6//nreeecdtFotycnJfPXVV8THx/Pyyy9js9l46KGHmDp1KqtWraJHjx5eN827776rfpmL87///c+rrZAvTpw4QdOmTdXnxVuF+XIDXXjhhT7dJMFSUFBAjx49WLBgAZ9//jknTpxQyyvcc889HDt2jKuuuorevXszaNAg2rVrF7DNT3EmTpzI6NGjS9zUKSkp9OrVy2fNvHHjxhEZGVnuaxKUn/p4fwa670aOHKmWPbnkkkvo0KEDcLYtmLsUR6dOnXjhhRe87gs3s2fPVtuL/fvvv3z44Yc899xzJfYbOXIkEydOJCwsLOD79Nlnn+FwOLjlllu8the/L5s0aUJ+fj4FBQVIkoROp+Oxxx5j8ODBXHbZZZx//vkBxzt48CBxcXFMmzaNpKQkxo4dW6IG4I8//siJEycq3K7wuuuuY9q0aaph4ItAn6+/76fJZOLGG2/ks88+AxQj4+DBg2qhdl+4y9W0bt3aa7vRaOTmm29Wn69YsQKz2UyXLl0A7+/X8OHD1cLZ7naSV111VUDdmZCQwOrVq9Uiy3q9nr/++otrrrmGlStXqj3SIbjfk0C63d/38MiRI8TFxfHBBx8wYsQIkpKS+OeffzCZTDRv3lw1CGVZ5oUXXqBv377qpEev1/Pyyy9z/fXX07hxY7VjjE6n5Mped911PPjgg9x7772lGnkiuzaE+fXXX7nyyitVpTpmzBj1tQYNGrB8+XLS0tLYunUrERERXsfu3bsXjUajftE6duyotssKhscff5zNmzfz7rvvcujQITIyMjCbzSX227RpE3l5eWzZsgVQfrwaNWrE3r170el0XH755QAMHjzYq99iRZHL0Cpszpw5bN26FZfLhcViKVe8Eiizc88fvvHjx/Pggw/y1FNPMWvWLK644goeeeQRTp8+zdixY7nkkksqpcVS8ev57bffeOGFFwDlB3TmzJkBFbGgaqiP92eg+84XgdqCBSIvL48pU6bwyiuvqKvXZeXvv//m008/ZdmyZSVe83dfel7Lyy+/zLPPPsukSZN48803ufbaa/2O53A4+PHHH/nwww/p3LkzP/zwA+PGjeP//u//1B/2pUuXMm7cuHK1VysrgT7fSy65xO/387bbbuOOO+5g8uTJrFixgptuuqnC8r7zzjt8+OGHvPfeewGN8uLtJMuqOy+++GI2b97MTz/9xPjx4/nhhx+CLoDtT7dPmjTJ7/fQbrdz9OhRIiMjWb58OYcPH+b222/n3HPPpWPHjoDS0m/q1KmcPHmyRIzfY489xkMPPcSMGTN45pln1HqCkiTxww8/kJaWxu23384FF1ygfo6+EEZeCKPVar1+3AsLCzl27BhpaWnMnj2bsWPHcu2119KqVSvVZeLvWFBu/FatWnlts9lsPs/9yCOP4HQ6GTBgAL179+bEiRN+A6ynTZumuikKCgqwWq0+93fPUiqD4q2LfLUKc7c6mzZtGqAENldkJW/jxo1ERUWprYFkWVavaf369Xz11VdoNBri4+O54YYb2Lp1KwMHDqxwi6WuXbt6Bfv27NlTDWK+8847sVqt5b4mQfmpj/dnoPuuOIHaG5bGzz//TF5eHo8++iigrCBu3ryZ/Pz8oAumr1q1ioKCArXTQ0ZGBo899hhTpkyhadOm7Ny50+s6GjRoQHh4OD///DMXXnghCQkJREREMGjQINatW0deXp7f8eLj42nVqpXaM/a6665j+vTppKWlccEFF5CZmcnOnTt54403yvQ+lJfibdDg7Oe7adMmv9/P888/n7Zt27JhwwbWrFmjruqVB5vNxtSpU9m3bx/Lly+nefPmPveT/bSTDLY9XXp6Onv37uWqq64C4OqrryYyMpIjR46oxlZp+NPtgb6HSUlJAOrfc889l65du7Jr1y41POG+++7jggsu4MMPP1QN3O3bt9OwYUPOP/989Ho9w4YN4/nnn8dms7F+/XoGDBiARqOhRYsW9OrVi9TU1IBGnnDXhjA9evTg119/VTOKli9fzksvvcTmzZvp06cPt912GxdffDE//PBDCddAq1atkCSJzZs3A8qsdvTo0bhcLho2bKhm+qxfv97nuX/55RcmTJjAwIEDkSSJnTt3qufQarU4HA4ArrzySpYtW4bNZsPlcjFjxgxeffVVLrzwQmRZVrODNmzYQE5OTqW9N9deey1fffUVZrMZm81GcnKyGoP36KOP8vbbb7Np0yZV0VmtVtavX1+hNmEnT55k3rx5FBYW4nQ6WbJkCQMHDgTgoosu4ttvvwWU2dvPP/9M586dK6XFUr9+/QgPD2f27Nle8Xc7d+4kLS2tWlYGBCWpj/dnoPvOk0BtwYJh4MCBbNy4UW1v2LdvX8aMGVOmjjhPPfUU33//vTqG21V97bXXcuWVV7Jz5041C3P58uXqSs63337Lm2++iSzL2Gw2vv32W3r27BlwvKuvvppjx46pGbXbtm1DkiTVsNmxYwcXX3xxuVcly0qgz7e07+dtt93Giy++SOfOncvc79cTd8ZyIAMP/LeTLEuLtMmTJ3P48GFAmVw4HA4uuOCCoGX1p9sDfQ9btGhBhw4d1BZzp0+f5o8//qBjx45kZ2dzxx130K9fP+bPn++1gun2xDgcDlwuF2vWrKFHjx4YDAZee+011q5dCyjG69atWwP2GwaxkhfSuFvZuBvWx8XFMWfOHPLz83nsscdITExEq9XSvXt31q1b57W8bTAYWLhwIXPmzOHFF19Er9ezcOFCDAYD06dPZ9asWURHR9OrVy/i4uJKnHvy5MlMmDCBBg0aYDKZuPTSS9VWOX369GHevHnY7XYeeOAB5s2bx7Bhw3A6nbRv356pU6ei1+t58803eeaZZ3j11Vdp3749jRo1Use/9957GTFihN+4PF94th3q27cve/fu5eabb8Zut3PttdeqbXvat2/P0qVLefPNN3nllVfQaDTYbDa6du3KypUry/NRADBixAjS0tLUa+3RowcTJkwAYN68ecyaNYtVq1ah0WgYMGCAWt4g2FZM/tDpdLz33nu899573HHHHciyTGFhIU2bNmXKlCk+f2QFVU99vD8D3XfBtgULhGfrrPIydOhQnn/+eZ89V900atSIF154gUmTJmG322nZsqV6X06dOpWZM2eSmJiIJElce+21jBo1KuA54+LiePPNN3n22WexWCzq52s0GgE4dOgQ55xzTrmvqawE+nxHjBjh9/up0Wjo06cP06dPV1csg9VTnmzfvp3/+7//47zzzvP6LB977DGuuuoq9ft10UUXBWwnGYzubNGiBbNnz+bBBx9EkiSio6NZvHixGufnD8/vayDdHgi3fMuXL8flcjFhwgQ6derEokWLOHHiBOvXr/eaqC1ZsoR7772XOXPmMHToUDQaDV27dlVXCt3jvffee2g0Gh5//PGA32MQxZAFgqC48847eeGFF2jevDlTp05l2LBh9OjRo6bFEggE9YTa0n5xx44dzJgxg6+//loNKXj88ceZNm2aV0axoHYgVvIEAoFAIBCU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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'build_analysis_files'\n", + "_df = df[df.cName == cname].copy()\n", + "\n", + "# convert extra_info, which is the same as input_size but counting only biom\n", + "\n", + "col_name = 'input_size'\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = m1g + (x_plot*160)\n", + "_df['cMaxRSSRaw'] = m1g + (_df[col_name]*160)\n", + "failures_df = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures_df.shape[0]\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "col_name = 'input_size + columns'\n", + "_df[col_name] = _df['input_size'] + _df['columns']\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 1300 + (x_plot/30000)\n", + "_df['cElapsedRaw'] = 1300 + (_df[col_name]/30000)\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures_df = _df[_df.ElapsedRaw > _df.cElapsedRaw]\n", + "failures = failures_df.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# Current allocation:\n", + "# '-p qiita -N 1 -n 1 '\n", + "# || '--mem (2**30)+({input_size}*160)'\n", + "# || '--time 1300+(({input_size}+{columns})/30000)'\n", + "\n", + "# No changes needed! \n", + "\n", + "# => NOTES from 072023\n", + "# the jobs outside due to\n", + "# - memory are due to odd combinations of selections\n", + "# - walltime are because they include waiting for validators\n", + "\n", + "# The spike on resources might be the number of tips or filtering based \n", + "# on the deblur tree" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "#### Testing values here \n", + "# (let's ignore this block for now but it will be important in the next round)?\n", + "\n", + "# _df = df[\n", + "# (df.cName == cname)\n", + "# & (df.updated == 'after')\n", + "# ].copy()\n", + "# col_name = 'input_size'\n", + "# x_plot = np.array(sorted(_df[col_name].unique()))\n", + "# _df['cMaxRSSRaw'] = m1g + (_df[col_name]*160)\n", + "# failures_df = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "\n", + "# display(failures_df[['JobID', 'QiitaID']])\n", + "# display(failures_df.QiitaID.to_list())\n", + "\n", + "# formula = '2**30+({input_size}*{samples}*6)'\n", + "# samples, columns, input_size = 451, 51, 2345108\n", + "# formula = formula.format(samples=samples, columns=columns, input_size=input_size)\n", + "# value = eval(formula)\n", + "# print (formula, value, naturalsize(value, gnu=True, format='%.0f'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pick closed-reference OTUs" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnwAAAFBCAYAAADt4XK4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAACn8klEQVR4nOydd3gU1feH35kt6SGhBQWxgQIiXVFARVBQIFQLiAW7oIhYABEFRRAEC6KCHQsKKPmCCioIPyyASlGaIIIioYVAerLZ3dm5vz8mO9lNNskmpHPf58nDlDszZ5fdu+fee87nKEIIgUQikUgkEomk1qJWtQESiUQikUgkkopFOnwSiUQikUgktRzp8EkkEolEIpHUcqTDJ5FIJBKJRFLLkQ6fRCKRSCQSSS1HOnwSiUQikUgktRxrVRsgKZlDhw5x7bXXcsEFF5jHhBDcfvvt3HDDDaxZs4aNGzcyadKkIu9x2223MXz4cK677rpSPz8hIYHvvvuOt956q0z2B8t7773H33//zYwZM07pPgkJCbz22mucf/75vPfee+VkXcWhaRrvvPMOX331FYqiAHDppZcyZswYYmJiWLZsGR988AEAR48eJSQkhLp16wLw9NNPs3HjRlJTU3nmmWf87tuvXz+efvppOnfuXLkvSCLxQfZfpUP2Xway/yp/pMNXQwgNDWX58uXmflJSEv369aN169b07NmTnj17VqF11Ytly5YxduxYBgwYUNWmBMWjjz6KzWbj008/JSYmBrfbzYIFC7j55ptZunQpAwcOZODAgQBMmDCB5s2bc/fdd5vXb9y4sYosl0iCQ/ZfwSP7L0lFIR2+GkpcXBxnn302Bw4c4M8//zRHsMnJyUyePJl//vkHVVUZOnQot99+u3mdpmk89thjWK1WZs6cidXq/xF46623+N///ofVauXss88uNFo9duwYU6ZM4fDhwwghGDhwIPfccw+apjF16lS2bt2KzWajSZMmvPDCC0RERLB161Zmz56Nw+FAURRGjx7N1Vdfjdvt5vnnn2fDhg3Uq1ePevXqERUVFfD13nbbbdSpU4d//vmHYcOGMXDgQKZNm8bevXtxu91cfvnljBs3jhdffJEdO3Zw6NAhUlNTueWWW5g9ezabNm3C4/HQqlUrJk2aRGRkJD169KBNmzb89ddfPProo7Rp04bnnnuOo0eP4na76du3Lw888ACHDh1ixIgRXHXVVWzbto309HTGjh1Lnz590DSNWbNmsW7dOiwWC+3bt2fy5MnY7XbmzZvHqlWr0HWdxo0bM3nyZOLi4vxe1++//84ff/zB2rVrzf8Lm83Gvffey9atW1m0aBH33HPPKX9eXnvtNVavXo3NZiM2NpYXXniBhg0bnvJ9JZKyIPsv2X+VBtl/lQ/S4auh/P777xw8eJC2bdv6jZCeffZZzjnnHN58800yMzMZNmwYV111FQBut5sxY8YQFxfH008/bU6/e1mzZg0JCQksWbKEOnXq8MILL/DJJ5/4fckff/xxevbsyZ133klmZibDhw/njDPOIC4ujt9++42VK1eiKAqzZs3ir7/+4vzzz+fJJ5/kvffeo0mTJiQlJXHTTTdx4YUXsnr1ag4cOMCKFSvQNI1bb721yA4TIDo6mpUrVwLw5JNPctFFFzFjxgw8Hg8TJkzggw8+YOLEiezevdtc/nn99dexWCwkJCSgKAovv/wys2fPZsqUKQA0b96cV199FYDbb7+dESNG0KNHD5xOJ/feey9NmzalTZs2JCYm0q1bN55++mm+++47ZsyYQZ8+ffj000/ZtWsXy5cvx2638+ijj5o27t27l88//xyr1crixYuZNGkS77zzTqH/x3bt2hX64QLo0qULGzZsOOUO8+jRo3z44Yds3LgRu93O+++/z/bt27nmmmtO6b4SSVmR/Zfsv4JF9l/lh3T4agi5ubnmFL/H4yE2NpZZs2Zxxhln+LXbsGEDTzzxBABRUVF8/fXX5rmZM2eSnZ3N6tWrC3WWYEytX3fdddSpUwcwOiUwYkoAcnJy2Lp1K++//755/8GDB/Pjjz/y1FNPYbFYuPHGG+nWrRu9e/emTZs2/PDDDyQnJ/Pggw+az1EUhb/++ouNGzfSr18/7HY7drud+Ph4/vrrryLfg06dOpnb69atY8eOHXzxxRfm+xOIdevWkZmZyYYNGwDjR6NevXqF7pmTk8OmTZtIT09nzpw55rE9e/bQpk0bbDab+cPTqlUr0tLSzPd7wIABhIaGApid75gxY9ixYwdDhgwBQNd1HA5HQBs1TQt43OVyBfx/KkhRbXRdx2KxEBcXR4sWLRg0aBBXXnklV155JZdffnmJ95VIygvZf8n+qyhk/1V5SIevhlAwBqYorFar3xcoMTGR2NhYAPr3748QgkmTJjF//vxC11osFr9rMzIyyMjIMPd1Xadg6WVd19E0jejoaJYvX87WrVv55ZdfeOSRR7j99ttp2rQp559/Pp9//rl5TVJSEnXr1mXx4sWFnu89f99995nH3377bQDCw8P9njtnzhzOP/9809ZAHYeu60ycONHs7LKzs3E6neZ57z29r23RokWEhYUBkJKSQkhICKmpqdhsNlTVSGr3fU7Bke2JEyfQdR1d17nnnnu45ZZbAKPzS09PL2Rfhw4deP/993E4HOZzvfz6669ccsklha4pSGxsLP/880+h4ydPniQmJgZVVfnkk0/YsWMHGzduZPr06XTu3LnYIHmJpDyR/Zfsv4pC9l+Vh5RlqWVcfvnlLF26FIDMzEzuuOMODhw4AECbNm145JFHOHjwIEuWLCl0bZcuXVi9ejVZWVkAzJ07lwULFpjnIyMjadu2LQsXLjTvv2zZMrp06cL//d//MWLECNq3b8/o0aMZOHAge/bsoV27dvz3339s2rQJgN27d9O7d2+OHz/OFVdcwbJly3A6nTidTnMpIS4ujuXLl5t/BeNGALp168aCBQsQQuByuRg5ciSffPJJwHYLFy7E5XKh6zpPP/00L7/8cqF2kZGRtGvXzswmy8jIYNiwYaxZs6bE9/vrr7827z9lyhRWrFhBt27d+OKLL8z3cs6cOYwbN67Q9e3atePSSy9lwoQJZofq8XiYN28eBw4cYOjQocU+H4z/t40bN7J//37z2LJly4iMjOS8885jz5499OvXj/PPP5/777+fESNGFDsTIZFUFbL/KtxO9l+y/yov5AxfLeOZZ55hypQpxMfHI4Tg/vvvp3Xr1ub5kJAQZsyYwV133cVll11G06ZNzXNXXXUV+/btY9iwYQA0a9aMqVOnsmrVKrPN7Nmzee6550hISMDlchEfH8/gwYPRdZ0ff/yRfv36ER4eTp06dZg6dSp169bltdde48UXX8TpdCKE4MUXX6Rx48YMHTqUgwcP0q9fP2JiYjj77LODfp1PPfUU06ZNIz4+HrfbTZcuXQLGiowaNYqZM2cyaNAgPB4PLVu2ZMKECQHvOXv2bKZOnUp8fDwul4t+/frRv39/Dh06VKQdQ4cO5fDhwwwePBghBJdeeim33XYbqqqa8T6KonDGGWcUKdcwa9YsPvjgA2699VbAGE137tyZRYsWFRsT5OXcc89l6tSpjBs3Dk3TcLlcNGnShHfeeQdVVWnRogXXX389Q4YMITw8nNDQUDk6llRLZP/lj+y/ZP9Vniii4By3RCKRSCQSiaRWIZd0JRKJRCKRSGo50uGTSCQSiUQiqeVIh08ikUgkEomkliMdPkmFMHfuXJ577rkS2/30008MHjyYAQMGMGjQIH766aeA7X755RcGDx5M//79uemmm9i+fbt5TtM03nvvPQYMGEDfvn3p0aMHo0aNCpjqD4ZcgDfw+dChQ9x2222F2uzbt48BAwaYf/Hx8Vx44YVmAPjo0aO59tprzfPTp08P+KzVq1cTHx/PgAEDuO222zh48KB5LjU1lalTp9K7d2/69evHNddcw7PPPmtmxkkkpzPB9iHbtm1j8ODBXH/99dxxxx0cP368zO2mT5/O/fffX+Sz3n//ffr27Uv//v0ZMWKE3/fZy0MPPVSk3QX7mx49ehT72tLT0+nZsyfffvttse289OvXj19//TWotuVNca/b5XLxzDPP0KdPH/r06WMKToMhH3PPPffQp08f+vXrx9atW4t9TnHvyZw5c4L6zJyuSIdPUmVkZmby+OOPM3PmTJYvX84LL7zA2LFjCzk8LpeLsWPH8vzzz/Pll18ycuRIU5wVYPz48WzdupUFCxawYsUK1q5dy/XXX8+IESPIzs4uk23NmjXzk1bo2rUr/fr1o1evXoChMP/JJ5+Y5ydOnFjoHrm5uTzxxBO8/vrrLF++nJ49e/L8888DkJWVxdChQ4mNjeXrr7/m66+/ZuXKlaiqyuOPP14mmyWS0w2Xy8XDDz/MU089xTfffEPv3r156qmnytRu5cqVfPnll0U+a8OGDXzxxRcsXryYL7/8kmuvvdYUd/byzjvvsHnz5nJ5bUIIxo8fXyMGgCW97oULF5KSksLXX3/Nl19+ye+//84333wDGNVVOnXqxMqVK5k1axZjxowpUuS5qPfk2LFjPPzww6aotiQw0uGTFKJHjx488sgjXH/99axevZqkpCQefPBBBg8eTHx8vJ/o6fz587nhhhuIj4/nmmuuYfXq1YXu99lnnwXshN1uN5MnT6Z58+aA4WQJIUhNTfVrZ7fb+fHHH2nVqhVCCD8x1p07d7Jx40Zmz55tHgOIj4/nvvvuK5fOcvPmzXz33Xc8++yzgCEGm52dzeTJk4mPj+fJJ580let98Xg8CCHIzMwEDNHUkJAQAJYsWcI555zDQw89hM1mM1/nuHHjaNOmDbqun7LdEklVUVl9yI4dO4iMjKRjx44A3HDDDWzcuJHU1FSSkpIYMGAASUlJxbYD2L9/P++++65fRQ0wyrXde++9ANSvX58pU6YQGRkJwMUXX8yRI0fMtr/88gs//fRTUNpzwfDmm29y4YUXcsEFFxTZZt++fdx0003Ex8czZswYcnJyzHOB3lchBL179+bnn382202aNIkPP/yQ/fv3M3ToUAYPHsygQYNMvcKSKOp1+/6f3XnnnbzyyiuoqkpaWhoZGRnUqVMHTdNYt24dN910EwAtW7bknHPOMVd67r33Xj8twaLeky+++IKOHTty5513BmXz6YrU4ZMEJJgajW3btmXDhg188sknhIaGsmLFCl577TWuvfZav3t5dbEKUrduXfr06WPuv/baa5xzzjmcddZZhdrabDZOnDjBoEGDSE1NNW3bvHkzHTt2LKTyDpi6UKfKzJkzeeSRR8yOPiUlhS5dujB58mTq1avH9OnTmThxIm+++abfdRERETz77LMMHTqUmJgYdF3ns88+M+3u1q1boWeFhIQwatSocrFbIqlKKqMPOXbsGI0aNTL37XY7devWJSkpiRYtWpjVPTZv3lxkO7vdzhNPPMGMGTPYuXOn3/179uxJz549AfycDJfLxezZs7nuuusAo7rGtGnTeO+99wpV4CgLP//8M5s2beK9995jxIgRRbZ7/PHHGT58ODfeeCNbtmxh+PDhABw+fLjI93XYsGF8/vnndOvWjaysLNasWcO4ceOYMWMGPXr04L777iM5OZnp06czbNgws0JHIIp73QX/z2w2G7Nnz2bhwoW0bt2aTp06kZqaiq7r1K1b12wXFxfHsWPHAPxq9xb3njz00EOAEQYgKRrp8EkCEkyNxj59+jBz5ky++uor/vvvP7Zt21amJVRN05gxYwY//vijnzJ+QerXr89PP/3Erl27GDFihFmWyLdU0D///MPYsWMBY8nYtzxQWdi6dSupqanEx8ebx9q2bcsbb7xh7j/00EN069YNl8uF3W43j//111+88cYbrFy5kqZNm/LRRx8xevRoli9fjhDCz+4vv/yS9957DzAcynfeeYcWLVqU2W6JpKqpjD6kqJlwb5mzYNo99dRT3HbbbVxwwQWFHL5ApKSk8PDDDxMZGcnYsWNxu908+uijTJw4kYYNGwZte1EcOXKEmTNn8v777xd6Hb6kpqby119/MXDgQAA6duxorpY0bty4yPd18ODBvPHGG6SkpPDtt9/SvXt3oqOjufbaaxk/fjzbt2/n8ssvZ9KkScU6e2V53Y8//jhjxozh6aefZsqUKTz66KMB2xV83cG+J5LikQ6fJCDB1GjctWsXo0aNYsSIEXTt2pVLLrnEXPYMlvT0dB5++GGEECxevNhvWdZLZmYmv/zyiznqv+iii2jRogV79+6lffv2vPvuu7jdbmw2G+edd545qp8wYUKRsSDBsnLlSgYOHOjX8W3evNkMHAZM561gR/Tzzz/ToUMHsxrA8OHDeeGFF0hNTaV9+/b89ttv5ixk//796d+/P2Ash7nd7lOyWyKpaiqjDznjjDNITk42991uN6mpqYXKmRXVLioqis2bN/Pvv/+yYMEC0tPTyczM5N577/WbXfKyZ88eRo0axTXXXMP48eOxWCz8/vvvHDp0yKxEceLECTweD06nk2nTpgX/huXx7bff4nA4zMobBw8e5MUXXyQ1NdVv1sw7YPStneCtjVvc+xodHc11113Hl19+yVdffcXkyZMBuPrqq/nuu+/YsGEDGzdu5I033mDRokV+1Ux82blzZ9Cve8uWLdStW5dzzz0Xm83GoEGDeP7556lXrx5g/A7UqVMHMGYNC/7/BfueSIpHxvBJiqW4Go2bNm2idevW3HnnnVx66aWsWbPGzLwKBpfLxV133UWTJk14//33Azp7AKqqMnHiRLZs2QLA33//zT///EPbtm1p27YtnTt3Zty4caSkpJjX7Nu3j927d5/yaHDTpk1cdtllfseys7N5/vnnzbi99957j969exd6VqtWrdi0aRMnTpwA4Pvvv6dJkybUrVuXW265hX379vHuu+/icrkAo+P++eefSUtLk6NYSa2hIvuQtm3bkpaWZmZ2Ll26lHbt2hEdHR1Uu0aNGvHzzz+byVcPP/wwnTp1Cujs/ffff9xxxx2MGjWKiRMnmt/R9u3b88MPP5j3GDp0KH369CmTswdw11138f3335v3a926NePGjSvk2MTExHDRRRfx+eefA4aTt3fvXoAS39fhw4fz0UcfIYSgTZs2ADz22GOsXLmSvn37MnnyZCIjIzl69GiRdpbmdf/yyy+88MILaJqGrut89dVXdO7cGavVSvfu3c3l4D179rB//346d+5cpvdEUjxyhk9SIkXVaDxx4gSrVq2iT58+2Gw2Lr/8ctLT0wslSnz22Wfs3LmzUEfw7bffsnPnTlwuF0OGDDGPv/jii1x44YUMGDCA559/nosvvpg33niD6dOno2kadrud2bNnmzE5s2bNYuHChdx3331mLcY6depwyy23+N23LPz33380adLE79hVV13FbbfdxrBhw9B1nQsvvJCpU6cCRhD5pEmTWL58OZdffjl33303t912GzabjTp16phxfpGRkSxatIh58+Zxww03oCgKubm5nHfeecyZM4dWrVqdkt0SSXWiovoQm83G66+/znPPPYfD4SAmJoaZM2cCxkzRfffdx9tvv01cXFyR7YpjzZo1LFq0iHfeeYd33nkHh8PBxx9/zMcffwwYsYBeh6sqePnll3nyySfNmbjzzjsPMORZinpfIyMjadGiBXXq1PFLtBg1ahRPPfUUixcvxmKxcM0113DppZcWeh+Dxff/7N5772X69OkMGDAAVVXp0KEDjz32GACTJ09m0qRJ9OvXD0VRePHFF80avPfeey9Dhw41V1Mkp4aspSs57fj111/53//+x4wZMzh06BBPPvmk2YFLJBJJRVGwv+nRowdr166tdDsOHjzIbbfdxrfffhsw4a0gTzzxBBMnTixyFUZSM5BLuhKJRCKRnCbMmTOHYcOGMX78+KCcPYfDQbdu3aSzVwuQM3wSiUQikUgktRw5w3eaMWHCBFP+o7T8+uuv9OvXr8R2r7/+Ot9//32p79++fXsOHTpUYrvBgwfTp08fs6zZu+++G7DdF198wfXXX0+vXr2YPHmyX+br4cOHmTBhAr1796Zv37707t2bV155pcjs2AkTJpgli+bOnUtCQkKR9rlcLu68885CpX+OHj3KFVdc4ZdcUlzJOF/27dvHsGHDGDBgAAMHDvQrQVfa0nKS6kVt+E6CkYwRHx/Pjh07imwzf/58rrvuOq699lrmzp1rZpgGW16ruHYzZsyge/fuZr/wyCOPFGvv9u3bad26td/3cdGiRfTp04f4+HhGjhxpnvN4PMydO5dBgwbRu3dvpk+fTsG5ki+++IIHHnig0LFAfZDD4eCxxx7j+uuvp3fv3kX+3yQkJJjacr4lIX3ZsGGDXxnI3r17c+GFF5YoMbNjx44SS7tV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LbuC8ePfpk0brrjiCr/jZ599NnfffTfXXXcd3bp1Y9OmTdx///0AHDhwgH379nHHHXcQHx/Pp59+agoFDxs2jIceeojQ0FC/+xXXBxU85/t6y4rL5eLll19m4sSJpgCzL7t37+b111/nk08+YenSpWYNb4AVK1bQrl07Fi9ezJo1awgNDWX58uV07NiRmJgY0/lesWIFl19+OTExMUyfPp13332XpUuXctNNNwUcwBSkqPcKjL7wk08+oXv37qSmpppC+z179vT7rgTqYwF69+5NgwYNAPjzzz/5+uuvzXuMGTPGdIK7devGueeeCxihPR9++CHXXXcdKSkpZGdns2HDBm677TYGDBjA2rVrC2k6+vLOO+9w1VVXcfHFF5vHivp8Ffd5uOeeezh8+DBXXHEF3bt3p2/fvrRo0YJ///2Xxo0b88ILL3DjjTcydOhQkpOT/f7v/v77b77//vsinXxfpA5fDWbjxo1069bN/BD51hesU6cOixYtIjExkV9//ZWIiAi/a/fu3YuqquYXp3Xr1nz11VdBP/uJJ55g/fr1vPPOOxw4cIDjx4/7Fe72sm7dOjIzM9mwYQNg/KjVq1ePvXv3YrVazVFyv379eOaZZ0p8rm9tS4D777+f0aNHFyqsHqij91bLEAXKmnl/nMEY6a5YscIcXVYGgUrGeTskAKfTydixY5kxYwZXX301f/zxBw888IDZyVRkaTlJ6Tgdv5PBUtR3sjzKo5111ll+TsHdd9/Nm2++yaFDh/xqc69bt47t27cHjJn8+eefWbVqFT/88AOxsbHMmjWLJ598kvnz56NpGtu2beOdd97B5XIxcuRIPv7442Lr3JbUBxV1rqx89913NG3a1CxpV5CNGzfStWtX0ym6+eab+fnnnwG444472Lx5Mx988AEHDhzg77//NmfQhg8fzpIlS7jqqqtYvHgx48aNw2KxcN111zF06FC6d+9O165d/cpPlpVbb72V4cOH8+qrr/Lwww/zySeflPoeP/30E0888QSTJk2iZcuWRbbbuXMnDz30ELfeeitXX301SUlJeDweDh48yIcffkhKSgq33XYbjRs35pprril0vdPpZMmSJX7x3MV9vor7P3/uuefo2rUrjz76KCdOnODOO++kffv2aJrG1q1bueuuu3jyySfZvn079957L19++aU5mP/oo4+49dZbzRnG4pAzfDUYi8Xi92Ofm5vL/v37WbdunTky7dmzZ0A18oLXgvGDo2ma3zFvFYiCPProoyxZsoTGjRszYsQILrroooAfaF3XmThxoqmQ/vnnnzNnzhwURSnUPtCotCBr165l06ZN5r4QIuB1Z5xxBsePHzf3k5KSTKFmb1kzL/fcc49p34kTJ4KeUTlVMjMzWb16tbnvWzLOl71795Kbm8vVV18NQLt27WjevDnbtm2jffv2bN261Qz+9ZaWW758OZdeeukpl5aTlI7T8TsZLAXLm3m/k77ltXzPFZydLq7dnj17WLZsmV97IYTfTAgYFTaOHTvGoEGDGDBgAGA4Ozt27GDt2rX06NGDevXqoaoqw4cPNxO1GjZsSJ8+fbDb7URGRnLdddfxxx9/lPh6i+qDCr4Xx48fN8+VlZUrVzJ48OAizxf8//V1qGfNmsWcOXOIjY3l5ptvpmvXrmbb+Ph4tmzZwi+//EJOTg6XXHIJYIhpz58/n6ZNm/LOO+/w0EMPldn2PXv28Oeff5p23njjjezatavU9/nggw8YN24cL7/8slljOBArVqzgrrvu4rHHHjOTR2JjY7HZbKY4dP369enevTu///57wHv8+OOPtGjRwm9AUdznq7jPw+rVq7n55ptRVZWGDRty3XXX8euvv9KwYUOio6NNh7NNmzY0adKEPXv2AMZS8KpVqxg0aFBQ7490+GownTt3ZuPGjeaHaNGiRcyaNYv169dz9dVXc8stt3DxxRfz/fffFypXdN5556EoCuvXrweMsjx33HGHuWTizbTzdUh8+fnnn3nwwQfp06cPiqKwbds28xkWi8X8kerWrRsLFy7E5XKh6zpPP/00L7/8MhdccAFCCH744QfAiG/w7ciL4tixY8ycOZPc3Fw8Hg8LFiygT58+hdp5BU1Pnjxp1un1fmlGjhzJN998w7Jly0ybPR4PK1euBE59pB0sxZWM8+Xss88mMzPTzEg8ePAg+/fvp1WrVhVeWk5SOk7H72Sw9OzZky+//JKcnBxcLhcJCQlcc801QZfXKq6dqqpMmzaNxMREwIhVu/DCCws5UXPnzuWbb74xnV2ADz/8kIsvvphWrVqxbt06srOzAVi1apX5Xezduzdffvkluq7jdrv5v//7P79lvEAU1wf17NnTfB3Hjh3jp59+Mgd0ZUEIwebNm83Z2UB06dKF9evXm0vH//vf/8xzP//8M3fccQcDBw6kXr16bNiwwfzshIWF0b9/fyZOnGhW5khJSeGqq64iJiaGESNG8Mgjj/DXX3+V2f49e/bw5JNPmgPUZcuWFSppWRIffPABCxcuZMmSJXTp0qXIdt9++y3PP/887733nt+spN1u5+qrrzY/F97l3aL+n3/77bdC73dxn6/iPg+tWrUyYzhzcnL46aefaNu2LR06dMBut5vi3Pv37ycxMZEWLVoAxoAwOjq6UDWoopBLujWYCy+8kCeeeMKM+2rQoAHTp08nKyuLxx9/nPj4eCwWC506dWLVqlV+M1fewOPp06fz4osvYrPZmDt3Lna7nUmTJvHcc88RHR1Nly5dzCUAX8aOHcuDDz5InTp1CAsL45JLLuHgwYOAUYR75syZuN1uRo0axcyZMxk0aBAej4eWLVsyYcIEbDYbb7zxBlOmTOHll1+mZcuW5ggeii6pM3ToUBITE837de7cmQcffBDwL4PUokULHnzwQe644w7cbjdt27Y1A38bNWrE4sWLef3113nvvfewWCw4HA4uuugilixZUmnLuREREcWWjPMtLff6668zbdo0XC4XVquV5557zixqXpGl5SSl43T8ThaHb3mtHj16sHfvXm688Ubcbjc9e/Y0Z2GCLa9VVLuoqCgmTZrEyJEj8Xg8NGrUiJdffhkoXGKtKIYMGcLhw4cZPHgwdrudxo0bM2PGDAAeeeQRZs+eTb9+/fB4PHTp0oU77rij2NdeXB80evRopkyZQt++ffF4PDzxxBPm97kspKamkpOTU+wsofezeccddxAREWHW0AV48MEHefHFF3nzzTexWCx06NDB/OyAIYXljREFqFu3LiNHjmTEiBGEhoZisVhMWZKiyuAVx8CBAzl48CBDhgzBYrHQvHlz83rffr0oXC4Xc+bMISoqym+m8brrrmPkyJFmwsaYMWN4+eWXEUIwadIks12HDh2YPHkyU6dOZdq0afTp0wePx0N8fDzXXXcdAE899RStW7c2Z+f/++8/WrduHfRrLO7zMHPmTJ577jmWLVuGqqpcf/315gzhe++9x/PPP29+nqdPn25+jg8cOEDjxo2DtkEKL0skQTBhwgQGDRpE586dmTt3Lo0bNy52+UQikUhOlYSEBA4fPszo0aP9SkJWJkII3nnnHQ4fPsyzzz5bYvusrCwmTZrEq6++WvHGSUqFnOGTSCQSiUQSkJ49e1K3bl3mzZsXVPs9e/YwevToCrZKUhbkDJ9EIpFIJBJJLUcmbUgkEolEIpHUcqTDJ6k0Jk+eTI8ePXjllVeKbLNjxw4efvhh4NRqjJYXR48e5a677qJ///7069fPL7NNIpHUbmpin+Vlz549hQTmV65cSXx8vFkF5sCBA1VjnKRKkDF8kkpj8eLFrFu3rthMsosvvpjXXnutEq0qnmeffZYrr7ySESNGcOLECXr16sXll19+yppZEomk+lMT+yxN0/jkk094++23/XQ4T5w4wZQpU1i+fDlnnHEGn3zyCVOnTq02Dqqk4pEzfJJK4ZZbbkEIwb333svmzZv5v//7P4YOHcrgwYPp3r27mdH166+/0q9fv0LXF1VL9Ndff6V///4MHTqU/v3743K5WLt2LTfeeCMDBw5k6NChpnDm/v37zWcOGjSIhQsXAoZsw4ABA8wyN768+eabZrm1I0eOYLVazfqaEomk9lJT+6w///yTv/76q5ATWr9+fdavX88ZZ5yBpmkcPny4UisKSaoBQiKpJC644AJx8uRJoeu6uPXWW8W///4rhBDi2LFjomXLluLkyZPil19+EX379hVCCDF+/Hjx7rvv+l1b8F6//PKLaNGihTh06JAQQoh///1X9OvXT6SkpAghhNi7d6/o2rWryM7OFk8++aR46623hBBCHD9+XDzyyCPC4/EEZfutt94qWrZsKWbOnFku74VEIqn+1OQ+KzExUbRr167Q8e3bt4suXbqIDh06iK1bt5btjZHUSOSSrqTSURSF+fPns27dOr7++mv279+PEKLMZcDOOOMMU3xy/fr1HD9+3K/GpaIoHDx4kGuvvZbx48ezfft2Lr/8ciZNmhR0VY2PP/6YlJQU7rzzTpYuXSoFjSWS04ia2GcVxcUXX8z69ev58ccfuf/++/n++++Jjo4+pXtKagZySVdS6eTk5DBo0CB27dpFq1atGDduHFarNWDdz0AUrCUaHh5ubuu6zuWXX26Wtlm+fDlLliyhefPmXH311Xz33Xdcf/317N69m/j4eD81+UB8++23ZGVlAYa6/DXXXGPWfJRIJKcHNanPKoqkpCR++uknc//KK68kMjKyzPeT1DykwyepdP777z+ysrJ45JFH6NGjB7/99ptZ17MogqklCnDZZZexfv169u/f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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Pick closed-reference OTUs'\n", + "_df = df[(df.cName == cname)\n", + "# & (df.updated == 'after')\n", + " ].copy()\n", + "col_name = 'input_size'\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = (5*m1g)+(x_plot*3)\n", + "_df['cMaxRSSRaw'] = (5*m1g)+(_df[col_name]*3)\n", + "\n", + "failures_df = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures_df.shape[0]\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 3600+(x_plot/60000)\n", + "_df['cElapsedRaw'] = 3600+(_df[col_name]/60000)\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "failures_df = _df[_df.ElapsedRaw > _df.cElapsedRaw]\n", + "failures = failures_df.shape[0]\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# Current allocation:\n", + "# '-p qiita -N 1 -n 1 '\n", + "# || '--mem (5*(2**30))+({input_size}*3)'\n", + "# || '--time 3600+({input_size}/60000)'\n", + "\n", + "# No changes needed! \n", + "\n", + "# Similar to Split Libraries and Deblur the out of range jobs are mainly\n", + "# EBI-ENA imported jobs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Trimming" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GVET9O3blwceeICBAweycuVKsrOzueeee0hPTyctLY158+Z5z503bx7XXXcdaWlpXHHFFaxcubLU9RYsWMATTzwR8L1+++03/vOf/3D11Vdz66238tdffwHQuHFjnn76aeLj4wHo3LkzBw8eLPX6//u//6Nz586cccYZAIwYMYKlS5d6n1wvueQSduzYweHDh72v+eKLLxg6dGjlbs4J2dnZfPfdd35Pg+AeTVu7di3jxo0DoGnTpixevJiGDRv6nadpGkuWLOG+++5Dr9eTkJDABx98QOvWrbHb7bzyyitMnTqVdu3aeV/ToUMHnnnmmYBPqULUBzXVN23evJn4+Hi6desGwHXXXcdPP/1EXl4e2dnZDBs2jOzs7KDnrVy5kiFDhhAbG0tUVBTp6el89dVXpd73lltuYcaMGeh0OvLz8ykoKKBhw4bk5uZy6NAhrr76agCaNGlC+/bt+d///lepe2cymXjuuedISUkBoFOnThw9ehS73U6bNm145JFHvAl2O3Xq5O1vv//+e26//XbAXSlhwYIFmEwmiouLyc3NJTExEYArr7ySUaNGARAVFUXbtm2915g1axazZs0C4IknnuDRRx8F4MiRI9jtdhISEgD374Off/6Z9PR0brzxRtatW1ep77Wuk12fAoC2bdsyc+ZMAEaPHs3NN99M3759sdls3H777bRq1Ypzzz2XtWvX8vHHHxMdHc2yZct49dVXufLKK/2uNWLEiIDvYTabad26NWPHjqVr1658/fXX3H777XzzzTd+AYrdbmfatGkBy54cPnyYpk2bej9v2rQpRUVFFBcXA+6M3AMHDuSrr77ijjvu4ODBgxQXF9O2bVt27dpV6fuTmprqraPna+/evTRp0oT33nuPH3/8Ebvdzq233sqZZ57pd15ubi7FxcWsXbuWiRMnUlBQQHp6OmPGjGHr1q2AOzgtqV+/fpVusxB1QU30TSX7FZPJRHJyMtnZ2XTo0IElS5YAkJWVVeZ5hw4d4qKLLvJ+rWnTpmRnZwd8X6PRyLRp05g/fz6dOnWie/fuxMTEcNppp/HFF19w3XXXsW/fPtavX88555xTqft22mmncdpppwHuB8UXXniBvn37YjKZOP/8873nHT9+nNdff52MjAzA3ef49jtGo5GPP/6YmTNnkpqa6r2nAwYM8J7z559/8p///IePPvoIgPvvv9/7NUVRMBgMPPTQQyxfvpwrr7zS2z8mJiYybNgwrrzySrKysrjnnntYsmSJ3z0WskZNnNC9e3fAHUytW7eOWbNmMWzYMG644QYOHTrEtm3baNGiBVOnTmXp0qVMmzaNhQsXegOkUMTGxvLOO+/QtWtXAAYNGkTDhg296ybAHdD861//IjY2lvHjx5e6RlmjS74lUoYNG8bSpUsB9xoNzxNqdXA4HOzfv5/4+HgWLlzIjBkzeOGFF9iyZYvfeU6nE5fLxd69e/nggw945513WLhwId99913AdSw33ngjw4YNY8CAATz88MPV1n4hIl1N9E1l9St6vT7k8wL9Ow5Wuumhhx7i119/pUWLFjz99NMAzJ07l+XLl5OWlsasWbO47LLLQiolFYzZbOb+++9n7969PPfcc35f27t3L6NGjaJr166MHDmyzGuMGjWKdevWccUVV3Dffff5fe1///sf//rXv5g4caK37mgg06ZN4+eff+b48ePMmTMHgNdee80b+HXv3p3zzz+fNWvWVPZbrbMkUBPAyTp1qqqiaRoLFy5kyZIlLFmyhEWLFjF27Fj++OMPMjIyKCoqonfv3tx2220Veo8DBw54n7g8NE3zFjLetm0b1113HWeffTZz5szxq3vn0axZM44cOeL9PDs7m4YNG/rV2evSpQsul4utW7fy9ddfM2TIkAq1syI80wrp6ekAnH766XTt2pVNmzb5nZeUlITRaGTYsGHodDoaN25Mnz59+O233zjrrLPQNI3t27d7z//kk09YsmQJY8eOpaCgoNraL0Skq4m+qWS/4nA4yMvLIzU1NeTzAvVNgUaG1q9fz+7duwH3aNU111zDn3/+6f0e586d6w04c3JyaNWqVYW+F18HDx4kIyMDvV7Phx9+SIMGDbxf+/nnnxk+fDhXX301zz77bMASU9u2bfO2TVEUrr/+ev744w/v19977z0eeeQRXnnllTIfiP/3v/95Rxbj4uIYPHgwf/75JwUFBcybN88vwPX9fSBOkkBN+ImPj+e8887jvffeA6CgoIARI0bw/fffs27dOjp16sQtt9zChRdeyPfff+/drRSKmJgYZs6c6Q1ifvjhBywWC126dOGff/5hzJgx3H333Tz++OOlnmQ9Lr74YjZu3MiePXsAWLhwYcDpwWHDhvH8889z5plnetdUVIeWLVtyzjnn8MUXXwBw9OhRfvvtNzp16uR3nslk4vLLL/dOoXimQTt37kxUVBQPPfQQDz30EDt27PC+Jjc3lzVr1khBZSGo3r7p3HPPJT8/nw0bNgDw+eefc9555/kFNuWd169fP7766ivMZjN2u53MzEyuuOKKUu/1888/88ILL+B0OlFVlaVLl9KjRw8AnnrqKb777jsANmzYwN9//02vXr0qfrNwr58dNWoU/fv3Z8aMGX4lpDZs2MC4ceOYOnUqt956a5nX2LZtG//+97+9Oz2//PJLevbsCbiDtPnz57N48eKgbfzmm2+YM2cOmqZht9v55ptv6NmzJ3FxccyfP58VK1YA7unTTZs2cckll1Tq+63LJHQVpUybNo3JkyeTlpaG3W5nyJAhDB06lKNHj7JixQoGDRqE0Wjkoosu4vjx46W2Uy9YsIAtW7YwZcoUv+PJycnMnDmTp556CofDQXx8vHfk7K233sJisfDRRx95R91MJhOffvopmzdvZuLEiSxZsoRGjRrxwgsvcN999+FwOGjVqhVTp04t9T0MHTqUmTNn8vrrr1ffjTrhtdde49lnn2XhwoWoqso999xDly5dALj99tvJyMigX79+TJ48mSlTpjBo0CBcLhdpaWnedXg33HADqampTJkyhdzcXFRVRVEU+vbty5gxY6r9exCiNqiuvsloNHr/HVssFhITE739SnZ2NnfccQdvvvmmd61qoPP69u3L9u3buf7663E4HPTr1887yuT7vrfffjvPP/+8d3S9a9euTJgwAYBnn32WiRMnMmfOHGJjY71/V8aCBQs4dOgQK1eu9NtY8f7773tTh0yfPp3p06cD7jVtc+bM4fvvv2fhwoW89dZbXH311ezdu5drr70WvV5P27ZtmTJlCna7nVmzZpGQkODdSAVw1VVXcdddd3k3Etx///089thjTJo0ibS0NBRFoV+/fowePRqdTsfrr7/Oc889x+zZs9Hr9cyYMYPk5ORKfb91mVQmEPVe3759WbVqFeDOo/bCCy94F+EKIUSkmT17Ni1atCA9PZ3MzEwOHDjAvffeG+5miWoicypCCCGEEBFKRtSEEEIIISKUjKjVM4899hjvvPNOpV77yy+/hLSD8rXXXvMuiK2I888/P2j5Jgi99AnAZ599xsCBA+nfvz+TJk3C4XB4v3bgwAEee+wxBgwYwODBgxkwYAAzZszwO8fXY489xi+//AL4l28JxG63c8stt/Dtt996jxUWFtK5c2e/Uik///yz3+v27dvHhRde6JeuxFd2dja33norQ4cOJS0tzbsxwePTTz/l+uuvZ+DAgVxxxRXccsstbNy4scx2ChEutb0f8igoKCAtLa1UiqHbbruNQYMGMWTIEO/Gg5KCnVdWmbySyjrP5XLx3HPPectZLViwIODrf/nlFx577DEA9u/fz0033RT0+/3ss8+48847Sx0rq58N5TyLxcKECRMYOHAgAwYMKPP/WbDzQi3/VVtJoCaq3C+//ILT6ayWa3/++ef88ccffPHFFyxdupRWrVrx4osvljpv+/btzJ49m/nz5/Ptt99SWFjI+++/D7gDnuHDh9O1a1e+/fZbli1bRmZmJrt27Qq4MaEifvvtN2644QbWr1/vd/z333/nggsu8KYVWLJkiXf3FIDNZuPhhx8us5MDmDFjBl26dOGrr77i7bff5umnn/amA3jllVfIzMxk5syZfPPNN3z33XfccccdjB07NmCFByHquursh8C9a/3666/3ptrweOaZZ+jevTtff/01L7/8Mvfff79312Qo5+Xm5vLvf/+b2bNns3z5clq2bMm0adNKvT7YeQsXLuSff/7hP//5D5999hkffPBBqZRBFZGfn89TTz3Fc88955dOI1g/6yvYebNnzyY2NpZvvvmG9957j6efftqvsoxHWefZ7Xbuu+8+nnjiCb755hsGDBhQZmWc2koCtVrus88+844ujR49mkOHDqGqKs899xzXX389gwYNYuDAgaUCB3A/hVx//fUMGTKEa665xlsAuH379n6jVCU/B9i9eze33HILw4cP5/LLL+euu+7CZrMxf/58tmzZwksvvcTKlSux2+08//zzXHPNNQwdOpTHHnvM+9SXlZXFsGHDuPrqq3nyySf9kknefvvtfP/996XaHKz0ia/vv/+evn37kpycjE6nY/jw4d5yLm+++Sb9+/fnhhtu8OYOiouL48knn+T000+v0P0v6aOPPuKBBx7g3HPP9Tv+22+/kZ+fz4gRI7j66qv55JNP/L7+zDPPkJ6eTlJSUpnXdrlcFBYWomkaFosFg8GATqfj6NGjfPDBB8yaNYsWLVp4z7/ooot47LHHAv6SEKIq1bd+CODDDz/kxRdf9OZSBHdi69WrV3PDDTcA0LFjR8444wxvGSjP9YKdF6xM3ubNmxk2bBgQvJzed999R3p6OgaDgYYNGzJ48GBv/1cZ33zzDSkpKTzyyCN+x4P1s76lqIKd991333H99dcD0Lx5cy6++GK++eYbwF1+yjMaWNZ5wcp61RUSqNVi27ZtY9q0abz99tssXbqUvn37MnfuXDZu3EhOTg6LFi3i66+/5pprruGtt97ye63D4eCee+7hnnvu4T//+Q+TJ0/m+eefD7mu5OLFi7n66qtZtGgRK1asYP/+/axevZqRI0fSqVMnHnnkEa688krefPNN9Ho9mZmZfPXVV6SkpDBt2jTsdrt36/aXX35Jjx49sFqt3uu/9dZbAfOjnX/++d6SKp7SJ4FKTR06dIhmzZp5P/ct55KVlcXFF19c6jUpKSnlDv2X55VXXqFPnz6ljuv1evr27cvHH3/MG2+8wQcffOAduv/0009xOp3eTrssEyZMYNWqVVxyySUMHjyYe++9l0aNGvH7779z1lln+f3C8Lj66qs566yzTul7EiKY+tgPAbzzzjt+pZgA8vLyUFXVL8VEamqqd4TIc71g5wUrk9e5c2fvkodg5wXq/wKNUoVqxIgRjBs3zi8XGwTvZ/v16+f9/x3svJJf871fU6ZM8ZbfKuu8YOW/6grJo1aL/fTTT1x88cXeH96bb77Z+7WGDRuycOFC9u3bxy+//EJcXJzfa7dv345Op/MGFZ06dfKWXQrFww8/zJo1a3jrrbfYs2cPOTk5mM3mUuetXr2awsJC1q5dC7g75kaNGrF9+3YMBoO3Nt6QIUN46qmnQn7/vXv3cs8995RZ+iRYORdN0/yycHt+wYA7Ye2yZcuqPEnuPffc4/04NTWV4cOHs3LlSpo1a8aCBQuYP39+udd46KGHuO2227jxxhvZs2cPN910E+edd16p77WoqMh7T8xmMwMHDuTBBx+s0u9HCI/63A+VVBWlqEIpkxfsGjqdrsLlrCor1Pcprz8+lWuEes9rMwnUajG9Xu8XcFitVg4cOMC+ffuYMmUKt9xyC/369aN169alhr1LvhbcnWbr1q39jtnt9oDv/eCDD+JyuRg4cCB9+vTh0KFDAf8hqarK448/zmWXXQa4M/LbbLaA54daOuTnn39m/Pjx3HbbbWVm1W7WrJnfglLfci7nn38+v/76K5dffjkAt912m7fkTPv27UN+mq+Ijz76iH79+tG8eXPgZKmUL7/8kuLiYm9B5JycHB566CEeeeQRvyf53Nxc1q9f713XccYZZ9C7d2/WrVvHkCFD2L17N3l5eSQlJREfH+996p49e3admgIQkae+9kOBNGrUCHCP9jds2BBw9z0lS1EFOy8+Pt5vE1CgMnng7uPKOi/UclanKlg/G+p5nrY2adIEcPeBHTp0CHiNQOeFWv6rNpOpz1qsR48e/PTTT95/AAsXLuTll19mzZo1XH755dx444107tyZ7777rlQ5ldatW6MoircA7h9//MGYMWO8w/GeXUy+Ga19/d///R/33HMPgwYNQlEUNm7c6H0PvV7vXcR78cUXM3/+fOx2O6qq8uSTT/LKK6/Qrl07NE3jhx9+ANxrGI4fP17u9xxq6RNPEttjx46haRqLFi3ylnO56667+Oabb/jyyy+9bXa5XHz99ddA9Tx5rl+/3rvLLT8/n88++4xBgwbxxBNPsHz5cu8GA8+UTMnplqSkJJo2bcry5csBd+C2bt06zj33XFJTUxk9ejT333+/33q9gwcPsmHDBilBJapVfeyHymIwGOjTpw+LFi0C3NPCO3fu9JaICuW8UMvkBTuvX79+fP755zidTgoKCli2bFnAclanKlg/G+p5/fr1896Hw4cP87///c/7EO2rrPNCLf9Vm8mIWi3Wvn17Hn74Ye9oUJMmTXj++ecpKirioYceIi0tDb1eT/fu3VmxYoXfSJHJZGL27Nk8//zzvPTSSxiNRmbPno3JZGLixIk8++yzNGjQgF69enmfYHyNHz+ee+65h4YNGxITE8MFF1zA3r17Abj88suZOnUqDoeDu+++m6lTp3LNNdfgcrno2LEjjz32GEajkTlz5vD000/zyiuv0LFjR+9TJviXXvIVaumTDh06cM899zBmzBgcDgfnnnuud2Fr06ZNWbRoEa+99hrvvPMOer0ei8XCOeecw+LFi6ulNuhTTz3FU089xeDBg3E6nYwcOZLevXuX+zrf+zB37lwmT57M66+/jk6nY+zYsXTv3h1w///46quveOihhzCbzTidTkwmE4MGDQo4NSxEVamP/VAwkyZNYuLEiQwZMgRFUXjppZdISEgodb1g55VVJi/UcnojRoxg7969DBs2DIfDwfDhw7nwwgsr8r81JMH62VD743vvvZenn36awYMH43K5ePjhh72F6J944gk6derEiBEjgp5XVlmvukIS3goRgscee4xrrrmGHj16+JVvEUKI2uqXX37hiy++4MUXX2T//v38+9//9tZaFpFD5kSEEEIIISKUjKgJIYQQQkQoGVETQgghhIhQEqiJGjNp0iT69u3LjBkzyjxn8+bN3HfffcCp1QOsatu2bQuYJFcIUX/Uxj4sIyPDr8Zwly5deO6558LaJlExsutT1JhFixaxevXqoPl8OnfuzKuvvlqDrQrO6XTy8ccf8+abb0opJiHqudrYhy1cuND78ffff8/06dO5//77w9giUVEyoiZqxI033oimadx+++1kZWXx3//+l4yMDNLT0+nTpw8zZ84E3LuQhgwZUur1ZdX9++WXXxg6dCgZGRkMHToUu93OqlWruP7667n66qvJyMjgt99+A2Dnzp3e97zmmmu81QCys7MZNmxYwJIjf/75J3/99VdEdbxCiJpXW/swj/z8fCZNmsTUqVO9aUBELaEJUUPatWunHTt2TFNVVRs1apS2e/duTdM07fDhw1rHjh21Y8eOaT///LM2ePBgTdM07dFHH9Xefvttv9eWvNbPP/+sdejQQdu/f7+maZq2e/dubciQIVpubq6maZq2fft2rXfv3lpxcbH273//W3vjjTc0TdO0nJwc7YEHHtBcLldIbd+3b5923nnnVcl9EELUTrW5D3vppZe0xx9/vErug6hZMvUpapyiKMybN4/Vq1fzn//8h507d6JpWqWnFps1a0aLFi0AWLNmDTk5OX71BhVFYe/evVx55ZU8+uijbNq0iYsuuoiJEydK1n4hRIXVtj7MZrOxePFiMjMzK9U+EV4SqIkaZzabueaaa7jiiivo3r071157Ld99913AGn2BlKz751sDT1VVLrroIu80BMChQ4dISUmhQ4cOLF++nLVr1/LTTz8xZ84cFi5c6M1uLYQQoahtfdiPP/5Ihw4daNmyZejfpIgYMpwgatw///xDUVERDzzwAH379uXXX3/11uArSyh1/wB69uzJmjVr2LlzJwA//PADQ4cOxWazMWHCBL7++msGDx7MpEmTiI+P59ChQ1X7zQkh6rza1of9+uuvXHTRRRX8LkWkkBE1UePat29Pnz59GDhwIA0aNKBVq1a0adOGf/75B5PJFPA1odT9A2jbti3PPvssDz74IJqmYTAYmDt3LrGxsdx999088cQTLFq0CL1ezxVXXMGFF15IdnY2d9xxB2+++SapqanV+a0LIeqA2taH/fPPP3Tq1KlK74GoOVKZQAghhBAiQsnUpxBCCCFEhJJATQghhBAiQkmgJoQQQggRoWQzgRBCVIMdO3bw2GOP0aZNGzp06OCXF0sIIUJV5wI1VVUpLi7GaDSiKEq4myOEqAGapuFwOIiLi4uYJMZZWVk0btwYVVU599xzQ36d9GFC1C/l9V91btdnYWEh27dvD3czhBBh0K5du4ipY7hjxw6Sk5OJj4/nzjvv5N133w3pddKHCVE/ldV/1bkRNaPRCLi/4bLy2YTbli1bJKdNJch9q7j6cs/sdjvbt2/3/vuPBFu2bOHiiy/GZDJVqF3Sh9VNcs8qpz7ct/L6rzoXqHmmCkwmE1FRUWFuTdkiuW2RTO5bxdWnexZJU4WtWrViypQpxMfHc8MNN4T8OunD6i65Z5VTX+5bWf1XnQvUhBCiOhUVFZGRkcG8efM47bTTAFi6dClz587F4XBw8803M3LkSLp27UrXrl3D3FohRG0ngZoQQoRo48aNTJw4kT179niPZWdnM2PGDDIzMzGZTGRkZNCjRw/atGlzSu+1ZcuWU2xt9Vq/fn24m1DryD2rnPp+3yRQE0KIEC1evJhJkybxyCOPeI+tXbuWnj17kpiYCMCAAQP49ttvGTdu3Cm9V6dOnSJ2ymf9+vV069Yt3M2oVeSeVU59uG82my3og5kEakIIEaIpU6aUOpaTk+NXYDslJYVNmzbVZLOEEBEka2s2mat3kJ1rJjU5lvQ+bejeMbXS14uMhENCCFFLBcpwFEmbGoQQNSdrazZvZG4ir8BCQoyBvAILb2RuImtrdqWvKYGaECLyHDkCL7wAOTnhbkm5UlNTOXr0qPfznJwcUlJSwtgiIUS4ZK7egcGgEG0yoCjuvw0GhczVOyp9TQnUhBCRRVXh+uvh8cfh00/D3Zpy9erVi59++onc3FwsFgsrVqzg0ksvDXezhBBhkJ1rJsqo9zsWZdSTk2uu9DVljZoQIrK88gr88AOkpEAF8o+FS2pqKuPHj2f06NE4HA6uu+46unTpEu5mCSHCIDU5lrwCC9Gmk+GVzeEiJTm20teUQE0IETk2bYInnnB//O674LNIP5KsWrXK7/O0tDTS0tLC1BohRKRI79OGNzI3YcVJlFGPzeHC6dRI71P5dD0y9SmEiAxWK4waBXY7jB0LgweHu0VCCFEh3TumMja9C0kNYiiyOElqEMPY9C6ntOtTRtSEEJHhySdh82Zo0wamTQt3a4QQolK6d0w9pcCsJBlRE0KE3+rVMH066PXw8ccQHx/uFgkhRESQETUhRHgdPw6jR4Omuden9egR7hYJIURAWVuzeX/ZHxw8UgxAiybxjBl8dpWOoJUUcSNq+/btIz09vczPhRB1zLhxsG8fXHABTJwY7tYIIURAWVuzmbVwA/uzi0DT0DSNfdmFvLrot1NKaFueiArUCgoKWLhwIXFxcQE/F0LUMYsXu6c6Y2Lgo4/AaAx3i4QQIqDM1Tuw2JzoFAWdTodep0OnUzBbnaeU0LY8ERWoNWjQgIcffpjY2NiAnwsh6pADB+DOO90fT58O7duHtz1CCBFEdq4Zl6rhWyFOp4DTpZ5SQtvyRFSgJoSoJ1QVbrkF8vJg4MCTAZsQQkSo1ORY9DoF3/K+qgYGve6UEtqWRwI1IUTNmzMHVq6ERo3gnXdAipgLISJcep82xEQZcLpU7A4XNocLh1PFoFdOKaFteWokUCsqKmLIkCHs37/fe2zp0qUMGjSIK6+8kvnz5/ud/8YbbwT9XAhRi/35JzzyiPvjN9+EZs3C2x4hhAhB946ptEyNRwM8g2o6BUwlantWtWpPz7Fx40YmTpzInj17vMeys7OZMWMGmZmZmEwmMjIy6NGjB23aVF1EumXLliq7VnVYv359uJtQK8l9q7hIumeKw0H7W24hzmrlaFoa/5x+OkRQ+4QQoiwLVmxj885cv2OqBi5VJXP1jmpL0VHtgdrixYuZNGkSj3ieoIG1a9fSs2dPEhMTARgwYADffvst48aNq7L37dSpE1FRUVV2vaq0fv16unXrFu5m1Dpy3you4u7ZE0/Atm1wxhk0/vhjGjdoUCWXtdlsEf9wJoSo3T5f9XfA4wXFjmrdTFDtgdqUKVNKHcvJyaGJT7HllJQUNm3aVN1NEUKE05o18OKL7vVoH34IVRSkCSFETbA51DK/Vuc2E2i+WyZOUGQxsRB1V2Ghu/qAqsKjj8Ill4S7RUIIUSHBwpRav5mgpNTUVI4ePer9PCcnh5SUlHA0RQhRE8aPh1274Lzz4Jlnwt0aIYSosJSkmIDHG8Yb614JqV69evHTTz+Rm5uLxWJhxYoVXHrppeFoihCiun35pTsFR1SUuwqByRTuFgkhRIXdmX4ucTFGPANrChAXY+SBjOpdBxyWouypqamMHz+e0aNH43A4uO666+jSpUs4miKEqE6HD8Ptt7s/fvFFOOec8LZHCCEqqXvHVB4a2Y3M1TvIyTWTkhxLep821TqaBjUYqK1atcrv87S0NNLS0mrq7YUQNc1TfeDoUejXD+67L9wtEkKIU9K9Y2q1B2YlhWVETQhRD7z2Gnz7LSQnwwcfgE4KoVS5MG3CiqCEL7WG3LPKqdX3bdAgWLbslC8jPacQoupt3nyy+sDbb0OLFuFtjxBC1FIyoiaEqFpWK9x4I9hscNttcM014W5R3RUg1VFNiLhEyrWA3LPKqer79vjcNeQVWIg2nQx/rHYnSQ1ieP6u3lX2PlVJRtSEEFXrscdgyxZo2xZmzAh3a4QQwis710xUidqcUUZ9tVYWOFUSqAkhqs6338KsWWAwwPz5EB8f7hYJIYRXanIsNofL+3mxxcH+nCJyC6w8PncNWVuzw9i6wCRQE0JUjSNH4Oab3R8/+yxccEFYmyOEECWl92mD06lhtTspMtvJybPgdGk0ahhNXoGFNzI3RVywJoGaEOLUaRrceitkZ8Nll53cSCCEEBGke8dUxqZ3IalBDMcKbBj0OlKSY4mPMRJtMmAwKGSu3hHuZvqRzQRCiFP3xhuwdCkkJsJHH4FeX+5LhBCiOixYsY0lP+7CYnMSE2Vg2KWtGdG/g/frnlxot05ZSUKMwa/WeCSuV5MRNSHEqdm6FR580P3xG29Ay5bhbY8Qot5asGIbi1Zux2p3YtC5d3QuWrmdBSu2lTq35Ho1AJvDRUpybE01NyQSqAkhKs9mc6fisFhgzBi44YZwt0gIUY8t+XEXKGDQ6VAUHQadDpQTx0vwXa+mae6/nU6N9D5twtDyskmgJoSovIkT4fffoXVrePXVcLdGCFHPWWxO9CUKdugV9/GSfNerFVncudTGpnep8RJR5ZE1akKIyvnuO5g2zb0e7eOPoUGDcLdICFHPxUQZ3NOePsGaS3MfDyQctTsrSkbUhBAVd+yYe6oT4Kmn4KKLwtseIYQAhl3aGjRwqiqapuJUVdBOHK+lZERNCFExmuYuDXXwIPTuDY8/Hu4WCSEEgHd3Z7Bdn7WNBGpCiIqZOxe+/NI91fnRR+4qBEIIESFG9O8QcmCWtTWbzNU7yM41k5ocS3qfNhE3FSo9rBAidJs2nUzF8dZbcOaZ4W2PEEJUUtbWbN7I3ITBoJAQY/BWJuDEhoJICeIkUBNChKa4GIYPd6fkuO02ScUhhKjVMlfvwGBQiDa5Q6FokwErTm9lgmkfZ2G2OdE0OJJnZtf+fB4a1b3GgzXZTCCECM3998O2bdCxo7vwuhBC1GLZuWaijP5VVDyVCeZ+vpFiqztIA/fS3GKrk7mfb6zxdsqImhCifIsWwTvvQHS0++PYyMrcLYQQwQSaxkxNjmX3wXzMFieqBjoFYmMMnNk8kS07jwLgU13KPbKWb6nxtkugJoQIbvduuOMO98evvAKdO4e3PUIIEUTJoKzzWY1Y8sPOUtOYrVs0oMh8MhGuqkGR2cnfe/O8I2kllXW8OkmgJoQom8MBI0ZAQQFccw3ceWe4WySEEGUKtEFg4Yq/UH0CLM805uadueh07s99AzCb3eV3rm+hgyiT/1RpTZA1akKIsj35JPzyi7vQ+ttv+88DCCFEhPHdIKAo7r/VIKNgBp2CyaD3C8Y0ID7W6Pe5hntq9NrLa74OqIyoCSECW7kSpk4FnQ4++QSSk8PdIiFEPRVqqozsXDMJMaGHNi4NFFWlZCxntbmIizFgtjpRFCWsiXMlUBNClHb4MNx0k/vjp5+Giy8Oa3OEEPVXefnOfKUmx5JXYPGm3CiXBs4SQ256nYKigNOp0emsxjx/V++q+lYqRaY+hRD+XC648UbIzoY+faRElBAirAJNZxoMijffma/0Pm1wOjWsdiea5v5bV8aKjZSkGIZf2c5vRYdOcQdqaBpOl0p6n5qf6ixJAjUhhL9nnoH//hdSU91TnvqaXzwrhBAewfKdldS9Yyp9L2hJXqGd3YcKySu0c+n5LYiLNngDMkWBuGgDd117LiP6d6DTWY05LSWOZo1iiTLpUTUNnU7htNT4iCgnJYGaEOKk5cvhuefc69IWLIBmzcLdIiFEPZeaHIvN4fI7ZnO4SEkunc8xa2s2q9btIynBxJnNEkhKMLFtTx7DLjuLTmc1JjU5lk5nNfarMOAZhdPrFZo3jqNpo1iSEqK5efA5NfL9lUfWqAkh3Pbvh1Gj3PvRn3kGLr883C0SQgjS+7ThjcxNWHESZdRjc7hwOrWA05JllYXavPNYmWvNundMhfQuZK7eQU6umZQIK84ugZoQ4mS+tKNHoX9/eOKJcLeoTnA6ndx88808+uijdJZEwUJUSkUCqUC7PqOMevYeLuDxuWvK3DXavWNqxARmJUmgJoSAiRPh//4PWrSAjz92T32KU/baa6/RtGnTcDdDiFov1EAq0K7P/CIbZquTvAJLubtGI5H0xkLUd0uXwksvuTcNLFwITZqEu0V1wpdffsl5553H6aefHu6mCFFvdD6rETm5FnYfLGB/ThF5hVYKix00iDOFtGs0EsmImhD12T//wJgx7o+ffz5i8qWFmtwyki1fvpwmTZqwZcsW9uzZw/Tp08PdJCHqNM9GgoQ4E8UWBw6nSkGxA5NRR2K8ye/csnaNRiIJ1ISor+x2uOEGyMuDIUPgoYfC3SKgYsktI9ncuXMBmD17Nn369AlvY4SoBzwbCeJjo0hKiALAaneSV2jH5nD5TYeWtWs0EsnUpxD11YQJ8Ouv0KoVfPBBxKxLq0hyy3AoKipiyJAh7N+/33ts6dKlDBo0iCuvvJL58+f7nX/vvffKRgIhakBZ+dYMeqVUEtyydo1GIhlRE6I++vhjeO01MJlg8eKIquNZ1q6tSJim2LhxIxMnTmTPnj3eY9nZ2cyYMYPMzExMJhMZGRn06NGDNm1O7ZfAli1bTrG11Wv9+vXhbkKtI/esckK9b7FGF/mFNkyGkw+ddqdKUpyBXh1jWLu1iGP5VhLjDVzaJR7FvJ/16/cHuWJkkEBNiPpm40a44w73x6++Cj16hLc9JQTatRUp0xSLFy9m0qRJPPLII95ja9eupWfPniQmJgIwYMAAvv32W8aNG3dK79WpUyeioqJO6RrVZf369XTr1i3czahV5J5VTkXumxbrXjahNyjefGtGNHqd15LNO49hduhp2Swh4ta82my2oA9mkTHXIYSoGXl5kJ4OFgvccsvJgC2CBKrVFynTFFOmTKF79+5+x3Jycmjis1M2JSWF7Ozsmm6aEPVe946pjE3vQlKDGIosTpIaxND3gpasWrevVGqOrK2159+ojKgJUV+4XHDTTbBrF3TtCnPm4FeNOEJEepbwkjRNK3VMicD7KkRdEWxXeMl8a4/PXROwUkHm6h0R26eUJIGaEPXFxImwbJl7Pdrnn0NMTLhbVKZIzhJeUmpqKllZWd7Pc3JySElJCWOLhKi7srZmM2vhBiw2Jy5V43ihlVkLN3B/RtcKVSqIhDWvoZJATYj6YMECePFFd1LbTz+FM86o8CWmz8/ix98PoqoaOp3Cpec1Z8LI7uW/sI7r1asXs2fPJjc3l5iYGFasWMHkyZPD3Swh6qT3l/1BodmBTlHQKQqqCoVmB+8v+yNgoBbJa15DJWvUhKjrsrLgX/9yfzxrFvTtW+FLTJ+fxeoNB1BV9zSfqmqs3nCA6fOzynll3Zeamsr48eMZPXo0V199NUOGDKFLly7hbpYQddLBI8XoFNDpFBRFQadT0Cnu44FE8prXUMmImhB1mOHoUbj1VrBa3RsH7r67Utf58feDgP+SNk1zH58wsipaWrusWrXK7/O0tDTS0tLC1Boh6peSq0I1oKxVobVtzWsgEqgJUVdZrZz10ENw4ABccgnMnl3pzQOekbRQjwshRHVo0SSefdmFqJqGTgFVcz80npYSX+ZratOa10Aiaupz3759pKenA3Do0CEefPBBnnzySb766qswt0yIWkbT4M47id+yBU4/3b15wGQq/3Vl0OkCB3hlHRdCiOowZvDZNIgzoVMUnC4NnaLQIM7EmMFnh7tp1SakQG3nzp3V3Q4KCgpYuHAhcXFxgDux5C233MLkyZNZsmRJtb+/EHXKjBnwwQe4oqNhyRLwyfNVGZee1xxwx3+eP77HhRCiJnTvmMp9w8+n3elJNE6Mod3pSdw3/PxaPWJWnpCmPu+++26MRiP9+/enf//+dOjQocob0qBBAx5++GHGjh0LwNGjR0lNdd94vV4f7KVCCF/ffAMPPwzAnmee4axzzz3lS3p2d1bFrs9gOZCEEKI8tX0qs6JCCtSWL1/Ojh07WLVqFU8//TT5+fn079+fBx98sNoa1rRpU28+IlVVq+19hKhTNm6EG24AVYWnniK/X78qu/SEkd1PeeNA1lZ3iReDQfHLEk56lxrteIuKioiPL3tNixBCRIqQ16i1aNGC9u3b07lzZywWC8uXL6/OdnH99dfz3nvv8fjjj3PttddW63sJUSfs3w+DB0NREYwYAZMmhbtFpWSu3uHNEq4o7r8NBoXM1TtqtB39+vVj7NixfP755+Tn59foewshREWENKI2atQo9uzZQ9euXenduzejR4+mZcuWIb1BUVERGRkZzJs3j9NOOw2ApUuXMnfuXBwOBzfffDMjR558TH/jjTcAd7286dOnV/T7EaJ+KiyEIUNO7vB87z3QRdReISBysoT/73//46effuL7779nzpw5nHHGGQwYMIDhw4fXaDuEEBVX35ZPhBSotW7dmqNHj3L8+HGOHz9OYWFhSBffuHEjEydOZM+ePd5j2dnZzJgxg8zMTEwmExkZGfTo0YM2bao2+VywSvSRYP369eFuQq0k9y0Ap5M2Dz5Iw40bsbZqxbZJk3D5/PxX9T3bftDC2q1F5Bc5SYw30KtjPO2ah1aOKtboIr/QhslwMoi0O1USYgw1+v/WZDJx2WWX0aJFC1q3bs0HH3zA1KlTJVATIsJVtIRUXRBSoPbss88CsGvXLv7v//6Phx9+mNzcXH766aegr1u8eDGTJk3ikUce8R5bu3YtPXv2JDExEYABAwbw7bffMm7cuEp+C4F16tSJqKioKr1mVVm/fj3dunULdzNqHblvAagq3HwzrF0LjRsTvWoV5511lvfLVX3PsrZms2rTJgwGA40So7A5XKzaZKFtm7YhdZJabDYvvP8LdqfLe8xkUBh3w/l0O4VO1mazVejh7NFHH+XXX38lOTmZ3r1788ILL8jPlhC1QEVLSNUFIQVqVquVX375hR9//JEffviBpKQkhg0bVu7rpkyZUupYTk4OTXxSBaSkpLBp06YKNFkI4fXII/DRRxAX5y647hOkVQffNWYA0SYDVpxkrt4RUif5w4Z92J3+SXLtTo0fNuyr0U726NGjKIpC+/bt6dChA+3bt8doNNbY+wshKse3hBScyOGtamWWkKoLQgrULrroIs4991yuuOIK7rjjDm/ajMrQtNKZzJVKZksXol57+WWYPh2MRsjMhAsvrPa3DLTGzOlU2bYnl1unrCx3vcgPvx0o83hNFnh/5513sNls/Prrr6xZs4ZZs2YRHx/P559/XmNtEEJUTkVKSNUFIQVq//3vf71TlR5ms5nY2IpXn09NTSUr62QhZ08KDiFEBbz/vns0TVHggw+gf/8aedvU5FjyCizeEbVii4PsPAuaBjm5ZnJyzfyx6xgNYk20bJpA57MasXnnMe+i3wDPaQBlHq9O+/btY/v27fz555/YbDZ69OhR840QQlRIZUpI1XYhBWpZWVm8+uqrmM1mNE1DVVXy8/P57bffKvyGvXr1Yvbs2eTm5hITE8OKFSuYPHlyha8jRL21cKG70DrArFnuVBw1JL1PG97I3IQVp3u35okgzZeqahSabRw8ovDnrmMkJphIjI8ir8BSY+0sT58+fTAajVxxxRU88MADnH/++TKyL0QtMGbw2by66DfMVidOl4pBryM+zlinS0iFFKi99NJLPPDAAyxYsIDbb7+d7777zlvqqaJSU1MZP348o0ePxuFwcN1119GlS5dKXUuIeufzz2HUKPcmgmefhXvvrdG3794xFdK7kLl6Bzm5ZlwnirIriv+omEuFQrMdFDBbnSQlRHtH4SLBvHnzqqXCihCienlKSHn6oBRJz+EWExPDoEGD2Lp1K1FRUTz99NMVSkK7atUqv8/T0tJIS0urWEuFqO+++goyMsDlgieegCefDEszfMu3pE1w1+ENNHVpd6joFLDaXOw5VIjRoEOvcwdxJZ3eLKE6m1yKxWLhrrvu8psl2L9/P6tXr67RdgghKk5KSAVgMpmw2+20atWKrVu30qNHD+x2e3W3TYh6q2RCx5t1/9Du3pvB6XTX8YyQ5QJRRh02R9kl3k4MuOF0qbhUFU0DnQJGgw6XqqHXKcREGbh58Dk11GK3iRMnMmzYMJYvX05GRgbff/89/WtonZ8QQlRESIFav379uOOOO3jxxRfJyMhg/fr1pTYXCCGqRsl6mE2zfuTMDyeB0wH33w9Tp57Ykx5+1/Zty4Llf5XaheVZ5OvLM+oWH2vk9GYNwzptoSgKd9xxB3l5ebRu3ZqhQ4cyogbX+gkhTk19qk4QUqB25513MnToUJo2bcqcOXPIysqSqUshqolvrrIuG3/gpo+fw+By8sslV9NjxowaCdIWrNjGkh93YbE5iYkyMOzS1ozoX3pNl+fYwpXbUU9EZga9u32qy3/9mqK4AziLzcXzd/Wu9u8hGM8a21atWvH333/TrVs3XC5XOa8SQkSCrK3ZTJu/HrPFgQYcyTWz68BxHhrZrU4Ga+UWA9y9ezc5OTk0b94cgHPOOYerrroqYDJbIcSpy841E2XUc8G6bxnz4bMYXE5WX3otb195Z40EadPnZ/HJ8r8otjjQNA2z1cGildtZsGJbwPNH9O/Ak//qQdPkWE5LieP0pgk0beRO3aNTwGTQE2XUYzLoI2ZnZZcuXXjggQfo2bMn7777Li+++CJ6vT7czRJChGBe5kZ3/4Q7f5qGO1XQvMyNYW5Z9QgaqL399tukp6czYMAA1q1bh6ZpvPvuuwwcOJAjR47UVBuFqFdSk2O5aPXn3LhgKjpN5dv+Y1g0cCxNGld/nqCsrdn8sOFkUlrtRI4iVdNY8uOuMl/XvWMqY9O7kNQghiKLk6QGMaQkxaAoCqqmARqqpqFp7jxI4fb4449z8803c+aZZ/L444+jqirTp08Pd7OEqLeytmbz+Nw13DplJY/PXUPW1uwyz83Jc6f6URRAOfn86jle1wSd+ly0aBFff/01hw4d4t133+Wjjz5iw4YNPPPMMzL1KUR10DTGbc6k+dI5AHw59C6W90rH6dRI79Om2t8+c/WOk1m+FW+TALDYnEFfW3InVtbW7IjMd2Q2mzGZTJx33nmAO6dajx49mDt3Lg8++GBY2yZEfVRyXW5egYU3MjdBepeAFQciKXF2TQg6ohYTE0OzZs3o2rUrWVlZ2O12vv76awnShKgONhuMGUPzua+g6XRkjnyU/1x4DUkNYhib3qVG1l7sO1wIuKcSPKNpnPg4JqpiedA8+Y7anZ5E48QY2p2exH3Dzw/rGpIvv/ySHj160Lt3b7Ztc0/lLl++nIEDB7JixYqwtUuI+ixz9Q4cLpVjx238c7iIY8dtOFwqmat3+J3nGXXz8PRRnn4qyljuaq5aKWjP67tmIyEhgZkzZxIdHV3tjRKi3snLg/R0WL0a4uJQFi0iffBg0it4mZI7oTqfptGtW+CvldwllbU1G7PVUea1h13aOqT39L1upOU7mjdvHgsWLGDv3r289dZbJCcn8+mnn3LnnXfyr3/9K9zNE6Je2ne4kIJim186H4vNidXuAtwxh+8GgkAU3LvQ66KQH5Hj4+MlSBOiOvz5J1xzDWzfDs2awbJlcP75pU4LJdAqOX3wzTorbdu413qUNbXguUbm6h2YTDrsztJ50TqflRxw12ewKYtICtA8jEYjnTp1olOnTkyZMoXmzZuzdOlSWrZsGe6mCRGSUHdk1waePi2/yBbw62aLg+0HLXTrdnIDAZzcQOARF2Os1fehPEEDtWPHjvHee++V+tjjlltuqb6WCVEffP453HwzFBVBly7wn/9AgKAhlIDIN60HQLTJgMWKd/qg5NesOMlcvcP7+uxcM06nu9CxZ+pT8fSIii7gL4jNO4+Ve91IYjCc7PKioqJ48803SUpKCmOLhAjdghXbWLRyOyhg0IHV7nR/DrUuSPHt08qiAd/9dpwRaSU2EHAiWDvRRy18blD1NziMggZqvXv3Zvv27aU+FkKcIpcLJk6EF190fz5iBLz1FpRRQzdQEBYo0EqI8f8nbdQr5OSa0aDU16KMenJyzd7PU5NjOZZvwaDXedNoqJq7esDOfXn8uetYqV8Q0VF6mibHBr1upGrYsKEEaaJWWfLjrhP/Bt1rsQwKOFWVJT/uqnWBmqdPc7mC7wA4WuAka2t2vdtA4CtooPbCCy/UVDuEqD/27oWbboIffwS9Hl5+GR54IGiOtEBBWKBA6+CRQsxWJw6neqK2psqZLdyBVF6Bxa8wus3hIsUnyErv04a/9uTi0jQMJyoLaJp7WiGv0IYS4BeExebC5nAFvW4kKSgoYOXKlWiaRmFhYakNBFJGSkQyi82JocR6eb1S/o7sSJSda8Zud5BfVPa6WI/M1Tu85epKBmZ1dQOBr3LXqK1du5ZWrVpx2mmnsXr1ahYuXEinTp24++670enq/g0SokrdcAN8+qn746ZN4ZNP4PLLy31ZanJsuYFW57MasWXHUe/aDeeJTPudz2pE25ZJvJG5CStOoox6bA5XqZQf3Tumcl2/tnz6/d84XRpGg464GCNGvQ5N0zDo/ANJvQJ2l4bTqQW9biRp3rw5H374IQDNmjXjo48+8n5NURQJ1EREi4kyYLU78Z0tdFViR3YkiIkKbeRd1WDv4YKA5erq8gYCX0H/73766afMnTuX2bNn43Q6uf/++7nzzjvZu3cvs2bNYvz48TXVTiFqt7/+gg4lpiY2bYImTUJ6eXqfNsxauIEjeRa/Yua3Du3sPWfNpoPeck0eyonjI/p3gPQuZK7eEbTG5oj+HWjbMqnUedPmrw/4CyIuxsjYEK4bKXwDMyFqm2GXtmbRyu04VRW94v43iFb2juxIZq3AKKDTpXmndpf8uAuz1YGiKEQbdWzeeYy2W7Mjts+pCkEDtQULFrBo0SKaNGnC66+/zoUXXshdd92F0+nk6quvlkBNiPJoGlx/vXvTgEeXLvDbb1DBEWmHS8PuUNEAl0vDYPCfAzh4pBi9TsHoc12ny8XBI8VA6KkyAp0X7BdEpKXgCObLL78M+vWrr766RtohRGX4Biu1fdfn0ePWCr/G8yDp2YQQZdRH/E7zqhA0UHO5XDQ58cS/YcMGLr74YveLDIaIqdknRMT68Ue47DL/Y99+CwMGVPhSHyz7E6vNicGgQ3di/ZjV5mTu5xtJbRTn3rHpUlHwj/+qaqFtXfkF8e233wJw5MgRdu3aRc+ePTEYDPzyyy907NhRAjUR8Ub07xCR/+7KSx/k4dk9Xt4mgrKEsrGqrgkaqKmqO5+Sw+Hg999/95ZXcTqdmM2Rv6tLiLA4fNidD83H7hbtmHTLKxStsuNYsQSAaJOe9MvbhNTpHjhShKKA7sQDkk4Bl6aSk2fBZNSREGMg97iC06XhcLkw6nXe5JFVVVszUn9BVMS8efMAuOOOO5gxYwatWrUC4ODBgzz55JPhbJoQtVLW1mw+WPYne7MLMeoVkhKiOHikkBfe/5XYaCMtmyZ4g7YFK7bxyfK/KnR9BTDoTw4MhbKxqq4JGqidd955vPjii9hsNho1asTZZ59NQUEBr7/+Oj169KipNgpRO5jN0KcPrFvnd/jBES/xd7N2YPZfk2G1u1i4wt1phRIAlRzD9oyWeZ4smyTFkn2sGE1zr+kw6HWYonRhr60ZiQ4dOuQN0sC9yeDw4cNhbJEQtY8nF1peoc090q/CkXwrmqah6BSsdqff1OTClRUL0gx6hWgTtGrawHsslI1VdU3QRTKPPfYYdrudo0ePMnv2bACmTZvGH3/8wSOPPFIjDRQi4hUXw0UXuXOg+QRp719+K0MnfOkO0sqgapD53x1lft2jeZM4VA1UVUPTNPffgNFndX9ctIGU5FgMep23tuawnkmnPB3gqa9365SVPD53DVlbs0/pepGgSZMmvPrqq+zbt499+/Yxbdo0qU4gRAV5c6Gd2OCk07k/1jQw6Nwj/NEmAwaDQubqHaili54EZNDBWS0a0LRRLEadzm8XeXqfNu6d5nYnmub+O5J3mleFoCNqcXFxPPXUU37HJk2a5FcDVIh668AB6N0b/vnH7/DPZ13IC2mPour0/nVOymC1u8gqZ9fSzYPPYdbCDVhsTmyOk72dw6lx6EgRzU5Mbxr0Ch3OSOb5u3oDsH79+oDXmz4/ix9/P4iqauh0Cpee15wJI7uXOq+2lYgK1YsvvsgzzzzDsGHD0Ol0XHLJJTz//PPhbpYQtYpnGtJo0OF0qXgy+Gi4H0KNJ5K+VXRq0qlCkcVJdJQek1FhbuYm/3VvtWineVWQPGpCVNQnn8DIkaWPDx7Morue5+NVuyt0OQXKXQjbvWMq92d0ZcaC9X6BGkCxzcXBI4UkN4wJ6cly+vwsVm844P1cVTXv5yWDtbq6cDclJYU5c+Zw/PhxGjZsGO7mCFEreaYhExOiOJJnQfV5MtU0SEyIAtxTkxXN9XZnehdeXfQbhWYnmubieKGNVxf9xn3Dz69VO82rQtBI69NPP2XixIkcP36cPXv2cP/993Puuedy4MABZs2aVVNtFCL8fvsNzj7bXT2gZJB2yy3gcMB//sMXP+0PVmAgIA3KfNr0nXbMXL2DIvOJosSKfyEDs03l4FEzHc4of6rzx98Phnw8O9dMlNF/BL0uLNzdtWsXgwcPZsiQIWRnZzNw4EB27twZ7mYJUat4piH1OmicGI1OUdybnnTQMN5EbJQeq91JscVJTm5xha79wbI/OV5kw+kCl6phd7o4XmTjg2V/VtN3E7mCBmqePGrnnHMOX3/9tTeP2uTJk/n+++9rqo1ChMfatdCxozsi6toVtm71//qCBe7HxnffhRPFvi02Z6lF/6EItBDWu1C3wOKddlR9plJLpt5QFPjf7wdZsGJb0PdS1cDzsYGOpybHYnO4/I7VhYW7zz33HI8//jiNGjUiNTWVUaNGlVrmIYQIrnvHVMamdyGpQQyaBu1OT+KpW3vy5L960rxJPEUWJ0kNYjAYFGwOFaM+9Fm4fTmF3v5OUQDNPZ26L6ewer6ZCBb0rpXMo9a7t3vdi+RRE3VScTE8//zJ4arevWFbiaBn4EDIznZHSRkZfl/yLLIvIw4KKtB0pe+0o6IofrucAjHodKCcKNxcRerqwt38/HxvfwYwcuRIioqKwtgiIWqn7h1Tef6u3rz9xJWk92lD5uodzM3cBLinL5+/qzf5hXZ0CmghJnZskhTtfXD0RhonPijrQbMukzxqov766y+YORNO5NYq01VXwZtvQpBdgZ7Rr9hog3d6sjJ8k0bmFVhp1CAKTCe/Hhulw2wrXZgY3CNduhAKNJsMCnZn6QuYDKUfvurywl2bzeZ94Dxy5Ii3vxNChMa3v4qJ0nM034rTqeJ0qX5rygBcmhbyrs+7rz2Pye/+jKad2I/lWxavHo4RSR41UfcdOQJLlsCiRfDdd6G9ZsIEeOopaNCg/HM5OfpVkaH9kq8HeHXRb5itTpwuFVXVyMmzoCgKcTFGAJIbxmAotlNkcQZ8slQ1MOqD92TNmsTzz6HS0wfNykiMWxcX7t54443ceuutHDt2jOnTp7Ns2TJuu+22cDdLiFoja2u2dye6S9Vwudwpg/R6BUVRsDtd2ApdTH7n5wrPMnTvmErL1AT2Hir0xmieXq1lakIVfhe1Q9BA7bHHHmP69Oml8qjt3r3b+7kQYVVc7F47tmkTbNzozmP2008Vv86YMTB+PJx7bqWa4dmmfvBI5Uaadx04zosfrsNm918PpmlwJN9CbLQBm8OF06kxfkQ3undMJW3CkoDXcjiDP7YqKN6cR55yVKqqoVRqdV3tdN1113H66aezevVqnE4nzz77rLdEnhCifO8v+4OCYnupIMx1ohCwpzepaJDmeSj1pCQqstjhRJ8VE2Xg5sHnnGrTa51K51Gz2+3V2jBRxzmdUFgIBQVw/Lj7T36+e/3X/v3uP/v2nfxTVES3qnhfnQ5uuAGGD4dBg8BkKv81IYiNMrA/pxi1ksU1zVZHmXU5nS6NIouzyqYdzTYnTZJiOF5kx+FUMRp0NGxoKnfKtK7p2LEjF1xwAb/99hv//PMPDocDo9EY7mYJEdE8052BRuX9nNgAUFHDLm0NnExJ9MHS37A49HVq2UVFBQ3U7HY7X375JYmJifTv3x8AvV7P999/z4svvsjKlStrpJHVav58eOkl99BFZf9Ahc4/1+EAvb5Srw36vuKkiy6Cvn3h8svh4oshKqpa3sZT527PoYJTu1CQ/32KAm8/ceWpXd+HN/dRvIn8IhsOp4u8AitNG8dV2XtEulmzZrF3714mTJjAPffcQ5s2bVi3bh1TpkwJd9OEiFi+CbDLU5lfSTr8y+l175iKYm5Ct25V8pheawUN1J566in+/vtvioqKOH78OH379uXxxx/np59+4vbbb6+pNlYflwtGjarxt61Y2j8BQHw8ltRUYs49F9q3h86doUsXaNu2ykbFKmrBim189v3f2MuZagzGoHeXWQnWpwVaPJu1NTvoA6un0sH2gxY+/3UN2blmUpNj6XxWIwqL7ezPcec00utAUdxtKCiyl1shoa744YcfmD9/PosWLWLw4ME88cQTXHvtteFulhAR7f1lf5BXaMVVDTsvFSBjQPsqv25dEDRmyMrK4uuvvyYvL48HHniAd999lxYtWrBs2bK6URdPr3cnL50/P9wtqVqe9BLB/pR3ntHoDoA8f3w/Nxrdf2JiIDb25N+ePzEx7j8JCdCwoXtBfoMGJz9u2NBdF7OClS3+XL8+Yp6ssrZm8+n3f1d6qtPD83LPWrFASi6e9TzVxsUaKDKXnq5sEGf0bk74Zl0+cXHRJ9bPFfLnrmMkJkRhMuiwO1VcKpiMCo0axqDXlV8hoS6JiYlh7dq1DB8+HECWcwgRRNbWbPZlF6FXQKdUcl6zDFFGHdf2bes3miZOKneNmslkIjU1lT179nDTTTdx991311TbasbHH7v/1KD1ERRwiMpxFxjWMOiVE4XSK3cdg16hQayR48VlBwm9uzQv9d4Gg0LT5Dh2WY77BXgGvUJstJGcXDOZq3eg0+PNv2a2OkFx/61qGiaDzr1LS6cjLtqApmm1vuJAqJKSknj66afZsmULs2bNYtq0aaSkpFTpe2zbto233nqLmJgYBg4c6Je3TYjaJnP1DlA13MmHqiZIUxT3SFqzxvESpAURdEjDN6ltUlJS3QvShKik7FyzuxDxKUwBNIw3cVpKPNFRhjIDPZ0Cazb5l3byLetkKJEOxKW6g62YKAPZuWZUl8aBI8XsOVSI1eZCUzWsNicul4bdqeJwqlhsTnYdKOBIvqXWVxwI1dSpU0lJSeGNN94gJiYGRVGYOnVqlb6H2Wzm0Ucf5cEHH+Q///lPlV5biJq2c18eVZlpsL5XG6iIoCNqvoFaVDUtxhaiNkpNjsVqc2AtkU4jVAa9QmJCFDaHi6PHLQGfTxUF9DqFg0f8a+SlJsdy8EgRZquz1Po4T4JIs9VBbLSRf3JVUFS/vSeBqJpGQbHDnWC3HmjcuDEjRowgKyuLnJwc7rjjDhISqjY/U9euXdm9ezf//ve/GT16dJVeW4iK8k1Om1rBHZRZW7Mx2yrX1wXiDS08wVo9rDZQEUEDtX379nHnnXeW+thjXnkZ3YWoo9L7tOG5936p9Otjow0oKDidGo4AVQLgZNBVci9B57Ma8cfOowHXtHmmEvIKbe5reP8TnKfjXLc1J8TvoHZbuXIljz/+OO3bt8flcvHEE08wc+ZMevbsWWXvsXnzZlq3bs3ChQv517/+xaBBg6rs2kJUhO9uTU/d4DcyN0F6l4DB2vT5Wfz4+0FvAFVeEu2KClSnWJQtaKD2xBNPeD8eMGBAtTdGiEji+wQaG2VAQ8Nic3l3T7oTO1aOxebEYnPS74KWfLL8rzLPc7o0ok06v92YazcdQtPcnZtvh6coYDLovaWQPMFayfMCMRn0aJpab3KpzZgxg48//pj27d27zP744w8mTpzIF198UWXvYbVaeeKJJ0hOTuayyy6rsusKUVG+dYPBvW7VijPg5qHp87NYveGA3zHHKfR1vk5v5q42AP4PofWx2kBFBA3UrrnmGgByc3NJTk72+9q2ksWqhahDfJ9AdQrsy3Z3Lk0So8krsLD4u+2ndH2HUyMlOZbNO48FPU+nuDN1+z79HjhShF6voNfpsDlOTkdoGj6fa97XGw3u9Wy+5wbi0iAmqn4kj4mOjvYGaQDnnHOO31KPYIqKisjIyGDevHmcdtppACxdupS5c+ficDi4+eabGTlyJBdccAEXXHBBtbRfiIrwVE7xFWXUB9w8VDJIq0qeagOeslP1udpARYTUK6enpzN9+nTvTsUPP/yQ119/nZ9//rlaGydEuPg+gR44UoxOp4AGx4vttGgSj7MKnjBzcos5km8Nek5qozjiog1Y7f5Pv56QwqBTgm5oUDVwqir6EkFIyc31TlUF7WRW8LquR48evPnmm4waNQq9Xs+XX35J27ZtOX78OJqmkZiYGPB1GzduZOLEiezZs8d7LDs7mxkzZpCZmYnJZCIjI4MePXrQpk2bU2rjli1bTun11W39+vXhbkKtE657Fmt0kV9ow2Q4ufnI7lRJiDH4tWn7QUu1tkMx72dQ9wTWbi0iv8hJYryBXh3jUcz7Wb9+f5mvq+8/ayEFas8//zwTJkxg+PDhbNq0iYKCAj799NPqbpsQYeP7BOpwquh17sDGU0ezKrIIHc23uvOnBTnn0NFidIpCw3ijdy1b8yZx7M8uAlVz1+vUtKD19FRVQ9GBQQdO1bNTVEP1JNpV3FMhwy5tXW+2yH/44Ye4XC5eeeUVv+NLlixBURS2bt0a8HWLFy9m0qRJPPLII95ja9eupWfPnt7gbsCAAXz77beMGzfulNrYqVOniN3EJSmGKi6c90yLdc8Q6A0KUUY9NocLIxpj0rrQrWOqd5nHtj151dqObt260a0bjEgL/TX14WfNZrMFfTALKVDr1asXTz75JOPGjaNx48Z8/vnnVZ5zSIhI4imzFG0yuNNwuNwjTsYTT6T6E0FPII0aRpF73FZuIBdqdm9V08grtKNTHDw+dw29uzTn6zW7vdMHRoMOm6PscE+vcye0TTmxtm7zzmPk5Jrrde28P/74o1KvC1RiKicnhyZNmng/T0lJYdOmTZVumxBVrXvHVEjvQubqHaX+7fsu89CkFGFECilQe/nll1myZAmvv/46f//9N9deey1PPfUUV15ZdfUHhYgk6X3a8EbmJqw4aRhv4kiee0qgYVwUVruT+FgTDqeKzaG6g7gTFODYcVu1tEnVNPIKLKxat49Bvc9k885j7D1cgNOlBQ3UokwGv1qhI6qldbWL3W7nhx9+oLjYnfrE5XKxd+9exo8fX+FrBfrlFup6NyFqSveOqQEfyjJX78Bsc1CU5zzlSivRJn2lUxaJsoUUqP3xxx988cUXNGnShMsvv5yePXsyYcIECdREpZxKPp+aUvIJtGVqAhoaVpuLpAYx3Dq0M4DfEyqayuadudXaLs9urc07j3mDSYNBQVNdmG2BgzVDFW+trwvGjx/Pvn37OHLkCGeffTYbN27kwgsvrNS1UlNTycrK8n6ek5MjMw6i1th1IJ9iS9Xs9nYEqXsszy6VF1Kg9t577/k9IXbp0qVKt7GL+qOi+XwigVbi44JiGx8s+xOzzUlqcix3nmj7sIe/AkJLh1FZh3PNFJkd7M8pZvOOo8RE6WnRJJ7mTRLYsf94wNckJURXT2Nqsa1bt7JixQqefvppbrnlFjRN45lnnqnUtXr16sXs2bPJzc0lJiaGFStWMHny5CpusRBVZ8GKbSz5cRdmq6NK+6pgyzlOb9qg6t6ongkpUPv999958803MZvNaJqGqqrs37+f1atXV1vD1q9fz4cffkiTJk24+OKL6dOnT7W9l6g5FcnnE04l03PsPVxQasG+ToHcfAtTdh8jPsZUI9m1i8wOv88tNlfAAM1k0KFp4FJVtCosnlxXpKSkYDAYOOOMM9i+fTsDBw7EYqncjrfU1FTGjx/P6NGjcTgcXHfddXTp0qWKWyzEqSmZxLa6KYBOp2DQ64iNNjBm8Nk18r51UUiB2sSJExk2bBjLly8nIyOD77//nv79+1drw7755hvuvfde2rRpwz333COBWh1RkXw+4ZS5egcOl8rxYmeZSWBVDe+ajmLryaLqkbAeV9XcmwziDDqsVVj6pa6IjY1l6dKldOjQgcWLF9O6dWvy8/NDfv2qVav8Pk9LSyMtrQJb2YSoQYGS2Fa305s1wGJz1utNS1UlpEBNURTuuOMO8vLyaN26NUOHDmXEiOpdkjxmzBhef/11kpKSKCgoqNb3EjXHdzelh83hqtFi4KGskdt3uJBCs92dPy0ETqdGfIyBoipa63GqzmjmnmbIKyiqN4XWK+LJJ5/k008/5eGHH+azzz5j1KhRldpIIERt8OPvB4HqXZZR0pjBZ0twVkV05Z8CcXFxALRq1Yq///6bqKgonM7q/YV0+PBhxo0bx8MPP0xMTEy1vpeoOel92uB0aljtTjTN/bfTqZHe59SSg4bKM6WZV2DxWyOXtTXb7zyHSwUFdCGsgPWc4akAEAk891Z1UWP3tjY588wzeeSRR1AUhZkzZ7Ju3TpuvPHGcDdLiGoRjqLnmat31Ph71lUhjah17tyZBx54gPvvv5+xY8eyZ88eDIbqLTWTmprK1KlTiYqK4vrrr6/W9xI1J1g+n5oQ6ho5g15BIbQOznOGp7ZmJCiyuKccLj07Wp5qfZQ3Pbl06dIaaokQNUenU2o8WIu05Sy1WdBoy7Nm4+6772b37t0kJSVx9913s2XLFiZOnFipNwy1Tl6rVq149dVXK/UeIOVXIpkCXHthNHBiN2I55UN8nep923coj2iTQrHTd02Zxr5DVr9rJ8UpuFxgKSPlRbgY9VBOyU4A7rrqZG3e+vyzVtKTTz4Z7iYIUeMuPa85qzccqLFpT0VBllxUoaCBWs+ePf3Scvgmdpw/f36ZZVbKUpN18qT8SuSqbB61qrhvLX9dw8EjRZitThxOFaPBvSOpZbN4v2trsdnMWrgBVbVXSbmoqpLcMIYjeRY0yl5r0iQp2vu91JeftfJKsHicdtppNG/ePODXfvzxx6pulhARYcLI7gB+uz71OiXk6igl6XSQEGPkeLEj4NdjTHpZclGFgq5Ru+aaa2jVqhU333wzS5cuZdu2bd4/FQ3S4GSdPN9kkL518mJjY7118kTdFOoaserS+axG5BfasDtd6BQNu9NdrLjzWY38zuveMRWTUe8OiE4c0/skjo0yhmc92pE8C6oWOEjTKZAYb0SnhLT0tF665557vB/fe++9fl+bMWNGTTdHiGqTtTWbx+eu4dYpK3l87hou69qSJ//Vg6bJsTSIM1Y6SANoldqAqCgjnds0pk/XFkSb3P2horgfFB++6QJZclGFgo6ovfDCC1gsFlasWMGUKVMwm80MHTqUtLQ0GjSoePI6qZMnfNNe+I5o1VQetc07j5GYYPKOqJlOvP/mncdKlVbKK7Rh1CvodO7Ax+VTKsrurHzKC6NBFzSDdzCevrXk7i0FaN2iIVa7k6QGsvmmLL6zAvv27Svza0LUZllbs5k2fz1miwMNOJJrZteB4zRJjMFgUCjKO7XNgPtzCtE0OF5oIzbawKOjJTCrTuXuCIiJiWHYsGEMGzaMw4cPs2TJEkaPHs0ZZ5zBzJkzT7kBUievfvFNe6HXgdOlkl9ow+WqmV+S2blmEuOj/LL1a5pW5sJXT6tcLhWnzxPoqf5OP9XFvSaDHlXT/AK+mt5BWxv59i0l+xnpd0RdMS9zI8UW97SkZ+lGscXhzmuWGF3pmp6ea7lUDZNBh6ppFBTb+WDZnxKoVaMKzZHk5uaSm5tLXl4ehYWFVdKA1NRUjh496v1c6uTVbf5pLxT338qJ4zUgNTkWW4nV+GXlcWvRJB6Xyz096qzCHVMOp3rKO7BUVUPh5HSsooOkBjGMjeBSXJFARs1EfZCT566ycaKb9dbZVFWN7NzKVeCIMp4MF9z/jNz9t6LAgSNFp9ZgEVS5I2qHDh3iq6++4quvvkKn0zF06FAWL15MamrV/DKQOnn1i2/aC8/0nULNFQ73FDK34iTKqMfmcJU5CtWrSzP+OVRQavTM0+l5jhv0ClEmg/cJtibodO6nWoNOISHGyP0ZXSVAC4Gqqhw/fhxN03C5XN6PAVwuqeAg6gbfPqtk/1XZRxWH8+QrfQefZRy6+gUN1G666SZ2797NoEGDePnllzn77Kqv1SV18uqXVk0bcPBIYYldl0aaN0mokfevSB63tZsOlQrKPB9HGfWoqobBoNCoYTRJDWLYvONoqWtUlud9PVMNmuY+ppw42O705LDkoavttm/fTs+ePb3BWY8ePbxfk6lPUdt5iq17VOUAsqppGHTgVN1LNzRNQ9Pc62ZPS4mrujcSpQQN1NatW0dUVBSffvopn332mfe4pmkoisKGDRsq9aZSJ6/+8oxoNWpoKHdEq7p075gaUmBz4EjRibV0ulJr1FRVQ9U0nC6Nw8fMZOdaqjSpZIxJj9XhQq+c3Mzgfl8VFIXn7+pdJe9T32zbti3cTRCiWixYsY1FK7efWFpycuNRVWqRmsDRPAtOl4pL1dDrFOKijNw8+JyqfzPhFTRQ+/7772uqHaKeCHdlgoryjLHo9TrgZLCmKKCpGmg6QEOnKKiop1xLTwEaJ0Vz97Xn8f6yP9ifXQQ+08Ty9CqECGTJj7tAAYNOByc2anlScOgUhcQEE7kFla+eEm3S89pDfb15MGtD/11XBA3UWrRoUVPtEPVIqCNaNa1kIt6khCiO5ltw+Kxd8gRM9hO7LVWXik5RaBBnoKBIPaXF6joFMvq3Z0T/DixYsY3sY2ZcqobrxKqSKKNOnl6FEAFZbE4MPtsDDXodLtXdd7Vu4U6ndSqBmifoi9T+uy6r3oKdQkQ4T3C273AhZquDhDgjifFR5BVYKDLbS00fBIrDVE0jv9AW0qpanQ7UABtcFQUUneJdX+KZwvDNHt4g3sTd154nnaQQopSYKANWuxODTz+k07n7LHfqnlPbWe9wqmRtzZb+JwwkUBP1RskRs85nNWLVun04XC4Kim2oGuQet6G6NBolxnhHzby7U4NMa6onShiUV24qKSHanTeuRARo0OtQ0LDYnP5TGIBBD05VxWx1SScphAho2KWtWbRyO05VRa+ASwNNhdhoA/tziqvkPd5f9of0QWEggZqoFzylqwwGxVu66rPv/8Zk0mO1Ob0jZxqQV2QnOsqA80QSXpPBXR6lZILZQPQ6JWjOteNFpYM0vc6dj8ipasREGUpNYQDoFffUhhBCBDKifwfAvVbNYnNi1CuoikKxter6jYNHqibgExUjgZqoFzJX78BgUIg2uX/ko00GXKqG2eJAr9OhKJp3KEwD8ov813KEEqTpAFeQNWruac/AX3eqKmjup+IlP+4qNYXh0txTG0IIUXJ2wLOgf0T/Dt6A7d5p/2XPoYIqfV9nDSUmF/6k5xf1QnaumYQY/x93o0GH1e7CoLinHn0DMbtDRX9ifYeqaiFVTlAh6LynZ21aySlUl6oRF2Nk2KWtvZ1sySkMTxAnhKgbygq2ynvN+8v+YF92EUa9jqQG7vW0b2RugnR3/lHPNcsqi3cqJNNgeEigJuqF1ORY8gos3hE1gLgYAzaHC5fmzvCv1yuoLncqjOgoA8Mubc3Xa3ZTZKnaKceSg26J8VF89MxV3s9LTmHEnGiL57gQonYLtBTDE2yVFax5XpNXaEWvuEf5j+RZ0OsVnE6VZ97+2Xuu0VD5kMpkULA7Az9xSgG28JBATdRpnqfWvYcLMFudNIgzkRhvwuZwYdTruez8Fvxv40FsjpMjZpoGTqd7W/v9GV2ZNn89Tkv1DfkHGq3zncIQQtQtvksxDueaKTK7y8898/bP9Onaggkju5f5GpfqztvoKY5ecs0r+Jd7qijfFR6+G6kUBWKijJW+rqg8CdREnRBoGgHwPrU2bhhNvt5GYbEdl0ujZdME7znr/sym2OU/amZ3qixauZ3hV7YjLsaI1eYglOUZlUl4q1VHCnEhRMTyLMXwDdI8Vm84AFAqWPO8xmjQ4XRq7nWtZShv93kwvnWYdTpFll9EAAnURK1X1jRCVJTebwNBUkI0MVEGkhrEeEsw3Tvtv1jtAYpxa4DOPf3YukXDkNd7VCbfrVqVBfmEEBHPsxSjZJDmsXrDAY4V2PzWraUmx3LwSBFOVwhrZn0itcoEbZ4uSXNpOHWKLL8IM135pwgR2XynERTF/bfBoHDwSDFRRr3fuVFGvV/QdeBIEYFqcWuAy6VRbHGQk1u9W9LtzgCBohCizkrv0wZnOdOTngfOrK3ZAHQ+qxH5hTZUTUPv85s70Go0T6Cl00FKcgx6/cmzdLoKrF/TKSx5eSgLnxskQVoYyYiaqPUC7ej0BGg2h8tvA4HN4SIlOda7e6q8lBsAx45bq7bBJeh18rwkRKSrzC7NsnhqHvtuACgp2mTAipPM1Tvo3jGVzTuPkZhgwmx14nCqmIwKjhO701WtdBF2g17h4nObs21PHs0axeJ0quQV2nC4Qh9fKyudkKhZ8htC1HqpybHYHP6jUjaHixZN4nE6Nax2J5qmnSijotH5rEbMWrjBXfA8BM4KdGwVpQDNm0iRdSEimXfHZYHFb3mFZ7SrMrp3TKVP18D1tONj3Yv2fWcAsnPNJMZH0aJJPE0SY9DrFBSdgktzF0yPMuow6BWMBh1nNGvAE7f04FiBzW+2QaNiwVeFRt9EtZERNVHrpfdpwxuZm7DiJMqox+Zw4XRq3Dr0bP7el1cqzcXmncfcWf7D3AcZdBAfa5Ii60JEuEAJs31HuyrLs2Hgx98PegOo+FgjTZNjgZMzAHByXZvLpXEk34KCgk4BvV5Pg7goxgZI7TE3cxMJMQb3Eo48S8AdosFcel7zSn9voupIoCZqPc80QubqHeTkmomO0mPQK8xa+BtmqwOTSYdOgWKLg0+W/wVUbHdmZXZyBmLQK4CCqqkkxJpo1bTBKU2fCBFuVTkdGMnKWl5RFUllJ4zszoSR/puiNE3zPnB6dqd7HkjzCq3uZ0wF0BSSG0aj1+EXNHr+v+QVWDle6O6/ygvSok06rPaTS0HKShMiap4EaqJO6N4xle4dU/06O6vdicOlYjeXXocWcpCGe/jfdQrTn3HRBhonxWC1uZ+O6+ovM1G/VCZpa6RYsGJbhRJKu3dcFnrXhxkNOmKjDTRvklBlbSr5wFmyr/B8/fn3f0XVwGTQkZgQRVy0AU3TvEFj1tZsZi3cgMXmxKVqOEIcRWsYH01b6Z8ikgRqok7xnaKoirVliqJgMugxRisUFAfeSh9MlEnPQ6O6S8cn6pzqmg6sbgtWbGPRyu2guJcfWO1O9+dQZrDW+axG/LnrGCigV9x5Fu2Fdgb0bFSlbfM8cAb7eoczkktVWckvsmO1u7h1ykqOF1pxOFX0Oh0GnYJLodwHTUWBt5+4ssq+D1G1ZDOBqFOyc83eHZ9Gg+6UpyxVTcNoUIiNMlKZzZkN40wR/UtLiMry/bfmUVXTgdVpyY+7TgRpOhRFh0GnA+XE8TK4d1xGYTLoUTX3w1tiQhSbdx6rwZa7pfdpQ7HFyb7sInYfLGDPoQKOHbditjjIyTVjc6juHaCK+0HToHMv/QimSWJMjbRdVI6MqIk6xbemZ2JClHvTwCkqKHbQtX0KUYf0/HOoMKTXKIp72jSv0HbK7y9EJApUP9d38XuksticGEo8dOkVgvYV7h2XJpISorzHfKcba9Lf+/IoNNtLzRiUfCZ1OFVvIK3TuesYB6IocNe151ZHU0UVkRE1Uad4Ekla7U6stopPVQai1yus25pD7y6h74Ay6HXoZWu7qMN8/635pr/xLH6PVDFRBkrGLC7NfbwsZaUAqumgNGtrNp9+/3fI1UxsDpd7U0KQqc8R/dvLqH+EkxE1EbFK7ijrfJpGt26lzyu5MPiCjikcK7CxP6dqKgroFTBbHaxaty/k17jXiCicliI50kTdVN7i90g17NLWLFq5HaeqhlzHsqwUQDUdlGau3oGqau5C6QCnuCM92qSXigO1gARqIiIF2lH2zTorbdtk+/0i8F0YrOBOwbF6wwGaJEWX+x4GvVLuhgPlREeuKAoOV8VKPSXEGiVHmqjTylv8Hok8gUlFdn1275jKD2ckefOd6XQKl57XvMq/9/LSnWTnmjEadFjtroCl7wIJll7IFqjOsYg4EqiJiOS7o6zY6iS/0IbN7mLa/PU8NLKbt/Na8uMuNDQ01b8zOpIXvOxTqNOSyomKxgYdHC+yV+h7uD+ja637JSZEfTCif4cKjSQtWLGN//1+EEUBk8FdDeB/vx+keZNtVTYiFUq6k9TkWFwuFZvdFfJImsmgLzVt6yEFomoHWaMmIpJnR1mx1cmRPAtOl4qigNXm9CvdYrY6UNWqSUirU0Dn85iqKBATZWT4le0wGg2omhb0KdazgQDc69okSBOibqjMTtGK8n04VRT33waDQubqHd5zOp/ViILiij0witpPRtRERPLsKMsvtKGcCKBUwGTUeTuv7h1T3fXrKhGlpSTHkl9oQ9NcuFQNg17H6U3jvWtPSpZjWfLjTtQy6rf7rhVRFPfTT8uUqkuEKYQIr8rsFK2o8qofZG3NZtW6fTSIM1JY7MDuLKNDKsFZVscFxMUYK99gUWMkUBMRybN41+5wodfhDZIS46P8Oq9oow6zrWLrLBLjTcRFG4iLdv/4F1kcHMm3sPdEkfZARdLLShhp1CvEx5owW504XSoGvTtj+ZjBZ1eoTUKIyBUTZcBsdQAu7wMZQGx01QU6gdKd+CayLbY4iDbpSUqIxmx1YtR0OFxlB2GeB8hok4HWzRP4c3eeN2FvKBsoROSQqU8Rkbp3TGVseheiowy4VDAYFBrE6oiLMfptiz+rZRLxsaE9byhAwzgj8bH+navDqaJXFFKTY2iVGo/LpfpNrwLYnYGDQZemcd/w82l3ehKNE2Nod3oS9w0/X6Y9hahDLuiYgqadXGLh+fiCjilV9h4l050czjVz7LjVXVA910yxxUHucSvFJ8pYlbeZYMSA9nw1bRgLnxvE83dfwvAr27krtqju4G34le1kx2ctISNqImJ175jKQyO7eRfYOh22UrmaPCNvReaypyDiovQ0axKP1e7EoNdjtTn9ttkfL7KhqhoHTqTzMBp1JMSa/Erh6HU60FQ0Tk5xKieO18adb0KI0B0rsNEgzkiR2YmqaegUhfhYA8cKqi6htW+6k72HCygyl84DqQFH8tw7P53O4Es+Nu88xgifzyu6gUJEDhlRExHNM7KW1CAGq10jqUGMd/2YZyu7xR58nUixzcWuA+6Oz2Jzeq9XZHEHbk6Xhqq5O0ENsDtUco9b2Xf4ZBWC5k3ivOVYTAbdiUXFSsBpUiFE3ZKda6ZJYgytWzSgzWkNad2iAU0SY6q8MkH3jqk8f1dvkhLKTi/kdGlYbK6g054A2/bk+s0KiNpLRtRExPOMWK1fv55uJzLe+m5ljzHpKSD4VnNV08gvspOSpPcbARs3bVXA8zXwCwBvHnwOsxZuwGJz4lI19DqFuCjJkyZEfVBT5bI8ybuLLaFVVdEpuOt6lqCc+FrJ9B6idpIRNVErebayu1waR49b0elDy4t2JN/CrVNW8vjcNWRtzebgkbKrFzh81qV175jK/RldaXd6Mo0axtDu9GTJkyZEPVET5bIWrNjGwhV/hRykgTtIS0qIKpUXUlEguUF0qfQeonaSETVRK3m2sh88XoyCgl6n4AqhcoCm4ZdM0hVk67pe5/8cI2vRhKifundM5e8LWpaqZlCV/cHn/90RcHSsPPcNP58Plv3JnkMFKLg3XjVuGENcjDFsheNF1ZJATdSI8kqjVFRMlJ79OUXYHO7dT3ot9ALo/xwuxGhwp9EwGfRYyyij0qJJfKXbJ4SoOzw5zJISTDRNjsHmcLFq3T7atkyqsmCtsuWcPA+Qj89dUyPTs6LmSaAmql1ZpVH+vqAlm3ceq3DwlrU1m4Iiu7dOp6aBswJJb50uDafLhd2hEmXUExftLlPlKy7GKLnQxCn5+++/efPNN0lISKBx48bcfffd4W6SqCTfqgHgTm9hxem3MzzcIqVwvKh6EqiJaheok8uzWfn0+79JTY4ps65dsOvFxRiIjjJw7LgFu+Pk9KXuRHJcvV5Bc2mUnNj0JIFEA5eqoWoaj950Ae8v+8O7Xq1Fk3jGDD47YjpgUTvl5eXx6KOP0rhxY26//fZwN0ecgvKqBgTjmU3YdyiPlr+uKfOBtKyNAcEYfcol+Kb3yMk1k1IFMxciMkigJqpdoE6u2OJEVbVKPaF6rme2udDrdOh1GqqqoQFGvZ64eIN7+zoqRp1Cs8Zx7MspPFldwKczdLhUWXsmqsWFF14IwJtvvsngwYPD3BpxKiq769N3NiHapAR9IG3ZNIF/DhWWcaXAru/X1u9z6cvqJgnURLXzdHIHc4pLjXD5KusJ1bNl3Wx1EPtFNnHRBvKL7OQX2lA1zZstXKdTiInSExttICkhyjv0P2bw2Tz//q+gO5Ev7UTCWn2JIuxCVCWbzcYLL7xAv379uOSSS8LdHOGjomtm0/u04YX3f8Huk2TWZFC4dWjnoO/jO5tQ7LSX+UCatTUbhdD7oiijjmv7tpUEtvWEpOcQ1S69Txv2lxGk7Tpw3PtxoCfUBSu2sWjldqx2JzoFrHYnR/MtHDtuxaWeDNIANFXDZNR7k9n6Jsd1J6b1T1gLkrBWVJ/XXnuNP/74gyVLlvDEE0+EuzniBM8oV16BxW/ZRbDksD9s2OcXpAHYnRo/bNgX9L2yc81EGfV+x0o+kHra43S50AWJ1aKMOhLjTUy6rSefvZgmQVo9IiNqotoFe1J1j3Bp2Bwuii1O9Hobt05Z6X3KXfLjLlDAoNPhdLncU5wl1nG4R8cUFAXyCm28M7F/qfeRhLWiqhQVFZGRkcG8efM47bTTAFi6dClz587F4XBw8803M3LkSCZMmBDmlopAKrMx4MffDpR5fMLI7mW+l2d3ukvV3EGY4kCvV/weSH3bE2Uy4HSpoLnTbCTGR5FbYEXVoN3pybLmrJ6SQE2EXZHFnZdI0xy4XKrfU67Z6sCoV1BVDZdKqckBg05Br3cPDLtUtczJA0/CWlloK07Fxo0bmThxInv27PEey87OZsaMGWRmZmIymcjIyKBHjx60aXNqu+22bNlyiq2tXuvXr2f7QQtrtxaRX+QkMd5Ar47xtGseE+6mBbXvUB7RJoVip917TNM09h2ysn79+oCvKWuRv6pR5mu2H7RwNK8Yh9M9l6Ap7hG2GJPCpWdHe1/n254Yo8Zxh4qmgcsBdoeNWJPCwAsSadc8Gsz7Wb9+/yl897VTWfe4vpBATYTdneldmDZ/PVabE5vDRWJ8FHExRqw4URQFlwaqJzHtiR2bHi5NQ8/JtWenpZSd+0wW2opTtXjxYiZNmsQjjzziPbZ27Vp69uxJYmIiAAMGDODbb79l3Lhxp/RenTp1Iioq6pSuUV3Wr1+PFnsaqzZtwmAw0CjRvSZ01SYLbdu0Ddu/s1DWnrX8tXS+MavdSctGMd4SdaV8UnZwVNZrPv91DUkNYmigQn6hDbvDiU5RcGk6vttkYfN+hfQ+bWjZzOptT1wsREU7yT1uRdU0mqck1fsHSt/SgXWVzWYL+mAWsYHa4cOHmTNnDrGxsURHRzN+/PhwN0mEqGRn2fmsRkHPfyNzE1abE70OnE6NI/kWAGKjDUQbddhOPGEC3r/jYwyYrU5UzZ0XzaDXER8nuc9E9ZoyZUqpYzk5OTRp0sT7eUpKCps2barJZoVFpOUWKytfY8kdljWVb8yzO11RFOKiDRzLL6TQouFwqugU2P5PHpPf/YXGDaOxO9zJbqOMevQ6d1mosVKjU5wQsZsJdu3axS+//ML+/ftp1qxZuJsjQhRooe5n3/8d9DUGg4LJqEdDQadTUFDIL7Jhc7g4q2USw69sh+7EKludopCUEEXTRnHExxrR6RQ0wGDQMbDXGdKxiRqnBUi2rNSD3cTZuWacTpUDR4rYc6iAA0eKcDrVsJUs8g0cFcX9d6Bal907pjI2vUvATUdl0QVZ5b9gxbaAx1OTY7E5TlYbKLa6Uwjp9QpH8604VRVV1cjJs1BocWB3qCG3R9QvETuilpqaynvvvUdKSgq33XYbGRkZ4W6SCEGgp2xXOVkco4x6EhOiOJJnQUVDUTTsDs37lNu9YyptWybx6oJ1xMVFE2XUk1doo9jiJCnBRGJ8VLWUdBEiFKmpqWRlZXk/z8nJISUlJYwtqhkxUXr2ZxehUxR0inJiNNzKaanhKb1WkaS0FV0GYdQr2Mroxxau+Aug1C7MkiN3TpfmDeA1tJN5HQGXyx2wndGsQb2f6hSlReyI2ieffILZbMZoNEbsOg1RWqDt6L7ZswOxOVzERRtokhSDQa/DpUJ0lMHvqbJ7x1QGXpDofQq22l0kJphISogO+vQsRHXr1asXP/30E7m5uVgsFlasWMGll14a7mZVO2/eL8W98/rkp+EZTSw5ggVVV+syOqrsMQ1VcxdUL8kzcqfX69ibXYSquUdanU73SFqgu3ToaHG5qUJE/ROxI2rXXHMN06dPJyUlhauuuirczREhCpTBOy7GgM3hKpVWA+CMZg2w2pxYcRIbpUevi8Lp1AIO/bdrHsOINPei0lunrKx0SRchqlJqairjx49n9OjROBwOrrvuOrp06RLuZlU7s81Jk6QYjhfZcThVjAYdDRuasNic5b+4GlTn2jOHI/j3FKygus3mIjU5huJiCwUWrcwdpIriLmvneeCUUTXhUeOBWqg5iDp16sS8efNqunniFAXqLI16PZed34I1mw6hqhpGg464GCNGvc67+L+iaTMqW9JFiKqwatUqv8/T0tJIS0sLU2vCw/NvsIVP0mir3b3GKhyqq9Zl1tZszLZgNVVOjCgG4LsUxOXUEx1j4kieGacr0LpG9+yDPHCKkmo0UJMcRCfV1bwwCtC3SwxrtxZxLN9KYryBS7vE0665QvMGSd6cSwnRGr06xqCY3dver70wGoh2XyRIriDPfet8msY366xYrO71Iw6XhurCLz+RcJP7IapDTe2erIwK1jYPKpTlFE0SAwenJdfNxUUbiG2awOFcCw6HC7vTnftR0YFO0ZF4ovSdPHAKXzUaqEkOIre6nhemWzcYEWBwoazjHp6anhabOwHusEtb+y3Q9b1v3bpB2zbZ3qfn5imSwDaQuv6z5lFeHiJR9aprBKuyQk3PUdE6n9nljG4pQGy0kQUrtrF55zG/66Ymx3LwSBFmqxO7w4mpuJjYaAOtWzQkvU8b3l/2B/uzizDodSQ1iPKmKIqEYFdEjhoN1CQHkSiLp6anu1yUewpl0crtQOndVB6SwFaI8Iqkf4OZq3fgcKkcL3Z618zFRhv81nuFGsz5Sk2ODToVmdoolkKznQXL//KO5B3JNbPrwHEu6JjCn7uOeTda2J0u7IUuBvQ83XvvPIFjTq6ZpAYx8sApSgn7ZoL6moNI+POt6QlgUMCpqiz5cZcUHxZClGvf4UIKzXZ0OsU9MuVSyS+0+aXBqEyS3vQ+bdi842iZ7xsfY2TPoQJvkOYpnlJscbBm0yESE0wnRtRcmE4Ej5t3HmPEifMjKdgVkSnsgVp9zUEk/FlsTkpm8dArhG0HmRCRrqJTeOFW3e11uFRUTcPlPBmYKYr7uEdFcq15hNJGv80ByolgTQOHUyUxPoqkhGiKzWbiYmPRNE02C4gKCXug1qtXL2bPnk1ubi4xMTGsWLGCyZMnh7tZ9dK/Jn/LkXyb9/MmiVG8++RVAUtClVyLcaodbkyUAavdicFnMNWluY8LIfxVZgovnGqivQ6Hs1QKIE1zH/f0YXkFVo4XKiQ3jCYu2t23lFy8HyigrIiSbbA5XAF3p9e2QFuET9h/C9bXHESRpmSQBnAk38bIJ5cRG23ydrAHjxSyZcfRUmsxHhrZ7ZQ6mWGXtmbRyu04VRW94g7S0NzHhRD+Iq3OZnlqor12Z+C9nnan5g0SGzWI4ki+lZxc84kE24rf4v0yA8ogiiyOMr9mOLE5wIoTTdOw2p04nRqdz2pUqwJtEV5hCdQkB1HkKRmkeRSYnTSIj/J2sMeL7AHXYszL3MjbT/QP+h7BdnV6/g6261MI4VaZKbxwCnd7vUGiyb0GOrfAyrHjVjqckew3klVWQJkYbyK/yF7quonxJo4dt6LXKQFL5d1wZXvatkwic/UO9h2y0rKRe7NAbQu0RXiFfURNVJ+qGlr3LQlV1lqMnDxL0GuEsqtzRP8OEpgJEYLalvA53O317cPiYozERhsosjh5/q7efueVFVA6TBp9ujbhx98PoqoaOp3Cpec1Z8LI7t4qKXmFNvIL7aiauzxUbIzR259175jqlypnbuYmdGgcOF50sqpDnCliA20RXhKo1VFVuSak5BoLD9+1GIHKQ/mSXZ1CVJ1ITjYbSLjb69uHFVsc5BZYUTV4fO4avwfYYAHlhJHdmTCy9LU9r0luEE1yA3fS7vIqNERaQXsR2SRQqyUqOjoWytC655r7DhcGfW/PGguns+wyKuXUXZddnUJUoe4dU/n7gpallgpE6rRZdSTHLdknBuPbhx3JtwLQJCmm1ANsZQLKyrymZEF7DUALX0F7EdkkUKsFKjM6Vt6aEM81HS6VguLA69M8xp7oYLftyS3znEZllFDxkF2dQlSdrK3ZrFq3j6QEE02TY7A5XKxat4+2LZMiOlirSNuCPZz69ok6Bbb/k1fmdXQ6/z7MoNf57fr0fYCtTEBZmddEWkF7Ednq9W/J8koW1YTp87MCrnvwVZmFp+WtCfFcM7fQToA1sH48HditU1ZyLN+9Fs134axOAcp5EpRdnUJUnbq+GL28h1PP9+9S4UieBTXI2gtV9e/DEmIMfknVS25qqEwC2oq+JtIK2ovIVs6EVd3lWdxutTv9FrcvWLGtxtowfX4WqzccQD0R9KiqxuoNB5g+P8vvvOxcs99iWCh/x1R6nzbu4X67/7Zwz3C855oOR9nTmSWlJsdi0OvQ6RSijHqijHqMeh1Gg67cRcEj+ndg+JXtiDYZcKruXyzDr2wn69OEqITK9Am1iW8gqijuvw0GxVsg3fP9HztucT80hliFPTU5FpvD5XcsHJswyuufhfBVbwM138XtiqJzL3JXThyvIT/+fhBwr1Hw/PE97lGZzqV7x1TGpnchqUEMRRb3k9pYn6lS32sGGws7venJxa3pfdoQG21AVTVcqoqqujOBx0QZQupgRvTvwMLnBrHk5aEsfG6QBGlCVFKkBBzVpbxA1PP9OxwqZQ3oew5FmU5eJ1ICpPL6ZyF81dupz0hY3K6WMedY8nhld0wFG473XFOvV/xTbvg4vWk8rz3cz+969w0/nw+W/cmBI0UAnJYSx82Dz5EORogaFO5dlNWtvKUbnu/f23MF6MI03Msyrr385D2pjk0NlSU1PkWo6m2gFgmL23U6JWCwptP5Px5WR+fiueYHy/7kn8MFgPsJ1GjQERNl4P6MrgGvL52LEOEXSQFHdSgvEPV8/1M/XIfV7kJR3A/aKif71LgYY8B1x9KHidqm3gZqkbC4/dLzmrN6w4FSOcguPa95qXOro3PxXNOzu6oudvhC1FV1OeAIJRDt3jGVR0dfwKuLfsNsdeJ0qRj1OmLjDNw3/Pw6e29E/VNvA7VIKFnk2d1Z3q7P6laXO3whRO0USr/kWY4hD5qiLqu3gRpERsmisrJdCyGEKJ88aIq6rt7u+hRCCCGEiHQSqAkhhBBCRCgJ1IQQQgghIpQEakIIIYQQEarObSbQTuS6sNvtYW5JcDZb8ELoIjC5bxVXH+6Z59+7FqTmY20hfVjdJfescur6fSuv/1K0utCz+SgsLGT79u3hboYQIgzatWtHQkJCuJtxSqQPE6J+Kqv/qnOBmqqqFBcXYzQaUZRgVSyFEHWFpmk4HA7i4uLQ6Wr3ig7pw4SoX8rrv+pcoCaEEEIIUVfU7kdPIYQQQog6TAI1IYQQQogIJYGaEEIIIUSEkkBNCCGEECJCSaAmhBBCCBGhJFATQgghhIhQEqgJIYQQQkQoCdSEEEIIISJUnav1WRvt27ePefPmERsbS0pKCrfffnu4m1QrHD58mDlz5hAbG0t0dDTjx48Pd5Mi2r59+7j//vvJzMzk0KFDvPzyy8TFxXHBBRcwdOjQcDdP1FLSf1WO9F8VU5/7LxlRiwAffPABzZo1o6ioiG7duoW7ObXGrl27+OWXX9i/fz/NmjULd3MiWkFBAQsXLiQuLg6AxYsXc8sttzB58mSWLFkS5taJ2kz6r8qR/it09b3/kkAtAuzevZvevXvzzDPPMGfOnHA3p9ZITU3lvffeY+bMmXzzzTfhbk5Ea9CgAQ8//DCxsbEAHD16lNTUVAD0en04myZqOem/Kkf6r9DV9/5LArUI0KRJE+Lj4zGZTN4fRFG+Tz75BLPZjNFoJCoqKtzNqVWaNm1KTk4O4C4CLkRlSf9VOdJ/VV59679kjVoEuPXWW5k1axYNGzYkLS0t3M2pNa655hqmT59OSkoKV111VbibU6tcf/31TJ06laioKK699tpwN0fUYtJ/VY70X5VX7/ovTVSbwsJCbfDgwdq+ffu8x7766itt4MCB2hVXXKF9/PHHYWxd5JL7Fjq5V6K6yM9W5ch9C53cq9BIoFZNfv/9d23IkCHaOeec4/0hPHz4sHb55ZdreXl5WnFxsZaWlqb9/fffYW5pZJH7Fjq5V6K6yM9W5ch9C53cq9DJGrVqsnjxYiZNmkRKSor32Nq1a+nZsyeJiYnExsYyYMAAvv322zC2MvLIfQud3CtRXeRnq3LkvoVO7lXoZI1aNZkyZUqpYzk5OTRp0sT7eUpKCps2barJZkU8uW+hk3slqov8bFWO3LfQyb0KnYyo1SBN00odUxQlDC2pXeS+hU7ulagu8rNVOXLfQif3KjAJ1GpQamoqR48e9X6ek5PjN+wrApP7Fjq5V6K6yM9W5ch9C53cq8AkUKtBvXr14qeffiI3NxeLxcKKFSu49NJLw92siCf3LXRyr0R1kZ+typH7Fjq5V4HJGrUalJqayvjx4xk9ejQOh4PrrruOLl26hLtZEU/uW+jkXonqIj9blSP3LXRyrwJTtECTwkIIIYQQIuxk6lMIIYQQIkJJoCaEEEIIEaEkUBNCCCGEiFASqAkhhBBCRCgJ1IQQQgghIpQEakIIIYQQEUoCNVEjNm/ezH333Vfl1920aRNPPfVUpV8/a9Ysvvzyy6prkBCizpH+S4ST5FETtVpmZibLly/njTfeCHdThBCiQqT/EqGQQE3UiF9++YXJkyfTqVMn4uPj+euvvzh8+DCtW7fmlVdeIS4ujrPPPpsxY8bwyy+/YDabefDBB+nfv3+pzszz+dNPP82IESMoLCykf//+vPDCC2W+f1ZWFi+++CKqqgIwduxYBgwYwGOPPUbbtm3p3r2735PtoUOHaNOmDZ988gk7d+5kypQp5Ofn43K5uOmmm7juuuuq94YJISKG9F8inKSElKhxW7Zs4cMPP0RRFG644Qa+/fZbrr32WlwuFw0bNiQzM5Nt27YxatQounfvXuZ1mjVrxn333cfy5cuDdnIAs2fP5pZbbmHw4MFs27aNRYsWMWDAAO/Xzz33XJYsWQK4pyPuu+8+Jk+ejNPp5L777uOll17inHPOobCwkOHDh9OmTRvOO++8KrkfQojaQ/ovUdMkUBM17pJLLsFkMgHQrl07jh8/7v3aqFGjAOjQoQPt2rVj3bp1VfKeAwcO5Nlnn2XVqlX06tWLBx98MOB5//zzD/feey8vv/wyZ511Fjt27GDv3r08/vjj3nOsVit//vmndHRC1EPSf4maJoGaqHHR0dHejxVFwXf2Xa/Xez9WVRW9Xl/qHIfDUeH3zMjI4PLLL2fNmjX873//47XXXuOrr77yO+fYsWPcfvvtPPTQQ1x44YUAuFwuGjRo4H1aBTh69CgJCQkVboMQovaT/kvUNNn1KSKKZwfTH3/8we7du7ngggtITk7m77//xmaz4XQ6+e9//+s9X6/X43Q6y71uRkYGW7duJT09ncmTJ1NQUOD3JFxcXMwdd9zBtddeS1pamvf4mWeeSVRUlLejO3ToEEOGDGHLli1V9B0LIeoK6b9EdZARNRFRNmzYwOLFi1FVlRkzZtCwYUN69+7NBRdcwMCBA2nSpAk9evTgr7/+AuD8889n5syZ3HPPPcyZM6fM6z700EM8//zzzJw5E51Ox7hx4zjttNO8X//444/566+/0Ol0fPPNN94n4CVLlvD6668zZcoU3n77bZxOJ/fffz/dunWr3hshhKh1pP8S1UF2fYqI0b59e3766SeSk5PD3RQhhKgQ6b9EdZERNVEn7Nq1i/Hjxwf82plnnsnMmTNrtkFCCBEi6b9EMDKiJoQQQggRoWQzgRBCCCFEhJJATQghhBAiQkmgJoQQQggRoSRQE0IIIYSIUBKoCSGEEEJEKAnUhBBCCCEi1P8DPJo5e4qgcVwAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Trimming'\n", + "_df = df[(df.cName == cname)\n", + " & (df.updated == 'after')\n", + " ].copy()\n", + "col_name = 'input_size'\n", + "_df[col_name] = _df.input_size\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "# y_plot = (2**30)+np.log(x_plot/5000000)*m1g\n", + "# _df['cMaxRSSRaw'] = (2**30)+np.log(_df[col_name]/5000000)*m1g\n", + "y_plot = 2*(2**30)+x_plot\n", + "_df['cMaxRSSRaw'] = 2*(2**30)+_df[col_name]\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = [36000]*len(x_plot)\n", + "_df['cElapsedRaw'] = [36000]*len(_df[col_name])\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# Current allocation:\n", + "# '-p qiita -N 1 -n 1 '\n", + "# || '--mem (2**30)+nlog(({input_size}*samples)/5000000)*(2**30)'\n", + "# || '--time 36000'\n", + "\n", + "# *** RESOURCE ALLOCATION ***\n", + "# UPDATE qiita.processing_job_resource_allocation set \n", + "# allocation = '-p qiita -N 1 -n 1 '\n", + "# || '--mem 2*(2**30)+{input_size} if 2*(2**30)+{input_size} < 16*(2**30) else 16*(2**30)' \n", + "# || '--time 36000'\n", + "# WHERE job_type = 'RESOURCE_PARAMS_COMMAND' and \n", + "# name = 'Trimming';" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "#### Testing values here \n", + "# (let's ignore this block for now but it will be important in the next round)?\n", + "\n", + "# _df = df[\n", + "# (df.cName == cname)\n", + "# & (df.updated == 'after')\n", + "# ].copy()\n", + "# col_name = 'input_size'\n", + "# x_plot = np.array(sorted(_df[col_name].unique()))\n", + "# _df['cMaxRSSRaw'] = m1g + (_df[col_name]*160)\n", + "# failures_df = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "\n", + "# display(failures_df[['JobID', 'QiitaID']])\n", + "# display(failures_df.QiitaID.to_list())\n", + "\n", + "# formula = '2**30+({input_size}*{samples}*6)'\n", + "# samples, columns, input_size = 451, 51, 2345108\n", + "# formula = formula.format(samples=samples, columns=columns, input_size=input_size)\n", + "# value = eval(formula)\n", + "# print (formula, value, naturalsize(value, gnu=True, format='%.0f'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### update_sample_template" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GunevTtpaWm4XC4uvPBCXnzxRe6++25effVVZsyYwYMPPohSCpPJxPz584mMjCy3nPHx8dx5551MnDiR8PBwjEYjTz/9NO3bt6dv374MGTKEJk2a0Lp1a9q0acNff/1V5hueP82bN+fFF1/k0KFDxMfH849//MPrcYvFwmuvvcasWbN46623cDgc3H///XTr1s3vfqt73uWVtfTrUlJtvg5ChBK5f506V7l/yf2rNE2Vrj8WDcq8efM4ceJEo8hZU3rkWChrTK+LEFXVmD4ncv8S5ZEaNVHjvvjii3KTMyYnJ3PLLbfUcYkq9ueffzJp0iSfj5199tle/SeEEA2X3L9EqJEaNSGEEEKIECWDCYQQQgghQpQEaqJOzZs3jxkzZlS43ebNmxkzZgxDhgzhxhtvJCMjA4DU1FS6devGyJEjGTFiBEOHDuX222/3PF7aDTfc4Jn/b8qUKaxfv77cY+bk5JCcnOw1T92OHTtISUlh+PDhpKSksG7dOp/PrWi7jz/+mGuuuYYhQ4YwYMAAbrrpJjZv3lzhdRBC1Jzq3n8qs92CBQu46qqrGDhwIPPmzSuTTqSi7dz3lJEjRzJq1CjPCFdf55Samgro98d58+b53G716tUkJyczePBg7rvvPvLy8nxu98EHHzBs2DCGDx/OnXfeyfHjxwHIzc3lvvvuY/jw4QwdOpQ33njD5/OdTidPP/2055wWLlzoeWz37t2MGzfOc04//vijz32IUuoqs64QSukZrZ966im/21itVnX55ZerjRs3KqWU+vDDD9Utt9yilPLOaO02ffp09dhjj/nc1/XXX68OHDiglNKze//0008+t1u9erUaNGiQOv/889WWLVs86/v166c++eQTpZRSGRkZatCgQSojI6PM8/1t9/zzz6uUlBR18OBBz/Zr165VPXv2VIcOHfJ7LYQQNae6959At1u9erUaOXKkys/PV0VFRWr8+PHqq6++KrMPf9sNHz5crVixQiml1B9//KG6du2qrFarz3P69NNPlVL6/fHll18us83x48dVr169PDMn/OMf/1DTp08vs93WrVs9MxMopdSzzz6rHn/8caWUUjNnzlRPP/20Ukqp/Px81a9fP/XLL7+U2ccHH3ygbrnlFmW321V2drYaPHiw2rx5s1JKvx9//PHHSimlfv/9d3XRRRcpu91eZh/Cm9SoiYBd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AzabjYsuuoglS5ZU5aUA9Jvk0aNHueGGG3C5XLRo0cIzp+CcOXM8TaIGg4EhQ4YwcuRIQO+g26lTJ8aNG8cjjzzC5MmT+fzzzzEajTzzzDOepu3/+7//IykpiVmzZpGVlYXL5ULTNK688kpPzZ0QDcmoUaP4+eefGTp0KBEREbRo0YIJEybQtGlTZsyYwYMPPohSCpPJxPz584mMjKRt27YYjUbGjh3Lxx9/zLRp0zyfr5I6dOjA3XffzY033ojdbueCCy7wdLZfuXIlixYt4s0332TUqFHs37+fq6++GqPRSNu2bSv1ub766qt56aWXiImJ4Z577vEc/6qrruLOO+/khRde4PHHH2f+/PlYLBZeeumlKn/xaojn1FjJzARCVJLMHyqECKaS952Sc32KhknCWiGEEEKIECU1akIIIYQQIUpq1ESdmT59OldeeaUnQ78vW7du9QwNr84UVzWlsLCQhx56iCFDhjB48OAqTYclhGgY5B4mgkEGE4g6s3jxYlavXu13aHbnzp15+eWX67BU/s2bN4/IyEi++eYbDh8+zP/93//RqVMnGV4uRCMk9zARDFKjJurEddddh1KKW2+9lY0bN/Kf//yHlJQUxowZQ9++fT05kMqb7L28qazWr1/PiBEjSElJYcSIEdhsNp/TyQDs2bPHc8zRo0fz4YcfAnpen5EjR3qydpf03Xffcc011wB6TqBLL73UM1xdCNF4yD1MBIvUqIk68dFHH9G+fXveffdd4uLimDBhAs8++yxnnXUW6enp9OvXjwkTJlRp37t27eK7777jjDPO8Ewn89577xEXF8euXbu46aabSEtL4+233+bKK6/ktttuIzMzk9mzZzNu3DiSkpJYunSpz32XnoZFpj8RonGSe5gIFgnURJ3TNI0FCxawevVqvvzyS/bs2YNSypNwsbJOP/10zjjjDACv6WRKHm///v0MHDiQRx99lC1btnDJJZcwbdq0CvP5VHYaFiFEwyf3MFGXJFATda6goIDRo0czYMAAunfvztVXX813333n84biS+mprNxTLAF+p5Pp0KED3377LWvXrmXdunW8+uqrLFq0iNatW5d7LPf0U+5EvxkZGT4nUBdCNB5yDxN1ScJqUef++usv8vLyeOCBB7jyyiv5+eefPdNKlSeQqawAv9PJPPTQQ3z99dcMGzaM6dOnEx0dzZEj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z4wZMwCYPXs2mzdvJj8/H6UUTz/9NN26dWPKlCmEhYWxdetWjh07xpAhQ4iPj+c///kPmZmZPP3001xyySVMmTIFTdPYs2cPWVlZ9OnTh2nTpmE2m73K8PHHH7Nw4UJcLhexsbE8/vjjnHvuuWzcuJFnn30Wl8sFwO23387gwYO9njt8+HDS0tLo1KkTAwYMICEhocw5fvLJJ7zzzjsYDAbi4uKYM2cOp59+OosXL+b999/HYDDQvHlzHn/8cc4++2yv57Zv355169YRHx/vtbxr1y5eeOEFEhMT2bVrFxEREdx77728//777N27l0GDBjF16lTWr1/P3LlzadWqFbt27cJms/HEE0/Qq1evgM5PCFE+uX/J/atBU0IopT777DP1t7/9TSmllMPhUI899pjat2+f+uWXX9S9996rnE6nUkqp119/Xd1+++1KKaUeffRRdc011yibzaYyMjJUu3bt1HvvvaeUUurf//63uummmzzbjRo1SuXl5Smr1arGjx+v3n//faWUUu3atVPHjx9X69evV9ddd50qKChQSin1448/qiFDhiillJowYYL68ssvlVJKbd++XT355JNlyu9yudRvv/2mCgsL1f/+978yj2/fvl317NlTHT58WCml1DvvvKMef/xxtXbtWjVgwAB1/PhxpZRSn376qRoyZIhyuVzq0UcfVW+99ZZXOd3cyz/99JPq2LGj+v3335VSSt18883q2muvVVarVR0/flydf/756ujRo57t3GV7++231fjx4wM+PyFE+eT+Jfevhkxq1AQA3bp1Y+7cudxwww307t2bG2+8kTPPPJMzzzyTpk2bsmjRIg4cOMD69euJioryPK9fv36YzWYSEhKIjIzksssuA6B169ZkZ2d7ths9erTneSNHjmTlypVcf/31nsdXr17NX3/9RUpKimfdyZMnyc7OZsiQIcyYMYNVq1bRu3dvHnzwwTLl1zSNCy64AICOHTuWeXzdunVceumlnH766QBMnDgRgH/84x8MHTrU801zzJgxzJo1i4MHDwZ87Vq2bMl5553nOe+YmBgsFgvx8fFERUVx8uRJAFq0aOEp23nnncdnn30GEND5CSHKJ/cvuX81ZNJHTQDQqlUrVqxYwW233UZeXh433XQTy5cvZ/Xq1dx+++0A9O/fn3Hjxnk9z2KxeC2bTL5jf6PR6Pm/UgqDwfut53K5GDlyJEuXLmXp0qV89tlnfPrppzRt2pSUlBS++OIL+vTpw3//+19GjBhBbm5upc7PaDSiaZpnuaioiD179qB8THWrlMLhcJS7L5vN5rUc6DUIDw/3/F/TNM+xa+L8hGjM5P51ity/Gh4J1AQAH330EX//+9+59NJLmTx5Mpdeeim7du1izZo19OvXj+uuu47OnTvz3Xff4XQ6K73/b775BpvNhtVq5bPPPqNfv35ej/fp04evvvqKjIwMABYuXMiNN94I6DeC7du3M2bMGGbOnElOTo7nW16gevbsybp16zz7X7RoEf/85z+59NJL+frrrz0jtz799FNiY2M588wzvZ4fHx/P1q1bAVixYkWlz9+fmjg/IRozuX/J/ashk6ZPAcCoUaP4+eefGTp0KBEREbRo0YIJEyZw7NgxHn74YZKTkzEajXTv3p20tDRPx9FAhYeHc91115GTk8PgwYO5+uqrvR6/7LLLuPXWW/nb3/6GpmlER0fzyiuvoGkaDz/8MLNnz+bFF1/EYDBwzz330LJly0odv3379kyePJlbbrkFgISEBGbPnk1SUhITJ07kxhtvxOVyER8fz+uvv17mG/O0adOYMWMGTZo0oXfv3j47+1ZVTZyfEI2Z3L/k/tWQacpX3akQNWjKlCm0bduWm2++OdhFEUKISpH7lwg2afoUQgghhAhRUqMmhBBCCBGipEZNCCGEECJESaAmhBBCCBGiJFATQgghhAhREqgJIYQQQoQoCdSEEEIIIUKUBGpCCCGEECHq/wG3SU7MPKOTqQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'update_sample_template'\n", + "_df = df[(df.cName == cname)\n", + "# & (df.updated == 'after')\n", + " ].copy()\n", + "col_name = 'samples * columns'\n", + "_df[col_name] = _df.samples * _df['columns']\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = (m1g)+(x_plot*2000)\n", + "_df['cMaxRSSRaw'] = (m1g)+(_df[col_name]*2000)\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = [2300]*len(x_plot)\n", + "_df['cElapsedRaw'] = [2300]*len(_df[col_name])\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'set: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# No changes needed! " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deblur 2021.09" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAFBCAYAAADjZM6SAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8/fFQqAAAACXBIWXMAAAsTAAALEwEAmpwYAACpsklEQVR4nOydd3wU5faHn9maThIgQUAuF0FAAQsIKhYEASkBCagoiiiKDQsWVMSLDRTFAhawY0GKGkV/cimCWMBCwEtREFBBahLSy9aZ9/fHZCfZZNPLprzP53LNzM7OnJ3svDnvec85X0UIIZBIJBKJRCKRNDtMwTZAIpFIJBKJRBIcpCMokUgkEolE0kyRjqBEIpFIJBJJM0U6ghKJRCKRSCTNFOkISiQSiUQikTRTpCMokUgkEolE0kyRjqCk0hw+fJju3bszevRoRo8eTUJCAomJiXz++eeVev/AgQPZuXNnqf0///wzI0eOrJFtmqbx7LPPMmLECBISEpg6dSoZGRkAOBwO7rvvPoYNG8bQoUP5+uuvjfd9//33JCYmMnr0aMaMGcP333/vd163280NN9zA6tWry7z2J598wrBhwxgyZAizZs3C4/EA+v2aPHkyw4YNY+zYsaxatapGn1EikdQMOYYFRo5hzRwhkVSSQ4cOiTPPPNNv3+HDh8Wll14qVq9eXeH7L7nkErFjx45S+3/66ScxYsSIGtm2YsUKMXHiROFyuYQQQsydO1c88MADxs8zZ84UQghx5MgR0b9/f3Hs2DGRk5Mj+vbtK/bu3SuEEGL37t2id+/eIjc3VwghxLZt28To0aNFz549xX//+9+A1/3jjz/ERRddJNLT04WqqmLatGnijTfeEEIIMWHCBLFgwQIhhBC5ublizJgxYvfu3TX6nBKJpPrIMaw0cgyTyIigpEa0a9eOu+66i7fffhvQZ59z5sxhzJgxjBo1ioceeoi8vDzj+I8++ogxY8YwYsQIPvnkk1Lne+ihh4xzldweOHAg99xzD8OGDWPdunV+7+vcuTPTp0/HZrMB0KNHD44ePQrA119/zRVXXAFA27ZtueCCC/jvf/+Lx+Nh1qxZdOnSxTiHEILMzEwAPvjgA+655x7OOOOMMj//+vXrGThwILGxsZhMJq666iq++OILAH777TfGjBkDQEREBP369Stlt0QiCS5yDJNjWHNHOoKSGtOtWzf27t0LwBtvvIHZbCYpKYkvvviCuLg45s2bZxxrt9v57LPPeOedd3j++efZt29fla7VpUsX/vvf/zJ48GC//WeddRann346ANnZ2bz22mtcdtllABw7doyTTjrJODY+Pp7jx48TGxvL8OHDjf0LFiygY8eOnHzyyQC88MILDBgwoFx7Sp67TZs2pKSkANCrVy+SkpIQQpCRkcF3331HWlpalT6vRCKpe+QYJsew5owl2AZIGj+KohASEgLAxo0byc3NZfPmzQB4PB5atmxpHDt+/HhAH8guuOACfvzxR7p27Vrpa/Xp06fc1//55x/uuOMOzj77bCZMmACACKCiaDIVzYG8Xi/PPPMM3333HYsXL660LRWde+7cuTz99NOMGjWKdu3aMWDAAJxOZ5XOL5FI6h45hgU+txzDmgfSEZTUmJ07d3LqqacCesLzjBkzuPjiiwHIz8/H5XIZxxYfvIQQWCz+X0FFUfwGJl/Sso+wsLAy7fjpp5+YNm0aN910E5MnTzb2n3TSSaSlpdG6dWsAUlNT6datG6DPvO+66y6EECxfvpyYmJgqffaTTjqJ1NRUYzslJYU2bdoA4HQ6efrppw2bZ82aRadOnap0folEUvfIMUyOYc0ZuTQsqRF///03r732GjfeeCMAF1xwAUuWLMHtdqNpGo8++igvvPCCcfxnn30GwNGjR9m8eTPnnXee3/liYmLYtWsXABkZGSQnJ1fKjm3btjF16lTmzp3rN4ACDBo0iOXLlwNw/Phxvv/+ey655BLcbjc33ngj7du355133qnyAAp6zs+GDRtIT083BuJLL70UgJdffpmlS5cC+n1av349Q4YMqfI1JBJJ3SHHMDmGNXdkRFBSJZxOJ6NHjwb0mbHdbufee+818lBuv/125s6dy5gxY1BVle7du/PQQw8Z73e5XIwZMwaPx8PMmTP597//7Tcbve6667j//vsZOnQo7du3p2/fvpWy6+WXX0YIwfPPP8/zzz8PQPv27Xn11Ve58847eeyxxxgxYgSqqvLAAw/QoUMHvvjiC3bt2oXb7Wbs2LHGuZ599tlyl3rWr1/PsmXLePPNN+nWrRt33HEH119/PR6PhzPOOIObb74ZgOnTp/PAAw/w+eefYzabefrpp/1ycSQSSf0jxzA5hkn8UUSgBAGJRCKRSCQSSZNHLg1LJBKJRCKRNFOkIyiRSCQSiUTSTJGOoEQikUgkEkkzRTqCkmrz8ssv88QTT1R43KpVqxgxYgSjRo1iypQpHDlyBChfW9PHnj17uOCCC8o89/jx4w3d0NGjR9OrVy+eeuopALp27crAgQNL9cl65ZVX6Nq1a0DN0KSkJF5++WVA1w8tniRenKNHj3LLLbdw+eWXk5CQYOh7vvHGG372XHjhhZx99tkBz/HOO+8Y92XSpEn8888/xmuZmZk8+eSTDB06lJEjR3LppZfy+OOP+ykcSCRNmcqOL9u3bycxMZFhw4Zx/fXX+xVuVOa4yoxDxQmk3VveOFScyowvmzdv9jvX0KFD6dq1q1GJXBY7d+5k4MCB5R5T22zYsIG+ffv62RtojMrIyOCmm25i+PDhjBw5km3bthmvffDBBwwdOpTRo0dz7733kpWVVeb1hBCllFuKM3Xq1Ep9ZyQlqE89O0nTYsGCBeLxxx8v95i///5b9OnTR+zZs0cIIcQvv/wiEhMThRDla2t6PB7x7rvvivPOO6+UNmhZfP3112LYsGEiJydHCCHEqaeeKgYMGCB++eUX4xhN08SwYcPEOeecE1Az9NNPPzW0NX/66Sfx4IMPBrxWQkKCWLJkiRBCiN9++0306dPH+Bw+srOzxZAhQ8TGjRtLvX/Tpk1i2LBhhibohx9+KK655hohhK7pOWTIEPHyyy8Lt9sthBDC5XKJJ554Qtxyyy2VuhcSSWOnMuOLy+USF110kUhOThZCCLFkyRJx0003Vem48sahklRGu7fkOFScyo4vxbnzzjvFvHnzKjxux44d4pJLLqnwuNpk3rx5YuHChRUed9dddxnH/f777+KCCy4QBQUF4scffxQXXnihOHbsmBBCiM8++0zceeedAc+xf/9+cd1114levXqJt956q9Trb7zxhujXr1+F3xlJaWREsJlSUvMyJSWFO+64g8TERBISEli0aJFx7KJFixg3bhwJCQlceumlAbUmly5dyiOPPFJq/549e+jWrZvRyuCcc87hyJEjHD58uFxtzd9//50//viDBQsWVOrzZGVlMWvWLObOnUtkZKSxf9SoUYZuJsDWrVvp3LkzERERlTpvIHbv3k12djbXXHMNAKeddhofffQRiqL4HTd37lwuvPBCozFtcVq1asVjjz1m2NGzZ0/js69YsYKOHTsydepUrFYrADabjenTp9OrVy80Tau27RJJfVBf48vOnTuJiIigd+/eAIwbN44ff/yRzMxMUlJSGD16NCkpKeUeV944tH79eqOVClSs3VvWOFRdVq5cyeHDh7n77rsDvv7RRx8xdOhQxo4dy0cffWTsP3HiBLfffjtXXXUVAwcO5LrrriM9PZ2tW7dy8cUXG2OIw+HgvPPOIz09nY8++ohRo0YxduxYrrnmGvbv31+hfb/++is//fQTiYmJXHPNNWzZssV47eabb2b9+vV4vV42btzIlVdeCUD37t3p2LEj33//Pb/99hvnn3++0cB6yJAhbNiwAbfbzc6dO402PwBLliwxIrol+emnn/j+++8N1RdJ1ZB9BJsxXbp04aWXXgJg4sSJTJo0iYEDB+Jyubj55pvp0KEDZ5xxBps3b+bDDz8kJCSEr776igULFpTSybz66qsDXuO0005j79697N69m+7du7NhwwaysrJIS0vjrLPOMo7zaWv6HuRevXrRq1cvDh8+XKnP8uabb3LxxRfTs2dPv/0jR47kuuuu49FHH8Vms/HZZ58xZsyYCpdZyuPvv/+mXbt2PP3002zbtg2z2cxdd91lCL8D7Nu3j6+//pqvv/464Dl8KgagLzXNmzfP0BVNTk4OuBxut9u5/fbbq223RFKf1Mf4cvz4ccOJAH3CFBsbS0pKCt26dWPlypWA/kyVdVx549CgQYMYNGiQ8bqvsXRZS5NljUPVwe1288ILL/D888+XUi8BfUL6yiuvsHLlSlq3bs1//vMf47WvvvqKM888kylTpiCEYMqUKaxcuZIbb7yR6Ohovv/+ey6++GK++uorzjvvPKKjo5kzZw4bNmwgLi6Ozz//3Jg0l0d0dDSjR49m8ODBJCcnc8cdd7By5UratGnDm2++CUBaWhqaphEbG2u8z6eV3KtXLz744AOOHDlCu3btSEpKwuPxkJWVRc+ePY3fH2B8vp9++snPhpSUFGbPns3bb79tNN2WVA3pCDZjfJqXBQUFbNmyhezsbObPn2/s27NnD8OHD2fu3Ll8+eWXHDx4kO3bt5Ofn1/pa3To0IE5c+Ywa9Ys3G43gwYNolu3bkakCwJra1YFl8vFihUrSEpKKvVay5Yt6dWrF9988w0XX3wxycnJPP7441W+RnG8Xi/btm3jxhtv5OGHH2bHjh3cfPPNfPHFF8THxwPw/vvvc+2111YYFcjIyOCuu+4iIiKCadOmAXoeTPHo4hdffGH84cnIyDCawEokDZn6GF/Kio6bzeYqH1eX41B1WLNmDR06dChTm/jHH3+kf//+huzcVVddxQ8//ADA9ddfT3JyMu+++y4HDhxg3759RhRzwoQJrFixgosvvpjly5czffp0zGYzl112GePHj2fAgAH079+fhISECm185ZVXjJ/79OnDWWedxaZNm/yaW5d378855xzuuOMOpk6diqIojB07lujoaL+/D+Xh8Xi49957mTFjBnFxcZV6j6Q00hFsxvj0IzVNQwjBsmXLCA0NBXSHw26389tvv3H77bczadIk+vfvzznnnFMlR8rtdvOvf/2LFStWALoT9d5779G+fXugbG3NqvDdd9/RrVs3Tj755ICvX3755XzxxRe43W4GDhwYcHZdFeLi4oiKijJkmHr16kX79u3Zs2cP8fHxqKrK2rVr+fTTT8s9z549e7j99tu59NJLefDBB40/SmeddRa//PIL1157LaAvb48aNQrQl9xKapdKJA2R+hhffBq8PjweD5mZmcaErLLH1cc4VFVWrVpFYmJima+X1DQu7tQ+99xz7Nixg7Fjx9KvXz+8Xq9xbEJCAi+88AI//fQTBQUFnHPOOQDMmzePvXv3snnzZt58800++eQTFi5cWOb1c3Jy+Oijj7jllluMiasIoL3csmVLQI+2tmjRAtCjePHx8eTl5dG3b1+uuOIKQF/SXrBgAdHR0ZW6R7t27eLw4cM888wzxvtVVcXlcjF79uxKnUMiq4YlQEREBGeeeSbvvvsuoD/gV199NevXr2fLli306NGDG264gb59+7J+/XpUVa30ud1uN1dffTXHjh0DYPHixfTu3Zvo6OhytTWrwi+//FJK77M4gwYN4tdff2XJkiWMGTOm2tfxcfbZZ2Oz2diwYQMAf/75J4cOHTKidHv37iUqKspwdgNx8OBBrr/+em6//XZmzJjhN4j78nPeeust3G43oA+wP/zwA1lZWaWiHRJJQ6Yux5czzjiDrKwsowr1008/5cwzzyQqKqrSx9XXOFQVhBAkJyeXe77zzz+fTZs2cfz4caBIAxnghx9+4Prrr+fyyy+nZcuWbN682bivoaGhjBo1ihkzZhhL4BkZGVx88cVER0czadIk7rnnHv74449ybQwPD2fJkiWsXbsW0PO6d+zYwYUX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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Deblur 2021.09'\n", + "_df = df[(df.cName == cname)\n", + " & (df.updated == 'after')\n", + " ].copy()\n", + "col_name = 'samples + input_size'\n", + "_df[col_name] = _df.samples + _df.input_size\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = (14*m1g)+(x_plot*5)\n", + "_df['cMaxRSSRaw'] = (14*m1g)+(_df[col_name]*5)\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = x_plot/np.log(x_plot)/360\n", + "_df['cElapsedRaw'] = _df[col_name]/np.log(_df[col_name])/360\n", + "\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# *** RESOURCE ALLOCATION ***\n", + "\n", + "# UPDATE qiita.processing_job_resource_allocation set \n", + "# allocation = '-p qiita -N 1 -n 1 '\n", + "# || '--mem (14*m1g)+(({samples}+{input_size})*5) if (14*m1g)+(({samples}+{input_size})*5) < 70*(2**30) else 70*(2**30)'\n", + "# || '--time (({samples}+{input_size})/np.log({samples}+{input_size})/360) '\n", + "# || 'if (({samples}+{input_size})/np.log({samples}+{input_size})/360) < 90000 else 90000'\n", + "# WHERE job_type = 'RESOURCE_PARAMS_COMMAND' and \n", + "# name = 'Deblur 2021.09';" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Split libraries FASTQ" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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HcWoUaP8nq9Lly7617fffrs4fPhwoa89f/580b59e5/32qdPH7F69WohhBB///23aNOmjXA4HAWea7PZxGuvvSbatm1b4P29+uqrYsiQIeLIkSP6fevXrxft27cXR48eLbQ9klQdBdOfOBwOcd1114nk5GQhhBCffPKJuOeee4p13Nq1a0W/fv1ETk6OsNvtYtiwYWLFihUFzpGTkyPatm0rnE5ngcdefPFFMWXKFCGEEEePHhWdOnUSx48fL3DcF198Id544w0hhBAbN24Ujz/+eIFjTp48Ka688kpx7NgxIYQQH330kbjrrrsCfg5CCLF9+3affqysORwO0aFDB/Hnn38KIYRYs2aN6N69u99jBw0apPf5a9euFb169RKqqoq///5bXHfddeL06dPC4/GI8ePHi/nz5xd4/rp160TPnj1FVlaWEEKIjz/+WNx2221CCCEmTpwonnzySeF2u4XD4RD33HOPWLNmTVm85SpJjuRJgDaS9fDDD9OzZ09Wr15NSkoKDzzwAAMHDiQxMZF58+bpx86bN4+bb76ZxMREunXrxurVqwucb9GiRUyePNnva/3+++/873//o3///tx99938/fff+mOnTp1i+vTpTJw4MWB7P/nkE/2qPL9rr72Wffv2ceLECf2+L7/8kr59+xb5ORRl48aN/PLLLwwZMsTn/i+//JIbbrgBgEOHDhEdHe03+eqvv/6KzWZj5syZPvefOnWKhQsXMnv2bM477zz9/quvvponnnhCz1slSVVBefUnO3bsIDIyUk/NcfPNN7NhwwbS09NJSUmhX79+pKSkBDxu9erV9OnTh/DwcEJCQhg4cCBff/11gdfdvn074eHhjB49msTERGbOnIndbgfg+++/Z/DgwQA0aNCAa665hm+//bZEn12dOnVYt24d9evXx+12c/ToUWJiYvwe++mnn9KjRw8GDRrEp59+qt9/6tQpxowZw6233krXrl0ZPnw4p0+fZsuWLVx//fV6rj6bzcbVV1/N6dOn+fTTT+nbty+DBg3itttuY9++fQHbabFY+Pnnn7nkkksQQnD48GGf9DP9+vVjx44dpKSksH//fnr37g3A9ddfj81m46+//uKHH36ga9euxMXFYTAYuPXWW/XP/ocfftAretSpU4enn36ayMhIAFq1aqXnKfzzzz/p168fRqMRi8VC586dWbly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dqJNmzZi7NixBY7J/z2Ul8PhEMOHDxcvvPBCgcfy/jwH+t4N9D0ZiEyhUoVt2LCBa665Rr/yGDlypP5YrVq1WLx4MYcPH2bTpk1ERET4PHfPnj0YDAb9Crhly5YsX7486NeeMGEC69at49133+XgwYOkpqZitVoLHLd27VqysrJYv349oJUTql27Nnv27MFkMullv/r06eNTYLsojz32GA899BBTp07l6aef1hObeokANRFFnvI6ADNnzmTTpk2oqorNZivReqWSOHXqFFOnTuWjjz6iVatWfP/99zz44IOsXLlSH5XLy18ty/zvZePGjTz//PMAZGRkMG3atBJn3pfOTU38+Qz0cxcMt9uNx+Ph0KFDLFy4kLS0NIYPH855553nM/KelZXFxIkTefXVVwv8rARbz7aodvz444988sknXHjhhXz44YeMHTuWZcuWFVkrdevWraSnp/ut/Xr77bczbNgwXn/9dR588EE+/vjjoNsUjEC1wTt06KDfv2XLFpo2bUrjxo0Bre7ta6+9BsBNN91Ew4YN+eijj/j333/57bffuPzyywGt7u3LL7/MsGHDWLJkCUOHDgWgd+/ejB07luuvv55OnTrpCY2LUlS972D+L7t160a3bt1YunQpd999N6tXr/b7PRfouIULFzJ9+vRC2/nmm28SFxfHunXrcDgcjBkzhvfff5+77rqryPfor95uYQK930Dfk4HI6doqzGg0+vyCt9vt/PPPP6xdu5bRo0cDWk4k7w9ioOeC9ovF7Xb73Od0Ov2+9iOPPMLSpUs577zzGDlyJJdeeqnfDl5VVSZNmqSXA/vss8+YPXt2gbqLgF4HMpAtW7Zw4MABQMt2P2DAAL/TMIHqUV5++eX89ttv+mPe9s2dO7fQhbtlITk5mQYNGuiVMbp164bZbC6wSDwlJYVffvlFv523luUVV1zh8146dOigf9YNGzbE4XCUz5uRCqiJP5/B1oEtTGxsLGazmX79+mEwGKhTpw6dO3cuUHD+l19+ISsri0cffZR+/fqxZs0aFixYwOzZs31qpZa0HfHx8Vx++eVceOGFANx8883s3r0bu92u10r93//+xwcffICiKD7VLb755hv69+/vE2js3r1b76cURWHw4MH8+eefQbcnWEePHtU3gniJPDV2vfL//+Z9/NNPP2Xy5MmEhoaSmJioV5IArZSa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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Split libraries FASTQ'\n", + "_df = df[(df.cName == cname)\n", + "# & (df.updated == 'after')\n", + " ].copy()\n", + "\n", + "col_name = 'input_size'\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 3*m1g + (x_plot*.4)\n", + "_df['cMaxRSSRaw'] = 3*m1g +(_df[col_name]*.4)\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 1000+x_plot/700000\n", + "_df['cElapsedRaw'] = 1000+_df[col_name]/700000\n", + "# \n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# *** RESOURCE ALLOCATION ***\n", + "\n", + "# UPDATE qiita.processing_job_resource_allocation set \n", + "# allocation = '-p qiita -N 1 -n 1 '\n", + "# || '--mem (3*(2**30))+({input_size}*0.4) if (3*(2**30))+({input_size}*0.4) < 50*(2**30) else 50*(2**30)'\n", + "# || '--time 1000+({input_size}/700000)'\n", + "# WHERE job_type = 'RESOURCE_PARAMS_COMMAND' and \n", + "# name = 'Split libraries FASTQ';" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### delete_sample_or_column" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'delete_sample_or_column'\n", + "_df = df[(df.cName == cname)\n", + "# & (df.updated == 'after')\n", + " ].copy()\n", + "\n", + "col_name = 'samples'\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = m1g+(x_plot*150000)\n", + "_df['cMaxRSSRaw'] = m1g+(_df[col_name]*150000)\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = [240]*len(x_plot)\n", + "_df['cElapsedRaw'] = [240]*len(_df[col_name])\n", + "\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw >= _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'set: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# No changes needed! " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sequence Processing Pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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tm3p1q0bOp2OBQsWMH36dD766CNMJhPDhw+nfv36N0w93MzDDz/MgAEDeOaZZ1AUhcDAQN5///18RxGEKIj0X3mT/kv6r5JS1OvHZYVbmDJlCsHBwQwbNszZTXF7sbGxrF69msGDB6PT6diwYQOLFy8u0Z3ptbuehPA00n85jvRfrk9G1IQooYoVKxIfH09kZCR6vZ6goCBmzJjh7GYJIcRNSf/l+mRETQghhBDCRclmAiGEEEIIFyWBmrCJefPmMWXKlEI/f86cOfk+f8aMGQwaNMj62Gw2M2/ePLp27Urbtm2ZMWPGDVveQcvH89prrxEZGUmHDh147bXXrLmQ+vTpQ0REBLGxsbm+ZteuXURERPDxxx/fcL6zZ8/Sp08f6+MWLVrk2d7Dhw/To0cPOnbsSI8ePdi5c2eBrz0pKYmWLVuyfv36XMc3bdpE7969eeyxx2jTpg09evRg27ZtBZ5LCJG/wvZL+/btIyoqinbt2vH000/nu3M0v+dZLBbeeustOnToQGRkJEOHDiUxMTHPc3zyySd06NCBTp060a9fP86cOWP9XKNGjejcubP133fffXfD1xe2X8rx66+/0rlz51zH/vnnH/r06UOXLl2IiorKd9flunXriIyMJDIykr59+1p3khbl9Q4bNozWrVtbX9O106pLliyha9eutGvXjldffdWaekVcx84lqoSHyKv+XV7Onz+vDhs2TK1Xr16ez1+7dq3asGFDdeDAgdZjn3zyidq7d281IyNDzcrKUrt3765+//33N3ztu+++q44cOVI1m82qyWRSR4wYob733nuqqqpq79691WbNmqnz5s3L9TVjxoxRGzdurH700Uc3nC82Nlbt3bu39XHz5s3zfE3NmzdXV65cqaqqqsbHx6tt2rRR4+Pj83yuxWJRBw0apD744IPqDz/8YD2+bNkytV27duo///xjPXbo0CG1SZMm6r59+/I8lxCiYIXpl7KystRHHnlEjYmJUVVVVZcsWaI+99xzRXreihUr1L59+6pZWVmqqqrqzJkz1ZEjR95wju3bt6vt2rVTU1JSVFVV1a+++krt1auXqqqqevz4cbVNmzY3fU2F7ZcyMjLUd999V61fv36uGprp6elqkyZN1K1bt6qqqqobN25U27Zte8PXJyQkqA888ID677//qqqqql9++aX6zDPPFOn1qqqqNmnSRL1w4cINx3/88Uf1scceUy9fvqyazWZ16NCh6gcffHDT1++JZERN0KJFC1566SXatWvHxo0biYuLY8iQIURFRREZGcmiRYusz120aBGPP/44kZGRtGrVyprt+1pLly5l3LhxeV5r5cqV1K9fn/79+9/wuePHj/PRRx/lysgNsGrVKl544QV8fX3x9vZm3rx5PPTQQzd8/QMPPMALL7yATqdDr9dTq1Yt/v33X+vnO3XqxJo1a6yPMzIy2Lt3b57nKqzExETOnz9Ply5dAAgNDSUiIoJffvklz+cvWLCAiIgIatSoYT2WnZ3Nu+++a61FmKNmzZpMnjwZi8VS7PYJUVo5ql86cOAAgYGB1K9fH4DHH3+cnTt3cvnyZeLi4ujcuTNxcXEFPq969eqMGjUKb29vAOrUqWPtezZv3mwtQ1WhQgUmTZpEYGAgAHXr1rU+748//kCn09GnTx8iIyOLVMopL7/++isZGRk3bAzYvn07VapU4dFHHwW0rP85SYivfb0VKlRg+/btVKpUCZPJxLlz56wZ/wv7emNjY0lLS2PixIlERkby2muvceXKFUDr15955hnKlSuHTqdj8uTJN4z8CY3s+hQA3HXXXdZf1pyity1atCArK4sBAwZQtWpV7rnnHnbs2MFXX32Fr68va9euZe7cubRu3TrXuXr27JnvdYYOHQpwQ4mStLQ0Ro4cyZtvvnnDMPypU6c4duwYH3zwAYmJibRo0YIXX3zxhnM3bdrU+v9z587x+eef5yrrUqtWLbZs2cK+ffu455572LBhAy1atLAWMi6OkJAQbr31Vr799lsef/xxYmNj2bNnjzXX07V+/fVXdu/ezccff5yrjE5OAtCcotPXyimdIoQnckS/dOHCBWv5JABvb29CQkKIi4ujZs2a1uSsMTEx+T7vvvvusx5PSkpiwYIF1tJGLVu2tP4eX3+DNmvWLB577DFAW+LRpEkTRo0aRWZmJgMHDiQwMDBXX1EUrVq1olWrVjfkJzt58iShoaGMHTuWw4cPU6ZMGWt2//Dw8FxVA7y8vDhw4ADPP/88mZmZfPTRRwCFfr2JiYk0btyYiRMnUr58eWbMmMHYsWNZsGABp06d4tKlSzz77LPEx8fToEEDaztEbhKoCSB3bbrdu3eTlJTEnDlzrMcOHz5M+/btmTlzJmvWrOH06dPs27ePtLQ0m1x/3Lhx9OnThxo1atwQqJlMJvbt28fixYutGcO//PLLfDuwgwcPMnToUHr37k3z5s1zfS5n3cc999zDqlWreO2116x1+Ipr4cKFzJw5k88//5yIiAgeffTRG0rg/Pvvv8ycOZNPPvnkhhItah7r7Xr16kVaWhqZmZnUq1ePt99+u0RtFKI0ckS/lN+I9fW/p4V53pkzZxgyZAj3338/Tz31VL7XTExM5MUXXyQwMJARI0YA8MQTT1g/7+3tTf/+/Qvs54rLZDKxbds2vvjiC+655x42bdrEwIED+emnn6wjZNeqW7cu27dv5+eff2bQoEFs2rSJMmXKFOr13nPPPblKWQ0dOpSmTZuSnZ2NyWRi+/btLFy4EG9vb8aMGcPs2bPznY3xZBKoCeDG2nTLli2zZqdOTEzEx8eHv/76i8GDB9OvXz+aNGnCAw88wOTJk0t87QsXLhATE8PJkyf57LPPSEpKIiUlhQEDBrB48WLCwsJo37493t7eeHt789hjj1nLq1xv7dq1TJ48mQkTJhAZGXnD5yMjI+nWrRv9+vUjNTU11x1ucVksFhYuXIjBoP06Pffcczcs8F2/fj0ZGRnWTOdnzpzhrbfe4vLly0RFRaGqKkeOHLG253//+x8A0dHR/PjjjyVuoxClkSP6pUqVKlnLUoFWZP3y5cuEh4cX6Xm//fYbI0aM4Lnnnisw0evhw4cZPHgwrVq1YvTo0dZAb9WqVdSsWZOaNWsCWKs32FpYWBjVqlXjnnvuAbSRt/HjxxMbG5urMHpcXBxHjhzh4YcfBuCRRx4hMDCQM2fOUKdOnUK93piYGOvmqZzXpCgKer2esLAwWrdubZ0G7tSpU571SYXs+hTXCQwM5N577+XTTz8FtMLEPXv2ZPPmzezevZs6derQv39/HnzwQTZv3lyiNRQ5KlasyK+//srq1atZvXo1L774Ig0aNGDx4sUAtG3blu+++w6LxYLRaOSnn37Kc5pw/fr1TJs2jY8//jjPIA20of2IiAjGjh1rs/UQr7/+Ops2bQJg7969HD16lMaNG+d6zjPPPMOmTZusr7FOnTqMGjWKnj174uPjw6uvvsqrr77KsWPHrF+TmJjI9u3b0enk11R4Nnv2S/fccw9Xrlxh7969AHzzzTfce++91lGjwjxv7969DB06lJkzZxYYpJ0+fZqnn36awYMHM3bs2FyjcUePHmXu3LmYzWYyMzNZsmQJ7du3L/TrKKxHHnmEc+fOWWcudu/ejaIo3Hrrrbmel52dzYgRIzh9+jSgBaImk4k777yz0K83LS2NadOmWdelffzxx7Rt2xa9Xk/btm1Zv349mZmZqKrKpk2b8uzXhYyoiTzMmjWLqVOnEhkZSXZ2Nh07dqRTp05cvHiRDRs20L59e7y8vHjooYdISkoiNTU119cvXbqUgwcPMn36dJu056WXXmLWrFl07NgRs9lM48aNrcV3c6ZBhg8fzrvvvouqqowfP976tffffz8TJ07Mdb7OnTszduzYG9bJFdeUKVMYP3488+fPx9/f3/oRYMCAAfTo0eOma82eeOIJwsPDmT59OomJiVgsFhRFoUWLFm5baFiIorBXv+Tl5cX777/PlClTyMjIoFy5csycORPQRpUGDhzIhx9+SHh4eL7PmzdvHqqq8s477/DOO+8AcOuttzJ//nw2b97MsmXLWLx4MYsXLyYjI4Mvv/ySL7/8EtCmOb/++muGDh3KlClTiIyMxGQy8dhjj9G9e3ebfx9DQ0OZP38+kydPJiMjw7pBy8fHJ9frrVKlCtOnT2fYsGEoikKZMmVYtGgRfn5+hX69jz76KH369KFnz55YLBYiIiKs64Z79epFUlISUVFRmM1mateuzZgxY2z+et2BVCYQIh9nz57ltddes3aoLVq0YMuWLU5ulRDCk0m/5HlkTkUIIYQQwkXJiJoQQgghhIuSETU3N2bMmDzLIxXG77//TseOHW/6vPfff9+6mL4o7rvvPs6ePXvT50VFRdG+fXtrCZKcXD4ZGRm88sortGvXjrZt2+Zqw5dffkmTJk2sX9OrV68CrxEbG8uDDz7IgQMHAG16ISIiIs8t56+99hoRERF5lkyZN28e0dHRgLZjs6B1cKqq3vDzKagMVmG/L6DlkRszZgxt27alQ4cOtG3bltmzZ2M0Ggv8PghR2sTGxjJs2LBCPz87O5v+/fvnKuHWo0ePXKWb6tWrx7Rp02742oL6nJKWoQItce9jjz1G69atrevArlfSElKrVq3K9VpbtGhB7dq1uXjx4g1fu3XrViIjI2nbti0vvviidd2f2Wxm2rRp1rYuXbo0z2sX9LxTp07Rq1cv2rdvz+OPP27NJyny4PhiCMKRRo8enWd5pML47bffcpUeyU/v3r1zlUMqrHvvvVeNjY0t8DlpaWlq/fr11ezs7Bs+N3PmTHX8+PGqqqrquXPn1CZNmqjnz59XVVVVR4wYoX733XeFakdmZqb65JNPqvfee6+6f/9+VVW1Mi1169ZVGzdurJ49ezZXe1q3bq3WqFFDvXTp0g3nmjt3rvrNN9+oqqqq33zzjTp37tw8r3ns2DG1T58+ar169XL9fAoqg1XY78uFCxfUJk2aqMuXL1ctFouqqqqampqqDh06VJ06dWqhvidClBaF7adUVVX37t2rdu7cWa1bt26+fdamTZvUdu3aqcnJyTd8Lr8+xxZlqLZu3ap27txZTUtLUzMzM9WnnnpKXbt27Q3nKGkJqWtlZ2erTzzxhLp06dIbPnfp0iW1UaNG6smTJ1VVVdW33npLnThxoqqqWumr5557TjUajeqVK1fUtm3b5lnqrqDndevWzdpHb926VW3fvr21vxK5yYhaKbNy5UprIdy+ffty/vx5LBYL06ZNo3v37rRv35527dqxZ8+eG7523759dO/enY4dO9K1a1dr8fDrR4fyGi06efIk/fv358knn6R58+a88MILZGVlsWTJEg4ePMhbb73Fxo0byc7OZsaMGXTt2pVOnToxZswY611YTEwMnTt3pkuXLkyYMCFXAskBAwawefPmG9q8f/9+/P39GTRoEJGRkcyYMcM6wrRp0ybrrqjKlSvTtGlTfvjhB0Arx/L999/TpUsXnn32Wf755598v6eTJ08mKiqK4ODgXMf1ej3t2rXLVXZqw4YNNqkWsGTJEutd9bVuVgYrR0Hflw8//JA2bdrwxBNPoCgKAAEBAUyYMIHbbrutxG0Xwl7S0tJ48cUX6dy5M127dmX8+PHWfmLLli10796dLl260KNHD/744w/MZjPjx4/nzJkz1jQR48aNy3eE58svv+Sll16y5hC73pUrV5g4cSIzZ84kKCjohvPl1+fYogzVxo0b6dixI/7+/vj4+BAVFZVnUfbCyq+E1LUWL15MSEiItarAgQMHrKNvv/76K3Xr1uX2228HtMoOa9assabSiIqKwmAwULZsWTp06GBt65w5c6y78fN7XlxcHCdOnKBDhw4APProo2RkZPD3338X+/W6MwnUSpHDhw8za9YsPvroI9asWUOLFi1YuHAh+/btIz4+nuXLl7Nu3Tq6du1qzUGWw2g0MmTIEIYMGcL333/P1KlT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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'Sequence Processing Pipeline'\n", + "_df = df[(df.cName == cname)\n", + " & (df.updated == 'after')\n", + " ].copy()\n", + "\n", + "col_name = 'samples'\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = (x_plot*10000000)\n", + "_df['cMaxRSSRaw'] = _df[col_name]*10000000\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = [61200]*len(x_plot)\n", + "_df['cElapsedRaw'] = [61200]*len(_df[col_name])\n", + "\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'set: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# No changes needed! " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### submit_to_EBI" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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UBDWrVsHQGyWGBgYiOjo6CzXPXjwIDp37gwAKFOmDJo2bZpt4XciMm9sw0gu7FEjg1i/fj2qVauGVatWwcXFBaGhoZg6dSrefvttREdHo0WLFggNDc3Xe9+8eRMHDx5E2bJlERUVhdmzZ2P16tVwcXHBzZs30atXL+zfvx8//vgjWrZsib59++LJkyeYMmUKunTpAg8PD80GtK969OiRphwOAHh4eODx48f5ipOITBfbMJILEzUyOIVCgcWLF+PIkSPYtWsXbt++DUmSkJycnK/3K126NMqWLQsAOH78OGJiYrRqDCoUCty7dw9t2rTBiBEjcOnSJTRq1Ahjxox57S7+llZTjohej20YGRITNTK4pKQkBAUFoXXr1qhXrx46duyIgwcPZtugZOfVWn9OTk6ar9VqNRo1aqQZhgDEHaW7uzuqV6+Offv24cSJEzh58iQWLFiAjRs3onz58jleK72GXvpO6DExMahevXoevlsiMjdsw8iQmFaTwd29excJCQkYOnQoWrZsiTNnzmjq7uVEl1p/AODl5YXjx4/j9u3bAICjR48iICAAKSkp+PLLL7F79260b98e48ePh7OzMx49epRrrK1atcKmTZsAAI8fP8axY8c0hdCJyDKxDSNDYo8aGVy1atXQvHlz+Pj4oFixYihfvjwqV66Mu3fvws7OLtvX6FLrDwCqVKmCiRMn4osvvoAkSbCxscGiRYvg5OSEAQMGYPTo0di0aROsra3RunVrNGjQANHR0ejbty+WLl0KDw8PrfcbPHgwJkyYgPbt20OlUmH48OG53r0SkfljG0aGxMoEREREREaKQ59ERERERoqJGhEREZGRYqJGREREZKSYqBEREREZKbNb9alWq5GYmAhbW1soFAq5wyEiA5AkCWlpaShSpIjJb+bJNozIsryu/TK7RC0xMRE3btyQOwwikkHVqlVRtGhRucMoELZhRJYpp/bL7BI1W1tbAOIbzmk/G2Ny5coV1KxZU+4wiIxKXj8XqampuHHjhubzb8pMqQ1j+0WUvbx8Nl7XfpldopY+VGBnZwd7e3uZo9GNqcRJZEj5+VyYw1ChqbVhphAjkRzy+tnIqf0y7ckcRERERGaMiRoRERGRkWKiRkRERGSkmKgRERERGSkmakRERERGiokaERkdh1u3gDlzgGfP5A6FiChv4uJQats24NSpQnk7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\n", + "text/plain": [ + "<Figure size 720x288 with 2 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(ncols=2, figsize=(10, 4), sharey=False)\n", + "fig.subplots_adjust(hspace=0.55)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "cname = 'submit_to_EBI'\n", + "_df = df[(df.cName == cname)\n", + "# & (df.updated == 'after')\n", + " ].copy()\n", + "\n", + "col_name = 'samples + columns'\n", + "_df[col_name] = _df['samples'] + _df['columns']\n", + "\n", + "# Memory\n", + "ax = sns.regplot(x=col_name, y='MaxRSSRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False, \n", + " ax=axs[0])\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = 2*m1g+x_plot*15000000\n", + "_df['cMaxRSSRaw'] = 2*m1g+_df[col_name]*15000000\n", + "\n", + "axs[0].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "axs[0].set_xscale('log')\n", + "axs[0].set_yscale('log')\n", + "\n", + "max_memory = naturalsize(_df['MaxRSSRaw'].max(), gnu=True)\n", + "cmax_memory = naturalsize(max(y_plot), gnu=True)\n", + "min_memory = naturalsize(_df['MaxRSSRaw'].min(), gnu=True)\n", + "cmin_memory = naturalsize(min(y_plot), gnu=True)\n", + "failures = _df[_df.MaxRSSRaw > _df.cMaxRSSRaw]\n", + "failures = failures.shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {min_memory} || {max_memory}\\n'\n", + " f'calculated: {cmin_memory} || {cmax_memory}\\n'\n", + " f'failures: {failures}')\n", + "# Time\n", + "ax = sns.regplot(x=col_name, y='ElapsedRaw', \n", + " data=_df,\n", + " x_estimator=None, \n", + " fit_reg=False,\n", + " ax=axs[1])\n", + "\n", + "x_plot = np.array(sorted(_df[col_name].unique()))\n", + "y_plot = x_plot*55\n", + "_df['cElapsedRaw'] = _df[col_name]*55\n", + "\n", + "axs[1].plot(x_plot, y_plot, linewidth=2, color='red')\n", + "\n", + "maxtime = timedelta(seconds=float(_df['ElapsedRaw'].max()))\n", + "cmaxtime = timedelta(seconds=float(max(y_plot)))\n", + "mintime = timedelta(seconds=float(_df['ElapsedRaw'].min()))\n", + "cmintime = timedelta(seconds=float(min(y_plot)))\n", + "failures = _df[_df.ElapsedRaw > _df.cElapsedRaw].shape[0]\n", + "\n", + "_ = ax.set_title(f'{cname}\\n real: {mintime} || {maxtime}\\n'\n", + " f'calculated: {cmintime} || {cmaxtime}\\n'\n", + " f'failures: {failures}')\n", + "axs[1].set_xscale('log')\n", + "axs[1].set_yscale('log')\n", + "\n", + "# No changes needed! " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}